@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/src/modules/ai/types.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export interface OperationMenuItem {
|
|
2
|
-
id: string
|
|
3
|
-
text: string
|
|
4
|
-
icon?: string
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export interface ResultMenuItem {
|
|
8
|
-
text: string
|
|
9
|
-
icon: string
|
|
10
|
-
selectText?: string
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface AIOptions {
|
|
14
|
-
host?: string
|
|
15
|
-
apiKey: string
|
|
16
|
-
model?: string
|
|
17
|
-
contentMaxLength?: number
|
|
18
|
-
}
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import type QuillCursors from 'quill-cursors'
|
|
2
|
-
import type { Awareness } from 'y-protocols/awareness'
|
|
3
|
-
import type FluentEditor from '../../../core/fluent-editor'
|
|
4
|
-
import * as Y from 'yjs'
|
|
5
|
-
|
|
6
|
-
export interface AwarenessState {
|
|
7
|
-
name?: string
|
|
8
|
-
color?: string
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export interface AwarenessEvents {
|
|
12
|
-
change?: (changes: { added: number[], updated: number[], removed: number[] }, transactionOrigin: any) => void
|
|
13
|
-
update?: ({ added, updated, removed }: { added: number[], updated: number[], removed: number[] }, origin: any) => void
|
|
14
|
-
destroy?: () => void
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export interface AwarenessOptions {
|
|
18
|
-
state?: AwarenessState
|
|
19
|
-
events?: AwarenessEvents
|
|
20
|
-
timeout?: number | undefined
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export function setupAwareness(options?: AwarenessOptions, defaultAwareness?: Awareness): Awareness | null {
|
|
24
|
-
if (!defaultAwareness) return null
|
|
25
|
-
|
|
26
|
-
const awareness = defaultAwareness
|
|
27
|
-
|
|
28
|
-
if (options?.state) {
|
|
29
|
-
awareness.setLocalStateField('user', options.state)
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return awareness
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export function bindAwarenessToCursors(
|
|
36
|
-
awareness: Awareness,
|
|
37
|
-
cursorsModule: QuillCursors,
|
|
38
|
-
quill: FluentEditor,
|
|
39
|
-
yText: Y.Text,
|
|
40
|
-
): (() => void) | void {
|
|
41
|
-
if (!cursorsModule || !awareness) return
|
|
42
|
-
|
|
43
|
-
const doc = yText.doc!
|
|
44
|
-
|
|
45
|
-
const updateCursor = (clientId: number, state: any) => {
|
|
46
|
-
try {
|
|
47
|
-
if (state?.cursor && clientId !== awareness.clientID) {
|
|
48
|
-
const user = state.user || {}
|
|
49
|
-
const color = user.color || '#ff6b6b'
|
|
50
|
-
const name = user.name || `User ${clientId}`
|
|
51
|
-
|
|
52
|
-
cursorsModule.createCursor(clientId.toString(), name, color)
|
|
53
|
-
|
|
54
|
-
const anchor = Y.createAbsolutePositionFromRelativePosition(Y.createRelativePositionFromJSON(state.cursor.anchor), doc)
|
|
55
|
-
const head = Y.createAbsolutePositionFromRelativePosition(Y.createRelativePositionFromJSON(state.cursor.head), doc)
|
|
56
|
-
|
|
57
|
-
if (anchor && head && anchor.type === yText && clientId) {
|
|
58
|
-
setTimeout(() => {
|
|
59
|
-
cursorsModule.moveCursor(clientId.toString(), {
|
|
60
|
-
index: anchor.index,
|
|
61
|
-
length: head.index - anchor.index,
|
|
62
|
-
})
|
|
63
|
-
}, 0)
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
cursorsModule.removeCursor(clientId.toString())
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
catch (err) {
|
|
71
|
-
console.error('Cursor update failed:', err)
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const selectionChangeHandler = (range: { index: number, length: number } | null) => {
|
|
76
|
-
setTimeout(() => {
|
|
77
|
-
if (range) {
|
|
78
|
-
const anchor = Y.createRelativePositionFromTypeIndex(yText, range.index)
|
|
79
|
-
const head = Y.createRelativePositionFromTypeIndex(yText, range.index + range.length)
|
|
80
|
-
|
|
81
|
-
const currentState = awareness.getLocalState()
|
|
82
|
-
if (!currentState?.cursor
|
|
83
|
-
|| !Y.compareRelativePositions(anchor, currentState.cursor.anchor)
|
|
84
|
-
|| !Y.compareRelativePositions(head, currentState.cursor.head)) {
|
|
85
|
-
awareness.setLocalStateField('cursor', { anchor, head })
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
if (awareness.getLocalState()?.cursor !== null) {
|
|
90
|
-
awareness.setLocalStateField('cursor', null)
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}, 0)
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
const changeHandler = ({ added, updated, removed }: {
|
|
97
|
-
added: number[]
|
|
98
|
-
updated: number[]
|
|
99
|
-
removed: number[]
|
|
100
|
-
}) => {
|
|
101
|
-
if (quill.composition.isComposing) return
|
|
102
|
-
const states = awareness.getStates()
|
|
103
|
-
|
|
104
|
-
added.forEach((id) => {
|
|
105
|
-
updateCursor(id, states.get(id))
|
|
106
|
-
})
|
|
107
|
-
|
|
108
|
-
updated.forEach((id) => {
|
|
109
|
-
updateCursor(id, states.get(id))
|
|
110
|
-
})
|
|
111
|
-
|
|
112
|
-
removed.forEach((id) => {
|
|
113
|
-
cursorsModule.removeCursor(id.toString())
|
|
114
|
-
})
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
awareness.on('change', changeHandler)
|
|
118
|
-
quill.on('editor-change', (eventName, ...args) => {
|
|
119
|
-
if (quill.composition.isComposing) return
|
|
120
|
-
if (eventName === 'text-change') {
|
|
121
|
-
if (args[2] === 'user') {
|
|
122
|
-
const range = quill.getSelection()
|
|
123
|
-
selectionChangeHandler(range)
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
else if (eventName === 'selection-change') {
|
|
127
|
-
if (args[2] === 'user') {
|
|
128
|
-
selectionChangeHandler(args[0] as { index: number, length: number } | null)
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
})
|
|
132
|
-
|
|
133
|
-
awareness.getStates().forEach((state, clientId) => {
|
|
134
|
-
updateCursor(clientId, state)
|
|
135
|
-
})
|
|
136
|
-
|
|
137
|
-
return () => {
|
|
138
|
-
awareness.off('change', changeHandler)
|
|
139
|
-
quill.off('editor-change', selectionChangeHandler)
|
|
140
|
-
}
|
|
141
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { Doc } from 'yjs'
|
|
2
|
-
import { IndexeddbPersistence } from 'y-indexeddb'
|
|
3
|
-
|
|
4
|
-
export function setupIndexedDB(doc: Doc): () => void {
|
|
5
|
-
const fullDbName = `tiny-editor-${doc.guid}`
|
|
6
|
-
|
|
7
|
-
new IndexeddbPersistence(fullDbName, doc)
|
|
8
|
-
|
|
9
|
-
return (): void => {
|
|
10
|
-
indexedDB.deleteDatabase(fullDbName)
|
|
11
|
-
}
|
|
12
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import type FluentEditor from '../../fluent-editor'
|
|
2
|
-
import type { UnifiedProvider } from './provider/providerRegistry'
|
|
3
|
-
import type { YjsOptions } from './types'
|
|
4
|
-
import QuillCursors from 'quill-cursors'
|
|
5
|
-
import { Awareness } from 'y-protocols/awareness'
|
|
6
|
-
import { QuillBinding } from 'y-quill'
|
|
7
|
-
import * as Y from 'yjs'
|
|
8
|
-
import { bindAwarenessToCursors, setupAwareness } from './awareness'
|
|
9
|
-
import { setupIndexedDB } from './awareness/y-indexeddb'
|
|
10
|
-
import { createProvider } from './provider/providerRegistry'
|
|
11
|
-
|
|
12
|
-
export class CollaborativeEditor {
|
|
13
|
-
private ydoc: Y.Doc = new Y.Doc()
|
|
14
|
-
private provider: UnifiedProvider
|
|
15
|
-
private awareness: Awareness
|
|
16
|
-
private cursors: QuillCursors | null
|
|
17
|
-
private cleanupBindings: (() => void) | null = null
|
|
18
|
-
private clearIndexedDB: (() => void) | null = null
|
|
19
|
-
|
|
20
|
-
constructor(
|
|
21
|
-
public quill: FluentEditor,
|
|
22
|
-
public options: YjsOptions,
|
|
23
|
-
) {
|
|
24
|
-
this.ydoc = this.options.ydoc || new Y.Doc()
|
|
25
|
-
|
|
26
|
-
if (this.options.cursors !== false) {
|
|
27
|
-
const cursorsOptions = typeof this.options.cursors === 'object' ? this.options.cursors : {}
|
|
28
|
-
this.cursors = new QuillCursors(quill, cursorsOptions)
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (this.options.awareness) {
|
|
32
|
-
const awareness = setupAwareness(this.options.awareness, new Awareness(this.ydoc))
|
|
33
|
-
if (!awareness) {
|
|
34
|
-
throw new Error('Failed to initialize awareness')
|
|
35
|
-
}
|
|
36
|
-
this.awareness = awareness
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
this.awareness = new Awareness(this.ydoc)
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (this.options.provider) {
|
|
43
|
-
const providerConfig = this.options.provider
|
|
44
|
-
try {
|
|
45
|
-
const provider = 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
|
-
})
|
|
55
|
-
this.provider = provider
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
console.warn(
|
|
59
|
-
`[yjs] Error creating provider of type ${providerConfig.type}:`,
|
|
60
|
-
error,
|
|
61
|
-
)
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (this.provider) {
|
|
66
|
-
const ytext = this.ydoc.getText('tiny-editor')
|
|
67
|
-
this.cleanupBindings = bindAwarenessToCursors(this.awareness, this.cursors, quill, ytext) || null
|
|
68
|
-
new QuillBinding(
|
|
69
|
-
ytext,
|
|
70
|
-
this.quill,
|
|
71
|
-
this.awareness,
|
|
72
|
-
)
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
console.error('Failed to initialize collaborative editor: no valid provider configured')
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (this.options.offline !== false) {
|
|
79
|
-
this.clearIndexedDB = setupIndexedDB(this.ydoc)
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
public getAwareness() {
|
|
84
|
-
return this.awareness
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
public getProvider() {
|
|
88
|
-
return this.provider
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
public getYDoc() {
|
|
92
|
-
return this.ydoc
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
get isConnected() {
|
|
96
|
-
return this.provider?.isConnected ?? false
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
get isSynced() {
|
|
100
|
-
return this.provider?.isSynced ?? false
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
public getCursors() {
|
|
104
|
-
return this.cursors
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
public async destroy() {
|
|
108
|
-
this.cleanupBindings?.()
|
|
109
|
-
this.provider?.destroy?.()
|
|
110
|
-
this.cursors?.clearCursors()
|
|
111
|
-
this.awareness?.destroy?.()
|
|
112
|
-
this.clearIndexedDB?.()
|
|
113
|
-
this.ydoc?.destroy?.()
|
|
114
|
-
}
|
|
115
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type FluentEditor from '../../fluent-editor'
|
|
2
|
-
import { CollaborativeEditor } from './collaborative-editing'
|
|
3
|
-
|
|
4
|
-
export class CollaborationModule {
|
|
5
|
-
private collaborativeEditor: CollaborativeEditor
|
|
6
|
-
|
|
7
|
-
constructor(public quill: FluentEditor, public options: any) {
|
|
8
|
-
this.collaborativeEditor = new CollaborativeEditor(quill, options)
|
|
9
|
-
|
|
10
|
-
window.addEventListener(
|
|
11
|
-
'beforeunload',
|
|
12
|
-
() => { void this.collaborativeEditor.destroy().catch(err => console.warn('[yjs] destroy failed:', err)) },
|
|
13
|
-
{ once: true },
|
|
14
|
-
)
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
public getCursors() {
|
|
18
|
-
return this.collaborativeEditor.getCursors()
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
public getAwareness() {
|
|
22
|
-
return this.collaborativeEditor.getAwareness()
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
public getProvider() {
|
|
26
|
-
return this.collaborativeEditor.getProvider()
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
public async destroy() {
|
|
30
|
-
await this.collaborativeEditor.destroy()
|
|
31
|
-
}
|
|
32
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import type { Awareness } from 'y-protocols/awareness'
|
|
2
|
-
import type * as Y from 'yjs'
|
|
3
|
-
import type { ProviderEventHandlers } from '../types'
|
|
4
|
-
import { WebRTCProviderWrapper } from './webrtc'
|
|
5
|
-
import { WebsocketProviderWrapper } from './websocket'
|
|
6
|
-
|
|
7
|
-
export type ProviderRegistry = Record<string, ProviderConstructor>
|
|
8
|
-
|
|
9
|
-
export type ProviderConstructor<T = any> = new (
|
|
10
|
-
props: ProviderConstructorProps<T>
|
|
11
|
-
) => UnifiedProvider
|
|
12
|
-
|
|
13
|
-
export type ProviderConstructorProps<T = any> = {
|
|
14
|
-
options: T
|
|
15
|
-
awareness?: Awareness
|
|
16
|
-
doc?: Y.Doc
|
|
17
|
-
} & ProviderEventHandlers
|
|
18
|
-
|
|
19
|
-
export interface UnifiedProvider extends ProviderEventHandlers {
|
|
20
|
-
awareness: Awareness
|
|
21
|
-
document: Y.Doc
|
|
22
|
-
type: 'webrtc' | 'websocket' | string
|
|
23
|
-
connect: () => void
|
|
24
|
-
destroy: () => void
|
|
25
|
-
disconnect: () => void
|
|
26
|
-
isConnected: boolean
|
|
27
|
-
isSynced: boolean
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const providerRegistry: ProviderRegistry = {
|
|
31
|
-
websocket: WebsocketProviderWrapper,
|
|
32
|
-
webrtc: WebRTCProviderWrapper,
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export function registerProviderType<T>(type: string, providerClass: ProviderConstructor<T>) {
|
|
36
|
-
providerRegistry[type as string]
|
|
37
|
-
= providerClass as ProviderConstructor
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export function getProviderClass(type: string): ProviderConstructor | undefined {
|
|
41
|
-
return providerRegistry[type]
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export function createProvider({
|
|
45
|
-
type,
|
|
46
|
-
...props
|
|
47
|
-
}: ProviderConstructorProps & {
|
|
48
|
-
type: string
|
|
49
|
-
}) {
|
|
50
|
-
const ProviderClass = getProviderClass(type)
|
|
51
|
-
|
|
52
|
-
if (!ProviderClass) {
|
|
53
|
-
throw new Error(`Provider type "${type}" not found in registry`)
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return new ProviderClass(props)
|
|
57
|
-
}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import type { Awareness } from 'y-protocols/awareness'
|
|
2
|
-
import type { ProviderEventHandlers } from '../types'
|
|
3
|
-
import type { UnifiedProvider } from './providerRegistry'
|
|
4
|
-
import { WebrtcProvider } from 'y-webrtc'
|
|
5
|
-
import * as Y from 'yjs'
|
|
6
|
-
|
|
7
|
-
export interface WebRTCProviderOptions {
|
|
8
|
-
roomName: string
|
|
9
|
-
filterBcConns?: boolean
|
|
10
|
-
maxConns?: number
|
|
11
|
-
password?: string
|
|
12
|
-
peerOpts?: Record<string, unknown>
|
|
13
|
-
signaling?: string[]
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export class WebRTCProviderWrapper implements UnifiedProvider {
|
|
17
|
-
private provider: WebrtcProvider
|
|
18
|
-
private _isConnected = false
|
|
19
|
-
private _isSynced = false
|
|
20
|
-
|
|
21
|
-
onConnect?: () => void
|
|
22
|
-
onDisconnect?: () => void
|
|
23
|
-
onError?: (error: Error) => void
|
|
24
|
-
onSyncChange?: (isSynced: boolean) => void
|
|
25
|
-
|
|
26
|
-
document: Y.Doc
|
|
27
|
-
awareness: Awareness
|
|
28
|
-
type: 'webrtc'
|
|
29
|
-
|
|
30
|
-
connect = () => {
|
|
31
|
-
try {
|
|
32
|
-
this.provider.connect()
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
console.warn('[yjs] Error connecting WebRTC provider:', error)
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
destroy = () => {
|
|
40
|
-
try {
|
|
41
|
-
this.provider.destroy()
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
console.warn('[yjs] Error destroying WebRTC provider:', error)
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
disconnect = () => {
|
|
49
|
-
try {
|
|
50
|
-
this.provider.disconnect()
|
|
51
|
-
this._isConnected = false
|
|
52
|
-
this._isSynced = false
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
console.warn('[yjs] Error disconnecting WebRTC provider:', error)
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
constructor({
|
|
60
|
-
awareness,
|
|
61
|
-
doc,
|
|
62
|
-
options,
|
|
63
|
-
onConnect,
|
|
64
|
-
onDisconnect,
|
|
65
|
-
onError,
|
|
66
|
-
onSyncChange,
|
|
67
|
-
}: {
|
|
68
|
-
options: WebRTCProviderOptions
|
|
69
|
-
awareness?: Awareness
|
|
70
|
-
doc?: Y.Doc
|
|
71
|
-
} & ProviderEventHandlers) {
|
|
72
|
-
this.onConnect = onConnect
|
|
73
|
-
this.onDisconnect = onDisconnect
|
|
74
|
-
this.onError = onError
|
|
75
|
-
this.onSyncChange = onSyncChange
|
|
76
|
-
|
|
77
|
-
this.document = doc || new Y.Doc()
|
|
78
|
-
try {
|
|
79
|
-
this.provider = new WebrtcProvider(options.roomName, this.document, {
|
|
80
|
-
awareness,
|
|
81
|
-
...options,
|
|
82
|
-
})
|
|
83
|
-
|
|
84
|
-
this.provider.on('status', (status: { connected: boolean }) => {
|
|
85
|
-
const wasConnected = this._isConnected
|
|
86
|
-
this._isConnected = status.connected
|
|
87
|
-
if (status.connected) {
|
|
88
|
-
if (!wasConnected) {
|
|
89
|
-
this.onConnect?.()
|
|
90
|
-
}
|
|
91
|
-
if (!this._isSynced) {
|
|
92
|
-
this._isSynced = true
|
|
93
|
-
this.onSyncChange?.(true)
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
if (wasConnected) {
|
|
98
|
-
this.onDisconnect?.()
|
|
99
|
-
|
|
100
|
-
if (this._isSynced) {
|
|
101
|
-
this._isSynced = false
|
|
102
|
-
this.onSyncChange?.(false)
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
})
|
|
107
|
-
}
|
|
108
|
-
catch (error) {
|
|
109
|
-
console.warn('[yjs] Error creating WebRTC provider:', error)
|
|
110
|
-
onError?.(error instanceof Error ? error : new Error(String(error)))
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
get isConnected() {
|
|
115
|
-
return this._isConnected
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
get isSynced() {
|
|
119
|
-
return this._isSynced
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
getProvider() {
|
|
123
|
-
return this.provider
|
|
124
|
-
}
|
|
125
|
-
}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import type { ProviderEventHandlers } from '../types'
|
|
2
|
-
import type { UnifiedProvider } from './providerRegistry'
|
|
3
|
-
import { Awareness } from 'y-protocols/awareness'
|
|
4
|
-
import { WebsocketProvider } from 'y-websocket'
|
|
5
|
-
import * as Y from 'yjs'
|
|
6
|
-
|
|
7
|
-
export interface WebsocketProviderOptions {
|
|
8
|
-
serverUrl: string
|
|
9
|
-
roomName: string
|
|
10
|
-
connect?: boolean
|
|
11
|
-
awareness?: any
|
|
12
|
-
params?: Record<string, string>
|
|
13
|
-
protocols?: string[]
|
|
14
|
-
WebSocketPolyfill?: typeof WebSocket
|
|
15
|
-
resyncInterval?: number
|
|
16
|
-
maxBackoffTime?: number
|
|
17
|
-
disableBc?: boolean
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export class WebsocketProviderWrapper implements UnifiedProvider {
|
|
21
|
-
private provider: WebsocketProvider
|
|
22
|
-
|
|
23
|
-
private _isConnected = false
|
|
24
|
-
private _isSynced = false
|
|
25
|
-
|
|
26
|
-
onConnect?: () => void
|
|
27
|
-
onDisconnect?: () => void
|
|
28
|
-
onError?: (error: Error) => void
|
|
29
|
-
onSyncChange?: (isSynced: boolean) => void
|
|
30
|
-
|
|
31
|
-
document: Y.Doc
|
|
32
|
-
awareness: Awareness
|
|
33
|
-
type: 'websocket'
|
|
34
|
-
|
|
35
|
-
connect = () => {
|
|
36
|
-
try {
|
|
37
|
-
this.provider.connect()
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
console.warn('[yjs] Error connecting WebSocket provider:', error)
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
destroy = () => {
|
|
45
|
-
try {
|
|
46
|
-
this.provider.destroy()
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
console.warn('[yjs] Error destroying WebSocket provider:', error)
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
disconnect = () => {
|
|
54
|
-
try {
|
|
55
|
-
this.provider.disconnect()
|
|
56
|
-
const wasSynced = this._isSynced
|
|
57
|
-
|
|
58
|
-
this._isConnected = false
|
|
59
|
-
this._isSynced = false
|
|
60
|
-
|
|
61
|
-
if (wasSynced) {
|
|
62
|
-
this.onSyncChange?.(false)
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
console.warn('[yjs] Error disconnecting WebSocket provider:', error)
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
constructor({
|
|
71
|
-
awareness,
|
|
72
|
-
doc,
|
|
73
|
-
options,
|
|
74
|
-
onConnect,
|
|
75
|
-
onDisconnect,
|
|
76
|
-
onError,
|
|
77
|
-
onSyncChange,
|
|
78
|
-
}: {
|
|
79
|
-
options: WebsocketProviderOptions
|
|
80
|
-
awareness?: Awareness
|
|
81
|
-
doc?: Y.Doc
|
|
82
|
-
} & ProviderEventHandlers) {
|
|
83
|
-
this.onConnect = onConnect
|
|
84
|
-
this.onDisconnect = onDisconnect
|
|
85
|
-
this.onError = onError
|
|
86
|
-
this.onSyncChange = onSyncChange
|
|
87
|
-
|
|
88
|
-
this.document = doc || new Y.Doc()
|
|
89
|
-
this.awareness = awareness ?? new Awareness(this.document)
|
|
90
|
-
try {
|
|
91
|
-
this.provider = new WebsocketProvider(
|
|
92
|
-
options.serverUrl,
|
|
93
|
-
options.roomName,
|
|
94
|
-
this.document,
|
|
95
|
-
{
|
|
96
|
-
awareness: this.awareness,
|
|
97
|
-
...options,
|
|
98
|
-
},
|
|
99
|
-
)
|
|
100
|
-
|
|
101
|
-
this.provider.on('status', (event: { status: 'connected' | 'disconnected' | 'connecting' }) => {
|
|
102
|
-
const wasConnected = this._isConnected
|
|
103
|
-
this._isConnected = event.status === 'connected'
|
|
104
|
-
|
|
105
|
-
if (event.status === 'connected') {
|
|
106
|
-
if (!wasConnected) {
|
|
107
|
-
this.onConnect?.()
|
|
108
|
-
}
|
|
109
|
-
if (!this._isSynced) {
|
|
110
|
-
this._isSynced = true
|
|
111
|
-
this.onSyncChange?.(true)
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
else if (event.status === 'disconnected') {
|
|
115
|
-
if (wasConnected) {
|
|
116
|
-
this.onDisconnect?.()
|
|
117
|
-
if (this._isSynced) {
|
|
118
|
-
this._isSynced = false
|
|
119
|
-
this.onSyncChange?.(false)
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
})
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
console.warn('[yjs] Error creating WebSocket provider:', error)
|
|
127
|
-
onError?.(error instanceof Error ? error : new Error(String(error)))
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
get isConnected() {
|
|
132
|
-
return this._isConnected
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
get isSynced() {
|
|
136
|
-
return this._isSynced
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
getProvider() {
|
|
140
|
-
return this.provider
|
|
141
|
-
}
|
|
142
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import type * as Y from 'yjs'
|
|
2
|
-
import type { AwarenessOptions } from './awareness'
|
|
3
|
-
import type { WebRTCProviderOptions, WebsocketProviderOptions } from './provider'
|
|
4
|
-
|
|
5
|
-
export interface ProviderEventHandlers {
|
|
6
|
-
onConnect?: () => void
|
|
7
|
-
onDisconnect?: () => void
|
|
8
|
-
onError?: (error: Error) => void
|
|
9
|
-
onSyncChange?: (isSynced: boolean) => void
|
|
10
|
-
}
|
|
11
|
-
export interface BaseYjsProviderConfig extends ProviderEventHandlers {
|
|
12
|
-
options: Record<string, any>
|
|
13
|
-
type: string
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export type WebRTCProviderConfig = BaseYjsProviderConfig & {
|
|
17
|
-
options: WebRTCProviderOptions
|
|
18
|
-
type: 'webrtc'
|
|
19
|
-
}
|
|
20
|
-
export type WebsocketProviderConfig = BaseYjsProviderConfig & {
|
|
21
|
-
options: WebsocketProviderOptions
|
|
22
|
-
type: 'websocket'
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export type CustomProviderConfig = BaseYjsProviderConfig & {
|
|
26
|
-
options: Record<string, any>
|
|
27
|
-
type: string
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export type CursorsConfig = boolean | object
|
|
31
|
-
|
|
32
|
-
export interface YjsOptions {
|
|
33
|
-
ydoc?: Y.Doc
|
|
34
|
-
provider: (WebRTCProviderConfig | WebsocketProviderConfig | CustomProviderConfig)
|
|
35
|
-
awareness?: AwarenessOptions
|
|
36
|
-
offline?: boolean
|
|
37
|
-
cursors?: CursorsConfig
|
|
38
|
-
|
|
39
|
-
// callback
|
|
40
|
-
onConnect?: () => void
|
|
41
|
-
onDisconnect?: () => void
|
|
42
|
-
onError?: (error) => void
|
|
43
|
-
onSyncChange?: (isSynced: boolean) => void
|
|
44
|
-
}
|