@opentiny/fluent-editor 4.0.0-alpha.8 → 4.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/config/editor.config.es.js +112 -0
- package/es/config/editor.config.es.js.map +1 -0
- package/es/config/editor.utils.es.js.map +1 -0
- package/es/config/i18n/en-us.es.js +131 -0
- package/es/config/i18n/en-us.es.js.map +1 -0
- package/es/config/i18n/zh-cn.es.js +131 -0
- package/es/config/i18n/zh-cn.es.js.map +1 -0
- package/es/config/index.es.js +67 -0
- package/es/config/index.es.js.map +1 -0
- package/es/core/fluent-editor.es.js.map +1 -0
- package/es/fluent-editor.es.js +88 -0
- package/es/fluent-editor.es.js.map +1 -0
- package/es/formats/soft-break.es.js.map +1 -0
- package/es/formats/video.es.js.map +1 -0
- package/es/index.es.js +137 -0
- package/es/index.es.js.map +1 -0
- package/es/modules/ai/constants.es.js.map +1 -0
- package/es/modules/ai/index.es.js +670 -0
- package/es/modules/ai/index.es.js.map +1 -0
- package/es/modules/collaborative-editing/awareness/awareness.es.js +92 -0
- package/es/modules/collaborative-editing/awareness/awareness.es.js.map +1 -0
- package/es/modules/collaborative-editing/awareness/y-indexeddb.es.js +16 -0
- package/es/modules/collaborative-editing/awareness/y-indexeddb.es.js.map +1 -0
- package/es/modules/collaborative-editing/collaborative-editing.es.js +110 -0
- package/es/modules/collaborative-editing/collaborative-editing.es.js.map +1 -0
- package/es/modules/collaborative-editing/module.es.js.map +1 -0
- package/es/modules/collaborative-editing/provider/providerRegistry.es.js.map +1 -0
- package/es/modules/collaborative-editing/provider/webrtc.es.js +103 -0
- package/es/modules/collaborative-editing/provider/webrtc.es.js.map +1 -0
- package/es/modules/collaborative-editing/provider/websocket.es.js +113 -0
- package/es/modules/collaborative-editing/provider/websocket.es.js.map +1 -0
- package/es/modules/counter.es.js.map +1 -0
- package/es/modules/custom-clipboard.es.js.map +1 -0
- package/es/modules/custom-image/actions/action.es.js.map +1 -0
- package/es/modules/custom-image/actions/custom-resize-action.es.js.map +1 -0
- package/es/modules/custom-image/actions/delete-action.es.js.map +1 -0
- package/es/modules/custom-image/actions/image-toolbar-buttons.es.js +137 -0
- package/es/modules/custom-image/actions/image-toolbar-buttons.es.js.map +1 -0
- package/es/modules/custom-image/actions/toolbar-action.es.js.map +1 -0
- package/es/modules/custom-image/actions/toolbar.es.js.map +1 -0
- package/es/modules/custom-image/blot-formatter.es.js +140 -0
- package/es/modules/custom-image/blot-formatter.es.js.map +1 -0
- package/es/modules/custom-image/image.es.js.map +1 -0
- package/es/modules/custom-image/options.es.js.map +1 -0
- package/es/modules/custom-image/specs/blot-spec.es.js.map +1 -0
- package/es/modules/custom-image/specs/custom-image-spec.es.js.map +1 -0
- package/es/modules/custom-image/specs/image-spec.es.js.map +1 -0
- package/es/modules/custom-uploader.es.js.map +1 -0
- package/es/modules/divider.es.js.map +1 -0
- package/es/modules/emoji.es.js +167 -0
- package/es/modules/emoji.es.js.map +1 -0
- package/es/modules/file/formats/file.es.js.map +1 -0
- package/es/modules/file/modules/file-bar.es.js.map +1 -0
- package/es/modules/file/modules/file-module.es.js.map +1 -0
- package/es/modules/flow-chart/config-utils.es.js +102 -0
- package/es/modules/flow-chart/config-utils.es.js.map +1 -0
- package/es/modules/flow-chart/formats/flow-chart-blot.es.js +369 -0
- package/es/modules/flow-chart/formats/flow-chart-blot.es.js.map +1 -0
- package/es/modules/flow-chart/i18n/en-us.es.js +30 -0
- package/es/modules/flow-chart/i18n/en-us.es.js.map +1 -0
- package/es/modules/flow-chart/i18n/index.es.js +12 -0
- package/es/modules/flow-chart/i18n/index.es.js.map +1 -0
- package/es/modules/flow-chart/i18n/zh-cn.es.js +30 -0
- package/es/modules/flow-chart/i18n/zh-cn.es.js.map +1 -0
- package/es/modules/flow-chart/icons.es.js +27 -0
- package/es/modules/flow-chart/icons.es.js.map +1 -0
- package/es/modules/flow-chart/index.es.js +45 -0
- package/es/modules/flow-chart/index.es.js.map +1 -0
- package/es/modules/flow-chart/modules/context-menu.es.js +184 -0
- package/es/modules/flow-chart/modules/context-menu.es.js.map +1 -0
- package/es/modules/flow-chart/modules/control-panel.es.js +286 -0
- package/es/modules/flow-chart/modules/control-panel.es.js.map +1 -0
- package/es/modules/flow-chart/modules/custom-resize-action.es.js +150 -0
- package/es/modules/flow-chart/modules/custom-resize-action.es.js.map +1 -0
- package/es/modules/i18n.es.js.map +1 -0
- package/es/modules/index.es.js +31 -0
- package/es/modules/index.es.js.map +1 -0
- package/es/modules/link/formats/link.es.js.map +1 -0
- package/es/modules/link/modules/tooltip.es.js.map +1 -0
- package/es/modules/mathlive/formats.es.js.map +1 -0
- package/es/modules/mathlive/module.es.js.map +1 -0
- package/es/modules/mathlive/tooltip.es.js.map +1 -0
- package/es/modules/mention/mention-link.es.js.map +1 -0
- package/es/modules/mention/mention.es.js.map +1 -0
- package/es/modules/mind-map/config-utils.es.js +108 -0
- package/es/modules/mind-map/config-utils.es.js.map +1 -0
- package/es/modules/mind-map/formats/mind-map-blot.es.js +356 -0
- package/es/modules/mind-map/formats/mind-map-blot.es.js.map +1 -0
- package/es/modules/mind-map/i18n/en-us.es.js +29 -0
- package/es/modules/mind-map/i18n/en-us.es.js.map +1 -0
- package/es/modules/mind-map/i18n/index.es.js +12 -0
- package/es/modules/mind-map/i18n/index.es.js.map +1 -0
- package/es/modules/mind-map/i18n/zh-cn.es.js +29 -0
- package/es/modules/mind-map/i18n/zh-cn.es.js.map +1 -0
- package/es/modules/mind-map/icons.es.js +45 -0
- package/es/modules/mind-map/icons.es.js.map +1 -0
- package/es/modules/mind-map/index.es.js +56 -0
- package/es/modules/mind-map/index.es.js.map +1 -0
- package/es/modules/mind-map/modules/context-menu.es.js +128 -0
- package/es/modules/mind-map/modules/context-menu.es.js.map +1 -0
- package/es/modules/mind-map/modules/control-panel.es.js +425 -0
- package/es/modules/mind-map/modules/control-panel.es.js.map +1 -0
- package/es/modules/mind-map/modules/custom-resize-action.es.js +161 -0
- package/es/modules/mind-map/modules/custom-resize-action.es.js.map +1 -0
- package/es/modules/shortcut-key/index.es.js +245 -0
- package/es/modules/shortcut-key/index.es.js.map +1 -0
- package/es/modules/syntax.es.js.map +1 -0
- package/es/modules/table-up/index.es.js.map +1 -0
- package/es/modules/toolbar/better-picker.es.js.map +1 -0
- package/es/modules/toolbar/better-toolbar.es.js.map +1 -0
- package/es/modules/toolbar/toolbar-tip.es.js.map +1 -0
- package/es/themes/snow.es.js.map +1 -0
- package/es/tools/format-painter.es.js.map +1 -0
- package/es/tools/fullscreen.es.js.map +1 -0
- package/es/tools/screenshot.es.js.map +1 -0
- package/es/ui/icons.config.es.js +369 -0
- package/es/ui/icons.config.es.js.map +1 -0
- package/es/ui/icons.es.js +52 -0
- package/es/ui/icons.es.js.map +1 -0
- package/es/utils/debounce.es.js.map +1 -0
- package/es/utils/image.es.js.map +1 -0
- package/es/utils/is.es.js.map +1 -0
- package/es/utils/merge.es.js +27 -0
- package/es/utils/merge.es.js.map +1 -0
- package/es/utils/method.es.js.map +1 -0
- package/es/utils/scroll-lock.es.js.map +1 -0
- package/flow-chart.css +185 -0
- package/lib/config/editor.config.cjs.js +112 -0
- package/lib/config/editor.config.cjs.js.map +1 -0
- package/lib/config/editor.utils.cjs.js.map +1 -0
- package/lib/config/i18n/en-us.cjs.js +131 -0
- package/lib/config/i18n/en-us.cjs.js.map +1 -0
- package/lib/config/i18n/zh-cn.cjs.js +131 -0
- package/lib/config/i18n/zh-cn.cjs.js.map +1 -0
- package/lib/config/index.cjs.js +66 -0
- package/lib/config/index.cjs.js.map +1 -0
- package/lib/core/fluent-editor.cjs.js.map +1 -0
- package/lib/fluent-editor.cjs.js +88 -0
- package/lib/fluent-editor.cjs.js.map +1 -0
- package/lib/formats/soft-break.cjs.js.map +1 -0
- package/lib/formats/video.cjs.js.map +1 -0
- package/lib/index.cjs.js +158 -0
- package/lib/index.cjs.js.map +1 -0
- package/lib/modules/ai/constants.cjs.js.map +1 -0
- package/lib/modules/ai/index.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/awareness/awareness.cjs.js +92 -0
- package/lib/modules/collaborative-editing/awareness/awareness.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js +16 -0
- package/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/collaborative-editing.cjs.js +110 -0
- package/lib/modules/collaborative-editing/collaborative-editing.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/module.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/provider/providerRegistry.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/provider/webrtc.cjs.js +103 -0
- package/lib/modules/collaborative-editing/provider/webrtc.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/provider/websocket.cjs.js +113 -0
- package/lib/modules/collaborative-editing/provider/websocket.cjs.js.map +1 -0
- package/lib/modules/counter.cjs.js.map +1 -0
- package/lib/modules/custom-clipboard.cjs.js.map +1 -0
- package/lib/modules/custom-image/actions/action.cjs.js.map +1 -0
- package/lib/modules/custom-image/actions/custom-resize-action.cjs.js.map +1 -0
- package/lib/modules/custom-image/actions/delete-action.cjs.js.map +1 -0
- package/lib/modules/custom-image/actions/image-toolbar-buttons.cjs.js.map +1 -0
- package/lib/modules/custom-image/actions/toolbar-action.cjs.js.map +1 -0
- package/lib/modules/custom-image/actions/toolbar.cjs.js.map +1 -0
- package/lib/modules/custom-image/blot-formatter.cjs.js +140 -0
- package/lib/modules/custom-image/blot-formatter.cjs.js.map +1 -0
- package/lib/modules/custom-image/image.cjs.js.map +1 -0
- package/lib/modules/custom-image/options.cjs.js.map +1 -0
- package/lib/modules/custom-image/specs/blot-spec.cjs.js.map +1 -0
- package/lib/modules/custom-image/specs/custom-image-spec.cjs.js.map +1 -0
- package/lib/modules/custom-image/specs/image-spec.cjs.js.map +1 -0
- package/lib/modules/custom-uploader.cjs.js.map +1 -0
- package/lib/modules/divider.cjs.js.map +1 -0
- package/lib/modules/emoji.cjs.js +167 -0
- package/lib/modules/emoji.cjs.js.map +1 -0
- package/lib/modules/file/formats/file.cjs.js.map +1 -0
- package/lib/modules/file/modules/file-bar.cjs.js.map +1 -0
- package/lib/modules/file/modules/file-module.cjs.js.map +1 -0
- package/lib/modules/flow-chart/config-utils.cjs.js +102 -0
- package/lib/modules/flow-chart/config-utils.cjs.js.map +1 -0
- package/lib/modules/flow-chart/formats/flow-chart-blot.cjs.js +369 -0
- package/lib/modules/flow-chart/formats/flow-chart-blot.cjs.js.map +1 -0
- package/lib/modules/flow-chart/i18n/en-us.cjs.js +30 -0
- package/lib/modules/flow-chart/i18n/en-us.cjs.js.map +1 -0
- package/lib/modules/flow-chart/i18n/index.cjs.js +12 -0
- package/lib/modules/flow-chart/i18n/index.cjs.js.map +1 -0
- package/lib/modules/flow-chart/i18n/zh-cn.cjs.js +30 -0
- package/lib/modules/flow-chart/i18n/zh-cn.cjs.js.map +1 -0
- package/lib/modules/flow-chart/icons.cjs.js +27 -0
- package/lib/modules/flow-chart/icons.cjs.js.map +1 -0
- package/lib/modules/flow-chart/index.cjs.js +45 -0
- package/lib/modules/flow-chart/index.cjs.js.map +1 -0
- package/lib/modules/flow-chart/modules/context-menu.cjs.js +184 -0
- package/lib/modules/flow-chart/modules/context-menu.cjs.js.map +1 -0
- package/lib/modules/flow-chart/modules/control-panel.cjs.js +286 -0
- package/lib/modules/flow-chart/modules/control-panel.cjs.js.map +1 -0
- package/lib/modules/flow-chart/modules/custom-resize-action.cjs.js +150 -0
- package/lib/modules/flow-chart/modules/custom-resize-action.cjs.js.map +1 -0
- package/lib/modules/i18n.cjs.js.map +1 -0
- package/lib/modules/index.cjs.js +31 -0
- package/lib/modules/index.cjs.js.map +1 -0
- package/lib/modules/link/formats/link.cjs.js.map +1 -0
- package/lib/modules/link/modules/tooltip.cjs.js.map +1 -0
- package/lib/modules/mathlive/formats.cjs.js.map +1 -0
- package/lib/modules/mathlive/module.cjs.js.map +1 -0
- package/lib/modules/mathlive/tooltip.cjs.js.map +1 -0
- package/lib/modules/mention/mention-link.cjs.js.map +1 -0
- package/lib/modules/mention/mention.cjs.js.map +1 -0
- package/lib/modules/mind-map/config-utils.cjs.js +108 -0
- package/lib/modules/mind-map/config-utils.cjs.js.map +1 -0
- package/lib/modules/mind-map/formats/mind-map-blot.cjs.js +356 -0
- package/lib/modules/mind-map/formats/mind-map-blot.cjs.js.map +1 -0
- package/lib/modules/mind-map/i18n/en-us.cjs.js +29 -0
- package/lib/modules/mind-map/i18n/en-us.cjs.js.map +1 -0
- package/lib/modules/mind-map/i18n/index.cjs.js +12 -0
- package/lib/modules/mind-map/i18n/index.cjs.js.map +1 -0
- package/lib/modules/mind-map/i18n/zh-cn.cjs.js +29 -0
- package/lib/modules/mind-map/i18n/zh-cn.cjs.js.map +1 -0
- package/lib/modules/mind-map/icons.cjs.js +45 -0
- package/lib/modules/mind-map/icons.cjs.js.map +1 -0
- package/lib/modules/mind-map/index.cjs.js +56 -0
- package/lib/modules/mind-map/index.cjs.js.map +1 -0
- package/lib/modules/mind-map/modules/context-menu.cjs.js +128 -0
- package/lib/modules/mind-map/modules/context-menu.cjs.js.map +1 -0
- package/lib/modules/mind-map/modules/control-panel.cjs.js +425 -0
- package/lib/modules/mind-map/modules/control-panel.cjs.js.map +1 -0
- package/lib/modules/mind-map/modules/custom-resize-action.cjs.js +161 -0
- package/lib/modules/mind-map/modules/custom-resize-action.cjs.js.map +1 -0
- package/lib/modules/shortcut-key/index.cjs.js +245 -0
- package/lib/modules/shortcut-key/index.cjs.js.map +1 -0
- package/lib/modules/syntax.cjs.js.map +1 -0
- package/lib/modules/table-up/index.cjs.js.map +1 -0
- package/lib/modules/toolbar/better-picker.cjs.js.map +1 -0
- package/lib/modules/toolbar/better-toolbar.cjs.js.map +1 -0
- package/lib/modules/toolbar/toolbar-tip.cjs.js.map +1 -0
- package/lib/themes/snow.cjs.js.map +1 -0
- package/lib/tools/format-painter.cjs.js.map +1 -0
- package/lib/tools/fullscreen.cjs.js.map +1 -0
- package/lib/tools/screenshot.cjs.js.map +1 -0
- package/lib/ui/icons.cjs.js +52 -0
- package/lib/ui/icons.cjs.js.map +1 -0
- package/lib/ui/icons.config.cjs.js +369 -0
- package/lib/ui/icons.config.cjs.js.map +1 -0
- package/lib/utils/debounce.cjs.js.map +1 -0
- package/lib/utils/image.cjs.js.map +1 -0
- package/lib/utils/is.cjs.js.map +1 -0
- package/lib/utils/merge.cjs.js +27 -0
- package/lib/utils/merge.cjs.js.map +1 -0
- package/lib/utils/method.cjs.js.map +1 -0
- package/lib/utils/scroll-lock.cjs.js.map +1 -0
- package/mind-map.css +224 -0
- package/package.json +15 -37
- package/patches/quill@2.0.3.patch +33 -0
- package/scripts/apply-patches.cjs +248 -0
- package/style.css +3465 -0
- package/types/config/editor.config.d.ts +55 -0
- package/types/config/i18n/en-us.d.ts +125 -0
- package/types/config/i18n/zh-cn.d.ts +125 -0
- package/types/config/types/editor-modules.interface.d.ts +45 -0
- package/types/index.d.ts +8 -0
- package/types/modules/collaborative-editing/awareness/awareness.d.ts +28 -0
- package/types/modules/collaborative-editing/awareness/y-indexeddb.d.ts +3 -0
- package/types/modules/collaborative-editing/collaborative-editing.d.ts +25 -0
- package/types/modules/collaborative-editing/provider/providerRegistry.d.ts +26 -0
- package/types/modules/collaborative-editing/provider/webrtc.d.ts +37 -0
- package/types/modules/collaborative-editing/provider/websocket.d.ts +41 -0
- package/types/modules/collaborative-editing/types.d.ts +53 -0
- package/types/modules/flow-chart/config-utils.d.ts +10 -0
- package/types/modules/flow-chart/formats/flow-chart-blot.d.ts +43 -0
- package/types/modules/flow-chart/i18n/en-us.d.ts +26 -0
- package/types/modules/flow-chart/i18n/index.d.ts +1 -0
- package/types/modules/flow-chart/i18n/zh-cn.d.ts +26 -0
- package/types/modules/flow-chart/icons.d.ts +12 -0
- package/types/modules/flow-chart/index.d.ts +10 -0
- package/types/modules/flow-chart/modules/context-menu.d.ts +3 -0
- package/types/modules/flow-chart/modules/control-panel.d.ts +3 -0
- package/types/modules/flow-chart/modules/custom-resize-action.d.ts +22 -0
- package/types/modules/flow-chart/options.d.ts +29 -0
- package/types/modules/index.d.ts +18 -0
- package/types/modules/mind-map/config-utils.d.ts +12 -0
- package/types/modules/mind-map/formats/mind-map-blot.d.ts +44 -0
- package/types/modules/mind-map/i18n/en-us.d.ts +25 -0
- package/types/modules/mind-map/i18n/index.d.ts +1 -0
- package/types/modules/mind-map/i18n/zh-cn.d.ts +25 -0
- package/types/modules/mind-map/icons.d.ts +21 -0
- package/types/modules/mind-map/index.d.ts +10 -0
- package/types/modules/mind-map/modules/context-menu.d.ts +3 -0
- package/types/modules/mind-map/modules/control-panel.d.ts +3 -0
- package/types/modules/mind-map/modules/custom-resize-action.d.ts +23 -0
- package/types/modules/mind-map/options.d.ts +27 -0
- package/types/ui/icons.config.d.ts +40 -0
- package/types/utils/merge.d.ts +7 -0
- package/LICENSE +0 -21
- package/dist/es/config/editor.config.es.js +0 -85
- package/dist/es/config/editor.config.es.js.map +0 -1
- package/dist/es/config/editor.utils.es.js.map +0 -1
- package/dist/es/config/i18n/en-us.es.js +0 -129
- package/dist/es/config/i18n/en-us.es.js.map +0 -1
- package/dist/es/config/i18n/zh-cn.es.js +0 -129
- package/dist/es/config/i18n/zh-cn.es.js.map +0 -1
- package/dist/es/config/index.es.js +0 -65
- package/dist/es/config/index.es.js.map +0 -1
- package/dist/es/core/fluent-editor.es.js.map +0 -1
- package/dist/es/fluent-editor.es.js +0 -84
- package/dist/es/fluent-editor.es.js.map +0 -1
- package/dist/es/formats/soft-break.es.js.map +0 -1
- package/dist/es/formats/video.es.js.map +0 -1
- package/dist/es/index.es.js +0 -104
- package/dist/es/index.es.js.map +0 -1
- package/dist/es/modules/ai/constants.es.js.map +0 -1
- package/dist/es/modules/ai/index.es.js +0 -670
- package/dist/es/modules/ai/index.es.js.map +0 -1
- package/dist/es/modules/collaborative-editing/awareness/awareness.es.js +0 -93
- package/dist/es/modules/collaborative-editing/awareness/awareness.es.js.map +0 -1
- package/dist/es/modules/collaborative-editing/awareness/y-indexeddb.es.js +0 -12
- package/dist/es/modules/collaborative-editing/awareness/y-indexeddb.es.js.map +0 -1
- package/dist/es/modules/collaborative-editing/collaborative-editing.es.js +0 -105
- package/dist/es/modules/collaborative-editing/collaborative-editing.es.js.map +0 -1
- package/dist/es/modules/collaborative-editing/module.es.js.map +0 -1
- package/dist/es/modules/collaborative-editing/provider/providerRegistry.es.js.map +0 -1
- package/dist/es/modules/collaborative-editing/provider/webrtc.es.js +0 -99
- package/dist/es/modules/collaborative-editing/provider/webrtc.es.js.map +0 -1
- package/dist/es/modules/collaborative-editing/provider/websocket.es.js +0 -111
- package/dist/es/modules/collaborative-editing/provider/websocket.es.js.map +0 -1
- package/dist/es/modules/counter.es.js.map +0 -1
- package/dist/es/modules/custom-clipboard.es.js.map +0 -1
- package/dist/es/modules/custom-image/actions/action.es.js.map +0 -1
- package/dist/es/modules/custom-image/actions/custom-resize-action.es.js.map +0 -1
- package/dist/es/modules/custom-image/actions/delete-action.es.js.map +0 -1
- package/dist/es/modules/custom-image/actions/image-toolbar-buttons.es.js +0 -137
- package/dist/es/modules/custom-image/actions/image-toolbar-buttons.es.js.map +0 -1
- package/dist/es/modules/custom-image/actions/toolbar-action.es.js.map +0 -1
- package/dist/es/modules/custom-image/actions/toolbar.es.js.map +0 -1
- package/dist/es/modules/custom-image/blot-formatter.es.js +0 -140
- package/dist/es/modules/custom-image/blot-formatter.es.js.map +0 -1
- package/dist/es/modules/custom-image/image.es.js.map +0 -1
- package/dist/es/modules/custom-image/options.es.js.map +0 -1
- package/dist/es/modules/custom-image/specs/blot-spec.es.js.map +0 -1
- package/dist/es/modules/custom-image/specs/custom-image-spec.es.js.map +0 -1
- package/dist/es/modules/custom-image/specs/image-spec.es.js.map +0 -1
- package/dist/es/modules/custom-uploader.es.js.map +0 -1
- package/dist/es/modules/divider.es.js.map +0 -1
- package/dist/es/modules/emoji.es.js +0 -167
- package/dist/es/modules/emoji.es.js.map +0 -1
- package/dist/es/modules/file/formats/file.es.js.map +0 -1
- package/dist/es/modules/file/modules/file-bar.es.js.map +0 -1
- package/dist/es/modules/file/modules/file-module.es.js.map +0 -1
- package/dist/es/modules/i18n.es.js.map +0 -1
- package/dist/es/modules/index.es.js +0 -27
- package/dist/es/modules/index.es.js.map +0 -1
- package/dist/es/modules/link/formats/link.es.js.map +0 -1
- package/dist/es/modules/link/modules/tooltip.es.js.map +0 -1
- package/dist/es/modules/mathlive/formats.es.js.map +0 -1
- package/dist/es/modules/mathlive/module.es.js.map +0 -1
- package/dist/es/modules/mathlive/tooltip.es.js.map +0 -1
- package/dist/es/modules/mention/mention-link.es.js.map +0 -1
- package/dist/es/modules/mention/mention.es.js.map +0 -1
- package/dist/es/modules/shortcut-key/index.es.js +0 -229
- package/dist/es/modules/shortcut-key/index.es.js.map +0 -1
- package/dist/es/modules/syntax.es.js.map +0 -1
- package/dist/es/modules/table-up/index.es.js.map +0 -1
- package/dist/es/modules/toolbar/better-picker.es.js.map +0 -1
- package/dist/es/modules/toolbar/better-toolbar.es.js.map +0 -1
- package/dist/es/modules/toolbar/toolbar-tip.es.js.map +0 -1
- package/dist/es/themes/snow.es.js.map +0 -1
- package/dist/es/tools/format-painter.es.js.map +0 -1
- package/dist/es/tools/fullscreen.es.js.map +0 -1
- package/dist/es/tools/screenshot.es.js.map +0 -1
- package/dist/es/ui/icons.config.es.js +0 -365
- package/dist/es/ui/icons.config.es.js.map +0 -1
- package/dist/es/ui/icons.es.js +0 -50
- package/dist/es/ui/icons.es.js.map +0 -1
- package/dist/es/utils/debounce.es.js.map +0 -1
- package/dist/es/utils/image.es.js.map +0 -1
- package/dist/es/utils/is.es.js.map +0 -1
- package/dist/es/utils/method.es.js.map +0 -1
- package/dist/es/utils/scroll-lock.es.js.map +0 -1
- package/dist/lib/config/editor.config.cjs.js +0 -85
- package/dist/lib/config/editor.config.cjs.js.map +0 -1
- package/dist/lib/config/editor.utils.cjs.js.map +0 -1
- package/dist/lib/config/i18n/en-us.cjs.js +0 -129
- package/dist/lib/config/i18n/en-us.cjs.js.map +0 -1
- package/dist/lib/config/i18n/zh-cn.cjs.js +0 -129
- package/dist/lib/config/i18n/zh-cn.cjs.js.map +0 -1
- package/dist/lib/config/index.cjs.js +0 -64
- package/dist/lib/config/index.cjs.js.map +0 -1
- package/dist/lib/core/fluent-editor.cjs.js.map +0 -1
- package/dist/lib/fluent-editor.cjs.js +0 -84
- package/dist/lib/fluent-editor.cjs.js.map +0 -1
- package/dist/lib/formats/soft-break.cjs.js.map +0 -1
- package/dist/lib/formats/video.cjs.js.map +0 -1
- package/dist/lib/index.cjs.js +0 -125
- package/dist/lib/index.cjs.js.map +0 -1
- package/dist/lib/modules/ai/constants.cjs.js.map +0 -1
- package/dist/lib/modules/ai/index.cjs.js.map +0 -1
- package/dist/lib/modules/collaborative-editing/awareness/awareness.cjs.js +0 -110
- package/dist/lib/modules/collaborative-editing/awareness/awareness.cjs.js.map +0 -1
- package/dist/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js +0 -12
- package/dist/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js.map +0 -1
- package/dist/lib/modules/collaborative-editing/collaborative-editing.cjs.js +0 -122
- package/dist/lib/modules/collaborative-editing/collaborative-editing.cjs.js.map +0 -1
- package/dist/lib/modules/collaborative-editing/module.cjs.js.map +0 -1
- package/dist/lib/modules/collaborative-editing/provider/providerRegistry.cjs.js.map +0 -1
- package/dist/lib/modules/collaborative-editing/provider/webrtc.cjs.js +0 -116
- package/dist/lib/modules/collaborative-editing/provider/webrtc.cjs.js.map +0 -1
- package/dist/lib/modules/collaborative-editing/provider/websocket.cjs.js +0 -128
- package/dist/lib/modules/collaborative-editing/provider/websocket.cjs.js.map +0 -1
- package/dist/lib/modules/counter.cjs.js.map +0 -1
- package/dist/lib/modules/custom-clipboard.cjs.js.map +0 -1
- package/dist/lib/modules/custom-image/actions/action.cjs.js.map +0 -1
- package/dist/lib/modules/custom-image/actions/custom-resize-action.cjs.js.map +0 -1
- package/dist/lib/modules/custom-image/actions/delete-action.cjs.js.map +0 -1
- package/dist/lib/modules/custom-image/actions/image-toolbar-buttons.cjs.js.map +0 -1
- package/dist/lib/modules/custom-image/actions/toolbar-action.cjs.js.map +0 -1
- package/dist/lib/modules/custom-image/actions/toolbar.cjs.js.map +0 -1
- package/dist/lib/modules/custom-image/blot-formatter.cjs.js +0 -140
- package/dist/lib/modules/custom-image/blot-formatter.cjs.js.map +0 -1
- package/dist/lib/modules/custom-image/image.cjs.js.map +0 -1
- package/dist/lib/modules/custom-image/options.cjs.js.map +0 -1
- package/dist/lib/modules/custom-image/specs/blot-spec.cjs.js.map +0 -1
- package/dist/lib/modules/custom-image/specs/custom-image-spec.cjs.js.map +0 -1
- package/dist/lib/modules/custom-image/specs/image-spec.cjs.js.map +0 -1
- package/dist/lib/modules/custom-uploader.cjs.js.map +0 -1
- package/dist/lib/modules/divider.cjs.js.map +0 -1
- package/dist/lib/modules/emoji.cjs.js +0 -167
- package/dist/lib/modules/emoji.cjs.js.map +0 -1
- package/dist/lib/modules/file/formats/file.cjs.js.map +0 -1
- package/dist/lib/modules/file/modules/file-bar.cjs.js.map +0 -1
- package/dist/lib/modules/file/modules/file-module.cjs.js.map +0 -1
- package/dist/lib/modules/i18n.cjs.js.map +0 -1
- package/dist/lib/modules/index.cjs.js +0 -27
- package/dist/lib/modules/index.cjs.js.map +0 -1
- package/dist/lib/modules/link/formats/link.cjs.js.map +0 -1
- package/dist/lib/modules/link/modules/tooltip.cjs.js.map +0 -1
- package/dist/lib/modules/mathlive/formats.cjs.js.map +0 -1
- package/dist/lib/modules/mathlive/module.cjs.js.map +0 -1
- package/dist/lib/modules/mathlive/tooltip.cjs.js.map +0 -1
- package/dist/lib/modules/mention/mention-link.cjs.js.map +0 -1
- package/dist/lib/modules/mention/mention.cjs.js.map +0 -1
- package/dist/lib/modules/shortcut-key/index.cjs.js +0 -229
- package/dist/lib/modules/shortcut-key/index.cjs.js.map +0 -1
- package/dist/lib/modules/syntax.cjs.js.map +0 -1
- package/dist/lib/modules/table-up/index.cjs.js.map +0 -1
- package/dist/lib/modules/toolbar/better-picker.cjs.js.map +0 -1
- package/dist/lib/modules/toolbar/better-toolbar.cjs.js.map +0 -1
- package/dist/lib/modules/toolbar/toolbar-tip.cjs.js.map +0 -1
- package/dist/lib/themes/snow.cjs.js.map +0 -1
- package/dist/lib/tools/format-painter.cjs.js.map +0 -1
- package/dist/lib/tools/fullscreen.cjs.js.map +0 -1
- package/dist/lib/tools/screenshot.cjs.js.map +0 -1
- package/dist/lib/ui/icons.cjs.js +0 -50
- package/dist/lib/ui/icons.cjs.js.map +0 -1
- package/dist/lib/ui/icons.config.cjs.js +0 -365
- package/dist/lib/ui/icons.config.cjs.js.map +0 -1
- package/dist/lib/utils/debounce.cjs.js.map +0 -1
- package/dist/lib/utils/image.cjs.js.map +0 -1
- package/dist/lib/utils/is.cjs.js.map +0 -1
- package/dist/lib/utils/method.cjs.js.map +0 -1
- package/dist/lib/utils/scroll-lock.cjs.js.map +0 -1
- package/dist/package.json +0 -67
- package/dist/style.css +0 -3463
- package/dist/types/config/editor.config.d.ts +0 -11
- package/dist/types/config/i18n/en-us.d.ts +0 -123
- package/dist/types/config/i18n/zh-cn.d.ts +0 -123
- package/dist/types/config/types/editor-modules.interface.d.ts +0 -41
- package/dist/types/index.d.ts +0 -8
- package/dist/types/modules/collaborative-editing/awareness/awareness.d.ts +0 -28
- package/dist/types/modules/collaborative-editing/awareness/y-indexeddb.d.ts +0 -2
- package/dist/types/modules/collaborative-editing/collaborative-editing.d.ts +0 -24
- package/dist/types/modules/collaborative-editing/provider/providerRegistry.d.ts +0 -25
- package/dist/types/modules/collaborative-editing/provider/webrtc.d.ts +0 -36
- package/dist/types/modules/collaborative-editing/provider/websocket.d.ts +0 -40
- package/dist/types/modules/collaborative-editing/types.d.ts +0 -37
- package/dist/types/modules/index.d.ts +0 -16
- package/dist/types/ui/icons.config.d.ts +0 -38
- package/scripts/pre-release.cjs +0 -35
- package/src/assets/ai.scss +0 -451
- package/src/assets/common/config.scss +0 -4
- package/src/assets/common.scss +0 -132
- package/src/assets/counter.scss +0 -16
- package/src/assets/custom-image.scss +0 -19
- package/src/assets/editor.scss +0 -351
- package/src/assets/fileBar.scss +0 -107
- package/src/assets/font.scss +0 -18
- package/src/assets/fullscreen.scss +0 -50
- 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 +0 -98
- package/src/assets/lineHeight.scss +0 -15
- package/src/assets/link.scss +0 -120
- package/src/assets/mathlive.scss +0 -40
- package/src/assets/mention.scss +0 -48
- package/src/assets/screenshot.scss +0 -78
- package/src/assets/size.scss +0 -11
- package/src/assets/style.scss +0 -46
- package/src/assets/svgs/align-center.svg +0 -41
- package/src/assets/svgs/align-justify.svg +0 -8
- package/src/assets/svgs/arrow-down.svg +0 -6
- package/src/assets/svgs/background-color.svg +0 -7
- package/src/assets/svgs/clean.svg +0 -8
- package/src/assets/svgs/code-block.svg +0 -5
- package/src/assets/svgs/code.svg +0 -25
- package/src/assets/svgs/color.svg +0 -7
- package/src/assets/svgs/direction-ltr.svg +0 -8
- package/src/assets/svgs/direction-rtl.svg +0 -8
- package/src/assets/svgs/divider.svg +0 -4
- package/src/assets/svgs/emoji.svg +0 -53
- package/src/assets/svgs/file.svg +0 -12
- package/src/assets/svgs/format-painter.svg +0 -10
- package/src/assets/svgs/formula.svg +0 -6
- package/src/assets/svgs/fullscreen.svg +0 -43
- package/src/assets/svgs/image.svg +0 -17
- package/src/assets/svgs/italic.svg +0 -6
- package/src/assets/svgs/link.svg +0 -9
- package/src/assets/svgs/list-bullet.svg +0 -16
- package/src/assets/svgs/list-ordered.svg +0 -18
- package/src/assets/svgs/list-task.svg +0 -5
- package/src/assets/svgs/redo.svg +0 -8
- package/src/assets/svgs/screenshot.svg +0 -17
- package/src/assets/svgs/script-sub.svg +0 -15
- package/src/assets/svgs/script-super.svg +0 -15
- package/src/assets/svgs/strike.svg +0 -6
- package/src/assets/svgs/underline.svg +0 -13
- package/src/assets/svgs/undo.svg +0 -8
- package/src/assets/svgs/video.svg +0 -10
- package/src/assets/tasklist.scss +0 -76
- package/src/assets/toolbar.scss +0 -385
- package/src/assets/variable.scss +0 -9
- package/src/assets/video.scss +0 -5
- package/src/attributors/font-size.ts +0 -6
- package/src/attributors/font-style.ts +0 -6
- package/src/attributors/index.ts +0 -4
- package/src/attributors/line-height.ts +0 -6
- package/src/attributors/text-indent.ts +0 -6
- package/src/config/base64-image.ts +0 -5
- package/src/config/editor.config.ts +0 -86
- package/src/config/editor.utils.ts +0 -193
- package/src/config/i18n/en-us.ts +0 -138
- package/src/config/i18n/zh-cn.ts +0 -137
- package/src/config/index.ts +0 -44
- package/src/config/types/editor-config.interface.ts +0 -16
- package/src/config/types/editor-modules.interface.ts +0 -47
- package/src/config/types/index.ts +0 -3
- package/src/config/types/type.ts +0 -2
- package/src/core/fluent-editor.ts +0 -31
- package/src/fluent-editor.ts +0 -72
- package/src/formats/emoji.ts +0 -10
- package/src/formats/index.ts +0 -4
- package/src/formats/soft-break.ts +0 -27
- package/src/formats/strike.ts +0 -11
- package/src/formats/video.ts +0 -53
- package/src/index.ts +0 -9
- package/src/modules/ai/constants.ts +0 -43
- package/src/modules/ai/icons.ts +0 -333
- package/src/modules/ai/index.ts +0 -850
- package/src/modules/ai/types.ts +0 -18
- package/src/modules/collaborative-editing/awareness/awareness.ts +0 -141
- package/src/modules/collaborative-editing/awareness/index.ts +0 -2
- package/src/modules/collaborative-editing/awareness/y-indexeddb.ts +0 -12
- package/src/modules/collaborative-editing/collaborative-editing.ts +0 -115
- package/src/modules/collaborative-editing/index.ts +0 -2
- package/src/modules/collaborative-editing/module.ts +0 -32
- package/src/modules/collaborative-editing/provider/index.ts +0 -3
- package/src/modules/collaborative-editing/provider/providerRegistry.ts +0 -57
- package/src/modules/collaborative-editing/provider/webrtc.ts +0 -125
- package/src/modules/collaborative-editing/provider/websocket.ts +0 -142
- package/src/modules/collaborative-editing/types.ts +0 -44
- package/src/modules/counter.ts +0 -84
- package/src/modules/custom-clipboard.ts +0 -537
- package/src/modules/custom-image/actions/action.ts +0 -15
- package/src/modules/custom-image/actions/custom-resize-action.ts +0 -207
- package/src/modules/custom-image/actions/delete-action.ts +0 -32
- package/src/modules/custom-image/actions/image-toolbar-buttons.ts +0 -135
- package/src/modules/custom-image/actions/index.ts +0 -6
- package/src/modules/custom-image/actions/toolbar-action.ts +0 -32
- package/src/modules/custom-image/actions/toolbar.ts +0 -145
- package/src/modules/custom-image/blot-formatter.ts +0 -158
- package/src/modules/custom-image/image.ts +0 -132
- package/src/modules/custom-image/index.ts +0 -4
- package/src/modules/custom-image/options.ts +0 -139
- package/src/modules/custom-image/specs/blot-spec.ts +0 -30
- package/src/modules/custom-image/specs/custom-image-spec.ts +0 -131
- package/src/modules/custom-image/specs/image-spec.ts +0 -28
- package/src/modules/custom-image/specs/index.ts +0 -3
- package/src/modules/custom-uploader.ts +0 -101
- package/src/modules/divider.ts +0 -15
- package/src/modules/emoji.ts +0 -230
- package/src/modules/file/formats/file.ts +0 -61
- package/src/modules/file/index.ts +0 -3
- package/src/modules/file/modules/file-bar.ts +0 -146
- package/src/modules/file/modules/file-module.ts +0 -33
- package/src/modules/i18n.ts +0 -66
- package/src/modules/index.ts +0 -16
- package/src/modules/link/formats/link.ts +0 -43
- package/src/modules/link/index.ts +0 -2
- package/src/modules/link/modules/tooltip.ts +0 -341
- package/src/modules/mathlive/formats.ts +0 -39
- package/src/modules/mathlive/index.ts +0 -3
- package/src/modules/mathlive/module.ts +0 -37
- package/src/modules/mathlive/tooltip.ts +0 -87
- package/src/modules/mention/constants.ts +0 -3
- package/src/modules/mention/index.ts +0 -2
- package/src/modules/mention/mention-link.ts +0 -64
- package/src/modules/mention/mention.ts +0 -404
- package/src/modules/shortcut-key/index.ts +0 -237
- package/src/modules/syntax.ts +0 -35
- package/src/modules/table-up/index.ts +0 -83
- package/src/modules/toolbar/better-picker.ts +0 -67
- package/src/modules/toolbar/better-toolbar.ts +0 -176
- package/src/modules/toolbar/index.ts +0 -3
- package/src/modules/toolbar/toolbar-tip.ts +0 -142
- package/src/themes/snow.ts +0 -309
- package/src/tools/format-painter.ts +0 -85
- package/src/tools/fullscreen.ts +0 -66
- package/src/tools/screenshot.ts +0 -231
- package/src/ui/icons.config.ts +0 -361
- package/src/ui/icons.ts +0 -89
- package/src/utils/debounce.ts +0 -150
- package/src/utils/image.ts +0 -22
- package/src/utils/is.ts +0 -9
- package/src/utils/method.ts +0 -77
- package/src/utils/scroll-lock.ts +0 -52
- package/tsconfig.json +0 -25
- package/vite.config.ts +0 -83
- /package/{dist/README.md → README.md} +0 -0
- /package/{dist/es → es}/attributors/font-size.es.js +0 -0
- /package/{dist/es → es}/attributors/font-size.es.js.map +0 -0
- /package/{dist/es → es}/attributors/font-style.es.js +0 -0
- /package/{dist/es → es}/attributors/font-style.es.js.map +0 -0
- /package/{dist/es → es}/attributors/index.es.js +0 -0
- /package/{dist/es → es}/attributors/index.es.js.map +0 -0
- /package/{dist/es → es}/attributors/line-height.es.js +0 -0
- /package/{dist/es → es}/attributors/line-height.es.js.map +0 -0
- /package/{dist/es → es}/attributors/text-indent.es.js +0 -0
- /package/{dist/es → es}/attributors/text-indent.es.js.map +0 -0
- /package/{dist/es → es}/config/base64-image.es.js +0 -0
- /package/{dist/es → es}/config/base64-image.es.js.map +0 -0
- /package/{dist/es → es}/config/editor.utils.es.js +0 -0
- /package/{dist/es → es}/config/types/editor-config.interface.es.js +0 -0
- /package/{dist/es → es}/config/types/editor-config.interface.es.js.map +0 -0
- /package/{dist/es → es}/config/types/editor-modules.interface.es.js +0 -0
- /package/{dist/es → es}/config/types/editor-modules.interface.es.js.map +0 -0
- /package/{dist/es → es}/config/types/index.es.js +0 -0
- /package/{dist/es → es}/config/types/index.es.js.map +0 -0
- /package/{dist/es → es}/config/types/type.es.js +0 -0
- /package/{dist/es → es}/config/types/type.es.js.map +0 -0
- /package/{dist/es → es}/core/fluent-editor.es.js +0 -0
- /package/{dist/es → es}/formats/emoji.es.js +0 -0
- /package/{dist/es → es}/formats/emoji.es.js.map +0 -0
- /package/{dist/es → es}/formats/index.es.js +0 -0
- /package/{dist/es → es}/formats/index.es.js.map +0 -0
- /package/{dist/es → es}/formats/soft-break.es.js +0 -0
- /package/{dist/es → es}/formats/strike.es.js +0 -0
- /package/{dist/es → es}/formats/strike.es.js.map +0 -0
- /package/{dist/es → es}/formats/video.es.js +0 -0
- /package/{dist/es → es}/modules/ai/constants.es.js +0 -0
- /package/{dist/es → es}/modules/ai/icons.es.js +0 -0
- /package/{dist/es → es}/modules/ai/icons.es.js.map +0 -0
- /package/{dist/es → es}/modules/collaborative-editing/awareness/index.es.js +0 -0
- /package/{dist/es → es}/modules/collaborative-editing/awareness/index.es.js.map +0 -0
- /package/{dist/es → es}/modules/collaborative-editing/index.es.js +0 -0
- /package/{dist/es → es}/modules/collaborative-editing/index.es.js.map +0 -0
- /package/{dist/es → es}/modules/collaborative-editing/module.es.js +0 -0
- /package/{dist/es → es}/modules/collaborative-editing/provider/providerRegistry.es.js +0 -0
- /package/{dist/es → es}/modules/collaborative-editing/types.es.js +0 -0
- /package/{dist/es → es}/modules/collaborative-editing/types.es.js.map +0 -0
- /package/{dist/es → es}/modules/counter.es.js +0 -0
- /package/{dist/es → es}/modules/custom-clipboard.es.js +0 -0
- /package/{dist/es → es}/modules/custom-image/actions/action.es.js +0 -0
- /package/{dist/es → es}/modules/custom-image/actions/custom-resize-action.es.js +0 -0
- /package/{dist/es → es}/modules/custom-image/actions/delete-action.es.js +0 -0
- /package/{dist/es → es}/modules/custom-image/actions/index.es.js +0 -0
- /package/{dist/es → es}/modules/custom-image/actions/index.es.js.map +0 -0
- /package/{dist/es → es}/modules/custom-image/actions/toolbar-action.es.js +0 -0
- /package/{dist/es → es}/modules/custom-image/actions/toolbar.es.js +0 -0
- /package/{dist/es → es}/modules/custom-image/image.es.js +0 -0
- /package/{dist/es → es}/modules/custom-image/index.es.js +0 -0
- /package/{dist/es → es}/modules/custom-image/index.es.js.map +0 -0
- /package/{dist/es → es}/modules/custom-image/options.es.js +0 -0
- /package/{dist/es → es}/modules/custom-image/specs/blot-spec.es.js +0 -0
- /package/{dist/es → es}/modules/custom-image/specs/custom-image-spec.es.js +0 -0
- /package/{dist/es → es}/modules/custom-image/specs/image-spec.es.js +0 -0
- /package/{dist/es → es}/modules/custom-image/specs/index.es.js +0 -0
- /package/{dist/es → es}/modules/custom-image/specs/index.es.js.map +0 -0
- /package/{dist/es → es}/modules/custom-uploader.es.js +0 -0
- /package/{dist/es → es}/modules/divider.es.js +0 -0
- /package/{dist/es → es}/modules/file/formats/file.es.js +0 -0
- /package/{dist/es → es}/modules/file/index.es.js +0 -0
- /package/{dist/es → es}/modules/file/index.es.js.map +0 -0
- /package/{dist/es → es}/modules/file/modules/file-bar.es.js +0 -0
- /package/{dist/es → es}/modules/file/modules/file-module.es.js +0 -0
- /package/{dist/es → es}/modules/i18n.es.js +0 -0
- /package/{dist/es → es}/modules/link/formats/link.es.js +0 -0
- /package/{dist/es → es}/modules/link/index.es.js +0 -0
- /package/{dist/es → es}/modules/link/index.es.js.map +0 -0
- /package/{dist/es → es}/modules/link/modules/tooltip.es.js +0 -0
- /package/{dist/es → es}/modules/mathlive/formats.es.js +0 -0
- /package/{dist/es → es}/modules/mathlive/index.es.js +0 -0
- /package/{dist/es → es}/modules/mathlive/index.es.js.map +0 -0
- /package/{dist/es → es}/modules/mathlive/module.es.js +0 -0
- /package/{dist/es → es}/modules/mathlive/tooltip.es.js +0 -0
- /package/{dist/es → es}/modules/mention/constants.es.js +0 -0
- /package/{dist/es → es}/modules/mention/constants.es.js.map +0 -0
- /package/{dist/es → es}/modules/mention/index.es.js +0 -0
- /package/{dist/es → es}/modules/mention/index.es.js.map +0 -0
- /package/{dist/es → es}/modules/mention/mention-link.es.js +0 -0
- /package/{dist/es → es}/modules/mention/mention.es.js +0 -0
- /package/{dist/es → es}/modules/syntax.es.js +0 -0
- /package/{dist/es → es}/modules/table-up/index.es.js +0 -0
- /package/{dist/es → es}/modules/toolbar/better-picker.es.js +0 -0
- /package/{dist/es → es}/modules/toolbar/better-toolbar.es.js +0 -0
- /package/{dist/es → es}/modules/toolbar/index.es.js +0 -0
- /package/{dist/es → es}/modules/toolbar/index.es.js.map +0 -0
- /package/{dist/es → es}/modules/toolbar/toolbar-tip.es.js +0 -0
- /package/{dist/es → es}/themes/snow.es.js +0 -0
- /package/{dist/es → es}/tools/format-painter.es.js +0 -0
- /package/{dist/es → es}/tools/fullscreen.es.js +0 -0
- /package/{dist/es → es}/tools/screenshot.es.js +0 -0
- /package/{dist/es → es}/utils/debounce.es.js +0 -0
- /package/{dist/es → es}/utils/image.es.js +0 -0
- /package/{dist/es → es}/utils/is.es.js +0 -0
- /package/{dist/es → es}/utils/method.es.js +0 -0
- /package/{dist/es → es}/utils/scroll-lock.es.js +0 -0
- /package/{dist/lib → lib}/attributors/font-size.cjs.js +0 -0
- /package/{dist/lib → lib}/attributors/font-size.cjs.js.map +0 -0
- /package/{dist/lib → lib}/attributors/font-style.cjs.js +0 -0
- /package/{dist/lib → lib}/attributors/font-style.cjs.js.map +0 -0
- /package/{dist/lib → lib}/attributors/index.cjs.js +0 -0
- /package/{dist/lib → lib}/attributors/index.cjs.js.map +0 -0
- /package/{dist/lib → lib}/attributors/line-height.cjs.js +0 -0
- /package/{dist/lib → lib}/attributors/line-height.cjs.js.map +0 -0
- /package/{dist/lib → lib}/attributors/text-indent.cjs.js +0 -0
- /package/{dist/lib → lib}/attributors/text-indent.cjs.js.map +0 -0
- /package/{dist/lib → lib}/config/base64-image.cjs.js +0 -0
- /package/{dist/lib → lib}/config/base64-image.cjs.js.map +0 -0
- /package/{dist/lib → lib}/config/editor.utils.cjs.js +0 -0
- /package/{dist/lib → lib}/config/types/editor-config.interface.cjs.js +0 -0
- /package/{dist/lib → lib}/config/types/editor-config.interface.cjs.js.map +0 -0
- /package/{dist/lib → lib}/config/types/editor-modules.interface.cjs.js +0 -0
- /package/{dist/lib → lib}/config/types/editor-modules.interface.cjs.js.map +0 -0
- /package/{dist/lib → lib}/config/types/index.cjs.js +0 -0
- /package/{dist/lib → lib}/config/types/index.cjs.js.map +0 -0
- /package/{dist/lib → lib}/config/types/type.cjs.js +0 -0
- /package/{dist/lib → lib}/config/types/type.cjs.js.map +0 -0
- /package/{dist/lib → lib}/core/fluent-editor.cjs.js +0 -0
- /package/{dist/lib → lib}/formats/emoji.cjs.js +0 -0
- /package/{dist/lib → lib}/formats/emoji.cjs.js.map +0 -0
- /package/{dist/lib → lib}/formats/index.cjs.js +0 -0
- /package/{dist/lib → lib}/formats/index.cjs.js.map +0 -0
- /package/{dist/lib → lib}/formats/soft-break.cjs.js +0 -0
- /package/{dist/lib → lib}/formats/strike.cjs.js +0 -0
- /package/{dist/lib → lib}/formats/strike.cjs.js.map +0 -0
- /package/{dist/lib → lib}/formats/video.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/ai/constants.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/ai/icons.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/ai/icons.cjs.js.map +0 -0
- /package/{dist/lib → lib}/modules/ai/index.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/collaborative-editing/awareness/index.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/collaborative-editing/awareness/index.cjs.js.map +0 -0
- /package/{dist/lib → lib}/modules/collaborative-editing/index.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/collaborative-editing/index.cjs.js.map +0 -0
- /package/{dist/lib → lib}/modules/collaborative-editing/module.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/collaborative-editing/provider/providerRegistry.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/collaborative-editing/types.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/collaborative-editing/types.cjs.js.map +0 -0
- /package/{dist/lib → lib}/modules/counter.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-clipboard.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/actions/action.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/actions/custom-resize-action.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/actions/delete-action.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/actions/image-toolbar-buttons.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/actions/index.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/actions/index.cjs.js.map +0 -0
- /package/{dist/lib → lib}/modules/custom-image/actions/toolbar-action.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/actions/toolbar.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/image.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/index.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/index.cjs.js.map +0 -0
- /package/{dist/lib → lib}/modules/custom-image/options.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/specs/blot-spec.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/specs/custom-image-spec.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/specs/image-spec.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/specs/index.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/custom-image/specs/index.cjs.js.map +0 -0
- /package/{dist/lib → lib}/modules/custom-uploader.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/divider.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/file/formats/file.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/file/index.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/file/index.cjs.js.map +0 -0
- /package/{dist/lib → lib}/modules/file/modules/file-bar.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/file/modules/file-module.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/i18n.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/link/formats/link.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/link/index.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/link/index.cjs.js.map +0 -0
- /package/{dist/lib → lib}/modules/link/modules/tooltip.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/mathlive/formats.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/mathlive/index.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/mathlive/index.cjs.js.map +0 -0
- /package/{dist/lib → lib}/modules/mathlive/module.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/mathlive/tooltip.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/mention/constants.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/mention/constants.cjs.js.map +0 -0
- /package/{dist/lib → lib}/modules/mention/index.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/mention/index.cjs.js.map +0 -0
- /package/{dist/lib → lib}/modules/mention/mention-link.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/mention/mention.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/syntax.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/table-up/index.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/toolbar/better-picker.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/toolbar/better-toolbar.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/toolbar/index.cjs.js +0 -0
- /package/{dist/lib → lib}/modules/toolbar/index.cjs.js.map +0 -0
- /package/{dist/lib → lib}/modules/toolbar/toolbar-tip.cjs.js +0 -0
- /package/{dist/lib → lib}/themes/snow.cjs.js +0 -0
- /package/{dist/lib → lib}/tools/format-painter.cjs.js +0 -0
- /package/{dist/lib → lib}/tools/fullscreen.cjs.js +0 -0
- /package/{dist/lib → lib}/tools/screenshot.cjs.js +0 -0
- /package/{dist/lib → lib}/utils/debounce.cjs.js +0 -0
- /package/{dist/lib → lib}/utils/image.cjs.js +0 -0
- /package/{dist/lib → lib}/utils/is.cjs.js +0 -0
- /package/{dist/lib → lib}/utils/method.cjs.js +0 -0
- /package/{dist/lib → lib}/utils/scroll-lock.cjs.js +0 -0
- /package/{dist/types → types}/attributors/font-size.d.ts +0 -0
- /package/{dist/types → types}/attributors/font-style.d.ts +0 -0
- /package/{dist/types → types}/attributors/index.d.ts +0 -0
- /package/{dist/types → types}/attributors/line-height.d.ts +0 -0
- /package/{dist/types → types}/attributors/text-indent.d.ts +0 -0
- /package/{dist/types → types}/config/base64-image.d.ts +0 -0
- /package/{dist/types → types}/config/editor.utils.d.ts +0 -0
- /package/{dist/types → types}/config/index.d.ts +0 -0
- /package/{dist/types → types}/config/types/editor-config.interface.d.ts +0 -0
- /package/{dist/types → types}/config/types/index.d.ts +0 -0
- /package/{dist/types → types}/config/types/type.d.ts +0 -0
- /package/{dist/types → types}/core/fluent-editor.d.ts +0 -0
- /package/{dist/types → types}/fluent-editor.d.ts +0 -0
- /package/{dist/types → types}/formats/emoji.d.ts +0 -0
- /package/{dist/types → types}/formats/index.d.ts +0 -0
- /package/{dist/types → types}/formats/soft-break.d.ts +0 -0
- /package/{dist/types → types}/formats/strike.d.ts +0 -0
- /package/{dist/types → types}/formats/video.d.ts +0 -0
- /package/{dist/types → types}/modules/ai/constants.d.ts +0 -0
- /package/{dist/types → types}/modules/ai/icons.d.ts +0 -0
- /package/{dist/types → types}/modules/ai/index.d.ts +0 -0
- /package/{dist/types → types}/modules/ai/types.d.ts +0 -0
- /package/{dist/types → types}/modules/collaborative-editing/awareness/index.d.ts +0 -0
- /package/{dist/types → types}/modules/collaborative-editing/index.d.ts +0 -0
- /package/{dist/types → types}/modules/collaborative-editing/module.d.ts +0 -0
- /package/{dist/types → types}/modules/collaborative-editing/provider/index.d.ts +0 -0
- /package/{dist/types → types}/modules/counter.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-clipboard.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/actions/action.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/actions/custom-resize-action.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/actions/delete-action.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/actions/image-toolbar-buttons.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/actions/index.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/actions/toolbar-action.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/actions/toolbar.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/blot-formatter.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/image.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/index.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/options.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/specs/blot-spec.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/specs/custom-image-spec.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/specs/image-spec.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-image/specs/index.d.ts +0 -0
- /package/{dist/types → types}/modules/custom-uploader.d.ts +0 -0
- /package/{dist/types → types}/modules/divider.d.ts +0 -0
- /package/{dist/types → types}/modules/emoji.d.ts +0 -0
- /package/{dist/types → types}/modules/file/formats/file.d.ts +0 -0
- /package/{dist/types → types}/modules/file/index.d.ts +0 -0
- /package/{dist/types → types}/modules/file/modules/file-bar.d.ts +0 -0
- /package/{dist/types → types}/modules/file/modules/file-module.d.ts +0 -0
- /package/{dist/types → types}/modules/i18n.d.ts +0 -0
- /package/{dist/types → types}/modules/link/formats/link.d.ts +0 -0
- /package/{dist/types → types}/modules/link/index.d.ts +0 -0
- /package/{dist/types → types}/modules/link/modules/tooltip.d.ts +0 -0
- /package/{dist/types → types}/modules/mathlive/formats.d.ts +0 -0
- /package/{dist/types → types}/modules/mathlive/index.d.ts +0 -0
- /package/{dist/types → types}/modules/mathlive/module.d.ts +0 -0
- /package/{dist/types → types}/modules/mathlive/tooltip.d.ts +0 -0
- /package/{dist/types → types}/modules/mention/constants.d.ts +0 -0
- /package/{dist/types → types}/modules/mention/index.d.ts +0 -0
- /package/{dist/types → types}/modules/mention/mention-link.d.ts +0 -0
- /package/{dist/types → types}/modules/mention/mention.d.ts +0 -0
- /package/{dist/types → types}/modules/shortcut-key/index.d.ts +0 -0
- /package/{dist/types → types}/modules/syntax.d.ts +0 -0
- /package/{dist/types → types}/modules/table-up/index.d.ts +0 -0
- /package/{dist/types → types}/modules/toolbar/better-picker.d.ts +0 -0
- /package/{dist/types → types}/modules/toolbar/better-toolbar.d.ts +0 -0
- /package/{dist/types → types}/modules/toolbar/index.d.ts +0 -0
- /package/{dist/types → types}/modules/toolbar/toolbar-tip.d.ts +0 -0
- /package/{dist/types → types}/themes/snow.d.ts +0 -0
- /package/{dist/types → types}/tools/format-painter.d.ts +0 -0
- /package/{dist/types → types}/tools/fullscreen.d.ts +0 -0
- /package/{dist/types → types}/tools/screenshot.d.ts +0 -0
- /package/{dist/types → types}/ui/icons.d.ts +0 -0
- /package/{dist/types → types}/utils/debounce.d.ts +0 -0
- /package/{dist/types → types}/utils/image.d.ts +0 -0
- /package/{dist/types → types}/utils/is.d.ts +0 -0
- /package/{dist/types → types}/utils/method.d.ts +0 -0
- /package/{dist/types → types}/utils/scroll-lock.d.ts +0 -0
package/lib/index.cjs.js
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
require("./fluent-editor.cjs.js");
|
|
4
|
+
require("./attributors/index.cjs.js");
|
|
5
|
+
const index = require("./config/index.cjs.js");
|
|
6
|
+
require("./formats/index.cjs.js");
|
|
7
|
+
require("./modules/index.cjs.js");
|
|
8
|
+
const QuillShortcutKey = require("quill-shortcut-key");
|
|
9
|
+
const core = require("quill/core");
|
|
10
|
+
const fluentEditor = require("./core/fluent-editor.cjs.js");
|
|
11
|
+
const fontSize = require("./attributors/font-size.cjs.js");
|
|
12
|
+
const fontStyle = require("./attributors/font-style.cjs.js");
|
|
13
|
+
const lineHeight = require("./attributors/line-height.cjs.js");
|
|
14
|
+
const textIndent = require("./attributors/text-indent.cjs.js");
|
|
15
|
+
const editor_config = require("./config/editor.config.cjs.js");
|
|
16
|
+
const editor_utils = require("./config/editor.utils.cjs.js");
|
|
17
|
+
const emoji = require("./formats/emoji.cjs.js");
|
|
18
|
+
const softBreak = require("./formats/soft-break.cjs.js");
|
|
19
|
+
const strike = require("./formats/strike.cjs.js");
|
|
20
|
+
const video = require("./formats/video.cjs.js");
|
|
21
|
+
const module$1 = require("./modules/collaborative-editing/module.cjs.js");
|
|
22
|
+
const customClipboard = require("./modules/custom-clipboard.cjs.js");
|
|
23
|
+
const action = require("./modules/custom-image/actions/action.cjs.js");
|
|
24
|
+
const customResizeAction = require("./modules/custom-image/actions/custom-resize-action.cjs.js");
|
|
25
|
+
const deleteAction = require("./modules/custom-image/actions/delete-action.cjs.js");
|
|
26
|
+
const imageToolbarButtons = require("./modules/custom-image/actions/image-toolbar-buttons.cjs.js");
|
|
27
|
+
const toolbar = require("./modules/custom-image/actions/toolbar.cjs.js");
|
|
28
|
+
const toolbarAction = require("./modules/custom-image/actions/toolbar-action.cjs.js");
|
|
29
|
+
const blotFormatter = require("./modules/custom-image/blot-formatter.cjs.js");
|
|
30
|
+
const image = require("./modules/custom-image/image.cjs.js");
|
|
31
|
+
const blotSpec = require("./modules/custom-image/specs/blot-spec.cjs.js");
|
|
32
|
+
const customImageSpec = require("./modules/custom-image/specs/custom-image-spec.cjs.js");
|
|
33
|
+
const imageSpec = require("./modules/custom-image/specs/image-spec.cjs.js");
|
|
34
|
+
const customUploader = require("./modules/custom-uploader.cjs.js");
|
|
35
|
+
const divider = require("./modules/divider.cjs.js");
|
|
36
|
+
const emoji$1 = require("./modules/emoji.cjs.js");
|
|
37
|
+
const file = require("./modules/file/formats/file.cjs.js");
|
|
38
|
+
const fileBar = require("./modules/file/modules/file-bar.cjs.js");
|
|
39
|
+
const fileModule = require("./modules/file/modules/file-module.cjs.js");
|
|
40
|
+
const index$1 = require("./modules/flow-chart/index.cjs.js");
|
|
41
|
+
const i18n = require("./modules/i18n.cjs.js");
|
|
42
|
+
const link = require("./modules/link/formats/link.cjs.js");
|
|
43
|
+
const tooltip = require("./modules/link/modules/tooltip.cjs.js");
|
|
44
|
+
const formats = require("./modules/mathlive/formats.cjs.js");
|
|
45
|
+
const module$2 = require("./modules/mathlive/module.cjs.js");
|
|
46
|
+
const tooltip$1 = require("./modules/mathlive/tooltip.cjs.js");
|
|
47
|
+
const mention = require("./modules/mention/mention.cjs.js");
|
|
48
|
+
const mentionLink = require("./modules/mention/mention-link.cjs.js");
|
|
49
|
+
const index$2 = require("./modules/mind-map/index.cjs.js");
|
|
50
|
+
const index$3 = require("./modules/shortcut-key/index.cjs.js");
|
|
51
|
+
const index$4 = require("./modules/table-up/index.cjs.js");
|
|
52
|
+
const betterPicker = require("./modules/toolbar/better-picker.cjs.js");
|
|
53
|
+
const betterToolbar = require("./modules/toolbar/better-toolbar.cjs.js");
|
|
54
|
+
const toolbarTip = require("./modules/toolbar/toolbar-tip.cjs.js");
|
|
55
|
+
exports.getListValue = index.getListValue;
|
|
56
|
+
exports.inputFile = index.inputFile;
|
|
57
|
+
exports.namespace = index.namespace;
|
|
58
|
+
Object.defineProperty(exports, "generateTableUpShortKeyMenu", {
|
|
59
|
+
enumerable: true,
|
|
60
|
+
get: () => QuillShortcutKey.generateTableUpShortKeyMenu
|
|
61
|
+
});
|
|
62
|
+
Object.defineProperty(exports, "AttributeMap", {
|
|
63
|
+
enumerable: true,
|
|
64
|
+
get: () => core.AttributeMap
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "Delta", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: () => core.Delta
|
|
69
|
+
});
|
|
70
|
+
Object.defineProperty(exports, "Op", {
|
|
71
|
+
enumerable: true,
|
|
72
|
+
get: () => core.Op
|
|
73
|
+
});
|
|
74
|
+
Object.defineProperty(exports, "OpIterator", {
|
|
75
|
+
enumerable: true,
|
|
76
|
+
get: () => core.OpIterator
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(exports, "Parchment", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: () => core.Parchment
|
|
81
|
+
});
|
|
82
|
+
Object.defineProperty(exports, "Range", {
|
|
83
|
+
enumerable: true,
|
|
84
|
+
get: () => core.Range
|
|
85
|
+
});
|
|
86
|
+
exports.default = fluentEditor.default;
|
|
87
|
+
exports.SizeStyle = fontSize.SizeStyle;
|
|
88
|
+
exports.FontStyle = fontStyle.FontStyle;
|
|
89
|
+
exports.LineHeightStyle = lineHeight.LineHeightStyle;
|
|
90
|
+
exports.TextIndentStyle = textIndent.TextIndentStyle;
|
|
91
|
+
exports.AUDIO_VIDEO_UPLOADER_MIME_TYPES = editor_config.AUDIO_VIDEO_UPLOADER_MIME_TYPES;
|
|
92
|
+
exports.BIG_DELTA_LIMIT = editor_config.BIG_DELTA_LIMIT;
|
|
93
|
+
exports.CHANGE_LANGUAGE_EVENT = editor_config.CHANGE_LANGUAGE_EVENT;
|
|
94
|
+
exports.COMPRESSED_UPLOADER_MIME_TYPES = editor_config.COMPRESSED_UPLOADER_MIME_TYPES;
|
|
95
|
+
exports.DEFAULT_TOOLBAR = editor_config.DEFAULT_TOOLBAR;
|
|
96
|
+
exports.DOC_UPLOADER_MIME_TYPES = editor_config.DOC_UPLOADER_MIME_TYPES;
|
|
97
|
+
exports.FILE_UPLOADER_MIME_TYPES = editor_config.FILE_UPLOADER_MIME_TYPES;
|
|
98
|
+
exports.FULL_TOOLBAR = editor_config.FULL_TOOLBAR;
|
|
99
|
+
exports.IMAGE_UPLOADER_MIME_TYPES = editor_config.IMAGE_UPLOADER_MIME_TYPES;
|
|
100
|
+
exports.OTHER_FILE_UPLOADER_MIME_TYPES = editor_config.OTHER_FILE_UPLOADER_MIME_TYPES;
|
|
101
|
+
exports.PPT_UPLOADER_MIME_TYPES = editor_config.PPT_UPLOADER_MIME_TYPES;
|
|
102
|
+
exports.XSL_UPLOADER_MIME_TYPES = editor_config.XSL_UPLOADER_MIME_TYPES;
|
|
103
|
+
exports.defaultLanguage = editor_config.defaultLanguage;
|
|
104
|
+
exports.getEventComposedPath = editor_utils.getEventComposedPath;
|
|
105
|
+
exports.hadProtocol = editor_utils.hadProtocol;
|
|
106
|
+
exports.hexToRgbA = editor_utils.hexToRgbA;
|
|
107
|
+
exports.imageFileToUrl = editor_utils.imageFileToUrl;
|
|
108
|
+
exports.imageUrlToFile = editor_utils.imageUrlToFile;
|
|
109
|
+
exports.isInside = editor_utils.isInside;
|
|
110
|
+
exports.isNullOrUndefined = editor_utils.isNullOrUndefined;
|
|
111
|
+
exports.omit = editor_utils.omit;
|
|
112
|
+
exports.replaceDeltaImage = editor_utils.replaceDeltaImage;
|
|
113
|
+
exports.sanitize = editor_utils.sanitize;
|
|
114
|
+
exports.splitWithBreak = editor_utils.splitWithBreak;
|
|
115
|
+
exports.EmojiBlot = emoji.EmojiBlot;
|
|
116
|
+
exports.SoftBreak = softBreak.SoftBreak;
|
|
117
|
+
exports.StrikeBlot = strike.StrikeBlot;
|
|
118
|
+
exports.Video = video.Video;
|
|
119
|
+
exports.CollaborationModule = module$1.CollaborationModule;
|
|
120
|
+
exports.CustomClipboard = customClipboard.CustomClipboard;
|
|
121
|
+
exports.Action = action.Action;
|
|
122
|
+
exports.CustomResizeAction = customResizeAction.CustomResizeAction;
|
|
123
|
+
exports.DeleteAction = deleteAction.DeleteAction;
|
|
124
|
+
exports.ALIGN_ATTR = imageToolbarButtons.ALIGN_ATTR;
|
|
125
|
+
exports.ImageToolbarButtons = imageToolbarButtons.ImageToolbarButtons;
|
|
126
|
+
exports.alignmentHandler = imageToolbarButtons.alignmentHandler;
|
|
127
|
+
exports.setAlignStyle = imageToolbarButtons.setAlignStyle;
|
|
128
|
+
exports.ImageToolbar = toolbar.ImageToolbar;
|
|
129
|
+
exports.ImageToolbarAction = toolbarAction.ImageToolbarAction;
|
|
130
|
+
exports.BlotFormatter = blotFormatter.BlotFormatter;
|
|
131
|
+
exports.CustomImage = image.CustomImage;
|
|
132
|
+
exports.BlotSpec = blotSpec.BlotSpec;
|
|
133
|
+
exports.CustomImageSpec = customImageSpec.CustomImageSpec;
|
|
134
|
+
exports.ImageSpec = imageSpec.ImageSpec;
|
|
135
|
+
exports.FileUploader = customUploader.FileUploader;
|
|
136
|
+
exports.DividerBlot = divider.DividerBlot;
|
|
137
|
+
exports.EmojiModule = emoji$1.EmojiModule;
|
|
138
|
+
exports.File = file.File;
|
|
139
|
+
exports.FileBar = fileBar.FileBar;
|
|
140
|
+
exports.FileModule = fileModule.FileModule;
|
|
141
|
+
exports.FlowChartModule = index$1.FlowChartModule;
|
|
142
|
+
exports.I18N = i18n.I18N;
|
|
143
|
+
exports.LinkBlot = link.LinkBlot;
|
|
144
|
+
exports.LinkTooltip = tooltip.LinkTooltip;
|
|
145
|
+
exports.MathliveBlot = formats.MathliveBlot;
|
|
146
|
+
exports.MathliveModule = module$2.MathliveModule;
|
|
147
|
+
exports.MathliveTooltip = tooltip$1.MathliveTooltip;
|
|
148
|
+
exports.Mention = mention.Mention;
|
|
149
|
+
exports.MentionLink = mentionLink.MentionLink;
|
|
150
|
+
exports.MindMapModule = index$2.MindMapModule;
|
|
151
|
+
exports.ShortCutKey = index$3.ShortCutKey;
|
|
152
|
+
exports.shortKey = index$3.shortKey;
|
|
153
|
+
exports.generateTableUp = index$4.generateTableUp;
|
|
154
|
+
exports.ColorPicker = betterPicker.ColorPicker;
|
|
155
|
+
exports.Picker = betterPicker.Picker;
|
|
156
|
+
exports.BetterToolbar = betterToolbar.BetterToolbar;
|
|
157
|
+
exports.generateToolbarTip = toolbarTip.generateToolbarTip;
|
|
158
|
+
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.cjs.js","sources":["../../../../src/modules/ai/constants.ts"],"sourcesContent":["import {\n RICH_CONTENT_ICON,\n STREAMLINE_CONTENT_ICON,\n SYMBOL_ICON,\n TRANSLATE_ICON,\n} from './icons'\n\nexport const INPUT_PLACEHOLDER = '请输入问题或\"/\"获取提示词'\nexport const SELECT_PLACEHOLDER = '向我提问/选择操作'\nexport const STOP_ANSWER = '停止回答'\nexport const REPLACE_SELECT = '替换选中内容'\nexport const INSERT_TEXT = '插入内容'\nexport const INSERT_SUB_CONTENT_TEXT = '插入内容下方'\nexport const REGENERATE = '重新生成'\nexport const CLOSE = '关闭'\nexport const THINK_TEXT = '正在为您分析并总结答案'\nexport const RESULT_HEADER_TEXT = '根据您的诉求,已为您解答,具体如下:'\n\nexport const MENU_TITLE_DATA = {\n editor: [\n { id: '1-1', text: '丰富内容', icon: RICH_CONTENT_ICON },\n { id: '1-2', text: '精简内容', icon: STREAMLINE_CONTENT_ICON },\n { id: '1-3', text: '修改标点符号', icon: SYMBOL_ICON },\n { id: '1-4', text: '翻译', icon: TRANSLATE_ICON },\n ],\n tone: [\n { id: '2-1', text: '更专业的' },\n { id: '2-2', text: '更直接的' },\n { id: '2-3', text: '更友善的' },\n { id: '2-4', text: '更口语化的' },\n ],\n adjust: [\n { id: '3-1', text: '提炼要点' },\n { id: '3-2', text: '归纳总结' },\n { id: '3-3', text: '转写成[代码块]' },\n ],\n}\n\nexport const MENU_ID_MAP = {\n editor: 'subMenuEditorEl',\n tone: 'subMenuToneEl',\n adjust: 'subMenuAdjustEl',\n}\n"],"names":["RICH_CONTENT_ICON","STREAMLINE_CONTENT_ICON","SYMBOL_ICON","TRANSLATE_ICON"],"mappings":";;;AAOO,MAAM,oBAAoB;AAC1B,MAAM,qBAAqB;AAC3B,MAAM,cAAc;AACpB,MAAM,iBAAiB;AACvB,MAAM,cAAc;AACpB,MAAM,0BAA0B;AAChC,MAAM,aAAa;AACnB,MAAM,QAAQ;AACd,MAAM,aAAa;AACnB,MAAM,qBAAqB;AAE3B,MAAM,kBAAkB;AAAA,EAC7B,QAAQ;AAAA,IACN,EAAE,IAAI,OAAO,MAAM,QAAQ,MAAMA,MAAAA,kBAAA;AAAA,IACjC,EAAE,IAAI,OAAO,MAAM,QAAQ,MAAMC,MAAAA,wBAAA;AAAA,IACjC,EAAE,IAAI,OAAO,MAAM,UAAU,MAAMC,MAAAA,YAAA;AAAA,IACnC,EAAE,IAAI,OAAO,MAAM,MAAM,MAAMC,MAAAA,eAAA;AAAA,EAAe;AAAA,EAEhD,MAAM;AAAA,IACJ,EAAE,IAAI,OAAO,MAAM,OAAA;AAAA,IACnB,EAAE,IAAI,OAAO,MAAM,OAAA;AAAA,IACnB,EAAE,IAAI,OAAO,MAAM,OAAA;AAAA,IACnB,EAAE,IAAI,OAAO,MAAM,QAAA;AAAA,EAAQ;AAAA,EAE7B,QAAQ;AAAA,IACN,EAAE,IAAI,OAAO,MAAM,OAAA;AAAA,IACnB,EAAE,IAAI,OAAO,MAAM,OAAA;AAAA,IACnB,EAAE,IAAI,OAAO,MAAM,WAAA;AAAA,EAAW;AAElC;AAEO,MAAM,cAAc;AAAA,EACzB,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AACV;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../../../src/modules/ai/index.ts"],"sourcesContent":["import type TypeToolbar from 'quill/modules/toolbar'\nimport type FluentEditor from '../../core/fluent-editor'\nimport type { AIOptions, OperationMenuItem, ResultMenuItem } from './types'\nimport {\n CLOSE,\n INPUT_PLACEHOLDER,\n INSERT_SUB_CONTENT_TEXT,\n INSERT_TEXT,\n MENU_ID_MAP,\n MENU_TITLE_DATA,\n REGENERATE,\n REPLACE_SELECT,\n RESULT_HEADER_TEXT,\n SELECT_PLACEHOLDER,\n STOP_ANSWER,\n THINK_TEXT,\n} from './constants'\nimport {\n ADJUST_ICON,\n AI_ICON,\n CALL_ICON,\n CLOSE_ICON,\n COPY_ICON,\n EDITOR_ICON,\n INSERT_ICON,\n MENU_CLOSE_ICON,\n REBUILD_ICON,\n REFRESH_ICON,\n REPLACE_SELECT_ICON,\n RIGHT_ARROW_ICON,\n SEND_BTN_ICON,\n STOP_ICON,\n THINK_ICON,\n} from './icons'\n\nexport class AI {\n toolbar: TypeToolbar\n host: string\n apiKey: string\n model: string\n message: string\n isBreak: boolean = false // 打断标记\n textNumber: number // 文本字数限制\n private _isSelectRangeMode: boolean = false // 选择/点击模式\n private _charCount: number = 0 // 文本字数\n private _debounceTimer = null\n private _inputPlaceholder: string = ''\n private _showOperationMenu: boolean = false\n private _isThinking: boolean = false // 思考中\n private _showResultPopupEl: boolean = false // 结果弹窗\n selectedText: string = '' // 选择的文本\n inputValue: string = '' // 存储输入框的值\n resultMenuList: ResultMenuItem[] = []\n operationMenuList: OperationMenuItem[] = []\n private _operationMenuItemList: OperationMenuItem[] = []\n\n private alertEl: HTMLDivElement | null = null\n private alertTimer: number | null = null\n private selectionBubbleEl: HTMLDivElement | null = null\n private selectionRange: any = null\n private dialogContainerEl: HTMLDivElement | null = null\n private wrapContainerEl: HTMLDivElement | null = null\n private aiIconEl: HTMLSpanElement | null = null\n private inputContainerEl: HTMLDivElement | null = null\n private inputEl: HTMLInputElement | null = null\n private menuContainerEl: HTMLDivElement | null = null\n private subMenuEl: HTMLDivElement | null = null\n private subMenuEditorEl: HTMLDivElement | null = null\n private subMenuToneEl: HTMLDivElement | null = null\n private subMenuAdjustEl: HTMLDivElement | null = null\n private inputRightEl: HTMLDivElement | null = null\n private inputSendBtnEl: HTMLSpanElement | null = null\n private inputCloseBtnEl: HTMLSpanElement | null = null\n private thinkContainerEl: HTMLDivElement | null = null // 思考元素\n private thinkBtnEl: HTMLDivElement | null = null\n private resultPopupEl: HTMLDivElement | null = null\n private resultPopupHeaderEl: HTMLDivElement | null = null\n private resultPopupContentEl: HTMLDivElement | null = null\n private resultPopupFooterEl: HTMLDivElement | null = null\n private resultPopupFooterTextEl: HTMLSpanElement | null = null\n private resultRefreshBtnEl: HTMLSpanElement | null = null\n private resultCopyBtnEl: HTMLSpanElement | null = null\n // 分享和朗读功能待放开\n // private resultShareBtnEl: HTMLSpanElement | null = null\n // private resultVoiceBtnEl: HTMLSpanElement | null = null\n private actionMenuEl: HTMLDivElement | null = null\n\n constructor(\n public quill: FluentEditor,\n public options: AIOptions,\n ) {\n this.quill = quill\n this.toolbar = quill.getModule('toolbar') as TypeToolbar\n // 添加AI按钮到工具栏\n if (typeof this.toolbar !== 'undefined') {\n this.toolbar.addHandler('ai', this.showAIInput.bind(this))\n }\n\n this.quill.on('selection-change', this.handleSelectionChange.bind(this))\n\n this.host = options.host || 'https://api.deepseek.com/v1'\n this.apiKey = options.apiKey\n this.model = options.model || 'deepseek-chat'\n this.textNumber = options.contentMaxLength || 5000\n\n this.resultMenuList = [\n { text: REPLACE_SELECT, icon: REPLACE_SELECT_ICON },\n { text: INSERT_TEXT, icon: INSERT_ICON, selectText: INSERT_SUB_CONTENT_TEXT },\n { text: REGENERATE, icon: REBUILD_ICON },\n { text: CLOSE, icon: MENU_CLOSE_ICON },\n ]\n\n this.operationMenuList = [\n { id: 'editor', text: '编辑调整内容', icon: EDITOR_ICON },\n { id: 'tone', text: '改写口吻', icon: CALL_ICON },\n { id: 'adjust', text: '整理选区内容', icon: ADJUST_ICON },\n ]\n }\n\n // 工具栏启动\n showAIInput() {\n // 创建输入框和结果弹窗\n this.create()\n\n this.selectionRange = this.quill.getSelection()\n if (this.selectionRange.length) {\n this.isSelectRangeMode = true\n }\n else {\n this.isSelectRangeMode = false\n }\n // 定位到编辑器焦点位置\n this.positionElements()\n\n // 添加ESC键监听\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n this.closeAIPanel()\n this.quill.container.removeEventListener('keydown', handleKeyDown)\n }\n }\n this.quill.container.addEventListener('keydown', handleKeyDown)\n }\n\n // 气泡启动\n private selectTextEvent() {\n if (!this.selectionRange) return\n this.create()\n // 定位到编辑器焦点位置\n this.positionElements()\n\n this.isSelectRangeMode = true\n }\n\n private create() {\n this.createResultElement()\n this.createOperationMenuElements()\n this.createInputBoxElements()\n\n // 创建事件监听\n this.addInputEvent()\n this.addResultEvent()\n this.handleActionMenuDisplay()\n // 添加到编辑器\n this.quill.container.appendChild(this.dialogContainerEl)\n }\n\n // 创建结果弹窗\n private createResultElement() {\n if (!this.resultPopupEl) {\n this.resultPopupEl = document.createElement('div')\n this.resultPopupEl.className = 'ql-ai-result'\n this.resultPopupHeaderEl = document.createElement('div')\n this.resultPopupHeaderEl.className = 'ql-ai-result-header'\n this.resultPopupHeaderEl.textContent = RESULT_HEADER_TEXT\n this.resultPopupContentEl = document.createElement('div')\n this.resultPopupContentEl.className = 'ql-ai-result-content'\n this.resultPopupFooterEl = document.createElement('div')\n this.resultPopupFooterEl.className = 'ql-ai-result-footer'\n this.resultPopupFooterTextEl = document.createElement('span')\n this.resultPopupFooterTextEl.className = 'ql-ai-result-footer-text'\n this.resultPopupFooterTextEl.textContent = `0`\n this.resultRefreshBtnEl = document.createElement('span')\n this.resultRefreshBtnEl.className = 'ql-ai-result-footer-refresh'\n this.resultRefreshBtnEl.innerHTML = REFRESH_ICON\n this.resultCopyBtnEl = document.createElement('span')\n this.resultCopyBtnEl.className = 'ql-ai-result-footer-copy'\n this.resultCopyBtnEl.innerHTML = COPY_ICON\n\n // 分享和朗读功能待放开\n // this.resultShareBtnEl = document.createElement('span')\n // this.resultShareBtnEl.className = 'ql-ai-result-footer-share'\n // this.resultShareBtnEl.innerHTML = SHARE_ICON\n // this.resultVoiceBtnEl = document.createElement('span')\n // this.resultVoiceBtnEl.className = 'ql-ai-result-footer-voice'\n // this.resultVoiceBtnEl.innerHTML = VOICE_ICON\n const resultFooterRightEl: HTMLDivElement = document.createElement('div')\n resultFooterRightEl.className = 'ql-ai-result-footer-right'\n resultFooterRightEl.appendChild(this.resultRefreshBtnEl)\n resultFooterRightEl.appendChild(this.resultCopyBtnEl)\n // 分享和朗读功能待放开\n // resultFooterRightEl.appendChild(this.resultShareBtnEl)\n // resultFooterRightEl.appendChild(this.resultVoiceBtnEl)\n this.resultPopupFooterEl.appendChild(this.resultPopupFooterTextEl)\n this.resultPopupFooterEl.appendChild(resultFooterRightEl)\n this.resultPopupEl.appendChild(this.resultPopupHeaderEl)\n this.resultPopupEl.appendChild(this.resultPopupContentEl)\n this.resultPopupEl.appendChild(this.resultPopupFooterEl)\n }\n this.showResultPopupEl = false\n }\n\n private createOperationMenuElements() {\n if (!this.menuContainerEl) {\n // 创建操作菜单容器\n this.menuContainerEl = document.createElement('div')\n this.menuContainerEl.className = 'ql-ai-menu-container'\n\n // 创建主菜单\n const mainMenu = document.createElement('div')\n mainMenu.className = 'ql-ai-main-menu'\n this.operationMenuList.forEach(({ text, icon, id }) => {\n const menuItem = document.createElement('div')\n menuItem.className = 'ql-ai-menu-item'\n menuItem.innerHTML = `${icon}<span>${text}</span>${RIGHT_ARROW_ICON}`\n menuItem.addEventListener('mouseenter', (e) => {\n e.stopPropagation()\n this.subMenuEl.style.display = 'block'\n this.subMenuEl.className = `ql-ai-sub-menu ${id}`\n this.createOperationMenuItem(id)\n })\n mainMenu.appendChild(menuItem)\n })\n if (!this.subMenuEl) {\n // 创建子菜单\n this.subMenuEl = document.createElement('div')\n this.subMenuEl.className = 'ql-ai-sub-menu'\n this.subMenuEl.style.display = 'none'\n }\n\n this.menuContainerEl.appendChild(mainMenu)\n this.menuContainerEl.appendChild(this.subMenuEl)\n }\n this.showOperationMenu = false\n }\n\n private createOperationMenuItem(id: string) {\n let menuItemBox = this[MENU_ID_MAP[id]]\n if (!menuItemBox) {\n menuItemBox = document.createElement('div')\n }\n // 清除子菜单容器中的所有子元素\n while (this.subMenuEl.firstChild) {\n this.subMenuEl.removeChild(this.subMenuEl.firstChild)\n }\n\n MENU_TITLE_DATA[id].forEach(({ text, icon, id }) => {\n const menuItem = document.createElement('div')\n menuItem.className = 'ql-ai-menu-item'\n menuItem.innerHTML = `${icon || ''}<span>${text}</span>`\n menuItem.addEventListener('click', (e) => {\n e.stopPropagation()\n this.handleOperationMenuItemClick(text, id)\n })\n menuItemBox.appendChild(menuItem)\n })\n this.subMenuEl.appendChild(menuItemBox)\n }\n\n private createInputBoxElements() {\n if (!this.dialogContainerEl) {\n this.dialogContainerEl = document.createElement('div')\n this.dialogContainerEl.className = 'ql-ai-dialog'\n this.wrapContainerEl = document.createElement('div')\n this.wrapContainerEl.className = 'ql-ai-wrapper'\n this.wrapContainerEl.style.width = `${this.quill.container.clientWidth - 30}px`\n\n // 添加AI图标\n this.createAIInputIcon()\n\n // 增加输入框\n this.inputEl = document.createElement('input')\n this.inputEl.type = 'text'\n this.inputPlaceholder = this._isSelectRangeMode ? SELECT_PLACEHOLDER : INPUT_PLACEHOLDER\n // 添加发送按钮\n this.inputSendBtnEl = document.createElement('span')\n this.inputSendBtnEl.className = 'ql-ai-input-right-send'\n this.inputSendBtnEl.innerHTML = SEND_BTN_ICON\n this.inputCloseBtnEl = document.createElement('span')\n this.inputCloseBtnEl.className = 'ql-ai-input-right-close'\n this.inputCloseBtnEl.innerHTML = CLOSE_ICON\n this.inputRightEl = document.createElement('div')\n this.inputRightEl.className = 'ql-ai-input-right'\n\n // 创建输入框\n this.inputContainerEl = document.createElement('div')\n this.inputContainerEl.className = 'ql-ai-input'\n this.inputContainerEl.appendChild(this.aiIconEl)\n this.inputContainerEl.appendChild(this.inputEl)\n this.inputRightEl.appendChild(this.inputSendBtnEl)\n this.inputRightEl.appendChild(this.inputCloseBtnEl)\n this.inputContainerEl.appendChild(this.inputRightEl) // 添加发送按钮\n this.wrapContainerEl.appendChild(this.resultPopupEl)\n this.wrapContainerEl.appendChild(this.inputContainerEl)\n this.wrapContainerEl.appendChild(this.menuContainerEl) // 添加菜单容器\n this.dialogContainerEl.appendChild(this.wrapContainerEl)\n }\n else {\n this.dialogContainerEl.style.display = 'block'\n }\n this.hiddenInputSendBtnEl()\n }\n\n private hiddenInputSendBtnEl(display = 'none') {\n if (this.inputEl && this.inputSendBtnEl) {\n this.inputSendBtnEl.style.display = display\n }\n }\n\n private copyResult() {\n if (!this.resultPopupContentEl) return\n\n try {\n const textToCopy = this.resultPopupContentEl.textContent || ''\n navigator.clipboard\n .writeText(textToCopy)\n .then(() => {\n this.showAlert('内容已复制到剪贴板')\n // 可以在这里添加复制成功的提示\n })\n .catch((err) => {\n this.showAlert(`复制失败:${err}`)\n })\n }\n catch (err) {\n this.showAlert(`复制失败:${err}`)\n // 兼容不支持clipboard API的浏览器\n const textarea = document.createElement('textarea')\n textarea.value = this.resultPopupContentEl.textContent || ''\n document.body.appendChild(textarea)\n textarea.select()\n document.execCommand('copy')\n document.body.removeChild(textarea)\n }\n }\n\n // 分享和朗读功能待放开\n // private shareResult() {\n // if (!this.resultPopupContentEl) return\n\n // const textToShare = this.resultPopupContentEl.textContent || ''\n // const title = 'AI生成内容分享'\n\n // if (navigator.share) {\n // navigator.share({\n // title,\n // text: textToShare,\n // })\n // .catch((err) => {\n // this.showAlert(`分享失败:${err}`)\n // })\n // }\n // else {\n // // 兼容不支持Web Share API的浏览器\n // const shareUrl = `mailto:?subject=${encodeURIComponent(title)}&body=${encodeURIComponent(textToShare)}`\n // window.open(shareUrl, '_blank')\n // }\n // }\n // private voiceResult() {\n // if (!this.resultPopupContentEl) return\n\n // const textToSpeak = this.resultPopupContentEl.textContent || ''\n\n // if ('speechSynthesis' in window) {\n // const utterance = new SpeechSynthesisUtterance(textToSpeak)\n // utterance.lang = 'zh-CN' // 设置中文语音\n // speechSynthesis.speak(utterance)\n // }\n // else {\n // this.showAlert('当前浏览器不支持语音合成API')\n // // 可以在这里添加不支持语音的提示\n // }\n // }\n\n private addResultEvent() {\n if (this.resultRefreshBtnEl) {\n this.resultRefreshBtnEl.addEventListener('click', () => {\n this.regenerateResponse()\n })\n }\n\n if (this.resultCopyBtnEl) {\n this.resultCopyBtnEl.addEventListener('click', () => {\n this.copyResult()\n })\n }\n\n // 分享和朗读功能待放开\n // if (this.resultShareBtnEl) {\n // this.resultShareBtnEl.addEventListener('click', () => {\n // this.shareResult()\n // })\n // }\n // if (this.resultVoiceBtnEl) {\n // this.resultVoiceBtnEl.addEventListener('click', () => {\n // this.voiceResult()\n // })\n // }\n }\n\n // 显示选中文本的气泡\n private showSelectionBubble() {\n if (!this.selectionBubbleEl) {\n this.selectionBubbleEl = document.createElement('div')\n this.selectionBubbleEl.className = 'ql-ai-selection-bubble'\n const icon = AI_ICON.replaceAll('paint_linear_2', 'paint_linear_bubble')\n this.selectionBubbleEl.innerHTML = `${icon}<span>AI 智能</span>`\n this.selectionBubbleEl.addEventListener('click', () => this.selectTextEvent())\n document.body.appendChild(this.selectionBubbleEl)\n }\n\n const { left, top } = this.quill.getBounds(this.selectionRange.index)\n const { left: endLeft } = this.quill.getBounds(this.selectionRange.index + this.selectionRange.length)\n const width = (endLeft - left) / 2\n const editorRect = this.quill.container.getBoundingClientRect()\n\n this.selectionBubbleEl.style.display = 'flex'\n this.selectionBubbleEl.style.left = `${left + editorRect.left + width - 45}px`\n this.selectionBubbleEl.style.top = `${top + editorRect.top - 40}px`\n }\n\n // 隐藏选中文本的气泡\n private hideSelectionBubble() {\n if (this.selectionBubbleEl) {\n this.selectionBubbleEl.style.display = 'none'\n }\n }\n\n // 处理文本选中变化\n private handleSelectionChange(range: any) {\n if (range && range.length > 0) {\n this.selectionRange = range\n this.showSelectionBubble()\n this.selectedText = this.quill.getText(range.index, range.length)\n }\n else {\n if (range && range.index !== null) {\n this.selectedText = ''\n this.closeAIPanel()\n }\n else {\n this.hideSelectionBubble()\n }\n }\n }\n\n private addInputEvent() {\n if (this.inputContainerEl) {\n this.inputContainerEl.addEventListener('click', () => {})\n }\n\n // 监听输入事件\n if (this.inputEl) {\n this.inputEl.addEventListener('input', () => {\n this.hiddenInputSendBtnEl(this.inputEl.value.trim() ? 'flex' : 'none')\n if (this.menuContainerEl && this._isSelectRangeMode) {\n this.showOperationMenu = !this.inputEl.value.trim() && !this._showResultPopupEl\n }\n })\n }\n\n // 给发送按钮添加点击事件\n if (this.inputSendBtnEl) {\n this.inputSendBtnEl.addEventListener('click', async () => {\n await this.queryAI()\n })\n }\n // 监听发送事件\n this.inputEl.addEventListener('keydown', async (e) => {\n if (e.key === 'Enter') {\n await this.queryAI()\n }\n })\n\n // 给关闭按钮添加点击事件\n if (this.inputCloseBtnEl) {\n this.inputCloseBtnEl.addEventListener('click', () => {\n this.closeAIPanel()\n })\n }\n }\n\n private positionElements() {\n if (!this.dialogContainerEl) return\n const range = this.selectionRange\n if (range) {\n const bounds = this.quill.getBounds(range.index)\n this.dialogContainerEl.style.position = 'absolute'\n this.dialogContainerEl.style.top = `${bounds.top + bounds.height + 20}px`\n }\n }\n\n // 添加创建alert元素的方法\n private createAlertElement() {\n if (!this.alertEl) {\n this.alertEl = document.createElement('div')\n this.alertEl.className = 'ql-ai-alert'\n this.alertEl.style.display = 'none'\n document.body.appendChild(this.alertEl)\n }\n }\n\n // 添加显示alert的方法\n private showAlert(message: string, duration: number = 3000) {\n this.createAlertElement()\n if (!this.alertEl) return\n\n // 清除之前的定时器\n if (this.alertTimer) {\n clearTimeout(this.alertTimer)\n this.alertTimer = null\n }\n\n this.alertEl.textContent = message\n this.alertEl.style.display = 'block'\n\n // 自动隐藏\n this.alertTimer = setTimeout(() => {\n if (this.alertEl) {\n this.alertEl.style.display = 'none'\n }\n this.alertTimer = null\n }, duration) as unknown as number\n }\n\n private createAIInputIcon() {\n if (!this.aiIconEl) {\n this.aiIconEl = document.createElement('span')\n this.aiIconEl.className = 'ql-ai-input-pre-icon'\n const icon = AI_ICON.replaceAll('paint_linear_2', 'paint_linear_ai_input')\n this.aiIconEl.innerHTML = icon\n }\n }\n\n // 添加处理子菜单点击的方法\n private handleOperationMenuItemClick(text: string, id: string = '') {\n let quetion = ''\n if (id.startsWith('1-') || id.startsWith('3-')) {\n quetion = `将目标文字${text},目标文字为:${this.selectedText}`\n }\n else if (id.startsWith('2-')) {\n quetion = `改写目标文字的口吻,让其变得${text},目标文字为:${this.selectedText}`\n }\n this.showOperationMenu = false\n this.queryAI(quetion)\n }\n\n private createActionMenu() {\n if (!this.actionMenuEl) {\n this.actionMenuEl = document.createElement('div')\n this.actionMenuEl.className = 'ql-ai-actions'\n\n this.resultMenuList.forEach(({ text, icon }) => {\n const menuItem = document.createElement('div')\n menuItem.className = 'ql-ai-action-item'\n menuItem.innerHTML = `${icon}<span class=\"ql-ai-result-menu-text\">${text}</span>`\n menuItem.addEventListener('click', () => this.handleAction(text))\n this.actionMenuEl.appendChild(menuItem)\n })\n\n this.wrapContainerEl.appendChild(this.actionMenuEl)\n }\n const secondMenuItemText = this.actionMenuEl.children[1].querySelector('.ql-ai-result-menu-text') as HTMLDivElement\n\n const firstChild = this.actionMenuEl.firstChild\n\n if (!this._isSelectRangeMode) {\n if (firstChild instanceof Element) {\n firstChild.classList.add('hidden')\n }\n\n secondMenuItemText.textContent = INSERT_TEXT\n }\n else {\n if (firstChild instanceof Element) {\n firstChild.classList.remove('hidden')\n }\n\n secondMenuItemText.textContent = INSERT_SUB_CONTENT_TEXT\n }\n\n this.isThinking = false\n }\n\n private handleActionMenuDisplay(value: string = 'none') {\n if (this.actionMenuEl) {\n this.actionMenuEl.style.display = value\n }\n }\n\n private switchInputEl(showInput = true) {\n if (this.inputContainerEl) {\n this.inputContainerEl.style.display = showInput ? 'flex' : 'none'\n }\n\n this.handleActionMenuDisplay(showInput ? 'block' : 'none')\n\n if (this.thinkContainerEl) {\n this.thinkContainerEl.style.display = showInput ? 'none' : 'flex'\n }\n }\n\n // 创建思考元素\n private createThinkElements() {\n if (!this.thinkContainerEl) {\n this.thinkContainerEl = document.createElement('div')\n this.thinkContainerEl.className = 'ql-ai-input'\n this.thinkContainerEl.innerHTML = `<span class=\"ql-ai-input-pre-icon ql-ai-think-icon\">${THINK_ICON}</span><span class=\"ql-ai-think-text\">${THINK_TEXT}</span>`\n this.thinkBtnEl = document.createElement('div')\n this.thinkBtnEl.className = 'ql-ai-think-btn'\n this.thinkBtnEl.innerHTML = `${STOP_ICON}<span>${STOP_ANSWER}</span>`\n this.thinkContainerEl.appendChild(this.thinkBtnEl)\n this.wrapContainerEl.appendChild(this.thinkContainerEl) // 添加发送按钮\n this.thinkBtnEl.addEventListener('click', () => {\n this.isBreak = true\n this.isThinking = false\n })\n }\n\n this.isThinking = true\n }\n\n // AI查询\n private async queryAI(question?: string): Promise<string> {\n this.createThinkElements()\n this.inputValue = question || this.inputEl.value\n if (this.inputValue.trim() === '') {\n return\n }\n\n // 有信息\n this.isBreak = false // 重置打断标记,防止重复打断ai\n // 这里实现实际的AI查询逻辑\n try {\n const response = await fetch(`${this.host}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${this.apiKey}`,\n },\n body: JSON.stringify({\n model: this.model,\n prompt: this.inputValue,\n stream: true,\n }),\n })\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`)\n }\n\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n let content = ''\n\n while (true) {\n if (this.isBreak) {\n this.isBreak = false\n break\n }\n\n const { done, value } = await reader.read()\n if (done) break\n\n const chunk = decoder.decode(value)\n const lines = chunk.split('\\n').filter(line => line.trim() !== '')\n\n for (const line of lines) {\n try {\n const data = JSON.parse(line)\n content += data.response || ''\n this.showAIResponse(content)\n }\n catch (e) {\n console.error('解析错误:', e)\n }\n }\n }\n\n // 创建操作菜单\n this.createActionMenu()\n this.inputEl.value = '' // 清空输入框\n this.hiddenInputSendBtnEl()\n return content\n }\n catch (error) {\n console.error('AI查询失败:', error)\n return 'AI查询失败,请重试'\n }\n }\n\n private showAIResponse(response: string) {\n if (!this.resultPopupEl) return\n\n // 显示结果\n if (this._charCount <= this.textNumber) {\n this.resultPopupContentEl.innerHTML = response\n this.charCount = this.resultPopupContentEl.textContent.replace(/\\s+/g, '').length\n }\n else {\n this.isBreak = true\n this.charCount = 0\n }\n this.showResultPopupEl = true\n }\n\n private handleAction(action: string) {\n switch (action) {\n case REPLACE_SELECT:\n this.replaceSelectText()\n break\n case INSERT_TEXT:\n this.insertAIResponse()\n break\n case REGENERATE:\n this.regenerateResponse()\n break\n case CLOSE:\n this.closeAIPanel()\n break\n }\n }\n\n private replaceSelectText() {\n if (!this.resultPopupContentEl) return\n const range = this.quill.getSelection(true)\n if (range && range.length > 0) {\n // 删除选中内容\n this.quill.deleteText(range.index, range.length)\n // 插入AI生成的内容\n this.quill.clipboard.dangerouslyPasteHTML(range.index, this.resultPopupContentEl.innerHTML)\n }\n this.closeAIPanel()\n }\n\n private insertAIResponse() {\n if (!this.resultPopupContentEl) return\n const range = this.quill.getSelection(true)\n if (range) {\n this.quill.clipboard.dangerouslyPasteHTML(range.index + range.length, this.resultPopupContentEl.innerHTML)\n }\n this.closeAIPanel()\n }\n\n private async regenerateResponse() {\n await this.queryAI(this.inputValue)\n }\n\n private closeAIPanel() {\n this.isBreak = true // 停止查询\n\n if (this.dialogContainerEl) {\n this.dialogContainerEl.style.display = 'none'\n }\n\n if (this.actionMenuEl) {\n this.actionMenuEl.style.display = 'none'\n }\n\n this.showResultPopupEl = false\n\n if (this.inputEl && this.inputEl.value.trim() !== '') {\n this.inputEl.value = '' // 清空输入框\n }\n this.hideSelectionBubble()\n }\n\n set charCount(value: number) {\n // 清除之前的定时器\n if (this._debounceTimer) {\n clearTimeout(this._debounceTimer)\n }\n\n this._debounceTimer = setTimeout(() => {\n this._charCount = value\n if (this.resultPopupFooterTextEl) {\n this.resultPopupFooterTextEl.textContent = `${this._charCount}/${this.textNumber}`\n }\n clearTimeout(this._debounceTimer)\n this._debounceTimer = null\n }, 210)\n }\n\n get charCount() {\n return this._charCount\n }\n\n set inputPlaceholder(value: string) {\n this._inputPlaceholder = value\n if (this.inputEl) {\n this.inputEl.placeholder = value\n }\n }\n\n get inputPlaceholder() {\n return this._inputPlaceholder\n }\n\n set showOperationMenu(value: boolean) {\n this._showOperationMenu = value\n if (this.menuContainerEl) {\n this.menuContainerEl.style.display = value ? 'flex' : 'none'\n }\n }\n\n get showOperationMenu() {\n return this._showOperationMenu\n }\n\n set isSelectRangeMode(value: boolean) {\n this._isSelectRangeMode = value\n this.showOperationMenu = value\n this.inputPlaceholder = value ? SELECT_PLACEHOLDER : INPUT_PLACEHOLDER\n this.hideSelectionBubble()\n }\n\n get isSelectRangeMode() {\n return this._isSelectRangeMode\n }\n\n set isThinking(value: boolean) {\n this._isThinking = value\n this.switchInputEl(!value)\n }\n\n get isThinking() {\n return this._isThinking\n }\n\n set showResultPopupEl(value: boolean) {\n this._showResultPopupEl = value\n if (this.resultPopupEl) {\n this.resultPopupEl.style.display = value ? 'block' : 'none'\n }\n }\n\n get showResultPopupEl() {\n return this._showResultPopupEl\n }\n}\n"],"names":["REPLACE_SELECT","REPLACE_SELECT_ICON","INSERT_TEXT","INSERT_ICON","INSERT_SUB_CONTENT_TEXT","REGENERATE","REBUILD_ICON","CLOSE","MENU_CLOSE_ICON","EDITOR_ICON","CALL_ICON","ADJUST_ICON","RESULT_HEADER_TEXT","REFRESH_ICON","COPY_ICON","RIGHT_ARROW_ICON","MENU_ID_MAP","MENU_TITLE_DATA","id","SELECT_PLACEHOLDER","INPUT_PLACEHOLDER","SEND_BTN_ICON","CLOSE_ICON","AI_ICON","THINK_ICON","THINK_TEXT","STOP_ICON","STOP_ANSWER"],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
function setupAwareness(options, defaultAwareness) {
|
|
4
|
+
if (!defaultAwareness) return null;
|
|
5
|
+
const awareness = defaultAwareness;
|
|
6
|
+
if (options == null ? void 0 : options.state) {
|
|
7
|
+
awareness.setLocalStateField("user", options.state);
|
|
8
|
+
}
|
|
9
|
+
return awareness;
|
|
10
|
+
}
|
|
11
|
+
function bindAwarenessToCursors(awareness, cursorsModule, quill, yText, Yjs) {
|
|
12
|
+
if (!cursorsModule || !awareness) return;
|
|
13
|
+
const doc = yText.doc;
|
|
14
|
+
const updateCursor = (clientId, state) => {
|
|
15
|
+
try {
|
|
16
|
+
if ((state == null ? void 0 : state.cursor) && clientId !== awareness.clientID) {
|
|
17
|
+
const user = state.user || {};
|
|
18
|
+
const color = user.color || "#ff6b6b";
|
|
19
|
+
const name = user.name || `User ${clientId}`;
|
|
20
|
+
cursorsModule.createCursor(clientId.toString(), name, color);
|
|
21
|
+
const anchor = Yjs.createAbsolutePositionFromRelativePosition(Yjs.createRelativePositionFromJSON(state.cursor.anchor), doc);
|
|
22
|
+
const head = Yjs.createAbsolutePositionFromRelativePosition(Yjs.createRelativePositionFromJSON(state.cursor.head), doc);
|
|
23
|
+
if (anchor && head && anchor.type === yText && clientId) {
|
|
24
|
+
setTimeout(() => {
|
|
25
|
+
cursorsModule.moveCursor(clientId.toString(), {
|
|
26
|
+
index: anchor.index,
|
|
27
|
+
length: head.index - anchor.index
|
|
28
|
+
});
|
|
29
|
+
}, 0);
|
|
30
|
+
}
|
|
31
|
+
} else {
|
|
32
|
+
cursorsModule.removeCursor(clientId.toString());
|
|
33
|
+
}
|
|
34
|
+
} catch (err) {
|
|
35
|
+
console.error("Cursor update failed:", err);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const selectionChangeHandler = (range) => {
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
var _a;
|
|
41
|
+
if (range) {
|
|
42
|
+
const anchor = Yjs.createRelativePositionFromTypeIndex(yText, range.index);
|
|
43
|
+
const head = Yjs.createRelativePositionFromTypeIndex(yText, range.index + range.length);
|
|
44
|
+
const currentState = awareness.getLocalState();
|
|
45
|
+
if (!(currentState == null ? void 0 : currentState.cursor) || !Yjs.compareRelativePositions(anchor, currentState.cursor.anchor) || !Yjs.compareRelativePositions(head, currentState.cursor.head)) {
|
|
46
|
+
awareness.setLocalStateField("cursor", { anchor, head });
|
|
47
|
+
}
|
|
48
|
+
} else {
|
|
49
|
+
if (((_a = awareness.getLocalState()) == null ? void 0 : _a.cursor) !== null) {
|
|
50
|
+
awareness.setLocalStateField("cursor", null);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}, 0);
|
|
54
|
+
};
|
|
55
|
+
const changeHandler = ({ added, updated, removed }) => {
|
|
56
|
+
if (quill.composition.isComposing) return;
|
|
57
|
+
const states = awareness.getStates();
|
|
58
|
+
added.forEach((id) => {
|
|
59
|
+
updateCursor(id, states.get(id));
|
|
60
|
+
});
|
|
61
|
+
updated.forEach((id) => {
|
|
62
|
+
updateCursor(id, states.get(id));
|
|
63
|
+
});
|
|
64
|
+
removed.forEach((id) => {
|
|
65
|
+
cursorsModule.removeCursor(id.toString());
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
awareness.on("change", changeHandler);
|
|
69
|
+
quill.on("editor-change", (eventName, ...args) => {
|
|
70
|
+
if (quill.composition.isComposing) return;
|
|
71
|
+
if (eventName === "text-change") {
|
|
72
|
+
if (args[2] === "user") {
|
|
73
|
+
const range = quill.getSelection();
|
|
74
|
+
selectionChangeHandler(range);
|
|
75
|
+
}
|
|
76
|
+
} else if (eventName === "selection-change") {
|
|
77
|
+
if (args[2] === "user") {
|
|
78
|
+
selectionChangeHandler(args[0]);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
awareness.getStates().forEach((state, clientId) => {
|
|
83
|
+
updateCursor(clientId, state);
|
|
84
|
+
});
|
|
85
|
+
return () => {
|
|
86
|
+
awareness.off("change", changeHandler);
|
|
87
|
+
quill.off("editor-change", selectionChangeHandler);
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
exports.bindAwarenessToCursors = bindAwarenessToCursors;
|
|
91
|
+
exports.setupAwareness = setupAwareness;
|
|
92
|
+
//# sourceMappingURL=awareness.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awareness.cjs.js","sources":["../../../../../src/modules/collaborative-editing/awareness/awareness.ts"],"sourcesContent":["import type QuillCursors from 'quill-cursors'\nimport type { Awareness } from 'y-protocols/awareness'\nimport type * as Y from 'yjs'\nimport type FluentEditor from '../../../core/fluent-editor'\n\nexport interface AwarenessState {\n name?: string\n color?: string\n}\n\nexport interface AwarenessEvents {\n change?: (changes: { added: number[], updated: number[], removed: number[] }, transactionOrigin: any) => void\n update?: ({ added, updated, removed }: { added: number[], updated: number[], removed: number[] }, origin: any) => void\n destroy?: () => void\n}\n\nexport interface AwarenessOptions {\n state?: AwarenessState\n events?: AwarenessEvents\n timeout?: number | undefined\n}\n\nexport function setupAwareness(options?: AwarenessOptions, defaultAwareness?: Awareness): Awareness | null {\n if (!defaultAwareness) return null\n\n const awareness = defaultAwareness\n\n if (options?.state) {\n awareness.setLocalStateField('user', options.state)\n }\n\n return awareness\n}\n\nexport function bindAwarenessToCursors(\n awareness: Awareness,\n cursorsModule: QuillCursors,\n quill: FluentEditor,\n yText: Y.Text,\n Yjs: typeof Y,\n): (() => void) | void {\n if (!cursorsModule || !awareness) return\n\n const doc = yText.doc!\n\n const updateCursor = (clientId: number, state: any) => {\n try {\n if (state?.cursor && clientId !== awareness.clientID) {\n const user = state.user || {}\n const color = user.color || '#ff6b6b'\n const name = user.name || `User ${clientId}`\n\n cursorsModule.createCursor(clientId.toString(), name, color)\n\n const anchor = Yjs.createAbsolutePositionFromRelativePosition(Yjs.createRelativePositionFromJSON(state.cursor.anchor), doc)\n const head = Yjs.createAbsolutePositionFromRelativePosition(Yjs.createRelativePositionFromJSON(state.cursor.head), doc)\n\n if (anchor && head && anchor.type === yText && clientId) {\n setTimeout(() => {\n cursorsModule.moveCursor(clientId.toString(), {\n index: anchor.index,\n length: head.index - anchor.index,\n })\n }, 0)\n }\n }\n else {\n cursorsModule.removeCursor(clientId.toString())\n }\n }\n catch (err) {\n console.error('Cursor update failed:', err)\n }\n }\n\n const selectionChangeHandler = (range: { index: number, length: number } | null) => {\n setTimeout(() => {\n if (range) {\n const anchor = Yjs.createRelativePositionFromTypeIndex(yText, range.index)\n const head = Yjs.createRelativePositionFromTypeIndex(yText, range.index + range.length)\n\n const currentState = awareness.getLocalState()\n if (!currentState?.cursor\n || !Yjs.compareRelativePositions(anchor, currentState.cursor.anchor)\n || !Yjs.compareRelativePositions(head, currentState.cursor.head)) {\n awareness.setLocalStateField('cursor', { anchor, head })\n }\n }\n else {\n if (awareness.getLocalState()?.cursor !== null) {\n awareness.setLocalStateField('cursor', null)\n }\n }\n }, 0)\n }\n\n const changeHandler = ({ added, updated, removed }: {\n added: number[]\n updated: number[]\n removed: number[]\n }) => {\n if (quill.composition.isComposing) return\n const states = awareness.getStates()\n\n added.forEach((id) => {\n updateCursor(id, states.get(id))\n })\n\n updated.forEach((id) => {\n updateCursor(id, states.get(id))\n })\n\n removed.forEach((id) => {\n cursorsModule.removeCursor(id.toString())\n })\n }\n\n awareness.on('change', changeHandler)\n quill.on('editor-change', (eventName, ...args) => {\n if (quill.composition.isComposing) return\n if (eventName === 'text-change') {\n if (args[2] === 'user') {\n const range = quill.getSelection()\n selectionChangeHandler(range)\n }\n }\n else if (eventName === 'selection-change') {\n if (args[2] === 'user') {\n selectionChangeHandler(args[0] as { index: number, length: number } | null)\n }\n }\n })\n\n awareness.getStates().forEach((state, clientId) => {\n updateCursor(clientId, state)\n })\n\n return () => {\n awareness.off('change', changeHandler)\n quill.off('editor-change', selectionChangeHandler)\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
function setupIndexedDB(doc, IndexeddbPersistenceClass) {
|
|
4
|
+
if (!IndexeddbPersistenceClass) {
|
|
5
|
+
console.warn("[yjs] IndexeddbPersistence not provided, offline support disabled");
|
|
6
|
+
return () => {
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
const fullDbName = `tiny-editor-${doc.guid}`;
|
|
10
|
+
new IndexeddbPersistenceClass(fullDbName, doc);
|
|
11
|
+
return () => {
|
|
12
|
+
indexedDB.deleteDatabase(fullDbName);
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
exports.setupIndexedDB = setupIndexedDB;
|
|
16
|
+
//# sourceMappingURL=y-indexeddb.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"y-indexeddb.cjs.js","sources":["../../../../../src/modules/collaborative-editing/awareness/y-indexeddb.ts"],"sourcesContent":["import type { IndexeddbPersistence } from 'y-indexeddb'\nimport type * as Y from 'yjs'\n\nexport function setupIndexedDB(doc: Y.Doc, IndexeddbPersistenceClass?: typeof IndexeddbPersistence): () => void {\n if (!IndexeddbPersistenceClass) {\n console.warn('[yjs] IndexeddbPersistence not provided, offline support disabled')\n return () => {}\n }\n\n const fullDbName = `tiny-editor-${doc.guid}`\n\n new IndexeddbPersistenceClass(fullDbName, doc)\n\n return (): void => {\n indexedDB.deleteDatabase(fullDbName)\n }\n}\n"],"names":[],"mappings":";;AAGO,SAAS,eAAe,KAAY,2BAAqE;AAC9G,MAAI,CAAC,2BAA2B;AAC9B,YAAQ,KAAK,mEAAmE;AAChF,WAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AAEA,QAAM,aAAa,eAAe,IAAI,IAAI;AAE1C,MAAI,0BAA0B,YAAY,GAAG;AAE7C,SAAO,MAAY;AACjB,cAAU,eAAe,UAAU;AAAA,EACrC;AACF;;"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
6
|
+
require("./awareness/index.cjs.js");
|
|
7
|
+
const yIndexeddb = require("./awareness/y-indexeddb.cjs.js");
|
|
8
|
+
const providerRegistry = require("./provider/providerRegistry.cjs.js");
|
|
9
|
+
const awareness = require("./awareness/awareness.cjs.js");
|
|
10
|
+
class CollaborativeEditor {
|
|
11
|
+
constructor(quill, options) {
|
|
12
|
+
__publicField(this, "ydoc");
|
|
13
|
+
__publicField(this, "provider");
|
|
14
|
+
__publicField(this, "awareness");
|
|
15
|
+
__publicField(this, "cursors");
|
|
16
|
+
__publicField(this, "cleanupBindings", null);
|
|
17
|
+
__publicField(this, "clearIndexedDB", null);
|
|
18
|
+
__publicField(this, "deps");
|
|
19
|
+
this.quill = quill;
|
|
20
|
+
this.options = options;
|
|
21
|
+
this.deps = this.options.deps || window;
|
|
22
|
+
const { Y, Awareness, QuillBinding, QuillCursors } = this.deps;
|
|
23
|
+
if (!Y || !Awareness || !QuillBinding || !QuillCursors) {
|
|
24
|
+
throw new Error(
|
|
25
|
+
"Missing required dependencies for collaborative editing. Please provide Y, Awareness, QuillBinding, and QuillCursors in the deps option."
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
this.ydoc = this.options.ydoc || new Y.Doc();
|
|
29
|
+
if (this.options.cursors !== false) {
|
|
30
|
+
const cursorsOptions = typeof this.options.cursors === "object" ? this.options.cursors : {};
|
|
31
|
+
this.cursors = new QuillCursors(quill, cursorsOptions);
|
|
32
|
+
}
|
|
33
|
+
if (this.options.awareness) {
|
|
34
|
+
const awareness$1 = awareness.setupAwareness(this.options.awareness, new Awareness(this.ydoc));
|
|
35
|
+
if (!awareness$1) {
|
|
36
|
+
throw new Error("Failed to initialize awareness");
|
|
37
|
+
}
|
|
38
|
+
this.awareness = awareness$1;
|
|
39
|
+
} else {
|
|
40
|
+
this.awareness = new Awareness(this.ydoc);
|
|
41
|
+
}
|
|
42
|
+
if (this.options.provider) {
|
|
43
|
+
const providerConfig = this.options.provider;
|
|
44
|
+
try {
|
|
45
|
+
const provider = providerRegistry.createProvider({
|
|
46
|
+
doc: this.ydoc,
|
|
47
|
+
options: providerConfig.options,
|
|
48
|
+
type: providerConfig.type,
|
|
49
|
+
awareness: this.awareness,
|
|
50
|
+
onConnect: this.options.onConnect,
|
|
51
|
+
onDisconnect: this.options.onDisconnect,
|
|
52
|
+
onError: this.options.onError,
|
|
53
|
+
onSyncChange: this.options.onSyncChange,
|
|
54
|
+
deps: this.deps
|
|
55
|
+
});
|
|
56
|
+
this.provider = provider;
|
|
57
|
+
} catch (error) {
|
|
58
|
+
console.warn(
|
|
59
|
+
`[yjs] Error creating provider of type ${providerConfig.type}:`,
|
|
60
|
+
error
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (this.provider) {
|
|
65
|
+
const ytext = this.ydoc.getText("tiny-editor");
|
|
66
|
+
this.cleanupBindings = awareness.bindAwarenessToCursors(this.awareness, this.cursors, quill, ytext, Y) || null;
|
|
67
|
+
new QuillBinding(
|
|
68
|
+
ytext,
|
|
69
|
+
this.quill,
|
|
70
|
+
this.awareness
|
|
71
|
+
);
|
|
72
|
+
} else {
|
|
73
|
+
console.error("Failed to initialize collaborative editor: no valid provider configured");
|
|
74
|
+
}
|
|
75
|
+
if (this.options.offline !== false) {
|
|
76
|
+
this.clearIndexedDB = yIndexeddb.setupIndexedDB(this.ydoc, this.deps.IndexeddbPersistence);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
getAwareness() {
|
|
80
|
+
return this.awareness;
|
|
81
|
+
}
|
|
82
|
+
getProvider() {
|
|
83
|
+
return this.provider;
|
|
84
|
+
}
|
|
85
|
+
getYDoc() {
|
|
86
|
+
return this.ydoc;
|
|
87
|
+
}
|
|
88
|
+
get isConnected() {
|
|
89
|
+
var _a;
|
|
90
|
+
return ((_a = this.provider) == null ? void 0 : _a.isConnected) ?? false;
|
|
91
|
+
}
|
|
92
|
+
get isSynced() {
|
|
93
|
+
var _a;
|
|
94
|
+
return ((_a = this.provider) == null ? void 0 : _a.isSynced) ?? false;
|
|
95
|
+
}
|
|
96
|
+
getCursors() {
|
|
97
|
+
return this.cursors;
|
|
98
|
+
}
|
|
99
|
+
async destroy() {
|
|
100
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
101
|
+
(_a = this.cleanupBindings) == null ? void 0 : _a.call(this);
|
|
102
|
+
(_c = (_b = this.provider) == null ? void 0 : _b.destroy) == null ? void 0 : _c.call(_b);
|
|
103
|
+
(_d = this.cursors) == null ? void 0 : _d.clearCursors();
|
|
104
|
+
(_f = (_e = this.awareness) == null ? void 0 : _e.destroy) == null ? void 0 : _f.call(_e);
|
|
105
|
+
(_g = this.clearIndexedDB) == null ? void 0 : _g.call(this);
|
|
106
|
+
(_i = (_h = this.ydoc) == null ? void 0 : _h.destroy) == null ? void 0 : _i.call(_h);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.CollaborativeEditor = CollaborativeEditor;
|
|
110
|
+
//# sourceMappingURL=collaborative-editing.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collaborative-editing.cjs.js","sources":["../../../../src/modules/collaborative-editing/collaborative-editing.ts"],"sourcesContent":["import type QuillCursors from 'quill-cursors'\nimport type { Awareness } from 'y-protocols/awareness'\nimport type * as Y from 'yjs'\nimport type FluentEditor from '../../fluent-editor'\nimport type { UnifiedProvider } from './provider/providerRegistry'\nimport type { CollaborativeEditingDeps, YjsOptions } from './types'\nimport { bindAwarenessToCursors, setupAwareness } from './awareness'\nimport { setupIndexedDB } from './awareness/y-indexeddb'\nimport { createProvider } from './provider/providerRegistry'\n\nexport class CollaborativeEditor {\n private ydoc: Y.Doc\n private provider: UnifiedProvider\n private awareness: Awareness\n private cursors: QuillCursors | null\n private cleanupBindings: (() => void) | null = null\n private clearIndexedDB: (() => void) | null = null\n private deps: CollaborativeEditingDeps\n\n constructor(\n public quill: FluentEditor,\n public options: YjsOptions,\n ) {\n this.deps = this.options.deps || (window as any)\n const { Y, Awareness, QuillBinding, QuillCursors } = this.deps\n\n if (!Y || !Awareness || !QuillBinding || !QuillCursors) {\n throw new Error(\n 'Missing required dependencies for collaborative editing. '\n + 'Please provide Y, Awareness, QuillBinding, and QuillCursors in the deps option.',\n )\n }\n\n this.ydoc = this.options.ydoc || new Y.Doc()\n\n if (this.options.cursors !== false) {\n const cursorsOptions = typeof this.options.cursors === 'object' ? this.options.cursors : {}\n this.cursors = new QuillCursors(quill, cursorsOptions)\n }\n\n if (this.options.awareness) {\n const awareness = setupAwareness(this.options.awareness, new Awareness(this.ydoc))\n if (!awareness) {\n throw new Error('Failed to initialize awareness')\n }\n this.awareness = awareness\n }\n else {\n this.awareness = new Awareness(this.ydoc)\n }\n\n if (this.options.provider) {\n const providerConfig = this.options.provider\n try {\n const provider = createProvider({\n doc: this.ydoc,\n options: providerConfig.options,\n type: providerConfig.type,\n awareness: this.awareness,\n onConnect: this.options.onConnect,\n onDisconnect: this.options.onDisconnect,\n onError: this.options.onError,\n onSyncChange: this.options.onSyncChange,\n deps: this.deps,\n })\n this.provider = provider\n }\n catch (error) {\n console.warn(\n `[yjs] Error creating provider of type ${providerConfig.type}:`,\n error,\n )\n }\n }\n\n if (this.provider) {\n const ytext = this.ydoc.getText('tiny-editor')\n this.cleanupBindings = bindAwarenessToCursors(this.awareness, this.cursors, quill, ytext, Y) || null\n new QuillBinding(\n ytext,\n this.quill,\n this.awareness,\n )\n }\n else {\n console.error('Failed to initialize collaborative editor: no valid provider configured')\n }\n\n if (this.options.offline !== false) {\n this.clearIndexedDB = setupIndexedDB(this.ydoc, this.deps.IndexeddbPersistence)\n }\n }\n\n public getAwareness() {\n return this.awareness\n }\n\n public getProvider() {\n return this.provider\n }\n\n public getYDoc() {\n return this.ydoc\n }\n\n get isConnected() {\n return this.provider?.isConnected ?? false\n }\n\n get isSynced() {\n return this.provider?.isSynced ?? false\n }\n\n public getCursors() {\n return this.cursors\n }\n\n public async destroy() {\n this.cleanupBindings?.()\n this.provider?.destroy?.()\n this.cursors?.clearCursors()\n this.awareness?.destroy?.()\n this.clearIndexedDB?.()\n this.ydoc?.destroy?.()\n }\n}\n"],"names":["awareness","setupAwareness","createProvider","bindAwarenessToCursors","setupIndexedDB"],"mappings":";;;;;;;;;AAUO,MAAM,oBAAoB;AAAA,EAS/B,YACS,OACA,SACP;AAXM;AACA;AACA;AACA;AACA,2CAAuC;AACvC,0CAAsC;AACtC;AAGC,SAAA,QAAA;AACA,SAAA,UAAA;AAEP,SAAK,OAAO,KAAK,QAAQ,QAAS;AAClC,UAAM,EAAE,GAAG,WAAW,cAAc,aAAA,IAAiB,KAAK;AAE1D,QAAI,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,cAAc;AACtD,YAAM,IAAI;AAAA,QACR;AAAA,MAAA;AAAA,IAGJ;AAEA,SAAK,OAAO,KAAK,QAAQ,QAAQ,IAAI,EAAE,IAAA;AAEvC,QAAI,KAAK,QAAQ,YAAY,OAAO;AAClC,YAAM,iBAAiB,OAAO,KAAK,QAAQ,YAAY,WAAW,KAAK,QAAQ,UAAU,CAAA;AACzF,WAAK,UAAU,IAAI,aAAa,OAAO,cAAc;AAAA,IACvD;AAEA,QAAI,KAAK,QAAQ,WAAW;AAC1B,YAAMA,cAAYC,yBAAe,KAAK,QAAQ,WAAW,IAAI,UAAU,KAAK,IAAI,CAAC;AACjF,UAAI,CAACD,aAAW;AACd,cAAM,IAAI,MAAM,gCAAgC;AAAA,MAClD;AACA,WAAK,YAAYA;AAAAA,IACnB,OACK;AACH,WAAK,YAAY,IAAI,UAAU,KAAK,IAAI;AAAA,IAC1C;AAEA,QAAI,KAAK,QAAQ,UAAU;AACzB,YAAM,iBAAiB,KAAK,QAAQ;AACpC,UAAI;AACF,cAAM,WAAWE,iBAAAA,eAAe;AAAA,UAC9B,KAAK,KAAK;AAAA,UACV,SAAS,eAAe;AAAA,UACxB,MAAM,eAAe;AAAA,UACrB,WAAW,KAAK;AAAA,UAChB,WAAW,KAAK,QAAQ;AAAA,UACxB,cAAc,KAAK,QAAQ;AAAA,UAC3B,SAAS,KAAK,QAAQ;AAAA,UACtB,cAAc,KAAK,QAAQ;AAAA,UAC3B,MAAM,KAAK;AAAA,QAAA,CACZ;AACD,aAAK,WAAW;AAAA,MAClB,SACO,OAAO;AACZ,gBAAQ;AAAA,UACN,yCAAyC,eAAe,IAAI;AAAA,UAC5D;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,QAAI,KAAK,UAAU;AACjB,YAAM,QAAQ,KAAK,KAAK,QAAQ,aAAa;AAC7C,WAAK,kBAAkBC,iCAAuB,KAAK,WAAW,KAAK,SAAS,OAAO,OAAO,CAAC,KAAK;AAChG,UAAI;AAAA,QACF;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,MAAA;AAAA,IAET,OACK;AACH,cAAQ,MAAM,yEAAyE;AAAA,IACzF;AAEA,QAAI,KAAK,QAAQ,YAAY,OAAO;AAClC,WAAK,iBAAiBC,0BAAe,KAAK,MAAM,KAAK,KAAK,oBAAoB;AAAA,IAChF;AAAA,EACF;AAAA,EAEO,eAAe;AACpB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,cAAc;AACnB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,UAAU;AACf,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,cAAc;;AAChB,aAAO,UAAK,aAAL,mBAAe,gBAAe;AAAA,EACvC;AAAA,EAEA,IAAI,WAAW;;AACb,aAAO,UAAK,aAAL,mBAAe,aAAY;AAAA,EACpC;AAAA,EAEO,aAAa;AAClB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAa,UAAU;;AACrB,eAAK,oBAAL;AACA,qBAAK,aAAL,mBAAe,YAAf;AACA,eAAK,YAAL,mBAAc;AACd,qBAAK,cAAL,mBAAgB,YAAhB;AACA,eAAK,mBAAL;AACA,qBAAK,SAAL,mBAAW,YAAX;AAAA,EACF;AACF;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.cjs.js","sources":["../../../../src/modules/collaborative-editing/module.ts"],"sourcesContent":["import type FluentEditor from '../../fluent-editor'\nimport { CollaborativeEditor } from './collaborative-editing'\n\nexport class CollaborationModule {\n private collaborativeEditor: CollaborativeEditor\n\n constructor(public quill: FluentEditor, public options: any) {\n this.collaborativeEditor = new CollaborativeEditor(quill, options)\n\n window.addEventListener(\n 'beforeunload',\n () => { void this.collaborativeEditor.destroy().catch(err => console.warn('[yjs] destroy failed:', err)) },\n { once: true },\n )\n }\n\n public getCursors() {\n return this.collaborativeEditor.getCursors()\n }\n\n public getAwareness() {\n return this.collaborativeEditor.getAwareness()\n }\n\n public getProvider() {\n return this.collaborativeEditor.getProvider()\n }\n\n public async destroy() {\n await this.collaborativeEditor.destroy()\n }\n}\n"],"names":["CollaborativeEditor"],"mappings":";;;;;;AAGO,MAAM,oBAAoB;AAAA,EAG/B,YAAmB,OAA4B,SAAc;AAFrD;AAEW,SAAA,QAAA;AAA4B,SAAA,UAAA;AAC7C,SAAK,sBAAsB,IAAIA,yCAAoB,OAAO,OAAO;AAEjE,WAAO;AAAA,MACL;AAAA,MACA,MAAM;AAAE,aAAK,KAAK,oBAAoB,QAAA,EAAU,MAAM,SAAO,QAAQ,KAAK,yBAAyB,GAAG,CAAC;AAAA,MAAE;AAAA,MACzG,EAAE,MAAM,KAAA;AAAA,IAAK;AAAA,EAEjB;AAAA,EAEO,aAAa;AAClB,WAAO,KAAK,oBAAoB,WAAA;AAAA,EAClC;AAAA,EAEO,eAAe;AACpB,WAAO,KAAK,oBAAoB,aAAA;AAAA,EAClC;AAAA,EAEO,cAAc;AACnB,WAAO,KAAK,oBAAoB,YAAA;AAAA,EAClC;AAAA,EAEA,MAAa,UAAU;AACrB,UAAM,KAAK,oBAAoB,QAAA;AAAA,EACjC;AACF;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerRegistry.cjs.js","sources":["../../../../../src/modules/collaborative-editing/provider/providerRegistry.ts"],"sourcesContent":["import type { Awareness } from 'y-protocols/awareness'\nimport type * as Y from 'yjs'\nimport type { CollaborativeEditingDeps, ProviderEventHandlers } from '../types'\nimport { WebRTCProviderWrapper } from './webrtc'\nimport { WebsocketProviderWrapper } from './websocket'\n\nexport type ProviderRegistry = Record<string, ProviderConstructor>\n\nexport type ProviderConstructor<T = any> = new (\n props: ProviderConstructorProps<T>\n) => UnifiedProvider\n\nexport type ProviderConstructorProps<T = any> = {\n options: T\n awareness?: Awareness\n doc?: Y.Doc\n deps?: CollaborativeEditingDeps\n} & ProviderEventHandlers\n\nexport interface UnifiedProvider extends ProviderEventHandlers {\n awareness: Awareness\n document: Y.Doc\n type: 'webrtc' | 'websocket' | string\n connect: () => void\n destroy: () => void\n disconnect: () => void\n isConnected: boolean\n isSynced: boolean\n}\n\nconst providerRegistry: ProviderRegistry = {\n websocket: WebsocketProviderWrapper,\n webrtc: WebRTCProviderWrapper,\n}\n\nexport function registerProviderType<T>(type: string, providerClass: ProviderConstructor<T>) {\n providerRegistry[type as string]\n = providerClass as ProviderConstructor\n}\n\nexport function getProviderClass(type: string): ProviderConstructor | undefined {\n return providerRegistry[type]\n}\n\nexport function createProvider({\n type,\n ...props\n}: ProviderConstructorProps & {\n type: string\n}) {\n const ProviderClass = getProviderClass(type)\n\n if (!ProviderClass) {\n throw new Error(`Provider type \"${type}\" not found in registry`)\n }\n\n return new ProviderClass(props)\n}\n"],"names":["WebsocketProviderWrapper","WebRTCProviderWrapper"],"mappings":";;;;AA8BA,MAAM,mBAAqC;AAAA,EACzC,WAAWA,UAAAA;AAAAA,EACX,QAAQC,OAAAA;AACV;AAEO,SAAS,qBAAwB,MAAc,eAAuC;AAC3F,mBAAiB,IAAc,IAC3B;AACN;AAEO,SAAS,iBAAiB,MAA+C;AAC9E,SAAO,iBAAiB,IAAI;AAC9B;AAEO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA,GAAG;AACL,GAEG;AACD,QAAM,gBAAgB,iBAAiB,IAAI;AAE3C,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM,kBAAkB,IAAI,yBAAyB;AAAA,EACjE;AAEA,SAAO,IAAI,cAAc,KAAK;AAChC;;;;"}
|