{"version":3,"file":"marks.mjs","sources":["../../../src/slate/utils/marks.ts"],"sourcesContent":["import { Editor as SlateEditor } from \"slate\";\n\nimport type { ComposerBodyMarks } from \"../../types\";\nimport { getCharacterAfter, getCharacterBefore } from \"./get-character\";\nimport { isSelectionCollapsed } from \"./is-selection-collapsed\";\n\nexport function isMarkActive(editor: SlateEditor, format: ComposerBodyMarks) {\n  const marks = SlateEditor.marks(editor);\n\n  return marks ? marks[format] === true : false;\n}\n\nexport function toggleMark(editor: SlateEditor, format: ComposerBodyMarks) {\n  const isActive = isMarkActive(editor, format);\n\n  if (isActive) {\n    SlateEditor.removeMark(editor, format);\n  } else {\n    SlateEditor.addMark(editor, format, true);\n  }\n}\n\nexport function removeMarks(editor: SlateEditor) {\n  const marks = SlateEditor.marks(editor);\n\n  if (marks) {\n    for (const mark in marks) {\n      SlateEditor.removeMark(editor, mark);\n    }\n  }\n}\n\nexport function leaveMarkEdge(editor: SlateEditor, edge: \"start\" | \"end\") {\n  if (isSelectionCollapsed(editor.selection)) {\n    const marks = Object.keys(SlateEditor.marks(editor) ?? {});\n\n    if (marks.length > 0) {\n      const sibling =\n        edge === \"start\"\n          ? getCharacterBefore(editor, editor.selection)\n          : getCharacterAfter(editor, editor.selection);\n\n      if (!sibling) {\n        removeMarks(editor);\n      }\n    }\n  }\n}\n"],"names":["SlateEditor"],"mappings":";;;;AAMgB,SAAA,YAAA,CAAa,QAAqB,MAA2B,EAAA;AAC3E,EAAM,MAAA,KAAA,GAAQA,MAAY,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAEtC,EAAO,OAAA,KAAA,GAAQ,KAAM,CAAA,MAAA,CAAA,KAAY,IAAO,GAAA,KAAA,CAAA;AAC1C,CAAA;AAEgB,SAAA,UAAA,CAAW,QAAqB,MAA2B,EAAA;AACzE,EAAM,MAAA,QAAA,GAAW,YAAa,CAAA,MAAA,EAAQ,MAAM,CAAA,CAAA;AAE5C,EAAA,IAAI,QAAU,EAAA;AACZ,IAAYA,MAAA,CAAA,UAAA,CAAW,QAAQ,MAAM,CAAA,CAAA;AAAA,GAChC,MAAA;AACL,IAAYA,MAAA,CAAA,OAAA,CAAQ,MAAQ,EAAA,MAAA,EAAQ,IAAI,CAAA,CAAA;AAAA,GAC1C;AACF,CAAA;AAEO,SAAS,YAAY,MAAqB,EAAA;AAC/C,EAAM,MAAA,KAAA,GAAQA,MAAY,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAEtC,EAAA,IAAI,KAAO,EAAA;AACT,IAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACxB,MAAYA,MAAA,CAAA,UAAA,CAAW,QAAQ,IAAI,CAAA,CAAA;AAAA,KACrC;AAAA,GACF;AACF,CAAA;AAEgB,SAAA,aAAA,CAAc,QAAqB,IAAuB,EAAA;AACxE,EAAI,IAAA,oBAAA,CAAqB,MAAO,CAAA,SAAS,CAAG,EAAA;AAC1C,IAAM,MAAA,KAAA,GAAQ,OAAO,IAAK,CAAAA,MAAA,CAAY,MAAM,MAAM,CAAA,IAAK,EAAE,CAAA,CAAA;AAEzD,IAAI,IAAA,KAAA,CAAM,SAAS,CAAG,EAAA;AACpB,MAAM,MAAA,OAAA,GACJ,IAAS,KAAA,OAAA,GACL,kBAAmB,CAAA,MAAA,EAAQ,MAAO,CAAA,SAAS,CAC3C,GAAA,iBAAA,CAAkB,MAAQ,EAAA,MAAA,CAAO,SAAS,CAAA,CAAA;AAEhD,MAAA,IAAI,CAAC,OAAS,EAAA;AACZ,QAAA,WAAA,CAAY,MAAM,CAAA,CAAA;AAAA,OACpB;AAAA,KACF;AAAA,GACF;AACF;;;;"}