@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,136 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var debounce = require('lodash.debounce');
|
|
4
|
+
var ProseMirrorState = require('prosemirror-state');
|
|
5
|
+
var getMarkAttrs = require('../../commands/getMarkAttrs.cjs');
|
|
6
|
+
var getMarkRange = require('../../commands/getMarkRange.cjs');
|
|
7
|
+
require('prosemirror-utils');
|
|
8
|
+
var markContainsSelection = require('../../commands/markContainsSelection.cjs');
|
|
9
|
+
var markIsActive = require('../../commands/markIsActive.cjs');
|
|
10
|
+
var removeMark = require('../../commands/removeMark.cjs');
|
|
11
|
+
var updateMark = require('../../commands/updateMark.cjs');
|
|
12
|
+
var validateAndRemoveMarks = require('../../commands/validateAndRemoveMarks.cjs');
|
|
13
|
+
var LinkEditor = require('./components/LinkEditor/LinkEditor.cjs');
|
|
14
|
+
var createReactTooltipWrapper = require('./createReactTooltipWrapper.cjs');
|
|
15
|
+
var LinkManager = /** @class */function () {
|
|
16
|
+
function LinkManager(view, markType, editorComponent, linkAttributeValidator) {
|
|
17
|
+
var _this = this;
|
|
18
|
+
this.editorComponent = editorComponent;
|
|
19
|
+
this.linkActive = function (state) {
|
|
20
|
+
return markIsActive.markIsActive(state, markType);
|
|
21
|
+
};
|
|
22
|
+
this.validateLinks = validateAndRemoveMarks.validateAndRemoveMarks(markType, linkAttributeValidator);
|
|
23
|
+
this.markType = markType;
|
|
24
|
+
this.tooltipTarget = null;
|
|
25
|
+
this.update(view, null);
|
|
26
|
+
this.onResize = debounce(function () {
|
|
27
|
+
_this.update(view, null);
|
|
28
|
+
}, 15);
|
|
29
|
+
}
|
|
30
|
+
LinkManager.prototype.update = function (view, lastState) {
|
|
31
|
+
var state = view.state;
|
|
32
|
+
// Don’t do anything if the document/TextSelection didn't change
|
|
33
|
+
if (lastState && lastState.doc.eq(state.doc) && lastState.selection.eq(state.selection)) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
// Is the selection empty or not a link
|
|
37
|
+
//
|
|
38
|
+
// TODO: Also need to check if the selection is _only_ a link. If it covers
|
|
39
|
+
// more than a single mark then we don’t want to allow edited
|
|
40
|
+
if (state.selection.empty || !this.linkActive(state)) {
|
|
41
|
+
this.destroyElement(view);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// If there is a selection and we dont have something in DOM
|
|
45
|
+
// then create element and inject
|
|
46
|
+
if (!this.tooltipTarget) {
|
|
47
|
+
this.createElement(view);
|
|
48
|
+
}
|
|
49
|
+
this.updateElement(view);
|
|
50
|
+
};
|
|
51
|
+
LinkManager.prototype.destroy = function () {
|
|
52
|
+
var _a;
|
|
53
|
+
(_a = this.tooltipTarget) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
54
|
+
window.removeEventListener("resize", this.onResize);
|
|
55
|
+
};
|
|
56
|
+
LinkManager.prototype.createElement = function (view) {
|
|
57
|
+
if (!view.dom.parentElement) return;
|
|
58
|
+
this.tooltipTarget = createReactTooltipWrapper.createReactTooltipWrapper(view.dom.parentElement, this.editorComponent, this.getEditorProps(view));
|
|
59
|
+
window.addEventListener("resize", this.onResize);
|
|
60
|
+
};
|
|
61
|
+
LinkManager.prototype.updateElement = function (view) {
|
|
62
|
+
var _a;
|
|
63
|
+
(_a = this.tooltipTarget) === null || _a === void 0 ? void 0 : _a.update(this.getEditorProps(view));
|
|
64
|
+
};
|
|
65
|
+
LinkManager.prototype.destroyElement = function (view) {
|
|
66
|
+
var _a;
|
|
67
|
+
view.dispatch(this.validateLinks);
|
|
68
|
+
(_a = this.tooltipTarget) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
69
|
+
this.tooltipTarget = null;
|
|
70
|
+
};
|
|
71
|
+
LinkManager.prototype.getEditorProps = function (view) {
|
|
72
|
+
var _this = this;
|
|
73
|
+
var selectionPosition = null;
|
|
74
|
+
var selection = view.state.selection;
|
|
75
|
+
var contained = markContainsSelection.markContainsSelection(view.state, this.markType);
|
|
76
|
+
var $from = selection.$from;
|
|
77
|
+
var range = getMarkRange.getMarkRange($from, this.markType);
|
|
78
|
+
var start;
|
|
79
|
+
var end;
|
|
80
|
+
if (!contained && range) {
|
|
81
|
+
start = view.coordsAtPos(range.from);
|
|
82
|
+
end = view.coordsAtPos(range.to);
|
|
83
|
+
} else {
|
|
84
|
+
start = view.coordsAtPos(selection.from);
|
|
85
|
+
if (selection.to === view.state.doc.content.size) {
|
|
86
|
+
end = view.coordsAtPos(selection.to - 1);
|
|
87
|
+
} else {
|
|
88
|
+
end = view.coordsAtPos(selection.to);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
selectionPosition = {
|
|
92
|
+
top: start.top,
|
|
93
|
+
left: start.left,
|
|
94
|
+
width: end.right - start.left,
|
|
95
|
+
height: start.top - start.bottom
|
|
96
|
+
};
|
|
97
|
+
return {
|
|
98
|
+
removeMark: function () {
|
|
99
|
+
view.dispatch(removeMark.removeMark(_this.markType, {
|
|
100
|
+
toExtent: true
|
|
101
|
+
}));
|
|
102
|
+
},
|
|
103
|
+
updateAttrs: function (attrs) {
|
|
104
|
+
view.dispatch(updateMark.updateMark(_this.markType, attrs, {
|
|
105
|
+
toExtent: true
|
|
106
|
+
}));
|
|
107
|
+
},
|
|
108
|
+
attrs: getMarkAttrs.getMarkAttrs(view.state, this.markType),
|
|
109
|
+
selectionPosition: selectionPosition,
|
|
110
|
+
focusEditor: function () {
|
|
111
|
+
view.focus();
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
return LinkManager;
|
|
116
|
+
}();
|
|
117
|
+
var defaultLinkAttributeValidator = function (attrs) {
|
|
118
|
+
if (attrs == null) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
return attrs.href && attrs.href !== "";
|
|
122
|
+
};
|
|
123
|
+
var createLinkManager = function (_a) {
|
|
124
|
+
var markType = _a.markType,
|
|
125
|
+
_b = _a.editorComponent,
|
|
126
|
+
editorComponent = _b === void 0 ? LinkEditor.LinkEditor : _b,
|
|
127
|
+
_c = _a.linkAttributeValidator,
|
|
128
|
+
linkAttributeValidator = _c === void 0 ? defaultLinkAttributeValidator : _c;
|
|
129
|
+
return new ProseMirrorState.Plugin({
|
|
130
|
+
view: function (editorView) {
|
|
131
|
+
return new LinkManager(editorView, markType, editorComponent, linkAttributeValidator);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
exports.createLinkManager = createLinkManager;
|
|
136
|
+
//# sourceMappingURL=LinkManager.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkManager.cjs","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/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.cjs
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var LinkModal = require('../LinkModal/LinkModal.cjs');
|
|
5
|
+
var LinkPopover = require('../LinkPopover/LinkPopover.cjs');
|
|
6
|
+
const LinkEditor = /*#__PURE__*/function () {
|
|
7
|
+
const LinkEditor = function (_a) {
|
|
8
|
+
var _b;
|
|
9
|
+
var attrs = _a.attrs,
|
|
10
|
+
removeMark = _a.removeMark,
|
|
11
|
+
updateAttrs = _a.updateAttrs,
|
|
12
|
+
selectionPosition = _a.selectionPosition,
|
|
13
|
+
focusEditor = _a.focusEditor;
|
|
14
|
+
var _c = React.useState(attrs.href != null),
|
|
15
|
+
isPopoverOpen = _c[0],
|
|
16
|
+
setIsPopoverOpen = _c[1];
|
|
17
|
+
var _d = React.useState(
|
|
18
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
19
|
+
((_b = attrs._metadata) === null || _b === void 0 ? void 0 : _b.added) === true),
|
|
20
|
+
modalOpen = _d[0],
|
|
21
|
+
setModalOpen = _d[1];
|
|
22
|
+
var _e = React.useState(attrs.href ? attrs.href : undefined),
|
|
23
|
+
href = _e[0],
|
|
24
|
+
setHref = _e[1];
|
|
25
|
+
return React.createElement(React.Fragment, null, isPopoverOpen && React.createElement(LinkPopover.LinkPopover, {
|
|
26
|
+
href: href,
|
|
27
|
+
selectionPosition: selectionPosition,
|
|
28
|
+
onRemove: function () {
|
|
29
|
+
removeMark();
|
|
30
|
+
focusEditor();
|
|
31
|
+
},
|
|
32
|
+
onEdit: function () {
|
|
33
|
+
setIsPopoverOpen(false);
|
|
34
|
+
setModalOpen(true);
|
|
35
|
+
}
|
|
36
|
+
}), React.createElement(LinkModal.LinkModal, {
|
|
37
|
+
defaultHref: href,
|
|
38
|
+
isOpen: modalOpen,
|
|
39
|
+
onAfterLeave: focusEditor,
|
|
40
|
+
onSubmit: function (submittedHref) {
|
|
41
|
+
setHref(submittedHref);
|
|
42
|
+
updateAttrs({
|
|
43
|
+
href: submittedHref,
|
|
44
|
+
_metadata: null
|
|
45
|
+
});
|
|
46
|
+
setModalOpen(false);
|
|
47
|
+
},
|
|
48
|
+
onDismiss: function () {
|
|
49
|
+
setModalOpen(false);
|
|
50
|
+
if (href) {
|
|
51
|
+
setIsPopoverOpen(true);
|
|
52
|
+
} else {
|
|
53
|
+
removeMark();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}));
|
|
57
|
+
};
|
|
58
|
+
LinkEditor.displayName = "LinkEditor";
|
|
59
|
+
return LinkEditor;
|
|
60
|
+
}();
|
|
61
|
+
exports.LinkEditor = LinkEditor;
|
|
62
|
+
//# sourceMappingURL=LinkEditor.cjs.map
|
package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkEditor.cjs","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,KAAQ,CAAAA,QAAA,CAChDN,KAAK,CAACO,IAAI,IAAI,IAAI,CACnB;MAFMC,aAAa,GAAAH,EAAA,CAAA,CAAA,CAAA;MAAEI,gBAAgB,QAErC;IACK,IAAAC,KAA4BJ,KAAQ,CAAAA,QAAA;;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,KAAAA,CAAAA,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,OACEG,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,EACGb,aAAa,IACZW,KAAC,CAAAC,aAAA,CAAAE,uBAAW;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,mBAAS,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;"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
require('../../../../../../Modal/ConfirmationModal/ConfirmationModal.cjs');
|
|
5
|
+
require('../../../../../../Modal/ContextModal/ContextModal.cjs');
|
|
6
|
+
require('../../../../../../Modal/GenericModal/GenericModal.cjs');
|
|
7
|
+
require('../../../../../../Modal/GenericModal/context/ModalContext.cjs');
|
|
8
|
+
require('../../../../../../Modal/GenericModal/subcomponents/ModalAccessibleDescription/ModalAccessibleDescription.cjs');
|
|
9
|
+
require('../../../../../../Modal/GenericModal/subcomponents/ModalFooter/ModalFooter.cjs');
|
|
10
|
+
require('../../../../../../Modal/GenericModal/subcomponents/ModalHeader/ModalHeader.cjs');
|
|
11
|
+
require('../../../../../../Modal/GenericModal/subcomponents/ModalAccessibleLabel/ModalAccessibleLabel.cjs');
|
|
12
|
+
require('../../../../../../Modal/GenericModal/subcomponents/ModalBody/ModalBody.cjs');
|
|
13
|
+
var InputEditModal = require('../../../../../../Modal/InputEditModal/InputEditModal.cjs');
|
|
14
|
+
var TextField = require('../../../../../../TextField/TextField.cjs');
|
|
15
|
+
var validation = require('../../validation.cjs');
|
|
16
|
+
const LinkModal = /*#__PURE__*/function () {
|
|
17
|
+
const LinkModal = function (_a) {
|
|
18
|
+
var onSubmit = _a.onSubmit,
|
|
19
|
+
onDismiss = _a.onDismiss,
|
|
20
|
+
onAfterLeave = _a.onAfterLeave,
|
|
21
|
+
isOpen = _a.isOpen,
|
|
22
|
+
defaultHref = _a.defaultHref;
|
|
23
|
+
var _b = React.useState(defaultHref || ""),
|
|
24
|
+
href = _b[0],
|
|
25
|
+
setHref = _b[1];
|
|
26
|
+
var _c = React.useState({
|
|
27
|
+
status: "default"
|
|
28
|
+
}),
|
|
29
|
+
validationStatus = _c[0],
|
|
30
|
+
setValidationStatus = _c[1];
|
|
31
|
+
var inputRef = React.useRef(null);
|
|
32
|
+
var handleSubmit = function () {
|
|
33
|
+
var _a;
|
|
34
|
+
var validation$1 = validation.validateLink(href);
|
|
35
|
+
if (validation$1.status !== "success") {
|
|
36
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
37
|
+
setValidationStatus(validation$1);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
onSubmit(href);
|
|
41
|
+
};
|
|
42
|
+
return React.createElement(InputEditModal.InputEditModal, {
|
|
43
|
+
submitLabel: defaultHref ? "Save" : "Add",
|
|
44
|
+
mood: "positive",
|
|
45
|
+
isOpen: isOpen,
|
|
46
|
+
title: defaultHref ? "Edit link" : "Add link",
|
|
47
|
+
onSubmit: handleSubmit,
|
|
48
|
+
onDismiss: onDismiss,
|
|
49
|
+
onAfterLeave: onAfterLeave
|
|
50
|
+
}, React.createElement(TextField.TextField, {
|
|
51
|
+
id: "href",
|
|
52
|
+
type: "text",
|
|
53
|
+
defaultValue: href !== null && href !== void 0 ? href : "",
|
|
54
|
+
labelText: "Link URL",
|
|
55
|
+
inputRef: inputRef,
|
|
56
|
+
validationMessage: validationStatus.message,
|
|
57
|
+
status: validationStatus.status,
|
|
58
|
+
onChange: function (e) {
|
|
59
|
+
setHref(e.target.value);
|
|
60
|
+
},
|
|
61
|
+
inline: true
|
|
62
|
+
}));
|
|
63
|
+
};
|
|
64
|
+
LinkModal.displayName = "LinkModal";
|
|
65
|
+
return LinkModal;
|
|
66
|
+
}();
|
|
67
|
+
exports.LinkModal = LinkModal;
|
|
68
|
+
//# sourceMappingURL=LinkModal.cjs.map
|
package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkModal.cjs","sources":["../../../../../../../../src/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.tsx"],"sourcesContent":["import React, { useRef, useState } from \"react\"\nimport { InputEditModal } from \"~components/Modal\"\nimport { TextField } from \"~components/TextField\"\nimport { ValidationResponse, validateLink } from \"../../validation\"\n\ntype LinkModalProps = {\n onSubmit: (href: string) => void\n onDismiss: () => void\n onAfterLeave: () => void\n isOpen: boolean\n defaultHref?: string\n}\n\nexport const LinkModal = ({\n onSubmit,\n onDismiss,\n onAfterLeave,\n isOpen,\n defaultHref,\n}: LinkModalProps): JSX.Element => {\n const [href, setHref] = useState<string>(defaultHref || \"\")\n const [validationStatus, setValidationStatus] = useState<ValidationResponse>({\n status: \"default\",\n })\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleSubmit = (): void => {\n const validation = validateLink(href)\n if (validation.status !== \"success\") {\n inputRef.current?.focus()\n setValidationStatus(validation)\n return\n }\n\n onSubmit(href)\n }\n\n return (\n <InputEditModal\n submitLabel={defaultHref ? \"Save\" : \"Add\"}\n mood=\"positive\"\n isOpen={isOpen}\n title={defaultHref ? \"Edit link\" : \"Add link\"}\n onSubmit={handleSubmit}\n onDismiss={onDismiss}\n onAfterLeave={onAfterLeave}\n >\n <TextField\n id=\"href\"\n type=\"text\"\n defaultValue={href ?? \"\"}\n labelText=\"Link URL\"\n inputRef={inputRef}\n validationMessage={validationStatus.message}\n status={validationStatus.status}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n setHref(e.target.value)\n }}\n inline\n />\n </InputEditModal>\n )\n}\n\nLinkModal.displayName = \"LinkModal\"\n"],"names":["LinkModal","_a","onSubmit","onDismiss","onAfterLeave","isOpen","defaultHref","_b","useState","href","setHref","_c","status","validationStatus","setValidationStatus","inputRef","useRef","handleSubmit","validation","validateLink","current","focus","React","InputEditModal","submitLabel","mood","title","createElement","TextField","id","type","defaultValue","labelText","validationMessage","message","onChange","e","target","value","inline","displayName"],"mappings":";;;;;;;;;;;;;;;MAaaA,SAAS;EAAA,MAATA,SAAS,GAAG,SAAAA,CAACC,EAMT,EAAA;IALf,IAAAC,QAAQ,GAAAD,EAAA,CAAAC,QAAA;MACRC,SAAS,GAAAF,EAAA,CAAAE,SAAA;MACTC,YAAY,GAAAH,EAAA,CAAAG,YAAA;MACZC,MAAM,GAAAJ,EAAA,CAAAI,MAAA;MACNC,WAAW,GAAAL,EAAA,CAAAK,WAAA;IAEL,IAAAC,EAAkB,GAAAC,KAAAA,CAAAA,QAAQ,CAASF,WAAW,IAAI,EAAE,CAAC;MAApDG,IAAI,GAAAF,EAAA,CAAA,CAAA,CAAA;MAAEG,OAAO,QAAuC;IACrD,IAAAC,EAAA,GAA0CH,KAAAA,CAAAA,QAAQ,CAAqB;QAC3EI,MAAM,EAAE;MACT,CAAA,CAAC;MAFKC,gBAAgB,GAAAF,EAAA,CAAA,CAAA,CAAA;MAAEG,mBAAmB,QAE1C;IACF,IAAMC,QAAQ,GAAGC,YAAM,CAAmB,IAAI,CAAC;IAE/C,IAAMC,YAAY,GAAG,SAAAA,CAAA,EAAA;;MACnB,IAAMC,YAAU,GAAGC,uBAAY,CAACV,IAAI,CAAC;MACrC,IAAIS,YAAU,CAACN,MAAM,KAAK,SAAS,EAAE;QACnC,CAAAX,EAAA,GAAAc,QAAQ,CAACK,OAAO,MAAE,IAAA,IAAAnB,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAAoB,KAAK,CAAA,CAAE;QACzBP,mBAAmB,CAACI,YAAU,CAAC;QAC/B;MACD;MAEDhB,QAAQ,CAACO,IAAI,CAAC;IAChB,CAAC;IAED,OACEa,oBAACC,cAAAA,CAAAA,cAAc,EAAA;MACbC,WAAW,EAAElB,WAAW,GAAG,MAAM,GAAG,KAAK;MACzCmB,IAAI,EAAC,UAAU;MACfpB,MAAM,EAAEA,MAAM;MACdqB,KAAK,EAAEpB,WAAW,GAAG,WAAW,GAAG,UAAU;MAC7CJ,QAAQ,EAAEe,YAAY;MACtBd,SAAS,EAAEA,SAAS;MACpBC,YAAY,EAAEA;IAAY,CAAA,EAE1BkB,KAAA,CAAAK,aAAA,CAACC,SAAAA,CAAAA,SAAS,EACR;MAAAC,EAAE,EAAC,MAAM;MACTC,IAAI,EAAC,MAAM;MACXC,YAAY,EAAEtB,IAAI,KAAJ,IAAA,IAAAA,IAAI,cAAJA,IAAI,GAAI,EAAE;MACxBuB,SAAS,EAAC,UAAU;MACpBjB,QAAQ,EAAEA,QAAQ;MAClBkB,iBAAiB,EAAEpB,gBAAgB,CAACqB,OAAO;MAC3CtB,MAAM,EAAEC,gBAAgB,CAACD,MAAM;MAC/BuB,QAAQ,EAAE,SAAAA,CAACC,CAAsC,EAAA;QAC/C1B,OAAO,CAAC0B,CAAC,CAACC,MAAM,CAACC,KAAK,CAAC;MACzB,CAAC;MACDC,MAAM,EACN;IAAA,CAAA,CAAA,CACa;EAErB,CAAC;EAEDvC,SAAS,CAACwC,WAAW,GAAG,WAAW;EAAA,OAnDtBxC,SAAS;AAAA;"}
|
package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.cjs
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
require('uuid');
|
|
6
|
+
require('../../../../../../Icon/subcomponents/SVG/SVG.cjs');
|
|
7
|
+
var EditIcon = require('../../../../../../Icon/EditIcon.cjs');
|
|
8
|
+
var ExternalLinkIcon = require('../../../../../../Icon/ExternalLinkIcon.cjs');
|
|
9
|
+
var RemoveLinkIcon = require('../../../../../../Icon/RemoveLinkIcon.cjs');
|
|
10
|
+
var Popover = require('../../../../../../Popover/Popover.cjs');
|
|
11
|
+
var Text = require('../../../../../../Text/Text.cjs');
|
|
12
|
+
var Positioner = require('./Positioner.cjs');
|
|
13
|
+
var LinkPopover_module = require('./LinkPopover.module.scss.cjs');
|
|
14
|
+
const LinkPopover = /*#__PURE__*/function () {
|
|
15
|
+
const LinkPopover = function (_a) {
|
|
16
|
+
var href = _a.href,
|
|
17
|
+
onRemove = _a.onRemove,
|
|
18
|
+
onEdit = _a.onEdit,
|
|
19
|
+
selectionPosition = _a.selectionPosition;
|
|
20
|
+
var _b = Popover.usePopover(),
|
|
21
|
+
ElementRef = _b[0],
|
|
22
|
+
Popover$1 = _b[1];
|
|
23
|
+
return React.createElement(React.Fragment, null, React.createElement(Positioner.Positioner, tslib.__assign({
|
|
24
|
+
ref: ElementRef
|
|
25
|
+
}, selectionPosition)), React.createElement(Popover$1, {
|
|
26
|
+
size: "large"
|
|
27
|
+
}, React.createElement("div", {
|
|
28
|
+
className: LinkPopover_module.popoverContent
|
|
29
|
+
}, React.createElement(ExternalLinkIcon.ExternalLinkIcon, {
|
|
30
|
+
role: "presentation"
|
|
31
|
+
}), React.createElement("div", {
|
|
32
|
+
className: LinkPopover_module.popoverLinkContainer
|
|
33
|
+
}, React.createElement(Text.Text, {
|
|
34
|
+
variant: "body",
|
|
35
|
+
tag: "div",
|
|
36
|
+
classNameOverride: LinkPopover_module.paragraphFlex
|
|
37
|
+
}, React.createElement("a", {
|
|
38
|
+
className: LinkPopover_module.popoverLink,
|
|
39
|
+
href: href != null ? href : undefined,
|
|
40
|
+
target: "_blank",
|
|
41
|
+
rel: "noopener noreferrer"
|
|
42
|
+
}, href))), React.createElement("div", {
|
|
43
|
+
className: LinkPopover_module.popoverActions
|
|
44
|
+
}, React.createElement(EditIcon.EditIcon, {
|
|
45
|
+
role: "img",
|
|
46
|
+
onClick: onEdit,
|
|
47
|
+
"aria-label": "Edit link"
|
|
48
|
+
})), React.createElement(RemoveLinkIcon.RemoveLinkIcon, {
|
|
49
|
+
role: "img",
|
|
50
|
+
onClick: onRemove,
|
|
51
|
+
"aria-label": "Remove link"
|
|
52
|
+
}))));
|
|
53
|
+
};
|
|
54
|
+
LinkPopover.displayName = "LinkPopover";
|
|
55
|
+
return LinkPopover;
|
|
56
|
+
}();
|
|
57
|
+
exports.LinkPopover = LinkPopover;
|
|
58
|
+
//# sourceMappingURL=LinkPopover.cjs.map
|
package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkPopover.cjs","sources":["../../../../../../../../src/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.tsx"],"sourcesContent":["import React from \"react\"\nimport { EditIcon, ExternalLinkIcon, RemoveLinkIcon } from \"~components/Icon\"\nimport { usePopover } from \"~components/Popover\"\nimport { Text } from \"~components/Text\"\nimport { SelectionPosition } from \"../../types\"\nimport { Positioner } from \"./Positioner\"\nimport styles from \"./LinkPopover.module.scss\"\n\nexport type LinkPopoverProps = {\n href?: string\n onRemove: () => void\n onEdit: () => void\n selectionPosition: SelectionPosition\n}\n\nexport const LinkPopover = ({\n href,\n onRemove,\n onEdit,\n selectionPosition,\n}: LinkPopoverProps): JSX.Element => {\n const [ElementRef, Popover] = usePopover()\n\n return (\n <>\n <Positioner ref={ElementRef} {...selectionPosition} />\n <Popover size=\"large\">\n <div className={styles.popoverContent}>\n <ExternalLinkIcon role=\"presentation\" />\n <div className={styles.popoverLinkContainer}>\n <Text\n variant=\"body\"\n tag=\"div\"\n classNameOverride={styles.paragraphFlex}\n >\n <a\n className={styles.popoverLink}\n href={href != null ? href : undefined}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {href}\n </a>\n </Text>\n </div>\n <div className={styles.popoverActions}>\n <EditIcon role=\"img\" onClick={onEdit} aria-label=\"Edit link\" />\n </div>\n <RemoveLinkIcon\n role=\"img\"\n onClick={onRemove}\n aria-label=\"Remove link\"\n />\n </div>\n </Popover>\n </>\n )\n}\n\nLinkPopover.displayName = \"LinkPopover\"\n"],"names":["LinkPopover","_a","href","onRemove","onEdit","selectionPosition","_b","usePopover","ElementRef","Popover","React","createElement","Fragment","Positioner","__assign","ref","size","className","styles","popoverContent","ExternalLinkIcon","role","popoverLinkContainer","Text","variant","tag","classNameOverride","paragraphFlex","popoverLink","undefined","target","rel","popoverActions","EditIcon","onClick","RemoveLinkIcon","displayName"],"mappings":";;;;;;;;;;;;;MAeaA,WAAW;EAAA,MAAXA,WAAW,GAAG,SAAAA,CAACC,EAKT,EAAA;QAJjBC,IAAI,GAAAD,EAAA,CAAAC,IAAA;MACJC,QAAQ,GAAAF,EAAA,CAAAE,QAAA;MACRC,MAAM,GAAAH,EAAA,CAAAG,MAAA;MACNC,iBAAiB,GAAAJ,EAAA,CAAAI,iBAAA;IAEX,IAAAC,EAAA,GAAwBC,kBAAU,CAAE,CAAA;MAAnCC,UAAU,GAAAF,EAAA,CAAA,CAAA,CAAA;MAAEG,SAAO,GAAAH,EAAA,CAAA,CAAA,CAAgB;IAE1C,OACEI,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,EACEF,KAAA,CAAAC,aAAA,CAACE,UAAAA,CAAAA,UAAU,EAACC,KAAA,CAAAA,QAAA,CAAA;MAAAC,GAAG,EAAEP;IAAU,CAAA,EAAMH,iBAAiB,CAAI,CAAA,EACtDK,KAAA,CAAAC,aAAA,CAACF,SAAO,EAAA;MAACO,IAAI,EAAC;IAAO,CAAA,EACnBN,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKM,SAAS,EAAEC,kBAAM,CAACC;IAAc,CAAA,EACnCT,KAAA,CAAAC,aAAA,CAACS,gBAAAA,CAAAA,gBAAgB,EAAA;MAACC,IAAI,EAAC;IAAc,CAAG,CAAA,EACxCX,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKM,SAAS,EAAEC,kBAAM,CAACI;IAAoB,CAAA,EACzCZ,KAAA,CAAAC,aAAA,CAACY,SAAI,EAAA;MACHC,OAAO,EAAC,MAAM;MACdC,GAAG,EAAC,KAAK;MACTC,iBAAiB,EAAER,kBAAM,CAACS;IAAa,CAAA,EAEvCjB,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;MACEM,SAAS,EAAEC,kBAAM,CAACU,WAAW;MAC7B1B,IAAI,EAAEA,IAAI,IAAI,IAAI,GAAGA,IAAI,GAAG2B,SAAS;MACrCC,MAAM,EAAC,QAAQ;MACfC,GAAG,EAAC;IAAqB,CAAA,EAExB7B,IAAI,CACH,CACC,CACH,EACNQ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKM,SAAS,EAAEC,kBAAM,CAACc;IAAc,CAAA,EACnCtB,KAAA,CAAAC,aAAA,CAACsB,iBAAQ,EAAA;MAACZ,IAAI,EAAC,KAAK;MAACa,OAAO,EAAE9B,MAAM;MAAA,YAAA,EAAa;IAAW,CAAA,CAAG,CAC3D,EACNM,KAAA,CAAAC,aAAA,CAACwB,6BAAc,EACb;MAAAd,IAAI,EAAC,KAAK;MACVa,OAAO,EAAE/B,QAAQ;MAAA,YAAA,EACN;KACX,CAAA,CACE,CACE,CACT;EAEP,CAAC;EAEDH,WAAW,CAACoC,WAAW,GAAG,aAAa;EAAA,OA5C1BpC,WAAW;AAAA;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var styles = {
|
|
4
|
+
"popoverContent": "LinkPopover-module_popoverContent__qGPyp",
|
|
5
|
+
"popoverLinkContainer": "LinkPopover-module_popoverLinkContainer__6H0PQ",
|
|
6
|
+
"popoverLink": "LinkPopover-module_popoverLink__p1BTG",
|
|
7
|
+
"paragraphFlex": "LinkPopover-module_paragraphFlex__PKECm",
|
|
8
|
+
"popoverActions": "LinkPopover-module_popoverActions__QuW1-"
|
|
9
|
+
};
|
|
10
|
+
module.exports = styles;
|
|
11
|
+
//# sourceMappingURL=LinkPopover.module.scss.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkPopover.module.scss.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.cjs
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var ReactDOM = require('react-dom');
|
|
5
|
+
var debounce = require('lodash.debounce');
|
|
6
|
+
const Positioner = /*#__PURE__*/function () {
|
|
7
|
+
const Positioner = React.forwardRef(function (_a, ref) {
|
|
8
|
+
var top = _a.top,
|
|
9
|
+
left = _a.left,
|
|
10
|
+
height = _a.height,
|
|
11
|
+
width = _a.width;
|
|
12
|
+
var _b = React.useState([window.scrollX, window.scrollY]),
|
|
13
|
+
windowScroll = _b[0],
|
|
14
|
+
setWindowScroll = _b[1];
|
|
15
|
+
var onResize = React.useRef(debounce(function () {
|
|
16
|
+
return setWindowScroll([window.scrollX, window.scrollY]);
|
|
17
|
+
}, 15));
|
|
18
|
+
React.useEffect(function () {
|
|
19
|
+
var resizeCurrent = onResize.current;
|
|
20
|
+
window.addEventListener("resize", resizeCurrent);
|
|
21
|
+
return function () {
|
|
22
|
+
window.removeEventListener("resize", resizeCurrent);
|
|
23
|
+
};
|
|
24
|
+
}, [setWindowScroll, onResize]);
|
|
25
|
+
var x = windowScroll[0],
|
|
26
|
+
y = windowScroll[1];
|
|
27
|
+
return ReactDOM.createPortal(React.createElement("div", {
|
|
28
|
+
ref: ref,
|
|
29
|
+
style: {
|
|
30
|
+
height: "".concat(height, "px"),
|
|
31
|
+
left: "".concat(left + x, "px"),
|
|
32
|
+
pointerEvents: "none",
|
|
33
|
+
position: "absolute",
|
|
34
|
+
top: "".concat(top + y, "px"),
|
|
35
|
+
width: "".concat(width, "px")
|
|
36
|
+
}
|
|
37
|
+
}), document.body);
|
|
38
|
+
});
|
|
39
|
+
Positioner.displayName = "Positioner";
|
|
40
|
+
return Positioner;
|
|
41
|
+
}();
|
|
42
|
+
exports.Positioner = Positioner;
|
|
43
|
+
//# sourceMappingURL=Positioner.cjs.map
|
package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Positioner.cjs","sources":["../../../../../../../../src/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useRef, useState } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport debounce from \"lodash.debounce\"\nimport { SelectionPosition } from \"../../types\"\n\nexport const Positioner = forwardRef(\n (\n { top, left, height, width }: SelectionPosition,\n ref: React.Ref<HTMLElement>\n ) => {\n const [windowScroll, setWindowScroll] = useState<[number, number]>([\n window.scrollX,\n window.scrollY,\n ])\n\n const onResize = useRef(\n debounce(() => setWindowScroll([window.scrollX, window.scrollY]), 15)\n )\n\n useEffect(() => {\n const resizeCurrent = onResize.current\n window.addEventListener(\"resize\", resizeCurrent)\n return () => {\n window.removeEventListener(\"resize\", resizeCurrent)\n }\n }, [setWindowScroll, onResize])\n\n const [x, y] = windowScroll\n\n return createPortal(\n <div\n ref={ref as React.Ref<HTMLDivElement>}\n style={{\n height: `${height}px`,\n left: `${left + x}px`,\n pointerEvents: \"none\",\n position: \"absolute\",\n top: `${top + y}px`,\n width: `${width}px`,\n }}\n />,\n document.body\n )\n }\n)\n\nPositioner.displayName = \"Positioner\"\n"],"names":["Positioner","forwardRef","_a","ref","top","left","height","width","_b","useState","window","scrollX","scrollY","windowScroll","setWindowScroll","onResize","useRef","debounce","useEffect","resizeCurrent","current","addEventListener","removeEventListener","x","y","createPortal","React","createElement","style","concat","pointerEvents","position","document","body","displayName"],"mappings":";;;;;MAKaA,UAAU;EAAA,MAAVA,UAAU,GAAGC,KAAU,CAAAA,UAAA,CAClC,UACEC,EAA+C,EAC/CC,GAA2B,EAAA;QADzBC,GAAG,GAAAF,EAAA,CAAAE,GAAA;MAAEC,IAAI,GAAAH,EAAA,CAAAG,IAAA;MAAEC,MAAM,GAAAJ,EAAA,CAAAI,MAAA;MAAEC,KAAK,GAAAL,EAAA,CAAAK,KAAA;IAGpB,IAAAC,EAAA,GAAkCC,KAAAA,CAAAA,QAAQ,CAAmB,CACjEC,MAAM,CAACC,OAAO,EACdD,MAAM,CAACE,OAAO,CACf,CAAC;MAHKC,YAAY,GAAAL,EAAA,CAAA,CAAA,CAAA;MAAEM,eAAe,QAGlC;IAEF,IAAMC,QAAQ,GAAGC,KAAAA,CAAAA,MAAM,CACrBC,QAAQ,CAAC,YAAA;MAAM,OAAAH,eAAe,CAAC,CAACJ,MAAM,CAACC,OAAO,EAAED,MAAM,CAACE,OAAO,CAAC,CAAC;IAAjD,CAAiD,EAAE,EAAE,CAAC,CACtE;IAEDM,KAAAA,CAAAA,SAAS,CAAC,YAAA;MACR,IAAMC,aAAa,GAAGJ,QAAQ,CAACK,OAAO;MACtCV,MAAM,CAACW,gBAAgB,CAAC,QAAQ,EAAEF,aAAa,CAAC;MAChD,OAAO,YAAA;QACLT,MAAM,CAACY,mBAAmB,CAAC,QAAQ,EAAEH,aAAa,CAAC;MACrD,CAAC;IACH,CAAC,EAAE,CAACL,eAAe,EAAEC,QAAQ,CAAC,CAAC;IAExB,IAAAQ,CAAC,GAAOV,YAAY,CAAA,CAAA,CAAnB;MAAEW,CAAC,GAAIX,YAAY,CAAA,CAAA,CAAhB;IAEX,OAAOY,QAAAA,CAAAA,YAAY,CACjBC,KACE,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAAxB,GAAG,EAAEA,GAAgC;MACrCyB,KAAK,EAAE;QACLtB,MAAM,EAAE,EAAG,CAAAuB,MAAA,CAAAvB,MAAM,EAAI,IAAA,CAAA;QACrBD,IAAI,EAAE,EAAA,CAAAwB,MAAA,CAAGxB,IAAI,GAAGkB,CAAC,EAAI,IAAA,CAAA;QACrBO,aAAa,EAAE,MAAM;QACrBC,QAAQ,EAAE,UAAU;QACpB3B,GAAG,EAAE,EAAA,CAAAyB,MAAA,CAAGzB,GAAG,GAAGoB,CAAC,EAAI,IAAA,CAAA;QACnBjB,KAAK,EAAE,EAAG,CAAAsB,MAAA,CAAAtB,KAAK,EAAI,IAAA;MACpB;KAAA,CACD,EACFyB,QAAQ,CAACC,IAAI,CACd;EACH,CAAC,CACF;EAEDjC,UAAU,CAACkC,WAAW,GAAG,YAAY;EAAA,OAzCxBlC,UAAU;AAAA;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var Nanobus = require('nanobus');
|
|
6
|
+
var client = require('react-dom/client');
|
|
7
|
+
var Wrapper = function (_a) {
|
|
8
|
+
var emitter = _a.emitter,
|
|
9
|
+
componentProps = _a.componentProps,
|
|
10
|
+
Component = _a.Component;
|
|
11
|
+
var _b = React.useState(componentProps),
|
|
12
|
+
localComponentProps = _b[0],
|
|
13
|
+
setLocalComponentProps = _b[1];
|
|
14
|
+
React.useEffect(function () {
|
|
15
|
+
var onUpdate = function (newComponentProps) {
|
|
16
|
+
setLocalComponentProps(newComponentProps);
|
|
17
|
+
};
|
|
18
|
+
emitter.addListener("update", onUpdate);
|
|
19
|
+
return function () {
|
|
20
|
+
emitter.removeListener("update", onUpdate);
|
|
21
|
+
};
|
|
22
|
+
}, [emitter]);
|
|
23
|
+
return React.createElement(Component, tslib.__assign({}, localComponentProps));
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Create a wrapping connector for rendering a React element into a separate
|
|
27
|
+
* part of the DOM while being able to update it without remounting.
|
|
28
|
+
*/
|
|
29
|
+
var createReactTooltipWrapper = function (parentNode, Component, componentProps) {
|
|
30
|
+
var emitter = new Nanobus();
|
|
31
|
+
var container = document.createElement("div");
|
|
32
|
+
parentNode.appendChild(container);
|
|
33
|
+
var root = client.createRoot(container);
|
|
34
|
+
root.render(React.createElement(Wrapper, {
|
|
35
|
+
componentProps: componentProps,
|
|
36
|
+
Component: Component,
|
|
37
|
+
emitter: emitter
|
|
38
|
+
}));
|
|
39
|
+
function destroy() {
|
|
40
|
+
root.unmount();
|
|
41
|
+
emitter.removeAllListeners("*");
|
|
42
|
+
}
|
|
43
|
+
function update(props) {
|
|
44
|
+
emitter.emit("update", props);
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
destroy: destroy,
|
|
48
|
+
update: update
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
exports.createReactTooltipWrapper = createReactTooltipWrapper;
|
|
52
|
+
//# sourceMappingURL=createReactTooltipWrapper.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createReactTooltipWrapper.cjs","sources":["../../../../../../src/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.tsx"],"sourcesContent":["import React, { ElementType, useEffect, useState } from \"react\"\nimport Nanobus from \"nanobus\"\nimport { createRoot } from \"react-dom/client\"\nimport { LinkEditorProps } from \"./components\"\n\nconst Wrapper = ({\n emitter,\n componentProps,\n Component,\n}: {\n emitter: Nanobus\n componentProps: LinkEditorProps\n Component: ElementType\n}): JSX.Element => {\n const [localComponentProps, setLocalComponentProps] =\n useState<LinkEditorProps>(componentProps)\n\n useEffect(() => {\n const onUpdate = (newComponentProps: LinkEditorProps): void => {\n setLocalComponentProps(newComponentProps)\n }\n emitter.addListener(\"update\", onUpdate)\n\n return () => {\n emitter.removeListener(\"update\", onUpdate)\n }\n }, [emitter])\n\n return <Component {...localComponentProps} />\n}\n\n/**\n * Create a wrapping connector for rendering a React element into a separate\n * part of the DOM while being able to update it without remounting.\n */\nexport const createReactTooltipWrapper = (\n parentNode: HTMLElement,\n Component: ElementType,\n componentProps: LinkEditorProps\n): {\n destroy: () => void\n update: (props: LinkEditorProps) => void\n} => {\n const emitter = new Nanobus()\n const container = document.createElement(\"div\")\n parentNode.appendChild(container)\n const root = createRoot(container)\n\n root.render(\n <Wrapper\n componentProps={componentProps}\n Component={Component}\n emitter={emitter}\n />\n )\n\n function destroy(): void {\n root.unmount()\n emitter.removeAllListeners(\"*\")\n }\n\n function update(props: LinkEditorProps): void {\n emitter.emit(\"update\", props)\n }\n\n return { destroy, update }\n}\n"],"names":["Wrapper","_a","emitter","componentProps","Component","_b","useState","localComponentProps","setLocalComponentProps","useEffect","onUpdate","newComponentProps","addListener","removeListener","React","createElement","__assign","createReactTooltipWrapper","parentNode","Nanobus","container","document","appendChild","root","createRoot","render","destroy","unmount","removeAllListeners","update","props","emit"],"mappings":";;;;;;AAKA,IAAMA,OAAO,GAAG,SAAAA,CAACC,EAQhB,EAAA;EAPC,IAAAC,OAAO,aAAA;IACPC,cAAc,GAAAF,EAAA,CAAAE,cAAA;IACdC,SAAS,GAAAH,EAAA,CAAAG,SAAA;EAMH,IAAAC,EAAA,GACJC,KAAAA,CAAAA,QAAQ,CAAkBH,cAAc,CAAC;IADpCI,mBAAmB,GAAAF,EAAA,CAAA,CAAA,CAAA;IAAEG,sBAAsB,GAAAH,EAAA,CAAA,CAAA,CACP;EAE3CI,KAAAA,CAAAA,SAAS,CAAC,YAAA;IACR,IAAMC,QAAQ,GAAG,SAAAA,CAACC,iBAAkC,EAAA;MAClDH,sBAAsB,CAACG,iBAAiB,CAAC;IAC3C,CAAC;IACDT,OAAO,CAACU,WAAW,CAAC,QAAQ,EAAEF,QAAQ,CAAC;IAEvC,OAAO,YAAA;MACLR,OAAO,CAACW,cAAc,CAAC,QAAQ,EAAEH,QAAQ,CAAC;IAC5C,CAAC;EACH,CAAC,EAAE,CAACR,OAAO,CAAC,CAAC;EAEb,OAAOY,KAAC,CAAAC,aAAA,CAAAX,SAAS,EAAKY,KAAA,CAAAA,QAAA,CAAA,CAAA,CAAA,EAAAT,mBAAmB,EAAI;AAC/C,CAAC;AAED;;;AAGG;IACUU,yBAAyB,GAAG,SAAAA,CACvCC,UAAuB,EACvBd,SAAsB,EACtBD,cAA+B,EAAA;EAK/B,IAAMD,OAAO,GAAG,IAAIiB,OAAO,EAAE;EAC7B,IAAMC,SAAS,GAAGC,QAAQ,CAACN,aAAa,CAAC,KAAK,CAAC;EAC/CG,UAAU,CAACI,WAAW,CAACF,SAAS,CAAC;EACjC,IAAMG,IAAI,GAAGC,iBAAU,CAACJ,SAAS,CAAC;EAElCG,IAAI,CAACE,MAAM,CACTX,oBAACd,OAAO,EAAA;IACNG,cAAc,EAAEA,cAAc;IAC9BC,SAAS,EAAEA,SAAS;IACpBF,OAAO,EAAEA;EAAO,CAAA,CAChB,CACH;EAED,SAASwB,OAAOA,CAAA,EAAA;IACdH,IAAI,CAACI,OAAO,CAAA,CAAE;IACdzB,OAAO,CAAC0B,kBAAkB,CAAC,GAAG,CAAC;EAChC;EAED,SAASC,MAAMA,CAACC,KAAsB,EAAA;IACpC5B,OAAO,CAAC6B,IAAI,CAAC,QAAQ,EAAED,KAAK,CAAC;EAC9B;EAED,OAAO;IAAEJ,OAAO,EAAAA,OAAA;IAAEG,MAAM,EAAAA;EAAA,CAAE;AAC5B,CAAA;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var validateLink = function (href) {
|
|
4
|
+
var isValidLink = /^https?:\/\//.test(href);
|
|
5
|
+
if (!isValidLink) {
|
|
6
|
+
return {
|
|
7
|
+
status: "error",
|
|
8
|
+
message: "Please enter a valid URL"
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
status: "success"
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
exports.validateLink = validateLink;
|
|
16
|
+
//# sourceMappingURL=validation.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.cjs","sources":["../../../../../../src/RichTextEditor/utils/plugins/LinkManager/validation.ts"],"sourcesContent":["export type ValidationResponse = {\n status: \"success\" | \"error\" | \"default\"\n message?: React.ReactNode\n}\n\nexport const validateLink = (href: string): ValidationResponse => {\n const isValidLink = /^https?:\\/\\//.test(href)\n\n if (!isValidLink) {\n return {\n status: \"error\",\n message: \"Please enter a valid URL\",\n }\n }\n\n return {\n status: \"success\",\n }\n}\n"],"names":["validateLink","href","isValidLink","test","status","message"],"mappings":";;AAKO,IAAMA,YAAY,GAAG,SAAAA,CAACC,IAAY,EAAA;EACvC,IAAMC,WAAW,GAAG,cAAc,CAACC,IAAI,CAACF,IAAI,CAAC;EAE7C,IAAI,CAACC,WAAW,EAAE;IAChB,OAAO;MACLE,MAAM,EAAE,OAAO;MACfC,OAAO,EAAE;KACV;EACF;EAED,OAAO;IACLD,MAAM,EAAE;GACT;AACH,CAAA;"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var prosemirrorSchemaBasic = require('prosemirror-schema-basic');
|
|
5
|
+
var validation = require('../plugins/LinkManager/validation.cjs');
|
|
6
|
+
var getMarks = function () {
|
|
7
|
+
return tslib.__assign(tslib.__assign({}, prosemirrorSchemaBasic.marks), {
|
|
8
|
+
// An underline mark. Rendered as a `<u>` element. Has parse rules that also
|
|
9
|
+
// matches `font-style: underline`.
|
|
10
|
+
underline: {
|
|
11
|
+
parseDOM: [{
|
|
12
|
+
tag: "u"
|
|
13
|
+
}, {
|
|
14
|
+
style: "font-style=underline"
|
|
15
|
+
}],
|
|
16
|
+
toDOM: function () {
|
|
17
|
+
return ["u", 0];
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
// A link. Rendered and parsed as an `<a>` element.
|
|
21
|
+
link: {
|
|
22
|
+
attrs: {
|
|
23
|
+
href: {
|
|
24
|
+
"default": null
|
|
25
|
+
},
|
|
26
|
+
_metadata: {
|
|
27
|
+
"default": {
|
|
28
|
+
added: true
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
target: {
|
|
32
|
+
"default": "_blank"
|
|
33
|
+
},
|
|
34
|
+
rel: {
|
|
35
|
+
"default": "noreferrer"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
inclusive: false,
|
|
39
|
+
parseDOM: [{
|
|
40
|
+
tag: "a[href]",
|
|
41
|
+
getAttrs: function (dom) {
|
|
42
|
+
return {
|
|
43
|
+
href: getAttributeWithDefault(dom, "href"),
|
|
44
|
+
target: getAttributeWithDefault(dom, "target"),
|
|
45
|
+
rel: getAttributeWithDefault(dom, "rel"),
|
|
46
|
+
_metadata: null
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}],
|
|
50
|
+
toDOM: function (node) {
|
|
51
|
+
var _a = node.attrs,
|
|
52
|
+
href = _a.href,
|
|
53
|
+
target = _a.target,
|
|
54
|
+
rel = _a.rel;
|
|
55
|
+
var validationStatus = validation.validateLink(href);
|
|
56
|
+
if (validationStatus.status === "error") {
|
|
57
|
+
return ["span", 0];
|
|
58
|
+
}
|
|
59
|
+
return ["a", {
|
|
60
|
+
href: href,
|
|
61
|
+
target: target,
|
|
62
|
+
rel: rel
|
|
63
|
+
}, 0];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
var getAttributeWithDefault = function (node, attributeName) {
|
|
69
|
+
var value = node.getAttribute(attributeName);
|
|
70
|
+
return value && value !== "" ? value : null;
|
|
71
|
+
};
|
|
72
|
+
exports.getMarks = getMarks;
|
|
73
|
+
//# sourceMappingURL=marks.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marks.cjs","sources":["../../../../../src/RichTextEditor/utils/schema/marks.ts"],"sourcesContent":["import { MarkSpec, Node } from \"prosemirror-model\"\nimport { marks as proseMarks } from \"prosemirror-schema-basic\"\nimport { validateLink } from \"../plugins/LinkManager/validation\"\n\nexport const getMarks = (): MarkSpec => ({\n ...proseMarks,\n\n // An underline mark. Rendered as a `<u>` element. Has parse rules that also\n // matches `font-style: underline`.\n underline: {\n parseDOM: [{ tag: \"u\" }, { style: \"font-style=underline\" }],\n toDOM() {\n return [\"u\", 0]\n },\n },\n\n // A link. Rendered and parsed as an `<a>` element.\n link: {\n attrs: {\n href: { default: null },\n _metadata: { default: { added: true } },\n target: { default: \"_blank\" },\n rel: { default: \"noreferrer\" },\n },\n inclusive: false,\n parseDOM: [\n {\n tag: \"a[href]\",\n getAttrs(dom: HTMLAnchorElement) {\n return {\n href: getAttributeWithDefault(dom, \"href\"),\n target: getAttributeWithDefault(dom, \"target\"),\n rel: getAttributeWithDefault(dom, \"rel\"),\n _metadata: null,\n }\n },\n },\n ],\n toDOM(node: Node) {\n const { href, target, rel } = node.attrs\n const validationStatus = validateLink(href)\n\n if (validationStatus.status === \"error\") {\n return [\"span\", 0]\n }\n\n return [\"a\", { href, target, rel }, 0]\n },\n },\n})\n\nconst getAttributeWithDefault = (\n node: HTMLElement,\n attributeName: string\n): string | null => {\n const value = node.getAttribute(attributeName)\n return value && value !== \"\" ? value : null\n}\n"],"names":["getMarks","proseMarks","underline","parseDOM","tag","style","toDOM","link","attrs","href","_metadata","added","target","rel","inclusive","getAttrs","dom","getAttributeWithDefault","node","_a","validationStatus","validateLink","status","attributeName","value","getAttribute"],"mappings":";;;;;AAIa,IAAAA,QAAQ,GAAG,SAAAA,CAAA,EAAgB;EAAA,yCACnCC,sBAAAA,CAAAA,KAAU,CAAA,EAAA;;;IAIbC,SAAS,EAAE;MACTC,QAAQ,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAK,CAAA,EAAE;QAAEC,KAAK,EAAE;OAAwB,CAAC;MAC3DC,KAAK,EAAA,SAAAA,CAAA,EAAA;QACH,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;MAChB;IACF,CAAA;;IAGDC,IAAI,EAAE;MACJC,KAAK,EAAE;QACLC,IAAI,EAAE;UAAE,SAAO,EAAE;QAAM,CAAA;QACvBC,SAAS,EAAE;UAAE,SAAO,EAAE;YAAEC,KAAK,EAAE;UAAI;QAAI,CAAA;QACvCC,MAAM,EAAE;UAAE,SAAO,EAAE;QAAU,CAAA;QAC7BC,GAAG,EAAE;UAAE,SAAO,EAAE;QAAc;MAC/B,CAAA;MACDC,SAAS,EAAE,KAAK;MAChBX,QAAQ,EAAE,CACR;QACEC,GAAG,EAAE,SAAS;QACdW,QAAQ,YAACC,GAAsB,EAAA;UAC7B,OAAO;YACLP,IAAI,EAAEQ,uBAAuB,CAACD,GAAG,EAAE,MAAM,CAAC;YAC1CJ,MAAM,EAAEK,uBAAuB,CAACD,GAAG,EAAE,QAAQ,CAAC;YAC9CH,GAAG,EAAEI,uBAAuB,CAACD,GAAG,EAAE,KAAK,CAAC;YACxCN,SAAS,EAAE;WACZ;QACF;MACF,CAAA,CACF;MACDJ,KAAK,YAACY,IAAU,EAAA;QACR,IAAAC,EAAwB,GAAAD,IAAI,CAACV,KAAK;UAAhCC,IAAI,GAAAU,EAAA,CAAAV,IAAA;UAAEG,MAAM,GAAAO,EAAA,CAAAP,MAAA;UAAEC,GAAG,SAAe;QACxC,IAAMO,gBAAgB,GAAGC,uBAAY,CAACZ,IAAI,CAAC;QAE3C,IAAIW,gBAAgB,CAACE,MAAM,KAAK,OAAO,EAAE;UACvC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACnB;QAED,OAAO,CAAC,GAAG,EAAE;UAAEb,IAAI,MAAA;UAAEG,MAAM,EAAAA,MAAA;UAAEC,GAAG,EAAAA;SAAE,EAAE,CAAC,CAAC;MACvC;IACF;EAAA,CACD,CAAA;AAAA,CAAA;AAEF,IAAMI,uBAAuB,GAAG,SAAAA,CAC9BC,IAAiB,EACjBK,aAAqB,EAAA;EAErB,IAAMC,KAAK,GAAGN,IAAI,CAACO,YAAY,CAACF,aAAa,CAAC;EAC9C,OAAOC,KAAK,IAAIA,KAAK,KAAK,EAAE,GAAGA,KAAK,GAAG,IAAI;AAC7C,CAAC;"}
|