@kaizen/components 1.33.0 → 1.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Input/Input/types.cjs +7 -0
- package/dist/cjs/Input/Input/types.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/EditableRichTextContent/EditableRichTextContent.cjs +47 -0
- package/dist/cjs/RichTextEditor/EditableRichTextContent/EditableRichTextContent.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/EditableRichTextContent/EditableRichTextContent.module.scss.cjs +8 -0
- package/dist/cjs/RichTextEditor/EditableRichTextContent/EditableRichTextContent.module.scss.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextContent/RichTextContent.cjs +61 -0
- package/dist/cjs/RichTextEditor/RichTextContent/RichTextContent.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextContent/RichTextContent.module.scss.cjs +7 -0
- package/dist/cjs/RichTextEditor/RichTextContent/RichTextContent.module.scss.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/RichTextEditor.cjs +177 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/RichTextEditor.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/RichTextEditor.module.scss.cjs +32 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/RichTextEditor.module.scss.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/schema.cjs +88 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/schema.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.cjs +43 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.cjs +14 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.cjs +71 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.cjs +7 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.cjs +16 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.cjs +7 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/utils/controlmap.cjs +274 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/utils/controlmap.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/utils/inputrules.cjs +50 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/utils/inputrules.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/utils/keymap.cjs +108 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/utils/keymap.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/constants.cjs +5 -0
- package/dist/cjs/RichTextEditor/constants.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/addMark.cjs +21 -0
- package/dist/cjs/RichTextEditor/utils/commands/addMark.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/getMarkAttrs.cjs +26 -0
- package/dist/cjs/RichTextEditor/utils/commands/getMarkAttrs.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/getMarkRange.cjs +44 -0
- package/dist/cjs/RichTextEditor/utils/commands/getMarkRange.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/listIsActive.cjs +9 -0
- package/dist/cjs/RichTextEditor/utils/commands/listIsActive.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/markContainsSelection.cjs +17 -0
- package/dist/cjs/RichTextEditor/utils/commands/markContainsSelection.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/markIsActive.cjs +15 -0
- package/dist/cjs/RichTextEditor/utils/commands/markIsActive.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/removeMark.cjs +40 -0
- package/dist/cjs/RichTextEditor/utils/commands/removeMark.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/updateMark.cjs +38 -0
- package/dist/cjs/RichTextEditor/utils/commands/updateMark.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/validateAndRemoveMarks.cjs +36 -0
- package/dist/cjs/RichTextEditor/utils/commands/validateAndRemoveMarks.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/core/createRichTextEditor.cjs +53 -0
- package/dist/cjs/RichTextEditor/utils/core/createRichTextEditor.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/core/hooks/useRichTextEditor.cjs +76 -0
- package/dist/cjs/RichTextEditor/utils/core/hooks/useRichTextEditor.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/core/inputrules.cjs +26 -0
- package/dist/cjs/RichTextEditor/utils/core/inputrules.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/core/state.cjs +41 -0
- package/dist/cjs/RichTextEditor/utils/core/state.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/LinkManager.cjs +136 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/LinkManager.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.cjs +62 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.cjs +68 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.cjs +58 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.module.scss.cjs +11 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.module.scss.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.cjs +43 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.cjs +52 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/validation.cjs +16 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/validation.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/schema/marks.cjs +73 -0
- package/dist/cjs/RichTextEditor/utils/schema/marks.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/schema/nodes.cjs +35 -0
- package/dist/cjs/RichTextEditor/utils/schema/nodes.cjs.map +1 -0
- package/dist/cjs/TextField/TextField.cjs +3 -1
- package/dist/cjs/TextField/TextField.cjs.map +1 -1
- package/dist/cjs/dts/Input/Input/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/EditableRichTextContent/EditableRichTextContent.d.ts +15 -0
- package/dist/cjs/dts/RichTextEditor/EditableRichTextContent/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/RichTextContent/RichTextContent.d.ts +10 -0
- package/dist/cjs/dts/RichTextEditor/RichTextContent/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/RichTextEditor.d.ts +43 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/index.d.ts +4 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/schema.d.ts +4 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.d.ts +17 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/types.d.ts +2 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.d.ts +11 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/Toolbar/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.d.ts +8 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/utils/controlmap.d.ts +14 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/utils/inputrules.d.ts +2 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/utils/keymap.d.ts +6 -0
- package/dist/cjs/dts/RichTextEditor/constants.d.ts +2 -0
- package/dist/cjs/dts/RichTextEditor/index.d.ts +9 -0
- package/dist/cjs/dts/RichTextEditor/types.d.ts +12 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/addMark.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/fixtures/helpers.d.ts +8 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/fixtures/test-state.d.ts +17 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/getMarkAttrs.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/getMarkRange.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/index.d.ts +9 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/listIsActive.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/markContainsSelection.d.ts +4 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/markIsActive.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/removeMark.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/updateMark.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/validateAndRemoveMarks.d.ts +12 -0
- package/dist/cjs/dts/RichTextEditor/utils/core/createRichTextEditor.d.ts +21 -0
- package/dist/cjs/dts/RichTextEditor/utils/core/fixtures/testState.d.ts +21 -0
- package/dist/cjs/dts/RichTextEditor/utils/core/hooks/useRichTextEditor.d.ts +23 -0
- package/dist/cjs/dts/RichTextEditor/utils/core/index.d.ts +5 -0
- package/dist/cjs/dts/RichTextEditor/utils/core/inputrules.d.ts +4 -0
- package/dist/cjs/dts/RichTextEditor/utils/core/state.d.ts +19 -0
- package/dist/cjs/dts/RichTextEditor/utils/core/types.d.ts +28 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/LinkManager.d.ts +12 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.d.ts +19 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.d.ts +13 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.d.ts +12 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/index.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.d.ts +10 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/index.d.ts +2 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/types.d.ts +13 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/validation.d.ts +6 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/utils/prosemirror/index.d.ts +7 -0
- package/dist/cjs/dts/RichTextEditor/utils/schema/index.d.ts +2 -0
- package/dist/cjs/dts/RichTextEditor/utils/schema/marks.d.ts +2 -0
- package/dist/cjs/dts/RichTextEditor/utils/schema/nodes.d.ts +2 -0
- package/dist/cjs/dts/TextField/TextField.d.ts +2 -2
- package/dist/cjs/dts/index.d.ts +1 -0
- package/dist/cjs/index.cjs +95 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.css +14 -7
- package/dist/esm/Input/Input/types.mjs +4 -0
- package/dist/esm/Input/Input/types.mjs.map +1 -0
- package/dist/esm/RichTextEditor/EditableRichTextContent/EditableRichTextContent.mjs +45 -0
- package/dist/esm/RichTextEditor/EditableRichTextContent/EditableRichTextContent.mjs.map +1 -0
- package/dist/esm/RichTextEditor/EditableRichTextContent/EditableRichTextContent.module.scss.mjs +6 -0
- package/dist/esm/RichTextEditor/EditableRichTextContent/EditableRichTextContent.module.scss.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextContent/RichTextContent.mjs +39 -0
- package/dist/esm/RichTextEditor/RichTextContent/RichTextContent.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextContent/RichTextContent.module.scss.mjs +5 -0
- package/dist/esm/RichTextEditor/RichTextContent/RichTextContent.module.scss.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/RichTextEditor.mjs +152 -0
- package/dist/esm/RichTextEditor/RichTextEditor/RichTextEditor.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/RichTextEditor.module.scss.mjs +30 -0
- package/dist/esm/RichTextEditor/RichTextEditor/RichTextEditor.module.scss.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/schema.mjs +66 -0
- package/dist/esm/RichTextEditor/RichTextEditor/schema.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.mjs +41 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.mjs +12 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.mjs +69 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.mjs +5 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.mjs +14 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.mjs +5 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/utils/controlmap.mjs +252 -0
- package/dist/esm/RichTextEditor/RichTextEditor/utils/controlmap.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/utils/inputrules.mjs +29 -0
- package/dist/esm/RichTextEditor/RichTextEditor/utils/inputrules.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/utils/keymap.mjs +84 -0
- package/dist/esm/RichTextEditor/RichTextEditor/utils/keymap.mjs.map +1 -0
- package/dist/esm/RichTextEditor/constants.mjs +3 -0
- package/dist/esm/RichTextEditor/constants.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/addMark.mjs +19 -0
- package/dist/esm/RichTextEditor/utils/commands/addMark.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/getMarkAttrs.mjs +24 -0
- package/dist/esm/RichTextEditor/utils/commands/getMarkAttrs.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/getMarkRange.mjs +42 -0
- package/dist/esm/RichTextEditor/utils/commands/getMarkRange.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/listIsActive.mjs +7 -0
- package/dist/esm/RichTextEditor/utils/commands/listIsActive.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/markContainsSelection.mjs +15 -0
- package/dist/esm/RichTextEditor/utils/commands/markContainsSelection.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/markIsActive.mjs +13 -0
- package/dist/esm/RichTextEditor/utils/commands/markIsActive.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/removeMark.mjs +38 -0
- package/dist/esm/RichTextEditor/utils/commands/removeMark.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/updateMark.mjs +36 -0
- package/dist/esm/RichTextEditor/utils/commands/updateMark.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/validateAndRemoveMarks.mjs +34 -0
- package/dist/esm/RichTextEditor/utils/commands/validateAndRemoveMarks.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/core/createRichTextEditor.mjs +51 -0
- package/dist/esm/RichTextEditor/utils/core/createRichTextEditor.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/core/hooks/useRichTextEditor.mjs +74 -0
- package/dist/esm/RichTextEditor/utils/core/hooks/useRichTextEditor.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/core/inputrules.mjs +23 -0
- package/dist/esm/RichTextEditor/utils/core/inputrules.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/core/state.mjs +37 -0
- package/dist/esm/RichTextEditor/utils/core/state.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/LinkManager.mjs +134 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/LinkManager.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.mjs +60 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.mjs +66 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.mjs +56 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.module.scss.mjs +9 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.module.scss.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.mjs +41 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.mjs +50 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/validation.mjs +14 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/validation.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/schema/marks.mjs +71 -0
- package/dist/esm/RichTextEditor/utils/schema/marks.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/schema/nodes.mjs +33 -0
- package/dist/esm/RichTextEditor/utils/schema/nodes.mjs.map +1 -0
- package/dist/esm/TextField/TextField.mjs +3 -1
- package/dist/esm/TextField/TextField.mjs.map +1 -1
- package/dist/esm/dts/Input/Input/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/EditableRichTextContent/EditableRichTextContent.d.ts +15 -0
- package/dist/esm/dts/RichTextEditor/EditableRichTextContent/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/RichTextContent/RichTextContent.d.ts +10 -0
- package/dist/esm/dts/RichTextEditor/RichTextContent/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/RichTextEditor.d.ts +43 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/index.d.ts +4 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/schema.d.ts +4 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.d.ts +17 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/types.d.ts +2 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.d.ts +11 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/Toolbar/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.d.ts +8 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/utils/controlmap.d.ts +14 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/utils/inputrules.d.ts +2 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/utils/keymap.d.ts +6 -0
- package/dist/esm/dts/RichTextEditor/constants.d.ts +2 -0
- package/dist/esm/dts/RichTextEditor/index.d.ts +9 -0
- package/dist/esm/dts/RichTextEditor/types.d.ts +12 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/addMark.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/fixtures/helpers.d.ts +8 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/fixtures/test-state.d.ts +17 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/getMarkAttrs.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/getMarkRange.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/index.d.ts +9 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/listIsActive.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/markContainsSelection.d.ts +4 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/markIsActive.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/removeMark.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/updateMark.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/validateAndRemoveMarks.d.ts +12 -0
- package/dist/esm/dts/RichTextEditor/utils/core/createRichTextEditor.d.ts +21 -0
- package/dist/esm/dts/RichTextEditor/utils/core/fixtures/testState.d.ts +21 -0
- package/dist/esm/dts/RichTextEditor/utils/core/hooks/useRichTextEditor.d.ts +23 -0
- package/dist/esm/dts/RichTextEditor/utils/core/index.d.ts +5 -0
- package/dist/esm/dts/RichTextEditor/utils/core/inputrules.d.ts +4 -0
- package/dist/esm/dts/RichTextEditor/utils/core/state.d.ts +19 -0
- package/dist/esm/dts/RichTextEditor/utils/core/types.d.ts +28 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/LinkManager.d.ts +12 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.d.ts +19 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.d.ts +13 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.d.ts +12 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/index.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.d.ts +10 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/index.d.ts +2 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/types.d.ts +13 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/validation.d.ts +6 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/utils/prosemirror/index.d.ts +7 -0
- package/dist/esm/dts/RichTextEditor/utils/schema/index.d.ts +2 -0
- package/dist/esm/dts/RichTextEditor/utils/schema/marks.d.ts +2 -0
- package/dist/esm/dts/RichTextEditor/utils/schema/nodes.d.ts +2 -0
- package/dist/esm/dts/TextField/TextField.d.ts +2 -2
- package/dist/esm/dts/index.d.ts +1 -0
- package/dist/esm/index.css +11 -4
- package/dist/esm/index.mjs +40 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/index.d.ts +304 -3
- package/dist/styles.css +1 -1
- package/locales/cy.json +1 -1
- package/locales/ht.json +1 -1
- package/locales/km-KH.json +1 -1
- package/locales/si-LK.json +1 -1
- package/locales/sk.json +1 -1
- package/package.json +15 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { getMarkRange } from './getMarkRange.mjs';
|
|
2
|
+
|
|
3
|
+
/** Remove part or all of the Mark from the current selection */
|
|
4
|
+
var removeMark = function (type, options) {
|
|
5
|
+
if (options === void 0) {
|
|
6
|
+
options = {
|
|
7
|
+
toExtent: false
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
return function (state, dispatch) {
|
|
11
|
+
var tr = state.tr,
|
|
12
|
+
selection = state.selection,
|
|
13
|
+
doc = state.doc;
|
|
14
|
+
var from = selection.from,
|
|
15
|
+
to = selection.to;
|
|
16
|
+
var $from = selection.$from;
|
|
17
|
+
if (!dispatch) return false;
|
|
18
|
+
if (selection.empty) {
|
|
19
|
+
dispatch(tr.removeStoredMark(type));
|
|
20
|
+
} else {
|
|
21
|
+
if (options.range || options.toExtent) {
|
|
22
|
+
var range = options.range || getMarkRange($from, type);
|
|
23
|
+
if (range) {
|
|
24
|
+
from = range.from;
|
|
25
|
+
to = range.to;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
var hasMark = doc.rangeHasMark(from, to, type);
|
|
29
|
+
if (hasMark) {
|
|
30
|
+
tr.removeMark(from, to, type);
|
|
31
|
+
}
|
|
32
|
+
dispatch(tr);
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export { removeMark };
|
|
38
|
+
//# sourceMappingURL=removeMark.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeMark.mjs","sources":["../../../../../src/RichTextEditor/utils/commands/removeMark.ts"],"sourcesContent":["import { EditorState, Transaction } from \"prosemirror-state\"\nimport { CommandFactory } from \"../core/types\"\nimport { getMarkRange } from \"./getMarkRange\"\n\n/** Remove part or all of the Mark from the current selection */\nexport const removeMark: CommandFactory =\n (type, options = { toExtent: false }) =>\n (state: EditorState, dispatch?: (tx: Transaction) => void) => {\n const { tr, selection, doc } = state\n let { from, to } = selection\n const { $from } = selection\n\n if (!dispatch) return false\n if (selection.empty) {\n dispatch(tr.removeStoredMark(type))\n } else {\n if (options.range || options.toExtent) {\n const range = options.range || getMarkRange($from, type)\n if (range) {\n from = range.from\n to = range.to\n }\n }\n const hasMark = doc.rangeHasMark(from, to, type)\n if (hasMark) {\n tr.removeMark(from, to, type)\n }\n dispatch(tr)\n }\n\n return true\n }\n"],"names":["removeMark","type","options","toExtent","state","dispatch","tr","selection","doc","from","to","$from","empty","removeStoredMark","range","getMarkRange","hasMark","rangeHasMark"],"mappings":";;AAIA;AACa,IAAAA,UAAU,GACrB,SAAAA,CAACC,IAAI,EAAEC,OAA6B,EAAA;EAA7B,IAAAA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAA;MAAYC,QAAQ,EAAE;IAAK,CAAE;EAAA;EACpC,OAAA,UAACC,KAAkB,EAAEC,QAAoC,EAAA;IAC/C,IAAAC,EAAE,GAAqBF,KAAK,CAAAE,EAA1B;MAAEC,SAAS,GAAUH,KAAK,CAAAG,SAAf;MAAEC,GAAG,GAAKJ,KAAK,IAAV;IACpB,IAAAK,IAAI,GAASF,SAAS,CAAAE,IAAlB;MAAEC,EAAE,GAAKH,SAAS,CAAAG,EAAd;IACN,IAAAC,KAAK,GAAKJ,SAAS,CAAAI,KAAd;IAEb,IAAI,CAACN,QAAQ,EAAE,OAAO,KAAK;IAC3B,IAAIE,SAAS,CAACK,KAAK,EAAE;MACnBP,QAAQ,CAACC,EAAE,CAACO,gBAAgB,CAACZ,IAAI,CAAC,CAAC;IACpC,CAAA,MAAM;MACL,IAAIC,OAAO,CAACY,KAAK,IAAIZ,OAAO,CAACC,QAAQ,EAAE;QACrC,IAAMW,KAAK,GAAGZ,OAAO,CAACY,KAAK,IAAIC,YAAY,CAACJ,KAAK,EAAEV,IAAI,CAAC;QACxD,IAAIa,KAAK,EAAE;UACTL,IAAI,GAAGK,KAAK,CAACL,IAAI;UACjBC,EAAE,GAAGI,KAAK,CAACJ,EAAE;QACd;MACF;MACD,IAAMM,OAAO,GAAGR,GAAG,CAACS,YAAY,CAACR,IAAI,EAAEC,EAAE,EAAET,IAAI,CAAC;MAChD,IAAIe,OAAO,EAAE;QACXV,EAAE,CAACN,UAAU,CAACS,IAAI,EAAEC,EAAE,EAAET,IAAI,CAAC;MAC9B;MACDI,QAAQ,CAACC,EAAE,CAAC;IACb;IAED,OAAO,IAAI;GACZ;AAxBD,CAAA;"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { getMarkRange } from './getMarkRange.mjs';
|
|
2
|
+
|
|
3
|
+
/** Update Mark attributes, create nested Marks or split Marks of the same type */
|
|
4
|
+
var updateMark = function (type, attrs, options) {
|
|
5
|
+
if (options === void 0) {
|
|
6
|
+
options = {
|
|
7
|
+
toExtent: false
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
return function (state, dispatch) {
|
|
11
|
+
if (!dispatch) return false;
|
|
12
|
+
var tr = state.tr,
|
|
13
|
+
selection = state.selection,
|
|
14
|
+
doc = state.doc;
|
|
15
|
+
var from = selection.from,
|
|
16
|
+
to = selection.to;
|
|
17
|
+
var $from = selection.$from,
|
|
18
|
+
empty = selection.empty;
|
|
19
|
+
if (empty || options.toExtent) {
|
|
20
|
+
var range = getMarkRange($from, type);
|
|
21
|
+
if (range) {
|
|
22
|
+
from = range.from;
|
|
23
|
+
to = range.to;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
var hasMark = doc.rangeHasMark(from, to, type);
|
|
27
|
+
if (hasMark) {
|
|
28
|
+
tr.removeMark(from, to, type);
|
|
29
|
+
}
|
|
30
|
+
tr.addMark(from, to, type.create(attrs));
|
|
31
|
+
dispatch(tr);
|
|
32
|
+
return true;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export { updateMark };
|
|
36
|
+
//# sourceMappingURL=updateMark.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateMark.mjs","sources":["../../../../../src/RichTextEditor/utils/commands/updateMark.ts"],"sourcesContent":["import { EditorState, Transaction } from \"prosemirror-state\"\nimport { CommandFactory } from \"../core/types\"\nimport { getMarkRange } from \"./getMarkRange\"\n\n/** Update Mark attributes, create nested Marks or split Marks of the same type */\nexport const updateMark: CommandFactory =\n (type, attrs, options = { toExtent: false }) =>\n (state: EditorState, dispatch?: (tx: Transaction) => void) => {\n if (!dispatch) return false\n\n const { tr, selection, doc } = state\n let { from, to } = selection\n const { $from, empty } = selection\n\n if (empty || options.toExtent) {\n const range = getMarkRange($from, type)\n if (range) {\n from = range.from\n to = range.to\n }\n }\n\n const hasMark = doc.rangeHasMark(from, to, type)\n\n if (hasMark) {\n tr.removeMark(from, to, type)\n }\n tr.addMark(from, to, type.create(attrs))\n dispatch(tr)\n\n return true\n }\n"],"names":["updateMark","type","attrs","options","toExtent","state","dispatch","tr","selection","doc","from","to","$from","empty","range","getMarkRange","hasMark","rangeHasMark","removeMark","addMark","create"],"mappings":";;AAIA;IACaA,UAAU,GACrB,SAAAA,CAACC,IAAI,EAAEC,KAAK,EAAEC,OAA6B,EAAA;EAA7B,IAAAA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAA;MAAYC,QAAQ,EAAE;IAAK,CAAE;EAAA;EAC3C,OAAA,UAACC,KAAkB,EAAEC,QAAoC,EAAA;IACvD,IAAI,CAACA,QAAQ,EAAE,OAAO,KAAK;IAEnB,IAAAC,EAAE,GAAqBF,KAAK,CAAAE,EAA1B;MAAEC,SAAS,GAAUH,KAAK,CAAAG,SAAf;MAAEC,GAAG,GAAKJ,KAAK,IAAV;IACpB,IAAAK,IAAI,GAASF,SAAS,CAAAE,IAAlB;MAAEC,EAAE,GAAKH,SAAS,CAAAG,EAAd;IACN,IAAAC,KAAK,GAAYJ,SAAS,CAAAI,KAArB;MAAEC,KAAK,GAAKL,SAAS,CAAAK,KAAd;IAEpB,IAAIA,KAAK,IAAIV,OAAO,CAACC,QAAQ,EAAE;MAC7B,IAAMU,KAAK,GAAGC,YAAY,CAACH,KAAK,EAAEX,IAAI,CAAC;MACvC,IAAIa,KAAK,EAAE;QACTJ,IAAI,GAAGI,KAAK,CAACJ,IAAI;QACjBC,EAAE,GAAGG,KAAK,CAACH,EAAE;MACd;IACF;IAED,IAAMK,OAAO,GAAGP,GAAG,CAACQ,YAAY,CAACP,IAAI,EAAEC,EAAE,EAAEV,IAAI,CAAC;IAEhD,IAAIe,OAAO,EAAE;MACXT,EAAE,CAACW,UAAU,CAACR,IAAI,EAAEC,EAAE,EAAEV,IAAI,CAAC;IAC9B;IACDM,EAAE,CAACY,OAAO,CAACT,IAAI,EAAEC,EAAE,EAAEV,IAAI,CAACmB,MAAM,CAAClB,KAAK,CAAC,CAAC;IACxCI,QAAQ,CAACC,EAAE,CAAC;IAEZ,OAAO,IAAI;GACZ;AAxBD,CAAA;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { RemoveMarkStep } from 'prosemirror-transform';
|
|
2
|
+
|
|
3
|
+
// This is a variation on the removeMark transform in
|
|
4
|
+
// https://github.com/ProseMirror/prosemirror-transform/blob/master/src/mark.js#L44
|
|
5
|
+
/** This will walk the full doc and remove the Marks that fail the validator method */
|
|
6
|
+
var validateAndRemoveMarks = function (markType, validator) {
|
|
7
|
+
return function (state, dispatch) {
|
|
8
|
+
if (!dispatch) return false;
|
|
9
|
+
var from = 0;
|
|
10
|
+
var to = state.doc.content.size;
|
|
11
|
+
var tr = state.tr;
|
|
12
|
+
var matched = [];
|
|
13
|
+
var step = 0;
|
|
14
|
+
tr.doc.nodesBetween(from, to, function (node, pos) {
|
|
15
|
+
step++;
|
|
16
|
+
var foundMark = markType.isInSet(node.marks);
|
|
17
|
+
if (foundMark && !validator(foundMark.attrs)) {
|
|
18
|
+
matched.push({
|
|
19
|
+
style: foundMark,
|
|
20
|
+
from: Math.max(pos, from),
|
|
21
|
+
to: Math.min(pos + node.nodeSize, to),
|
|
22
|
+
step: step
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
matched.forEach(function (m) {
|
|
27
|
+
return tr.step(new RemoveMarkStep(m.from, m.to, m.style));
|
|
28
|
+
});
|
|
29
|
+
dispatch(tr);
|
|
30
|
+
return true;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export { validateAndRemoveMarks };
|
|
34
|
+
//# sourceMappingURL=validateAndRemoveMarks.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateAndRemoveMarks.mjs","sources":["../../../../../src/RichTextEditor/utils/commands/validateAndRemoveMarks.ts"],"sourcesContent":["import { Mark, MarkType } from \"prosemirror-model\"\nimport { EditorState, Transaction } from \"prosemirror-state\"\nimport { RemoveMarkStep } from \"prosemirror-transform\"\n\ntype KnownAttrs = {\n varibleHref?: string\n href?: string\n}\n\nexport type AttrsValidator = (\n attrs: KnownAttrs & { [key: string]: unknown }\n) => boolean | unknown\n\ntype MatchedMark = {\n style: Mark\n from: number\n to: number\n step: number\n}\n\n// This is a variation on the removeMark transform in\n// https://github.com/ProseMirror/prosemirror-transform/blob/master/src/mark.js#L44\n/** This will walk the full doc and remove the Marks that fail the validator method */\nexport const validateAndRemoveMarks =\n (markType: MarkType, validator: AttrsValidator) =>\n (state: EditorState, dispatch?: (tx: Transaction) => void) => {\n if (!dispatch) return false\n\n const from = 0\n const to = state.doc.content.size\n const { tr } = state\n\n const matched: MatchedMark[] = []\n\n let step = 0\n\n tr.doc.nodesBetween(from, to, (node, pos) => {\n step++\n\n const foundMark = markType.isInSet(node.marks)\n\n if (foundMark && !validator(foundMark.attrs)) {\n matched.push({\n style: foundMark,\n from: Math.max(pos, from),\n to: Math.min(pos + node.nodeSize, to),\n step,\n })\n }\n })\n\n matched.forEach(m => tr.step(new RemoveMarkStep(m.from, m.to, m.style)))\n dispatch(tr)\n return true\n }\n"],"names":["validateAndRemoveMarks","markType","validator","state","dispatch","from","to","doc","content","size","tr","matched","step","nodesBetween","node","pos","foundMark","isInSet","marks","attrs","push","style","Math","max","min","nodeSize","forEach","m","RemoveMarkStep"],"mappings":";;AAoBA;AACA;AACA;AACa,IAAAA,sBAAsB,GACjC,SAAAA,CAACC,QAAkB,EAAEC,SAAyB,EAAA;EAC9C,OAAA,UAACC,KAAkB,EAAEC,QAAoC,EAAA;IACvD,IAAI,CAACA,QAAQ,EAAE,OAAO,KAAK;IAE3B,IAAMC,IAAI,GAAG,CAAC;IACd,IAAMC,EAAE,GAAGH,KAAK,CAACI,GAAG,CAACC,OAAO,CAACC,IAAI;IACzB,IAAAC,EAAE,GAAKP,KAAK,CAAAO,EAAV;IAEV,IAAMC,OAAO,GAAkB,EAAE;IAEjC,IAAIC,IAAI,GAAG,CAAC;IAEZF,EAAE,CAACH,GAAG,CAACM,YAAY,CAACR,IAAI,EAAEC,EAAE,EAAE,UAACQ,IAAI,EAAEC,GAAG,EAAA;MACtCH,IAAI,EAAE;MAEN,IAAMI,SAAS,GAAGf,QAAQ,CAACgB,OAAO,CAACH,IAAI,CAACI,KAAK,CAAC;MAE9C,IAAIF,SAAS,IAAI,CAACd,SAAS,CAACc,SAAS,CAACG,KAAK,CAAC,EAAE;QAC5CR,OAAO,CAACS,IAAI,CAAC;UACXC,KAAK,EAAEL,SAAS;UAChBX,IAAI,EAAEiB,IAAI,CAACC,GAAG,CAACR,GAAG,EAAEV,IAAI,CAAC;UACzBC,EAAE,EAAEgB,IAAI,CAACE,GAAG,CAACT,GAAG,GAAGD,IAAI,CAACW,QAAQ,EAAEnB,EAAE,CAAC;UACrCM,IAAI,EAAAA;QACL,CAAA,CAAC;MACH;IACH,CAAC,CAAC;IAEFD,OAAO,CAACe,OAAO,CAAC,UAAAC,CAAC,EAAA;MAAI,OAAAjB,EAAE,CAACE,IAAI,CAAC,IAAIgB,cAAc,CAACD,CAAC,CAACtB,IAAI,EAAEsB,CAAC,CAACrB,EAAE,EAAEqB,CAAC,CAACN,KAAK,CAAC,CAAC;IAAlD,CAAkD,CAAC;IACxEjB,QAAQ,CAACM,EAAE,CAAC;IACZ,OAAO,IAAI;GACZ;AA7BD,CAAA;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Transaction } from 'prosemirror-state';
|
|
2
|
+
import { EditorView } from 'prosemirror-view';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* createRichTextEditor
|
|
6
|
+
* Initialize a ProseMirror EditorView
|
|
7
|
+
*/
|
|
8
|
+
var createRichTextEditor = function (_a) {
|
|
9
|
+
var initialEditorState = _a.initialEditorState,
|
|
10
|
+
node = _a.node,
|
|
11
|
+
_b = _a.onChange,
|
|
12
|
+
onChange = _b === void 0 ? function () {
|
|
13
|
+
return undefined;
|
|
14
|
+
} : _b,
|
|
15
|
+
attributes = _a.attributes,
|
|
16
|
+
_c = _a.isEditable,
|
|
17
|
+
isEditable = _c === void 0 ? function () {
|
|
18
|
+
return true;
|
|
19
|
+
} : _c;
|
|
20
|
+
// Handle transactions eminating from the EditorView instance
|
|
21
|
+
var dispatch = function (tx) {
|
|
22
|
+
var newEditorState = editorView && editorView.state.apply(tx);
|
|
23
|
+
if (newEditorState) {
|
|
24
|
+
onChange(newEditorState);
|
|
25
|
+
editorView && editorView.updateState(newEditorState);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
// Allow the dispatcher to handle either a Command or a Transaction so we can
|
|
29
|
+
// change the state more ergonomically upstream
|
|
30
|
+
var dispatchCommandOrTransaction = function (commandOrTransaction) {
|
|
31
|
+
if (commandOrTransaction instanceof Transaction) {
|
|
32
|
+
dispatch(commandOrTransaction);
|
|
33
|
+
} else if (editorView) {
|
|
34
|
+
commandOrTransaction(editorView.state, dispatch);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
var editorView = new EditorView(node, {
|
|
38
|
+
state: initialEditorState,
|
|
39
|
+
dispatchTransaction: dispatchCommandOrTransaction,
|
|
40
|
+
attributes: attributes,
|
|
41
|
+
editable: isEditable
|
|
42
|
+
});
|
|
43
|
+
return {
|
|
44
|
+
destroy: function () {
|
|
45
|
+
editorView && editorView.destroy();
|
|
46
|
+
},
|
|
47
|
+
dispatchTransaction: dispatchCommandOrTransaction
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export { createRichTextEditor };
|
|
51
|
+
//# sourceMappingURL=createRichTextEditor.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRichTextEditor.mjs","sources":["../../../../../src/RichTextEditor/utils/core/createRichTextEditor.ts"],"sourcesContent":["import { EditorState, Transaction } from \"prosemirror-state\"\nimport { EditorView as ProseMirrorEditorView } from \"prosemirror-view\"\nimport { CommandOrTransaction } from \"./types\"\n\ntype EditorAPI = {\n destroy: () => void\n dispatchTransaction: (maybeCommand: CommandOrTransaction) => void\n}\n\ntype EditorArgs = {\n initialEditorState: EditorState\n node: HTMLElement\n onChange: (editorState: EditorState) => void\n /*\n * Pass in HTML attributes into the parent RTE node\n */\n attributes?: {\n [name: string]: string\n }\n isEditable?: () => boolean\n}\n\n/**\n * createRichTextEditor\n * Initialize a ProseMirror EditorView\n */\nexport const createRichTextEditor = ({\n initialEditorState,\n node,\n onChange = () => undefined,\n attributes,\n isEditable = () => true,\n}: EditorArgs): EditorAPI => {\n // Handle transactions eminating from the EditorView instance\n const dispatch = (tx: Transaction): void => {\n const newEditorState = editorView && editorView.state.apply(tx)\n if (newEditorState) {\n onChange(newEditorState)\n editorView && editorView.updateState(newEditorState)\n }\n }\n\n // Allow the dispatcher to handle either a Command or a Transaction so we can\n // change the state more ergonomically upstream\n const dispatchCommandOrTransaction = (\n commandOrTransaction: CommandOrTransaction\n ): void => {\n if (commandOrTransaction instanceof Transaction) {\n dispatch(commandOrTransaction)\n } else if (editorView) {\n commandOrTransaction(editorView.state, dispatch)\n }\n }\n\n const editorView = new ProseMirrorEditorView(node, {\n state: initialEditorState,\n dispatchTransaction: dispatchCommandOrTransaction,\n attributes,\n editable: isEditable,\n })\n\n return {\n destroy: () => {\n editorView && editorView.destroy()\n },\n dispatchTransaction: dispatchCommandOrTransaction,\n }\n}\n"],"names":["createRichTextEditor","_a","initialEditorState","node","_b","onChange","undefined","attributes","_c","isEditable","dispatch","tx","newEditorState","editorView","state","apply","updateState","dispatchCommandOrTransaction","commandOrTransaction","Transaction","ProseMirrorEditorView","dispatchTransaction","editable","destroy"],"mappings":";;;AAsBA;;;AAGG;AACI,IAAMA,oBAAoB,GAAG,SAAAA,CAACC,EAMxB,EAAA;EALX,IAAAC,kBAAkB,GAAAD,EAAA,CAAAC,kBAAA;IAClBC,IAAI,GAAAF,EAAA,CAAAE,IAAA;IACJC,EAAA,GAAAH,EAAA,CAAAI,QAA0B;IAA1BA,QAAQ,GAAGD,EAAA,KAAA,KAAA,CAAA,GAAA,YAAA;MAAM,OAAAE,SAAS;IAAA,CAAA,GAAAF,EAAA;IAC1BG,UAAU,GAAAN,EAAA,CAAAM,UAAA;IACVC,EAAA,GAAAP,EAAA,CAAAQ,UAAuB;IAAvBA,UAAU,GAAGD,EAAA,KAAA,KAAA,CAAA,GAAA,YAAA;MAAM,OAAA,IAAI;IAAA,CAAA,GAAAA,EAAA;;EAGvB,IAAME,QAAQ,GAAG,SAAAA,CAACC,EAAe,EAAA;IAC/B,IAAMC,cAAc,GAAGC,UAAU,IAAIA,UAAU,CAACC,KAAK,CAACC,KAAK,CAACJ,EAAE,CAAC;IAC/D,IAAIC,cAAc,EAAE;MAClBP,QAAQ,CAACO,cAAc,CAAC;MACxBC,UAAU,IAAIA,UAAU,CAACG,WAAW,CAACJ,cAAc,CAAC;IACrD;EACH,CAAC;;;EAID,IAAMK,4BAA4B,GAAG,SAAAA,CACnCC,oBAA0C,EAAA;IAE1C,IAAIA,oBAAoB,YAAYC,WAAW,EAAE;MAC/CT,QAAQ,CAACQ,oBAAoB,CAAC;IAC/B,CAAA,MAAM,IAAIL,UAAU,EAAE;MACrBK,oBAAoB,CAACL,UAAU,CAACC,KAAK,EAAEJ,QAAQ,CAAC;IACjD;EACH,CAAC;EAED,IAAMG,UAAU,GAAG,IAAIO,UAAqB,CAACjB,IAAI,EAAE;IACjDW,KAAK,EAAEZ,kBAAkB;IACzBmB,mBAAmB,EAAEJ,4BAA4B;IACjDV,UAAU,EAAAA,UAAA;IACVe,QAAQ,EAAEb;EACX,CAAA,CAAC;EAEF,OAAO;IACLc,OAAO,EAAE,SAAAA,CAAA,EAAA;MACPV,UAAU,IAAIA,UAAU,CAACU,OAAO,EAAE;IACnC,CAAA;IACDF,mBAAmB,EAAEJ;GACtB;AACH,CAAA;"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { __assign } from 'tslib';
|
|
2
|
+
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
3
|
+
import { createRichTextEditor } from '../createRichTextEditor.mjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* useRichTextEditor
|
|
7
|
+
* React hook to initialize a ProseMirror editor, handle binding it to the DOM,
|
|
8
|
+
* and updating the state within React’s lifecycle.
|
|
9
|
+
*
|
|
10
|
+
* @param {initialEditorState} ProseMirror state
|
|
11
|
+
* @returns {Array}
|
|
12
|
+
*/
|
|
13
|
+
var useRichTextEditor = function (initialEditorState,
|
|
14
|
+
/*
|
|
15
|
+
* Pass in HTML attributes into the parent RTE node
|
|
16
|
+
*/
|
|
17
|
+
attributes, options) {
|
|
18
|
+
options = __assign({
|
|
19
|
+
editable: true
|
|
20
|
+
}, options);
|
|
21
|
+
var _a = useState(initialEditorState),
|
|
22
|
+
editorState = _a[0],
|
|
23
|
+
setEditorState = _a[1];
|
|
24
|
+
// Refs to hold the methods returned from ProseMirror’s initialization
|
|
25
|
+
var destroyEditorRef = useRef();
|
|
26
|
+
var dispatchTransactionRef = useRef(function () {
|
|
27
|
+
return undefined;
|
|
28
|
+
});
|
|
29
|
+
// Construct a consistent reference to call the dispatchTransactionRef without
|
|
30
|
+
// forcing the consumer to unwind it
|
|
31
|
+
var dispatchTransaction = useCallback(function (commandOrTransaction) {
|
|
32
|
+
dispatchTransactionRef.current(commandOrTransaction);
|
|
33
|
+
}, [dispatchTransactionRef]);
|
|
34
|
+
// Hold editableStatus as a ref so we can toggle its status
|
|
35
|
+
var editableStatusRef = useRef(options.editable);
|
|
36
|
+
var setEditableStatus = useCallback(function (status) {
|
|
37
|
+
editableStatusRef.current = status;
|
|
38
|
+
// Trigger an update within ProseMirror by issuing a noop transaction
|
|
39
|
+
dispatchTransaction(function (state, dispatch) {
|
|
40
|
+
if (!dispatch) return false;
|
|
41
|
+
dispatch(state.tr);
|
|
42
|
+
return true;
|
|
43
|
+
});
|
|
44
|
+
}, [editableStatusRef]);
|
|
45
|
+
var editorRef = useCallback(function (node) {
|
|
46
|
+
if (node !== null) {
|
|
47
|
+
var instance = createRichTextEditor({
|
|
48
|
+
node: node,
|
|
49
|
+
initialEditorState: editorState,
|
|
50
|
+
onChange: setEditorState,
|
|
51
|
+
isEditable: function () {
|
|
52
|
+
return editableStatusRef.current;
|
|
53
|
+
},
|
|
54
|
+
attributes: attributes
|
|
55
|
+
});
|
|
56
|
+
destroyEditorRef.current = instance.destroy;
|
|
57
|
+
dispatchTransactionRef.current = instance.dispatchTransaction;
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
// Including editorState in the dependencies here will cause an endless
|
|
61
|
+
// loop as the initialization changes its value
|
|
62
|
+
[setEditorState, editableStatusRef]);
|
|
63
|
+
// Tear down ProseMirror when the consuming component is unmounted
|
|
64
|
+
useEffect(function () {
|
|
65
|
+
return function () {
|
|
66
|
+
if (destroyEditorRef.current) {
|
|
67
|
+
destroyEditorRef.current();
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}, [destroyEditorRef]);
|
|
71
|
+
return [editorRef, editorState, dispatchTransaction, setEditableStatus];
|
|
72
|
+
};
|
|
73
|
+
export { useRichTextEditor };
|
|
74
|
+
//# sourceMappingURL=useRichTextEditor.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRichTextEditor.mjs","sources":["../../../../../../src/RichTextEditor/utils/core/hooks/useRichTextEditor.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\"\nimport { EditorState } from \"prosemirror-state\"\nimport { createRichTextEditor } from \"../createRichTextEditor\"\nimport { CommandOrTransaction } from \"../types\"\n\ntype RTEOptions = {\n editable: boolean\n}\n\ntype SetEditableStatus = (status: boolean) => void\n\ntype UseRichTextEditorReturnValue = [\n React.RefCallback<HTMLElement>,\n EditorState,\n (commandOrTransaction: CommandOrTransaction) => void,\n SetEditableStatus,\n]\n\n/**\n * useRichTextEditor\n * React hook to initialize a ProseMirror editor, handle binding it to the DOM,\n * and updating the state within React’s lifecycle.\n *\n * @param {initialEditorState} ProseMirror state\n * @returns {Array}\n */\nexport const useRichTextEditor = (\n initialEditorState: EditorState,\n /*\n * Pass in HTML attributes into the parent RTE node\n */\n attributes?: Record<string, string>,\n options?: RTEOptions\n): UseRichTextEditorReturnValue => {\n options = {\n editable: true,\n ...options,\n }\n const [editorState, setEditorState] =\n useState<EditorState>(initialEditorState)\n // Refs to hold the methods returned from ProseMirror’s initialization\n const destroyEditorRef = useRef<() => void>()\n const dispatchTransactionRef = useRef<\n (commandOrTransaction: CommandOrTransaction) => void\n >(() => undefined)\n\n // Construct a consistent reference to call the dispatchTransactionRef without\n // forcing the consumer to unwind it\n const dispatchTransaction = useCallback(\n (commandOrTransaction: CommandOrTransaction) => {\n dispatchTransactionRef.current(commandOrTransaction)\n },\n [dispatchTransactionRef]\n )\n\n // Hold editableStatus as a ref so we can toggle its status\n const editableStatusRef = useRef<boolean>(options.editable)\n const setEditableStatus = useCallback<SetEditableStatus>(\n status => {\n editableStatusRef.current = status\n // Trigger an update within ProseMirror by issuing a noop transaction\n dispatchTransaction((state, dispatch) => {\n if (!dispatch) return false\n dispatch(state.tr)\n return true\n })\n },\n [editableStatusRef]\n )\n\n const editorRef = useCallback(\n (node: HTMLElement) => {\n if (node !== null) {\n const instance = createRichTextEditor({\n node,\n initialEditorState: editorState,\n onChange: setEditorState,\n isEditable: () => editableStatusRef.current,\n attributes,\n })\n destroyEditorRef.current = instance.destroy\n dispatchTransactionRef.current = instance.dispatchTransaction\n }\n },\n\n // Including editorState in the dependencies here will cause an endless\n // loop as the initialization changes its value\n [setEditorState, editableStatusRef]\n )\n\n // Tear down ProseMirror when the consuming component is unmounted\n useEffect(\n () => () => {\n if (destroyEditorRef.current) {\n destroyEditorRef.current()\n }\n },\n [destroyEditorRef]\n )\n\n return [editorRef, editorState, dispatchTransaction, setEditableStatus]\n}\n"],"names":["useRichTextEditor","initialEditorState","attributes","options","editable","_a","useState","editorState","setEditorState","destroyEditorRef","useRef","dispatchTransactionRef","undefined","dispatchTransaction","useCallback","commandOrTransaction","current","editableStatusRef","setEditableStatus","status","state","dispatch","tr","editorRef","node","instance","createRichTextEditor","onChange","isEditable","destroy","useEffect"],"mappings":";;;;AAkBA;;;;;;;AAOG;AACI,IAAMA,iBAAiB,GAAG,SAAAA,CAC/BC,kBAA+B;AAC/B;;AAEG;AACHC,UAAmC,EACnCC,OAAoB,EAAA;EAEpBA,OAAO;IACLC,QAAQ,EAAE;EACP,CAAA,EAAAD,OAAO,CACX;EACK,IAAAE,EAAA,GACJC,QAAQ,CAAcL,kBAAkB,CAAC;IADpCM,WAAW,GAAAF,EAAA,CAAA,CAAA,CAAA;IAAEG,cAAc,GAAAH,EAAA,CAAA,CAAA,CACS;;EAE3C,IAAMI,gBAAgB,GAAGC,MAAM,EAAc;EAC7C,IAAMC,sBAAsB,GAAGD,MAAM,CAEnC,YAAA;IAAM,OAAAE,SAAS;EAAA,CAAA,CAAC;;;EAIlB,IAAMC,mBAAmB,GAAGC,WAAW,CACrC,UAACC,oBAA0C,EAAA;IACzCJ,sBAAsB,CAACK,OAAO,CAACD,oBAAoB,CAAC;EACtD,CAAC,EACD,CAACJ,sBAAsB,CAAC,CACzB;;EAGD,IAAMM,iBAAiB,GAAGP,MAAM,CAAUP,OAAO,CAACC,QAAQ,CAAC;EAC3D,IAAMc,iBAAiB,GAAGJ,WAAW,CACnC,UAAAK,MAAM,EAAA;IACJF,iBAAiB,CAACD,OAAO,GAAGG,MAAM;;IAElCN,mBAAmB,CAAC,UAACO,KAAK,EAAEC,QAAQ,EAAA;MAClC,IAAI,CAACA,QAAQ,EAAE,OAAO,KAAK;MAC3BA,QAAQ,CAACD,KAAK,CAACE,EAAE,CAAC;MAClB,OAAO,IAAI;IACb,CAAC,CAAC;EACJ,CAAC,EACD,CAACL,iBAAiB,CAAC,CACpB;EAED,IAAMM,SAAS,GAAGT,WAAW,CAC3B,UAACU,IAAiB,EAAA;IAChB,IAAIA,IAAI,KAAK,IAAI,EAAE;MACjB,IAAMC,QAAQ,GAAGC,oBAAoB,CAAC;QACpCF,IAAI,EAAAA,IAAA;QACJvB,kBAAkB,EAAEM,WAAW;QAC/BoB,QAAQ,EAAEnB,cAAc;QACxBoB,UAAU,EAAE,SAAAA,CAAA,EAAM;UAAA,OAAAX,iBAAiB,CAACD,OAAO;QAAA,CAAA;QAC3Cd,UAAU,EAAAA;MACX,CAAA,CAAC;MACFO,gBAAgB,CAACO,OAAO,GAAGS,QAAQ,CAACI,OAAO;MAC3ClB,sBAAsB,CAACK,OAAO,GAAGS,QAAQ,CAACZ,mBAAmB;IAC9D;EACF,CAAA;;;EAID,CAACL,cAAc,EAAES,iBAAiB,CAAC,CACpC;;EAGDa,SAAS,CACP;IAAM,OAAA,YAAA;MACJ,IAAIrB,gBAAgB,CAACO,OAAO,EAAE;QAC5BP,gBAAgB,CAACO,OAAO,CAAA,CAAE;MAC3B;IACH,CAAC;EAAA,CAAA,EACD,CAACP,gBAAgB,CAAC,CACnB;EAED,OAAO,CAACc,SAAS,EAAEhB,WAAW,EAAEM,mBAAmB,EAAEK,iBAAiB,CAAC;AACzE,CAAA;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { wrappingInputRule } from 'prosemirror-inputrules';
|
|
2
|
+
|
|
3
|
+
// Given a list node type, returns an input rule that turns a number
|
|
4
|
+
// followed by a dot at the start of a textblock into an ordered list.
|
|
5
|
+
// Copied from https://github.com/ProseMirror/prosemirror-example-setup/blob/master/src/inputrules.js
|
|
6
|
+
var orderedListRule = function (nodeType) {
|
|
7
|
+
return wrappingInputRule(/^(\d+)\.\s$/, nodeType, function (match) {
|
|
8
|
+
return {
|
|
9
|
+
order: +match[1]
|
|
10
|
+
};
|
|
11
|
+
}, function (match, node) {
|
|
12
|
+
return node.childCount + node.attrs.order == +match[1];
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
// Given a list node type, returns an input rule that turns a bullet
|
|
16
|
+
// (dash, plush, or asterisk) at the start of a textblock into a
|
|
17
|
+
// bullet list.
|
|
18
|
+
// Copied from https://github.com/ProseMirror/prosemirror-example-setup/blob/master/src/inputrules.js
|
|
19
|
+
var bulletListRule = function (nodeType) {
|
|
20
|
+
return wrappingInputRule(/^\s*([-+*])\s$/, nodeType);
|
|
21
|
+
};
|
|
22
|
+
export { bulletListRule, orderedListRule };
|
|
23
|
+
//# sourceMappingURL=inputrules.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputrules.mjs","sources":["../../../../../src/RichTextEditor/utils/core/inputrules.ts"],"sourcesContent":["import { InputRule, wrappingInputRule } from \"prosemirror-inputrules\"\nimport { NodeType } from \"prosemirror-model\"\n\n// Given a list node type, returns an input rule that turns a number\n// followed by a dot at the start of a textblock into an ordered list.\n// Copied from https://github.com/ProseMirror/prosemirror-example-setup/blob/master/src/inputrules.js\nexport const orderedListRule = (nodeType: NodeType): InputRule =>\n wrappingInputRule(\n /^(\\d+)\\.\\s$/,\n nodeType,\n match => ({ order: +match[1] }),\n (match, node) => node.childCount + node.attrs.order == +match[1]\n )\n\n// Given a list node type, returns an input rule that turns a bullet\n// (dash, plush, or asterisk) at the start of a textblock into a\n// bullet list.\n// Copied from https://github.com/ProseMirror/prosemirror-example-setup/blob/master/src/inputrules.js\nexport const bulletListRule = (nodeType: NodeType): InputRule =>\n wrappingInputRule(/^\\s*([-+*])\\s$/, nodeType)\n"],"names":["orderedListRule","nodeType","wrappingInputRule","match","order","node","childCount","attrs","bulletListRule"],"mappings":";;AAGA;AACA;AACA;AACO,IAAMA,eAAe,GAAG,SAAAA,CAACC,QAAkB,EAAA;EAChD,OAAAC,iBAAiB,CACf,aAAa,EACbD,QAAQ,EACR,UAAAE,KAAK,EAAI;IAAA,OAAC;MAAEC,KAAK,EAAE,CAACD,KAAK,CAAC,CAAC;IAAG,CAAA;EAAC,CAAA,EAC/B,UAACA,KAAK,EAAEE,IAAI,EAAA;IAAK,OAAAA,IAAI,CAACC,UAAU,GAAGD,IAAI,CAACE,KAAK,CAACH,KAAK,IAAI,CAACD,KAAK,CAAC,CAAC,CAAC;EAAA,CAAA,CACjE;AALD,CAKC;AAEH;AACA;AACA;AACA;AACO,IAAMK,cAAc,GAAG,SAAAA,CAACP,QAAkB,EAAA;EAC/C,OAAAC,iBAAiB,CAAC,gBAAgB,EAAED,QAAQ,CAAC;AAA7C,CAAA;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Node } from 'prosemirror-model';
|
|
2
|
+
import { EditorState } from 'prosemirror-state';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* createEditorState
|
|
6
|
+
* Create a ProseMirror EditorState. Wrapper for EditorState.create to make the
|
|
7
|
+
* API obvious to consumers
|
|
8
|
+
*/
|
|
9
|
+
var createEditorState = function (schema, doc, plugins) {
|
|
10
|
+
if (plugins === void 0) {
|
|
11
|
+
plugins = [];
|
|
12
|
+
}
|
|
13
|
+
return EditorState.create({
|
|
14
|
+
doc: doc,
|
|
15
|
+
schema: schema,
|
|
16
|
+
plugins: plugins
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Create a ProseMirror doc node from the combination of a schema and the object
|
|
21
|
+
* representation of a document
|
|
22
|
+
*/
|
|
23
|
+
var createDocNode = function (schema, docObject) {
|
|
24
|
+
return Node.fromJSON(schema, docObject);
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Create a ProseMirror doc node from the combination of a schema and the doc’s
|
|
28
|
+
* content array (rather than the top-level doc node).
|
|
29
|
+
*/
|
|
30
|
+
var createDocNodeFromContent = function (schema, docContent) {
|
|
31
|
+
return createDocNode(schema, {
|
|
32
|
+
type: "doc",
|
|
33
|
+
content: docContent
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
export { createDocNode, createDocNodeFromContent, createEditorState };
|
|
37
|
+
//# sourceMappingURL=state.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.mjs","sources":["../../../../../src/RichTextEditor/utils/core/state.ts"],"sourcesContent":["import { Node, Schema } from \"prosemirror-model\"\nimport { EditorState, Plugin } from \"prosemirror-state\"\nimport { Doc, DocContent } from \"./types\"\n\n/**\n * createEditorState\n * Create a ProseMirror EditorState. Wrapper for EditorState.create to make the\n * API obvious to consumers\n */\nexport const createEditorState = (\n schema: Schema,\n doc: Node | undefined,\n plugins: Plugin[] = []\n): EditorState => EditorState.create({ doc, schema, plugins })\n\n/**\n * Create a ProseMirror doc node from the combination of a schema and the object\n * representation of a document\n */\nexport const createDocNode = (schema: Schema, docObject: Doc): Node =>\n Node.fromJSON(schema, docObject)\n\n/**\n * Create a ProseMirror doc node from the combination of a schema and the doc’s\n * content array (rather than the top-level doc node).\n */\nexport const createDocNodeFromContent = (\n schema: Schema,\n docContent: DocContent\n): Node => createDocNode(schema, { type: \"doc\", content: docContent })\n"],"names":["createEditorState","schema","doc","plugins","EditorState","create","createDocNode","docObject","Node","fromJSON","createDocNodeFromContent","docContent","type","content"],"mappings":";;;AAIA;;;;AAIG;IACUA,iBAAiB,GAAG,SAAAA,CAC/BC,MAAc,EACdC,GAAqB,EACrBC,OAAsB,EAAA;EAAtB,IAAAA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAsB,GAAA,EAAA;EAAA;EACN,OAAAC,WAAW,CAACC,MAAM,CAAC;IAAEH,GAAG,EAAAA,GAAA;IAAED,MAAM,EAAAA,MAAA;IAAEE,OAAO,EAAAA;EAAA,CAAE,CAAC;AAA5C,CAA4C;AAE9D;;;AAGG;AACU,IAAAG,aAAa,GAAG,SAAAA,CAACL,MAAc,EAAEM,SAAc,EAAA;EAC1D,OAAAC,IAAI,CAACC,QAAQ,CAACR,MAAM,EAAEM,SAAS,CAAC;AAAhC,CAAgC;AAElC;;;AAGG;AACU,IAAAG,wBAAwB,GAAG,SAAAA,CACtCT,MAAc,EACdU,UAAsB,EAAA;EACb,OAAAL,aAAa,CAACL,MAAM,EAAE;IAAEW,IAAI,EAAE,KAAK;IAAEC,OAAO,EAAEF;EAAY,CAAA,CAAC;AAA3D,CAAA;"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import debounce from 'lodash.debounce';
|
|
2
|
+
import { Plugin } from 'prosemirror-state';
|
|
3
|
+
import { getMarkAttrs } from '../../commands/getMarkAttrs.mjs';
|
|
4
|
+
import { getMarkRange } from '../../commands/getMarkRange.mjs';
|
|
5
|
+
import 'prosemirror-utils';
|
|
6
|
+
import { markContainsSelection } from '../../commands/markContainsSelection.mjs';
|
|
7
|
+
import { markIsActive } from '../../commands/markIsActive.mjs';
|
|
8
|
+
import { removeMark } from '../../commands/removeMark.mjs';
|
|
9
|
+
import { updateMark } from '../../commands/updateMark.mjs';
|
|
10
|
+
import { validateAndRemoveMarks } from '../../commands/validateAndRemoveMarks.mjs';
|
|
11
|
+
import { LinkEditor } from './components/LinkEditor/LinkEditor.mjs';
|
|
12
|
+
import { createReactTooltipWrapper } from './createReactTooltipWrapper.mjs';
|
|
13
|
+
var LinkManager = /** @class */function () {
|
|
14
|
+
function LinkManager(view, markType, editorComponent, linkAttributeValidator) {
|
|
15
|
+
var _this = this;
|
|
16
|
+
this.editorComponent = editorComponent;
|
|
17
|
+
this.linkActive = function (state) {
|
|
18
|
+
return markIsActive(state, markType);
|
|
19
|
+
};
|
|
20
|
+
this.validateLinks = validateAndRemoveMarks(markType, linkAttributeValidator);
|
|
21
|
+
this.markType = markType;
|
|
22
|
+
this.tooltipTarget = null;
|
|
23
|
+
this.update(view, null);
|
|
24
|
+
this.onResize = debounce(function () {
|
|
25
|
+
_this.update(view, null);
|
|
26
|
+
}, 15);
|
|
27
|
+
}
|
|
28
|
+
LinkManager.prototype.update = function (view, lastState) {
|
|
29
|
+
var state = view.state;
|
|
30
|
+
// Don’t do anything if the document/TextSelection didn't change
|
|
31
|
+
if (lastState && lastState.doc.eq(state.doc) && lastState.selection.eq(state.selection)) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
// Is the selection empty or not a link
|
|
35
|
+
//
|
|
36
|
+
// TODO: Also need to check if the selection is _only_ a link. If it covers
|
|
37
|
+
// more than a single mark then we don’t want to allow edited
|
|
38
|
+
if (state.selection.empty || !this.linkActive(state)) {
|
|
39
|
+
this.destroyElement(view);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// If there is a selection and we dont have something in DOM
|
|
43
|
+
// then create element and inject
|
|
44
|
+
if (!this.tooltipTarget) {
|
|
45
|
+
this.createElement(view);
|
|
46
|
+
}
|
|
47
|
+
this.updateElement(view);
|
|
48
|
+
};
|
|
49
|
+
LinkManager.prototype.destroy = function () {
|
|
50
|
+
var _a;
|
|
51
|
+
(_a = this.tooltipTarget) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
52
|
+
window.removeEventListener("resize", this.onResize);
|
|
53
|
+
};
|
|
54
|
+
LinkManager.prototype.createElement = function (view) {
|
|
55
|
+
if (!view.dom.parentElement) return;
|
|
56
|
+
this.tooltipTarget = createReactTooltipWrapper(view.dom.parentElement, this.editorComponent, this.getEditorProps(view));
|
|
57
|
+
window.addEventListener("resize", this.onResize);
|
|
58
|
+
};
|
|
59
|
+
LinkManager.prototype.updateElement = function (view) {
|
|
60
|
+
var _a;
|
|
61
|
+
(_a = this.tooltipTarget) === null || _a === void 0 ? void 0 : _a.update(this.getEditorProps(view));
|
|
62
|
+
};
|
|
63
|
+
LinkManager.prototype.destroyElement = function (view) {
|
|
64
|
+
var _a;
|
|
65
|
+
view.dispatch(this.validateLinks);
|
|
66
|
+
(_a = this.tooltipTarget) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
67
|
+
this.tooltipTarget = null;
|
|
68
|
+
};
|
|
69
|
+
LinkManager.prototype.getEditorProps = function (view) {
|
|
70
|
+
var _this = this;
|
|
71
|
+
var selectionPosition = null;
|
|
72
|
+
var selection = view.state.selection;
|
|
73
|
+
var contained = markContainsSelection(view.state, this.markType);
|
|
74
|
+
var $from = selection.$from;
|
|
75
|
+
var range = getMarkRange($from, this.markType);
|
|
76
|
+
var start;
|
|
77
|
+
var end;
|
|
78
|
+
if (!contained && range) {
|
|
79
|
+
start = view.coordsAtPos(range.from);
|
|
80
|
+
end = view.coordsAtPos(range.to);
|
|
81
|
+
} else {
|
|
82
|
+
start = view.coordsAtPos(selection.from);
|
|
83
|
+
if (selection.to === view.state.doc.content.size) {
|
|
84
|
+
end = view.coordsAtPos(selection.to - 1);
|
|
85
|
+
} else {
|
|
86
|
+
end = view.coordsAtPos(selection.to);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
selectionPosition = {
|
|
90
|
+
top: start.top,
|
|
91
|
+
left: start.left,
|
|
92
|
+
width: end.right - start.left,
|
|
93
|
+
height: start.top - start.bottom
|
|
94
|
+
};
|
|
95
|
+
return {
|
|
96
|
+
removeMark: function () {
|
|
97
|
+
view.dispatch(removeMark(_this.markType, {
|
|
98
|
+
toExtent: true
|
|
99
|
+
}));
|
|
100
|
+
},
|
|
101
|
+
updateAttrs: function (attrs) {
|
|
102
|
+
view.dispatch(updateMark(_this.markType, attrs, {
|
|
103
|
+
toExtent: true
|
|
104
|
+
}));
|
|
105
|
+
},
|
|
106
|
+
attrs: getMarkAttrs(view.state, this.markType),
|
|
107
|
+
selectionPosition: selectionPosition,
|
|
108
|
+
focusEditor: function () {
|
|
109
|
+
view.focus();
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
return LinkManager;
|
|
114
|
+
}();
|
|
115
|
+
var defaultLinkAttributeValidator = function (attrs) {
|
|
116
|
+
if (attrs == null) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
return attrs.href && attrs.href !== "";
|
|
120
|
+
};
|
|
121
|
+
var createLinkManager = function (_a) {
|
|
122
|
+
var markType = _a.markType,
|
|
123
|
+
_b = _a.editorComponent,
|
|
124
|
+
editorComponent = _b === void 0 ? LinkEditor : _b,
|
|
125
|
+
_c = _a.linkAttributeValidator,
|
|
126
|
+
linkAttributeValidator = _c === void 0 ? defaultLinkAttributeValidator : _c;
|
|
127
|
+
return new Plugin({
|
|
128
|
+
view: function (editorView) {
|
|
129
|
+
return new LinkManager(editorView, markType, editorComponent, linkAttributeValidator);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
export { createLinkManager };
|
|
134
|
+
//# sourceMappingURL=LinkManager.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkManager.mjs","sources":["../../../../../../src/RichTextEditor/utils/plugins/LinkManager/LinkManager.tsx"],"sourcesContent":["import { ComponentType } from \"react\"\nimport debounce from \"lodash.debounce\"\nimport { MarkType } from \"prosemirror-model\"\nimport { Command, EditorState, Plugin } from \"prosemirror-state\"\nimport {\n AttrsValidator,\n getMarkAttrs,\n getMarkRange,\n markContainsSelection,\n markIsActive,\n removeMark,\n updateMark,\n validateAndRemoveMarks,\n} from \"../../commands\"\nimport {\n LinkEditor,\n LinkEditorAttrs,\n LinkEditorProps,\n} from \"./components/LinkEditor\"\nimport { createReactTooltipWrapper } from \"./createReactTooltipWrapper\"\nimport { CAEditorView, SelectionPosition } from \"./types\"\n\nclass LinkManager {\n editorComponent: ComponentType<LinkEditorProps>\n linkActive: (state: EditorState) => boolean\n validateLinks: Command\n markType: MarkType\n tooltipTarget: {\n destroy: () => void\n update: (props: LinkEditorProps) => void\n } | null\n onResize: () => void\n\n constructor(\n view: CAEditorView,\n markType: MarkType,\n editorComponent: ComponentType<LinkEditorProps>,\n linkAttributeValidator: AttrsValidator\n ) {\n this.editorComponent = editorComponent\n this.linkActive = state => markIsActive(state, markType)\n this.validateLinks = validateAndRemoveMarks(\n markType,\n linkAttributeValidator\n )\n this.markType = markType\n this.tooltipTarget = null\n this.update(view, null)\n\n this.onResize = debounce(() => {\n this.update(view, null)\n }, 15)\n }\n\n update(view: CAEditorView, lastState: EditorState | null): void {\n const { state } = view\n\n // Don’t do anything if the document/TextSelection didn't change\n if (\n lastState &&\n lastState.doc.eq(state.doc) &&\n lastState.selection.eq(state.selection)\n ) {\n return\n }\n\n // Is the selection empty or not a link\n //\n // TODO: Also need to check if the selection is _only_ a link. If it covers\n // more than a single mark then we don’t want to allow edited\n if (state.selection.empty || !this.linkActive(state)) {\n this.destroyElement(view)\n return\n }\n\n // If there is a selection and we dont have something in DOM\n // then create element and inject\n if (!this.tooltipTarget) {\n this.createElement(view)\n }\n this.updateElement(view)\n }\n\n destroy(): void {\n this.tooltipTarget?.destroy()\n window.removeEventListener(\"resize\", this.onResize)\n }\n\n createElement(view: CAEditorView): void {\n if (!view.dom.parentElement) return\n this.tooltipTarget = createReactTooltipWrapper(\n view.dom.parentElement,\n this.editorComponent,\n this.getEditorProps(view)\n )\n window.addEventListener(\"resize\", this.onResize)\n }\n\n updateElement(view: CAEditorView): void {\n this.tooltipTarget?.update(this.getEditorProps(view))\n }\n\n destroyElement(view: CAEditorView): void {\n view.dispatch(this.validateLinks)\n this.tooltipTarget?.destroy()\n this.tooltipTarget = null\n }\n\n getEditorProps(view: CAEditorView): LinkEditorProps {\n let selectionPosition: SelectionPosition | null = null\n const { selection } = view.state\n const contained = markContainsSelection(view.state, this.markType)\n const { $from } = selection\n const range = getMarkRange($from, this.markType)\n let start\n let end\n if (!contained && range) {\n start = view.coordsAtPos(range.from)\n end = view.coordsAtPos(range.to)\n } else {\n start = view.coordsAtPos(selection.from)\n if (selection.to === view.state.doc.content.size) {\n end = view.coordsAtPos(selection.to - 1)\n } else {\n end = view.coordsAtPos(selection.to)\n }\n }\n\n selectionPosition = {\n top: start.top,\n left: start.left,\n width: end.right - start.left,\n height: start.top - start.bottom,\n }\n\n return {\n removeMark: () => {\n view.dispatch(removeMark(this.markType, { toExtent: true }))\n },\n updateAttrs: (attrs: { [key: string]: unknown }) => {\n view.dispatch(updateMark(this.markType, attrs, { toExtent: true }))\n },\n attrs: getMarkAttrs(view.state, this.markType) as LinkEditorAttrs,\n selectionPosition,\n focusEditor: () => {\n view.focus()\n },\n }\n }\n}\n\ntype CreateLinkManagerArgs = {\n markType: MarkType\n linkAttributeValidator?: AttrsValidator\n editorComponent?: ComponentType<LinkEditorProps>\n}\n\nconst defaultLinkAttributeValidator: AttrsValidator = attrs => {\n if (attrs == null) {\n return false\n }\n return attrs.href && attrs.href !== \"\"\n}\n\nexport const createLinkManager = ({\n markType,\n editorComponent = LinkEditor,\n linkAttributeValidator = defaultLinkAttributeValidator,\n}: CreateLinkManagerArgs): Plugin =>\n new Plugin({\n view(editorView) {\n return new LinkManager(\n editorView,\n markType,\n editorComponent,\n linkAttributeValidator\n )\n },\n })\n"],"names":["LinkManager","view","markType","editorComponent","linkAttributeValidator","_this","linkActive","state","markIsActive","validateLinks","validateAndRemoveMarks","tooltipTarget","update","onResize","debounce","prototype","lastState","doc","eq","selection","empty","destroyElement","createElement","updateElement","destroy","_a","window","removeEventListener","dom","parentElement","createReactTooltipWrapper","getEditorProps","addEventListener","dispatch","selectionPosition","contained","markContainsSelection","$from","range","getMarkRange","start","end","coordsAtPos","from","to","content","size","top","left","width","right","height","bottom","removeMark","toExtent","updateAttrs","attrs","updateMark","getMarkAttrs","focusEditor","focus","defaultLinkAttributeValidator","href","createLinkManager","_b","LinkEditor","_c","Plugin","editorView"],"mappings":"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"}
|
package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.mjs
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { LinkModal } from '../LinkModal/LinkModal.mjs';
|
|
3
|
+
import { LinkPopover } from '../LinkPopover/LinkPopover.mjs';
|
|
4
|
+
const LinkEditor = /*#__PURE__*/function () {
|
|
5
|
+
const LinkEditor = function (_a) {
|
|
6
|
+
var _b;
|
|
7
|
+
var attrs = _a.attrs,
|
|
8
|
+
removeMark = _a.removeMark,
|
|
9
|
+
updateAttrs = _a.updateAttrs,
|
|
10
|
+
selectionPosition = _a.selectionPosition,
|
|
11
|
+
focusEditor = _a.focusEditor;
|
|
12
|
+
var _c = useState(attrs.href != null),
|
|
13
|
+
isPopoverOpen = _c[0],
|
|
14
|
+
setIsPopoverOpen = _c[1];
|
|
15
|
+
var _d = useState(
|
|
16
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
17
|
+
((_b = attrs._metadata) === null || _b === void 0 ? void 0 : _b.added) === true),
|
|
18
|
+
modalOpen = _d[0],
|
|
19
|
+
setModalOpen = _d[1];
|
|
20
|
+
var _e = useState(attrs.href ? attrs.href : undefined),
|
|
21
|
+
href = _e[0],
|
|
22
|
+
setHref = _e[1];
|
|
23
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, isPopoverOpen && /*#__PURE__*/React.createElement(LinkPopover, {
|
|
24
|
+
href: href,
|
|
25
|
+
selectionPosition: selectionPosition,
|
|
26
|
+
onRemove: function () {
|
|
27
|
+
removeMark();
|
|
28
|
+
focusEditor();
|
|
29
|
+
},
|
|
30
|
+
onEdit: function () {
|
|
31
|
+
setIsPopoverOpen(false);
|
|
32
|
+
setModalOpen(true);
|
|
33
|
+
}
|
|
34
|
+
}), /*#__PURE__*/React.createElement(LinkModal, {
|
|
35
|
+
defaultHref: href,
|
|
36
|
+
isOpen: modalOpen,
|
|
37
|
+
onAfterLeave: focusEditor,
|
|
38
|
+
onSubmit: function (submittedHref) {
|
|
39
|
+
setHref(submittedHref);
|
|
40
|
+
updateAttrs({
|
|
41
|
+
href: submittedHref,
|
|
42
|
+
_metadata: null
|
|
43
|
+
});
|
|
44
|
+
setModalOpen(false);
|
|
45
|
+
},
|
|
46
|
+
onDismiss: function () {
|
|
47
|
+
setModalOpen(false);
|
|
48
|
+
if (href) {
|
|
49
|
+
setIsPopoverOpen(true);
|
|
50
|
+
} else {
|
|
51
|
+
removeMark();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}));
|
|
55
|
+
};
|
|
56
|
+
LinkEditor.displayName = "LinkEditor";
|
|
57
|
+
return LinkEditor;
|
|
58
|
+
}();
|
|
59
|
+
export { LinkEditor };
|
|
60
|
+
//# sourceMappingURL=LinkEditor.mjs.map
|
package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkEditor.mjs","sources":["../../../../../../../../src/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.tsx"],"sourcesContent":["import React, { useState } from \"react\"\nimport { SelectionPosition } from \"../../types\"\nimport { LinkModal } from \"../LinkModal\"\nimport { LinkPopover } from \"../LinkPopover\"\n\nexport type LinkEditorAttrs = {\n href: string | null\n _metadata: { [key: string]: unknown } | null\n}\n\nexport type LinkEditorProps = {\n removeMark: () => void\n updateAttrs: ({ href }: LinkEditorAttrs) => void\n attrs: LinkEditorAttrs\n selectionPosition: SelectionPosition\n focusEditor: () => void\n}\n\nexport const LinkEditor = ({\n attrs,\n removeMark,\n updateAttrs,\n selectionPosition,\n focusEditor,\n}: LinkEditorProps): JSX.Element => {\n const [isPopoverOpen, setIsPopoverOpen] = useState<boolean>(\n attrs.href != null\n )\n const [modalOpen, setModalOpen] = useState<boolean>(\n // eslint-disable-next-line no-underscore-dangle\n attrs._metadata?.added === true\n )\n\n const [href, setHref] = useState<string | undefined>(\n attrs.href ? attrs.href : undefined\n )\n\n return (\n <>\n {isPopoverOpen && (\n <LinkPopover\n href={href}\n selectionPosition={selectionPosition}\n onRemove={() => {\n removeMark()\n focusEditor()\n }}\n onEdit={() => {\n setIsPopoverOpen(false)\n setModalOpen(true)\n }}\n />\n )}\n <LinkModal\n defaultHref={href}\n isOpen={modalOpen}\n onAfterLeave={focusEditor}\n onSubmit={(submittedHref: string) => {\n setHref(submittedHref)\n updateAttrs({ href: submittedHref, _metadata: null })\n setModalOpen(false)\n }}\n onDismiss={() => {\n setModalOpen(false)\n if (href) {\n setIsPopoverOpen(true)\n } else {\n removeMark()\n }\n }}\n />\n </>\n )\n}\n\nLinkEditor.displayName = \"LinkEditor\"\n"],"names":["LinkEditor","_a","attrs","removeMark","updateAttrs","selectionPosition","focusEditor","_c","useState","href","isPopoverOpen","setIsPopoverOpen","_d","_b","_metadata","added","modalOpen","setModalOpen","_e","undefined","setHref","React","createElement","Fragment","LinkPopover","onRemove","onEdit","LinkModal","defaultHref","isOpen","onAfterLeave","onSubmit","submittedHref","onDismiss","displayName"],"mappings":";;;MAkBaA,UAAU;EAAA,MAAVA,UAAU,GAAG,SAAAA,CAACC,EAMT,EAAA;;IALhB,IAAAC,KAAK,GAAAD,EAAA,CAAAC,KAAA;MACLC,UAAU,GAAAF,EAAA,CAAAE,UAAA;MACVC,WAAW,GAAAH,EAAA,CAAAG,WAAA;MACXC,iBAAiB,GAAAJ,EAAA,CAAAI,iBAAA;MACjBC,WAAW,GAAAL,EAAA,CAAAK,WAAA;IAEL,IAAAC,EAAoC,GAAAC,QAAQ,CAChDN,KAAK,CAACO,IAAI,IAAI,IAAI,CACnB;MAFMC,aAAa,GAAAH,EAAA,CAAA,CAAA,CAAA;MAAEI,gBAAgB,QAErC;IACK,IAAAC,KAA4BJ,QAAQ;;MAExC,CAAA,CAAAK,EAAA,GAAAX,KAAK,CAACY,SAAS,0CAAEC,KAAK,MAAK,IAAI,CAChC;MAHMC,SAAS,GAAAJ,EAAA,CAAA,CAAA,CAAA;MAAEK,YAAY,QAG7B;IAEK,IAAAC,EAAA,GAAkBV,QAAQ,CAC9BN,KAAK,CAACO,IAAI,GAAGP,KAAK,CAACO,IAAI,GAAGU,SAAS,CACpC;MAFMV,IAAI,GAAAS,EAAA,CAAA,CAAA,CAAA;MAAEE,OAAO,GAAAF,EAAA,CAAA,CAAA,CAEnB;IAED,oBACEG,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,EACGb,aAAa,iBACZW,KAAC,CAAAC,aAAA,CAAAE,WAAW;MACVf,IAAI,EAAEA,IAAI;MACVJ,iBAAiB,EAAEA,iBAAiB;MACpCoB,QAAQ,EAAE,SAAAA,CAAA,EAAA;QACRtB,UAAU,EAAE;QACZG,WAAW,EAAE;MACd,CAAA;MACDoB,MAAM,EAAE,SAAAA,CAAA,EAAA;QACNf,gBAAgB,CAAC,KAAK,CAAC;QACvBM,YAAY,CAAC,IAAI,CAAC;MACnB;IAAA,EAEJ,eACDI,KAAA,CAAAC,aAAA,CAACK,SAAS,EACR;MAAAC,WAAW,EAAEnB,IAAI;MACjBoB,MAAM,EAAEb,SAAS;MACjBc,YAAY,EAAExB,WAAW;MACzByB,QAAQ,EAAE,SAAAA,CAACC,aAAqB,EAAA;QAC9BZ,OAAO,CAACY,aAAa,CAAC;QACtB5B,WAAW,CAAC;UAAEK,IAAI,EAAEuB,aAAa;UAAElB,SAAS,EAAE;QAAM,CAAA,CAAC;QACrDG,YAAY,CAAC,KAAK,CAAC;MACpB,CAAA;MACDgB,SAAS,EAAE,SAAAA,CAAA,EAAA;QACThB,YAAY,CAAC,KAAK,CAAC;QACnB,IAAIR,IAAI,EAAE;UACRE,gBAAgB,CAAC,IAAI,CAAC;QACvB,CAAA,MAAM;UACLR,UAAU,EAAE;QACb;MACF;IAAA,CAAA,CACD,CACD;EAEP,CAAC;EAEDH,UAAU,CAACkC,WAAW,GAAG,YAAY;EAAA,OAzDxBlC,UAAU;AAAA;"}
|