@opentiny/fluent-editor 4.0.0-alpha.7 → 4.0.0-alpha.8
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/LICENSE +21 -0
- package/dist/README.md +88 -0
- package/dist/es/attributors/line-height.es.js.map +1 -0
- package/dist/es/config/base64-image.es.js.map +1 -0
- package/dist/es/config/editor.config.es.js.map +1 -0
- package/dist/es/config/editor.utils.es.js.map +1 -0
- package/dist/es/config/i18n/en-us.es.js.map +1 -0
- package/dist/es/config/i18n/zh-cn.es.js.map +1 -0
- package/dist/es/config/index.es.js.map +1 -0
- package/dist/es/core/fluent-editor.es.js.map +1 -0
- package/dist/es/fluent-editor.es.js.map +1 -0
- package/dist/es/formats/emoji.es.js.map +1 -0
- package/dist/es/formats/soft-break.es.js.map +1 -0
- package/dist/es/formats/strike.es.js.map +1 -0
- package/dist/es/formats/video.es.js.map +1 -0
- package/dist/es/modules/ai/constants.es.js.map +1 -0
- package/dist/es/modules/ai/icons.es.js.map +1 -0
- package/dist/es/modules/ai/index.es.js.map +1 -0
- package/dist/es/modules/collaborative-editing/awareness/awareness.es.js +93 -0
- package/dist/es/modules/collaborative-editing/awareness/awareness.es.js.map +1 -0
- package/dist/es/modules/collaborative-editing/awareness/y-indexeddb.es.js +12 -0
- package/dist/es/modules/collaborative-editing/awareness/y-indexeddb.es.js.map +1 -0
- package/dist/es/modules/collaborative-editing/collaborative-editing.es.js +105 -0
- package/dist/es/modules/collaborative-editing/collaborative-editing.es.js.map +1 -0
- package/dist/es/modules/collaborative-editing/module.es.js.map +1 -0
- package/dist/es/modules/collaborative-editing/provider/providerRegistry.es.js.map +1 -0
- package/dist/es/modules/collaborative-editing/provider/webrtc.es.js +99 -0
- package/dist/es/modules/collaborative-editing/provider/webrtc.es.js.map +1 -0
- package/dist/es/modules/collaborative-editing/provider/websocket.es.js +111 -0
- package/dist/es/modules/collaborative-editing/provider/websocket.es.js.map +1 -0
- package/dist/es/modules/counter.es.js.map +1 -0
- package/dist/es/modules/custom-clipboard.es.js.map +1 -0
- package/dist/es/modules/custom-image/actions/action.es.js.map +1 -0
- package/dist/es/modules/custom-image/actions/custom-resize-action.es.js.map +1 -0
- package/dist/es/modules/custom-image/actions/delete-action.es.js.map +1 -0
- package/dist/es/modules/custom-image/blot-formatter.es.js.map +1 -0
- package/dist/es/modules/custom-image/image.es.js.map +1 -0
- package/dist/es/modules/custom-image/options.es.js.map +1 -0
- package/dist/es/modules/custom-image/specs/blot-spec.es.js.map +1 -0
- package/dist/es/modules/custom-image/specs/custom-image-spec.es.js.map +1 -0
- package/dist/es/modules/custom-image/specs/image-spec.es.js.map +1 -0
- package/dist/es/modules/divider.es.js.map +1 -0
- package/dist/es/modules/emoji.es.js +167 -0
- package/dist/es/modules/emoji.es.js.map +1 -0
- package/dist/es/modules/file/formats/file.es.js.map +1 -0
- package/dist/es/modules/file/modules/file-bar.es.js.map +1 -0
- package/dist/es/modules/file/modules/file-module.es.js.map +1 -0
- package/dist/es/modules/link/formats/link.es.js.map +1 -0
- package/dist/es/modules/link/modules/tooltip.es.js.map +1 -0
- package/dist/es/modules/mathlive/formats.es.js.map +1 -0
- package/dist/es/modules/mathlive/tooltip.es.js.map +1 -0
- package/dist/es/modules/mention/constants.es.js.map +1 -0
- package/dist/es/modules/mention/mention-link.es.js.map +1 -0
- package/dist/es/modules/mention/mention.es.js.map +1 -0
- package/dist/es/modules/syntax.es.js.map +1 -0
- package/dist/es/modules/toolbar/better-picker.es.js.map +1 -0
- package/dist/es/themes/snow.es.js.map +1 -0
- package/dist/es/tools/screenshot.es.js.map +1 -0
- package/dist/es/ui/icons.config.es.js.map +1 -0
- package/dist/es/ui/icons.es.js.map +1 -0
- package/dist/es/utils/debounce.es.js.map +1 -0
- package/dist/es/utils/method.es.js.map +1 -0
- package/dist/lib/attributors/line-height.cjs.js.map +1 -0
- package/dist/lib/config/base64-image.cjs.js.map +1 -0
- package/dist/lib/config/editor.config.cjs.js.map +1 -0
- package/dist/lib/config/editor.utils.cjs.js.map +1 -0
- package/dist/lib/config/i18n/en-us.cjs.js.map +1 -0
- package/dist/lib/config/i18n/zh-cn.cjs.js.map +1 -0
- package/dist/lib/config/index.cjs.js.map +1 -0
- package/dist/lib/core/fluent-editor.cjs.js.map +1 -0
- package/dist/lib/fluent-editor.cjs.js.map +1 -0
- package/dist/lib/formats/emoji.cjs.js.map +1 -0
- package/dist/lib/formats/soft-break.cjs.js.map +1 -0
- package/dist/lib/formats/strike.cjs.js.map +1 -0
- package/dist/lib/formats/video.cjs.js.map +1 -0
- package/dist/lib/modules/ai/constants.cjs.js.map +1 -0
- package/dist/lib/modules/ai/icons.cjs.js.map +1 -0
- package/dist/lib/modules/ai/index.cjs.js.map +1 -0
- package/dist/lib/modules/collaborative-editing/awareness/awareness.cjs.js +110 -0
- package/dist/lib/modules/collaborative-editing/awareness/awareness.cjs.js.map +1 -0
- package/dist/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js +12 -0
- package/dist/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js.map +1 -0
- package/dist/lib/modules/collaborative-editing/collaborative-editing.cjs.js +122 -0
- package/dist/lib/modules/collaborative-editing/collaborative-editing.cjs.js.map +1 -0
- package/dist/lib/modules/collaborative-editing/module.cjs.js.map +1 -0
- package/dist/lib/modules/collaborative-editing/provider/providerRegistry.cjs.js.map +1 -0
- package/dist/lib/modules/collaborative-editing/provider/webrtc.cjs.js +116 -0
- package/dist/lib/modules/collaborative-editing/provider/webrtc.cjs.js.map +1 -0
- package/dist/lib/modules/collaborative-editing/provider/websocket.cjs.js +128 -0
- package/dist/lib/modules/collaborative-editing/provider/websocket.cjs.js.map +1 -0
- package/dist/lib/modules/counter.cjs.js.map +1 -0
- package/dist/lib/modules/custom-clipboard.cjs.js.map +1 -0
- package/dist/lib/modules/custom-image/actions/action.cjs.js.map +1 -0
- package/dist/lib/modules/custom-image/actions/custom-resize-action.cjs.js.map +1 -0
- package/dist/lib/modules/custom-image/actions/delete-action.cjs.js.map +1 -0
- package/dist/lib/modules/custom-image/blot-formatter.cjs.js.map +1 -0
- package/dist/lib/modules/custom-image/image.cjs.js.map +1 -0
- package/dist/lib/modules/custom-image/options.cjs.js.map +1 -0
- package/dist/lib/modules/custom-image/specs/blot-spec.cjs.js.map +1 -0
- package/dist/lib/modules/custom-image/specs/custom-image-spec.cjs.js.map +1 -0
- package/dist/lib/modules/custom-image/specs/image-spec.cjs.js.map +1 -0
- package/dist/lib/modules/divider.cjs.js.map +1 -0
- package/dist/lib/modules/emoji.cjs.js +167 -0
- package/dist/lib/modules/emoji.cjs.js.map +1 -0
- package/dist/lib/modules/file/formats/file.cjs.js.map +1 -0
- package/dist/lib/modules/file/modules/file-bar.cjs.js.map +1 -0
- package/dist/lib/modules/file/modules/file-module.cjs.js.map +1 -0
- package/dist/lib/modules/link/formats/link.cjs.js.map +1 -0
- package/dist/lib/modules/link/modules/tooltip.cjs.js.map +1 -0
- package/dist/lib/modules/mathlive/formats.cjs.js.map +1 -0
- package/dist/lib/modules/mathlive/tooltip.cjs.js.map +1 -0
- package/dist/lib/modules/mention/constants.cjs.js.map +1 -0
- package/dist/lib/modules/mention/mention-link.cjs.js.map +1 -0
- package/dist/lib/modules/mention/mention.cjs.js.map +1 -0
- package/dist/lib/modules/syntax.cjs.js.map +1 -0
- package/dist/lib/modules/toolbar/better-picker.cjs.js.map +1 -0
- package/dist/lib/themes/snow.cjs.js.map +1 -0
- package/dist/lib/tools/screenshot.cjs.js.map +1 -0
- package/dist/lib/ui/icons.cjs.js.map +1 -0
- package/dist/lib/ui/icons.config.cjs.js.map +1 -0
- package/dist/lib/utils/debounce.cjs.js.map +1 -0
- package/dist/lib/utils/method.cjs.js.map +1 -0
- package/dist/package.json +67 -0
- package/dist/types/attributors/font-size.d.ts +1 -0
- package/dist/types/attributors/font-style.d.ts +1 -0
- package/dist/types/attributors/index.d.ts +4 -0
- package/dist/types/attributors/line-height.d.ts +1 -0
- package/dist/types/attributors/text-indent.d.ts +1 -0
- package/dist/types/config/base64-image.d.ts +2 -0
- package/dist/types/config/editor.config.d.ts +11 -0
- package/dist/types/config/editor.utils.d.ts +40 -0
- package/dist/types/config/i18n/en-us.d.ts +123 -0
- package/dist/types/config/i18n/zh-cn.d.ts +123 -0
- package/dist/types/config/index.d.ts +7 -0
- package/dist/types/config/types/editor-config.interface.d.ts +14 -0
- package/dist/types/config/types/editor-modules.interface.d.ts +41 -0
- package/dist/types/config/types/index.d.ts +3 -0
- package/dist/types/config/types/type.d.ts +2 -0
- package/dist/types/core/fluent-editor.d.ts +13 -0
- package/dist/types/fluent-editor.d.ts +2 -0
- package/dist/types/formats/emoji.d.ts +8 -0
- package/dist/types/formats/index.d.ts +4 -0
- package/dist/types/formats/soft-break.d.ts +12 -0
- package/dist/types/formats/strike.d.ts +8 -0
- package/dist/types/formats/video.d.ts +13 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/modules/ai/constants.d.ts +30 -0
- package/dist/types/modules/ai/icons.d.ts +21 -0
- package/dist/types/modules/ai/index.d.ts +96 -0
- package/dist/types/modules/ai/types.d.ts +16 -0
- package/dist/types/modules/collaborative-editing/awareness/awareness.d.ts +28 -0
- package/dist/types/modules/collaborative-editing/awareness/index.d.ts +2 -0
- package/dist/types/modules/collaborative-editing/awareness/y-indexeddb.d.ts +2 -0
- package/dist/types/modules/collaborative-editing/collaborative-editing.d.ts +24 -0
- package/dist/types/modules/collaborative-editing/index.d.ts +2 -0
- package/dist/types/modules/collaborative-editing/module.d.ts +11 -0
- package/dist/types/modules/collaborative-editing/provider/index.d.ts +3 -0
- package/dist/types/modules/collaborative-editing/provider/providerRegistry.d.ts +25 -0
- package/dist/types/modules/collaborative-editing/provider/webrtc.d.ts +36 -0
- package/dist/types/modules/collaborative-editing/provider/websocket.d.ts +40 -0
- package/dist/types/modules/collaborative-editing/types.d.ts +37 -0
- package/dist/types/modules/counter.d.ts +23 -0
- package/dist/types/modules/custom-clipboard.d.ts +25 -0
- package/dist/types/modules/custom-image/actions/action.d.ts +8 -0
- package/dist/types/modules/custom-image/actions/custom-resize-action.d.ts +23 -0
- package/dist/types/modules/custom-image/actions/delete-action.d.ts +6 -0
- package/dist/types/modules/custom-image/actions/image-toolbar-buttons.d.ts +16 -0
- package/dist/types/modules/custom-image/actions/index.d.ts +6 -0
- package/dist/types/modules/custom-image/actions/toolbar-action.d.ts +11 -0
- package/dist/types/modules/custom-image/actions/toolbar.d.ts +19 -0
- package/dist/types/modules/custom-image/blot-formatter.d.ts +23 -0
- package/dist/types/modules/custom-image/image.d.ts +28 -0
- package/dist/types/modules/custom-image/index.d.ts +4 -0
- package/dist/types/modules/custom-image/options.d.ts +47 -0
- package/dist/types/modules/custom-image/specs/blot-spec.d.ts +12 -0
- package/dist/types/modules/custom-image/specs/custom-image-spec.d.ts +17 -0
- package/dist/types/modules/custom-image/specs/image-spec.d.ts +8 -0
- package/dist/types/modules/custom-image/specs/index.d.ts +3 -0
- package/dist/types/modules/custom-uploader.d.ts +40 -0
- package/dist/types/modules/divider.d.ts +8 -0
- package/dist/types/modules/emoji.d.ts +39 -0
- package/dist/types/modules/file/formats/file.d.ts +18 -0
- package/dist/types/modules/file/index.d.ts +3 -0
- package/dist/types/modules/file/modules/file-bar.d.ts +14 -0
- package/dist/types/modules/file/modules/file-module.d.ts +9 -0
- package/dist/types/modules/i18n.d.ts +14 -0
- package/dist/types/modules/index.d.ts +16 -0
- package/dist/types/modules/link/formats/link.d.ts +15 -0
- package/dist/types/modules/link/index.d.ts +2 -0
- package/dist/types/modules/link/modules/tooltip.d.ts +27 -0
- package/dist/types/modules/mathlive/formats.d.ts +22 -0
- package/dist/types/modules/mathlive/index.d.ts +3 -0
- package/dist/types/modules/mathlive/module.d.ts +9 -0
- package/dist/types/modules/mathlive/tooltip.d.ts +18 -0
- package/dist/types/modules/mention/constants.d.ts +3 -0
- package/dist/types/modules/mention/index.d.ts +2 -0
- package/dist/types/modules/mention/mention-link.d.ts +16 -0
- package/dist/types/modules/mention/mention.d.ts +53 -0
- package/dist/types/modules/shortcut-key/index.d.ts +71 -0
- package/dist/types/modules/syntax.d.ts +13 -0
- package/dist/types/modules/table-up/index.d.ts +34 -0
- package/dist/types/modules/toolbar/better-picker.d.ts +15 -0
- package/dist/types/modules/toolbar/better-toolbar.d.ts +7 -0
- package/dist/types/modules/toolbar/index.d.ts +3 -0
- package/dist/types/modules/toolbar/toolbar-tip.d.ts +9 -0
- package/dist/types/themes/snow.d.ts +11 -0
- package/dist/types/tools/format-painter.d.ts +13 -0
- package/dist/types/tools/fullscreen.d.ts +6 -0
- package/dist/types/tools/screenshot.d.ts +19 -0
- package/dist/types/ui/icons.config.d.ts +38 -0
- package/dist/types/ui/icons.d.ts +6 -0
- package/dist/types/utils/debounce.d.ts +6 -0
- package/dist/types/utils/image.d.ts +1 -0
- package/dist/types/utils/is.d.ts +6 -0
- package/dist/types/utils/method.d.ts +6 -0
- package/dist/types/utils/scroll-lock.d.ts +6 -0
- package/package.json +67 -67
- package/scripts/pre-release.cjs +35 -0
- package/src/assets/ai.scss +451 -0
- package/src/assets/common/config.scss +4 -0
- package/src/assets/common.scss +132 -0
- package/src/assets/counter.scss +16 -0
- package/src/assets/custom-image.scss +19 -0
- package/src/assets/editor.scss +351 -0
- package/src/assets/fileBar.scss +107 -0
- package/src/assets/font.scss +18 -0
- package/src/assets/fullscreen.scss +50 -0
- package/src/assets/iconfont/iconfont.ttf +0 -0
- package/src/assets/iconfont/iconfont.woff +0 -0
- package/src/assets/iconfont/iconfont.woff2 +0 -0
- package/src/assets/imageBar.scss +98 -0
- package/src/assets/lineHeight.scss +15 -0
- package/src/assets/link.scss +120 -0
- package/src/assets/mathlive.scss +40 -0
- package/src/assets/mention.scss +48 -0
- package/src/assets/screenshot.scss +78 -0
- package/src/assets/size.scss +11 -0
- package/src/assets/style.scss +46 -0
- package/src/assets/svgs/align-center.svg +41 -0
- package/src/assets/svgs/align-justify.svg +8 -0
- package/src/assets/svgs/arrow-down.svg +6 -0
- package/src/assets/svgs/background-color.svg +7 -0
- package/src/assets/svgs/clean.svg +8 -0
- package/src/assets/svgs/code-block.svg +5 -0
- package/src/assets/svgs/code.svg +25 -0
- package/src/assets/svgs/color.svg +7 -0
- package/src/assets/svgs/direction-ltr.svg +8 -0
- package/src/assets/svgs/direction-rtl.svg +8 -0
- package/src/assets/svgs/divider.svg +4 -0
- package/src/assets/svgs/emoji.svg +53 -0
- package/src/assets/svgs/file.svg +12 -0
- package/src/assets/svgs/format-painter.svg +10 -0
- package/src/assets/svgs/formula.svg +6 -0
- package/src/assets/svgs/fullscreen.svg +43 -0
- package/src/assets/svgs/image.svg +17 -0
- package/src/assets/svgs/italic.svg +6 -0
- package/src/assets/svgs/link.svg +9 -0
- package/src/assets/svgs/list-bullet.svg +16 -0
- package/src/assets/svgs/list-ordered.svg +18 -0
- package/src/assets/svgs/list-task.svg +5 -0
- package/src/assets/svgs/redo.svg +8 -0
- package/src/assets/svgs/screenshot.svg +17 -0
- package/src/assets/svgs/script-sub.svg +15 -0
- package/src/assets/svgs/script-super.svg +15 -0
- package/src/assets/svgs/strike.svg +6 -0
- package/src/assets/svgs/underline.svg +13 -0
- package/src/assets/svgs/undo.svg +8 -0
- package/src/assets/svgs/video.svg +10 -0
- package/src/assets/tasklist.scss +76 -0
- package/src/assets/toolbar.scss +385 -0
- package/src/assets/variable.scss +9 -0
- package/src/assets/video.scss +5 -0
- package/src/attributors/font-size.ts +6 -0
- package/src/attributors/font-style.ts +6 -0
- package/src/attributors/index.ts +4 -0
- package/src/attributors/line-height.ts +6 -0
- package/src/attributors/text-indent.ts +6 -0
- package/src/config/base64-image.ts +5 -0
- package/src/config/editor.config.ts +86 -0
- package/src/config/editor.utils.ts +193 -0
- package/src/config/i18n/en-us.ts +138 -0
- package/src/config/i18n/zh-cn.ts +137 -0
- package/src/config/index.ts +44 -0
- package/src/config/types/editor-config.interface.ts +16 -0
- package/src/config/types/editor-modules.interface.ts +47 -0
- package/src/config/types/index.ts +3 -0
- package/src/config/types/type.ts +2 -0
- package/src/core/fluent-editor.ts +31 -0
- package/src/fluent-editor.ts +72 -0
- package/src/formats/emoji.ts +10 -0
- package/src/formats/index.ts +4 -0
- package/src/formats/soft-break.ts +27 -0
- package/src/formats/strike.ts +11 -0
- package/src/formats/video.ts +53 -0
- package/src/index.ts +9 -0
- package/src/modules/ai/constants.ts +43 -0
- package/src/modules/ai/icons.ts +333 -0
- package/src/modules/ai/index.ts +850 -0
- package/src/modules/ai/types.ts +18 -0
- package/src/modules/collaborative-editing/awareness/awareness.ts +141 -0
- package/src/modules/collaborative-editing/awareness/index.ts +2 -0
- package/src/modules/collaborative-editing/awareness/y-indexeddb.ts +12 -0
- package/src/modules/collaborative-editing/collaborative-editing.ts +115 -0
- package/src/modules/collaborative-editing/index.ts +2 -0
- package/src/modules/collaborative-editing/module.ts +32 -0
- package/src/modules/collaborative-editing/provider/index.ts +3 -0
- package/src/modules/collaborative-editing/provider/providerRegistry.ts +57 -0
- package/src/modules/collaborative-editing/provider/webrtc.ts +125 -0
- package/src/modules/collaborative-editing/provider/websocket.ts +142 -0
- package/src/modules/collaborative-editing/types.ts +44 -0
- package/src/modules/counter.ts +84 -0
- package/src/modules/custom-clipboard.ts +537 -0
- package/src/modules/custom-image/actions/action.ts +15 -0
- package/src/modules/custom-image/actions/custom-resize-action.ts +207 -0
- package/src/modules/custom-image/actions/delete-action.ts +32 -0
- package/src/modules/custom-image/actions/image-toolbar-buttons.ts +135 -0
- package/src/modules/custom-image/actions/index.ts +6 -0
- package/src/modules/custom-image/actions/toolbar-action.ts +32 -0
- package/src/modules/custom-image/actions/toolbar.ts +145 -0
- package/src/modules/custom-image/blot-formatter.ts +158 -0
- package/src/modules/custom-image/image.ts +132 -0
- package/src/modules/custom-image/index.ts +4 -0
- package/src/modules/custom-image/options.ts +139 -0
- package/src/modules/custom-image/specs/blot-spec.ts +30 -0
- package/src/modules/custom-image/specs/custom-image-spec.ts +131 -0
- package/src/modules/custom-image/specs/image-spec.ts +28 -0
- package/src/modules/custom-image/specs/index.ts +3 -0
- package/src/modules/custom-uploader.ts +101 -0
- package/src/modules/divider.ts +15 -0
- package/src/modules/emoji.ts +230 -0
- package/src/modules/file/formats/file.ts +61 -0
- package/src/modules/file/index.ts +3 -0
- package/src/modules/file/modules/file-bar.ts +146 -0
- package/src/modules/file/modules/file-module.ts +33 -0
- package/src/modules/i18n.ts +66 -0
- package/src/modules/index.ts +16 -0
- package/src/modules/link/formats/link.ts +43 -0
- package/src/modules/link/index.ts +2 -0
- package/src/modules/link/modules/tooltip.ts +341 -0
- package/src/modules/mathlive/formats.ts +39 -0
- package/src/modules/mathlive/index.ts +3 -0
- package/src/modules/mathlive/module.ts +37 -0
- package/src/modules/mathlive/tooltip.ts +87 -0
- package/src/modules/mention/constants.ts +3 -0
- package/src/modules/mention/index.ts +2 -0
- package/src/modules/mention/mention-link.ts +64 -0
- package/src/modules/mention/mention.ts +404 -0
- package/src/modules/shortcut-key/index.ts +237 -0
- package/src/modules/syntax.ts +35 -0
- package/src/modules/table-up/index.ts +83 -0
- package/src/modules/toolbar/better-picker.ts +67 -0
- package/src/modules/toolbar/better-toolbar.ts +176 -0
- package/src/modules/toolbar/index.ts +3 -0
- package/src/modules/toolbar/toolbar-tip.ts +142 -0
- package/src/themes/snow.ts +309 -0
- package/src/tools/format-painter.ts +85 -0
- package/src/tools/fullscreen.ts +66 -0
- package/src/tools/screenshot.ts +231 -0
- package/src/ui/icons.config.ts +361 -0
- package/src/ui/icons.ts +89 -0
- package/src/utils/debounce.ts +150 -0
- package/src/utils/image.ts +22 -0
- package/src/utils/is.ts +9 -0
- package/src/utils/method.ts +77 -0
- package/src/utils/scroll-lock.ts +52 -0
- package/tsconfig.json +25 -0
- package/vite.config.ts +83 -0
- package/README.md +0 -88
- package/es/_virtual/_commonjs-dynamic-modules.es.js +0 -7
- package/es/_virtual/_commonjs-dynamic-modules.es.js.map +0 -1
- package/es/_virtual/_commonjsHelpers.es.js +0 -42
- package/es/_virtual/_commonjsHelpers.es.js.map +0 -1
- package/es/_virtual/quill-cursors.es.js +0 -5
- package/es/_virtual/quill-cursors.es.js.map +0 -1
- package/es/_virtual/simplepeer.min.es.js +0 -5
- package/es/_virtual/simplepeer.min.es.js.map +0 -1
- package/es/attributors/line-height.es.js.map +0 -1
- package/es/config/base64-image.es.js.map +0 -1
- package/es/config/editor.config.es.js.map +0 -1
- package/es/config/editor.utils.es.js.map +0 -1
- package/es/config/i18n/en-us.es.js.map +0 -1
- package/es/config/i18n/zh-cn.es.js.map +0 -1
- package/es/config/index.es.js.map +0 -1
- package/es/core/fluent-editor.es.js.map +0 -1
- package/es/fluent-editor.es.js.map +0 -1
- package/es/formats/emoji.es.js.map +0 -1
- package/es/formats/soft-break.es.js.map +0 -1
- package/es/formats/strike.es.js.map +0 -1
- package/es/formats/video.es.js.map +0 -1
- package/es/modules/ai/constants.es.js.map +0 -1
- package/es/modules/ai/icons.es.js.map +0 -1
- package/es/modules/ai/index.es.js.map +0 -1
- package/es/modules/collaborative-editing/awareness/awareness.es.js +0 -93
- package/es/modules/collaborative-editing/awareness/awareness.es.js.map +0 -1
- package/es/modules/collaborative-editing/awareness/y-indexeddb.es.js +0 -12
- package/es/modules/collaborative-editing/awareness/y-indexeddb.es.js.map +0 -1
- package/es/modules/collaborative-editing/collaborative-editing.es.js +0 -105
- package/es/modules/collaborative-editing/collaborative-editing.es.js.map +0 -1
- package/es/modules/collaborative-editing/module.es.js.map +0 -1
- package/es/modules/collaborative-editing/provider/providerRegistry.es.js.map +0 -1
- package/es/modules/collaborative-editing/provider/webrtc.es.js +0 -99
- package/es/modules/collaborative-editing/provider/webrtc.es.js.map +0 -1
- package/es/modules/collaborative-editing/provider/websocket.es.js +0 -111
- package/es/modules/collaborative-editing/provider/websocket.es.js.map +0 -1
- package/es/modules/counter.es.js.map +0 -1
- package/es/modules/custom-clipboard.es.js.map +0 -1
- package/es/modules/custom-image/actions/action.es.js.map +0 -1
- package/es/modules/custom-image/actions/custom-resize-action.es.js.map +0 -1
- package/es/modules/custom-image/actions/delete-action.es.js.map +0 -1
- package/es/modules/custom-image/blot-formatter.es.js.map +0 -1
- package/es/modules/custom-image/image.es.js.map +0 -1
- package/es/modules/custom-image/options.es.js.map +0 -1
- package/es/modules/custom-image/specs/blot-spec.es.js.map +0 -1
- package/es/modules/custom-image/specs/custom-image-spec.es.js.map +0 -1
- package/es/modules/custom-image/specs/image-spec.es.js.map +0 -1
- package/es/modules/divider.es.js.map +0 -1
- package/es/modules/emoji.es.js +0 -163
- package/es/modules/emoji.es.js.map +0 -1
- package/es/modules/file/formats/file.es.js.map +0 -1
- package/es/modules/file/modules/file-bar.es.js.map +0 -1
- package/es/modules/file/modules/file-module.es.js.map +0 -1
- package/es/modules/link/formats/link.es.js.map +0 -1
- package/es/modules/link/modules/tooltip.es.js.map +0 -1
- package/es/modules/mathlive/formats.es.js.map +0 -1
- package/es/modules/mathlive/tooltip.es.js.map +0 -1
- package/es/modules/mention/constants.es.js.map +0 -1
- package/es/modules/mention/mention-link.es.js.map +0 -1
- package/es/modules/mention/mention.es.js.map +0 -1
- package/es/modules/syntax.es.js.map +0 -1
- package/es/modules/toolbar/better-picker.es.js.map +0 -1
- package/es/node_modules/.pnpm/@emoji-mart_data@1.2.1/node_modules/@emoji-mart/data/sets/15/native.json.es.js +0 -40145
- package/es/node_modules/.pnpm/@emoji-mart_data@1.2.1/node_modules/@emoji-mart/data/sets/15/native.json.es.js.map +0 -1
- package/es/node_modules/.pnpm/@floating-ui_core@1.7.2/node_modules/@floating-ui/core/dist/floating-ui.core.es.js +0 -938
- package/es/node_modules/.pnpm/@floating-ui_core@1.7.2/node_modules/@floating-ui/core/dist/floating-ui.core.es.js.map +0 -1
- package/es/node_modules/.pnpm/@floating-ui_dom@1.7.2/node_modules/@floating-ui/dom/dist/floating-ui.dom.es.js +0 -624
- package/es/node_modules/.pnpm/@floating-ui_dom@1.7.2/node_modules/@floating-ui/dom/dist/floating-ui.dom.es.js.map +0 -1
- package/es/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.es.js +0 -174
- package/es/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.es.js.map +0 -1
- package/es/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.es.js +0 -159
- package/es/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.es.js.map +0 -1
- package/es/node_modules/.pnpm/emoji-mart@5.6.0/node_modules/emoji-mart/dist/module.es.js +0 -2849
- package/es/node_modules/.pnpm/emoji-mart@5.6.0/node_modules/emoji-mart/dist/module.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/array.es.js +0 -112
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/array.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/binary.es.js +0 -133
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/binary.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/broadcastchannel.es.js +0 -59
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/broadcastchannel.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/buffer.es.js +0 -75
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/buffer.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/conditions.es.js +0 -5
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/conditions.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/decoding.es.js +0 -422
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/decoding.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/dom.es.js +0 -142
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/dom.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/encoding.es.js +0 -484
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/encoding.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/environment.es.js +0 -79
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/environment.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/error.es.js +0 -13
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/error.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/eventloop.es.js +0 -69
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/eventloop.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/function.es.js +0 -124
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/function.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/indexeddb.es.js +0 -92
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/indexeddb.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/iterator.es.js +0 -38
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/iterator.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/json.es.js +0 -7
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/json.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.common.es.js +0 -99
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.common.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.es.js +0 -288
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/map.es.js +0 -47
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/map.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/math.es.js +0 -37
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/math.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/metric.es.js +0 -64
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/metric.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/mutex.es.js +0 -19
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/mutex.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/number.es.js +0 -31
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/number.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/object.es.js +0 -72
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/object.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/observable.es.js +0 -128
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/observable.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/pair.es.js +0 -22
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/pair.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/promise.es.js +0 -50
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/promise.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/random.es.js +0 -24
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/random.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/set.es.js +0 -11
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/set.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/storage.es.js +0 -44
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/storage.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/string.es.js +0 -95
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/string.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/symbol.es.js +0 -7
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/symbol.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/time.es.js +0 -28
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/time.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/traits.es.js +0 -5
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/traits.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/url.es.js +0 -20
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/url.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/webcrypto.es.js +0 -7
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/webcrypto.es.js.map +0 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/websocket.es.js +0 -113
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/websocket.es.js.map +0 -1
- package/es/node_modules/.pnpm/quill-cursors@4.0.4/node_modules/quill-cursors/dist/quill-cursors.es.js +0 -1796
- package/es/node_modules/.pnpm/quill-cursors@4.0.4/node_modules/quill-cursors/dist/quill-cursors.es.js.map +0 -1
- package/es/node_modules/.pnpm/simple-peer@9.11.1/node_modules/simple-peer/simplepeer.min.es.js +0 -2620
- package/es/node_modules/.pnpm/simple-peer@9.11.1/node_modules/simple-peer/simplepeer.min.es.js.map +0 -1
- package/es/node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.27/node_modules/y-indexeddb/src/y-indexeddb.es.js +0 -155
- package/es/node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.27/node_modules/y-indexeddb/src/y-indexeddb.es.js.map +0 -1
- package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/auth.es.js +0 -20
- package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/auth.es.js.map +0 -1
- package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/awareness.es.js +0 -232
- package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/awareness.es.js.map +0 -1
- package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/sync.es.js +0 -58
- package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/sync.es.js.map +0 -1
- package/es/node_modules/.pnpm/y-quill@1.0.0_quill-cursors@4.0.4_quill@2.0.3_patch_hash_dnirvjhpzdmsvdidsclwslxxji__yjs@13.6.27/node_modules/y-quill/src/y-quill.es.js +0 -157
- package/es/node_modules/.pnpm/y-quill@1.0.0_quill-cursors@4.0.4_quill@2.0.3_patch_hash_dnirvjhpzdmsvdidsclwslxxji__yjs@13.6.27/node_modules/y-quill/src/y-quill.es.js.map +0 -1
- package/es/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/crypto.es.js +0 -94
- package/es/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/crypto.es.js.map +0 -1
- package/es/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/y-webrtc.es.js +0 -537
- package/es/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/y-webrtc.es.js.map +0 -1
- package/es/node_modules/.pnpm/y-websocket@3.0.0_yjs@13.6.27/node_modules/y-websocket/src/y-websocket.es.js +0 -380
- package/es/node_modules/.pnpm/y-websocket@3.0.0_yjs@13.6.27/node_modules/y-websocket/src/y-websocket.es.js.map +0 -1
- package/es/node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.es.js +0 -7653
- package/es/node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.es.js.map +0 -1
- package/es/themes/snow.es.js.map +0 -1
- package/es/tools/screenshot.es.js.map +0 -1
- package/es/ui/icons.config.es.js.map +0 -1
- package/es/ui/icons.es.js.map +0 -1
- package/es/utils/debounce.es.js.map +0 -1
- package/es/utils/method.es.js.map +0 -1
- package/lib/_virtual/_commonjs-dynamic-modules.cjs.js +0 -7
- package/lib/_virtual/_commonjs-dynamic-modules.cjs.js.map +0 -1
- package/lib/_virtual/_commonjsHelpers.cjs.js +0 -42
- package/lib/_virtual/_commonjsHelpers.cjs.js.map +0 -1
- package/lib/_virtual/quill-cursors.cjs.js +0 -5
- package/lib/_virtual/quill-cursors.cjs.js.map +0 -1
- package/lib/_virtual/simplepeer.min.cjs.js +0 -5
- package/lib/_virtual/simplepeer.min.cjs.js.map +0 -1
- package/lib/attributors/line-height.cjs.js.map +0 -1
- package/lib/config/base64-image.cjs.js.map +0 -1
- package/lib/config/editor.config.cjs.js.map +0 -1
- package/lib/config/editor.utils.cjs.js.map +0 -1
- package/lib/config/i18n/en-us.cjs.js.map +0 -1
- package/lib/config/i18n/zh-cn.cjs.js.map +0 -1
- package/lib/config/index.cjs.js.map +0 -1
- package/lib/core/fluent-editor.cjs.js.map +0 -1
- package/lib/fluent-editor.cjs.js.map +0 -1
- package/lib/formats/emoji.cjs.js.map +0 -1
- package/lib/formats/soft-break.cjs.js.map +0 -1
- package/lib/formats/strike.cjs.js.map +0 -1
- package/lib/formats/video.cjs.js.map +0 -1
- package/lib/modules/ai/constants.cjs.js.map +0 -1
- package/lib/modules/ai/icons.cjs.js.map +0 -1
- package/lib/modules/ai/index.cjs.js.map +0 -1
- package/lib/modules/collaborative-editing/awareness/awareness.cjs.js +0 -93
- package/lib/modules/collaborative-editing/awareness/awareness.cjs.js.map +0 -1
- package/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js +0 -12
- package/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js.map +0 -1
- package/lib/modules/collaborative-editing/collaborative-editing.cjs.js +0 -105
- package/lib/modules/collaborative-editing/collaborative-editing.cjs.js.map +0 -1
- package/lib/modules/collaborative-editing/module.cjs.js.map +0 -1
- package/lib/modules/collaborative-editing/provider/providerRegistry.cjs.js.map +0 -1
- package/lib/modules/collaborative-editing/provider/webrtc.cjs.js +0 -99
- package/lib/modules/collaborative-editing/provider/webrtc.cjs.js.map +0 -1
- package/lib/modules/collaborative-editing/provider/websocket.cjs.js +0 -111
- package/lib/modules/collaborative-editing/provider/websocket.cjs.js.map +0 -1
- package/lib/modules/counter.cjs.js.map +0 -1
- package/lib/modules/custom-clipboard.cjs.js.map +0 -1
- package/lib/modules/custom-image/actions/action.cjs.js.map +0 -1
- package/lib/modules/custom-image/actions/custom-resize-action.cjs.js.map +0 -1
- package/lib/modules/custom-image/actions/delete-action.cjs.js.map +0 -1
- package/lib/modules/custom-image/blot-formatter.cjs.js.map +0 -1
- package/lib/modules/custom-image/image.cjs.js.map +0 -1
- package/lib/modules/custom-image/options.cjs.js.map +0 -1
- package/lib/modules/custom-image/specs/blot-spec.cjs.js.map +0 -1
- package/lib/modules/custom-image/specs/custom-image-spec.cjs.js.map +0 -1
- package/lib/modules/custom-image/specs/image-spec.cjs.js.map +0 -1
- package/lib/modules/divider.cjs.js.map +0 -1
- package/lib/modules/emoji.cjs.js +0 -163
- package/lib/modules/emoji.cjs.js.map +0 -1
- package/lib/modules/file/formats/file.cjs.js.map +0 -1
- package/lib/modules/file/modules/file-bar.cjs.js.map +0 -1
- package/lib/modules/file/modules/file-module.cjs.js.map +0 -1
- package/lib/modules/link/formats/link.cjs.js.map +0 -1
- package/lib/modules/link/modules/tooltip.cjs.js.map +0 -1
- package/lib/modules/mathlive/formats.cjs.js.map +0 -1
- package/lib/modules/mathlive/tooltip.cjs.js.map +0 -1
- package/lib/modules/mention/constants.cjs.js.map +0 -1
- package/lib/modules/mention/mention-link.cjs.js.map +0 -1
- package/lib/modules/mention/mention.cjs.js.map +0 -1
- package/lib/modules/syntax.cjs.js.map +0 -1
- package/lib/modules/toolbar/better-picker.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/@emoji-mart_data@1.2.1/node_modules/@emoji-mart/data/sets/15/native.json.cjs.js +0 -40145
- package/lib/node_modules/.pnpm/@emoji-mart_data@1.2.1/node_modules/@emoji-mart/data/sets/15/native.json.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/@floating-ui_core@1.7.2/node_modules/@floating-ui/core/dist/floating-ui.core.cjs.js +0 -938
- package/lib/node_modules/.pnpm/@floating-ui_core@1.7.2/node_modules/@floating-ui/core/dist/floating-ui.core.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/@floating-ui_dom@1.7.2/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs.js +0 -624
- package/lib/node_modules/.pnpm/@floating-ui_dom@1.7.2/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs.js +0 -159
- package/lib/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs.js +0 -174
- package/lib/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/emoji-mart@5.6.0/node_modules/emoji-mart/dist/module.cjs.js +0 -2847
- package/lib/node_modules/.pnpm/emoji-mart@5.6.0/node_modules/emoji-mart/dist/module.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/array.cjs.js +0 -112
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/array.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/binary.cjs.js +0 -133
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/binary.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/broadcastchannel.cjs.js +0 -59
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/broadcastchannel.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/buffer.cjs.js +0 -75
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/buffer.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/conditions.cjs.js +0 -5
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/conditions.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/decoding.cjs.js +0 -422
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/decoding.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/dom.cjs.js +0 -142
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/dom.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/encoding.cjs.js +0 -484
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/encoding.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/environment.cjs.js +0 -79
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/environment.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/error.cjs.js +0 -13
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/error.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/eventloop.cjs.js +0 -69
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/eventloop.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/function.cjs.js +0 -124
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/function.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/indexeddb.cjs.js +0 -92
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/indexeddb.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/iterator.cjs.js +0 -38
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/iterator.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/json.cjs.js +0 -7
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/json.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.cjs.js +0 -288
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.common.cjs.js +0 -99
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.common.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/map.cjs.js +0 -47
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/map.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/math.cjs.js +0 -37
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/math.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/metric.cjs.js +0 -64
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/metric.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/mutex.cjs.js +0 -19
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/mutex.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/number.cjs.js +0 -31
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/number.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/object.cjs.js +0 -72
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/object.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/observable.cjs.js +0 -128
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/observable.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/pair.cjs.js +0 -22
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/pair.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/promise.cjs.js +0 -50
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/promise.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/random.cjs.js +0 -24
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/random.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/set.cjs.js +0 -11
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/set.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/storage.cjs.js +0 -44
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/storage.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/string.cjs.js +0 -94
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/string.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/symbol.cjs.js +0 -7
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/symbol.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/time.cjs.js +0 -28
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/time.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/traits.cjs.js +0 -5
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/traits.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/url.cjs.js +0 -20
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/url.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/webcrypto.cjs.js +0 -7
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/webcrypto.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/websocket.cjs.js +0 -113
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/websocket.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/quill-cursors@4.0.4/node_modules/quill-cursors/dist/quill-cursors.cjs.js +0 -1796
- package/lib/node_modules/.pnpm/quill-cursors@4.0.4/node_modules/quill-cursors/dist/quill-cursors.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/simple-peer@9.11.1/node_modules/simple-peer/simplepeer.min.cjs.js +0 -2620
- package/lib/node_modules/.pnpm/simple-peer@9.11.1/node_modules/simple-peer/simplepeer.min.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.27/node_modules/y-indexeddb/src/y-indexeddb.cjs.js +0 -155
- package/lib/node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.27/node_modules/y-indexeddb/src/y-indexeddb.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/auth.cjs.js +0 -20
- package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/auth.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/awareness.cjs.js +0 -232
- package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/awareness.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/sync.cjs.js +0 -58
- package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/sync.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/y-quill@1.0.0_quill-cursors@4.0.4_quill@2.0.3_patch_hash_dnirvjhpzdmsvdidsclwslxxji__yjs@13.6.27/node_modules/y-quill/src/y-quill.cjs.js +0 -157
- package/lib/node_modules/.pnpm/y-quill@1.0.0_quill-cursors@4.0.4_quill@2.0.3_patch_hash_dnirvjhpzdmsvdidsclwslxxji__yjs@13.6.27/node_modules/y-quill/src/y-quill.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/crypto.cjs.js +0 -94
- package/lib/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/crypto.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/y-webrtc.cjs.js +0 -537
- package/lib/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/y-webrtc.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/y-websocket@3.0.0_yjs@13.6.27/node_modules/y-websocket/src/y-websocket.cjs.js +0 -380
- package/lib/node_modules/.pnpm/y-websocket@3.0.0_yjs@13.6.27/node_modules/y-websocket/src/y-websocket.cjs.js.map +0 -1
- package/lib/node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.cjs.js +0 -7653
- package/lib/node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.cjs.js.map +0 -1
- package/lib/themes/snow.cjs.js.map +0 -1
- package/lib/tools/screenshot.cjs.js.map +0 -1
- package/lib/ui/icons.cjs.js.map +0 -1
- package/lib/ui/icons.config.cjs.js.map +0 -1
- package/lib/utils/debounce.cjs.js.map +0 -1
- package/lib/utils/method.cjs.js.map +0 -1
- package/types/attributors/font-size.d.ts +0 -1
- package/types/attributors/font-style.d.ts +0 -1
- package/types/attributors/index.d.ts +0 -4
- package/types/attributors/line-height.d.ts +0 -1
- package/types/attributors/text-indent.d.ts +0 -1
- package/types/config/base64-image.d.ts +0 -2
- package/types/config/editor.config.d.ts +0 -11
- package/types/config/editor.utils.d.ts +0 -40
- package/types/config/i18n/en-us.d.ts +0 -123
- package/types/config/i18n/zh-cn.d.ts +0 -123
- package/types/config/index.d.ts +0 -7
- package/types/config/types/editor-config.interface.d.ts +0 -15
- package/types/config/types/editor-modules.interface.d.ts +0 -42
- package/types/config/types/index.d.ts +0 -3
- package/types/config/types/type.d.ts +0 -2
- package/types/core/fluent-editor.d.ts +0 -14
- package/types/fluent-editor.d.ts +0 -3
- package/types/formats/emoji.d.ts +0 -9
- package/types/formats/index.d.ts +0 -4
- package/types/formats/soft-break.d.ts +0 -13
- package/types/formats/strike.d.ts +0 -9
- package/types/formats/video.d.ts +0 -14
- package/types/index.d.ts +0 -9
- package/types/modules/ai/constants.d.ts +0 -30
- package/types/modules/ai/icons.d.ts +0 -21
- package/types/modules/ai/index.d.ts +0 -97
- package/types/modules/ai/types.d.ts +0 -16
- package/types/modules/collaborative-editing/awareness/awareness.d.ts +0 -29
- package/types/modules/collaborative-editing/awareness/index.d.ts +0 -2
- package/types/modules/collaborative-editing/awareness/y-indexeddb.d.ts +0 -3
- package/types/modules/collaborative-editing/collaborative-editing.d.ts +0 -25
- package/types/modules/collaborative-editing/index.d.ts +0 -2
- package/types/modules/collaborative-editing/module.d.ts +0 -12
- package/types/modules/collaborative-editing/provider/index.d.ts +0 -3
- package/types/modules/collaborative-editing/provider/providerRegistry.d.ts +0 -26
- package/types/modules/collaborative-editing/provider/webrtc.d.ts +0 -37
- package/types/modules/collaborative-editing/provider/websocket.d.ts +0 -41
- package/types/modules/collaborative-editing/types.d.ts +0 -37
- package/types/modules/counter.d.ts +0 -24
- package/types/modules/custom-clipboard.d.ts +0 -26
- package/types/modules/custom-image/actions/action.d.ts +0 -9
- package/types/modules/custom-image/actions/custom-resize-action.d.ts +0 -24
- package/types/modules/custom-image/actions/delete-action.d.ts +0 -7
- package/types/modules/custom-image/actions/image-toolbar-buttons.d.ts +0 -17
- package/types/modules/custom-image/actions/index.d.ts +0 -6
- package/types/modules/custom-image/actions/toolbar-action.d.ts +0 -12
- package/types/modules/custom-image/actions/toolbar.d.ts +0 -20
- package/types/modules/custom-image/blot-formatter.d.ts +0 -24
- package/types/modules/custom-image/image.d.ts +0 -29
- package/types/modules/custom-image/index.d.ts +0 -4
- package/types/modules/custom-image/options.d.ts +0 -48
- package/types/modules/custom-image/specs/blot-spec.d.ts +0 -13
- package/types/modules/custom-image/specs/custom-image-spec.d.ts +0 -18
- package/types/modules/custom-image/specs/image-spec.d.ts +0 -9
- package/types/modules/custom-image/specs/index.d.ts +0 -3
- package/types/modules/custom-uploader.d.ts +0 -41
- package/types/modules/divider.d.ts +0 -9
- package/types/modules/emoji.d.ts +0 -34
- package/types/modules/file/formats/file.d.ts +0 -19
- package/types/modules/file/index.d.ts +0 -3
- package/types/modules/file/modules/file-bar.d.ts +0 -14
- package/types/modules/file/modules/file-module.d.ts +0 -10
- package/types/modules/i18n.d.ts +0 -15
- package/types/modules/index.d.ts +0 -16
- package/types/modules/link/formats/link.d.ts +0 -16
- package/types/modules/link/index.d.ts +0 -2
- package/types/modules/link/modules/tooltip.d.ts +0 -28
- package/types/modules/mathlive/formats.d.ts +0 -23
- package/types/modules/mathlive/index.d.ts +0 -3
- package/types/modules/mathlive/module.d.ts +0 -10
- package/types/modules/mathlive/tooltip.d.ts +0 -19
- package/types/modules/mention/constants.d.ts +0 -3
- package/types/modules/mention/index.d.ts +0 -2
- package/types/modules/mention/mention-link.d.ts +0 -17
- package/types/modules/mention/mention.d.ts +0 -54
- package/types/modules/shortcut-key/index.d.ts +0 -72
- package/types/modules/syntax.d.ts +0 -14
- package/types/modules/table-up/index.d.ts +0 -35
- package/types/modules/toolbar/better-picker.d.ts +0 -16
- package/types/modules/toolbar/better-toolbar.d.ts +0 -8
- package/types/modules/toolbar/index.d.ts +0 -3
- package/types/modules/toolbar/toolbar-tip.d.ts +0 -10
- package/types/themes/snow.d.ts +0 -12
- package/types/tools/format-painter.d.ts +0 -14
- package/types/tools/fullscreen.d.ts +0 -7
- package/types/tools/screenshot.d.ts +0 -20
- package/types/ui/icons.config.d.ts +0 -38
- package/types/ui/icons.d.ts +0 -6
- package/types/utils/debounce.d.ts +0 -6
- package/types/utils/image.d.ts +0 -1
- package/types/utils/is.d.ts +0 -6
- package/types/utils/method.d.ts +0 -6
- package/types/utils/scroll-lock.d.ts +0 -6
- /package/{es → dist/es}/attributors/font-size.es.js +0 -0
- /package/{es → dist/es}/attributors/font-size.es.js.map +0 -0
- /package/{es → dist/es}/attributors/font-style.es.js +0 -0
- /package/{es → dist/es}/attributors/font-style.es.js.map +0 -0
- /package/{es → dist/es}/attributors/index.es.js +0 -0
- /package/{es → dist/es}/attributors/index.es.js.map +0 -0
- /package/{es → dist/es}/attributors/line-height.es.js +0 -0
- /package/{es → dist/es}/attributors/text-indent.es.js +0 -0
- /package/{es → dist/es}/attributors/text-indent.es.js.map +0 -0
- /package/{es → dist/es}/config/base64-image.es.js +0 -0
- /package/{es → dist/es}/config/editor.config.es.js +0 -0
- /package/{es → dist/es}/config/editor.utils.es.js +0 -0
- /package/{es → dist/es}/config/i18n/en-us.es.js +0 -0
- /package/{es → dist/es}/config/i18n/zh-cn.es.js +0 -0
- /package/{es → dist/es}/config/index.es.js +0 -0
- /package/{es → dist/es}/config/types/editor-config.interface.es.js +0 -0
- /package/{es → dist/es}/config/types/editor-config.interface.es.js.map +0 -0
- /package/{es → dist/es}/config/types/editor-modules.interface.es.js +0 -0
- /package/{es → dist/es}/config/types/editor-modules.interface.es.js.map +0 -0
- /package/{es → dist/es}/config/types/index.es.js +0 -0
- /package/{es → dist/es}/config/types/index.es.js.map +0 -0
- /package/{es → dist/es}/config/types/type.es.js +0 -0
- /package/{es → dist/es}/config/types/type.es.js.map +0 -0
- /package/{es → dist/es}/core/fluent-editor.es.js +0 -0
- /package/{es → dist/es}/fluent-editor.es.js +0 -0
- /package/{es → dist/es}/formats/emoji.es.js +0 -0
- /package/{es → dist/es}/formats/index.es.js +0 -0
- /package/{es → dist/es}/formats/index.es.js.map +0 -0
- /package/{es → dist/es}/formats/soft-break.es.js +0 -0
- /package/{es → dist/es}/formats/strike.es.js +0 -0
- /package/{es → dist/es}/formats/video.es.js +0 -0
- /package/{es → dist/es}/index.es.js +0 -0
- /package/{es → dist/es}/index.es.js.map +0 -0
- /package/{es → dist/es}/modules/ai/constants.es.js +0 -0
- /package/{es → dist/es}/modules/ai/icons.es.js +0 -0
- /package/{es → dist/es}/modules/ai/index.es.js +0 -0
- /package/{es → dist/es}/modules/collaborative-editing/awareness/index.es.js +0 -0
- /package/{es → dist/es}/modules/collaborative-editing/awareness/index.es.js.map +0 -0
- /package/{es → dist/es}/modules/collaborative-editing/index.es.js +0 -0
- /package/{es → dist/es}/modules/collaborative-editing/index.es.js.map +0 -0
- /package/{es → dist/es}/modules/collaborative-editing/module.es.js +0 -0
- /package/{es → dist/es}/modules/collaborative-editing/provider/providerRegistry.es.js +0 -0
- /package/{es → dist/es}/modules/collaborative-editing/types.es.js +0 -0
- /package/{es → dist/es}/modules/collaborative-editing/types.es.js.map +0 -0
- /package/{es → dist/es}/modules/counter.es.js +0 -0
- /package/{es → dist/es}/modules/custom-clipboard.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/actions/action.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/actions/custom-resize-action.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/actions/delete-action.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/actions/image-toolbar-buttons.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/actions/image-toolbar-buttons.es.js.map +0 -0
- /package/{es → dist/es}/modules/custom-image/actions/index.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/actions/index.es.js.map +0 -0
- /package/{es → dist/es}/modules/custom-image/actions/toolbar-action.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/actions/toolbar-action.es.js.map +0 -0
- /package/{es → dist/es}/modules/custom-image/actions/toolbar.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/actions/toolbar.es.js.map +0 -0
- /package/{es → dist/es}/modules/custom-image/blot-formatter.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/image.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/index.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/index.es.js.map +0 -0
- /package/{es → dist/es}/modules/custom-image/options.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/specs/blot-spec.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/specs/custom-image-spec.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/specs/image-spec.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/specs/index.es.js +0 -0
- /package/{es → dist/es}/modules/custom-image/specs/index.es.js.map +0 -0
- /package/{es → dist/es}/modules/custom-uploader.es.js +0 -0
- /package/{es → dist/es}/modules/custom-uploader.es.js.map +0 -0
- /package/{es → dist/es}/modules/divider.es.js +0 -0
- /package/{es → dist/es}/modules/file/formats/file.es.js +0 -0
- /package/{es → dist/es}/modules/file/index.es.js +0 -0
- /package/{es → dist/es}/modules/file/index.es.js.map +0 -0
- /package/{es → dist/es}/modules/file/modules/file-bar.es.js +0 -0
- /package/{es → dist/es}/modules/file/modules/file-module.es.js +0 -0
- /package/{es → dist/es}/modules/i18n.es.js +0 -0
- /package/{es → dist/es}/modules/i18n.es.js.map +0 -0
- /package/{es → dist/es}/modules/index.es.js +0 -0
- /package/{es → dist/es}/modules/index.es.js.map +0 -0
- /package/{es → dist/es}/modules/link/formats/link.es.js +0 -0
- /package/{es → dist/es}/modules/link/index.es.js +0 -0
- /package/{es → dist/es}/modules/link/index.es.js.map +0 -0
- /package/{es → dist/es}/modules/link/modules/tooltip.es.js +0 -0
- /package/{es → dist/es}/modules/mathlive/formats.es.js +0 -0
- /package/{es → dist/es}/modules/mathlive/index.es.js +0 -0
- /package/{es → dist/es}/modules/mathlive/index.es.js.map +0 -0
- /package/{es → dist/es}/modules/mathlive/module.es.js +0 -0
- /package/{es → dist/es}/modules/mathlive/module.es.js.map +0 -0
- /package/{es → dist/es}/modules/mathlive/tooltip.es.js +0 -0
- /package/{es → dist/es}/modules/mention/constants.es.js +0 -0
- /package/{es → dist/es}/modules/mention/index.es.js +0 -0
- /package/{es → dist/es}/modules/mention/index.es.js.map +0 -0
- /package/{es → dist/es}/modules/mention/mention-link.es.js +0 -0
- /package/{es → dist/es}/modules/mention/mention.es.js +0 -0
- /package/{es → dist/es}/modules/shortcut-key/index.es.js +0 -0
- /package/{es → dist/es}/modules/shortcut-key/index.es.js.map +0 -0
- /package/{es → dist/es}/modules/syntax.es.js +0 -0
- /package/{es → dist/es}/modules/table-up/index.es.js +0 -0
- /package/{es → dist/es}/modules/table-up/index.es.js.map +0 -0
- /package/{es → dist/es}/modules/toolbar/better-picker.es.js +0 -0
- /package/{es → dist/es}/modules/toolbar/better-toolbar.es.js +0 -0
- /package/{es → dist/es}/modules/toolbar/better-toolbar.es.js.map +0 -0
- /package/{es → dist/es}/modules/toolbar/index.es.js +0 -0
- /package/{es → dist/es}/modules/toolbar/index.es.js.map +0 -0
- /package/{es → dist/es}/modules/toolbar/toolbar-tip.es.js +0 -0
- /package/{es → dist/es}/modules/toolbar/toolbar-tip.es.js.map +0 -0
- /package/{es → dist/es}/themes/snow.es.js +0 -0
- /package/{es → dist/es}/tools/format-painter.es.js +0 -0
- /package/{es → dist/es}/tools/format-painter.es.js.map +0 -0
- /package/{es → dist/es}/tools/fullscreen.es.js +0 -0
- /package/{es → dist/es}/tools/fullscreen.es.js.map +0 -0
- /package/{es → dist/es}/tools/screenshot.es.js +0 -0
- /package/{es → dist/es}/ui/icons.config.es.js +0 -0
- /package/{es → dist/es}/ui/icons.es.js +0 -0
- /package/{es → dist/es}/utils/debounce.es.js +0 -0
- /package/{es → dist/es}/utils/image.es.js +0 -0
- /package/{es → dist/es}/utils/image.es.js.map +0 -0
- /package/{es → dist/es}/utils/is.es.js +0 -0
- /package/{es → dist/es}/utils/is.es.js.map +0 -0
- /package/{es → dist/es}/utils/method.es.js +0 -0
- /package/{es → dist/es}/utils/scroll-lock.es.js +0 -0
- /package/{es → dist/es}/utils/scroll-lock.es.js.map +0 -0
- /package/{lib → dist/lib}/attributors/font-size.cjs.js +0 -0
- /package/{lib → dist/lib}/attributors/font-size.cjs.js.map +0 -0
- /package/{lib → dist/lib}/attributors/font-style.cjs.js +0 -0
- /package/{lib → dist/lib}/attributors/font-style.cjs.js.map +0 -0
- /package/{lib → dist/lib}/attributors/index.cjs.js +0 -0
- /package/{lib → dist/lib}/attributors/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/attributors/line-height.cjs.js +0 -0
- /package/{lib → dist/lib}/attributors/text-indent.cjs.js +0 -0
- /package/{lib → dist/lib}/attributors/text-indent.cjs.js.map +0 -0
- /package/{lib → dist/lib}/config/base64-image.cjs.js +0 -0
- /package/{lib → dist/lib}/config/editor.config.cjs.js +0 -0
- /package/{lib → dist/lib}/config/editor.utils.cjs.js +0 -0
- /package/{lib → dist/lib}/config/i18n/en-us.cjs.js +0 -0
- /package/{lib → dist/lib}/config/i18n/zh-cn.cjs.js +0 -0
- /package/{lib → dist/lib}/config/index.cjs.js +0 -0
- /package/{lib → dist/lib}/config/types/editor-config.interface.cjs.js +0 -0
- /package/{lib → dist/lib}/config/types/editor-config.interface.cjs.js.map +0 -0
- /package/{lib → dist/lib}/config/types/editor-modules.interface.cjs.js +0 -0
- /package/{lib → dist/lib}/config/types/editor-modules.interface.cjs.js.map +0 -0
- /package/{lib → dist/lib}/config/types/index.cjs.js +0 -0
- /package/{lib → dist/lib}/config/types/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/config/types/type.cjs.js +0 -0
- /package/{lib → dist/lib}/config/types/type.cjs.js.map +0 -0
- /package/{lib → dist/lib}/core/fluent-editor.cjs.js +0 -0
- /package/{lib → dist/lib}/fluent-editor.cjs.js +0 -0
- /package/{lib → dist/lib}/formats/emoji.cjs.js +0 -0
- /package/{lib → dist/lib}/formats/index.cjs.js +0 -0
- /package/{lib → dist/lib}/formats/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/formats/soft-break.cjs.js +0 -0
- /package/{lib → dist/lib}/formats/strike.cjs.js +0 -0
- /package/{lib → dist/lib}/formats/video.cjs.js +0 -0
- /package/{lib → dist/lib}/index.cjs.js +0 -0
- /package/{lib → dist/lib}/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/ai/constants.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/ai/icons.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/ai/index.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/collaborative-editing/awareness/index.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/collaborative-editing/awareness/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/collaborative-editing/index.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/collaborative-editing/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/collaborative-editing/module.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/collaborative-editing/provider/providerRegistry.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/collaborative-editing/types.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/collaborative-editing/types.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/counter.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-clipboard.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/actions/action.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/actions/custom-resize-action.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/actions/delete-action.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/actions/image-toolbar-buttons.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/actions/image-toolbar-buttons.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/custom-image/actions/index.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/actions/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/custom-image/actions/toolbar-action.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/actions/toolbar-action.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/custom-image/actions/toolbar.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/actions/toolbar.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/custom-image/blot-formatter.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/image.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/index.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/custom-image/options.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/specs/blot-spec.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/specs/custom-image-spec.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/specs/image-spec.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/specs/index.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-image/specs/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/custom-uploader.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/custom-uploader.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/divider.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/file/formats/file.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/file/index.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/file/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/file/modules/file-bar.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/file/modules/file-module.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/i18n.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/i18n.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/index.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/link/formats/link.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/link/index.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/link/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/link/modules/tooltip.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/mathlive/formats.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/mathlive/index.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/mathlive/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/mathlive/module.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/mathlive/module.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/mathlive/tooltip.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/mention/constants.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/mention/index.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/mention/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/mention/mention-link.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/mention/mention.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/shortcut-key/index.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/shortcut-key/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/syntax.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/table-up/index.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/table-up/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/toolbar/better-picker.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/toolbar/better-toolbar.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/toolbar/better-toolbar.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/toolbar/index.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/toolbar/index.cjs.js.map +0 -0
- /package/{lib → dist/lib}/modules/toolbar/toolbar-tip.cjs.js +0 -0
- /package/{lib → dist/lib}/modules/toolbar/toolbar-tip.cjs.js.map +0 -0
- /package/{lib → dist/lib}/themes/snow.cjs.js +0 -0
- /package/{lib → dist/lib}/tools/format-painter.cjs.js +0 -0
- /package/{lib → dist/lib}/tools/format-painter.cjs.js.map +0 -0
- /package/{lib → dist/lib}/tools/fullscreen.cjs.js +0 -0
- /package/{lib → dist/lib}/tools/fullscreen.cjs.js.map +0 -0
- /package/{lib → dist/lib}/tools/screenshot.cjs.js +0 -0
- /package/{lib → dist/lib}/ui/icons.cjs.js +0 -0
- /package/{lib → dist/lib}/ui/icons.config.cjs.js +0 -0
- /package/{lib → dist/lib}/utils/debounce.cjs.js +0 -0
- /package/{lib → dist/lib}/utils/image.cjs.js +0 -0
- /package/{lib → dist/lib}/utils/image.cjs.js.map +0 -0
- /package/{lib → dist/lib}/utils/is.cjs.js +0 -0
- /package/{lib → dist/lib}/utils/is.cjs.js.map +0 -0
- /package/{lib → dist/lib}/utils/method.cjs.js +0 -0
- /package/{lib → dist/lib}/utils/scroll-lock.cjs.js +0 -0
- /package/{lib → dist/lib}/utils/scroll-lock.cjs.js.map +0 -0
- /package/{style.css → dist/style.css} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"emoji.cjs.js","sources":["../../../src/modules/emoji.ts"],"sourcesContent":["import type TypeToolbar from 'quill/modules/toolbar'\r\nimport type FluentEditor from '../fluent-editor'\r\nimport data from '@emoji-mart/data'\r\nimport { computePosition } from '@floating-ui/dom'\r\nimport { Picker } from 'emoji-mart'\r\nimport { debounce } from 'lodash-es'\r\n\r\nexport interface EmojiModuleOptions {\r\n theme?: string\r\n locale?: string\r\n set?: string\r\n skinTonePosition?: string\r\n previewPosition?: string\r\n searchPosition?: string\r\n categories?: string[]\r\n maxFrequentRows?: number\r\n perLine?: number\r\n navPosition?: string\r\n noCountryFlags?: boolean\r\n dynamicWidth?: boolean\r\n}\r\n\r\nconst DEFAULT_OPTIONS: EmojiModuleOptions = {\r\n theme: 'light',\r\n set: 'native',\r\n skinTonePosition: 'none',\r\n previewPosition: 'bottom',\r\n searchPosition: 'sticky',\r\n categories: ['frequent', 'people', 'nature', 'foods', 'activity', 'places', 'objects', 'symbols', 'flags'],\r\n maxFrequentRows: 2,\r\n perLine: 8,\r\n navPosition: 'top',\r\n noCountryFlags: false,\r\n dynamicWidth: false,\r\n}\r\n\r\nconst PICKER_DOM_ID = 'emoji-picker'\r\n\r\nconst LOCALE_MAP = {\r\n 'zh-CN': 'zh',\r\n 'en-US': 'en',\r\n} as const\r\n\r\nclass EmojiModule {\r\n private readonly quill: FluentEditor\r\n private readonly options: EmojiModuleOptions\r\n private picker: HTMLElement | null = null\r\n private isPickerVisible = false\r\n private cleanupResizeObserver: (() => void) | null = null\r\n\r\n constructor(quill: FluentEditor, options: EmojiModuleOptions = {}) {\r\n this.quill = quill\r\n\r\n this.options = options\r\n\r\n const toolbar = this.quill.getModule('toolbar') as TypeToolbar\r\n\r\n if (toolbar) {\r\n toolbar.addHandler('emoji', () => {\r\n if (this.isPickerVisible) {\r\n this.closeDialog()\r\n }\r\n else {\r\n this.openDialog()\r\n }\r\n })\r\n }\r\n }\r\n\r\n private getEmojiButton() {\r\n return document.querySelector('.ql-emoji') as HTMLElement | null\r\n }\r\n\r\n private async updatePickerPosition() {\r\n const button = this.getEmojiButton()\r\n const pickerElement = document.getElementById(PICKER_DOM_ID)\r\n\r\n if (!button || !this.picker || !pickerElement) {\r\n return\r\n }\r\n\r\n try {\r\n const { x, y } = await computePosition(button, pickerElement)\r\n this.picker.style.top = `${y}px`\r\n this.picker.style.left = `${x}px`\r\n }\r\n catch (error) {\r\n console.warn('Failed to compute picker position:', error)\r\n }\r\n }\r\n\r\n // 监听容器大小变化,更新表情选择弹窗位置\r\n private setupContainerResizeObserver() {\r\n const container = this.quill.root.parentElement\r\n if (!container) {\r\n return null\r\n }\r\n\r\n const debouncedUpdate = debounce(() => {\r\n this.updatePickerPosition()\r\n }, 100)\r\n\r\n const resizeObserver = new ResizeObserver(() => {\r\n debouncedUpdate()\r\n })\r\n\r\n resizeObserver.observe(container)\r\n\r\n return () => {\r\n resizeObserver.disconnect()\r\n debouncedUpdate.cancel()\r\n }\r\n }\r\n\r\n // 创建表情选择弹窗\r\n private createPicker() {\r\n const pickerConfig = {\r\n ...DEFAULT_OPTIONS,\r\n // emoji-mart 与 tiny-editor 国际化的的 locale 不一致使用 LOCALE_MAP 转换\r\n locale: LOCALE_MAP[this.quill.lang] ?? 'en',\r\n ...this.options,\r\n data,\r\n onEmojiSelect: this.handleEmojiSelect.bind(this),\r\n onClickOutside: this.handleClickOutside.bind(this),\r\n }\r\n\r\n const picker = new Picker(pickerConfig) as unknown as HTMLElement\r\n\r\n // 设置样式和属性\r\n picker.id = PICKER_DOM_ID\r\n picker.style.position = 'absolute'\r\n picker.style.zIndex = '1000'\r\n\r\n return picker\r\n }\r\n\r\n // 打开表情弹窗\r\n public openDialog() {\r\n if (this.picker) {\r\n return\r\n }\r\n\r\n try {\r\n this.picker = this.createPicker()\r\n document.body.appendChild(this.picker)\r\n\r\n this.updatePickerPosition()\r\n this.cleanupResizeObserver = this.setupContainerResizeObserver()\r\n this.isPickerVisible = true\r\n }\r\n catch (error) {\r\n console.error('Failed to open emoji picker:', error)\r\n this.closeDialog()\r\n }\r\n }\r\n\r\n // 关闭表情弹窗\r\n public closeDialog() {\r\n if (!this.picker) {\r\n return\r\n }\r\n\r\n this.isPickerVisible = false\r\n this.picker.remove()\r\n this.picker = null\r\n\r\n this.cleanupResizeObserver?.()\r\n this.cleanupResizeObserver = null\r\n }\r\n\r\n // 处理表情选择事件\r\n private handleEmojiSelect(emoji: { native: string }) {\r\n const selection = this.quill.getSelection(true)\r\n if (!selection) {\r\n console.warn('No selection available for emoji insertion')\r\n return\r\n }\r\n\r\n try {\r\n // 记录插入位置\r\n const insertIndex = selection.index\r\n this.quill.insertText(insertIndex, emoji.native, 'user')\r\n\r\n this.closeDialog()\r\n\r\n // 设置光标到表情符号后面\r\n this.quill.setSelection(insertIndex + emoji.native.length)\r\n }\r\n catch (error) {\r\n console.error('Failed to insert emoji:', error)\r\n }\r\n }\r\n\r\n // 处理外部点击事件\r\n private handleClickOutside(event: MouseEvent) {\r\n const button = this.getEmojiButton()\r\n\r\n const target = event.target\r\n\r\n const isClickOnButton = target === button || (target instanceof Element && button?.contains(target))\r\n\r\n // 如果点击的是表情符号按钮或其子元素,则不关闭选择器\r\n if (isClickOnButton) {\r\n return\r\n }\r\n\r\n this.closeDialog()\r\n }\r\n\r\n // 销毁模块,清理资源\r\n public destroy() {\r\n this.cleanupResizeObserver?.()\r\n this.cleanupResizeObserver = null\r\n this.closeDialog()\r\n }\r\n}\r\n\r\nexport { EmojiModule }\r\n"],"names":["computePosition","debounce","data","Picker"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file.cjs.js","sources":["../../../../../src/modules/file/formats/file.ts"],"sourcesContent":["import type TypeEmbed from 'quill/blots/embed'\r\nimport Quill from 'quill'\r\nimport { sanitize } from '../../../config/editor.utils'\r\n\r\nconst Embed = Quill.import('blots/embed') as typeof TypeEmbed\r\nconst FILE_ATTRIBUTES = ['id', 'title', 'size', 'lastModified']\r\n\r\nexport interface FileValue {\r\n size: number\r\n src: string\r\n title: string\r\n}\r\nexport class File extends Embed {\r\n static blotName = 'file'\r\n static tagName = 'A'\r\n static className = 'ql-file-item'\r\n static PROTOCOL_WHITELIST = ['http', 'https', 'blob']\r\n\r\n static create(value: FileValue) {\r\n const node = super.create(value) as HTMLAnchorElement\r\n const size = value.size / 1024\r\n const fixSize = !size ? 0 : size < 1 ? 1 : size.toFixed(0)\r\n node.classList.add('icon-file')\r\n node.setAttribute('contenteditable', 'false')\r\n const fileSvg = '<svg viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"><path d=\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326z m1.8 562H232V136h302v216c0 23.2 18.8 42 42 42h216v494z\" p-id=\"2307\"></path></svg>'\r\n node.innerHTML = `${fileSvg} ${value.title} (${fixSize} KB)`\r\n const src = this.sanitize(value.src)\r\n if (src) {\r\n node.href = src\r\n node.target = '_blank'\r\n }\r\n FILE_ATTRIBUTES.forEach((key) => {\r\n if (value[key]) {\r\n node.dataset[key] = value[key]\r\n }\r\n })\r\n return node\r\n }\r\n\r\n static value(domNode: HTMLAnchorElement) {\r\n return this.getFormats(domNode)\r\n }\r\n\r\n static getFormats(domNode: HTMLAnchorElement) {\r\n const formats: Record<string, string> = {}\r\n const href = this.sanitize(domNode.href)\r\n if (href) {\r\n formats.src = href\r\n }\r\n FILE_ATTRIBUTES.forEach((key) => {\r\n if (domNode.dataset[key]) {\r\n formats[key] = domNode.dataset[key]\r\n }\r\n })\r\n return formats\r\n }\r\n\r\n static sanitize(url: string) {\r\n return (sanitize(url, this.PROTOCOL_WHITELIST) && url) || ''\r\n }\r\n}\r\n"],"names":["sanitize"],"mappings":";;;;;;;AAIA,MAAM,QAAQ,MAAM,OAAO,aAAa;AACxC,MAAM,kBAAkB,CAAC,MAAM,SAAS,QAAQ,cAAc;AAOvD,MAAM,aAAa,MAAM;AAAA,EAM9B,OAAO,OAAO,OAAkB;AACxB,UAAA,OAAO,MAAM,OAAO,KAAK;AACzB,UAAA,OAAO,MAAM,OAAO;AACpB,UAAA,UAAU,CAAC,OAAO,IAAI,OAAO,IAAI,IAAI,KAAK,QAAQ,CAAC;AACpD,SAAA,UAAU,IAAI,WAAW;AACzB,SAAA,aAAa,mBAAmB,OAAO;AAC5C,UAAM,UAAU;AAChB,SAAK,YAAY,GAAG,OAAO,IAAI,MAAM,KAAK,KAAK,OAAO;AACtD,UAAM,MAAM,KAAK,SAAS,MAAM,GAAG;AACnC,QAAI,KAAK;AACP,WAAK,OAAO;AACZ,WAAK,SAAS;AAAA,IAAA;AAEA,oBAAA,QAAQ,CAAC,QAAQ;AAC3B,UAAA,MAAM,GAAG,GAAG;AACd,aAAK,QAAQ,GAAG,IAAI,MAAM,GAAG;AAAA,MAAA;AAAA,IAC/B,CACD;AACM,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,MAAM,SAA4B;AAChC,WAAA,KAAK,WAAW,OAAO;AAAA,EAAA;AAAA,EAGhC,OAAO,WAAW,SAA4B;AAC5C,UAAM,UAAkC,CAAC;AACzC,UAAM,OAAO,KAAK,SAAS,QAAQ,IAAI;AACvC,QAAI,MAAM;AACR,cAAQ,MAAM;AAAA,IAAA;AAEA,oBAAA,QAAQ,CAAC,QAAQ;AAC3B,UAAA,QAAQ,QAAQ,GAAG,GAAG;AACxB,gBAAQ,GAAG,IAAI,QAAQ,QAAQ,GAAG;AAAA,MAAA;AAAA,IACpC,CACD;AACM,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,SAAS,KAAa;AAC3B,WAAQA,aAAAA,SAAS,KAAK,KAAK,kBAAkB,KAAK,OAAQ;AAAA,EAAA;AAE9D;AA/CE,cADW,MACJ,YAAW;AAClB,cAFW,MAEJ,WAAU;AACjB,cAHW,MAGJ,aAAY;AACnB,cAJW,MAIJ,sBAAqB,CAAC,QAAQ,SAAS,MAAM;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-bar.cjs.js","sources":["../../../../../src/modules/file/modules/file-bar.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport { Range } from 'quill/core/selection'\r\nimport { unshiftString } from '../../../utils/method'\r\nimport { File } from '../formats/file'\r\n\r\nconst Delta = Quill.import('delta')\r\n\r\nexport class FileBar {\r\n quill: any\r\n file: any\r\n domNode: HTMLElement\r\n fileRange: any\r\n template: string\r\n\r\n constructor(quill, target) {\r\n this.quill = quill\r\n this.file = target\r\n const fileBlot = Quill.find(target)\r\n const index = this.quill.getIndex(fileBlot)\r\n const [fileItem, offset] = this.quill.scroll.descendant(File, index)\r\n const length = fileItem && fileItem.length()\r\n this.fileRange = new Range(index - offset, length)\r\n\r\n const timestamp = Number(this.file.dataset.lastModified)\r\n const _lastModifiedDate = this.formatDate(timestamp)\r\n this.template = [\r\n // `<a class=\"ql-last-modified-date\" href=\"${this.file.href}\" target=\"_blank\">${this.file.href}</a>`,\r\n // '<span class=\"ql-split\"></span>',\r\n // `<a class=\"ql-file-preview\"><i class=\"icon-preview\"></i></a>`,\r\n `<a class=\"ql-file-download\"><i class=\"icon-download\"></i></a>`,\r\n '<a class=\"ql-file-delete\"><i class=\"icon-delete\"></i></a>',\r\n ].join('')\r\n\r\n this.createFileBar()\r\n }\r\n\r\n createFileBar() {\r\n this.domNode = document.createElement('div')\r\n this.domNode.className = 'ql-file-bar'\r\n this.domNode.innerHTML = this.template\r\n // 查看文件\r\n const filePreview = this.domNode.querySelector('a.ql-file-preview')\r\n if (filePreview) {\r\n filePreview.addEventListener('click', (event) => {\r\n this.operateFile(event, 'view')\r\n })\r\n }\r\n // 下载文件\r\n const fileDownload = this.domNode.querySelector('a.ql-file-download')\r\n if (fileDownload) {\r\n fileDownload.addEventListener('click', (event) => {\r\n this.operateFile(event, 'download')\r\n })\r\n }\r\n // 删除文件\r\n const fileDelete = this.domNode.querySelector('a.ql-file-delete')\r\n if (fileDelete) {\r\n fileDelete.addEventListener('click', (event) => {\r\n this.operateFile(event, 'delete')\r\n const delta = new Delta()\r\n .retain(this.fileRange.index)\r\n .delete(this.fileRange.length)\r\n this.quill.updateContents(delta, Quill.sources.USER)\r\n this.quill.setSelection(this.fileRange.index)\r\n })\r\n }\r\n\r\n this.setPosition()\r\n this.quill.root.parentNode.appendChild(this.domNode)\r\n }\r\n\r\n destroy() {\r\n if (this.domNode) {\r\n this.domNode.remove()\r\n this.domNode = null\r\n this.file = null\r\n }\r\n }\r\n\r\n operateFile(event, operate) {\r\n event.preventDefault()\r\n const fileId = this.file.dataset.id || ''\r\n const fileName = this.file.dataset.title || ''\r\n const fileDownloadUrl = this.file.href || ''\r\n if (fileId) {\r\n this.quill.emitter.emit('file-change', {\r\n operation: operate,\r\n data: { fileId, fileDownloadUrl },\r\n })\r\n }\r\n if (operate === 'download') {\r\n const a = document.createElement('a')\r\n a.href = fileDownloadUrl\r\n a.target = '_blank'\r\n a.id = 'exppub'\r\n a.download = fileName\r\n document.body.appendChild(a)\r\n const alink = document.getElementById('exppub')\r\n alink.click()\r\n alink.parentNode.removeChild(a)\r\n }\r\n this.destroy()\r\n }\r\n\r\n setPosition() {\r\n if (this.domNode && this.file) {\r\n const parent = this.quill.root.parentNode\r\n const child = this.file.querySelector('span')\r\n const containerRect = parent.getBoundingClientRect()\r\n const fileRect = child.getBoundingClientRect()\r\n this.css(this.domNode, {\r\n left: `${fileRect.left - containerRect.left}px`,\r\n top: `${fileRect.top - containerRect.top + 10}px`,\r\n })\r\n }\r\n }\r\n\r\n css(domNode, rules) {\r\n if (typeof rules === 'object') {\r\n for (const prop in rules) {\r\n if (prop) {\r\n if (Array.isArray(rules[prop])) {\r\n // 兼容IE11浏览器\r\n rules[prop].forEach((val) => {\r\n domNode.style[prop] = val\r\n })\r\n }\r\n else {\r\n domNode.style[prop] = rules[prop]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n formatDate(timestamp) {\r\n const date = new Date(timestamp)\r\n const year = date.getFullYear()\r\n // TODO\r\n const month = unshiftString(`${date.getMonth() + 1}`, 2, '0')\r\n const day = unshiftString(`${date.getDate()}`, 2, '0')\r\n const hour = unshiftString(`${date.getHours()}`, 2, '0')\r\n const minute = unshiftString(`${date.getMinutes()}`, 2, '0')\r\n return Number.isNaN(year) ? '--' : `${year}/${month}/${day} ${hour}:${minute}`\r\n }\r\n}\r\n"],"names":["File","Range","unshiftString"],"mappings":";;;;;;;;;AAKA,MAAM,QAAQ,MAAM,OAAO,OAAO;AAE3B,MAAM,QAAQ;AAAA,EAOnB,YAAY,OAAO,QAAQ;AAN3B;AACA;AACA;AACA;AACA;AAGE,SAAK,QAAQ;AACb,SAAK,OAAO;AACN,UAAA,WAAW,MAAM,KAAK,MAAM;AAClC,UAAM,QAAQ,KAAK,MAAM,SAAS,QAAQ;AACpC,UAAA,CAAC,UAAU,MAAM,IAAI,KAAK,MAAM,OAAO,WAAWA,KAAA,MAAM,KAAK;AAC7D,UAAA,SAAS,YAAY,SAAS,OAAO;AAC3C,SAAK,YAAY,IAAIC,UAAAA,MAAM,QAAQ,QAAQ,MAAM;AAEjD,UAAM,YAAY,OAAO,KAAK,KAAK,QAAQ,YAAY;AACjD,UAAA,oBAAoB,KAAK,WAAW,SAAS;AACnD,SAAK,WAAW;AAAA;AAAA;AAAA;AAAA,MAId;AAAA,MACA;AAAA,IAAA,EACA,KAAK,EAAE;AAET,SAAK,cAAc;AAAA,EAAA;AAAA,EAGrB,gBAAgB;AACT,SAAA,UAAU,SAAS,cAAc,KAAK;AAC3C,SAAK,QAAQ,YAAY;AACpB,SAAA,QAAQ,YAAY,KAAK;AAE9B,UAAM,cAAc,KAAK,QAAQ,cAAc,mBAAmB;AAClE,QAAI,aAAa;AACH,kBAAA,iBAAiB,SAAS,CAAC,UAAU;AAC1C,aAAA,YAAY,OAAO,MAAM;AAAA,MAAA,CAC/B;AAAA,IAAA;AAGH,UAAM,eAAe,KAAK,QAAQ,cAAc,oBAAoB;AACpE,QAAI,cAAc;AACH,mBAAA,iBAAiB,SAAS,CAAC,UAAU;AAC3C,aAAA,YAAY,OAAO,UAAU;AAAA,MAAA,CACnC;AAAA,IAAA;AAGH,UAAM,aAAa,KAAK,QAAQ,cAAc,kBAAkB;AAChE,QAAI,YAAY;AACH,iBAAA,iBAAiB,SAAS,CAAC,UAAU;AACzC,aAAA,YAAY,OAAO,QAAQ;AAChC,cAAM,QAAQ,IAAI,MAAM,EACrB,OAAO,KAAK,UAAU,KAAK,EAC3B,OAAO,KAAK,UAAU,MAAM;AAC/B,aAAK,MAAM,eAAe,OAAO,MAAM,QAAQ,IAAI;AACnD,aAAK,MAAM,aAAa,KAAK,UAAU,KAAK;AAAA,MAAA,CAC7C;AAAA,IAAA;AAGH,SAAK,YAAY;AACjB,SAAK,MAAM,KAAK,WAAW,YAAY,KAAK,OAAO;AAAA,EAAA;AAAA,EAGrD,UAAU;AACR,QAAI,KAAK,SAAS;AAChB,WAAK,QAAQ,OAAO;AACpB,WAAK,UAAU;AACf,WAAK,OAAO;AAAA,IAAA;AAAA,EACd;AAAA,EAGF,YAAY,OAAO,SAAS;AAC1B,UAAM,eAAe;AACrB,UAAM,SAAS,KAAK,KAAK,QAAQ,MAAM;AACvC,UAAM,WAAW,KAAK,KAAK,QAAQ,SAAS;AACtC,UAAA,kBAAkB,KAAK,KAAK,QAAQ;AAC1C,QAAI,QAAQ;AACL,WAAA,MAAM,QAAQ,KAAK,eAAe;AAAA,QACrC,WAAW;AAAA,QACX,MAAM,EAAE,QAAQ,gBAAgB;AAAA,MAAA,CACjC;AAAA,IAAA;AAEH,QAAI,YAAY,YAAY;AACpB,YAAA,IAAI,SAAS,cAAc,GAAG;AACpC,QAAE,OAAO;AACT,QAAE,SAAS;AACX,QAAE,KAAK;AACP,QAAE,WAAW;AACJ,eAAA,KAAK,YAAY,CAAC;AACrB,YAAA,QAAQ,SAAS,eAAe,QAAQ;AAC9C,YAAM,MAAM;AACN,YAAA,WAAW,YAAY,CAAC;AAAA,IAAA;AAEhC,SAAK,QAAQ;AAAA,EAAA;AAAA,EAGf,cAAc;AACR,QAAA,KAAK,WAAW,KAAK,MAAM;AACvB,YAAA,SAAS,KAAK,MAAM,KAAK;AAC/B,YAAM,QAAQ,KAAK,KAAK,cAAc,MAAM;AACtC,YAAA,gBAAgB,OAAO,sBAAsB;AAC7C,YAAA,WAAW,MAAM,sBAAsB;AACxC,WAAA,IAAI,KAAK,SAAS;AAAA,QACrB,MAAM,GAAG,SAAS,OAAO,cAAc,IAAI;AAAA,QAC3C,KAAK,GAAG,SAAS,MAAM,cAAc,MAAM,EAAE;AAAA,MAAA,CAC9C;AAAA,IAAA;AAAA,EACH;AAAA,EAGF,IAAI,SAAS,OAAO;AACd,QAAA,OAAO,UAAU,UAAU;AAC7B,iBAAW,QAAQ,OAAO;AACxB,YAAI,MAAM;AACR,cAAI,MAAM,QAAQ,MAAM,IAAI,CAAC,GAAG;AAE9B,kBAAM,IAAI,EAAE,QAAQ,CAAC,QAAQ;AACnB,sBAAA,MAAM,IAAI,IAAI;AAAA,YAAA,CACvB;AAAA,UAAA,OAEE;AACH,oBAAQ,MAAM,IAAI,IAAI,MAAM,IAAI;AAAA,UAAA;AAAA,QAClC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAGF,WAAW,WAAW;AACd,UAAA,OAAO,IAAI,KAAK,SAAS;AACzB,UAAA,OAAO,KAAK,YAAY;AAExB,UAAA,QAAQC,qBAAc,GAAG,KAAK,SAAa,IAAA,CAAC,IAAI,GAAG,GAAG;AACtD,UAAA,MAAMA,qBAAc,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG;AAC/C,UAAA,OAAOA,qBAAc,GAAG,KAAK,UAAU,IAAI,GAAG,GAAG;AACjD,UAAA,SAASA,qBAAc,GAAG,KAAK,YAAY,IAAI,GAAG,GAAG;AAC3D,WAAO,OAAO,MAAM,IAAI,IAAI,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM;AAAA,EAAA;AAEhF;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-module.cjs.js","sources":["../../../../../src/modules/file/modules/file-module.ts"],"sourcesContent":["import type FluentEditor from '../../../core/fluent-editor'\r\nimport Quill from 'quill'\r\nimport { File } from '../formats/file'\r\nimport { FileBar } from './file-bar'\r\n\r\nexport class FileModule {\r\n fileBar: FileBar\r\n\r\n static register() {\r\n Quill.register('formats/file', File, true)\r\n }\r\n\r\n constructor(public quill: FluentEditor) {\r\n this.quill = quill\r\n quill.root.addEventListener('click', event => this.clickEvent(event), false)\r\n }\r\n\r\n clickEvent(event: MouseEvent) {\r\n event.preventDefault()\r\n const target = event.target as HTMLElement\r\n const fileDom = target.closest('a.ql-file-item')\r\n if (fileDom) {\r\n if (this.fileBar) {\r\n this.fileBar.destroy()\r\n }\r\n this.fileBar = new FileBar(this.quill, fileDom)\r\n }\r\n else if (this.fileBar && !target.closest('.ql-file-bar')) {\r\n this.fileBar.destroy()\r\n this.fileBar = null\r\n }\r\n }\r\n}\r\n"],"names":["File","FileBar"],"mappings":";;;;;;;;AAKO,MAAM,WAAW;AAAA,EAOtB,YAAmB,OAAqB;AANxC;AAMmB,SAAA,QAAA;AACjB,SAAK,QAAQ;AACP,UAAA,KAAK,iBAAiB,SAAS,CAAA,UAAS,KAAK,WAAW,KAAK,GAAG,KAAK;AAAA,EAAA;AAAA,EAN7E,OAAO,WAAW;AACV,UAAA,SAAS,gBAAgBA,KAAAA,MAAM,IAAI;AAAA,EAAA;AAAA,EAQ3C,WAAW,OAAmB;AAC5B,UAAM,eAAe;AACrB,UAAM,SAAS,MAAM;AACf,UAAA,UAAU,OAAO,QAAQ,gBAAgB;AAC/C,QAAI,SAAS;AACX,UAAI,KAAK,SAAS;AAChB,aAAK,QAAQ,QAAQ;AAAA,MAAA;AAEvB,WAAK,UAAU,IAAIC,QAAAA,QAAQ,KAAK,OAAO,OAAO;AAAA,IAAA,WAEvC,KAAK,WAAW,CAAC,OAAO,QAAQ,cAAc,GAAG;AACxD,WAAK,QAAQ,QAAQ;AACrB,WAAK,UAAU;AAAA,IAAA;AAAA,EACjB;AAEJ;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"link.cjs.js","sources":["../../../../../src/modules/link/formats/link.ts"],"sourcesContent":["import type TypeInline from 'quill/blots/inline'\r\nimport Quill from 'quill'\r\nimport { hadProtocol, sanitize } from '../../../config/editor.utils'\r\n\r\nconst Inline = Quill.import('blots/inline') as typeof TypeInline\r\n\r\nexport class LinkBlot extends Inline {\r\n static blotName = 'link'\r\n static tagName = 'A'\r\n static SANITIZED_URL = 'about:blank'\r\n static PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel']\r\n static className = 'ql-normal-link'\r\n\r\n static autoProtocol: string = ''\r\n static create(value: string) {\r\n const node = super.create(value)\r\n let href = value\r\n if (!hadProtocol(href) && this.autoProtocol) {\r\n href = `${this.autoProtocol}://${value}`\r\n }\r\n href = this.sanitize(href)\r\n node.setAttribute('href', href)\r\n node.setAttribute('target', '_blank')\r\n return node\r\n }\r\n\r\n static formats(domNode: HTMLElement): string | null {\r\n return domNode.getAttribute('href')\r\n }\r\n\r\n static sanitize(url: string) {\r\n return sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL\r\n }\r\n\r\n format(name: string, value: any) {\r\n if (name !== this.statics.blotName || [false, null].includes(value)) {\r\n super.format(name, value)\r\n }\r\n else {\r\n this.domNode.setAttribute('href', LinkBlot.sanitize(value))\r\n }\r\n }\r\n}\r\n"],"names":["hadProtocol","sanitize"],"mappings":";;;;;;;AAIA,MAAM,SAAS,MAAM,OAAO,cAAc;AAEnC,MAAM,YAAN,MAAM,kBAAiB,OAAO;AAAA,EAQnC,OAAO,OAAO,OAAe;AACrB,UAAA,OAAO,MAAM,OAAO,KAAK;AAC/B,QAAI,OAAO;AACX,QAAI,CAACA,aAAAA,YAAY,IAAI,KAAK,KAAK,cAAc;AAC3C,aAAO,GAAG,KAAK,YAAY,MAAM,KAAK;AAAA,IAAA;AAEjC,WAAA,KAAK,SAAS,IAAI;AACpB,SAAA,aAAa,QAAQ,IAAI;AACzB,SAAA,aAAa,UAAU,QAAQ;AAC7B,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,QAAQ,SAAqC;AAC3C,WAAA,QAAQ,aAAa,MAAM;AAAA,EAAA;AAAA,EAGpC,OAAO,SAAS,KAAa;AAC3B,WAAOC,aAAAA,SAAS,KAAK,KAAK,kBAAkB,IAAI,MAAM,KAAK;AAAA,EAAA;AAAA,EAG7D,OAAO,MAAc,OAAY;AAC3B,QAAA,SAAS,KAAK,QAAQ,YAAY,CAAC,OAAO,IAAI,EAAE,SAAS,KAAK,GAAG;AAC7D,YAAA,OAAO,MAAM,KAAK;AAAA,IAAA,OAErB;AACH,WAAK,QAAQ,aAAa,QAAQ,UAAS,SAAS,KAAK,CAAC;AAAA,IAAA;AAAA,EAC5D;AAEJ;AAnCE,cADW,WACJ,YAAW;AAClB,cAFW,WAEJ,WAAU;AACjB,cAHW,WAGJ,iBAAgB;AACvB,cAJW,WAIJ,sBAAqB,CAAC,QAAQ,SAAS,UAAU,KAAK;AAC7D,cALW,WAKJ,aAAY;AAEnB,cAPW,WAOJ,gBAAuB;AAPzB,IAAM,WAAN;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.cjs.js","sources":["../../../../../src/modules/link/modules/tooltip.ts"],"sourcesContent":["import type { Parchment as TypeParchment } from 'quill'\r\nimport type FluentEditor from '../../../core/fluent-editor'\r\nimport Quill, { Range } from 'quill'\r\nimport Emitter from 'quill/core/emitter'\r\nimport { BaseTooltip } from 'quill/themes/base'\r\nimport { CHANGE_LANGUAGE_EVENT } from '../../../config'\r\nimport { hadProtocol, isNullOrUndefined } from '../../../config/editor.utils'\r\nimport { EN_US } from '../../../config/i18n/en-us'\r\nimport { debounce } from '../../../utils/debounce'\r\nimport { LinkBlot } from '../formats/link'\r\n\r\nexport class LinkTooltip extends BaseTooltip {\r\n static TEMPLATE: string = [\r\n `<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"${EN_US.linkplaceholder}\" data-video=\"Embed URL\" style=\"width: 225px;\">`,\r\n '<span class=\"ql-split\"></span>',\r\n '<a class=\"ql-preview\"><i class=\"icon-share\"></i></a>',\r\n '<a class=\"ql-remove\"><i class=\"icon-delete\"></i></a>',\r\n ].join('')\r\n\r\n isInputFocus: boolean\r\n isHover: boolean\r\n debouncedHideToolTip: any\r\n debouncedShowToolTip: any\r\n options: { autoProtocol: string } = {\r\n autoProtocol: 'https',\r\n }\r\n\r\n constructor(public quill: FluentEditor, bounds) {\r\n super(quill, bounds)\r\n this.setTemplate()\r\n this.isInputFocus = false\r\n this.isHover = false\r\n\r\n this.resolveOptions()\r\n LinkBlot.autoProtocol = this.options.autoProtocol\r\n this.debouncedHideToolTip = debounce(this.hideToolTip, 300)\r\n this.debouncedShowToolTip = debounce(this.showToolTip, 300)\r\n this.quill.emitter.on(CHANGE_LANGUAGE_EVENT, () => {\r\n this.setTemplate()\r\n })\r\n }\r\n\r\n setTemplate() {\r\n this.root.innerHTML = [\r\n `<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"${this.quill.getLangText('linkplaceholder')}\" data-video=\"Embed URL\" style=\"width: 225px;\">`,\r\n '<span class=\"ql-split\"></span>',\r\n '<a class=\"ql-preview\"><i class=\"icon-share\"></i></a>',\r\n '<a class=\"ql-remove\"><i class=\"icon-delete\"></i></a>',\r\n ].join('')\r\n this.textbox = this.root.querySelector('input[type=\"text\"]')\r\n this.listen()\r\n }\r\n\r\n resolveOptions() {\r\n this.options = {\r\n autoProtocol: 'https',\r\n }\r\n const value = this.quill.options.autoProtocol\r\n if (value && typeof value === 'string') {\r\n this.options.autoProtocol = value\r\n }\r\n else if (typeof value === 'boolean' && !value) {\r\n this.options.autoProtocol = ''\r\n }\r\n }\r\n\r\n shouldHide() {\r\n return !this.isHover && !this.isInputFocus\r\n }\r\n\r\n hideToolTip() {\r\n if (this.shouldHide()) {\r\n this.hide()\r\n }\r\n }\r\n\r\n showToolTip(name, value, range) {\r\n if (!this.shouldHide()) {\r\n this.edit(name, value, range)\r\n }\r\n }\r\n\r\n handleMouseLeave() {\r\n this.isHover = false\r\n this.debouncedHideToolTip()\r\n }\r\n\r\n handleMouseEnter(event: MouseEvent) {\r\n const isTooltipShow = !this.root.classList.contains('ql-hidden')\r\n if (isTooltipShow) {\r\n return\r\n }\r\n\r\n if (this.isInputFocus) {\r\n this.save()\r\n }\r\n this.isHover = true\r\n const linkNode = event.target as HTMLElement\r\n const preview = LinkBlot.formats(linkNode)\r\n if (!preview || preview.startsWith('#')) {\r\n return\r\n }\r\n const linkBlot = Quill.find(linkNode) as TypeParchment.Blot\r\n const index = this.quill.getIndex(linkBlot)\r\n const [link, offset] = this.quill.scroll.descendant(\r\n LinkBlot,\r\n index,\r\n )\r\n const length = link && link.length()\r\n this.linkRange = new Range(index - offset, length)\r\n this.debouncedShowToolTip('link', preview, this.linkRange)\r\n }\r\n\r\n listen() {\r\n super.listen()\r\n this.root.querySelector('a.ql-remove').addEventListener('click', (event) => {\r\n if (!isNullOrUndefined(this.linkRange)) {\r\n const range = this.linkRange\r\n this.restoreFocus()\r\n this.quill.formatText(range, 'link', false, Emitter.sources.API)\r\n delete this.linkRange\r\n }\r\n event.preventDefault()\r\n this.hide()\r\n })\r\n\r\n this.quill.root.addEventListener(\r\n 'mouseover',\r\n (event) => {\r\n const target = event.target as HTMLElement\r\n if (\r\n (target.tagName.toUpperCase() !== 'A'\r\n || !target.classList.contains(LinkBlot.className))\r\n && !target.closest(`a.${LinkBlot.className}`)\r\n ) {\r\n return\r\n }\r\n this.handleMouseEnter(event)\r\n },\r\n false,\r\n )\r\n\r\n this.quill.root.addEventListener(\r\n 'mouseout',\r\n (event) => {\r\n const target = event.target as HTMLElement\r\n if (target.tagName.toUpperCase() !== 'A' && !target.closest(`a.${LinkBlot.className}`)) {\r\n return\r\n }\r\n this.handleMouseLeave()\r\n },\r\n false,\r\n )\r\n\r\n this.root.addEventListener(\r\n 'mouseenter',\r\n () => {\r\n this.isHover = true\r\n },\r\n false,\r\n )\r\n\r\n this.root.addEventListener('mouseleave', this.handleMouseLeave.bind(this), false)\r\n\r\n this.root.querySelector('a.ql-preview').addEventListener('click', (event) => {\r\n const link = LinkBlot.sanitize(this.textbox.value)\r\n window.open(link, '_blank')\r\n event.preventDefault()\r\n })\r\n this.root.querySelector('input[type=\"text\"]').addEventListener('focus', () => {\r\n this.isInputFocus = true\r\n })\r\n this.root.querySelector('input[type=\"text\"]').addEventListener('blur', () => {\r\n this.isInputFocus = false\r\n this.save()\r\n })\r\n this.quill.on(\r\n Emitter.events.SELECTION_CHANGE,\r\n (range, _oldRange, source) => {\r\n if (isNullOrUndefined(range)) return\r\n if (source === Emitter.sources.USER) {\r\n const [link, offset] = this.quill.scroll.descendant(\r\n LinkBlot,\r\n range.index,\r\n )\r\n\r\n if (!isNullOrUndefined(link)) {\r\n this.linkRange = new Range(range.index - offset, link.length())\r\n const preview = LinkBlot.formats(link.domNode)\r\n if (!preview.startsWith('#')) {\r\n this.edit('link', preview, this.linkRange)\r\n }\r\n return\r\n }\r\n }\r\n if (this.shouldHide()) {\r\n this.hide()\r\n }\r\n },\r\n )\r\n this.quill.on(\r\n Emitter.events.TEXT_CHANGE,\r\n () => {\r\n const selection = this.quill.getSelection()\r\n const index = selection && selection.index\r\n setTimeout(() => {\r\n const link = this.quill.scroll.descendant(\r\n LinkBlot,\r\n index,\r\n )[0]\r\n if (!link) {\r\n this.handleMouseLeave()\r\n }\r\n })\r\n },\r\n )\r\n }\r\n\r\n save() {\r\n let value = this.textbox.value\r\n if (!value) return\r\n this.textbox.value = ''\r\n switch (this.root.getAttribute('data-mode')) {\r\n case 'link': {\r\n const { scrollTop } = this.quill.root\r\n if (this.options.autoProtocol) {\r\n value = this.addHttpProtocol(value)\r\n }\r\n\r\n if (this.linkRange) {\r\n this.quill.formatText(\r\n this.linkRange,\r\n 'link',\r\n value,\r\n Emitter.sources.USER,\r\n )\r\n this.restoreFocus()\r\n }\r\n else {\r\n this.restoreFocus()\r\n this.quill.format('link', value, Emitter.sources.USER)\r\n }\r\n this.quill.root.scrollTop = scrollTop\r\n break\r\n }\r\n case 'formula': {\r\n const range = this.quill.getSelection(true)\r\n if (!isNullOrUndefined(range)) {\r\n const index = range.index + range.length\r\n this.quill.insertEmbed(\r\n index,\r\n this.root.getAttribute('data-mode'),\r\n value,\r\n Emitter.sources.USER,\r\n )\r\n if (this.root.getAttribute('data-mode') === 'formula') {\r\n this.quill.insertText(index + 1, ' ', Emitter.sources.USER)\r\n }\r\n this.quill.setSelection(index + 2, Emitter.sources.USER)\r\n }\r\n break\r\n }\r\n case 'video': {\r\n const range = this.quill.getSelection(true)\r\n this.quill.insertText(range.index, '\\n', Emitter.sources.USER)\r\n this.quill.insertEmbed(range.index + 1, 'video', { src: value }, Emitter.sources.USER)\r\n this.quill.insertText(range.index + 2, '\\n', Emitter.sources.USER)\r\n this.quill.setSelection(range.index + 3, Emitter.sources.SILENT)\r\n this.textbox.value = ''\r\n this.hide()\r\n break\r\n }\r\n default:\r\n }\r\n }\r\n\r\n position(reference) {\r\n const left = reference.left\r\n const top = reference.bottom + this.quill.root.scrollTop\r\n this.root.style.left = `${left}px`\r\n this.root.style.top = `${top}px`\r\n this.root.classList.remove('ql-flip')\r\n const containerBounds = this.boundsContainer.getBoundingClientRect()\r\n const rootBounds = this.root.getBoundingClientRect()\r\n let shift = 0\r\n if (rootBounds.right > containerBounds.right) {\r\n shift = containerBounds.right - rootBounds.right\r\n this.root.style.left = `${left + shift}px`\r\n }\r\n if (rootBounds.left < containerBounds.left) {\r\n shift = containerBounds.left - rootBounds.left\r\n this.root.style.left = `${left + shift}px`\r\n }\r\n if (rootBounds.bottom > containerBounds.bottom) {\r\n const height = rootBounds.bottom - rootBounds.top\r\n const verticalShift = reference.bottom - reference.top + height\r\n const fixedTop = top - verticalShift\r\n this.root.style.top = `${fixedTop < 0 ? this.quill.root.scrollTop + reference.top : fixedTop}px`\r\n this.root.classList.add('ql-flip')\r\n }\r\n return shift\r\n }\r\n\r\n // @ts-expect-error\r\n edit(mode: string = 'link', preview = null, range) {\r\n this.linkRange = range || this.quill.selection.savedRange\r\n this.root.classList.remove('ql-hidden')\r\n this.root.classList.add('ql-editing')\r\n if (!isNullOrUndefined(preview)) {\r\n this.textbox.value = preview\r\n }\r\n else if (mode !== this.root.getAttribute('data-mode')) {\r\n this.textbox.value = ''\r\n }\r\n this.position(this.quill.getBounds(range || this.quill.selection.savedRange))\r\n if (this.textbox.value === '') {\r\n this.textbox.focus()\r\n }\r\n this.textbox.setAttribute(\r\n 'placeholder',\r\n this.textbox.getAttribute(`data-${mode}`) || '',\r\n )\r\n this.root.setAttribute('data-mode', mode)\r\n }\r\n\r\n show() {\r\n super.show()\r\n this.root.removeAttribute('data-mode')\r\n }\r\n\r\n addHttpProtocol(url: string) {\r\n let result = url\r\n if (!url) {\r\n return ''\r\n }\r\n if (!hadProtocol(url)) {\r\n result = `${this.options.autoProtocol}://${url}`\r\n }\r\n return result\r\n }\r\n}\r\n"],"names":["BaseTooltip","LinkBlot","debounce","CHANGE_LANGUAGE_EVENT","link","Range","isNullOrUndefined","hadProtocol","EN_US"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"formats.cjs.js","sources":["../../../../src/modules/mathlive/formats.ts"],"sourcesContent":["import type { MathfieldElement } from 'mathlive'\r\nimport type { Root } from 'parchment'\r\nimport Quill from 'quill'\r\n\r\nconst Parchment = Quill.import('parchment')\r\nexport type MathliveBlotMode = 'dialog' | 'only-read'\r\nexport class MathliveBlot extends Parchment.EmbedBlot {\r\n static blotName = 'mathlive'\r\n static tagName = 'math-field'\r\n static className = 'ql-math-field'\r\n mode: MathliveBlotMode\r\n\r\n static create(obj: { value: string, mode: MathliveBlotMode }) {\r\n const el = super.create() as MathfieldElement\r\n el.setAttribute('mode', obj.mode)\r\n el.classList.add('view')\r\n el.innerHTML = obj.value\r\n el.setValue(obj.value)\r\n return el\r\n }\r\n\r\n static value(domNode: MathfieldElement) {\r\n return {\r\n value: domNode.value,\r\n mode: domNode.getAttribute('mode'),\r\n }\r\n }\r\n\r\n constructor(scroll: Root, public domNode: MathfieldElement) {\r\n super(scroll, domNode)\r\n domNode.setAttribute('contenteditable', 'false')\r\n this.mode = (domNode.getAttribute('mode') || 'only-read') as MathliveBlotMode\r\n }\r\n\r\n html() {\r\n const formula = this.domNode.value\r\n return `<math-field class=\"ql-math-field view\" contenteditable=\"false\" mode=\"${this.mode}\">${formula}</math-field>`\r\n }\r\n}\r\n"],"names":[],"mappings":";;;;;;AAIA,MAAM,YAAY,MAAM,OAAO,WAAW;AAE7B,MAAA,qBAAqB,UAAU,UAAU;AAAA,EAsBpD,YAAY,QAAqB,SAA2B;AAC1D,UAAM,QAAQ,OAAO;AAnBvB;AAkBiC,SAAA,UAAA;AAEvB,YAAA,aAAa,mBAAmB,OAAO;AAC/C,SAAK,OAAQ,QAAQ,aAAa,MAAM,KAAK;AAAA,EAAA;AAAA,EAnB/C,OAAO,OAAO,KAAgD;AACtD,UAAA,KAAK,MAAM,OAAO;AACrB,OAAA,aAAa,QAAQ,IAAI,IAAI;AAC7B,OAAA,UAAU,IAAI,MAAM;AACvB,OAAG,YAAY,IAAI;AAChB,OAAA,SAAS,IAAI,KAAK;AACd,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,MAAM,SAA2B;AAC/B,WAAA;AAAA,MACL,OAAO,QAAQ;AAAA,MACf,MAAM,QAAQ,aAAa,MAAM;AAAA,IACnC;AAAA,EAAA;AAAA,EASF,OAAO;AACC,UAAA,UAAU,KAAK,QAAQ;AAC7B,WAAO,wEAAwE,KAAK,IAAI,KAAK,OAAO;AAAA,EAAA;AAExG;AA/BE,cADW,cACJ,YAAW;AAClB,cAFW,cAEJ,WAAU;AACjB,cAHW,cAGJ,aAAY;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.cjs.js","sources":["../../../../src/modules/mathlive/tooltip.ts"],"sourcesContent":["import type { MathfieldElement } from 'mathlive'\r\nimport type { Bounds } from 'quill/core/selection'\r\nimport type TypeTooltip from 'quill/ui/tooltip'\r\nimport Quill from 'quill'\r\nimport { isString } from '../../utils/is'\r\n\r\nconst Delta = Quill.import('delta')\r\nconst Tooltip = Quill.import('ui/tooltip') as typeof TypeTooltip\r\nexport class MathliveTooltip extends Tooltip {\r\n static TEMPLATE = ``\r\n\r\n mathliveDom: MathfieldElement\r\n editValue?: string\r\n\r\n constructor(quill: Quill, boundsContainer?: HTMLElement) {\r\n super(quill, boundsContainer)\r\n this.mathliveDom = document.createElement('math-field') as MathfieldElement\r\n this.mathliveDom.classList.add('ql-math-field')\r\n this.root.appendChild(this.mathliveDom)\r\n this.root.classList.add('math-field-tooltip')\r\n this.listen()\r\n }\r\n\r\n listen() {\r\n this.mathliveDom.addEventListener('blur', (event) => {\r\n this.hide()\r\n })\r\n this.root.addEventListener('keydown', (event) => {\r\n if (event.key === 'Enter') {\r\n event.preventDefault()\r\n this.save()\r\n }\r\n else if (event.key === 'Escape') {\r\n event.preventDefault()\r\n this.cancel()\r\n }\r\n })\r\n }\r\n\r\n cancel() {\r\n this.hide()\r\n this.restoreFocus()\r\n }\r\n\r\n edit(value?: string) {\r\n this.editValue = value\r\n this.root.classList.remove('ql-hidden')\r\n this.root.classList.add('ql-editing')\r\n this.mathliveDom.setValue(value || '')\r\n const range = this.quill.getSelection()\r\n const bounds = range ? this.quill.getBounds(range) : null\r\n if (bounds != null) {\r\n this.position(bounds)\r\n }\r\n this.show()\r\n this.mathliveDom.focus()\r\n }\r\n\r\n restoreFocus() {\r\n this.mathliveDom.blur()\r\n this.quill.focus({ preventScroll: true })\r\n }\r\n\r\n save() {\r\n const range = this.quill.getSelection(true)\r\n const inputValue = this.mathliveDom.value\r\n if (!inputValue) return\r\n const contentData = this.quill.getContents(range.index, 1).ops[0].insert\r\n let deleteCount = 0\r\n if (!isString(contentData) && contentData.mathlive) {\r\n deleteCount += 1\r\n }\r\n const delta = new Delta()\r\n .retain(range.index)\r\n .delete(Math.max(deleteCount, range.length))\r\n .insert({ mathlive: { value: inputValue, mode: 'dialog' } })\r\n this.quill.updateContents(delta, Quill.sources.USER)\r\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT)\r\n this.hide()\r\n }\r\n\r\n position(reference: Bounds) {\r\n const adjustedReference = { ...reference }\r\n adjustedReference.left = reference.left + this.root.offsetWidth / 2 - reference.width / 2\r\n return super.position(adjustedReference)\r\n }\r\n}\r\n"],"names":["isString"],"mappings":";;;;;;;AAMA,MAAM,QAAQ,MAAM,OAAO,OAAO;AAClC,MAAM,UAAU,MAAM,OAAO,YAAY;AAClC,MAAM,wBAAwB,QAAQ;AAAA,EAM3C,YAAY,OAAc,iBAA+B;AACvD,UAAM,OAAO,eAAe;AAJ9B;AACA;AAIO,SAAA,cAAc,SAAS,cAAc,YAAY;AACjD,SAAA,YAAY,UAAU,IAAI,eAAe;AACzC,SAAA,KAAK,YAAY,KAAK,WAAW;AACjC,SAAA,KAAK,UAAU,IAAI,oBAAoB;AAC5C,SAAK,OAAO;AAAA,EAAA;AAAA,EAGd,SAAS;AACP,SAAK,YAAY,iBAAiB,QAAQ,CAAC,UAAU;AACnD,WAAK,KAAK;AAAA,IAAA,CACX;AACD,SAAK,KAAK,iBAAiB,WAAW,CAAC,UAAU;AAC3C,UAAA,MAAM,QAAQ,SAAS;AACzB,cAAM,eAAe;AACrB,aAAK,KAAK;AAAA,MAAA,WAEH,MAAM,QAAQ,UAAU;AAC/B,cAAM,eAAe;AACrB,aAAK,OAAO;AAAA,MAAA;AAAA,IACd,CACD;AAAA,EAAA;AAAA,EAGH,SAAS;AACP,SAAK,KAAK;AACV,SAAK,aAAa;AAAA,EAAA;AAAA,EAGpB,KAAK,OAAgB;AACnB,SAAK,YAAY;AACZ,SAAA,KAAK,UAAU,OAAO,WAAW;AACjC,SAAA,KAAK,UAAU,IAAI,YAAY;AAC/B,SAAA,YAAY,SAAS,SAAS,EAAE;AAC/B,UAAA,QAAQ,KAAK,MAAM,aAAa;AACtC,UAAM,SAAS,QAAQ,KAAK,MAAM,UAAU,KAAK,IAAI;AACrD,QAAI,UAAU,MAAM;AAClB,WAAK,SAAS,MAAM;AAAA,IAAA;AAEtB,SAAK,KAAK;AACV,SAAK,YAAY,MAAM;AAAA,EAAA;AAAA,EAGzB,eAAe;AACb,SAAK,YAAY,KAAK;AACtB,SAAK,MAAM,MAAM,EAAE,eAAe,MAAM;AAAA,EAAA;AAAA,EAG1C,OAAO;AACL,UAAM,QAAQ,KAAK,MAAM,aAAa,IAAI;AACpC,UAAA,aAAa,KAAK,YAAY;AACpC,QAAI,CAAC,WAAY;AACX,UAAA,cAAc,KAAK,MAAM,YAAY,MAAM,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE;AAClE,QAAI,cAAc;AAClB,QAAI,CAACA,GAAAA,SAAS,WAAW,KAAK,YAAY,UAAU;AACnC,qBAAA;AAAA,IAAA;AAEX,UAAA,QAAQ,IAAI,MAAA,EACf,OAAO,MAAM,KAAK,EAClB,OAAO,KAAK,IAAI,aAAa,MAAM,MAAM,CAAC,EAC1C,OAAO,EAAE,UAAU,EAAE,OAAO,YAAY,MAAM,SAAS,GAAG;AAC7D,SAAK,MAAM,eAAe,OAAO,MAAM,QAAQ,IAAI;AACnD,SAAK,MAAM,aAAa,MAAM,QAAQ,GAAG,MAAM,QAAQ,MAAM;AAC7D,SAAK,KAAK;AAAA,EAAA;AAAA,EAGZ,SAAS,WAAmB;AACpB,UAAA,oBAAoB,EAAE,GAAG,UAAU;AACvB,sBAAA,OAAO,UAAU,OAAO,KAAK,KAAK,cAAc,IAAI,UAAU,QAAQ;AACjF,WAAA,MAAM,SAAS,iBAAiB;AAAA,EAAA;AAE3C;AA7EE,cADW,iBACJ,YAAW;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs.js","sources":["../../../../src/modules/mention/constants.ts"],"sourcesContent":["export const ON_MENTION_LINK_REMOVE = 'mention-link/remove'\r\nexport const MENTION_CHAR = 'mentionChar'\r\nexport const DEFAULT_MENTION_CHAR = '@'\r\n"],"names":[],"mappings":";;AAAO,MAAM,yBAAyB;AAC/B,MAAM,eAAe;AACrB,MAAM,uBAAuB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mention-link.cjs.js","sources":["../../../../src/modules/mention/mention-link.ts"],"sourcesContent":["import type TypeEmbed from 'quill/blots/embed'\r\nimport type TypeScroll from 'quill/blots/scroll'\r\nimport Quill from 'quill'\r\nimport { DEFAULT_MENTION_CHAR, MENTION_CHAR, ON_MENTION_LINK_REMOVE } from './constants'\r\n\r\nconst Embed = Quill.import('blots/embed') as typeof TypeEmbed\r\n\r\nexport class MentionLink extends Embed {\r\n static blotName: string\r\n static tagName: string\r\n static className: string\r\n mentionData: any\r\n\r\n static create(data) {\r\n let node: HTMLElement\r\n if (data.link) {\r\n node = document.createElement('a')\r\n node.setAttribute('href', data.link)\r\n node.setAttribute('target', data.target)\r\n }\r\n else {\r\n node = document.createElement(this.tagName)\r\n }\r\n node.classList.add(this.className)\r\n node.dataset.mentionId = data.name || (data.mention && data.mention[data.searchKey || 'name']) || ''\r\n node.setAttribute('title', data.text)\r\n node.setAttribute(MENTION_CHAR, data.char)\r\n node.textContent = data.char + data.text\r\n return node\r\n }\r\n\r\n static value(domNode: HTMLElement) {\r\n const value: Record<string, any> = {\r\n char: domNode.getAttribute(MENTION_CHAR) || DEFAULT_MENTION_CHAR,\r\n text: domNode.getAttribute('title'),\r\n name: domNode.dataset.mentionId,\r\n }\r\n if (domNode.tagName.toLowerCase() === 'a' && domNode.hasAttribute('href')) {\r\n value.link = domNode.getAttribute('href')\r\n value.target = domNode.getAttribute('target')\r\n }\r\n return value\r\n }\r\n\r\n constructor(public scroll: TypeScroll, domNode, data) {\r\n super(scroll, domNode)\r\n this.mentionData = data\r\n }\r\n\r\n value() {\r\n // fix: 将@提醒内容加入到 Delta 里,以解决输入空格,@提醒内容被删除的问题\r\n // return ' ';\r\n return super.value()\r\n }\r\n\r\n remove() {\r\n this.scroll.emitter.emit(ON_MENTION_LINK_REMOVE, this.mentionData)\r\n return super.remove()\r\n }\r\n}\r\n\r\nMentionLink.blotName = 'mention'\r\nMentionLink.tagName = 'span'\r\nMentionLink.className = 'ql-mention-link'\r\n"],"names":["MENTION_CHAR","DEFAULT_MENTION_CHAR","ON_MENTION_LINK_REMOVE"],"mappings":";;;;;;;AAKA,MAAM,QAAQ,MAAM,OAAO,aAAa;AAEjC,MAAM,oBAAoB,MAAM;AAAA,EAqCrC,YAAmB,QAAoB,SAAS,MAAM;AACpD,UAAM,QAAQ,OAAO;AAlCvB;AAiCmB,SAAA,SAAA;AAEjB,SAAK,cAAc;AAAA,EAAA;AAAA,EAjCrB,OAAO,OAAO,MAAM;AACd,QAAA;AACJ,QAAI,KAAK,MAAM;AACN,aAAA,SAAS,cAAc,GAAG;AAC5B,WAAA,aAAa,QAAQ,KAAK,IAAI;AAC9B,WAAA,aAAa,UAAU,KAAK,MAAM;AAAA,IAAA,OAEpC;AACI,aAAA,SAAS,cAAc,KAAK,OAAO;AAAA,IAAA;AAEvC,SAAA,UAAU,IAAI,KAAK,SAAS;AAC5B,SAAA,QAAQ,YAAY,KAAK,QAAS,KAAK,WAAW,KAAK,QAAQ,KAAK,aAAa,MAAM,KAAM;AAC7F,SAAA,aAAa,SAAS,KAAK,IAAI;AAC/B,SAAA,aAAaA,wBAAc,KAAK,IAAI;AACpC,SAAA,cAAc,KAAK,OAAO,KAAK;AAC7B,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,MAAM,SAAsB;AACjC,UAAM,QAA6B;AAAA,MACjC,MAAM,QAAQ,aAAaA,UAAAA,YAAY,KAAKC,UAAA;AAAA,MAC5C,MAAM,QAAQ,aAAa,OAAO;AAAA,MAClC,MAAM,QAAQ,QAAQ;AAAA,IACxB;AACI,QAAA,QAAQ,QAAQ,YAAY,MAAM,OAAO,QAAQ,aAAa,MAAM,GAAG;AACnE,YAAA,OAAO,QAAQ,aAAa,MAAM;AAClC,YAAA,SAAS,QAAQ,aAAa,QAAQ;AAAA,IAAA;AAEvC,WAAA;AAAA,EAAA;AAAA,EAQT,QAAQ;AAGN,WAAO,MAAM,MAAM;AAAA,EAAA;AAAA,EAGrB,SAAS;AACP,SAAK,OAAO,QAAQ,KAAKC,UAAA,wBAAwB,KAAK,WAAW;AACjE,WAAO,MAAM,OAAO;AAAA,EAAA;AAExB;AAnDE,cADW,aACJ;AACP,cAFW,aAEJ;AACP,cAHW,aAGJ;AAmDT,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,YAAY;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mention.cjs.js","sources":["../../../../src/modules/mention/mention.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport { isNullOrUndefined } from '../../config/editor.utils'\r\nimport { DEFAULT_MENTION_CHAR, ON_MENTION_LINK_REMOVE } from './constants'\r\nimport { MentionLink } from './mention-link'\r\n\r\nconst Delta = Quill.import('delta')\r\nconst Parchment = Quill.import('parchment')\r\nconst { Scope } = Parchment\r\n\r\nexport interface MentionOption {\r\n containerClass?: string\r\n // dataAttributes?: string[]\r\n defaultLink?: string\r\n itemActiveClass?: string\r\n itemKey: string\r\n itemClass?: string\r\n listClass?: string\r\n listHideClass?: string\r\n maxHeight?: number\r\n mentionChar?: string\r\n remove?: (data: any) => void\r\n renderMentionItem?: (data: any) => string | HTMLElement\r\n renderMentionText?: (data: any) => string | HTMLElement\r\n search?: (term: string) => Promise<any[]> | any[]\r\n searchKey: string\r\n select?: (data: any) => void\r\n target?: string\r\n}\r\n\r\nexport class Mention {\r\n private readonly options: MentionOption\r\n private readonly mentionListEL: HTMLUListElement\r\n private activeMentionIndex = 0\r\n private latestMentionList: any[]\r\n private latestMentionCharPos: number\r\n private latestCaretPos: number\r\n private searchTerm = ''\r\n private needInsertBr = true\r\n private readonly defaultOptions: MentionOption = {\r\n defaultLink: '#',\r\n target: '_blank',\r\n mentionChar: DEFAULT_MENTION_CHAR,\r\n maxHeight: 200,\r\n renderMentionItem(data: any) {\r\n let mentionItem = data.name || data.id\r\n if (this.itemKey) {\r\n mentionItem = data[this.itemKey]\r\n }\r\n const dom = document.createElement('SPAN')\r\n dom.textContent = mentionItem\r\n return dom\r\n },\r\n renderMentionText(data: any) {\r\n let mentionText = data.name || data.id\r\n if (this.itemKey) {\r\n mentionText = data[this.itemKey]\r\n }\r\n return `${mentionText}`\r\n },\r\n containerClass: 'ql-mention-list-container',\r\n listClass: 'ql-mention-list',\r\n listHideClass: 'ql-mention-list--hide',\r\n itemClass: 'ql-mention-item',\r\n itemActiveClass: 'ql-mention-item--active',\r\n itemKey: 'name',\r\n searchKey: 'name',\r\n // dataAttributes: ['id'],\r\n select(_data: any) {},\r\n remove(_data: any) {},\r\n }\r\n\r\n static register() {\r\n Quill.register(MentionLink)\r\n }\r\n\r\n // @ts-ignore\r\n constructor(private quill: Quill, options: MentionOption) {\r\n if (!options.search) {\r\n console.warn('please provide a search function!')\r\n return\r\n }\r\n\r\n this.options = Object.assign(this.defaultOptions, options)\r\n const container = document.createElement('div')\r\n container.classList.add('ql-mention-list-container')\r\n if (this.options.containerClass !== 'ql-mention-list-container') {\r\n container.classList.add(this.options.containerClass)\r\n }\r\n this.mentionListEL = document.createElement('ul')\r\n this.mentionListEL.classList.add(this.options.listClass, this.options.listHideClass)\r\n this.mentionListEL.style.cssText += `\r\n max-height: ${this.options.maxHeight}px;\r\n `\r\n\r\n quill.on(Quill.events.TEXT_CHANGE, this.handleTextChange)\r\n quill.keyboard.addBinding({ key: 'ArrowUp' }, this.handleArrowUpKey)\r\n quill.keyboard.addBinding({ key: 'ArrowDown' }, this.handleArrowDownKey)\r\n quill.keyboard.addBinding({ key: 'Enter' }, this.handleEnterKey)\r\n quill.keyboard.addBinding({ key: 'Tab' }, this.handleEnterKey)\r\n quill.keyboard.addBinding({ key: 'Escape' }, this.handleEscapeKey)\r\n quill.keyboard.bindings.Enter.unshift(quill.keyboard.bindings.Enter.pop())\r\n quill.keyboard.bindings.Tab.unshift(quill.keyboard.bindings.Tab.pop())\r\n quill.keyboard.bindings.Escape.unshift(quill.keyboard.bindings.Escape.pop())\r\n\r\n const customKeyboardEnter = {\r\n key: 'Enter',\r\n shiftKey: null,\r\n handler: (range, context) => {\r\n const lineFormats = Object.keys(context.format).reduce(\r\n (formats, format) => {\r\n if (\r\n this.quill.scroll.query(format, Scope.BLOCK)\r\n && !Array.isArray(context.format[format])\r\n ) {\r\n formats[format] = context.format[format]\r\n }\r\n return formats\r\n },\r\n {},\r\n )\r\n\r\n // fix: 解决@提醒之后插入多余空行和光标位置不对的问题\r\n let selectionIndex = range.index - this.searchTerm.length\r\n let delta = new Delta()\r\n .retain(range.index)\r\n .delete(range.length)\r\n if (this.needInsertBr) {\r\n delta = delta.insert('\\n', lineFormats)\r\n selectionIndex = range.index + 1\r\n }\r\n\r\n this.quill.updateContents(delta, Quill.sources.USER)\r\n this.quill.setSelection(selectionIndex, Quill.sources.SILENT)\r\n this.quill.focus()\r\n\r\n Object.keys(context.format).forEach((name) => {\r\n if (!isNullOrUndefined(lineFormats[name])) return\r\n if (Array.isArray(context.format[name])) return\r\n if (name === 'code' || name === 'link') return\r\n this.quill.format(name, context.format[name], Quill.sources.USER)\r\n })\r\n\r\n this.needInsertBr = true // 标记是否是输入@提醒的Enter\r\n },\r\n }\r\n\r\n // 用自定义的Enter替换内置的Enter\r\n quill.keyboard.bindings.Enter = quill.keyboard.bindings.Enter.map((item) => {\r\n const buildinKeyboardEnter = item.format === undefined && item.shiftKey === null\r\n if (buildinKeyboardEnter) {\r\n return customKeyboardEnter\r\n }\r\n else {\r\n return item\r\n }\r\n })\r\n\r\n this.on('click', this.handleMouseClick)\r\n this.on('mouseover', this.handleMouseEnter)\r\n quill.emitter.on(ON_MENTION_LINK_REMOVE, async ({ mention, name }) => {\r\n const [result] = (mention && [mention]) || (await this.options.search(name))\r\n this.options.remove(result)\r\n })\r\n container.appendChild(this.mentionListEL)\r\n quill.container.parentElement.insertBefore(container, quill.container)\r\n }\r\n\r\n on(eventName, callback) {\r\n this.mentionListEL.addEventListener(eventName, (evt) => {\r\n let\r\n target = evt.target\r\n let targetItemEL\r\n\r\n while (this.mentionListEL.contains(target) && target !== this.mentionListEL) {\r\n if (target.classList.contains(this.options.itemClass)) {\r\n targetItemEL = target\r\n }\r\n target = target.parentElement\r\n }\r\n\r\n if (targetItemEL) {\r\n callback.call(this, targetItemEL, this.getMentionItemIndex(targetItemEL))\r\n }\r\n })\r\n }\r\n\r\n getMentionItemIndex(itemEl: Element) {\r\n return [].reduce.call(this.mentionListEL.children, (index, item, idx) => item === itemEl ? idx : index, -1)\r\n }\r\n\r\n handleTextChange = (_delta, _oldDelta, source) => {\r\n // defer handler to make sure that we can get correct quill selection range.\r\n setTimeout(() => {\r\n if (Quill.sources.USER === source) {\r\n const range = this.quill.getSelection()\r\n if (!range) {\r\n return\r\n }\r\n\r\n const caretPos = this.latestCaretPos = range.index\r\n // beforeCaretText的计算有问题,没有把图片内容和@提醒内容的非字符内容算进去\r\n const content = this.quill.getContents()\r\n const beforeCaretText = content.reduce((newText, op) => {\r\n if (typeof op.insert === 'string') {\r\n return (newText += op.insert)\r\n }\r\n else {\r\n return (newText += ' ') // 将图片内容和@提醒内容的非字符内容置为' ',算一个位置\r\n }\r\n }, '')\r\n const mentionCharPos = beforeCaretText.lastIndexOf(this.options.mentionChar)\r\n\r\n if (mentionCharPos > -1) {\r\n const searchTerm = beforeCaretText.substring(mentionCharPos + this.options.mentionChar.length, caretPos)\r\n this.searchTerm = searchTerm\r\n if (!''.startsWith.call(searchTerm, ' ')) {\r\n this.latestMentionCharPos = mentionCharPos\r\n this.searchMentionListByTerm(searchTerm)\r\n }\r\n else {\r\n this.hideMentionList()\r\n }\r\n }\r\n else {\r\n this.hideMentionList()\r\n }\r\n }\r\n })\r\n }\r\n\r\n handleMouseClick(_itemEl: HTMLLIElement, index: number) {\r\n this.selectMentionItem(index, true)\r\n this.quill.focus()\r\n }\r\n\r\n handleMouseEnter(_itemEl: HTMLLIElement, index: number) {\r\n this.activeMentionIndex = index\r\n this.highlightMentionItem(index)\r\n }\r\n\r\n handleArrowUpKey = () => {\r\n if (this.isOpen()) {\r\n this.activeMentionIndex\r\n = (this.activeMentionIndex + this.latestMentionList.length - 1) % this.latestMentionList.length\r\n this.highlightMentionItem(this.activeMentionIndex)\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n handleArrowDownKey = () => {\r\n if (this.isOpen()) {\r\n this.activeMentionIndex = (this.activeMentionIndex + 1) % this.latestMentionList.length\r\n this.highlightMentionItem(this.activeMentionIndex)\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n handleEnterKey = () => {\r\n if (this.isOpen()) {\r\n this.selectMentionItem()\r\n this.needInsertBr = false\r\n }\r\n return true\r\n }\r\n\r\n handleEscapeKey = () => {\r\n if (this.isOpen()) {\r\n this.hideMentionList()\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n getActiveMentionItem() {\r\n return this.mentionListEL.querySelector(`.${this.options.itemActiveClass}`)\r\n }\r\n\r\n isOpen() {\r\n return !this.mentionListEL.classList.contains(this.options.listHideClass)\r\n }\r\n\r\n async searchMentionListByTerm(term: string) {\r\n const mentionList = await this.options.search(term)\r\n this.latestMentionList = mentionList\r\n if (!mentionList || mentionList.length === 0) {\r\n return this.hideMentionList()\r\n }\r\n\r\n this.showMentionList(mentionList)\r\n }\r\n\r\n showMentionList(mentionList: any[]) {\r\n if (!this.isOpen()) {\r\n this.mentionListEL.classList.remove(this.options.listHideClass)\r\n }\r\n this.activeMentionIndex = 0\r\n this.setMentionListPos()\r\n this.render(mentionList)\r\n }\r\n\r\n hideMentionList() {\r\n if (this.isOpen()) {\r\n this.activeMentionIndex = 0\r\n this.mentionListEL.classList.add(this.options.listHideClass)\r\n }\r\n }\r\n\r\n setMentionListPos() {\r\n const cursorIndex = this.quill.selection.savedRange.index\r\n const cursorBounds = this.quill.getBounds(cursorIndex)\r\n const { left, top } = cursorBounds\r\n const container = this.quill.container\r\n const hostElement = container.parentNode as HTMLDivElement\r\n const { left: editorLeft, top: editorTop } = container.getBoundingClientRect()\r\n const { left: hostElementLeft, top: hostElementTop } = hostElement.getBoundingClientRect()\r\n const relativeLeft = editorLeft - hostElementLeft\r\n const relativeTop = editorTop - hostElementTop\r\n const menuLeft = left + relativeLeft - 5\r\n const menuTop = top + relativeTop + 20\r\n this.mentionListEL.style.cssText += `\r\n left: ${menuLeft}px;\r\n top: ${menuTop}px;\r\n `\r\n }\r\n\r\n render(mentionList: any[]) {\r\n const wrapEl = document.createElement('div');\r\n\r\n [].forEach.call(mentionList, (mentionItem, index) => {\r\n const mentionItemEl = document.createElement('li')\r\n mentionItemEl.classList.add(this.options.itemClass)\r\n if (index === this.activeMentionIndex) {\r\n mentionItemEl.classList.add(this.options.itemActiveClass)\r\n }\r\n const renderResult = this.options.renderMentionItem(mentionItem)\r\n if (typeof renderResult === 'string') {\r\n mentionItemEl.insertAdjacentHTML('afterbegin', renderResult)\r\n }\r\n else {\r\n mentionItemEl.insertAdjacentElement('afterbegin', renderResult)\r\n }\r\n wrapEl.appendChild(mentionItemEl)\r\n })\r\n\r\n this.mentionListEL.innerHTML = wrapEl.innerHTML\r\n }\r\n\r\n highlightMentionItem(index: number) {\r\n const oldActiveItem = this.getActiveMentionItem()\r\n if (oldActiveItem) {\r\n oldActiveItem.classList.remove(this.options.itemActiveClass)\r\n }\r\n\r\n const newActiveItem = this.mentionListEL.querySelector(`.${this.options.itemClass}:nth-of-type(${index + 1})`)\r\n if (newActiveItem) {\r\n newActiveItem.classList.add(this.options.itemActiveClass)\r\n this.scrollIntoView(newActiveItem)\r\n }\r\n }\r\n\r\n scrollIntoView(node: Element): void {\r\n const nodeAsAny: any = node\r\n if (nodeAsAny.scrollIntoViewIfNeeded) {\r\n nodeAsAny.scrollIntoViewIfNeeded(false)\r\n return\r\n }\r\n if (node.scrollIntoView) {\r\n node.scrollIntoView(false)\r\n }\r\n }\r\n\r\n selectMentionItem(index = this.activeMentionIndex, isClick?: boolean) {\r\n const activeMentionItem = this.latestMentionList[index]\r\n this.insertMentionBlot(activeMentionItem, isClick)\r\n this.options.select(activeMentionItem)\r\n this.hideMentionList()\r\n }\r\n\r\n insertMentionBlot(activeMentionItem: any, isClick?: boolean) {\r\n const mention = this.options.renderMentionText(activeMentionItem)\r\n const delta = new Delta()\r\n .retain(this.latestMentionCharPos)\r\n .delete(this.latestCaretPos - this.latestMentionCharPos)\r\n .insert({\r\n [MentionLink.blotName]: {\r\n char: this.options.mentionChar,\r\n text: mention,\r\n mention: activeMentionItem,\r\n link: activeMentionItem.link || this.options.defaultLink,\r\n target: activeMentionItem.target || this.options.target,\r\n searchKey: this.options.searchKey,\r\n },\r\n })\r\n if (isClick) {\r\n this.quill.updateContents(delta, Quill.sources.USER)\r\n }\r\n else {\r\n this.quill.updateContents(delta, Quill.sources.API)\r\n }\r\n this.quill.setSelection(this.latestMentionCharPos + 1, Quill.sources.API)\r\n }\r\n}\r\n"],"names":["DEFAULT_MENTION_CHAR","isNullOrUndefined","ON_MENTION_LINK_REMOVE","MentionLink"],"mappings":";;;;;;;;;AAKA,MAAM,QAAQ,MAAM,OAAO,OAAO;AAClC,MAAM,YAAY,MAAM,OAAO,WAAW;AAC1C,MAAM,EAAE,MAAU,IAAA;AAsBX,MAAM,QAAQ;AAAA;AAAA,EA+CnB,YAAoB,OAAc,SAAwB;AA9CzC;AACA;AACT,8CAAqB;AACrB;AACA;AACA;AACA,sCAAa;AACb,wCAAe;AACN,0CAAgC;AAAA,MAC/C,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,aAAaA,UAAA;AAAA,MACb,WAAW;AAAA,MACX,kBAAkB,MAAW;AACvB,YAAA,cAAc,KAAK,QAAQ,KAAK;AACpC,YAAI,KAAK,SAAS;AACF,wBAAA,KAAK,KAAK,OAAO;AAAA,QAAA;AAE3B,cAAA,MAAM,SAAS,cAAc,MAAM;AACzC,YAAI,cAAc;AACX,eAAA;AAAA,MACT;AAAA,MACA,kBAAkB,MAAW;AACvB,YAAA,cAAc,KAAK,QAAQ,KAAK;AACpC,YAAI,KAAK,SAAS;AACF,wBAAA,KAAK,KAAK,OAAO;AAAA,QAAA;AAEjC,eAAO,GAAG,WAAW;AAAA,MACvB;AAAA,MACA,gBAAgB;AAAA,MAChB,WAAW;AAAA,MACX,eAAe;AAAA,MACf,WAAW;AAAA,MACX,iBAAiB;AAAA,MACjB,SAAS;AAAA,MACT,WAAW;AAAA;AAAA,MAEX,OAAO,OAAY;AAAA,MAAC;AAAA,MACpB,OAAO,OAAY;AAAA,MAAA;AAAA,IACrB;AAyHA,4CAAmB,CAAC,QAAQ,WAAW,WAAW;AAEhD,iBAAW,MAAM;AACX,YAAA,MAAM,QAAQ,SAAS,QAAQ;AAC3B,gBAAA,QAAQ,KAAK,MAAM,aAAa;AACtC,cAAI,CAAC,OAAO;AACV;AAAA,UAAA;AAGI,gBAAA,WAAW,KAAK,iBAAiB,MAAM;AAEvC,gBAAA,UAAU,KAAK,MAAM,YAAY;AACvC,gBAAM,kBAAkB,QAAQ,OAAO,CAAC,SAAS,OAAO;AAClD,gBAAA,OAAO,GAAG,WAAW,UAAU;AACjC,qBAAQ,WAAW,GAAG;AAAA,YAAA,OAEnB;AACH,qBAAQ,WAAW;AAAA,YAAA;AAAA,aAEpB,EAAE;AACL,gBAAM,iBAAiB,gBAAgB,YAAY,KAAK,QAAQ,WAAW;AAE3E,cAAI,iBAAiB,IAAI;AACjB,kBAAA,aAAa,gBAAgB,UAAU,iBAAiB,KAAK,QAAQ,YAAY,QAAQ,QAAQ;AACvG,iBAAK,aAAa;AAClB,gBAAI,CAAC,GAAG,WAAW,KAAK,YAAY,GAAG,GAAG;AACxC,mBAAK,uBAAuB;AAC5B,mBAAK,wBAAwB,UAAU;AAAA,YAAA,OAEpC;AACH,mBAAK,gBAAgB;AAAA,YAAA;AAAA,UACvB,OAEG;AACH,iBAAK,gBAAgB;AAAA,UAAA;AAAA,QACvB;AAAA,MACF,CACD;AAAA,IACH;AAYA,4CAAmB,MAAM;AACnB,UAAA,KAAK,UAAU;AACZ,aAAA,sBACA,KAAK,qBAAqB,KAAK,kBAAkB,SAAS,KAAK,KAAK,kBAAkB;AACtF,aAAA,qBAAqB,KAAK,kBAAkB;AAC1C,eAAA;AAAA,MAAA;AAEF,aAAA;AAAA,IACT;AAEA,8CAAqB,MAAM;AACrB,UAAA,KAAK,UAAU;AACjB,aAAK,sBAAsB,KAAK,qBAAqB,KAAK,KAAK,kBAAkB;AAC5E,aAAA,qBAAqB,KAAK,kBAAkB;AAC1C,eAAA;AAAA,MAAA;AAEF,aAAA;AAAA,IACT;AAEA,0CAAiB,MAAM;AACjB,UAAA,KAAK,UAAU;AACjB,aAAK,kBAAkB;AACvB,aAAK,eAAe;AAAA,MAAA;AAEf,aAAA;AAAA,IACT;AAEA,2CAAkB,MAAM;AAClB,UAAA,KAAK,UAAU;AACjB,aAAK,gBAAgB;AACd,eAAA;AAAA,MAAA;AAEF,aAAA;AAAA,IACT;AArMoB,SAAA,QAAA;AACd,QAAA,CAAC,QAAQ,QAAQ;AACnB,cAAQ,KAAK,mCAAmC;AAChD;AAAA,IAAA;AAGF,SAAK,UAAU,OAAO,OAAO,KAAK,gBAAgB,OAAO;AACnD,UAAA,YAAY,SAAS,cAAc,KAAK;AACpC,cAAA,UAAU,IAAI,2BAA2B;AAC/C,QAAA,KAAK,QAAQ,mBAAmB,6BAA6B;AAC/D,gBAAU,UAAU,IAAI,KAAK,QAAQ,cAAc;AAAA,IAAA;AAEhD,SAAA,gBAAgB,SAAS,cAAc,IAAI;AAC3C,SAAA,cAAc,UAAU,IAAI,KAAK,QAAQ,WAAW,KAAK,QAAQ,aAAa;AAC9E,SAAA,cAAc,MAAM,WAAW;AAAA,oBACpB,KAAK,QAAQ,SAAS;AAAA;AAGtC,UAAM,GAAG,MAAM,OAAO,aAAa,KAAK,gBAAgB;AACxD,UAAM,SAAS,WAAW,EAAE,KAAK,UAAU,GAAG,KAAK,gBAAgB;AACnE,UAAM,SAAS,WAAW,EAAE,KAAK,YAAY,GAAG,KAAK,kBAAkB;AACvE,UAAM,SAAS,WAAW,EAAE,KAAK,QAAQ,GAAG,KAAK,cAAc;AAC/D,UAAM,SAAS,WAAW,EAAE,KAAK,MAAM,GAAG,KAAK,cAAc;AAC7D,UAAM,SAAS,WAAW,EAAE,KAAK,SAAS,GAAG,KAAK,eAAe;AAC3D,UAAA,SAAS,SAAS,MAAM,QAAQ,MAAM,SAAS,SAAS,MAAM,KAAK;AACnE,UAAA,SAAS,SAAS,IAAI,QAAQ,MAAM,SAAS,SAAS,IAAI,KAAK;AAC/D,UAAA,SAAS,SAAS,OAAO,QAAQ,MAAM,SAAS,SAAS,OAAO,KAAK;AAE3E,UAAM,sBAAsB;AAAA,MAC1B,KAAK;AAAA,MACL,UAAU;AAAA,MACV,SAAS,CAAC,OAAO,YAAY;AAC3B,cAAM,cAAc,OAAO,KAAK,QAAQ,MAAM,EAAE;AAAA,UAC9C,CAAC,SAAS,WAAW;AACnB,gBACE,KAAK,MAAM,OAAO,MAAM,QAAQ,MAAM,KAAK,KACxC,CAAC,MAAM,QAAQ,QAAQ,OAAO,MAAM,CAAC,GACxC;AACA,sBAAQ,MAAM,IAAI,QAAQ,OAAO,MAAM;AAAA,YAAA;AAElC,mBAAA;AAAA,UACT;AAAA,UACA,CAAA;AAAA,QACF;AAGA,YAAI,iBAAiB,MAAM,QAAQ,KAAK,WAAW;AAC/C,YAAA,QAAQ,IAAI,MAAA,EACb,OAAO,MAAM,KAAK,EAClB,OAAO,MAAM,MAAM;AACtB,YAAI,KAAK,cAAc;AACb,kBAAA,MAAM,OAAO,MAAM,WAAW;AACtC,2BAAiB,MAAM,QAAQ;AAAA,QAAA;AAGjC,aAAK,MAAM,eAAe,OAAO,MAAM,QAAQ,IAAI;AACnD,aAAK,MAAM,aAAa,gBAAgB,MAAM,QAAQ,MAAM;AAC5D,aAAK,MAAM,MAAM;AAEjB,eAAO,KAAK,QAAQ,MAAM,EAAE,QAAQ,CAAC,SAAS;AAC5C,cAAI,CAACC,aAAA,kBAAkB,YAAY,IAAI,CAAC,EAAG;AAC3C,cAAI,MAAM,QAAQ,QAAQ,OAAO,IAAI,CAAC,EAAG;AACrC,cAAA,SAAS,UAAU,SAAS,OAAQ;AACnC,eAAA,MAAM,OAAO,MAAM,QAAQ,OAAO,IAAI,GAAG,MAAM,QAAQ,IAAI;AAAA,QAAA,CACjE;AAED,aAAK,eAAe;AAAA,MAAA;AAAA,IAExB;AAGM,UAAA,SAAS,SAAS,QAAQ,MAAM,SAAS,SAAS,MAAM,IAAI,CAAC,SAAS;AAC1E,YAAM,uBAAuB,KAAK,WAAW,UAAa,KAAK,aAAa;AAC5E,UAAI,sBAAsB;AACjB,eAAA;AAAA,MAAA,OAEJ;AACI,eAAA;AAAA,MAAA;AAAA,IACT,CACD;AAEI,SAAA,GAAG,SAAS,KAAK,gBAAgB;AACjC,SAAA,GAAG,aAAa,KAAK,gBAAgB;AAC1C,UAAM,QAAQ,GAAGC,UAAAA,wBAAwB,OAAO,EAAE,SAAS,WAAW;AAC9D,YAAA,CAAC,MAAM,IAAK,WAAW,CAAC,OAAO,KAAO,MAAM,KAAK,QAAQ,OAAO,IAAI;AACrE,WAAA,QAAQ,OAAO,MAAM;AAAA,IAAA,CAC3B;AACS,cAAA,YAAY,KAAK,aAAa;AACxC,UAAM,UAAU,cAAc,aAAa,WAAW,MAAM,SAAS;AAAA,EAAA;AAAA,EA7FvE,OAAO,WAAW;AAChB,UAAM,SAASC,uBAAW;AAAA,EAAA;AAAA,EA+F5B,GAAG,WAAW,UAAU;AACtB,SAAK,cAAc,iBAAiB,WAAW,CAAC,QAAQ;AACtD,UACE,SAAS,IAAI;AACX,UAAA;AAEJ,aAAO,KAAK,cAAc,SAAS,MAAM,KAAK,WAAW,KAAK,eAAe;AAC3E,YAAI,OAAO,UAAU,SAAS,KAAK,QAAQ,SAAS,GAAG;AACtC,yBAAA;AAAA,QAAA;AAEjB,iBAAS,OAAO;AAAA,MAAA;AAGlB,UAAI,cAAc;AAChB,iBAAS,KAAK,MAAM,cAAc,KAAK,oBAAoB,YAAY,CAAC;AAAA,MAAA;AAAA,IAC1E,CACD;AAAA,EAAA;AAAA,EAGH,oBAAoB,QAAiB;AACnC,WAAO,CAAA,EAAG,OAAO,KAAK,KAAK,cAAc,UAAU,CAAC,OAAO,MAAM,QAAQ,SAAS,SAAS,MAAM,OAAO,EAAE;AAAA,EAAA;AAAA,EA2C5G,iBAAiB,SAAwB,OAAe;AACjD,SAAA,kBAAkB,OAAO,IAAI;AAClC,SAAK,MAAM,MAAM;AAAA,EAAA;AAAA,EAGnB,iBAAiB,SAAwB,OAAe;AACtD,SAAK,qBAAqB;AAC1B,SAAK,qBAAqB,KAAK;AAAA,EAAA;AAAA,EAsCjC,uBAAuB;AACrB,WAAO,KAAK,cAAc,cAAc,IAAI,KAAK,QAAQ,eAAe,EAAE;AAAA,EAAA;AAAA,EAG5E,SAAS;AACP,WAAO,CAAC,KAAK,cAAc,UAAU,SAAS,KAAK,QAAQ,aAAa;AAAA,EAAA;AAAA,EAG1E,MAAM,wBAAwB,MAAc;AAC1C,UAAM,cAAc,MAAM,KAAK,QAAQ,OAAO,IAAI;AAClD,SAAK,oBAAoB;AACzB,QAAI,CAAC,eAAe,YAAY,WAAW,GAAG;AAC5C,aAAO,KAAK,gBAAgB;AAAA,IAAA;AAG9B,SAAK,gBAAgB,WAAW;AAAA,EAAA;AAAA,EAGlC,gBAAgB,aAAoB;AAC9B,QAAA,CAAC,KAAK,UAAU;AAClB,WAAK,cAAc,UAAU,OAAO,KAAK,QAAQ,aAAa;AAAA,IAAA;AAEhE,SAAK,qBAAqB;AAC1B,SAAK,kBAAkB;AACvB,SAAK,OAAO,WAAW;AAAA,EAAA;AAAA,EAGzB,kBAAkB;AACZ,QAAA,KAAK,UAAU;AACjB,WAAK,qBAAqB;AAC1B,WAAK,cAAc,UAAU,IAAI,KAAK,QAAQ,aAAa;AAAA,IAAA;AAAA,EAC7D;AAAA,EAGF,oBAAoB;AAClB,UAAM,cAAc,KAAK,MAAM,UAAU,WAAW;AACpD,UAAM,eAAe,KAAK,MAAM,UAAU,WAAW;AAC/C,UAAA,EAAE,MAAM,IAAA,IAAQ;AAChB,UAAA,YAAY,KAAK,MAAM;AAC7B,UAAM,cAAc,UAAU;AAC9B,UAAM,EAAE,MAAM,YAAY,KAAK,UAAU,IAAI,UAAU,sBAAsB;AAC7E,UAAM,EAAE,MAAM,iBAAiB,KAAK,eAAe,IAAI,YAAY,sBAAsB;AACzF,UAAM,eAAe,aAAa;AAClC,UAAM,cAAc,YAAY;AAC1B,UAAA,WAAW,OAAO,eAAe;AACjC,UAAA,UAAU,MAAM,cAAc;AAC/B,SAAA,cAAc,MAAM,WAAW;AAAA,cAC1B,QAAQ;AAAA,aACT,OAAO;AAAA;AAAA,EAAA;AAAA,EAIlB,OAAO,aAAoB;AACnB,UAAA,SAAS,SAAS,cAAc,KAAK;AAE3C,OAAG,QAAQ,KAAK,aAAa,CAAC,aAAa,UAAU;AAC7C,YAAA,gBAAgB,SAAS,cAAc,IAAI;AACjD,oBAAc,UAAU,IAAI,KAAK,QAAQ,SAAS;AAC9C,UAAA,UAAU,KAAK,oBAAoB;AACrC,sBAAc,UAAU,IAAI,KAAK,QAAQ,eAAe;AAAA,MAAA;AAE1D,YAAM,eAAe,KAAK,QAAQ,kBAAkB,WAAW;AAC3D,UAAA,OAAO,iBAAiB,UAAU;AACtB,sBAAA,mBAAmB,cAAc,YAAY;AAAA,MAAA,OAExD;AACW,sBAAA,sBAAsB,cAAc,YAAY;AAAA,MAAA;AAEhE,aAAO,YAAY,aAAa;AAAA,IAAA,CACjC;AAEI,SAAA,cAAc,YAAY,OAAO;AAAA,EAAA;AAAA,EAGxC,qBAAqB,OAAe;AAC5B,UAAA,gBAAgB,KAAK,qBAAqB;AAChD,QAAI,eAAe;AACjB,oBAAc,UAAU,OAAO,KAAK,QAAQ,eAAe;AAAA,IAAA;AAGvD,UAAA,gBAAgB,KAAK,cAAc,cAAc,IAAI,KAAK,QAAQ,SAAS,gBAAgB,QAAQ,CAAC,GAAG;AAC7G,QAAI,eAAe;AACjB,oBAAc,UAAU,IAAI,KAAK,QAAQ,eAAe;AACxD,WAAK,eAAe,aAAa;AAAA,IAAA;AAAA,EACnC;AAAA,EAGF,eAAe,MAAqB;AAClC,UAAM,YAAiB;AACvB,QAAI,UAAU,wBAAwB;AACpC,gBAAU,uBAAuB,KAAK;AACtC;AAAA,IAAA;AAEF,QAAI,KAAK,gBAAgB;AACvB,WAAK,eAAe,KAAK;AAAA,IAAA;AAAA,EAC3B;AAAA,EAGF,kBAAkB,QAAQ,KAAK,oBAAoB,SAAmB;AAC9D,UAAA,oBAAoB,KAAK,kBAAkB,KAAK;AACjD,SAAA,kBAAkB,mBAAmB,OAAO;AAC5C,SAAA,QAAQ,OAAO,iBAAiB;AACrC,SAAK,gBAAgB;AAAA,EAAA;AAAA,EAGvB,kBAAkB,mBAAwB,SAAmB;AAC3D,UAAM,UAAU,KAAK,QAAQ,kBAAkB,iBAAiB;AAChE,UAAM,QAAQ,IAAI,MAAM,EACrB,OAAO,KAAK,oBAAoB,EAChC,OAAO,KAAK,iBAAiB,KAAK,oBAAoB,EACtD,OAAO;AAAA,MACN,CAACA,YAAAA,YAAY,QAAQ,GAAG;AAAA,QACtB,MAAM,KAAK,QAAQ;AAAA,QACnB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,MAAM,kBAAkB,QAAQ,KAAK,QAAQ;AAAA,QAC7C,QAAQ,kBAAkB,UAAU,KAAK,QAAQ;AAAA,QACjD,WAAW,KAAK,QAAQ;AAAA,MAAA;AAAA,IAC1B,CACD;AACH,QAAI,SAAS;AACX,WAAK,MAAM,eAAe,OAAO,MAAM,QAAQ,IAAI;AAAA,IAAA,OAEhD;AACH,WAAK,MAAM,eAAe,OAAO,MAAM,QAAQ,GAAG;AAAA,IAAA;AAEpD,SAAK,MAAM,aAAa,KAAK,uBAAuB,GAAG,MAAM,QAAQ,GAAG;AAAA,EAAA;AAE5E;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"syntax.cjs.js","sources":["../../../src/modules/syntax.ts"],"sourcesContent":["import type TypeSyntax from 'quill/modules/syntax'\r\nimport Quill from 'quill'\r\n\r\nconst Syntax = Quill.import('modules/syntax') as typeof TypeSyntax\r\n\r\n// @dynamic\r\nclass CustomSyntax extends Syntax {\r\n static DEFAULTS: { hljs: any, interval: number, languages: { key: string, label: string }[] }\r\n}\r\n\r\nCustomSyntax.DEFAULTS = {\r\n hljs: (() => {\r\n // @ts-ignore\r\n return window.hljs\r\n })(),\r\n interval: 1000,\r\n languages: [\r\n { key: 'plain', label: 'Plain' },\r\n { key: 'bash', label: 'Bash' },\r\n { key: 'cpp', label: 'C++' },\r\n { key: 'cs', label: 'C#' },\r\n { key: 'css', label: 'CSS' },\r\n { key: 'diff', label: 'Diff' },\r\n { key: 'xml', label: 'HTML/XML' },\r\n { key: 'java', label: 'Java' },\r\n { key: 'javascript', label: 'Javascript' },\r\n { key: 'markdown', label: 'Markdown' },\r\n { key: 'php', label: 'PHP' },\r\n { key: 'python', label: 'Python' },\r\n { key: 'ruby', label: 'Ruby' },\r\n { key: 'sql', label: 'SQL' },\r\n ],\r\n}\r\n\r\nexport default CustomSyntax\r\n"],"names":[],"mappings":";;;;;;AAGA,MAAM,SAAS,MAAM,OAAO,gBAAgB;AAG5C,MAAM,qBAAqB,OAAO;AAElC;AADE,cADI,cACG;AAGT,aAAa,WAAW;AAAA,EACtB,OAAO,MAAM;AAEX,WAAO,OAAO;AAAA,EAAA,GACb;AAAA,EACH,UAAU;AAAA,EACV,WAAW;AAAA,IACT,EAAE,KAAK,SAAS,OAAO,QAAQ;AAAA,IAC/B,EAAE,KAAK,QAAQ,OAAO,OAAO;AAAA,IAC7B,EAAE,KAAK,OAAO,OAAO,MAAM;AAAA,IAC3B,EAAE,KAAK,MAAM,OAAO,KAAK;AAAA,IACzB,EAAE,KAAK,OAAO,OAAO,MAAM;AAAA,IAC3B,EAAE,KAAK,QAAQ,OAAO,OAAO;AAAA,IAC7B,EAAE,KAAK,OAAO,OAAO,WAAW;AAAA,IAChC,EAAE,KAAK,QAAQ,OAAO,OAAO;AAAA,IAC7B,EAAE,KAAK,cAAc,OAAO,aAAa;AAAA,IACzC,EAAE,KAAK,YAAY,OAAO,WAAW;AAAA,IACrC,EAAE,KAAK,OAAO,OAAO,MAAM;AAAA,IAC3B,EAAE,KAAK,UAAU,OAAO,SAAS;AAAA,IACjC,EAAE,KAAK,QAAQ,OAAO,OAAO;AAAA,IAC7B,EAAE,KAAK,OAAO,OAAO,MAAM;AAAA,EAAA;AAE/B;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"better-picker.cjs.js","sources":["../../../../src/modules/toolbar/better-picker.ts"],"sourcesContent":["import type TypePicker from 'quill/ui/picker'\r\nimport { EasyColorPicker } from 'quill-easy-color'\r\nimport FluentEditor from '../../core/fluent-editor'\r\n\r\nconst OriginPicker = FluentEditor.import('ui/picker') as typeof TypePicker\r\nexport class Picker extends OriginPicker {\r\n buildLabel() {\r\n const label = document.createElement('span')\r\n label.classList.add('ql-picker-label')\r\n label.innerHTML = `<i class=\"icon\" />`\r\n label.tabIndex = 0\r\n label.setAttribute('role', 'button')\r\n label.setAttribute('aria-expanded', 'false')\r\n this.container.appendChild(label)\r\n return label\r\n }\r\n\r\n buildItem(option: HTMLOptionElement) {\r\n const item = super.buildItem(option)\r\n const value = option.getAttribute('value')\r\n item.style.setProperty('--value', value)\r\n return item\r\n }\r\n\r\n selectItem(item: HTMLElement | null, trigger = false) {\r\n const selected = this.container.querySelector('.ql-selected')\r\n if (item === selected || item == null) return\r\n // move ql-selected clear after judge.\r\n // ql-selected is the class for check mark in picker\r\n if (selected != null) {\r\n selected.classList.remove('ql-selected')\r\n }\r\n item.classList.add('ql-selected')\r\n this.select.selectedIndex = Array.from(item.parentNode.children).indexOf(item)\r\n if (item.hasAttribute('data-value')) {\r\n this.label.setAttribute('data-value', item.getAttribute('data-value'))\r\n }\r\n else {\r\n this.label.removeAttribute('data-value')\r\n }\r\n if (item.hasAttribute('data-label')) {\r\n this.label.setAttribute('data-label', item.getAttribute('data-label'))\r\n }\r\n else {\r\n this.label.removeAttribute('data-label')\r\n }\r\n if (trigger) {\r\n this.select.dispatchEvent(new Event('change'))\r\n this.close()\r\n }\r\n }\r\n}\r\n\r\nexport class ColorPicker extends EasyColorPicker {\r\n static clearText: string\r\n static customText: string\r\n\r\n constructor(select: HTMLSelectElement, label: string, options: any) {\r\n super(select, label, options)\r\n }\r\n\r\n buildItem(option: HTMLOptionElement) {\r\n const item = super.buildItem(option)\r\n item.setAttribute('title', option.getAttribute('value'))\r\n return item\r\n }\r\n}\r\n"],"names":["FluentEditor","EasyColorPicker"],"mappings":";;;;;;;AAIA,MAAM,eAAeA,aAAAA,QAAa,OAAO,WAAW;AAC7C,MAAM,eAAe,aAAa;AAAA,EACvC,aAAa;AACL,UAAA,QAAQ,SAAS,cAAc,MAAM;AACrC,UAAA,UAAU,IAAI,iBAAiB;AACrC,UAAM,YAAY;AAClB,UAAM,WAAW;AACX,UAAA,aAAa,QAAQ,QAAQ;AAC7B,UAAA,aAAa,iBAAiB,OAAO;AACtC,SAAA,UAAU,YAAY,KAAK;AACzB,WAAA;AAAA,EAAA;AAAA,EAGT,UAAU,QAA2B;AAC7B,UAAA,OAAO,MAAM,UAAU,MAAM;AAC7B,UAAA,QAAQ,OAAO,aAAa,OAAO;AACpC,SAAA,MAAM,YAAY,WAAW,KAAK;AAChC,WAAA;AAAA,EAAA;AAAA,EAGT,WAAW,MAA0B,UAAU,OAAO;AACpD,UAAM,WAAW,KAAK,UAAU,cAAc,cAAc;AACxD,QAAA,SAAS,YAAY,QAAQ,KAAM;AAGvC,QAAI,YAAY,MAAM;AACX,eAAA,UAAU,OAAO,aAAa;AAAA,IAAA;AAEpC,SAAA,UAAU,IAAI,aAAa;AAC3B,SAAA,OAAO,gBAAgB,MAAM,KAAK,KAAK,WAAW,QAAQ,EAAE,QAAQ,IAAI;AACzE,QAAA,KAAK,aAAa,YAAY,GAAG;AACnC,WAAK,MAAM,aAAa,cAAc,KAAK,aAAa,YAAY,CAAC;AAAA,IAAA,OAElE;AACE,WAAA,MAAM,gBAAgB,YAAY;AAAA,IAAA;AAErC,QAAA,KAAK,aAAa,YAAY,GAAG;AACnC,WAAK,MAAM,aAAa,cAAc,KAAK,aAAa,YAAY,CAAC;AAAA,IAAA,OAElE;AACE,WAAA,MAAM,gBAAgB,YAAY;AAAA,IAAA;AAEzC,QAAI,SAAS;AACX,WAAK,OAAO,cAAc,IAAI,MAAM,QAAQ,CAAC;AAC7C,WAAK,MAAM;AAAA,IAAA;AAAA,EACb;AAEJ;AAEO,MAAM,oBAAoBC,eAAAA,gBAAgB;AAAA,EAI/C,YAAY,QAA2B,OAAe,SAAc;AAC5D,UAAA,QAAQ,OAAO,OAAO;AAAA,EAAA;AAAA,EAG9B,UAAU,QAA2B;AAC7B,UAAA,OAAO,MAAM,UAAU,MAAM;AACnC,SAAK,aAAa,SAAS,OAAO,aAAa,OAAO,CAAC;AAChD,WAAA;AAAA,EAAA;AAEX;AAZE,cADW,aACJ;AACP,cAFW,aAEJ;;;"}
|