@uva-glass/component-library 3.57.2 → 3.57.4
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/ActionList-D2GC2qPX.js.map +1 -1
- package/dist/{AddCatalogueLinkForm-Di0xm7Ep.js → AddCatalogueLinkForm-CvJoaUFz.js} +2 -2
- package/dist/{AddCatalogueLinkForm-Di0xm7Ep.js.map → AddCatalogueLinkForm-CvJoaUFz.js.map} +1 -1
- package/dist/ClipboardButton-Cg6LGUiD.js.map +1 -1
- package/dist/ControlsButton-Byx4XQtB.js.map +1 -1
- package/dist/CopyableText-BKsM-TuS.js.map +1 -1
- package/dist/{DataTable-Cgn_RKTA.js → DataTable-Guuh0GZc.js} +53 -49
- package/dist/DataTable-Guuh0GZc.js.map +1 -0
- package/dist/{FeedbackBar-DEDpoNy7.js → FeedbackBar-DsOWAAGt.js} +2 -2
- package/dist/{FeedbackBar-DEDpoNy7.js.map → FeedbackBar-DsOWAAGt.js.map} +1 -1
- package/dist/{Lexical.prod-nAj5fF96.js → Lexical.prod-Dy5aDppc.js} +2449 -1794
- package/dist/Lexical.prod-Dy5aDppc.js.map +1 -0
- package/dist/LexicalClipboard.prod-CS8a49uL.js +398 -0
- package/dist/LexicalClipboard.prod-CS8a49uL.js.map +1 -0
- package/dist/{LexicalComposerContext.prod-DumMmRBt.js → LexicalComposerContext.prod-D4HOlWII.js} +3 -3
- package/dist/LexicalComposerContext.prod-D4HOlWII.js.map +1 -0
- package/dist/LexicalHtml.prod-BtzosUOH.js +1611 -0
- package/dist/LexicalHtml.prod-BtzosUOH.js.map +1 -0
- package/dist/LexicalLink.prod-DzgwWhQM.js +646 -0
- package/dist/LexicalLink.prod-DzgwWhQM.js.map +1 -0
- package/dist/LexicalList.prod-icY8mpm6.js +710 -0
- package/dist/LexicalList.prod-icY8mpm6.js.map +1 -0
- package/dist/{LexicalTable.prod-BpHQYpBM.js → LexicalTable.prod-Bf0is-op.js} +674 -750
- package/dist/LexicalTable.prod-Bf0is-op.js.map +1 -0
- package/dist/LexicalUtils.prod-CjGUKarD.js +259 -0
- package/dist/LexicalUtils.prod-CjGUKarD.js.map +1 -0
- package/dist/{LinkContextMenu-Byu3AEqp.js → LinkContextMenu-C8ehPbP8.js} +2 -2
- package/dist/{LinkContextMenu-Byu3AEqp.js.map → LinkContextMenu-C8ehPbP8.js.map} +1 -1
- package/dist/MenuLink-sK2_W2zs.js.map +1 -1
- package/dist/MetaDataList-Co9WCexh.js.map +1 -1
- package/dist/MultiSelectBox-D34qAgzc.js.map +1 -1
- package/dist/OverlayStepBar-BiC06Itd.js.map +1 -1
- package/dist/{PasteHandlerPlugin-DyTXcFsj.js → PasteHandlerPlugin-CSo_lOE8.js} +6 -6
- package/dist/{PasteHandlerPlugin-DyTXcFsj.js.map → PasteHandlerPlugin-CSo_lOE8.js.map} +1 -1
- package/dist/Periods-B4ms3N24.js.map +1 -1
- package/dist/Repeater-DUo13Mq6.js +23 -0
- package/dist/Repeater-DUo13Mq6.js.map +1 -0
- package/dist/SortableProvider-D-6Ttz0h.js.map +1 -1
- package/dist/{TableCellContextMenu--4IdoKAU.js → TableCellContextMenu-Cu5iXYSJ.js} +2 -2
- package/dist/{TableCellContextMenu--4IdoKAU.js.map → TableCellContextMenu-Cu5iXYSJ.js.map} +1 -1
- package/dist/{TableCellResizerPlugin-Dn8Ks2Lm.js → TableCellResizerPlugin-Bb2blXnq.js} +43 -43
- package/dist/TableCellResizerPlugin-Bb2blXnq.js.map +1 -0
- package/dist/VarIndicator-D0cnlcIf.js.map +1 -1
- package/dist/assets/DataTable.css +1 -1
- package/dist/assets/Repeater.css +1 -1
- package/dist/{chunk-5WKL7XVT-3IraU-Ja.js → chunk-5WKL7XVT-CvOIS3NE.js} +15 -15
- package/dist/{chunk-5WKL7XVT-3IraU-Ja.js.map → chunk-5WKL7XVT-CvOIS3NE.js.map} +1 -1
- package/dist/{client-BcEWjSJP.js → client-CXlG3hNo.js} +956 -957
- package/dist/{client-BcEWjSJP.js.map → client-CXlG3hNo.js.map} +1 -1
- package/dist/components/Accordion/Accordion.test.js +3 -3
- package/dist/components/Accordion/Accordion.test.js.map +1 -1
- package/dist/components/AccordionCard/AccordionCard.stories.js.map +1 -1
- package/dist/components/AccordionCard/AccordionCard.test.js +3 -3
- package/dist/components/AccordionCard/AccordionCard.test.js.map +1 -1
- package/dist/components/ActionList/ActionList.test.js +3 -3
- package/dist/components/ActionList/ActionList.test.js.map +1 -1
- package/dist/components/AppStatusBar/AppStatusBar.test.js +2 -2
- package/dist/components/AppStatusBar/AppStatusBar.test.js.map +1 -1
- package/dist/components/Attention/Attention.stories.js.map +1 -1
- package/dist/components/Attention/Attention.test.js +2 -2
- package/dist/components/Attention/Attention.test.js.map +1 -1
- package/dist/components/Backdrop/Backdrop.stories.js.map +1 -1
- package/dist/components/Backdrop/Backdrop.test.js +2 -2
- package/dist/components/Backdrop/Backdrop.test.js.map +1 -1
- package/dist/components/Buttons/Button.stories.js +1 -1
- package/dist/components/Buttons/Button.test.js +2 -2
- package/dist/components/Buttons/Button.test.js.map +1 -1
- package/dist/components/Buttons/LinkButton.stories.js +1 -1
- package/dist/components/Buttons/LinkButton.test.js +2 -2
- package/dist/components/Buttons/LinkButton.test.js.map +1 -1
- package/dist/components/Buttons/MenuButton.stories.js +1 -1
- package/dist/components/Buttons/MenuButton.test.js +2 -2
- package/dist/components/Buttons/MenuButton.test.js.map +1 -1
- package/dist/components/Card/Card.test.js +2 -2
- package/dist/components/Card/Card.test.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.stories.js +1 -1
- package/dist/components/Checkbox/Checkbox.stories.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.test.js +3 -3
- package/dist/components/Checkbox/Checkbox.test.js.map +1 -1
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js +1 -1
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js +2 -2
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js.map +1 -1
- package/dist/components/CheckboxTree/CheckboxTree.js +1 -1
- package/dist/components/CheckboxTree/CheckboxTree.stories.js +3 -3
- package/dist/components/CheckboxTree/CheckboxTree.stories.js.map +1 -1
- package/dist/components/CheckboxTree/index.js +1 -1
- package/dist/components/Chip/Chip.stories.js +1 -1
- package/dist/components/ControlsButton/ControlsButton.stories.js +1 -1
- package/dist/components/CopyableText/CopyableText.stories.js.map +1 -1
- package/dist/components/DataTable/DataTable.d.ts +3 -1
- package/dist/components/DataTable/DataTable.js +1 -1
- package/dist/components/DataTable/DataTable.stories.js +49 -58
- package/dist/components/DataTable/DataTable.stories.js.map +1 -1
- package/dist/components/DataTable/index.js +1 -1
- package/dist/components/Drawer/Drawer.stories.js +1 -1
- package/dist/components/Drawer/Drawer.stories.js.map +1 -1
- package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.stories.js.map +1 -1
- package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.js +1 -1
- package/dist/components/FeedbackBar/FeedbackBar.js +1 -1
- package/dist/components/FeedbackBar/FeedbackBar.stories.js +2 -2
- package/dist/components/FeedbackBar/FeedbackBar.stories.js.map +1 -1
- package/dist/components/FeedbackBar/FeedbackBar.test.js +3 -3
- package/dist/components/FeedbackBar/FeedbackBar.test.js.map +1 -1
- package/dist/components/FeedbackBar/index.js +1 -1
- package/dist/components/FeedbackBox/FeedbackBox.stories.js +1 -1
- package/dist/components/FormInput/FormInput.js +1 -1
- package/dist/components/FormInput/FormInput.stories.js +2 -2
- package/dist/components/FormInput/index.js +1 -1
- package/dist/components/GridRow/GridRow.stories.js.map +1 -1
- package/dist/components/Icon/Icon.stories.js.map +1 -1
- package/dist/components/IconButton/IconButton.stories.js +1 -1
- package/dist/components/IconButton/IconButton.stories.js.map +1 -1
- package/dist/components/InfoBanner/InfoBanner.stories.js.map +1 -1
- package/dist/components/InfoMessage/InfoMessage.stories.js.map +1 -1
- package/dist/components/InputField/InputField.stories.js +1 -1
- package/dist/components/InputField/InputField.stories.js.map +1 -1
- package/dist/components/Label/Label.test.js +2 -2
- package/dist/components/Label/Label.test.js.map +1 -1
- package/dist/components/MenuLink/MenuLink.stories.js.map +1 -1
- package/dist/components/MetaDataBar/MetaDataBar.stories.js.map +1 -1
- package/dist/components/MetaDataBar/MetaDataBar.test.js +1 -1
- package/dist/components/MetaDataBar/MetaDataBar.test.js.map +1 -1
- package/dist/components/MetaDataList/MetaDataList.stories.js.map +1 -1
- package/dist/components/ModalDialog/ModalDialog.stories.js +1 -1
- package/dist/components/ModalDialog/ModalDialog.stories.js.map +1 -1
- package/dist/components/MultiSelect/MultiSelect.js +1 -1
- package/dist/components/MultiSelect/MultiSelect.stories.js +2 -2
- package/dist/components/MultiSelect/MultiSelect.stories.js.map +1 -1
- package/dist/components/MultiSelect/components/MultiSelectHeader.js +1 -1
- package/dist/components/MultiSelect/index.js +1 -1
- package/dist/components/MultiSelectBox/MultiSelectBox.stories.js +1 -1
- package/dist/components/MultiSelectBox/MultiSelectBox.stories.js.map +1 -1
- package/dist/components/MultiSelectBox/MultiSelectBox.test.js +2 -2
- package/dist/components/MultiSelectBox/MultiSelectBox.test.js.map +1 -1
- package/dist/components/Notification/Notification.stories.js +1 -1
- package/dist/components/Notification/Notification.test.js +2 -2
- package/dist/components/Notification/Notification.test.js.map +1 -1
- package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js +1 -1
- package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js.map +1 -1
- package/dist/components/PageOverlay/PageOverlay.stories.js +1 -1
- package/dist/components/PageOverlay/PageOverlay.stories.js.map +1 -1
- package/dist/components/PeriodSelector/PeriodSelector.js +1 -1
- package/dist/components/PeriodSelector/PeriodSelector.stories.js +2 -2
- package/dist/components/PeriodSelector/PeriodSelector.stories.js.map +1 -1
- package/dist/components/PeriodSelector/index.js +1 -1
- package/dist/components/Periods/Periods.stories.js.map +1 -1
- package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +1 -1
- package/dist/components/ProgrammeCard/ProgrammeCard.stories.js.map +1 -1
- package/dist/components/RadioButton/RadioButton.stories.js.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.stories.js +1 -1
- package/dist/components/RadioGroup/RadioGroup.stories.js.map +1 -1
- package/dist/components/RadioGroup/Radiogroup.test.js +2 -2
- package/dist/components/RadioGroup/Radiogroup.test.js.map +1 -1
- package/dist/components/RadioTabSelector/RadioTabSelector.js +1 -1
- package/dist/components/RadioTabSelector/RadioTabSelector.stories.js +2 -2
- package/dist/components/RadioTabSelector/index.js +1 -1
- package/dist/components/Repeater/Repeater.d.ts +1 -1
- package/dist/components/Repeater/Repeater.js +1 -1
- package/dist/components/Repeater/Repeater.stories.js +1 -1
- package/dist/components/Repeater/Repeater.stories.js.map +1 -1
- package/dist/components/Repeater/index.js +1 -1
- package/dist/components/RteEditor/EditorHeader/EditorHeader.js +1 -1
- package/dist/components/RteEditor/EditorHeader/index.js +1 -1
- package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +4 -4
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/AddCatalogueLinkForm.js +1 -1
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/index.js +1 -1
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js +36 -36
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/HistoryPlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +15 -15
- package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/PasteHandlerPlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/TableCellResizerPlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/index.js +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js +33 -33
- package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js.map +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/index.js +2 -2
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/index.js +4 -4
- package/dist/components/RteEditor/RteEditor.js +1 -1
- package/dist/components/RteEditor/RteEditor.stories.js +1 -1
- package/dist/components/RteEditor/RteEditor.stories.js.map +1 -1
- package/dist/components/RteEditor/helpers.js +7 -7
- package/dist/components/RteEditor/helpers.js.map +1 -1
- package/dist/components/RteEditor/index.js +1 -1
- package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js +18 -18
- package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js.map +1 -1
- package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js +22 -22
- package/dist/components/SearchField/SearcheField.stories.js.map +1 -1
- package/dist/components/SectionNotification/SectionNotification.stories.js.map +1 -1
- package/dist/components/SelectListbox/SelectListBox.stories.js +1 -1
- package/dist/components/SelectListbox/SelectListBox.stories.js.map +1 -1
- package/dist/components/SelectListbox/SelectProvider.js.map +1 -1
- package/dist/components/SelectListbox/components/SelectButton.js.map +1 -1
- package/dist/components/SelectListbox/components/SelectOption.js.map +1 -1
- package/dist/components/Slider/Slider.stories.js.map +1 -1
- package/dist/components/Sortable/Sortable.stories.js +1 -1
- package/dist/components/Sortable/Sortable.stories.js.map +1 -1
- package/dist/components/Spinner/Spinner.stories.js.map +1 -1
- package/dist/components/StatusBadge/StatusBadge.test.js +2 -2
- package/dist/components/StatusBadge/StatusBadge.test.js.map +1 -1
- package/dist/components/StatusPill/StatusPill.stories.js.map +1 -1
- package/dist/components/TextArea/TextArea.stories.js +1 -1
- package/dist/components/TextArea/TextArea.test.js +3 -3
- package/dist/components/TextArea/TextArea.test.js.map +1 -1
- package/dist/components/ToggleSwitch/ToggleSwitch.stories.js +1 -1
- package/dist/components/Tooltip/Tooltip.stories.js.map +1 -1
- package/dist/components/VarIndicator/VarIndicator.stories.js +1 -1
- package/dist/components/VarIndicator/VarIndicator.test.js +3 -3
- package/dist/components/VarIndicator/VarIndicator.test.js.map +1 -1
- package/dist/components/WeekSelector/WeekSelector.js.map +1 -1
- package/dist/components/WeekSelector/WeekSelector.stories.js.map +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorOption.js.map +1 -1
- package/dist/components/hooks/useOnClickOutside.js.map +1 -1
- package/dist/components/hooks/usePositionedFloaters.js.map +1 -1
- package/dist/components/hooks/useResponsive.js.map +1 -1
- package/dist/components/index.js +4 -4
- package/dist/components-CgBF6db6.js +2013 -0
- package/dist/components-CgBF6db6.js.map +1 -0
- package/dist/{dist-C6Ar8a59.js → dist-oLwM--0y.js} +14 -14
- package/dist/{dist-C6Ar8a59.js.map → dist-oLwM--0y.js.map} +1 -1
- package/dist/{esm-B6Pg-v2v.js → esm-BXzGXYWZ.js} +3 -3
- package/dist/{esm-B6Pg-v2v.js.map → esm-BXzGXYWZ.js.map} +1 -1
- package/dist/{helpers-BzYayeT-.js → helpers-MMNO9vlK.js} +9 -9
- package/dist/helpers-MMNO9vlK.js.map +1 -0
- package/dist/index.js +4 -4
- package/dist/{react-18-DbbN8Pdb.js → react-18-BwdnKC48.js} +3 -3
- package/dist/react-18-BwdnKC48.js.map +1 -0
- package/dist/{react.esm-56DGmlLk.js → react.esm-DwWzhs9e.js} +17 -17
- package/dist/react.esm-DwWzhs9e.js.map +1 -0
- package/dist/setupTests.js +2 -2
- package/dist/setupTests.js.map +1 -1
- package/dist/storybook__react.d.js +266 -266
- package/dist/storybook__react.d.js.map +1 -1
- package/dist/{test-WxLxsxwA.js → test-Gtly6H2f.js} +7 -5
- package/dist/{test-WxLxsxwA.js.map → test-Gtly6H2f.js.map} +1 -1
- package/dist/{test-utils-CMrZ33U0.js → test-utils-BVa31HVj.js} +2 -2
- package/dist/{test-utils-CMrZ33U0.js.map → test-utils-BVa31HVj.js.map} +1 -1
- package/package.json +24 -25
- package/dist/DataTable-Cgn_RKTA.js.map +0 -1
- package/dist/Lexical.prod-nAj5fF96.js.map +0 -1
- package/dist/LexicalClipboard.prod-B9sWgdS2.js +0 -348
- package/dist/LexicalClipboard.prod-B9sWgdS2.js.map +0 -1
- package/dist/LexicalComposerContext.prod-DumMmRBt.js.map +0 -1
- package/dist/LexicalHtml.prod-RCMsF0qt.js +0 -2139
- package/dist/LexicalHtml.prod-RCMsF0qt.js.map +0 -1
- package/dist/LexicalLink.prod-BcBNTFEb.js +0 -707
- package/dist/LexicalLink.prod-BcBNTFEb.js.map +0 -1
- package/dist/LexicalList.prod-THQt9B32.js +0 -890
- package/dist/LexicalList.prod-THQt9B32.js.map +0 -1
- package/dist/LexicalTable.prod-BpHQYpBM.js.map +0 -1
- package/dist/LexicalUtils.prod-7S6iuu9A.js +0 -347
- package/dist/LexicalUtils.prod-7S6iuu9A.js.map +0 -1
- package/dist/Repeater-BAEfOMZI.js +0 -22
- package/dist/Repeater-BAEfOMZI.js.map +0 -1
- package/dist/TableCellResizerPlugin-Dn8Ks2Lm.js.map +0 -1
- package/dist/components-KU0q76JR.js +0 -2150
- package/dist/components-KU0q76JR.js.map +0 -1
- package/dist/helpers-BzYayeT-.js.map +0 -1
- package/dist/react-18-DbbN8Pdb.js.map +0 -1
- package/dist/react.esm-56DGmlLk.js.map +0 -1
- /package/dist/{chunk-CWhphoD1.js → rolldown-runtime-CWhphoD1.js} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { s as e } from "../../../../components-
|
|
1
|
+
import { s as e } from "../../../../components-CgBF6db6.js";
|
|
2
2
|
export { e as LinkPlugin };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as e } from "../../../../clsx-C67XSbzZ.js";
|
|
2
2
|
import { Icon as t } from "../../../Icon/Icon.js";
|
|
3
|
-
import { t as n } from "../../../../LexicalComposerContext.prod-
|
|
4
|
-
import {
|
|
5
|
-
import { l as s } from "../../../../LexicalUtils.prod-
|
|
6
|
-
import {
|
|
3
|
+
import { t as n } from "../../../../LexicalComposerContext.prod-D4HOlWII.js";
|
|
4
|
+
import { K as r, Kt as i, cn as a, gn as o } from "../../../../Lexical.prod-Dy5aDppc.js";
|
|
5
|
+
import { l as s } from "../../../../LexicalUtils.prod-CjGUKarD.js";
|
|
6
|
+
import { i as c, n as l, o as u, r as d, s as f, t as p, u as m } from "../../../../LexicalList.prod-icY8mpm6.js";
|
|
7
7
|
import { t as h } from "../../../../RteEditor.module-pWBasED2.js";
|
|
8
8
|
import { useTranslation as g } from "../../hooks/useTranslation.js";
|
|
9
9
|
import { useEffect as _, useState as v } from "react";
|
|
@@ -14,10 +14,10 @@ var b = {
|
|
|
14
14
|
number: "NumberedList"
|
|
15
15
|
}, x = ["bullet", "number"], S = () => {
|
|
16
16
|
let S = g(), [C] = n(), [w, T] = v(null), [E, D] = v(!1), [O, k] = v(!1), A = (e) => {
|
|
17
|
-
e === "number" && w !== "number" ? (C.dispatchCommand(
|
|
17
|
+
e === "number" && w !== "number" ? (C.dispatchCommand(u, void 0), T("number")) : e === "bullet" && w !== "bullet" ? (C.dispatchCommand(c, void 0), T("bullet")) : (C.dispatchCommand(f, void 0), T(null));
|
|
18
18
|
};
|
|
19
19
|
return _(() => {
|
|
20
|
-
let e = C.registerCommand(
|
|
20
|
+
let e = C.registerCommand(i, (e) => e.ctrlKey && e.shiftKey && e.code === "Digit7" ? (e.preventDefault(), O ? C.dispatchCommand(f, void 0) : C.dispatchCommand(u, void 0), !0) : e.ctrlKey && e.shiftKey && e.code === "Digit8" ? (e.preventDefault(), E ? C.dispatchCommand(f, void 0) : C.dispatchCommand(c, void 0), !0) : !1, 4);
|
|
21
21
|
return () => {
|
|
22
22
|
e();
|
|
23
23
|
};
|
|
@@ -26,20 +26,20 @@ var b = {
|
|
|
26
26
|
O,
|
|
27
27
|
E
|
|
28
28
|
]), _(() => {
|
|
29
|
-
let e = C.registerCommand(
|
|
30
|
-
let e =
|
|
31
|
-
if (!
|
|
29
|
+
let e = C.registerCommand(a, (e) => (e.preventDefault(), C.update(() => {
|
|
30
|
+
let e = r();
|
|
31
|
+
if (!o(e)) return;
|
|
32
32
|
let t = e.anchor.getNode(), n = t.getParent();
|
|
33
|
-
if (!
|
|
34
|
-
let
|
|
35
|
-
if (
|
|
36
|
-
let e =
|
|
33
|
+
if (!d(n)) return;
|
|
34
|
+
let i = n.getParent();
|
|
35
|
+
if (l(i)) {
|
|
36
|
+
let e = m(l(i) ? i.getListType() : "bullet");
|
|
37
37
|
n.append(e), e.append(t);
|
|
38
38
|
}
|
|
39
39
|
}), !0), 1), t = C.registerUpdateListener(({ editorState: e }) => {
|
|
40
40
|
e.read(() => {
|
|
41
|
-
let e =
|
|
42
|
-
if (
|
|
41
|
+
let e = r();
|
|
42
|
+
if (o(e)) {
|
|
43
43
|
let t = s(e.anchor.getNode(), p);
|
|
44
44
|
if (t) {
|
|
45
45
|
let e = t.getTag();
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../../../../PasteHandlerPlugin-
|
|
1
|
+
import { t as e } from "../../../../PasteHandlerPlugin-CSo_lOE8.js";
|
|
2
2
|
export { e as PasteHandlerPlugin };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../../../../PasteHandlerPlugin-
|
|
1
|
+
import { t as e } from "../../../../PasteHandlerPlugin-CSo_lOE8.js";
|
|
2
2
|
export { e as PasteHandlerPlugin };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../../../../TableCellResizerPlugin-
|
|
1
|
+
import { t as e } from "../../../../TableCellResizerPlugin-Bb2blXnq.js";
|
|
2
2
|
export { e as TableCellResizerPlugin };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../../../../TableCellResizerPlugin-
|
|
1
|
+
import { t as e } from "../../../../TableCellResizerPlugin-Bb2blXnq.js";
|
|
2
2
|
export { e as TableCellResizerPlugin };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e } from "../../../../components-
|
|
1
|
+
import { a as e } from "../../../../components-CgBF6db6.js";
|
|
2
2
|
export { e as AddTableForm };
|
package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../../../../../TableCellContextMenu
|
|
1
|
+
import { t as e } from "../../../../../TableCellContextMenu-Cu5iXYSJ.js";
|
|
2
2
|
export { e as TableCellContextMenu };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../../../../../TableCellContextMenu
|
|
1
|
+
import { t as e } from "../../../../../TableCellContextMenu-Cu5iXYSJ.js";
|
|
2
2
|
export { e as TableCellContextMenu };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as e } from "../../../../components-
|
|
1
|
+
import { i as e } from "../../../../components-CgBF6db6.js";
|
|
2
2
|
export { e as TablePlugin };
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { C as t,
|
|
1
|
+
import { gr as e } from "../../../../Lexical.prod-Dy5aDppc.js";
|
|
2
|
+
import { C as t, a as n, b as r, f as i, g as a, i as o, m as s, o as c, u as l, v as u, w as d, y as f } from "../../../../LexicalTable.prod-Bf0is-op.js";
|
|
3
3
|
import { TableWrapperNode as p } from "../../nodes/TableWrapperNode/TableWrapperNode.js";
|
|
4
4
|
//#region src/components/RteEditor/Plugins/TablePlugin/helpers.ts
|
|
5
|
-
var m = 32, h = 48, g = 1, _ = 200, v = 320, y = (
|
|
6
|
-
let
|
|
7
|
-
for (let
|
|
8
|
-
let t =
|
|
9
|
-
for (let
|
|
10
|
-
let n =
|
|
5
|
+
var m = 32, h = 48, g = 1, _ = 200, v = 320, y = (t, n) => {
|
|
6
|
+
let a = i(0, 0, !1);
|
|
7
|
+
for (let i = 0; i < t; i++) {
|
|
8
|
+
let t = r();
|
|
9
|
+
for (let r = 0; r < n; r++) {
|
|
10
|
+
let n = d(0, void 0, void 0);
|
|
11
11
|
n.append(e()), t.append(n);
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
a.append(t);
|
|
14
14
|
}
|
|
15
|
-
return
|
|
15
|
+
return a;
|
|
16
16
|
}, b = (e) => {
|
|
17
17
|
let t = f(e), n = t.getNextSibling() || t.getPreviousSibling(), r = t.getParentOrThrow();
|
|
18
18
|
if (r.getChildrenSize() > 1 ? t.remove() : r.remove(), n !== null) {
|
|
@@ -20,31 +20,31 @@ var m = 32, h = 48, g = 1, _ = 200, v = 320, y = (n, r) => {
|
|
|
20
20
|
e && e.select();
|
|
21
21
|
}
|
|
22
22
|
}, x = (e) => {
|
|
23
|
-
let t =
|
|
23
|
+
let t = n(e);
|
|
24
24
|
if (!t) throw Error("Selected node is not a TableCellNode");
|
|
25
|
-
let
|
|
26
|
-
|
|
27
|
-
}, S = (e,
|
|
28
|
-
if (!
|
|
29
|
-
let
|
|
30
|
-
|
|
31
|
-
let
|
|
32
|
-
|
|
33
|
-
}, C = (e,
|
|
34
|
-
if (!
|
|
35
|
-
let
|
|
36
|
-
if (!
|
|
37
|
-
let f =
|
|
25
|
+
let r = t.getParent();
|
|
26
|
+
r instanceof p ? r.remove() : t.remove();
|
|
27
|
+
}, S = (e, n) => {
|
|
28
|
+
if (!t(e)) throw Error("Selected node is not a TableCellNode");
|
|
29
|
+
let i = r();
|
|
30
|
+
l(n === "insertRowBelow");
|
|
31
|
+
let a = i.getFirstDescendant();
|
|
32
|
+
a && a.select();
|
|
33
|
+
}, C = (e, n) => {
|
|
34
|
+
if (!t(e)) throw Error("Selected node is not a TableCellNode");
|
|
35
|
+
let r = s(e), i = u(e), c = r.getChildren(), l = a(e), d = o(n === "insertColumnLeft");
|
|
36
|
+
if (!d) return;
|
|
37
|
+
let f = u(d);
|
|
38
38
|
if (f === -1) return;
|
|
39
|
-
let p =
|
|
39
|
+
let p = r.getColWidths();
|
|
40
40
|
if (!p) return;
|
|
41
41
|
let m = p.map((e, t) => t === f ? 48 : e - Math.ceil(48 / (p.length - 1)));
|
|
42
|
-
|
|
43
|
-
let h =
|
|
42
|
+
r.setColWidths(m), i = n === "insertColumnLeft" ? i : i + 1;
|
|
43
|
+
let h = c[l].getChildren()[i];
|
|
44
44
|
h && h.select();
|
|
45
45
|
}, w = (e) => {
|
|
46
|
-
if (!
|
|
47
|
-
(
|
|
46
|
+
if (!t(e)) throw Error("Selected node is not a TableCellNode");
|
|
47
|
+
(s(e).getFirstChild()?.getChildrenSize() || 0) === 1 ? x(e) : c();
|
|
48
48
|
}, T = (e) => {
|
|
49
49
|
let t = e.getRootElement();
|
|
50
50
|
if (!t || typeof window > "u") return 0;
|
|
@@ -57,10 +57,10 @@ var m = 32, h = 48, g = 1, _ = 200, v = 320, y = (n, r) => {
|
|
|
57
57
|
let i = window.getComputedStyle(r);
|
|
58
58
|
return parseInt(i.width) - t * 1 - 1;
|
|
59
59
|
}, D = (e) => {
|
|
60
|
-
let
|
|
61
|
-
for (let e of
|
|
62
|
-
let
|
|
63
|
-
for (let e of
|
|
60
|
+
let n = e.getChildren();
|
|
61
|
+
for (let e of n) {
|
|
62
|
+
let n = e.getChildren();
|
|
63
|
+
for (let e of n) if (t(e) && e.getTextContent().trim().length > 0) return !0;
|
|
64
64
|
}
|
|
65
65
|
return !1;
|
|
66
66
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":[],"sources":["../../../../../src/components/RteEditor/Plugins/TablePlugin/helpers.ts"],"sourcesContent":["import {\n $createTableNodeWithDimensions,\n $createTableRowNode,\n $createTableCellNode,\n $deleteTableColumnAtSelection,\n $isTableCellNode,\n $getTableNodeFromLexicalNodeOrThrow,\n $getTableRowNodeFromTableCellNodeOrThrow,\n $getTableRowIndexFromTableCellNode,\n $getTableColumnIndexFromTableCellNode,\n $insertTableColumnAtSelection,\n $insertTableRowAtSelection,\n $findTableNode,\n} from '@lexical/table';\nimport { $createParagraphNode } from 'lexical';\n\nimport type { TableCellNode, TableNode, TableRowNode } from '@lexical/table';\nimport type { TextNode, ElementNode, LexicalEditor } from 'lexical';\n\nimport { TableWrapperNode } from 'components/RteEditor/nodes';\n\nexport const MIN_COLUMN_WIDTH = 32;\nexport const DEFAULT_COL_WIDTH = 48;\nexport const BORDER_WIDTHS = 1;\nexport const PREVENT_OPEN_DELAY = 200;\nexport const DEFAULT_EDITOR_WIDTH = 320;\n\nexport const createTable = (nrOfRows: number, nrOfColumns: number): ElementNode => {\n const tableNode = $createTableNodeWithDimensions(0, 0, false);\n for (let rowIndex = 0; rowIndex < nrOfRows; rowIndex++) {\n const rowNode = $createTableRowNode();\n for (let colIndex = 0; colIndex < nrOfColumns; colIndex++) {\n const cellNode = $createTableCellNode(0, undefined, undefined);\n cellNode.append($createParagraphNode());\n rowNode.append(cellNode);\n }\n tableNode.append(rowNode);\n }\n return tableNode;\n};\n\nexport const deleteRow = (selectedNode: ElementNode) => {\n const currentRow = $getTableRowNodeFromTableCellNodeOrThrow(selectedNode);\n const nextRow = currentRow.getNextSibling() || currentRow.getPreviousSibling();\n const currentTable = currentRow.getParentOrThrow();\n currentTable.getChildrenSize() > 1 ? currentRow.remove() : currentTable.remove();\n\n if (nextRow !== null) {\n const firstDescendant = (nextRow as ElementNode).getFirstDescendant();\n if (firstDescendant) {\n (firstDescendant as TextNode).select();\n }\n }\n};\n\nexport const deleteTable = (selectedNode: ElementNode) => {\n const tableNode = $findTableNode(selectedNode);\n if (!tableNode) {\n throw new Error('Selected node is not a TableCellNode');\n }\n\n const wrapperNode = tableNode.getParent();\n if (wrapperNode instanceof TableWrapperNode) {\n wrapperNode.remove();\n } else {\n tableNode.remove();\n }\n};\n\nexport const insertRow = (selectedNode: ElementNode, position: 'insertRowAbove' | 'insertRowBelow') => {\n if (!$isTableCellNode(selectedNode)) {\n throw new Error('Selected node is not a TableCellNode');\n }\n const newRow = $createTableRowNode();\n\n $insertTableRowAtSelection(position === 'insertRowBelow');\n\n const firstDescendant = newRow.getFirstDescendant();\n if (firstDescendant) {\n (firstDescendant as TextNode).select();\n }\n};\n\nexport const insertColumn = (selectedNode: ElementNode, position: 'insertColumnLeft' | 'insertColumnRight') => {\n if (!$isTableCellNode(selectedNode)) {\n throw new Error('Selected node is not a TableCellNode');\n }\n const currentTable = $getTableNodeFromLexicalNodeOrThrow(selectedNode);\n let columnIndex = $getTableColumnIndexFromTableCellNode(selectedNode);\n const rowsInTable
|
|
1
|
+
{"version":3,"file":"helpers.js","names":[],"sources":["../../../../../src/components/RteEditor/Plugins/TablePlugin/helpers.ts"],"sourcesContent":["import {\n $createTableNodeWithDimensions,\n $createTableRowNode,\n $createTableCellNode,\n $deleteTableColumnAtSelection,\n $isTableCellNode,\n $getTableNodeFromLexicalNodeOrThrow,\n $getTableRowNodeFromTableCellNodeOrThrow,\n $getTableRowIndexFromTableCellNode,\n $getTableColumnIndexFromTableCellNode,\n $insertTableColumnAtSelection,\n $insertTableRowAtSelection,\n $findTableNode,\n} from '@lexical/table';\nimport { $createParagraphNode } from 'lexical';\n\nimport type { TableCellNode, TableNode, TableRowNode } from '@lexical/table';\nimport type { TextNode, ElementNode, LexicalEditor } from 'lexical';\n\nimport { TableWrapperNode } from 'components/RteEditor/nodes';\n\nexport const MIN_COLUMN_WIDTH = 32;\nexport const DEFAULT_COL_WIDTH = 48;\nexport const BORDER_WIDTHS = 1;\nexport const PREVENT_OPEN_DELAY = 200;\nexport const DEFAULT_EDITOR_WIDTH = 320;\n\nexport const createTable = (nrOfRows: number, nrOfColumns: number): ElementNode => {\n const tableNode = $createTableNodeWithDimensions(0, 0, false);\n for (let rowIndex = 0; rowIndex < nrOfRows; rowIndex++) {\n const rowNode = $createTableRowNode();\n for (let colIndex = 0; colIndex < nrOfColumns; colIndex++) {\n const cellNode = $createTableCellNode(0, undefined, undefined);\n cellNode.append($createParagraphNode());\n rowNode.append(cellNode);\n }\n tableNode.append(rowNode);\n }\n return tableNode;\n};\n\nexport const deleteRow = (selectedNode: ElementNode) => {\n const currentRow = $getTableRowNodeFromTableCellNodeOrThrow(selectedNode);\n const nextRow = currentRow.getNextSibling() || currentRow.getPreviousSibling();\n const currentTable = currentRow.getParentOrThrow();\n currentTable.getChildrenSize() > 1 ? currentRow.remove() : currentTable.remove();\n\n if (nextRow !== null) {\n const firstDescendant = (nextRow as ElementNode).getFirstDescendant();\n if (firstDescendant) {\n (firstDescendant as TextNode).select();\n }\n }\n};\n\nexport const deleteTable = (selectedNode: ElementNode) => {\n const tableNode = $findTableNode(selectedNode);\n if (!tableNode) {\n throw new Error('Selected node is not a TableCellNode');\n }\n\n const wrapperNode = tableNode.getParent();\n if (wrapperNode instanceof TableWrapperNode) {\n wrapperNode.remove();\n } else {\n tableNode.remove();\n }\n};\n\nexport const insertRow = (selectedNode: ElementNode, position: 'insertRowAbove' | 'insertRowBelow') => {\n if (!$isTableCellNode(selectedNode)) {\n throw new Error('Selected node is not a TableCellNode');\n }\n const newRow = $createTableRowNode();\n\n $insertTableRowAtSelection(position === 'insertRowBelow');\n\n const firstDescendant = newRow.getFirstDescendant();\n if (firstDescendant) {\n (firstDescendant as TextNode).select();\n }\n};\n\nexport const insertColumn = (selectedNode: ElementNode, position: 'insertColumnLeft' | 'insertColumnRight') => {\n if (!$isTableCellNode(selectedNode)) {\n throw new Error('Selected node is not a TableCellNode');\n }\n const currentTable = $getTableNodeFromLexicalNodeOrThrow(selectedNode);\n let columnIndex = $getTableColumnIndexFromTableCellNode(selectedNode);\n const rowsInTable = currentTable.getChildren<TableRowNode>();\n const rowIndex = $getTableRowIndexFromTableCellNode(selectedNode);\n const insertedCellNode = $insertTableColumnAtSelection(position === 'insertColumnLeft');\n\n if (!insertedCellNode) return;\n const insertedColumnIndex = $getTableColumnIndexFromTableCellNode(insertedCellNode);\n\n if (insertedColumnIndex === -1) return;\n const colWidths = currentTable.getColWidths();\n\n if (!colWidths) return;\n const newColWidths = colWidths.map((width, index) =>\n index === insertedColumnIndex ? DEFAULT_COL_WIDTH : width - Math.ceil(DEFAULT_COL_WIDTH / (colWidths.length - 1))\n );\n\n currentTable.setColWidths(newColWidths);\n\n columnIndex = position === 'insertColumnLeft' ? columnIndex : columnIndex + 1;\n const firstDescendant = rowsInTable[rowIndex].getChildren()[columnIndex];\n if (firstDescendant) {\n (firstDescendant as TextNode).select();\n }\n};\n\nexport const deleteColumn = (selectedNode: ElementNode) => {\n if (!$isTableCellNode(selectedNode)) {\n throw new Error('Selected node is not a TableCellNode');\n }\n const currentTable = $getTableNodeFromLexicalNodeOrThrow(selectedNode);\n const numberOfColumns = (currentTable.getFirstChild() as ElementNode)?.getChildrenSize() || 0;\n\n if (numberOfColumns === 1) {\n deleteTable(selectedNode);\n } else {\n $deleteTableColumnAtSelection();\n }\n};\n\nexport const getEditorContentWidth = (editor: LexicalEditor): number => {\n const rootEl = editor.getRootElement();\n if (!rootEl || typeof window === 'undefined') return 0;\n const rect = rootEl.getBoundingClientRect();\n const styles = window.getComputedStyle(rootEl);\n const insertX = parseFloat(styles.paddingLeft || '0') + parseFloat(styles.paddingRight || '0') + DEFAULT_COL_WIDTH;\n return Math.max(0, rect.width - insertX);\n};\n\nexport const getEditorParrentCellWidth = (\n node: TableCellNode | null,\n nrOfColumns: number,\n editor: LexicalEditor\n): number => {\n if (!node) return 0;\n\n const cell = editor.getElementByKey(node.getKey());\n if (!cell) return 0;\n\n const computedStyles = window.getComputedStyle(cell);\n return parseInt(computedStyles.width) - nrOfColumns * BORDER_WIDTHS - 1;\n};\n\nexport const tableHasContent = (tableNode: TableNode): boolean => {\n const rows = tableNode.getChildren();\n for (const row of rows) {\n const cells = (row as TableRowNode).getChildren();\n for (const cell of cells) {\n if ($isTableCellNode(cell)) {\n const cellText = cell.getTextContent().trim();\n if (cellText.length > 0) {\n return true;\n }\n }\n }\n }\n return false;\n};\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { i as e } from "../../../../components-
|
|
2
|
-
import { t } from "../../../../TableCellContextMenu
|
|
1
|
+
import { i as e } from "../../../../components-CgBF6db6.js";
|
|
2
|
+
import { t } from "../../../../TableCellContextMenu-Cu5iXYSJ.js";
|
|
3
3
|
export { t as TableCellContextMenu, e as TablePlugin };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { l as e } from "../../../../components-
|
|
1
|
+
import { l as e } from "../../../../components-CgBF6db6.js";
|
|
2
2
|
export { e as ToolBarPlugin };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { l as e } from "../../../../components-
|
|
1
|
+
import { l as e } from "../../../../components-CgBF6db6.js";
|
|
2
2
|
export { e as ToolBarPlugin };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { i as e, l as t, o as n, s as r } from "../../../components-
|
|
2
|
-
import { t as i } from "../../../TableCellResizerPlugin-
|
|
1
|
+
import { i as e, l as t, o as n, s as r } from "../../../components-CgBF6db6.js";
|
|
2
|
+
import { t as i } from "../../../TableCellResizerPlugin-Bb2blXnq.js";
|
|
3
3
|
import { BlockFormatPlugin as a } from "./BlockFormatPlugin/BlockFormatPlugin.js";
|
|
4
4
|
import { ListPlugin as o } from "./ListPlugin/ListPlugin.js";
|
|
5
|
-
import { t as s } from "../../../TableCellContextMenu
|
|
6
|
-
import { t as c } from "../../../PasteHandlerPlugin-
|
|
5
|
+
import { t as s } from "../../../TableCellContextMenu-Cu5iXYSJ.js";
|
|
6
|
+
import { t as c } from "../../../PasteHandlerPlugin-CSo_lOE8.js";
|
|
7
7
|
export { a as BlockFormatPlugin, n as HistoryPlugin, r as LinkPlugin, o as ListPlugin, c as PasteHandlerPlugin, s as TableCellContextMenu, i as TableCellResizerPlugin, e as TablePlugin, t as ToolBarPlugin };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "../../components-
|
|
1
|
+
import { n as e, t } from "../../components-CgBF6db6.js";
|
|
2
2
|
export { t as Rte, e as RteEditor };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as e } from "../../components-
|
|
1
|
+
import { n as e } from "../../components-CgBF6db6.js";
|
|
2
2
|
import { t } from "../../Container-DOcrVe7u.js";
|
|
3
3
|
import "../../storyComponents/Container/index.js";
|
|
4
4
|
import { MOCK_RTE_CONTENT as n } from "./mockRteContent.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RteEditor.stories.js","names":[],"sources":["../../../src/components/RteEditor/RteEditor.stories.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\n\nimport type { PropsWithChildren } from 'react';\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { RteEditorProps } from './RteEditor';\nimport type { SearchResponse } from './Plugins/CourseCataloguePlugin/AddCatalogueLinkForm';\n\nimport { RteEditor } from './RteEditor';\nimport { MOCK_RTE_CONTENT } from './mockRteContent';\nimport { MOCK_SEARCH_COURSES, MOCK_SEARCH_PROGRAMMES } from './mockCatalogueSearchData';\n\nimport { Container } from 'storyComponents/Container';\n\nconst QUERY_SPEED = 1000; // ms\nconst CHARACTER_THRESHOLD = 3;\n\nconst codeString = `<RteEditor\n editorId=\"editor-id\"\n initialValue=\"\"\n currentLanguage=\"NL\"\n label=\"\"\n info=\"\"\n placeholder=\"\"\n notValidatedText=\"\"\n onChange={handleChange}\n onCatalogueLinkSearch={handleCatalogueLinkSearch}\n catalogueSearchResponse={{ state: 'idle', results: [] }}\n />`;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Organisms/RteEditor',\n component: RteEditor,\n parameters: {\n inspectComponent: RteEditor,\n codeString: codeString,\n },\n} as Meta<PropsWithChildren<RteEditorProps>>;\n\nconst Template: StoryFn<PropsWithChildren<RteEditorProps>> = (args) => {\n const [result, setResult] = useState<string>(args.initialValue || '');\n const [catalogueSearchResponse, setCatalogueSearchResponse] = useState<SearchResponse>({\n state: 'idle',\n results: [],\n });\n const networkTimer = useRef<NodeJS.Timeout | null>(null);\n\n const handleSearch = (query: string, linkType: 'course' | 'programme') => {\n if (query.length < CHARACTER_THRESHOLD) {\n clearTimeout(networkTimer.current!);\n setCatalogueSearchResponse({ state: 'idle', results: [] });\n return;\n }\n\n if (networkTimer.current !== null) {\n clearTimeout(networkTimer.current);\n }\n\n const lowerCaseQuery = query.toLowerCase();\n if (query.length >= CHARACTER_THRESHOLD) {\n setCatalogueSearchResponse({ state: 'pending', results: [] });\n const mockResults =\n linkType === 'course'\n ? MOCK_SEARCH_COURSES.filter(\n (item) =>\n item.name.NL.toLowerCase().includes(lowerCaseQuery) || item.code.toLowerCase().includes(lowerCaseQuery)\n )\n : MOCK_SEARCH_PROGRAMMES.filter(\n (item) =>\n item.name.NL.toLowerCase().includes(lowerCaseQuery) || item.code.toLowerCase().includes(lowerCaseQuery)\n );\n\n networkTimer.current = setTimeout(\n () =>\n setCatalogueSearchResponse({\n state: 'ready',\n results: mockResults,\n }),\n QUERY_SPEED\n );\n }\n };\n\n return (\n <>\n <Container size=\"large-full-height\">\n <RteEditor\n {...args}\n onChange={(evt) => setResult(evt)}\n onCatalogueLinkSearch={handleSearch}\n catalogueSearchResponse={catalogueSearchResponse}\n />\n </Container>\n <br />\n <br />\n\n <p style={{ margin: '0', marginTop: '2rem' }}>HTML Output:</p>\n <div\n style={{\n marginTop: '0rem',\n padding: '1rem',\n backgroundColor: '#F9F9F9',\n borderRadius: '0.25rem',\n color: '#666',\n }}\n >\n {result}\n </div>\n </>\n );\n};\n\nexport const RteEditorExample = Template.bind({});\n\nRteEditorExample.args = {\n editorId: 'test-editor',\n placeholder: 'Voeg hier tekst in...',\n currentLanguage: 'NL',\n label: 'Studiemateriaal',\n info: \"Studiemateriaal is essentieel voor succesvol leren. Het omvat boeken, artikelen, video's en oefeningen die studenten helpen hun kennis te vergroten, vaardigheden te ontwikkelen en hun studieprestaties te verbeteren.\",\n required: true,\n initialValue: MOCK_RTE_CONTENT,\n};\n\nexport const MultipleRteEditors = () => {\n const [result01, setResult01] = useState<string>(\n 'Students will:<br>• demonstrate digital literacy in an academic context<br>• learn to read and engage with texts from a range of disciplinary perspectives<br>• develop writing and argumentation skills appropriate to different disciplines<br>• learn to recognize and apply different research methodologies<br>• learn how to recognize and practice different genres and modes of academic discourse<br>• develop vocabulary appropriate to an academic environment<br>• improve analytic and critical thinking skills<br>• work independently and as part of a collaborative group<br>• learn to review and critique their own work and that of their peers <br>• improve listening comprehension and develop presentation skills<br>• participate in discussions, workshops and debates'\n );\n const [result02, setResult02] = useState<string>(\n `<p>Editor 2</p>\n <ul>\n <li>nesting</li>\n <li>\n <ol>\n <li>nested 1</li>\n <li>nested 2</li>\n </ol>\n </li>\n <li>nesting 2</li>\n <li>\n <ul>\n <li>deep nested 1</li>\n <li>deep nested 2</li>\n <li>\n <ol>\n <li>deeper nested 1</li>\n <li>\n <ul>\n <li>deepest nested 1</li>\n <li>deepest nested 2</li>\n </ul>\n </li>\n <li>deeper nested 2</li>\n <li>\n <ol>\n <li>deepest nested 1</li>\n <li>deepest nested 2</li>\n </ol>\n </li>\n </ol>\n </li>\n </ul>\n </li>\n <li>nesting end</li>\n </ul>`\n );\n\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n gap: '1rem',\n width: '100%',\n padding: '1rem',\n backgroundColor: '#FFF',\n }}\n >\n <div style={{ flex: '1' }}>\n <RteEditor\n initialValue={result01}\n editorId=\"editor-one\"\n label=\"Editor 1\"\n info=\"Uitleg over editor 1\"\n placeholder=\"Voeg hier tekst in...\"\n notValidatedText=\"\"\n onChange={(evt) => setResult01(evt)}\n />\n <br />\n <p style={{ margin: '0', marginTop: '2rem' }}>HTML Output:</p>\n <div\n style={{\n marginTop: '0rem',\n padding: '1rem',\n backgroundColor: '#F9F9F9',\n borderRadius: '0.25rem',\n color: '#666',\n }}\n >\n {result01}\n </div>\n </div>\n <div style={{ flex: '1' }}>\n <RteEditor\n initialValue={result02}\n editorId=\"editor-two\"\n label=\"Editor 2\"\n info=\"Uitleg over editor 2 wat langer om te kijken of dat ook goed gaat, want je weet maar nooit.\"\n placeholder=\"Voeg hier tekst in...\"\n notValidatedText=\"\"\n onChange={(evt) => setResult02(evt)}\n />\n <br />\n <p style={{ margin: '0', marginTop: '2rem' }}>HTML Output:</p>\n <div\n style={{\n marginTop: '0rem',\n padding: '1rem',\n backgroundColor: '#F9F9F9',\n borderRadius: '0.25rem',\n color: '#666',\n }}\n >\n {result02}\n </div>\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;;;AAaA,IAAM,IAAc,KACd,IAAsB,GAgB5B,IAAe;CACb,OAAO;CACP,WAAW;CACX,YAAY;EACV,kBAAkB;EACN;CACd;AACF,GA2Ea,MAzEiD,MAAS;CACrE,IAAM,CAAC,GAAQ,KAAa,EAAiB,EAAK,gBAAgB,EAAE,GAC9D,CAAC,GAAyB,KAA8B,EAAyB;EACrF,OAAO;EACP,SAAS,CAAC;CACZ,CAAC,GACK,IAAe,EAA8B,IAAI,GAEjD,KAAgB,GAAe,MAAqC;EACxE,IAAI,EAAM,SAAS,GAAqB;GAEtC,AADA,aAAa,EAAa,OAAQ,GAClC,EAA2B;IAAE,OAAO;IAAQ,SAAS,CAAC;GAAE,CAAC;GACzD;EACF;EAEA,AAAI,EAAa,YAAY,QAC3B,aAAa,EAAa,OAAO;EAGnC,IAAM,IAAiB,EAAM,YAAY;EACzC,IAAI,EAAM,UAAU,GAAqB;GACvC,EAA2B;IAAE,OAAO;IAAW,SAAS,CAAC;GAAE,CAAC;GAC5D,IAAM,IACJ,MAAa,WACT,EAAoB,QACjB,MACC,EAAK,KAAK,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"RteEditor.stories.js","names":[],"sources":["../../../src/components/RteEditor/RteEditor.stories.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\n\nimport type { PropsWithChildren } from 'react';\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { RteEditorProps } from './RteEditor';\nimport type { SearchResponse } from './Plugins/CourseCataloguePlugin/AddCatalogueLinkForm';\n\nimport { RteEditor } from './RteEditor';\nimport { MOCK_RTE_CONTENT } from './mockRteContent';\nimport { MOCK_SEARCH_COURSES, MOCK_SEARCH_PROGRAMMES } from './mockCatalogueSearchData';\n\nimport { Container } from 'storyComponents/Container';\n\nconst QUERY_SPEED = 1000; // ms\nconst CHARACTER_THRESHOLD = 3;\n\nconst codeString = `<RteEditor\n editorId=\"editor-id\"\n initialValue=\"\"\n currentLanguage=\"NL\"\n label=\"\"\n info=\"\"\n placeholder=\"\"\n notValidatedText=\"\"\n onChange={handleChange}\n onCatalogueLinkSearch={handleCatalogueLinkSearch}\n catalogueSearchResponse={{ state: 'idle', results: [] }}\n />`;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Organisms/RteEditor',\n component: RteEditor,\n parameters: {\n inspectComponent: RteEditor,\n codeString: codeString,\n },\n} as Meta<PropsWithChildren<RteEditorProps>>;\n\nconst Template: StoryFn<PropsWithChildren<RteEditorProps>> = (args) => {\n const [result, setResult] = useState<string>(args.initialValue || '');\n const [catalogueSearchResponse, setCatalogueSearchResponse] = useState<SearchResponse>({\n state: 'idle',\n results: [],\n });\n const networkTimer = useRef<NodeJS.Timeout | null>(null);\n\n const handleSearch = (query: string, linkType: 'course' | 'programme') => {\n if (query.length < CHARACTER_THRESHOLD) {\n clearTimeout(networkTimer.current!);\n setCatalogueSearchResponse({ state: 'idle', results: [] });\n return;\n }\n\n if (networkTimer.current !== null) {\n clearTimeout(networkTimer.current);\n }\n\n const lowerCaseQuery = query.toLowerCase();\n if (query.length >= CHARACTER_THRESHOLD) {\n setCatalogueSearchResponse({ state: 'pending', results: [] });\n const mockResults =\n linkType === 'course'\n ? MOCK_SEARCH_COURSES.filter(\n (item) =>\n item.name.NL.toLowerCase().includes(lowerCaseQuery) || item.code.toLowerCase().includes(lowerCaseQuery)\n )\n : MOCK_SEARCH_PROGRAMMES.filter(\n (item) =>\n item.name.NL.toLowerCase().includes(lowerCaseQuery) || item.code.toLowerCase().includes(lowerCaseQuery)\n );\n\n networkTimer.current = setTimeout(\n () =>\n setCatalogueSearchResponse({\n state: 'ready',\n results: mockResults,\n }),\n QUERY_SPEED\n );\n }\n };\n\n return (\n <>\n <Container size=\"large-full-height\">\n <RteEditor\n {...args}\n onChange={(evt) => setResult(evt)}\n onCatalogueLinkSearch={handleSearch}\n catalogueSearchResponse={catalogueSearchResponse}\n />\n </Container>\n <br />\n <br />\n\n <p style={{ margin: '0', marginTop: '2rem' }}>HTML Output:</p>\n <div\n style={{\n marginTop: '0rem',\n padding: '1rem',\n backgroundColor: '#F9F9F9',\n borderRadius: '0.25rem',\n color: '#666',\n }}\n >\n {result}\n </div>\n </>\n );\n};\n\nexport const RteEditorExample = Template.bind({});\n\nRteEditorExample.args = {\n editorId: 'test-editor',\n placeholder: 'Voeg hier tekst in...',\n currentLanguage: 'NL',\n label: 'Studiemateriaal',\n info: \"Studiemateriaal is essentieel voor succesvol leren. Het omvat boeken, artikelen, video's en oefeningen die studenten helpen hun kennis te vergroten, vaardigheden te ontwikkelen en hun studieprestaties te verbeteren.\",\n required: true,\n initialValue: MOCK_RTE_CONTENT,\n};\n\nexport const MultipleRteEditors = () => {\n const [result01, setResult01] = useState<string>(\n 'Students will:<br>• demonstrate digital literacy in an academic context<br>• learn to read and engage with texts from a range of disciplinary perspectives<br>• develop writing and argumentation skills appropriate to different disciplines<br>• learn to recognize and apply different research methodologies<br>• learn how to recognize and practice different genres and modes of academic discourse<br>• develop vocabulary appropriate to an academic environment<br>• improve analytic and critical thinking skills<br>• work independently and as part of a collaborative group<br>• learn to review and critique their own work and that of their peers <br>• improve listening comprehension and develop presentation skills<br>• participate in discussions, workshops and debates'\n );\n const [result02, setResult02] = useState<string>(\n `<p>Editor 2</p>\n <ul>\n <li>nesting</li>\n <li>\n <ol>\n <li>nested 1</li>\n <li>nested 2</li>\n </ol>\n </li>\n <li>nesting 2</li>\n <li>\n <ul>\n <li>deep nested 1</li>\n <li>deep nested 2</li>\n <li>\n <ol>\n <li>deeper nested 1</li>\n <li>\n <ul>\n <li>deepest nested 1</li>\n <li>deepest nested 2</li>\n </ul>\n </li>\n <li>deeper nested 2</li>\n <li>\n <ol>\n <li>deepest nested 1</li>\n <li>deepest nested 2</li>\n </ol>\n </li>\n </ol>\n </li>\n </ul>\n </li>\n <li>nesting end</li>\n </ul>`\n );\n\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n gap: '1rem',\n width: '100%',\n padding: '1rem',\n backgroundColor: '#FFF',\n }}\n >\n <div style={{ flex: '1' }}>\n <RteEditor\n initialValue={result01}\n editorId=\"editor-one\"\n label=\"Editor 1\"\n info=\"Uitleg over editor 1\"\n placeholder=\"Voeg hier tekst in...\"\n notValidatedText=\"\"\n onChange={(evt) => setResult01(evt)}\n />\n <br />\n <p style={{ margin: '0', marginTop: '2rem' }}>HTML Output:</p>\n <div\n style={{\n marginTop: '0rem',\n padding: '1rem',\n backgroundColor: '#F9F9F9',\n borderRadius: '0.25rem',\n color: '#666',\n }}\n >\n {result01}\n </div>\n </div>\n <div style={{ flex: '1' }}>\n <RteEditor\n initialValue={result02}\n editorId=\"editor-two\"\n label=\"Editor 2\"\n info=\"Uitleg over editor 2 wat langer om te kijken of dat ook goed gaat, want je weet maar nooit.\"\n placeholder=\"Voeg hier tekst in...\"\n notValidatedText=\"\"\n onChange={(evt) => setResult02(evt)}\n />\n <br />\n <p style={{ margin: '0', marginTop: '2rem' }}>HTML Output:</p>\n <div\n style={{\n marginTop: '0rem',\n padding: '1rem',\n backgroundColor: '#F9F9F9',\n borderRadius: '0.25rem',\n color: '#666',\n }}\n >\n {result02}\n </div>\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { c as i } from "../../LexicalLink.prod-
|
|
4
|
-
import {
|
|
1
|
+
import { mt as e, nr as t } from "../../Lexical.prod-Dy5aDppc.js";
|
|
2
|
+
import { a as n, t as r } from "../../LexicalList.prod-icY8mpm6.js";
|
|
3
|
+
import { c as i } from "../../LexicalLink.prod-DzgwWhQM.js";
|
|
4
|
+
import { c as a } from "../../LexicalTable.prod-Bf0is-op.js";
|
|
5
5
|
import { CourseCatalogueNode as o } from "./nodes/CourseCatalogueNode/CourseCatalogueNode.js";
|
|
6
6
|
//#region src/components/RteEditor/helpers.ts
|
|
7
7
|
var s = (e) => {
|
|
@@ -11,11 +11,11 @@ var s = (e) => {
|
|
|
11
11
|
let n = t.exportDOM(e);
|
|
12
12
|
if (n && n.element instanceof HTMLElement) for (let e of [n.element, ...n.element.querySelectorAll("[style],[class],[dir=\"ltr\"]")]) e.removeAttribute("class"), e.getAttribute("style") && (e.setAttribute("style", ""), e.removeAttribute("style")), e.getAttribute("dir") === "ltr" && e.removeAttribute("dir");
|
|
13
13
|
return n;
|
|
14
|
-
}, u = new Map([
|
|
15
|
-
[t, l],
|
|
14
|
+
}, u = /* @__PURE__ */ new Map([
|
|
16
15
|
[e, l],
|
|
17
|
-
[
|
|
16
|
+
[t, l],
|
|
18
17
|
[r, l],
|
|
18
|
+
[n, l],
|
|
19
19
|
[a, l],
|
|
20
20
|
[i, l],
|
|
21
21
|
[o, l]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":[],"sources":["../../../src/components/RteEditor/helpers.ts"],"sourcesContent":["import { LinkNode } from '@lexical/link';\nimport { ListNode, ListItemNode } from '@lexical/list';\nimport { ParagraphNode, TextNode } from 'lexical';\nimport { TableCellNode } from '@lexical/table';\n\nimport type { DOMExportOutput, Klass, LexicalEditor, LexicalNode } from 'lexical';\n\nimport { CourseCatalogueNode } from './nodes';\n\nexport const mergeBoldStrongTags = (html: string): string => {\n let mergedHtml = html.replace(/<b><strong>/gi, '<strong>');\n mergedHtml = mergedHtml.replace(/<\\/strong><\\/b>/gi, '</strong>');\n return mergedHtml;\n};\n\nexport const cleanUpTable = (html: string): string =>\n html.replace(/<div[^>]*>\\s*(<table[\\s\\S]*?<\\/table>)\\s*<\\/div>/gi, '$1');\n\nexport const removeStylesExportDOM = (editor: LexicalEditor, target: LexicalNode): DOMExportOutput => {\n const output = target.exportDOM(editor);\n if (output && output.element instanceof HTMLElement) {\n for (const el of [output.element, ...output.element.querySelectorAll('[style],[class],[dir=\"ltr\"]')]) {\n el.removeAttribute('class');\n if (el.getAttribute('style')) {\n el.setAttribute('style', '');\n el.removeAttribute('style');\n }\n if (el.getAttribute('dir') === 'ltr') {\n el.removeAttribute('dir');\n }\n }\n }\n return output;\n};\n\nexport const exportMap = new Map<Klass<LexicalNode>, (editor: LexicalEditor, target: LexicalNode) => DOMExportOutput>([\n [ParagraphNode, removeStylesExportDOM],\n [TextNode, removeStylesExportDOM],\n [ListNode, removeStylesExportDOM],\n [ListItemNode, removeStylesExportDOM],\n [TableCellNode, removeStylesExportDOM],\n [LinkNode, removeStylesExportDOM],\n [CourseCatalogueNode, removeStylesExportDOM],\n]);\n\nexport const setScrollableContainers = (fn: (event: Event) => void) => {\n const scrollableContainers = document.querySelectorAll('*');\n scrollableContainers.forEach((container) => {\n if (container.scrollHeight > container.clientHeight) {\n container.addEventListener('scroll', fn);\n }\n });\n};\n\nexport const removeScrollableContainers = (fn: (event: Event) => void) => {\n const scrollableContainers = document.querySelectorAll('*');\n scrollableContainers.forEach((container) => {\n if (container.scrollHeight > container.clientHeight) {\n container.removeEventListener('scroll', fn);\n }\n });\n};\n"],"mappings":";;;;;;AASA,IAAa,KAAuB,MAAyB;CAC3D,IAAI,IAAa,EAAK,QAAQ,iBAAiB,UAAU;CAEzD,OADA,IAAa,EAAW,QAAQ,qBAAqB,WAAW,GACzD;AACT,GAEa,KAAgB,MAC3B,EAAK,QAAQ,sDAAsD,IAAI,GAE5D,KAAyB,GAAuB,MAAyC;CACpG,IAAM,IAAS,EAAO,UAAU,CAAM;CACtC,IAAI,KAAU,EAAO,mBAAmB,aACtC,KAAK,IAAM,KAAM,CAAC,EAAO,SAAS,GAAG,EAAO,QAAQ,iBAAiB,+BAA6B,CAAC,GAMjG,AALA,EAAG,gBAAgB,OAAO,GACtB,EAAG,aAAa,OAAO,MACzB,EAAG,aAAa,SAAS,EAAE,GAC3B,EAAG,gBAAgB,OAAO,IAExB,EAAG,aAAa,KAAK,MAAM,SAC7B,EAAG,gBAAgB,KAAK;CAI9B,OAAO;AACT,GAEa,
|
|
1
|
+
{"version":3,"file":"helpers.js","names":[],"sources":["../../../src/components/RteEditor/helpers.ts"],"sourcesContent":["import { LinkNode } from '@lexical/link';\nimport { ListNode, ListItemNode } from '@lexical/list';\nimport { ParagraphNode, TextNode } from 'lexical';\nimport { TableCellNode } from '@lexical/table';\n\nimport type { DOMExportOutput, Klass, LexicalEditor, LexicalNode } from 'lexical';\n\nimport { CourseCatalogueNode } from './nodes';\n\nexport const mergeBoldStrongTags = (html: string): string => {\n let mergedHtml = html.replace(/<b><strong>/gi, '<strong>');\n mergedHtml = mergedHtml.replace(/<\\/strong><\\/b>/gi, '</strong>');\n return mergedHtml;\n};\n\nexport const cleanUpTable = (html: string): string =>\n html.replace(/<div[^>]*>\\s*(<table[\\s\\S]*?<\\/table>)\\s*<\\/div>/gi, '$1');\n\nexport const removeStylesExportDOM = (editor: LexicalEditor, target: LexicalNode): DOMExportOutput => {\n const output = target.exportDOM(editor);\n if (output && output.element instanceof HTMLElement) {\n for (const el of [output.element, ...output.element.querySelectorAll('[style],[class],[dir=\"ltr\"]')]) {\n el.removeAttribute('class');\n if (el.getAttribute('style')) {\n el.setAttribute('style', '');\n el.removeAttribute('style');\n }\n if (el.getAttribute('dir') === 'ltr') {\n el.removeAttribute('dir');\n }\n }\n }\n return output;\n};\n\nexport const exportMap = new Map<Klass<LexicalNode>, (editor: LexicalEditor, target: LexicalNode) => DOMExportOutput>([\n [ParagraphNode, removeStylesExportDOM],\n [TextNode, removeStylesExportDOM],\n [ListNode, removeStylesExportDOM],\n [ListItemNode, removeStylesExportDOM],\n [TableCellNode, removeStylesExportDOM],\n [LinkNode, removeStylesExportDOM],\n [CourseCatalogueNode, removeStylesExportDOM],\n]);\n\nexport const setScrollableContainers = (fn: (event: Event) => void) => {\n const scrollableContainers = document.querySelectorAll('*');\n scrollableContainers.forEach((container) => {\n if (container.scrollHeight > container.clientHeight) {\n container.addEventListener('scroll', fn);\n }\n });\n};\n\nexport const removeScrollableContainers = (fn: (event: Event) => void) => {\n const scrollableContainers = document.querySelectorAll('*');\n scrollableContainers.forEach((container) => {\n if (container.scrollHeight > container.clientHeight) {\n container.removeEventListener('scroll', fn);\n }\n });\n};\n"],"mappings":";;;;;;AASA,IAAa,KAAuB,MAAyB;CAC3D,IAAI,IAAa,EAAK,QAAQ,iBAAiB,UAAU;CAEzD,OADA,IAAa,EAAW,QAAQ,qBAAqB,WAAW,GACzD;AACT,GAEa,KAAgB,MAC3B,EAAK,QAAQ,sDAAsD,IAAI,GAE5D,KAAyB,GAAuB,MAAyC;CACpG,IAAM,IAAS,EAAO,UAAU,CAAM;CACtC,IAAI,KAAU,EAAO,mBAAmB,aACtC,KAAK,IAAM,KAAM,CAAC,EAAO,SAAS,GAAG,EAAO,QAAQ,iBAAiB,+BAA6B,CAAC,GAMjG,AALA,EAAG,gBAAgB,OAAO,GACtB,EAAG,aAAa,OAAO,MACzB,EAAG,aAAa,SAAS,EAAE,GAC3B,EAAG,gBAAgB,OAAO,IAExB,EAAG,aAAa,KAAK,MAAM,SAC7B,EAAG,gBAAgB,KAAK;CAI9B,OAAO;AACT,GAEa,oBAAY,IAAI,IAAyF;CACpH,CAAC,GAAe,CAAqB;CACrC,CAAC,GAAU,CAAqB;CAChC,CAAC,GAAU,CAAqB;CAChC,CAAC,GAAc,CAAqB;CACpC,CAAC,GAAe,CAAqB;CACrC,CAAC,GAAU,CAAqB;CAChC,CAAC,GAAqB,CAAqB;AAC7C,CAAC,GAEY,KAA2B,MAA+B;CAErE,SADsC,iBAAiB,GACvD,CAAA,CAAqB,SAAS,MAAc;EAC1C,AAAI,EAAU,eAAe,EAAU,gBACrC,EAAU,iBAAiB,UAAU,CAAE;CAE3C,CAAC;AACH,GAEa,KAA8B,MAA+B;CAExE,SADsC,iBAAiB,GACvD,CAAA,CAAqB,SAAS,MAAc;EAC1C,AAAI,EAAU,eAAe,EAAU,gBACrC,EAAU,oBAAoB,UAAU,CAAE;CAE9C,CAAC;AACH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "../../components-
|
|
1
|
+
import { n as e, t } from "../../components-CgBF6db6.js";
|
|
2
2
|
export { t as Rte, e as RteEditor };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as e } from "../../../../LexicalComposerContext.prod-
|
|
2
|
-
import {
|
|
3
|
-
import { l as c } from "../../../../LexicalUtils.prod-
|
|
1
|
+
import { t as e } from "../../../../LexicalComposerContext.prod-D4HOlWII.js";
|
|
2
|
+
import { K as t, L as n, ar as r, gn as i, lt as a, wn as o, x as s } from "../../../../Lexical.prod-Dy5aDppc.js";
|
|
3
|
+
import { l as c } from "../../../../LexicalUtils.prod-CjGUKarD.js";
|
|
4
4
|
import { useEffect as l } from "react";
|
|
5
5
|
//#region src/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.tsx
|
|
6
6
|
var u = class e extends a {
|
|
@@ -72,29 +72,29 @@ function f(e) {
|
|
|
72
72
|
function p(e) {
|
|
73
73
|
return f(e) ? e.__linkType : null;
|
|
74
74
|
}
|
|
75
|
-
var m =
|
|
75
|
+
var m = s("insertCourseCatalogueLink"), h = s("removeCourseCatalogueLink");
|
|
76
76
|
function g() {
|
|
77
|
-
let [
|
|
78
|
-
if (!
|
|
77
|
+
let [a] = e();
|
|
78
|
+
if (!a.hasNodes([u])) throw Error("CourseCataloguePlugin: CourseCatalogueNode is not registered on editor");
|
|
79
79
|
return l(() => {
|
|
80
|
-
let e =
|
|
81
|
-
let
|
|
82
|
-
return
|
|
83
|
-
}, 2),
|
|
84
|
-
let e =
|
|
85
|
-
if (
|
|
86
|
-
let
|
|
87
|
-
if (
|
|
88
|
-
let e =
|
|
89
|
-
|
|
80
|
+
let e = a.registerCommand(m, (e) => {
|
|
81
|
+
let t = d(e.linkType, e.code, e.label), i = r(e.label);
|
|
82
|
+
return t.append(i), n([t]), !0;
|
|
83
|
+
}, 2), s = a.registerCommand(h, () => {
|
|
84
|
+
let e = t();
|
|
85
|
+
if (i(e)) {
|
|
86
|
+
let t = e.anchor.getNode(), n = e.anchor.offset, i = c(t, u);
|
|
87
|
+
if (o(t) && n === t.getTextContentSize() && t.getNextSibling() instanceof u && (i = t.getNextSibling()), i) {
|
|
88
|
+
let e = i.getParent();
|
|
89
|
+
i.remove(), e && e.append(r(" "));
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
return !0;
|
|
93
93
|
}, 2);
|
|
94
94
|
return () => {
|
|
95
|
-
e(),
|
|
95
|
+
e(), s();
|
|
96
96
|
};
|
|
97
|
-
}, [
|
|
97
|
+
}, [a]), null;
|
|
98
98
|
}
|
|
99
99
|
//#endregion
|
|
100
100
|
export { d as $createCourseCatalogueNode, p as $getLinkTypeFromNode, f as $isCourseCatalogueNode, g as CourseCatalogueLinkPlugin, u as CourseCatalogueNode, m as INSERT_COURSE_CATALOGUE_LINK, h as REMOVE_COURSE_CATALOGUE_LINK };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CourseCatalogueNode.js","names":[],"sources":["../../../../../src/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.tsx"],"sourcesContent":["import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\r\nimport {\r\n COMMAND_PRIORITY_NORMAL,\r\n createCommand,\r\n ElementNode,\r\n $insertNodes,\r\n $createTextNode,\r\n $isRangeSelection,\r\n $getSelection,\r\n $isTextNode,\r\n} from 'lexical';\r\nimport { useEffect } from 'react';\r\nimport { $getNearestNodeOfType } from '@lexical/utils';\r\n\r\nimport type { DOMConversionMap, EditorConfig, LexicalNode, NodeKey, SerializedElementNode, Spread } from 'lexical';\r\n\r\nexport type SerializedCourseCatalogueNode = Spread<\r\n {\r\n linkType: 'course' | 'programme';\r\n code: string;\r\n label: string;\r\n },\r\n SerializedElementNode\r\n>;\r\n\r\nexport class CourseCatalogueNode extends ElementNode {\r\n __linkType: 'course' | 'programme';\r\n __code: string;\r\n __label: string;\r\n\r\n constructor(linkType: 'course' | 'programme', code: string, label: string, key?: NodeKey) {\r\n super(key);\r\n this.__linkType = linkType;\r\n this.__code = code;\r\n this.__label = label;\r\n }\r\n\r\n isInline(): boolean {\r\n return true;\r\n }\r\n\r\n canBeEmpty(): boolean {\r\n return false;\r\n }\r\n\r\n canInsertTextBefore(): boolean {\r\n return false;\r\n }\r\n\r\n canInsertTextAfter(): boolean {\r\n return true;\r\n }\r\n\r\n static clone(node: CourseCatalogueNode): CourseCatalogueNode {\r\n return new CourseCatalogueNode(node.__linkType, node.__code, node.__label, node.__key);\r\n }\r\n\r\n static getType(): string {\r\n return 'courseCatalogueLink';\r\n }\r\n\r\n createDOM(config: EditorConfig): HTMLElement {\r\n const element = document.createElement('a');\r\n element.className = config.theme.courseCatalogueLink;\r\n // eslint-disable-next-line no-script-url\r\n element.href = 'javascript:void(0);';\r\n element.setAttribute('data-linktype', this.__linkType);\r\n element.setAttribute('data-code', this.__code);\r\n return element;\r\n }\r\n\r\n updateDOM(): false {\r\n return false;\r\n }\r\n\r\n static importDOM(): DOMConversionMap<HTMLAnchorElement> | null {\r\n return {\r\n // eslint-disable-next-line id-length\r\n a: (domNode: HTMLAnchorElement) => {\r\n const linkTypeAttr = domNode.getAttribute('data-linktype');\r\n if (linkTypeAttr !== 'course' && linkTypeAttr !== 'programme') {\r\n return null;\r\n }\r\n const linkType = linkTypeAttr;\r\n const code = domNode.getAttribute('data-code');\r\n if (!code) {\r\n return null;\r\n }\r\n const label = domNode.textContent || '';\r\n if (!label) {\r\n return null;\r\n }\r\n return {\r\n conversion: () => {\r\n const node = $createCourseCatalogueNode(linkType, code, label);\r\n return { node };\r\n },\r\n priority: 2,\r\n };\r\n },\r\n };\r\n }\r\n\r\n static importJSON(serializedNode: SerializedCourseCatalogueNode): CourseCatalogueNode {\r\n const catalogueNode = $createCourseCatalogueNode(\r\n serializedNode.linkType,\r\n serializedNode.code,\r\n serializedNode.label\r\n );\r\n catalogueNode.setFormat(serializedNode.format);\r\n return catalogueNode;\r\n }\r\n\r\n exportJSON(): SerializedCourseCatalogueNode {\r\n return {\r\n ...super.exportJSON(),\r\n type: 'courseCatalogueLink',\r\n version: 1,\r\n linkType: this.__linkType,\r\n code: this.__code,\r\n label: this.__label,\r\n };\r\n }\r\n}\r\n\r\nexport function $createCourseCatalogueNode(\r\n linkType: 'course' | 'programme',\r\n code: string,\r\n label: string = ''\r\n): CourseCatalogueNode {\r\n return new CourseCatalogueNode(linkType, code, label);\r\n}\r\n\r\nexport function $isCourseCatalogueNode(node: LexicalNode): node is CourseCatalogueNode {\r\n return node instanceof CourseCatalogueNode;\r\n}\r\n\r\nexport function $getLinkTypeFromNode(node: LexicalNode): 'course' | 'programme' | null {\r\n if ($isCourseCatalogueNode(node)) {\r\n return node.__linkType;\r\n }\r\n return null;\r\n}\r\n\r\nexport const INSERT_COURSE_CATALOGUE_LINK = createCommand('insertCourseCatalogueLink');\r\n\r\nexport const REMOVE_COURSE_CATALOGUE_LINK = createCommand('removeCourseCatalogueLink');\r\n\r\nexport function CourseCatalogueLinkPlugin(): null {\r\n const [editor] = useLexicalComposerContext();\r\n if (!editor.hasNodes([CourseCatalogueNode])) {\r\n throw new Error('CourseCataloguePlugin: CourseCatalogueNode is not registered on editor');\r\n }\r\n useEffect(() => {\r\n const insertCourseCatalogueLink = editor.registerCommand(\r\n INSERT_COURSE_CATALOGUE_LINK,\r\n (payload: { linkType: 'course' | 'programme'; code: string; label: string }) => {\r\n const courseCatalogueNode = $createCourseCatalogueNode(payload.linkType, payload.code, payload.label);\r\n const textNode = $createTextNode(payload.label);\r\n courseCatalogueNode.append(textNode);\r\n $insertNodes([courseCatalogueNode]);\r\n return true;\r\n },\r\n COMMAND_PRIORITY_NORMAL\r\n );\r\n const removeCourseCatalogueLink = editor.registerCommand(\r\n REMOVE_COURSE_CATALOGUE_LINK,\r\n () => {\r\n const selection = $getSelection();\r\n if ($isRangeSelection(selection)) {\r\n const node = selection.anchor.getNode();\r\n const offset = selection.anchor.offset;\r\n let courseCatalogueNode = $getNearestNodeOfType(node, CourseCatalogueNode);\r\n\r\n if (\r\n $isTextNode(node) &&\r\n offset === node.getTextContentSize() &&\r\n node.getNextSibling() instanceof CourseCatalogueNode\r\n ) {\r\n courseCatalogueNode = node.getNextSibling();\r\n }\r\n\r\n if (courseCatalogueNode) {\r\n const parent = courseCatalogueNode.getParent();\r\n courseCatalogueNode.remove();\r\n if (parent) {\r\n parent.append($createTextNode(' '));\r\n }\r\n }\r\n }\r\n return true;\r\n },\r\n COMMAND_PRIORITY_NORMAL\r\n );\r\n\r\n return () => {\r\n insertCourseCatalogueLink();\r\n removeCourseCatalogueLink();\r\n };\r\n }, [editor]);\r\n\r\n return null;\r\n}\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CourseCatalogueNode.js","names":[],"sources":["../../../../../src/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.tsx"],"sourcesContent":["import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\r\nimport {\r\n COMMAND_PRIORITY_NORMAL,\r\n createCommand,\r\n ElementNode,\r\n $insertNodes,\r\n $createTextNode,\r\n $isRangeSelection,\r\n $getSelection,\r\n $isTextNode,\r\n} from 'lexical';\r\nimport { useEffect } from 'react';\r\nimport { $getNearestNodeOfType } from '@lexical/utils';\r\n\r\nimport type { DOMConversionMap, EditorConfig, LexicalNode, NodeKey, SerializedElementNode, Spread } from 'lexical';\r\n\r\nexport type SerializedCourseCatalogueNode = Spread<\r\n {\r\n linkType: 'course' | 'programme';\r\n code: string;\r\n label: string;\r\n },\r\n SerializedElementNode\r\n>;\r\n\r\nexport class CourseCatalogueNode extends ElementNode {\r\n __linkType: 'course' | 'programme';\r\n __code: string;\r\n __label: string;\r\n\r\n constructor(linkType: 'course' | 'programme', code: string, label: string, key?: NodeKey) {\r\n super(key);\r\n this.__linkType = linkType;\r\n this.__code = code;\r\n this.__label = label;\r\n }\r\n\r\n isInline(): boolean {\r\n return true;\r\n }\r\n\r\n canBeEmpty(): boolean {\r\n return false;\r\n }\r\n\r\n canInsertTextBefore(): boolean {\r\n return false;\r\n }\r\n\r\n canInsertTextAfter(): boolean {\r\n return true;\r\n }\r\n\r\n static clone(node: CourseCatalogueNode): CourseCatalogueNode {\r\n return new CourseCatalogueNode(node.__linkType, node.__code, node.__label, node.__key);\r\n }\r\n\r\n static getType(): string {\r\n return 'courseCatalogueLink';\r\n }\r\n\r\n createDOM(config: EditorConfig): HTMLElement {\r\n const element = document.createElement('a');\r\n element.className = config.theme.courseCatalogueLink;\r\n // eslint-disable-next-line no-script-url\r\n element.href = 'javascript:void(0);';\r\n element.setAttribute('data-linktype', this.__linkType);\r\n element.setAttribute('data-code', this.__code);\r\n return element;\r\n }\r\n\r\n updateDOM(): false {\r\n return false;\r\n }\r\n\r\n static importDOM(): DOMConversionMap<HTMLAnchorElement> | null {\r\n return {\r\n // eslint-disable-next-line id-length\r\n a: (domNode: HTMLAnchorElement) => {\r\n const linkTypeAttr = domNode.getAttribute('data-linktype');\r\n if (linkTypeAttr !== 'course' && linkTypeAttr !== 'programme') {\r\n return null;\r\n }\r\n const linkType = linkTypeAttr;\r\n const code = domNode.getAttribute('data-code');\r\n if (!code) {\r\n return null;\r\n }\r\n const label = domNode.textContent || '';\r\n if (!label) {\r\n return null;\r\n }\r\n return {\r\n conversion: () => {\r\n const node = $createCourseCatalogueNode(linkType, code, label);\r\n return { node };\r\n },\r\n priority: 2,\r\n };\r\n },\r\n };\r\n }\r\n\r\n static importJSON(serializedNode: SerializedCourseCatalogueNode): CourseCatalogueNode {\r\n const catalogueNode = $createCourseCatalogueNode(\r\n serializedNode.linkType,\r\n serializedNode.code,\r\n serializedNode.label\r\n );\r\n catalogueNode.setFormat(serializedNode.format);\r\n return catalogueNode;\r\n }\r\n\r\n exportJSON(): SerializedCourseCatalogueNode {\r\n return {\r\n ...super.exportJSON(),\r\n type: 'courseCatalogueLink',\r\n version: 1,\r\n linkType: this.__linkType,\r\n code: this.__code,\r\n label: this.__label,\r\n };\r\n }\r\n}\r\n\r\nexport function $createCourseCatalogueNode(\r\n linkType: 'course' | 'programme',\r\n code: string,\r\n label: string = ''\r\n): CourseCatalogueNode {\r\n return new CourseCatalogueNode(linkType, code, label);\r\n}\r\n\r\nexport function $isCourseCatalogueNode(node: LexicalNode): node is CourseCatalogueNode {\r\n return node instanceof CourseCatalogueNode;\r\n}\r\n\r\nexport function $getLinkTypeFromNode(node: LexicalNode): 'course' | 'programme' | null {\r\n if ($isCourseCatalogueNode(node)) {\r\n return node.__linkType;\r\n }\r\n return null;\r\n}\r\n\r\nexport const INSERT_COURSE_CATALOGUE_LINK = createCommand('insertCourseCatalogueLink');\r\n\r\nexport const REMOVE_COURSE_CATALOGUE_LINK = createCommand('removeCourseCatalogueLink');\r\n\r\nexport function CourseCatalogueLinkPlugin(): null {\r\n const [editor] = useLexicalComposerContext();\r\n if (!editor.hasNodes([CourseCatalogueNode])) {\r\n throw new Error('CourseCataloguePlugin: CourseCatalogueNode is not registered on editor');\r\n }\r\n useEffect(() => {\r\n const insertCourseCatalogueLink = editor.registerCommand(\r\n INSERT_COURSE_CATALOGUE_LINK,\r\n (payload: { linkType: 'course' | 'programme'; code: string; label: string }) => {\r\n const courseCatalogueNode = $createCourseCatalogueNode(payload.linkType, payload.code, payload.label);\r\n const textNode = $createTextNode(payload.label);\r\n courseCatalogueNode.append(textNode);\r\n $insertNodes([courseCatalogueNode]);\r\n return true;\r\n },\r\n COMMAND_PRIORITY_NORMAL\r\n );\r\n const removeCourseCatalogueLink = editor.registerCommand(\r\n REMOVE_COURSE_CATALOGUE_LINK,\r\n () => {\r\n const selection = $getSelection();\r\n if ($isRangeSelection(selection)) {\r\n const node = selection.anchor.getNode();\r\n const offset = selection.anchor.offset;\r\n let courseCatalogueNode = $getNearestNodeOfType(node, CourseCatalogueNode);\r\n\r\n if (\r\n $isTextNode(node) &&\r\n offset === node.getTextContentSize() &&\r\n node.getNextSibling() instanceof CourseCatalogueNode\r\n ) {\r\n courseCatalogueNode = node.getNextSibling() as CourseCatalogueNode;\r\n }\r\n\r\n if (courseCatalogueNode) {\r\n const parent = courseCatalogueNode.getParent();\r\n courseCatalogueNode.remove();\r\n if (parent) {\r\n parent.append($createTextNode(' '));\r\n }\r\n }\r\n }\r\n return true;\r\n },\r\n COMMAND_PRIORITY_NORMAL\r\n );\r\n\r\n return () => {\r\n insertCourseCatalogueLink();\r\n removeCourseCatalogueLink();\r\n };\r\n }, [editor]);\r\n\r\n return null;\r\n}\r\n"],"mappings":";;;;;AAyBA,IAAa,IAAb,MAAa,UAA4B,EAAY;CACnD;CACA;CACA;CAEA,YAAY,GAAkC,GAAc,GAAe,GAAe;EAIxF,AAHA,MAAM,CAAG,GACT,KAAK,aAAa,GAClB,KAAK,SAAS,GACd,KAAK,UAAU;CACjB;CAEA,WAAoB;EAClB,OAAO;CACT;CAEA,aAAsB;EACpB,OAAO;CACT;CAEA,sBAA+B;EAC7B,OAAO;CACT;CAEA,qBAA8B;EAC5B,OAAO;CACT;CAEA,OAAO,MAAM,GAAgD;EAC3D,OAAO,IAAI,EAAoB,EAAK,YAAY,EAAK,QAAQ,EAAK,SAAS,EAAK,KAAK;CACvF;CAEA,OAAO,UAAkB;EACvB,OAAO;CACT;CAEA,UAAU,GAAmC;EAC3C,IAAM,IAAU,SAAS,cAAc,GAAG;EAM1C,OALA,EAAQ,YAAY,EAAO,MAAM,qBAEjC,EAAQ,OAAO,uBACf,EAAQ,aAAa,iBAAiB,KAAK,UAAU,GACrD,EAAQ,aAAa,aAAa,KAAK,MAAM,GACtC;CACT;CAEA,YAAmB;EACjB,OAAO;CACT;CAEA,OAAO,YAAwD;EAC7D,OAAO,EAEL,IAAI,MAA+B;GACjC,IAAM,IAAe,EAAQ,aAAa,eAAe;GACzD,IAAI,MAAiB,YAAY,MAAiB,aAChD,OAAO;GAET,IAAM,IAAW,GACX,IAAO,EAAQ,aAAa,WAAW;GAC7C,IAAI,CAAC,GACH,OAAO;GAET,IAAM,IAAQ,EAAQ,eAAe;GAIrC,OAHK,IAGE;IACL,mBAES,EAAE,MADI,EAA2B,GAAU,GAAM,CAC/C,EAAK;IAEhB,UAAU;GACZ,IARS;EASX,EACF;CACF;CAEA,OAAO,WAAW,GAAoE;EACpF,IAAM,IAAgB,EACpB,EAAe,UACf,EAAe,MACf,EAAe,KACjB;EAEA,OADA,EAAc,UAAU,EAAe,MAAM,GACtC;CACT;CAEA,aAA4C;EAC1C,OAAO;GACL,GAAG,MAAM,WAAW;GACpB,MAAM;GACN,SAAS;GACT,UAAU,KAAK;GACf,MAAM,KAAK;GACX,OAAO,KAAK;EACd;CACF;AACF;AAEA,SAAgB,EACd,GACA,GACA,IAAgB,IACK;CACrB,OAAO,IAAI,EAAoB,GAAU,GAAM,CAAK;AACtD;AAEA,SAAgB,EAAuB,GAAgD;CACrF,OAAO,aAAgB;AACzB;AAEA,SAAgB,EAAqB,GAAkD;CAIrF,OAHI,EAAuB,CAAI,IACtB,EAAK,aAEP;AACT;AAEA,IAAa,IAA+B,EAAc,2BAA2B,GAExE,IAA+B,EAAc,2BAA2B;AAErF,SAAgB,IAAkC;CAChD,IAAM,CAAC,KAAU,EAA0B;CAC3C,IAAI,CAAC,EAAO,SAAS,CAAC,CAAmB,CAAC,GACxC,MAAU,MAAM,wEAAwE;CAkD1F,OAhDA,QAAgB;EACd,IAAM,IAA4B,EAAO,gBACvC,IACC,MAA+E;GAC9E,IAAM,IAAsB,EAA2B,EAAQ,UAAU,EAAQ,MAAM,EAAQ,KAAK,GAC9F,IAAW,EAAgB,EAAQ,KAAK;GAG9C,OAFA,EAAoB,OAAO,CAAQ,GACnC,EAAa,CAAC,CAAmB,CAAC,GAC3B;EACT,GAAA,CAEF,GACM,IAA4B,EAAO,gBACvC,SACM;GACJ,IAAM,IAAY,EAAc;GAChC,IAAI,EAAkB,CAAS,GAAG;IAChC,IAAM,IAAO,EAAU,OAAO,QAAQ,GAChC,IAAS,EAAU,OAAO,QAC5B,IAAsB,EAAsB,GAAM,CAAmB;IAUzE,IAPE,EAAY,CAAI,KAChB,MAAW,EAAK,mBAAmB,KACnC,EAAK,eAAe,aAAa,MAEjC,IAAsB,EAAK,eAAe,IAGxC,GAAqB;KACvB,IAAM,IAAS,EAAoB,UAAU;KAE7C,AADA,EAAoB,OAAO,GACvB,KACF,EAAO,OAAO,EAAgB,GAAG,CAAC;IAEtC;GACF;GACA,OAAO;EACT,GAAA,CAEF;EAEA,aAAa;GAEX,AADA,EAA0B,GAC1B,EAA0B;EAC5B;CACF,GAAG,CAAC,CAAM,CAAC,GAEJ;AACT"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { t as e } from "../../../../LexicalComposerContext.prod-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { t as e } from "../../../../LexicalComposerContext.prod-D4HOlWII.js";
|
|
2
|
+
import { K as t, g as n, gn as r, gr as i, lt as a, x as o } from "../../../../Lexical.prod-Dy5aDppc.js";
|
|
3
|
+
import { f as s, l as c } from "../../../../LexicalUtils.prod-CjGUKarD.js";
|
|
4
4
|
import { useEffect as l } from "react";
|
|
5
5
|
//#region src/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.tsx
|
|
6
|
-
var u = class e extends
|
|
6
|
+
var u = class e extends a {
|
|
7
7
|
static getType() {
|
|
8
8
|
return "tableWrapper";
|
|
9
9
|
}
|
|
@@ -18,8 +18,8 @@ var u = class e extends i {
|
|
|
18
18
|
return !1;
|
|
19
19
|
}
|
|
20
20
|
insertNewAfter(e, t) {
|
|
21
|
-
let
|
|
22
|
-
return
|
|
21
|
+
let n = i(), r = this.getDirection();
|
|
22
|
+
return n.setDirection(r), this.insertAfter(n, t), n;
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
25
|
function d() {
|
|
@@ -28,32 +28,32 @@ function d() {
|
|
|
28
28
|
function f(e) {
|
|
29
29
|
return e instanceof u;
|
|
30
30
|
}
|
|
31
|
-
var p =
|
|
31
|
+
var p = o("insertTableWrapperNode"), m = o("removeTableWrapperNode");
|
|
32
32
|
function h() {
|
|
33
|
-
let [
|
|
34
|
-
if (!
|
|
33
|
+
let [a] = e();
|
|
34
|
+
if (!a.hasNodes([u])) throw Error("TableWrapperPlugin: TableWrapperNode is not registered on editor");
|
|
35
35
|
return l(() => {
|
|
36
|
-
let e =
|
|
37
|
-
let e =
|
|
38
|
-
return
|
|
39
|
-
}, 2),
|
|
40
|
-
let e =
|
|
41
|
-
if (
|
|
36
|
+
let e = a.registerCommand(p, () => {
|
|
37
|
+
let e = t();
|
|
38
|
+
return r(e) && s(e, d), !0;
|
|
39
|
+
}, 2), o = a.registerCommand(m, () => {
|
|
40
|
+
let e = t();
|
|
41
|
+
if (r(e)) {
|
|
42
42
|
let t = e.anchor.getNode();
|
|
43
|
-
if (!
|
|
43
|
+
if (!n(t)) return !1;
|
|
44
44
|
let r = c(t, u);
|
|
45
45
|
if (!r) return !1;
|
|
46
|
-
let
|
|
47
|
-
if (!
|
|
48
|
-
let
|
|
49
|
-
|
|
46
|
+
let a = r?.getChildren();
|
|
47
|
+
if (!a) return !1;
|
|
48
|
+
let o = i();
|
|
49
|
+
a.forEach((e) => o.append(e)), r.replace(o);
|
|
50
50
|
}
|
|
51
51
|
return !0;
|
|
52
52
|
}, 2);
|
|
53
53
|
return () => {
|
|
54
|
-
e(),
|
|
54
|
+
e(), o();
|
|
55
55
|
};
|
|
56
|
-
}, [
|
|
56
|
+
}, [a]), null;
|
|
57
57
|
}
|
|
58
58
|
//#endregion
|
|
59
59
|
export { d as $createTableWrapperNode, f as $isTableWrapperNode, p as INSERT_TABLE_WRAPPER, m as REMOVE_TABLE_WRAPPER, u as TableWrapperNode, h as TableWrapperPlugin };
|