carbon-react 148.0.1 → 149.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/__internal__/label/label.component.js +4 -1
- package/esm/components/note/note.component.d.ts +1 -2
- package/esm/components/note/note.component.js +6 -9
- package/esm/components/text-editor/__internal__/constants.d.ts +21 -0
- package/esm/components/text-editor/__internal__/constants.js +29 -0
- package/esm/components/text-editor/__internal__/helpers.d.ts +20 -0
- package/esm/components/text-editor/__internal__/helpers.js +84 -0
- package/esm/components/text-editor/__internal__/index.d.ts +2 -0
- package/esm/components/text-editor/__internal__/index.js +2 -0
- package/esm/components/text-editor/__internal__/plugins/AutoLinker/auto-link.component.d.ts +3 -0
- package/esm/components/text-editor/__internal__/plugins/AutoLinker/auto-link.component.js +28 -0
- package/esm/components/text-editor/__internal__/plugins/AutoLinker/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/AutoLinker/index.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/__test__/character-counter.component.d.ts +10 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/__test__/character-counter.component.js +33 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.component.d.ts +9 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.component.js +59 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.style.d.ts +3 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.style.js +17 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/index.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/ContentEditor/content-editor.component.d.ts +17 -0
- package/esm/components/text-editor/__internal__/plugins/ContentEditor/content-editor.component.js +40 -0
- package/esm/components/text-editor/__internal__/plugins/ContentEditor/content-editor.style.d.ts +6 -0
- package/esm/components/text-editor/__internal__/plugins/ContentEditor/content-editor.style.js +34 -0
- package/esm/components/text-editor/__internal__/plugins/ContentEditor/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/ContentEditor/index.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/LinkMonitor/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/LinkMonitor/index.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/LinkMonitor/link-monitor.plugin.d.ts +2 -0
- package/esm/components/text-editor/__internal__/plugins/LinkMonitor/link-monitor.plugin.js +62 -0
- package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/index.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.component.d.ts +11 -0
- package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.component.js +19 -0
- package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.style.d.ts +6 -0
- package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.style.js +29 -0
- package/esm/components/text-editor/__internal__/plugins/OnChange/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/OnChange/index.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/OnChange/on-change.plugin.d.ts +5 -0
- package/esm/components/text-editor/__internal__/plugins/OnChange/on-change.plugin.js +25 -0
- package/esm/components/text-editor/__internal__/plugins/Placeholder/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/Placeholder/index.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/Placeholder/placeholder.component.d.ts +14 -0
- package/esm/components/text-editor/__internal__/plugins/Placeholder/placeholder.component.js +17 -0
- package/esm/components/text-editor/__internal__/plugins/Placeholder/placeholder.style.d.ts +2 -0
- package/esm/components/text-editor/__internal__/plugins/Placeholder/placeholder.style.js +8 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/bold.component.d.ts +4 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/bold.component.js +41 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/common.d.ts +6 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/common.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/index.d.ts +4 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/index.js +4 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/italic.component.d.ts +4 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/italic.component.js +41 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/list.component.d.ts +5 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/list.component.js +317 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/save.component.d.ts +34 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/save.component.js +29 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/toolbar.component.d.ts +12 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/toolbar.component.js +111 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/toolbar.style.d.ts +11 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/toolbar.style.js +57 -0
- package/esm/components/text-editor/__internal__/plugins/index.d.ts +9 -0
- package/esm/components/text-editor/__internal__/plugins/index.js +9 -0
- package/esm/components/text-editor/__internal__/plugins/useCursorAtEnd/index.d.ts +2 -0
- package/esm/components/text-editor/__internal__/plugins/useCursorAtEnd/index.js +71 -0
- package/esm/components/text-editor/__internal__/read-only-rte.component.d.ts +4 -0
- package/esm/components/text-editor/__internal__/read-only-rte.component.js +62 -0
- package/esm/components/text-editor/__internal__/style.css +7 -0
- package/esm/components/text-editor/__internal__/utils.d.ts +4 -0
- package/esm/components/text-editor/__internal__/utils.js +14 -0
- package/esm/components/text-editor/index.d.ts +2 -1
- package/esm/components/text-editor/index.js +2 -1
- package/esm/components/text-editor/text-editor.component.d.ts +32 -28
- package/esm/components/text-editor/text-editor.component.js +139 -478
- package/esm/components/text-editor/text-editor.context.d.ts +6 -0
- package/esm/components/text-editor/text-editor.context.js +4 -0
- package/esm/components/text-editor/text-editor.style.d.ts +18 -11
- package/esm/components/text-editor/text-editor.style.js +55 -52
- package/esm/locales/de-de.js +0 -14
- package/esm/locales/en-gb.js +18 -14
- package/esm/locales/es-es.js +0 -14
- package/esm/locales/fr-ca.js +0 -14
- package/esm/locales/fr-fr.js +0 -14
- package/esm/locales/locale.d.ts +14 -14
- package/lib/__internal__/label/label.component.js +3 -0
- package/lib/components/note/note.component.d.ts +1 -2
- package/lib/components/note/note.component.js +6 -9
- package/lib/components/text-editor/__internal__/constants.d.ts +21 -0
- package/lib/components/text-editor/__internal__/constants.js +33 -0
- package/lib/components/text-editor/__internal__/helpers.d.ts +20 -0
- package/lib/components/text-editor/__internal__/helpers.js +91 -0
- package/lib/components/text-editor/__internal__/index.d.ts +2 -0
- package/lib/components/text-editor/__internal__/index.js +26 -0
- package/lib/components/text-editor/__internal__/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/AutoLinker/auto-link.component.d.ts +3 -0
- package/lib/components/text-editor/__internal__/plugins/AutoLinker/auto-link.component.js +36 -0
- package/lib/components/text-editor/__internal__/plugins/AutoLinker/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/{editor-link → plugins/AutoLinker}/index.js +2 -2
- package/lib/components/text-editor/__internal__/{toolbar/toolbar-button → plugins/AutoLinker}/package.json +1 -1
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/__test__/character-counter.component.d.ts +10 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/__test__/character-counter.component.js +42 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.component.d.ts +9 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.component.js +68 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.style.d.ts +3 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.style.js +24 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/index.js +13 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/ContentEditor/content-editor.component.d.ts +17 -0
- package/lib/components/text-editor/__internal__/plugins/ContentEditor/content-editor.component.js +48 -0
- package/lib/components/text-editor/__internal__/plugins/ContentEditor/content-editor.style.d.ts +6 -0
- package/lib/components/text-editor/__internal__/plugins/ContentEditor/content-editor.style.js +42 -0
- package/lib/components/text-editor/__internal__/plugins/ContentEditor/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/{toolbar/toolbar-button → plugins/ContentEditor}/index.js +2 -2
- package/lib/components/text-editor/__internal__/plugins/ContentEditor/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/LinkMonitor/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/{label-wrapper → plugins/LinkMonitor}/index.js +2 -2
- package/lib/components/text-editor/__internal__/plugins/LinkMonitor/link-monitor.plugin.d.ts +2 -0
- package/lib/components/text-editor/__internal__/plugins/LinkMonitor/link-monitor.plugin.js +70 -0
- package/lib/components/text-editor/__internal__/plugins/LinkMonitor/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/index.js +13 -0
- package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.component.d.ts +11 -0
- package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.component.js +28 -0
- package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.style.d.ts +6 -0
- package/lib/components/text-editor/__internal__/{toolbar/toolbar-button/toolbar-button.style.js → plugins/LinkPreviewer/link-previewer.style.js} +21 -31
- package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/OnChange/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/plugins/OnChange/index.js +13 -0
- package/lib/components/text-editor/__internal__/plugins/OnChange/on-change.plugin.d.ts +5 -0
- package/lib/components/text-editor/__internal__/plugins/OnChange/on-change.plugin.js +32 -0
- package/lib/components/text-editor/__internal__/plugins/OnChange/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/Placeholder/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/plugins/Placeholder/index.js +13 -0
- package/lib/components/text-editor/__internal__/plugins/Placeholder/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/Placeholder/placeholder.component.d.ts +14 -0
- package/lib/components/text-editor/__internal__/plugins/Placeholder/placeholder.component.js +25 -0
- package/lib/components/text-editor/__internal__/plugins/Placeholder/placeholder.style.d.ts +2 -0
- package/lib/components/text-editor/__internal__/plugins/Placeholder/placeholder.style.js +15 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/bold.component.d.ts +4 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/bold.component.js +48 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/common.d.ts +6 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/common.js +5 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/index.d.ts +4 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/index.js +34 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/italic.component.d.ts +4 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/italic.component.js +47 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/list.component.d.ts +5 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/list.component.js +325 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/save.component.d.ts +34 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/save.component.js +36 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/toolbar.component.d.ts +12 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/toolbar.component.js +120 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/toolbar.style.d.ts +11 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/toolbar.style.js +65 -0
- package/lib/components/text-editor/__internal__/plugins/index.d.ts +9 -0
- package/lib/components/text-editor/__internal__/plugins/index.js +69 -0
- package/lib/components/text-editor/__internal__/{toolbar → plugins}/package.json +1 -1
- package/lib/components/text-editor/__internal__/plugins/useCursorAtEnd/index.d.ts +2 -0
- package/lib/components/text-editor/__internal__/plugins/useCursorAtEnd/index.js +78 -0
- package/lib/components/text-editor/__internal__/plugins/useCursorAtEnd/package.json +6 -0
- package/lib/components/text-editor/__internal__/read-only-rte.component.d.ts +4 -0
- package/lib/components/text-editor/__internal__/read-only-rte.component.js +72 -0
- package/lib/components/text-editor/__internal__/style.css +7 -0
- package/lib/components/text-editor/__internal__/utils.d.ts +4 -0
- package/lib/components/text-editor/__internal__/utils.js +21 -0
- package/lib/components/text-editor/index.d.ts +2 -1
- package/lib/components/text-editor/index.js +7 -7
- package/lib/components/text-editor/text-editor.component.d.ts +32 -28
- package/lib/components/text-editor/text-editor.component.js +141 -477
- package/lib/components/text-editor/text-editor.context.d.ts +6 -0
- package/lib/components/text-editor/{__internal__/editor.context.js → text-editor.context.js} +1 -0
- package/lib/components/text-editor/text-editor.style.d.ts +18 -11
- package/lib/components/text-editor/text-editor.style.js +57 -53
- package/lib/locales/de-de.js +0 -14
- package/lib/locales/en-gb.js +18 -14
- package/lib/locales/es-es.js +0 -14
- package/lib/locales/fr-ca.js +0 -14
- package/lib/locales/fr-fr.js +0 -14
- package/lib/locales/locale.d.ts +14 -14
- package/package.json +7 -4
- package/esm/components/text-editor/__internal__/decorators/index.d.ts +0 -3
- package/esm/components/text-editor/__internal__/decorators/index.js +0 -3
- package/esm/components/text-editor/__internal__/decorators/link-decorator.d.ts +0 -8
- package/esm/components/text-editor/__internal__/decorators/link-decorator.js +0 -37
- package/esm/components/text-editor/__internal__/editor-link/editor-link.component.d.ts +0 -9
- package/esm/components/text-editor/__internal__/editor-link/editor-link.component.js +0 -36
- package/esm/components/text-editor/__internal__/editor-link/editor-link.style.d.ts +0 -3
- package/esm/components/text-editor/__internal__/editor-link/editor-link.style.js +0 -13
- package/esm/components/text-editor/__internal__/editor-link/index.d.ts +0 -2
- package/esm/components/text-editor/__internal__/editor-link/index.js +0 -1
- package/esm/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.component.d.ts +0 -11
- package/esm/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.component.js +0 -18
- package/esm/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.style.d.ts +0 -2
- package/esm/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.style.js +0 -11
- package/esm/components/text-editor/__internal__/editor-validation-wrapper/index.d.ts +0 -2
- package/esm/components/text-editor/__internal__/editor-validation-wrapper/index.js +0 -1
- package/esm/components/text-editor/__internal__/editor.context.d.ts +0 -6
- package/esm/components/text-editor/__internal__/editor.context.js +0 -2
- package/esm/components/text-editor/__internal__/label-wrapper/index.d.ts +0 -2
- package/esm/components/text-editor/__internal__/label-wrapper/index.js +0 -1
- package/esm/components/text-editor/__internal__/label-wrapper/label-wrapper.component.d.ts +0 -12
- package/esm/components/text-editor/__internal__/label-wrapper/label-wrapper.component.js +0 -18
- package/esm/components/text-editor/__internal__/toolbar/index.d.ts +0 -2
- package/esm/components/text-editor/__internal__/toolbar/toolbar-button/index.d.ts +0 -2
- package/esm/components/text-editor/__internal__/toolbar/toolbar-button/index.js +0 -1
- package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.d.ts +0 -25
- package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.js +0 -50
- package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.style.d.ts +0 -6
- package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.style.js +0 -38
- package/esm/components/text-editor/__internal__/toolbar/toolbar.component.d.ts +0 -16
- package/esm/components/text-editor/__internal__/toolbar/toolbar.component.js +0 -158
- package/esm/components/text-editor/__internal__/toolbar/toolbar.style.d.ts +0 -4
- package/esm/components/text-editor/__internal__/toolbar/toolbar.style.js +0 -28
- package/esm/components/text-editor/__internal__/utils/index.d.ts +0 -1
- package/esm/components/text-editor/__internal__/utils/index.js +0 -1
- package/esm/components/text-editor/__internal__/utils/utils.d.ts +0 -29
- package/esm/components/text-editor/__internal__/utils/utils.js +0 -174
- package/esm/components/text-editor/types.d.ts +0 -6
- package/esm/components/text-editor/types.js +0 -4
- package/lib/components/text-editor/__internal__/decorators/index.d.ts +0 -3
- package/lib/components/text-editor/__internal__/decorators/index.js +0 -10
- package/lib/components/text-editor/__internal__/decorators/link-decorator.d.ts +0 -8
- package/lib/components/text-editor/__internal__/decorators/link-decorator.js +0 -44
- package/lib/components/text-editor/__internal__/decorators/package.json +0 -6
- package/lib/components/text-editor/__internal__/editor-link/editor-link.component.d.ts +0 -9
- package/lib/components/text-editor/__internal__/editor-link/editor-link.component.js +0 -45
- package/lib/components/text-editor/__internal__/editor-link/editor-link.style.d.ts +0 -3
- package/lib/components/text-editor/__internal__/editor-link/editor-link.style.js +0 -20
- package/lib/components/text-editor/__internal__/editor-link/index.d.ts +0 -2
- package/lib/components/text-editor/__internal__/editor-link/package.json +0 -6
- package/lib/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.component.d.ts +0 -11
- package/lib/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.component.js +0 -25
- package/lib/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.style.d.ts +0 -2
- package/lib/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.style.js +0 -18
- package/lib/components/text-editor/__internal__/editor-validation-wrapper/index.d.ts +0 -2
- package/lib/components/text-editor/__internal__/editor-validation-wrapper/index.js +0 -13
- package/lib/components/text-editor/__internal__/editor-validation-wrapper/package.json +0 -6
- package/lib/components/text-editor/__internal__/editor.context.d.ts +0 -6
- package/lib/components/text-editor/__internal__/label-wrapper/index.d.ts +0 -2
- package/lib/components/text-editor/__internal__/label-wrapper/label-wrapper.component.d.ts +0 -12
- package/lib/components/text-editor/__internal__/label-wrapper/label-wrapper.component.js +0 -25
- package/lib/components/text-editor/__internal__/label-wrapper/package.json +0 -6
- package/lib/components/text-editor/__internal__/toolbar/index.d.ts +0 -2
- package/lib/components/text-editor/__internal__/toolbar/toolbar-button/index.d.ts +0 -2
- package/lib/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.d.ts +0 -25
- package/lib/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.js +0 -56
- package/lib/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.style.d.ts +0 -6
- package/lib/components/text-editor/__internal__/toolbar/toolbar.component.d.ts +0 -16
- package/lib/components/text-editor/__internal__/toolbar/toolbar.component.js +0 -167
- package/lib/components/text-editor/__internal__/toolbar/toolbar.style.d.ts +0 -4
- package/lib/components/text-editor/__internal__/toolbar/toolbar.style.js +0 -34
- package/lib/components/text-editor/__internal__/utils/index.d.ts +0 -1
- package/lib/components/text-editor/__internal__/utils/index.js +0 -90
- package/lib/components/text-editor/__internal__/utils/package.json +0 -6
- package/lib/components/text-editor/__internal__/utils/utils.d.ts +0 -29
- package/lib/components/text-editor/__internal__/utils/utils.js +0 -197
- package/lib/components/text-editor/types.d.ts +0 -6
- package/lib/components/text-editor/types.js +0 -10
- /package/esm/components/text-editor/__internal__/{toolbar → plugins/Toolbar}/index.js +0 -0
- /package/lib/components/text-editor/__internal__/{toolbar → plugins/Toolbar}/index.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from "./toolbar-button.component";
|
package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
export interface ToolbarButtonProps {
|
|
3
|
-
/** Accessibility label for a button */
|
|
4
|
-
ariaLabel: string;
|
|
5
|
-
/** The children for the button */
|
|
6
|
-
children: React.ReactNode;
|
|
7
|
-
/** Used to control the button's active status */
|
|
8
|
-
activated?: boolean;
|
|
9
|
-
/** Callback to handle any keydown events on a button */
|
|
10
|
-
onKeyDown: (ev: React.KeyboardEvent<HTMLButtonElement>) => void;
|
|
11
|
-
/** Callback to handle any mousedown events on a button */
|
|
12
|
-
onMouseDown: (ev: React.MouseEvent<HTMLButtonElement>) => void;
|
|
13
|
-
/** Callback to handle any mouseover events on a button */
|
|
14
|
-
onMouseOver?: (ev: React.MouseEvent<HTMLButtonElement>) => void;
|
|
15
|
-
/** Callback to handle any mouseleave events on a button */
|
|
16
|
-
onMouseLeave?: (ev: React.MouseEvent<HTMLButtonElement>) => void;
|
|
17
|
-
/** Callback to handle any focus events on a button */
|
|
18
|
-
onFocus?: (ev: React.FocusEvent<HTMLButtonElement>) => void;
|
|
19
|
-
/** Callback to handle any blur events on a button */
|
|
20
|
-
onBlur?: (ev: React.FocusEvent<HTMLButtonElement>) => void;
|
|
21
|
-
/** Controls whether the button can be tabbed to */
|
|
22
|
-
tabbable?: boolean;
|
|
23
|
-
}
|
|
24
|
-
export declare const ToolbarButton: React.ForwardRefExoticComponent<ToolbarButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
25
|
-
export default ToolbarButton;
|
package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
-
import React from "react";
|
|
3
|
-
import PropTypes from "prop-types";
|
|
4
|
-
import StyledToolbarButton from "./toolbar-button.style";
|
|
5
|
-
const ToolbarButton = /*#__PURE__*/React.forwardRef(({
|
|
6
|
-
onKeyDown,
|
|
7
|
-
onMouseDown,
|
|
8
|
-
activated,
|
|
9
|
-
ariaLabel,
|
|
10
|
-
tabbable,
|
|
11
|
-
children,
|
|
12
|
-
onMouseOver,
|
|
13
|
-
onMouseLeave,
|
|
14
|
-
onFocus,
|
|
15
|
-
onBlur
|
|
16
|
-
}, ref) => {
|
|
17
|
-
return /*#__PURE__*/React.createElement(StyledToolbarButton, _extends({
|
|
18
|
-
"data-component": "text-editor-toolbar-button",
|
|
19
|
-
ref: ref,
|
|
20
|
-
onKeyDown: onKeyDown,
|
|
21
|
-
onMouseDown: onMouseDown,
|
|
22
|
-
isActive: activated,
|
|
23
|
-
"aria-label": ariaLabel,
|
|
24
|
-
"aria-pressed": activated
|
|
25
|
-
}, !tabbable && {
|
|
26
|
-
tabIndex: -1
|
|
27
|
-
}, {
|
|
28
|
-
onMouseOver: onMouseOver,
|
|
29
|
-
onMouseLeave: onMouseLeave,
|
|
30
|
-
onFocus: onFocus,
|
|
31
|
-
onBlur: onBlur
|
|
32
|
-
}), children);
|
|
33
|
-
});
|
|
34
|
-
if (process.env.NODE_ENV !== "production") {
|
|
35
|
-
ToolbarButton.propTypes = {
|
|
36
|
-
"activated": PropTypes.bool,
|
|
37
|
-
"ariaLabel": PropTypes.string.isRequired,
|
|
38
|
-
"children": PropTypes.node,
|
|
39
|
-
"onBlur": PropTypes.func,
|
|
40
|
-
"onFocus": PropTypes.func,
|
|
41
|
-
"onKeyDown": PropTypes.func.isRequired,
|
|
42
|
-
"onMouseDown": PropTypes.func.isRequired,
|
|
43
|
-
"onMouseLeave": PropTypes.func,
|
|
44
|
-
"onMouseOver": PropTypes.func,
|
|
45
|
-
"tabbable": PropTypes.bool
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
export { ToolbarButton };
|
|
49
|
-
ToolbarButton.displayName = "ToolbarButton";
|
|
50
|
-
export default ToolbarButton;
|
package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.style.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import styled, { css } from "styled-components";
|
|
2
|
-
import { baseTheme } from "../../../../../style/themes";
|
|
3
|
-
import addFocusStyling from "../../../../../style/utils/add-focus-styling";
|
|
4
|
-
const StyledToolbarButton = styled.button.attrs({
|
|
5
|
-
type: "button"
|
|
6
|
-
})`
|
|
7
|
-
display: inline-flex;
|
|
8
|
-
justify-content: center;
|
|
9
|
-
align-items: center;
|
|
10
|
-
padding: 6px;
|
|
11
|
-
background-color: inherit;
|
|
12
|
-
border-radius: var(--borderRadius100);
|
|
13
|
-
border: none;
|
|
14
|
-
cursor: pointer;
|
|
15
|
-
|
|
16
|
-
${({
|
|
17
|
-
isActive
|
|
18
|
-
}) => css`
|
|
19
|
-
:focus,
|
|
20
|
-
:active {
|
|
21
|
-
z-index: 1;
|
|
22
|
-
position: relative;
|
|
23
|
-
${addFocusStyling()}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
:hover {
|
|
27
|
-
background-color: ${!isActive && "var(--colorsActionMinor200)"};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
${isActive && css`
|
|
31
|
-
background-color: var(--colorsActionMinor600);
|
|
32
|
-
`}
|
|
33
|
-
`}
|
|
34
|
-
`;
|
|
35
|
-
StyledToolbarButton.defaultProps = {
|
|
36
|
-
theme: baseTheme
|
|
37
|
-
};
|
|
38
|
-
export default StyledToolbarButton;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import type { InlineStyleType, BlockType } from "../../types";
|
|
3
|
-
export interface ToolbarProps {
|
|
4
|
-
/** Used to override the active status of the inline controls */
|
|
5
|
-
activeControls: Record<InlineStyleType | BlockType, boolean>;
|
|
6
|
-
/** Flag to trigger control focusing */
|
|
7
|
-
canFocus?: boolean;
|
|
8
|
-
/** Callback to handle setting the inline styles */
|
|
9
|
-
setInlineStyle: (ev: React.KeyboardEvent<HTMLButtonElement> | React.MouseEvent<HTMLButtonElement>, inlineType: InlineStyleType) => void;
|
|
10
|
-
/** Callback to handle setting the block styles */
|
|
11
|
-
setBlockStyle: (ev: React.KeyboardEvent<HTMLButtonElement> | React.MouseEvent<HTMLButtonElement>, blockType: BlockType) => void;
|
|
12
|
-
/** Additional elements to be rendered in the Toolbar, e.g. Save and Cancel Button */
|
|
13
|
-
toolbarElements?: React.ReactNode;
|
|
14
|
-
}
|
|
15
|
-
declare const Toolbar: ({ activeControls, canFocus, toolbarElements, setBlockStyle, setInlineStyle, }: ToolbarProps) => React.JSX.Element;
|
|
16
|
-
export default Toolbar;
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import React, { useCallback, useEffect, useState, useRef } from "react";
|
|
2
|
-
import PropTypes from "prop-types";
|
|
3
|
-
import { StyledToolbar, StyledEditorStyleControls, StyledEditorActionControls } from "./toolbar.style";
|
|
4
|
-
import ToolbarButton from "./toolbar-button";
|
|
5
|
-
import Events from "../../../../__internal__/utils/helpers/events";
|
|
6
|
-
import Icon from "../../../icon";
|
|
7
|
-
import Tooltip from "../../../tooltip";
|
|
8
|
-
import useLocale from "../../../../hooks/__internal__/useLocale";
|
|
9
|
-
import { BOLD, ITALIC, UNORDERED_LIST, ORDERED_LIST } from "../../types";
|
|
10
|
-
const Toolbar = ({
|
|
11
|
-
activeControls,
|
|
12
|
-
canFocus,
|
|
13
|
-
toolbarElements,
|
|
14
|
-
setBlockStyle,
|
|
15
|
-
setInlineStyle
|
|
16
|
-
}) => {
|
|
17
|
-
const {
|
|
18
|
-
textEditor
|
|
19
|
-
} = useLocale();
|
|
20
|
-
const {
|
|
21
|
-
tooltipMessages,
|
|
22
|
-
ariaLabels
|
|
23
|
-
} = textEditor;
|
|
24
|
-
const controlRefs = useRef([/*#__PURE__*/React.createRef(), /*#__PURE__*/React.createRef(), /*#__PURE__*/React.createRef(), /*#__PURE__*/React.createRef()]);
|
|
25
|
-
const [focusIndex, setFocusIndex] = useState(null);
|
|
26
|
-
const [tabbable, setTabbable] = useState(true);
|
|
27
|
-
const [activeTooltip, setActiveTooltip] = useState("");
|
|
28
|
-
const handleInlineStyleChange = useCallback((ev, inlineType) => {
|
|
29
|
-
setInlineStyle(ev, inlineType);
|
|
30
|
-
}, [setInlineStyle]);
|
|
31
|
-
const handleBlockType = useCallback((ev, blockType) => {
|
|
32
|
-
setBlockStyle(ev, blockType);
|
|
33
|
-
}, [setBlockStyle]);
|
|
34
|
-
const handleKeyDown = useCallback((ev, type) => {
|
|
35
|
-
if (Events.isTabKey(ev)) {
|
|
36
|
-
setFocusIndex(null);
|
|
37
|
-
} else if (Events.isSpaceKey(ev) || Events.isEnterKey(ev)) {
|
|
38
|
-
if (type === BOLD || type === ITALIC) {
|
|
39
|
-
handleInlineStyleChange(ev, type);
|
|
40
|
-
} else {
|
|
41
|
-
handleBlockType(ev, type);
|
|
42
|
-
}
|
|
43
|
-
setFocusIndex(0);
|
|
44
|
-
setTabbable(true);
|
|
45
|
-
} else if (Events.isLeftKey(ev)) {
|
|
46
|
-
if (focusIndex === null || focusIndex === 0) {
|
|
47
|
-
controlRefs.current[3].current?.focus();
|
|
48
|
-
setFocusIndex(3);
|
|
49
|
-
} else {
|
|
50
|
-
controlRefs.current[focusIndex - 1].current?.focus();
|
|
51
|
-
setFocusIndex(focusIndex - 1);
|
|
52
|
-
}
|
|
53
|
-
setTabbable(false);
|
|
54
|
-
} else if (Events.isRightKey(ev)) {
|
|
55
|
-
if (focusIndex === 3) {
|
|
56
|
-
controlRefs.current[0].current?.focus();
|
|
57
|
-
setFocusIndex(0);
|
|
58
|
-
} else {
|
|
59
|
-
const currentIndex = focusIndex === null ? 0 : focusIndex;
|
|
60
|
-
controlRefs.current[currentIndex + 1].current?.focus();
|
|
61
|
-
setFocusIndex(currentIndex + 1);
|
|
62
|
-
}
|
|
63
|
-
setTabbable(false);
|
|
64
|
-
}
|
|
65
|
-
}, [focusIndex, handleBlockType, handleInlineStyleChange]);
|
|
66
|
-
useEffect(() => {
|
|
67
|
-
if (focusIndex === null) {
|
|
68
|
-
setTabbable(true);
|
|
69
|
-
}
|
|
70
|
-
}, [focusIndex]);
|
|
71
|
-
useEffect(() => {
|
|
72
|
-
if (!canFocus) {
|
|
73
|
-
setFocusIndex(null);
|
|
74
|
-
}
|
|
75
|
-
}, [canFocus]);
|
|
76
|
-
const isTabbable = index => {
|
|
77
|
-
if (!controlRefs.current[index] || !controlRefs.current[index].current) {
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
return controlRefs.current[index].current === document.activeElement;
|
|
81
|
-
};
|
|
82
|
-
return /*#__PURE__*/React.createElement(StyledToolbar, {
|
|
83
|
-
"data-component": "text-editor-toolbar"
|
|
84
|
-
}, /*#__PURE__*/React.createElement(StyledEditorStyleControls, null, /*#__PURE__*/React.createElement(Tooltip, {
|
|
85
|
-
isVisible: activeTooltip === "Bold",
|
|
86
|
-
message: tooltipMessages.bold(),
|
|
87
|
-
position: "top"
|
|
88
|
-
}, /*#__PURE__*/React.createElement(ToolbarButton, {
|
|
89
|
-
ariaLabel: ariaLabels.bold(),
|
|
90
|
-
onKeyDown: ev => handleKeyDown(ev, BOLD),
|
|
91
|
-
onMouseDown: ev => handleInlineStyleChange(ev, BOLD),
|
|
92
|
-
activated: activeControls.BOLD,
|
|
93
|
-
ref: controlRefs.current[0],
|
|
94
|
-
tabbable: tabbable,
|
|
95
|
-
onMouseOver: () => setActiveTooltip("Bold"),
|
|
96
|
-
onMouseLeave: () => setActiveTooltip(""),
|
|
97
|
-
onFocus: () => setActiveTooltip("Bold"),
|
|
98
|
-
onBlur: () => setActiveTooltip("")
|
|
99
|
-
}, /*#__PURE__*/React.createElement(Icon, {
|
|
100
|
-
color: activeControls[BOLD] ? "var(--colorsActionMinorYang100)" : undefined,
|
|
101
|
-
type: "bold"
|
|
102
|
-
}))), /*#__PURE__*/React.createElement(Tooltip, {
|
|
103
|
-
isVisible: activeTooltip === "Italic",
|
|
104
|
-
message: tooltipMessages.italic(),
|
|
105
|
-
position: "top"
|
|
106
|
-
}, /*#__PURE__*/React.createElement(ToolbarButton, {
|
|
107
|
-
ariaLabel: ariaLabels.italic(),
|
|
108
|
-
onKeyDown: ev => handleKeyDown(ev, ITALIC),
|
|
109
|
-
onMouseDown: ev => handleInlineStyleChange(ev, ITALIC),
|
|
110
|
-
activated: activeControls.ITALIC,
|
|
111
|
-
ref: controlRefs.current[1],
|
|
112
|
-
tabbable: isTabbable(1),
|
|
113
|
-
onMouseOver: () => setActiveTooltip("Italic"),
|
|
114
|
-
onMouseLeave: () => setActiveTooltip(""),
|
|
115
|
-
onFocus: () => setActiveTooltip("Italic"),
|
|
116
|
-
onBlur: () => setActiveTooltip("")
|
|
117
|
-
}, /*#__PURE__*/React.createElement(Icon, {
|
|
118
|
-
color: activeControls[ITALIC] ? "var(--colorsActionMinorYang100)" : undefined,
|
|
119
|
-
type: "italic"
|
|
120
|
-
}))), /*#__PURE__*/React.createElement(Tooltip, {
|
|
121
|
-
isVisible: activeTooltip === "Bulleted List",
|
|
122
|
-
message: tooltipMessages.bulletList(),
|
|
123
|
-
position: "top"
|
|
124
|
-
}, /*#__PURE__*/React.createElement(ToolbarButton, {
|
|
125
|
-
ariaLabel: ariaLabels.bulletList(),
|
|
126
|
-
onKeyDown: ev => handleKeyDown(ev, UNORDERED_LIST),
|
|
127
|
-
onMouseDown: ev => handleBlockType(ev, UNORDERED_LIST),
|
|
128
|
-
activated: activeControls[UNORDERED_LIST],
|
|
129
|
-
ref: controlRefs.current[2],
|
|
130
|
-
tabbable: isTabbable(2),
|
|
131
|
-
onMouseOver: () => setActiveTooltip("Bulleted List"),
|
|
132
|
-
onMouseLeave: () => setActiveTooltip(""),
|
|
133
|
-
onFocus: () => setActiveTooltip("Bulleted List"),
|
|
134
|
-
onBlur: () => setActiveTooltip("")
|
|
135
|
-
}, /*#__PURE__*/React.createElement(Icon, {
|
|
136
|
-
color: activeControls[UNORDERED_LIST] ? "var(--colorsActionMinorYang100)" : undefined,
|
|
137
|
-
type: "bullet_list_dotted"
|
|
138
|
-
}))), /*#__PURE__*/React.createElement(Tooltip, {
|
|
139
|
-
isVisible: activeTooltip === "Numbered List",
|
|
140
|
-
message: tooltipMessages.numberList(),
|
|
141
|
-
position: "top"
|
|
142
|
-
}, /*#__PURE__*/React.createElement(ToolbarButton, {
|
|
143
|
-
ariaLabel: ariaLabels.numberList(),
|
|
144
|
-
onKeyDown: ev => handleKeyDown(ev, ORDERED_LIST),
|
|
145
|
-
onMouseDown: ev => handleBlockType(ev, ORDERED_LIST),
|
|
146
|
-
activated: activeControls[ORDERED_LIST],
|
|
147
|
-
ref: controlRefs.current[3],
|
|
148
|
-
tabbable: isTabbable(3),
|
|
149
|
-
onMouseOver: () => setActiveTooltip("Numbered List"),
|
|
150
|
-
onMouseLeave: () => setActiveTooltip(""),
|
|
151
|
-
onFocus: () => setActiveTooltip("Numbered List"),
|
|
152
|
-
onBlur: () => setActiveTooltip("")
|
|
153
|
-
}, /*#__PURE__*/React.createElement(Icon, {
|
|
154
|
-
color: activeControls[ORDERED_LIST] ? "var(--colorsActionMinorYang100)" : undefined,
|
|
155
|
-
type: "bullet_list_numbers"
|
|
156
|
-
})))), toolbarElements && /*#__PURE__*/React.createElement(StyledEditorActionControls, null, toolbarElements));
|
|
157
|
-
};
|
|
158
|
-
export default Toolbar;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
declare const StyledToolbar: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
2
|
-
declare const StyledEditorStyleControls: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
3
|
-
declare const StyledEditorActionControls: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
4
|
-
export { StyledToolbar, StyledEditorActionControls, StyledEditorStyleControls };
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import styled from "styled-components";
|
|
2
|
-
const StyledToolbar = styled.div`
|
|
3
|
-
display: inline-flex;
|
|
4
|
-
justify-content: space-between;
|
|
5
|
-
flex-flow: row wrap;
|
|
6
|
-
gap: 8px;
|
|
7
|
-
padding: 12px;
|
|
8
|
-
height: fit-content;
|
|
9
|
-
width: 100%;
|
|
10
|
-
box-sizing: border-box;
|
|
11
|
-
border: none;
|
|
12
|
-
border-top: 1px solid var(--colorsUtilityMajor200);
|
|
13
|
-
background-color: var(--colorsUtilityMajor025);
|
|
14
|
-
user-select: none;
|
|
15
|
-
z-index: 10;
|
|
16
|
-
`;
|
|
17
|
-
const StyledEditorStyleControls = styled.div`
|
|
18
|
-
display: inline-flex;
|
|
19
|
-
gap: 8px;
|
|
20
|
-
`;
|
|
21
|
-
const StyledEditorActionControls = styled.div`
|
|
22
|
-
flex-grow: 1;
|
|
23
|
-
display: inline-flex;
|
|
24
|
-
justify-content: flex-end;
|
|
25
|
-
flex-wrap: wrap;
|
|
26
|
-
gap: var(--spacing200);
|
|
27
|
-
`;
|
|
28
|
-
export { StyledToolbar, StyledEditorActionControls, StyledEditorStyleControls };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { computeBlockType, getContent, getContentInfo, getDecoratedValue, getSelection, getSelectionInfo, getSelectedLength, moveSelectionToEnd, resetBlockType, isASCIIChar, replaceText, hasBlockStyle, hasInlineStyle, blockStyleFn, } from "./utils";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { computeBlockType, getContent, getContentInfo, getDecoratedValue, getSelection, getSelectionInfo, getSelectedLength, moveSelectionToEnd, resetBlockType, isASCIIChar, replaceText, hasBlockStyle, hasInlineStyle, blockStyleFn } from "./utils";
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { EditorState, ContentBlock, DraftInlineStyle, ContentState } from "draft-js";
|
|
2
|
-
import { BlockType, InlineStyleType } from "../../types";
|
|
3
|
-
export declare const computeBlockType: (char: string, type: string) => "unordered-list-item" | "ordered-list-item" | "unstyled";
|
|
4
|
-
export declare const resetBlockType: (value: EditorState, newType?: BlockType | "unstyled") => EditorState;
|
|
5
|
-
export declare function blockStyleFn(block: ContentBlock): "" | "text-editor-block-unordered" | "text-editor-block-ordered";
|
|
6
|
-
export declare const getDecoratedValue: (value: EditorState) => EditorState;
|
|
7
|
-
export declare const getContent: (value: EditorState) => ContentState;
|
|
8
|
-
export declare const getSelection: (value: EditorState) => Draft.Model.ImmutableData.SelectionState;
|
|
9
|
-
export declare const getContentInfo: (value: EditorState) => {
|
|
10
|
-
content: ContentState;
|
|
11
|
-
currentBlock: ContentBlock;
|
|
12
|
-
blockType: string;
|
|
13
|
-
blockLength: number;
|
|
14
|
-
blockText: string;
|
|
15
|
-
blockMap: Draft.Model.ImmutableData.BlockMap;
|
|
16
|
-
};
|
|
17
|
-
export declare const getSelectionInfo: (value: EditorState) => {
|
|
18
|
-
selection: Draft.Model.ImmutableData.SelectionState;
|
|
19
|
-
startKey: string;
|
|
20
|
-
endKey: string;
|
|
21
|
-
startOffset: number;
|
|
22
|
-
endOffset: number;
|
|
23
|
-
};
|
|
24
|
-
export declare const moveSelectionToEnd: (value: EditorState) => EditorState;
|
|
25
|
-
export declare const getSelectedLength: (value: EditorState) => number;
|
|
26
|
-
export declare function hasBlockStyle(value: EditorState, type: BlockType): boolean;
|
|
27
|
-
export declare function hasInlineStyle(value: EditorState, style: InlineStyleType): boolean;
|
|
28
|
-
export declare function isASCIIChar(str: string): boolean;
|
|
29
|
-
export declare function replaceText(editorState: EditorState, text: string, inlineStyle: DraftInlineStyle): EditorState;
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import { EditorState, Modifier } from "draft-js";
|
|
2
|
-
import decorators from "../decorators";
|
|
3
|
-
import { ORDERED_LIST, UNORDERED_LIST } from "../../types";
|
|
4
|
-
export const computeBlockType = (char, type) => {
|
|
5
|
-
if (char === "." && type !== ORDERED_LIST) {
|
|
6
|
-
return ORDERED_LIST;
|
|
7
|
-
}
|
|
8
|
-
if (char === "*" && type !== UNORDERED_LIST) {
|
|
9
|
-
return UNORDERED_LIST;
|
|
10
|
-
}
|
|
11
|
-
return "unstyled";
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
/*
|
|
15
|
-
Returns default block-level metadata for various block type. Empty object otherwise.
|
|
16
|
-
*/
|
|
17
|
-
const getDefaultBlockData = (blockType, initialData = {}) => {
|
|
18
|
-
switch (blockType) {
|
|
19
|
-
case ORDERED_LIST:
|
|
20
|
-
return {};
|
|
21
|
-
case UNORDERED_LIST:
|
|
22
|
-
return {};
|
|
23
|
-
default:
|
|
24
|
-
return initialData;
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/*
|
|
29
|
-
Changes the block type of the current block.
|
|
30
|
-
*/
|
|
31
|
-
export const resetBlockType = (value, newType = "unstyled") => {
|
|
32
|
-
const contentState = value.getCurrentContent();
|
|
33
|
-
const selectionState = value.getSelection();
|
|
34
|
-
const key = selectionState.getStartKey();
|
|
35
|
-
const blockMap = contentState.getBlockMap();
|
|
36
|
-
const block = blockMap.get(key);
|
|
37
|
-
const newBlock = block.merge({
|
|
38
|
-
text: "",
|
|
39
|
-
type: newType,
|
|
40
|
-
data: getDefaultBlockData(newType)
|
|
41
|
-
});
|
|
42
|
-
const newContentState = contentState.merge({
|
|
43
|
-
blockMap: blockMap.set(key, newBlock),
|
|
44
|
-
selectionAfter: selectionState.merge({
|
|
45
|
-
anchorOffset: 0,
|
|
46
|
-
focusOffset: 0
|
|
47
|
-
})
|
|
48
|
-
});
|
|
49
|
-
return EditorState.push(value, newContentState, "change-block-type");
|
|
50
|
-
};
|
|
51
|
-
export function blockStyleFn(block) {
|
|
52
|
-
switch (block.getType()) {
|
|
53
|
-
case "unordered-list-item":
|
|
54
|
-
return "text-editor-block-unordered";
|
|
55
|
-
case "ordered-list-item":
|
|
56
|
-
return "text-editor-block-ordered";
|
|
57
|
-
default:
|
|
58
|
-
return "";
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/*
|
|
63
|
-
Return mutated editorState with decorators added
|
|
64
|
-
*/
|
|
65
|
-
export const getDecoratedValue = value => EditorState.set(value, {
|
|
66
|
-
decorator: decorators
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
/*
|
|
70
|
-
Get the current Content State
|
|
71
|
-
*/
|
|
72
|
-
export const getContent = value => value.getCurrentContent();
|
|
73
|
-
|
|
74
|
-
/*
|
|
75
|
-
Get the current selection State
|
|
76
|
-
*/
|
|
77
|
-
export const getSelection = value => value.getSelection();
|
|
78
|
-
|
|
79
|
-
/*
|
|
80
|
-
Get the current Content and Block information
|
|
81
|
-
*/
|
|
82
|
-
export const getContentInfo = value => {
|
|
83
|
-
const content = getContent(value);
|
|
84
|
-
const currentBlock = content.getBlockForKey(getSelection(value).getStartKey());
|
|
85
|
-
const blockType = currentBlock.getType();
|
|
86
|
-
const blockLength = currentBlock.getLength();
|
|
87
|
-
const blockText = currentBlock.getText();
|
|
88
|
-
const blockMap = content.getBlockMap();
|
|
89
|
-
return {
|
|
90
|
-
content,
|
|
91
|
-
currentBlock,
|
|
92
|
-
blockType,
|
|
93
|
-
blockLength,
|
|
94
|
-
blockText,
|
|
95
|
-
blockMap
|
|
96
|
-
};
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
/*
|
|
100
|
-
Get the current Selection information
|
|
101
|
-
*/
|
|
102
|
-
export const getSelectionInfo = value => {
|
|
103
|
-
const selection = getSelection(value);
|
|
104
|
-
const startKey = selection.getStartKey();
|
|
105
|
-
const endKey = selection.getEndKey();
|
|
106
|
-
const startOffset = selection.getStartOffset();
|
|
107
|
-
const endOffset = selection.getEndOffset();
|
|
108
|
-
return {
|
|
109
|
-
selection,
|
|
110
|
-
startKey,
|
|
111
|
-
endKey,
|
|
112
|
-
startOffset,
|
|
113
|
-
endOffset
|
|
114
|
-
};
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
/*
|
|
118
|
-
Move cursor to end of Content
|
|
119
|
-
*/
|
|
120
|
-
export const moveSelectionToEnd = value => EditorState.forceSelection(value, getContent(value).getSelectionAfter());
|
|
121
|
-
|
|
122
|
-
/*
|
|
123
|
-
Returns the current Selection length
|
|
124
|
-
*/
|
|
125
|
-
export const getSelectedLength = value => {
|
|
126
|
-
const selection = getSelection(value);
|
|
127
|
-
let length = 0;
|
|
128
|
-
if (!selection.isCollapsed()) {
|
|
129
|
-
const {
|
|
130
|
-
startKey,
|
|
131
|
-
endKey,
|
|
132
|
-
startOffset,
|
|
133
|
-
endOffset
|
|
134
|
-
} = getSelectionInfo(value);
|
|
135
|
-
const {
|
|
136
|
-
content,
|
|
137
|
-
blockLength
|
|
138
|
-
} = getContentInfo(value);
|
|
139
|
-
const startLength = blockLength - startOffset;
|
|
140
|
-
const keyAfterEnd = content.getKeyAfter(endKey);
|
|
141
|
-
if (startKey === endKey) {
|
|
142
|
-
length += endOffset - startOffset;
|
|
143
|
-
} else {
|
|
144
|
-
let currentKey = startKey;
|
|
145
|
-
while (currentKey && currentKey !== keyAfterEnd) {
|
|
146
|
-
if (currentKey === startKey) {
|
|
147
|
-
length += startLength + 1;
|
|
148
|
-
} else if (currentKey === endKey) {
|
|
149
|
-
length += endOffset;
|
|
150
|
-
} else {
|
|
151
|
-
length += content.getBlockForKey(currentKey).getLength() + 1;
|
|
152
|
-
}
|
|
153
|
-
currentKey = content.getKeyAfter(currentKey);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return length;
|
|
158
|
-
};
|
|
159
|
-
export function hasBlockStyle(value, type) {
|
|
160
|
-
const {
|
|
161
|
-
blockType
|
|
162
|
-
} = getContentInfo(value);
|
|
163
|
-
return blockType === type;
|
|
164
|
-
}
|
|
165
|
-
export function hasInlineStyle(value, style) {
|
|
166
|
-
return value.getCurrentInlineStyle().has(style);
|
|
167
|
-
}
|
|
168
|
-
export function isASCIIChar(str) {
|
|
169
|
-
return /^\S+$/.test(str);
|
|
170
|
-
}
|
|
171
|
-
export function replaceText(editorState, text, inlineStyle) {
|
|
172
|
-
const contentState = Modifier.replaceText(editorState.getCurrentContent(), editorState.getSelection(), text, inlineStyle);
|
|
173
|
-
return EditorState.push(editorState, contentState, "insert-characters");
|
|
174
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export declare const BOLD = "BOLD";
|
|
2
|
-
export declare const ITALIC = "ITALIC";
|
|
3
|
-
export declare const UNORDERED_LIST = "unordered-list-item";
|
|
4
|
-
export declare const ORDERED_LIST = "ordered-list-item";
|
|
5
|
-
export declare type InlineStyleType = typeof BOLD | typeof ITALIC;
|
|
6
|
-
export declare type BlockType = typeof UNORDERED_LIST | typeof ORDERED_LIST;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _draftJs = require("draft-js");
|
|
8
|
-
var _linkDecorator = _interopRequireDefault(require("./link-decorator"));
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
var _default = exports.default = new _draftJs.CompositeDecorator([_linkDecorator.default]);
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { ContentBlock } from "draft-js";
|
|
3
|
-
declare type StrategyCallback = (start: number, end: number) => void;
|
|
4
|
-
declare const _default: {
|
|
5
|
-
strategy: (contentBlock: ContentBlock, callback: StrategyCallback) => void;
|
|
6
|
-
component: ({ children, contentState, entityKey, ...rest }: import("../editor-link").EditorLinkProps) => import("react").JSX.Element;
|
|
7
|
-
};
|
|
8
|
-
export default _default;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _editorLink = _interopRequireDefault(require("../editor-link"));
|
|
8
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
-
function findWithRegex(regex, contentBlock, callback) {
|
|
10
|
-
const text = contentBlock.getText();
|
|
11
|
-
let matchArr;
|
|
12
|
-
let start = 0;
|
|
13
|
-
let candidates = [];
|
|
14
|
-
text.split(" ").forEach(chars => {
|
|
15
|
-
candidates = [...candidates, [...chars]];
|
|
16
|
-
});
|
|
17
|
-
candidates.forEach(candidate => {
|
|
18
|
-
// eslint-disable-next-line no-cond-assign
|
|
19
|
-
while ((matchArr = regex.exec(candidate.join(""))) !== null) {
|
|
20
|
-
start += matchArr.index;
|
|
21
|
-
callback(start, start + candidate.length);
|
|
22
|
-
}
|
|
23
|
-
start += candidate.length + 1;
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
const linkStrategy = (contentBlock, callback) => {
|
|
27
|
-
const combineRegex = (...regex) => new RegExp(regex.map(r => r.source).join(""), "g");
|
|
28
|
-
const urlRegex = combineRegex(/\b/, /(http:\/\/|https:\/\/|www\.)/,
|
|
29
|
-
// prefix
|
|
30
|
-
/([\w-]+:([\w-]+@))?/,
|
|
31
|
-
// userinfo
|
|
32
|
-
/([\w-]+\.)+\w+/,
|
|
33
|
-
// domain
|
|
34
|
-
/(:\d+)?/,
|
|
35
|
-
// port
|
|
36
|
-
/(\/[\w#!:.?+=&%@!-/]+)?/,
|
|
37
|
-
// paths, queries, fragments
|
|
38
|
-
/\b/);
|
|
39
|
-
findWithRegex(urlRegex, contentBlock, callback);
|
|
40
|
-
};
|
|
41
|
-
var _default = exports.default = {
|
|
42
|
-
strategy: linkStrategy,
|
|
43
|
-
component: _editorLink.default
|
|
44
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { ContentState } from "draft-js";
|
|
3
|
-
export interface EditorLinkProps {
|
|
4
|
-
children: React.ReactElement[];
|
|
5
|
-
contentState?: ContentState;
|
|
6
|
-
entityKey?: string;
|
|
7
|
-
}
|
|
8
|
-
declare const EditorLink: ({ children, contentState, entityKey, ...rest }: EditorLinkProps) => React.JSX.Element;
|
|
9
|
-
export default EditorLink;
|