@sps-woodland/core 8.56.2 → 8.56.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/lib/action-bar/action-bar/ActionBar.js +44 -59
- package/lib/action-bar/action-bar/ActionBar.ve.js +4 -11
- package/lib/action-bar/action-bar-additional-content/ActionBarAdditionalContent.js +14 -22
- package/lib/action-bar/index.js +54 -74
- package/lib/action-bar/index.umd.cjs +1 -1
- package/lib/action-bar/style.css +2 -1
- package/lib/add-to-list/add-to-list/AddToList.js +220 -302
- package/lib/add-to-list/add-to-list/AddToList.ve.js +79 -24
- package/lib/add-to-list/add-to-list/ItemsList.js +42 -67
- package/lib/add-to-list/add-to-list/ListItem.js +24 -50
- package/lib/add-to-list/index.js +393 -453
- package/lib/add-to-list/index.umd.cjs +1 -1
- package/lib/add-to-list/style.css +2 -1
- package/lib/buttons/button/Button.js +95 -121
- package/lib/buttons/button/Button.ve.js +150 -9
- package/lib/buttons/index.js +281 -171
- package/lib/buttons/index.umd.cjs +1 -1
- package/lib/buttons/style.css +2 -1
- package/lib/cards/card/Card.js +19 -27
- package/lib/cards/card/Card.ve.js +4 -4
- package/lib/cards/card-footer/CardFooter.js +12 -13
- package/lib/cards/card-footer/CardFooter.ve.js +4 -4
- package/lib/cards/card-header/CardHeader.js +12 -13
- package/lib/cards/card-header/CardHeader.ve.js +4 -4
- package/lib/cards/card-title/CardTitle.js +11 -12
- package/lib/cards/card-title/CardTitle.ve.js +4 -4
- package/lib/cards/index.js +52 -52
- package/lib/cards/index.umd.cjs +1 -1
- package/lib/cards/style.css +2 -1
- package/lib/column-manager/column-manager/ColumnManager.js +95 -112
- package/lib/column-manager/column-manager/useColumnManager.js +59 -48
- package/lib/column-manager/index.js +2 -5
- package/lib/components/icon/Icon.ve.js +15 -5
- package/lib/components/icon/icons/sprite.svg.js +4 -4
- package/lib/content-row/content-row/ContentRow.js +146 -173
- package/lib/content-row/content-row/ContentRow.ve.js +105 -18
- package/lib/content-row/content-row-col/ContentRowCol.js +37 -48
- package/lib/content-row/content-row-col/ContentRowCol.ve.js +49 -6
- package/lib/content-row/content-row-expansion/ContentRowExpansion.js +16 -24
- package/lib/content-row/index.js +407 -318
- package/lib/content-row/index.umd.cjs +1 -1
- package/lib/content-row/row-list-auto-layout/RowListAutoLayout.js +24 -39
- package/lib/content-row/row-list-auto-layout/RowListAutoLayout.ve.js +13 -5
- package/lib/content-row/style.css +2 -1
- package/lib/content-tiles/content-tile/ContentTile.js +71 -60
- package/lib/content-tiles/content-tile/ContentTile.ve.js +36 -14
- package/lib/content-tiles/content-tile-list/ContentTileList.js +12 -13
- package/lib/content-tiles/content-tile-list/ContentTileList.ve.js +4 -5
- package/lib/content-tiles/index.js +156 -118
- package/lib/content-tiles/index.umd.cjs +1 -1
- package/lib/content-tiles/style.css +2 -1
- package/lib/core.css +2 -1
- package/lib/dropdowns/dropdown/Dropdown.js +56 -68
- package/lib/dropdowns/dropdown/Dropdown.ve.js +37 -8
- package/lib/dropdowns/index.js +171 -171
- package/lib/dropdowns/index.umd.cjs +1 -1
- package/lib/dropdowns/option-list/Option.js +14 -18
- package/lib/dropdowns/option-list/Option.ve.js +4 -5
- package/lib/dropdowns/option-list/OptionList.js +28 -44
- package/lib/dropdowns/option-list/OptionList.ve.js +4 -5
- package/lib/dropdowns/style.css +2 -1
- package/lib/editable-table/EditableTable.js +68 -85
- package/lib/editable-table/index.js +1 -4
- package/lib/feedback-block/FeedbackBlock.js +40 -35
- package/lib/feedback-block/FeedbackBlock.ve.js +56 -7
- package/lib/feedback-block/index.js +132 -85
- package/lib/feedback-block/index.umd.cjs +1 -1
- package/lib/feedback-block/style.css +2 -1
- package/lib/file-upload/file-upload/FileUpload.js +164 -202
- package/lib/file-upload/file-upload/FileUpload.ve.js +84 -18
- package/lib/file-upload/file-upload/mime-type.enum.js +106 -106
- package/lib/file-upload/index.js +390 -353
- package/lib/file-upload/index.umd.cjs +1 -1
- package/lib/file-upload/style.css +2 -1
- package/lib/filter-tiles/filter-tile/FilterTile.js +41 -46
- package/lib/filter-tiles/filter-tile/FilterTile.ve.js +51 -9
- package/lib/filter-tiles/filter-tile-set/FilterTileSet.js +12 -15
- package/lib/filter-tiles/filter-tile-set/FilterTileSet.ve.js +4 -4
- package/lib/filter-tiles/index.js +142 -107
- package/lib/filter-tiles/index.umd.cjs +1 -1
- package/lib/filter-tiles/style.css +2 -1
- package/lib/focused-task/focused-task/FocusedTask.js +52 -74
- package/lib/focused-task/focused-task/FocusedTask.ve.js +13 -12
- package/lib/focused-task/focused-task/useFocusedTask.js +20 -18
- package/lib/focused-task/focused-task-actions/FocusedTaskActions.js +12 -13
- package/lib/focused-task/index.js +127 -144
- package/lib/focused-task/index.umd.cjs +1 -1
- package/lib/focused-task/style.css +2 -1
- package/lib/growler/Growler.js +78 -90
- package/lib/growler/Growler.ve.js +23 -12
- package/lib/growler/GrowlerListProvider.js +38 -39
- package/lib/growler/Sonner.ve.js +17 -12
- package/lib/growler/index.js +249 -274
- package/lib/growler/index.umd.cjs +1 -1
- package/lib/growler/sonner.js +73 -102
- package/lib/growler/style.css +2 -1
- package/lib/index.js +520 -501
- package/lib/index.umd.cjs +4 -4
- package/lib/insight-card/InsightCard.js +90 -84
- package/lib/insight-card/InsightCard.ve.js +148 -15
- package/lib/insight-card/InsightCardSet.js +12 -12
- package/lib/insight-card/index.js +269 -141
- package/lib/insight-card/index.umd.cjs +1 -1
- package/lib/insight-card/style.css +2 -1
- package/lib/key-value-set/index.js +97 -87
- package/lib/key-value-set/index.umd.cjs +1 -1
- package/lib/key-value-set/key-value-set/KeyValueSet.js +17 -21
- package/lib/key-value-set/key-value-set/KeyValueSet.ve.js +10 -5
- package/lib/key-value-set/key-value-set-item/KeyValueSetItem.js +25 -21
- package/lib/key-value-set/key-value-set-item/KeyValueSetItem.ve.js +13 -6
- package/lib/key-value-set/style.css +2 -1
- package/lib/list-bar/advanced-search/AdvancedSearch.js +51 -54
- package/lib/list-bar/advanced-search/AdvancedSearch.ve.js +30 -8
- package/lib/list-bar/index.js +305 -301
- package/lib/list-bar/index.umd.cjs +1 -1
- package/lib/list-bar/list-bar/InputGroupWrapper.js +10 -19
- package/lib/list-bar/list-bar/ListBar.js +105 -121
- package/lib/list-bar/list-bar/ListBar.ve.js +13 -17
- package/lib/list-bar/list-bar/ListBarSearch.js +20 -21
- package/lib/list-bar/list-bar/ListBarSearchInfo.js +8 -12
- package/lib/list-bar/list-bar/ListBarSortBy.js +28 -38
- package/lib/list-bar/search-results-bar/SearchResultsBar.js +38 -28
- package/lib/list-bar/search-results-bar/SearchResultsBar.ve.js +4 -11
- package/lib/list-bar/style.css +2 -1
- package/lib/matrix/index.js +79 -87
- package/lib/matrix/index.umd.cjs +1 -1
- package/lib/matrix/matrix/Matrix.js +18 -26
- package/lib/matrix/matrix/Matrix.ve.js +4 -7
- package/lib/matrix/matrix-body/MatrixBody.js +10 -13
- package/lib/matrix/matrix-cell/MatrixCell.js +23 -18
- package/lib/matrix/matrix-head/MatrixHead.js +10 -13
- package/lib/matrix/matrix-header/MatrixHeader.js +20 -23
- package/lib/matrix/matrix-row/MatrixRow.js +10 -13
- package/lib/matrix/style.css +2 -1
- package/lib/modal/index.js +197 -187
- package/lib/modal/index.umd.cjs +1 -1
- package/lib/modal/modal/Modal.js +90 -108
- package/lib/modal/modal/Modal.ve.js +43 -13
- package/lib/modal/modal/useModal.js +19 -24
- package/lib/modal/modal-footer/ModalFooter.js +11 -12
- package/lib/modal/style.css +2 -1
- package/lib/node_modules/.pnpm/@vanilla-extract_recipes@0.2.5_@vanilla-extract_css@1.21.3/node_modules/@vanilla-extract/recipes/createRuntimeFn/dist/vanilla-extract-recipes-createRuntimeFn.esm.js +49 -0
- package/lib/node_modules/.pnpm/nanoid@5.1.16/node_modules/nanoid/index.browser.js +8 -10
- package/lib/node_modules/.pnpm/nanoid@5.1.16/node_modules/nanoid/url-alphabet/index.js +4 -4
- package/lib/page-title/heading-level/HeadingLevel.js +8 -12
- package/lib/page-title/index.js +33 -40
- package/lib/page-title/index.umd.cjs +1 -1
- package/lib/page-title/page-subtitle/PageSubtitle.js +13 -18
- package/lib/page-title/page-subtitle/PageSubtitle.ve.js +4 -5
- package/lib/page-title/page-title/PageTitle.js +15 -19
- package/lib/page-title/page-title/PageTitle.ve.js +4 -7
- package/lib/page-title/style.css +2 -1
- package/lib/photo/index.js +174 -177
- package/lib/photo/index.umd.cjs +1 -1
- package/lib/photo/photo/Photo.js +72 -81
- package/lib/photo/photo/Photo.ve.js +21 -7
- package/lib/photo/photo-carousel/PhotoCarousel.js +36 -51
- package/lib/photo/photo-carousel/PhotoCarousel.ve.js +13 -9
- package/lib/photo/style.css +2 -1
- package/lib/product-bar/hooks/usePriorityPlus.js +88 -104
- package/lib/product-bar/index.js +372 -395
- package/lib/product-bar/index.umd.cjs +1 -1
- package/lib/product-bar/product-bar/ProductBar.js +77 -103
- package/lib/product-bar/product-bar/ProductBar.ve.js +46 -15
- package/lib/product-bar/product-bar-name/ProductBarName.js +37 -40
- package/lib/product-bar/product-bar-overflow-menu/ProductBarOverflowMenu.js +48 -70
- package/lib/product-bar/product-bar-overflow-menu/ProductBarOverflowMenu.ve.js +4 -8
- package/lib/product-bar/product-bar-tab/ProductBarTab.js +28 -26
- package/lib/product-bar/slack-link/SlackLink.js +26 -30
- package/lib/product-bar/slack-link/SlackLink.ve.js +4 -5
- package/lib/product-bar/style.css +2 -1
- package/lib/product-bar-vertical/index.js +240 -251
- package/lib/product-bar-vertical/index.umd.cjs +1 -1
- package/lib/product-bar-vertical/product-bar-vertical/ProductBarVertical.js +42 -61
- package/lib/product-bar-vertical/product-bar-vertical/ProductBarVertical.ve.js +53 -23
- package/lib/product-bar-vertical/product-bar-vertical-header/ProductBarVerticalHeader.js +30 -42
- package/lib/product-bar-vertical/product-bar-vertical-item/ProductBarVerticalItem.js +71 -89
- package/lib/product-bar-vertical/product-bar-vertical-section/ProductBarVerticalSection.js +22 -29
- package/lib/product-bar-vertical/style.css +2 -1
- package/lib/progress-indicators/index.js +372 -255
- package/lib/progress-indicators/index.umd.cjs +1 -1
- package/lib/progress-indicators/progress-bar/ProgressBar.js +66 -110
- package/lib/progress-indicators/progress-bar/ProgressBar.ve.js +66 -13
- package/lib/progress-indicators/progress-bar/progress-bar-step/ProgressBarStep.js +34 -54
- package/lib/progress-indicators/progress-bar/progress-bar-step/ProgressBarStep.ve.js +136 -8
- package/lib/progress-indicators/progress-ring/ProgressRing.js +45 -52
- package/lib/progress-indicators/style.css +2 -1
- package/lib/rich-text-editor/index.js +556 -582
- package/lib/rich-text-editor/index.umd.cjs +11 -11
- package/lib/rich-text-editor/rich-text-editor/RTELinkModal.js +29 -33
- package/lib/rich-text-editor/rich-text-editor/RTEToolbarButton.js +23 -37
- package/lib/rich-text-editor/rich-text-editor/RTEToolbarButton.ve.js +13 -6
- package/lib/rich-text-editor/rich-text-editor/RichTextEditor.js +68 -77
- package/lib/rich-text-editor/rich-text-editor/RichTextEditor.ve.js +21 -8
- package/lib/rich-text-editor/rich-text-editor/hooks/useHtmlToMd.js +14 -20
- package/lib/rich-text-editor/rich-text-editor/hooks/useMdToHtml.js +14 -20
- package/lib/rich-text-editor/rich-text-editor/hooks/useRTEContent.js +33 -27
- package/lib/rich-text-editor/rich-text-editor/hooks/useRTEObserver.js +79 -88
- package/lib/rich-text-editor/rich-text-editor/hooks/useRTESelectionListener.js +28 -36
- package/lib/rich-text-editor/rich-text-editor/hooks/useRTEToolbarButtons.js +195 -211
- package/lib/rich-text-editor/rich-text-editor/icons/BOLD.svg.js +4 -4
- package/lib/rich-text-editor/rich-text-editor/icons/INDENT.svg.js +4 -4
- package/lib/rich-text-editor/rich-text-editor/icons/ITALICS.svg.js +4 -4
- package/lib/rich-text-editor/rich-text-editor/icons/LINK.svg.js +4 -4
- package/lib/rich-text-editor/rich-text-editor/icons/ORDERED_LIST.svg.js +4 -4
- package/lib/rich-text-editor/rich-text-editor/icons/OUTDENT.svg.js +4 -4
- package/lib/rich-text-editor/rich-text-editor/icons/REDO.svg.js +4 -4
- package/lib/rich-text-editor/rich-text-editor/icons/UNDO.svg.js +4 -4
- package/lib/rich-text-editor/rich-text-editor/icons/UNLINK.svg.js +4 -4
- package/lib/rich-text-editor/rich-text-editor/icons/UNORDERED_LIST.svg.js +4 -4
- package/lib/rich-text-editor/rich-text-editor/utils/flattenListItemParagraphs.js +12 -12
- package/lib/rich-text-editor/rich-text-editor/utils/removeUnrepresentableBreaks.js +20 -19
- package/lib/rich-text-editor/rich-text-editor/utils/utils.js +11 -15
- package/lib/rich-text-editor/style.css +2 -1
- package/lib/scrollable-container/ScrollableContainer.js +18 -27
- package/lib/scrollable-container/ScrollableContainer.ve.js +4 -4
- package/lib/scrollable-container/index.js +20 -27
- package/lib/scrollable-container/index.umd.cjs +1 -1
- package/lib/scrollable-container/style.css +2 -1
- package/lib/side-nav/index.js +190 -228
- package/lib/side-nav/index.umd.cjs +1 -1
- package/lib/side-nav/side-nav/SideNav.js +43 -60
- package/lib/side-nav/side-nav/SideNav.ve.js +22 -16
- package/lib/side-nav/side-nav/navContext.js +7 -7
- package/lib/side-nav/side-nav-header/SideNavHeader.js +14 -15
- package/lib/side-nav/side-nav-item/SideNavItem.js +68 -94
- package/lib/side-nav/side-nav-section/SideNavSection.js +16 -26
- package/lib/side-nav/style.css +2 -1
- package/lib/sorting-header/caret/caret.ve.js +13 -5
- package/lib/sorting-header/index.js +269 -251
- package/lib/sorting-header/index.umd.cjs +1 -1
- package/lib/sorting-header/sorting-header/SortingHeader.js +110 -124
- package/lib/sorting-header/sorting-header/SortingHeader.ve.js +30 -6
- package/lib/sorting-header/sorting-header-cell/SortingHeaderCell.js +69 -83
- package/lib/sorting-header/sorting-header-cell/SortingHeaderCell.ve.js +21 -7
- package/lib/sorting-header/style.css +2 -1
- package/lib/style.css +2 -1
- package/lib/tabs/index.js +255 -201
- package/lib/tabs/index.umd.cjs +1 -1
- package/lib/tabs/style.css +2 -1
- package/lib/tabs/tab/Tab.js +24 -27
- package/lib/tabs/tab/Tab.ve.js +76 -6
- package/lib/tabs/tab-panel/TabPanel.js +16 -25
- package/lib/tabs/tabs/Tabs.js +101 -112
- package/lib/tabs/tabs/Tabs.ve.js +13 -11
- package/lib/tags/clickable-tag/ClickableTag.js +86 -90
- package/lib/tags/clickable-tag/ClickableTag.ve.js +66 -9
- package/lib/tags/index.js +342 -199
- package/lib/tags/index.umd.cjs +1 -1
- package/lib/tags/split-tag/SplitTag.js +49 -30
- package/lib/tags/split-tag/SplitTag.ve.js +35 -9
- package/lib/tags/style.css +2 -1
- package/lib/tags/tag/Tag.js +42 -38
- package/lib/tags/tag/Tag.ve.js +41 -6
- package/lib/utils/cl.js +5 -5
- package/lib/zero-state/ZeroState.js +36 -29
- package/lib/zero-state/ZeroState.ve.js +29 -11
- package/lib/zero-state/index.js +103 -78
- package/lib/zero-state/index.umd.cjs +1 -1
- package/lib/zero-state/style.css +2 -1
- package/package.json +12 -12
- package/lib/node_modules/.pnpm/@vanilla-extract_recipes@0.2.5_@vanilla-extract_css@1.17.4/node_modules/@vanilla-extract/recipes/createRuntimeFn/dist/vanilla-extract-recipes-createRuntimeFn.esm.js +0 -57
|
@@ -1,22 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import t from "
|
|
3
|
-
import
|
|
1
|
+
import { flattenListItemParagraphs as e } from "../utils/flattenListItemParagraphs.js";
|
|
2
|
+
import { useMemo as t } from "react";
|
|
3
|
+
import n from "remark-parse";
|
|
4
|
+
import r from "remark-rehype";
|
|
4
5
|
import i from "rehype-sanitize";
|
|
5
|
-
import
|
|
6
|
-
import { unified as
|
|
7
|
-
|
|
8
|
-
function
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return e(
|
|
14
|
-
() => function(o) {
|
|
15
|
-
return r.process(o).then(String);
|
|
16
|
-
},
|
|
17
|
-
[r]
|
|
18
|
-
);
|
|
6
|
+
import a from "rehype-stringify";
|
|
7
|
+
import { unified as o } from "unified";
|
|
8
|
+
//#region src/rich-text-editor/rich-text-editor/hooks/useMdToHtml.ts
|
|
9
|
+
function s() {
|
|
10
|
+
let s = t(() => o().use(n).use(e).use(r).use(i).use(a), []);
|
|
11
|
+
return t(() => function(e) {
|
|
12
|
+
return s.process(e).then(String);
|
|
13
|
+
}, [s]);
|
|
19
14
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
};
|
|
15
|
+
//#endregion
|
|
16
|
+
export { s as useMdToHtml };
|
|
@@ -1,28 +1,34 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
1
|
+
import { useMdToHtml as e } from "./useMdToHtml.js";
|
|
2
|
+
import { useHtmlToMd as t } from "./useHtmlToMd.js";
|
|
3
|
+
import { useCallback as n, useEffect as r, useState as i } from "react";
|
|
4
|
+
//#region src/rich-text-editor/rich-text-editor/hooks/useRTEContent.ts
|
|
5
|
+
function a(a = "", o = "") {
|
|
6
|
+
let [s, c] = i(), [l, u] = i({ html: o }), d = t(), f = e(), p = n(async (e) => {
|
|
7
|
+
let t = {
|
|
8
|
+
md: e,
|
|
9
|
+
html: await f(e)
|
|
10
|
+
};
|
|
11
|
+
return c(t), t;
|
|
12
|
+
}, [f]), m = n(async (e) => {
|
|
13
|
+
let t = {
|
|
14
|
+
md: await d(e),
|
|
15
|
+
html: e
|
|
16
|
+
};
|
|
17
|
+
return c(t), t;
|
|
18
|
+
}, [d]);
|
|
19
|
+
r(() => {
|
|
20
|
+
!o && a !== s?.md ? p(a).then(({ html: e }) => {
|
|
21
|
+
u({ html: e });
|
|
22
|
+
}) : !a && o && o !== s?.html && m(o);
|
|
23
|
+
}, [a, o]);
|
|
24
|
+
function h(e) {
|
|
25
|
+
e.current && m(e.current.innerHTML);
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
aggValue: s,
|
|
29
|
+
editableDivInnerHtml: l,
|
|
30
|
+
updateStateFromDiv: h
|
|
31
|
+
};
|
|
25
32
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
};
|
|
33
|
+
//#endregion
|
|
34
|
+
export { a as useRTEContent };
|
|
@@ -1,94 +1,85 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { useEffect as e, useMemo as t, useRef as n } from "react";
|
|
2
|
+
//#region src/rich-text-editor/rich-text-editor/hooks/useRTEObserver.ts
|
|
3
|
+
function r(e) {
|
|
4
|
+
if (e instanceof HTMLElement) {
|
|
5
|
+
for (let t of Array.from(e.attributes)) /(style|class|data-[^=]+)/.test(t.name) && e.removeAttribute(t.name);
|
|
6
|
+
e.innerHTML = e.innerHTML.replace(/(style|class|data-[^=]+)="[^"]+"/g, "");
|
|
7
|
+
}
|
|
8
8
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
{
|
|
32
|
-
regex: /\[([^\]]+)\]\(([^)]+)\)/,
|
|
33
|
-
command: "createLink",
|
|
34
|
-
getCommandArg: ([, , e]) => /^https?:\/\//.test(e) ? e : `https://${e}`
|
|
35
|
-
}
|
|
9
|
+
var i = [
|
|
10
|
+
{
|
|
11
|
+
regex: /\*\*([^*]+)\*\*/,
|
|
12
|
+
command: "bold"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
regex: /(?<!\*)\*([^*]+)\*/,
|
|
16
|
+
command: "italic"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
regex: /^\*[ \u00a0]/,
|
|
20
|
+
command: "insertUnorderedList"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
regex: /^1\.[ \u00a0]/,
|
|
24
|
+
command: "insertOrderedList"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
regex: /\[([^\]]+)\]\(([^)]+)\)/,
|
|
28
|
+
command: "createLink",
|
|
29
|
+
getCommandArg: ([, , e]) => /^https?:\/\//.test(e) ? e : `https://${e}`
|
|
30
|
+
}
|
|
36
31
|
];
|
|
37
|
-
function
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
32
|
+
function a(e, t, n) {
|
|
33
|
+
let r = document.createRange();
|
|
34
|
+
r.setStart(e, t), r.setEnd(e, n);
|
|
35
|
+
let i = window.getSelection();
|
|
36
|
+
i?.removeAllRanges(), i?.addRange(r);
|
|
42
37
|
}
|
|
43
|
-
function
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
function o(e) {
|
|
39
|
+
let t = document.createRange();
|
|
40
|
+
t.setStartAfter(e), t.setEndAfter(e);
|
|
41
|
+
let n = window.getSelection();
|
|
42
|
+
n?.removeAllRanges(), n?.addRange(t);
|
|
48
43
|
}
|
|
49
|
-
function
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
44
|
+
function s(e) {
|
|
45
|
+
let t = document.createRange();
|
|
46
|
+
t.setStartBefore(e), t.setEndBefore(e);
|
|
47
|
+
let n = window.getSelection();
|
|
48
|
+
n?.removeAllRanges(), n?.addRange(t);
|
|
54
49
|
}
|
|
55
|
-
function
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}, [a, t]), t;
|
|
50
|
+
function c(c) {
|
|
51
|
+
let l = n(null), u = t(() => new MutationObserver(([e]) => {
|
|
52
|
+
if (e.type === "characterData" && e.oldValue && e.target.textContent) {
|
|
53
|
+
for (let t of i) if (!t.regex.test(e.oldValue) && t.regex.test(e.target.textContent)) {
|
|
54
|
+
let n = t.regex.exec(e.target.textContent), [r, i = ""] = n, s = e.target.textContent.indexOf(r);
|
|
55
|
+
e.target.textContent = e.target.textContent.replace(r, i);
|
|
56
|
+
let c = s + i.length;
|
|
57
|
+
a(e.target, s, c);
|
|
58
|
+
let l = t.getCommandArg ? t.getCommandArg(n) : void 0;
|
|
59
|
+
document.execCommand(t.command, void 0, l), i && (o(e.target.parentNode), document.execCommand(t.command));
|
|
60
|
+
}
|
|
61
|
+
} else e.type === "childList" && Array.from(e.addedNodes).forEach((e) => {
|
|
62
|
+
let t;
|
|
63
|
+
if (e instanceof HTMLElement && e.tagName === "LI" ? t = e : e?.parentElement?.tagName === "LI" && (t = e?.parentElement), t) {
|
|
64
|
+
let e = t.nextElementSibling, n = e?.childNodes?.[0];
|
|
65
|
+
if (n instanceof HTMLElement && ["UL", "OL"].includes(n.tagName)) {
|
|
66
|
+
let t = document.createElement("br");
|
|
67
|
+
e.insertBefore(t, n), s(t);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
r(e);
|
|
71
|
+
});
|
|
72
|
+
c(l);
|
|
73
|
+
}), []);
|
|
74
|
+
return e(() => () => {
|
|
75
|
+
u && u.disconnect();
|
|
76
|
+
}, []), e(() => {
|
|
77
|
+
l.current !== null && u.observe(l.current, {
|
|
78
|
+
childList: !0,
|
|
79
|
+
subtree: !0,
|
|
80
|
+
characterDataOldValue: !0
|
|
81
|
+
});
|
|
82
|
+
}, [u, l]), l;
|
|
89
83
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
C as moveCaretBefore,
|
|
93
|
-
v as useRTEObserver
|
|
94
|
-
};
|
|
84
|
+
//#endregion
|
|
85
|
+
export { o as moveCaretAfter, s as moveCaretBefore, c as useRTEObserver };
|
|
@@ -1,37 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
},
|
|
28
|
-
[t]
|
|
29
|
-
);
|
|
30
|
-
return {
|
|
31
|
-
selectionRange: t,
|
|
32
|
-
selectionDOMContextFind: u
|
|
33
|
-
};
|
|
1
|
+
import { useCallback as e, useEffect as t, useState as n } from "react";
|
|
2
|
+
//#region src/rich-text-editor/rich-text-editor/hooks/useRTESelectionListener.ts
|
|
3
|
+
function r(r) {
|
|
4
|
+
let [i, a] = n();
|
|
5
|
+
return t(() => {
|
|
6
|
+
function e() {
|
|
7
|
+
let e = window.getSelection();
|
|
8
|
+
Number(e?.rangeCount) > 0 && a(e?.getRangeAt(0));
|
|
9
|
+
}
|
|
10
|
+
return document.addEventListener("selectionchange", e), () => {
|
|
11
|
+
document.removeEventListener("selectionchange", e);
|
|
12
|
+
};
|
|
13
|
+
}, []), {
|
|
14
|
+
selectionRange: i,
|
|
15
|
+
selectionDOMContextFind: e((e) => {
|
|
16
|
+
if (!i) return null;
|
|
17
|
+
let t = i.commonAncestorContainer;
|
|
18
|
+
if (!r.current || !r.current.contains(t)) return null;
|
|
19
|
+
let n = t instanceof HTMLElement ? t : t.parentElement;
|
|
20
|
+
for (; n && n !== r.current;) {
|
|
21
|
+
if (e(n)) return n;
|
|
22
|
+
n = n.parentElement;
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}, [i])
|
|
26
|
+
};
|
|
34
27
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
};
|
|
28
|
+
//#endregion
|
|
29
|
+
export { r as useRTESelectionListener };
|