@opentiny/fluent-editor 4.1.0-alpha.4 → 4.1.1
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 +1 -1
- package/es/config/editor.config.es.js.map +1 -1
- package/es/config/i18n/en-us.es.js +4 -1
- package/es/config/i18n/en-us.es.js.map +1 -1
- package/es/config/i18n/zh-cn.es.js +4 -1
- package/es/config/i18n/zh-cn.es.js.map +1 -1
- package/es/core/fluent-editor.es.js +29 -4
- package/es/core/fluent-editor.es.js.map +1 -1
- package/es/fluent-editor.es.js +2 -11
- package/es/fluent-editor.es.js.map +1 -1
- package/es/formats/strike.es.js +1 -1
- package/es/formats/strike.es.js.map +1 -1
- package/es/index.es.js +3 -3
- package/es/index.es.js.map +1 -1
- package/es/modules/counter.es.js +2 -3
- package/es/modules/counter.es.js.map +1 -1
- package/es/modules/custom-clipboard.es.js +13 -1
- package/es/modules/custom-clipboard.es.js.map +1 -1
- package/es/modules/custom-image/blot-formatter.es.js +2 -2
- package/es/modules/custom-image/blot-formatter.es.js.map +1 -1
- package/es/modules/custom-image/index.es.js +1 -1
- package/es/modules/custom-image/preview/preview-modal.es.js +17 -6
- package/es/modules/custom-image/preview/preview-modal.es.js.map +1 -1
- package/es/modules/custom-image/specs/custom-image-spec.es.js.map +1 -1
- package/es/modules/custom-uploader.es.js.map +1 -1
- package/es/modules/file/modules/file-module.es.js.map +1 -1
- package/es/modules/flow-chart/i18n/index.es.js +3 -5
- package/es/modules/flow-chart/i18n/index.es.js.map +1 -1
- package/es/modules/flow-chart/modules/context-menu.es.js +10 -13
- package/es/modules/flow-chart/modules/context-menu.es.js.map +1 -1
- package/es/modules/flow-chart/modules/control-panel.es.js +13 -16
- package/es/modules/flow-chart/modules/control-panel.es.js.map +1 -1
- package/es/modules/index.es.js +2 -2
- package/es/modules/index.es.js.map +1 -1
- package/es/modules/link/modules/tooltip.es.js +42 -27
- package/es/modules/link/modules/tooltip.es.js.map +1 -1
- package/es/modules/mind-map/i18n/index.es.js +3 -5
- package/es/modules/mind-map/i18n/index.es.js.map +1 -1
- package/es/modules/mind-map/modules/context-menu.es.js +11 -11
- package/es/modules/mind-map/modules/context-menu.es.js.map +1 -1
- package/es/modules/mind-map/modules/control-panel.es.js +7 -9
- package/es/modules/mind-map/modules/control-panel.es.js.map +1 -1
- package/es/modules/shortcut-key/index.es.js +6 -6
- package/es/modules/shortcut-key/index.es.js.map +1 -1
- package/es/modules/table-up/index.es.js +23 -33
- package/es/modules/table-up/index.es.js.map +1 -1
- package/es/modules/toolbar/toolbar-tip.es.js +27 -5
- package/es/modules/toolbar/toolbar-tip.es.js.map +1 -1
- package/es/themes/snow.es.js +2 -2
- package/es/themes/snow.es.js.map +1 -1
- package/lib/config/editor.config.cjs.js +1 -1
- package/lib/config/editor.config.cjs.js.map +1 -1
- package/lib/config/i18n/en-us.cjs.js +4 -1
- package/lib/config/i18n/en-us.cjs.js.map +1 -1
- package/lib/config/i18n/zh-cn.cjs.js +4 -1
- package/lib/config/i18n/zh-cn.cjs.js.map +1 -1
- package/lib/core/fluent-editor.cjs.js +29 -4
- package/lib/core/fluent-editor.cjs.js.map +1 -1
- package/lib/fluent-editor.cjs.js +2 -11
- package/lib/fluent-editor.cjs.js.map +1 -1
- package/lib/formats/strike.cjs.js +1 -1
- package/lib/formats/strike.cjs.js.map +1 -1
- package/lib/index.cjs.js +16 -5
- package/lib/index.cjs.js.map +1 -1
- package/lib/modules/counter.cjs.js +2 -3
- package/lib/modules/counter.cjs.js.map +1 -1
- package/lib/modules/custom-clipboard.cjs.js +13 -1
- package/lib/modules/custom-clipboard.cjs.js.map +1 -1
- package/lib/modules/custom-image/blot-formatter.cjs.js +2 -2
- package/lib/modules/custom-image/blot-formatter.cjs.js.map +1 -1
- package/lib/modules/custom-image/index.cjs.js +1 -1
- package/lib/modules/custom-image/preview/preview-modal.cjs.js +17 -6
- package/lib/modules/custom-image/preview/preview-modal.cjs.js.map +1 -1
- package/lib/modules/custom-image/specs/custom-image-spec.cjs.js.map +1 -1
- package/lib/modules/custom-uploader.cjs.js.map +1 -1
- package/lib/modules/file/modules/file-module.cjs.js.map +1 -1
- package/lib/modules/flow-chart/i18n/index.cjs.js +3 -5
- package/lib/modules/flow-chart/i18n/index.cjs.js.map +1 -1
- package/lib/modules/flow-chart/modules/context-menu.cjs.js +10 -13
- package/lib/modules/flow-chart/modules/context-menu.cjs.js.map +1 -1
- package/lib/modules/flow-chart/modules/control-panel.cjs.js +13 -16
- package/lib/modules/flow-chart/modules/control-panel.cjs.js.map +1 -1
- package/lib/modules/index.cjs.js +14 -2
- package/lib/modules/index.cjs.js.map +1 -1
- package/lib/modules/link/modules/tooltip.cjs.js +42 -27
- package/lib/modules/link/modules/tooltip.cjs.js.map +1 -1
- package/lib/modules/mind-map/i18n/index.cjs.js +3 -5
- package/lib/modules/mind-map/i18n/index.cjs.js.map +1 -1
- package/lib/modules/mind-map/modules/context-menu.cjs.js +11 -11
- package/lib/modules/mind-map/modules/context-menu.cjs.js.map +1 -1
- package/lib/modules/mind-map/modules/control-panel.cjs.js +7 -9
- package/lib/modules/mind-map/modules/control-panel.cjs.js.map +1 -1
- package/lib/modules/shortcut-key/index.cjs.js +4 -4
- package/lib/modules/shortcut-key/index.cjs.js.map +1 -1
- package/lib/modules/table-up/index.cjs.js +23 -33
- package/lib/modules/table-up/index.cjs.js.map +1 -1
- package/lib/modules/toolbar/toolbar-tip.cjs.js +26 -4
- package/lib/modules/toolbar/toolbar-tip.cjs.js.map +1 -1
- package/lib/themes/snow.cjs.js +2 -2
- package/lib/themes/snow.cjs.js.map +1 -1
- package/package.json +3 -2
- package/style.css +149 -144
- package/types/config/editor.config.d.ts +4 -2
- package/types/config/i18n/en-us.d.ts +4 -1
- package/types/config/i18n/zh-cn.d.ts +4 -1
- package/types/config/types/editor-modules.interface.d.ts +3 -2
- package/types/core/fluent-editor.d.ts +1 -1
- package/types/modules/custom-clipboard.d.ts +2 -0
- package/types/modules/custom-image/index.d.ts +1 -1
- package/types/modules/custom-image/preview/preview-modal.d.ts +1 -0
- package/types/modules/flow-chart/i18n/index.d.ts +1 -1
- package/types/modules/index.d.ts +2 -1
- package/types/modules/link/modules/tooltip.d.ts +1 -0
- package/types/modules/mind-map/i18n/index.d.ts +1 -1
- package/types/modules/table-up/index.d.ts +3 -26
- package/es/modules/i18n.es.js +0 -62
- package/es/modules/i18n.es.js.map +0 -1
- package/lib/modules/i18n.cjs.js +0 -62
- package/lib/modules/i18n.cjs.js.map +0 -1
- package/types/modules/i18n.d.ts +0 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../../../src/modules/shortcut-key/index.ts"],"sourcesContent":["import type { Range } from 'quill'\r\nimport type { Menu, MenuItemsGroup, QuillShortcutKeyInputOptions, QuillShortcutKeyOptions } from 'quill-shortcut-key'\r\nimport type { Context } from 'quill/modules/keyboard'\r\nimport type TypeToolbar from 'quill/modules/toolbar'\r\nimport type FluentEditor from '../../fluent-editor'\r\nimport Quill from 'quill'\r\nimport QuillShortcutKey, { defaultShortKey, searchAndSort } from 'quill-shortcut-key'\r\nimport { CHANGE_LANGUAGE_EVENT } from '../../config'\r\n\r\nexport interface ShortCutKeyCustomOptions { isMenuItemsAdd: boolean }\r\nexport type ShortCutKeyInputOptions = QuillShortcutKeyInputOptions & ShortCutKeyCustomOptions\r\nexport type ShortCutKeyOptions = QuillShortcutKeyOptions & ShortCutKeyCustomOptions\r\n\r\nexport class ShortCutKey extends QuillShortcutKey {\r\n constructor(public quill: FluentEditor, options: Partial<ShortCutKeyInputOptions>) {\r\n super(quill, options)\r\n\r\n this.quill.emitter.on(CHANGE_LANGUAGE_EVENT, () => {\r\n this.destroyMenuList()\r\n this.options = this.resolveOptions(options)\r\n this.menuSorter = searchAndSort.bind(this, this.getAllMenuItems()) as (searchText: string) => Menu\r\n this.placeholderTip.remove()\r\n this.placeholderTip = this.initPlaceholder()\r\n this.placeholderUpdate()\r\n })\r\n }\r\n\r\n resolveOptions(options: Partial<ShortCutKeyInputOptions>) {\r\n const defaultMenuItems = this.defaultMenuList()\r\n const placeholder = this.quill.options.placeholder ? this.quill.options.placeholder : this.quill.getLangText('input-recall-menu-placeholder')\r\n const value: ShortCutKeyOptions = Object.assign({\r\n placeholder,\r\n menuItems: defaultMenuItems,\r\n isMenuItemsAdd: false,\r\n menuKeyboardControls: () => false,\r\n }, options)\r\n if (value.isMenuItemsAdd) {\r\n value.menuItems = [...defaultMenuItems, ...value.menuItems]\r\n }\r\n\r\n const deepCopyMenuItems = (items: Menu): Menu => {\r\n return items.map((item) => {\r\n const value = {\r\n ...item,\r\n }\r\n if (item.title) {\r\n value.title = this.quill.getLangText(item.title)\r\n }\r\n if (item.type === 'group') {\r\n (value as MenuItemsGroup).children = deepCopyMenuItems(item.children)\r\n }\r\n return value\r\n })\r\n }\r\n value.menuItems = deepCopyMenuItems(value.menuItems)\r\n return value\r\n }\r\n\r\n defaultMenuList() {\r\n const icons = Quill.import('ui/icons') as Record<string, any>\r\n const toolbarHandler = (format: string) => {\r\n return function (this: Quill, range: Range | null) {\r\n if (!range) return\r\n const toolbarModule = this.getModule('toolbar') as TypeToolbar\r\n if (!toolbarModule) return\r\n toolbarModule.handlers[format].call(toolbarModule, true)\r\n }\r\n }\r\n const formatHandler = (format: string, value: any) => {\r\n return function (this: Quill, range: Range | null) {\r\n if (!range) return\r\n this.formatLine(range.index, 0, format, value, Quill.sources.USER)\r\n }\r\n }\r\n\r\n return [\r\n ...new Array(6).fill(0).map((_, i) => ({\r\n type: 'item' as const,\r\n name: `h${i + 1}`,\r\n alias: ['header', `head${i + 1}`],\r\n icon: icons.header[i + 1],\r\n title: this.quill.getLangText(`header-${i + 1}`),\r\n onClick: formatHandler('header', i + 1),\r\n })),\r\n {\r\n type: 'item' as const,\r\n name: 'yy',\r\n alias: ['blockquote'],\r\n icon: icons.blockquote,\r\n title: this.quill.getLangText('blockquote'),\r\n onClick: formatHandler('blockquote', true),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'dm',\r\n alias: ['code', 'codeblock'],\r\n icon: icons['code-block'],\r\n title: this.quill.getLangText('code-block'),\r\n onClick: formatHandler('code-block', true),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'lj',\r\n alias: ['link'],\r\n icon: icons.link,\r\n title: this.quill.getLangText('link'),\r\n onClick(this: Quill, range: Range | null, _: any) {\r\n if (!range) return\r\n const title = 'link'\r\n const link = prompt('Enter link URL')\r\n if (!link) return\r\n this.insertText(range.index, title, Quill.sources.USER)\r\n this.formatText(range.index, range.length + title.length, 'link', link, Quill.sources.USER)\r\n this.setSelection({ index: range.index, length: range.index + title.length })\r\n },\r\n },\r\n {\r\n type: 'group' as const,\r\n name: 'lb',\r\n alias: [],\r\n hideSearch: true,\r\n icon: icons.list.bullet,\r\n title: this.quill.getLangText('list'),\r\n children: [\r\n {\r\n type: 'item' as const,\r\n name: 'wxlb',\r\n alias: ['list', 'bullet'],\r\n icon: icons.list.bullet,\r\n title: this.quill.getLangText('list-bullet'),\r\n onClick: formatHandler('list', 'bullet'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'yxlb',\r\n alias: ['list', 'ordered'],\r\n icon: icons.list.ordered,\r\n title: this.quill.getLangText('list-ordered'),\r\n onClick: formatHandler('list', 'ordered'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'rwlb',\r\n alias: ['list', 'check'],\r\n icon: icons.list.check,\r\n title: this.quill.getLangText('list-check'),\r\n onClick: formatHandler('list', 'unchecked'),\r\n },\r\n ],\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'bq',\r\n alias: ['emoji'],\r\n icon: icons.emoji,\r\n title: this.quill.getLangText('emoji'),\r\n onClick(this: Quill, range: Range | null, _: any) {\r\n if (!range) return\r\n const toolbarModule = this.getModule('toolbar') as TypeToolbar\r\n if (!toolbarModule) return\r\n // TODO: keyboard handler emoji select(in emoji module)\r\n toolbarModule.handlers.emoji.call(toolbarModule, true)\r\n },\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'jp',\r\n alias: ['screenshot'],\r\n icon: icons.screenshot,\r\n title: this.quill.getLangText('screenshot'),\r\n onClick: toolbarHandler('screenshot'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'gs',\r\n alias: ['formula'],\r\n icon: icons.formula,\r\n title: this.quill.getLangText('formula'),\r\n onClick: toolbarHandler('formula'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'tp',\r\n alias: ['image', 'pic', 'picture'],\r\n icon: icons.image,\r\n title: this.quill.getLangText('image'),\r\n onClick: toolbarHandler('image'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'sp',\r\n alias: ['video'],\r\n icon: icons.video,\r\n title: this.quill.getLangText('video'),\r\n onClick: toolbarHandler('video'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'wj',\r\n alias: ['file'],\r\n icon: icons.file,\r\n title: this.quill.getLangText('file'),\r\n onClick: toolbarHandler('file'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'swdt',\r\n alias: ['mind-map'],\r\n icon: icons['mind-map'],\r\n title: this.quill.getLangText('mind-map'),\r\n onClick: toolbarHandler('mind-map'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'lct',\r\n alias: ['flow-chart'],\r\n icon: icons['flow-chart'],\r\n title: this.quill.getLangText('flow-chart'),\r\n onClick: toolbarHandler('flow-chart'),\r\n },\r\n ]\r\n }\r\n}\r\n\r\nexport const shortKey = {\r\n ...defaultShortKey,\r\n link: {\r\n key: 'k',\r\n shortKey: true,\r\n handler(this: { quill: Quill }, _: any, context: Context) {\r\n const toolbar = this.quill.getModule('toolbar') as TypeToolbar\r\n if (!toolbar) return\r\n toolbar.handlers.link.call(toolbar, !context.format.link)\r\n },\r\n },\r\n color: {\r\n key: 'c',\r\n altKey: true,\r\n shortKey: true,\r\n handler(this: { quill: Quill }) {\r\n const selected = (this.quill.getModule('toolbar') as TypeToolbar).container!.querySelector('.ql-color.ql-color-picker .ql-picker-options .ql-selected') as HTMLElement\r\n this.quill.format('color', selected?.dataset?.value || false, Quill.sources.USER)\r\n },\r\n },\r\n background: {\r\n key: 'b',\r\n altKey: true,\r\n shortKey: true,\r\n handler(this: { quill: Quill }) {\r\n const selected = (this.quill.getModule('toolbar') as TypeToolbar).container!.querySelector('.ql-background.ql-color-picker .ql-picker-options .ql-selected') as HTMLElement\r\n this.quill.format('background', selected?.dataset?.value || false, Quill.sources.USER)\r\n },\r\n },\r\n}\r\n"],"names":["value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../../src/modules/shortcut-key/index.ts"],"sourcesContent":["import type { Range } from 'quill'\r\nimport type { Menu, MenuItemsGroup, QuillShortcutKeyInputOptions, QuillShortcutKeyOptions } from 'quill-shortcut-key'\r\nimport type { Context } from 'quill/modules/keyboard'\r\nimport type TypeToolbar from 'quill/modules/toolbar'\r\nimport type FluentEditor from '../../fluent-editor'\r\nimport Quill from 'quill'\r\nimport { I18N_LOCALE_CHANGE } from 'quill-i18n'\r\nimport QuillShortcutKey, { defaultShortKey, searchAndSort } from 'quill-shortcut-key'\r\nimport { isString } from '../../utils/is'\r\n\r\nexport interface ShortCutKeyCustomOptions { isMenuItemsAdd: boolean }\r\nexport type ShortCutKeyInputOptions = QuillShortcutKeyInputOptions & ShortCutKeyCustomOptions\r\nexport type ShortCutKeyOptions = QuillShortcutKeyOptions & ShortCutKeyCustomOptions\r\n\r\nexport class ShortCutKey extends QuillShortcutKey {\r\n constructor(public quill: FluentEditor, options: Partial<ShortCutKeyInputOptions>) {\r\n super(quill, options)\r\n\r\n this.quill.on(I18N_LOCALE_CHANGE, () => {\r\n this.destroyMenuList()\r\n this.options = this.resolveOptions(options)\r\n this.menuSorter = searchAndSort.bind(this, this.getAllMenuItems()) as (searchText: string) => Menu\r\n this.placeholderTip.remove()\r\n this.placeholderTip = this.initPlaceholder()\r\n this.placeholderUpdate()\r\n })\r\n }\r\n\r\n resolveOptions(options: Partial<ShortCutKeyInputOptions>) {\r\n const defaultMenuItems = this.defaultMenuList()\r\n const placeholder = this.quill.options.placeholder ? this.quill.options.placeholder : this.quill.getLangText('input-recall-menu-placeholder')\r\n const value: ShortCutKeyOptions = Object.assign({\r\n placeholder,\r\n menuItems: defaultMenuItems,\r\n isMenuItemsAdd: false,\r\n menuKeyboardControls: () => false,\r\n }, options)\r\n if (value.isMenuItemsAdd) {\r\n value.menuItems = [...defaultMenuItems, ...value.menuItems]\r\n }\r\n\r\n const deepCopyMenuItems = (items: Menu): Menu => {\r\n return items.map((item) => {\r\n const value = {\r\n ...item,\r\n }\r\n if (item.title && isString(item.title)) {\r\n value.title = this.quill.getLangText(item.title)\r\n }\r\n if (item.type === 'group') {\r\n (value as MenuItemsGroup).children = deepCopyMenuItems(item.children)\r\n }\r\n return value\r\n })\r\n }\r\n value.menuItems = deepCopyMenuItems(value.menuItems)\r\n return value\r\n }\r\n\r\n defaultMenuList() {\r\n const icons = Quill.import('ui/icons') as Record<string, any>\r\n const toolbarHandler = (format: string) => {\r\n return function (this: Quill, range: Range | null) {\r\n if (!range) return\r\n const toolbarModule = this.getModule('toolbar') as TypeToolbar\r\n if (!toolbarModule) return\r\n toolbarModule.handlers[format].call(toolbarModule, true)\r\n }\r\n }\r\n const formatHandler = (format: string, value: any) => {\r\n return function (this: Quill, range: Range | null) {\r\n if (!range) return\r\n this.formatLine(range.index, 0, format, value, Quill.sources.USER)\r\n }\r\n }\r\n\r\n return [\r\n ...new Array(6).fill(0).map((_, i) => ({\r\n type: 'item' as const,\r\n name: `h${i + 1}`,\r\n alias: ['header', `head${i + 1}`],\r\n icon: icons.header[i + 1],\r\n title: this.quill.getLangText(`header-${i + 1}`),\r\n onClick: formatHandler('header', i + 1),\r\n })),\r\n {\r\n type: 'item' as const,\r\n name: 'yy',\r\n alias: ['blockquote'],\r\n icon: icons.blockquote,\r\n title: this.quill.getLangText('blockquote'),\r\n onClick: formatHandler('blockquote', true),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'dm',\r\n alias: ['code', 'codeblock'],\r\n icon: icons['code-block'],\r\n title: this.quill.getLangText('code-block'),\r\n onClick: formatHandler('code-block', true),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'lj',\r\n alias: ['link'],\r\n icon: icons.link,\r\n title: this.quill.getLangText('link'),\r\n onClick(this: Quill, range: Range | null, _: any) {\r\n if (!range) return\r\n const title = 'link'\r\n const link = prompt('Enter link URL')\r\n if (!link) return\r\n this.insertText(range.index, title, Quill.sources.USER)\r\n this.formatText(range.index, range.length + title.length, 'link', link, Quill.sources.USER)\r\n this.setSelection({ index: range.index, length: range.index + title.length })\r\n },\r\n },\r\n {\r\n type: 'group' as const,\r\n name: 'lb',\r\n alias: [],\r\n hideSearch: true,\r\n icon: icons.list.bullet,\r\n title: this.quill.getLangText('list'),\r\n children: [\r\n {\r\n type: 'item' as const,\r\n name: 'wxlb',\r\n alias: ['list', 'bullet'],\r\n icon: icons.list.bullet,\r\n title: this.quill.getLangText('list-bullet'),\r\n onClick: formatHandler('list', 'bullet'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'yxlb',\r\n alias: ['list', 'ordered'],\r\n icon: icons.list.ordered,\r\n title: this.quill.getLangText('list-ordered'),\r\n onClick: formatHandler('list', 'ordered'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'rwlb',\r\n alias: ['list', 'check'],\r\n icon: icons.list.check,\r\n title: this.quill.getLangText('list-check'),\r\n onClick: formatHandler('list', 'unchecked'),\r\n },\r\n ],\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'bq',\r\n alias: ['emoji'],\r\n icon: icons.emoji,\r\n title: this.quill.getLangText('emoji'),\r\n onClick(this: Quill, range: Range | null, _: any) {\r\n if (!range) return\r\n const toolbarModule = this.getModule('toolbar') as TypeToolbar\r\n if (!toolbarModule) return\r\n // TODO: keyboard handler emoji select(in emoji module)\r\n toolbarModule.handlers.emoji.call(toolbarModule, true)\r\n },\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'jp',\r\n alias: ['screenshot'],\r\n icon: icons.screenshot,\r\n title: this.quill.getLangText('screenshot'),\r\n onClick: toolbarHandler('screenshot'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'gs',\r\n alias: ['formula'],\r\n icon: icons.formula,\r\n title: this.quill.getLangText('formula'),\r\n onClick: toolbarHandler('formula'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'tp',\r\n alias: ['image', 'pic', 'picture'],\r\n icon: icons.image,\r\n title: this.quill.getLangText('image'),\r\n onClick: toolbarHandler('image'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'sp',\r\n alias: ['video'],\r\n icon: icons.video,\r\n title: this.quill.getLangText('video'),\r\n onClick: toolbarHandler('video'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'wj',\r\n alias: ['file'],\r\n icon: icons.file,\r\n title: this.quill.getLangText('file'),\r\n onClick: toolbarHandler('file'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'swdt',\r\n alias: ['mind-map'],\r\n icon: icons['mind-map'],\r\n title: this.quill.getLangText('mind-map'),\r\n onClick: toolbarHandler('mind-map'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'lct',\r\n alias: ['flow-chart'],\r\n icon: icons['flow-chart'],\r\n title: this.quill.getLangText('flow-chart'),\r\n onClick: toolbarHandler('flow-chart'),\r\n },\r\n ]\r\n }\r\n}\r\n\r\nexport const shortKey = {\r\n ...defaultShortKey,\r\n link: {\r\n key: 'k',\r\n shortKey: true,\r\n handler(this: { quill: Quill }, _: any, context: Context) {\r\n const toolbar = this.quill.getModule('toolbar') as TypeToolbar\r\n if (!toolbar) return\r\n toolbar.handlers.link.call(toolbar, !context.format.link)\r\n },\r\n },\r\n color: {\r\n key: 'c',\r\n altKey: true,\r\n shortKey: true,\r\n handler(this: { quill: Quill }) {\r\n const selected = (this.quill.getModule('toolbar') as TypeToolbar).container!.querySelector('.ql-color.ql-color-picker .ql-picker-options .ql-selected') as HTMLElement\r\n this.quill.format('color', selected?.dataset?.value || false, Quill.sources.USER)\r\n },\r\n },\r\n background: {\r\n key: 'b',\r\n altKey: true,\r\n shortKey: true,\r\n handler(this: { quill: Quill }) {\r\n const selected = (this.quill.getModule('toolbar') as TypeToolbar).container!.querySelector('.ql-background.ql-color-picker .ql-picker-options .ql-selected') as HTMLElement\r\n this.quill.format('background', selected?.dataset?.value || false, Quill.sources.USER)\r\n },\r\n },\r\n}\r\n"],"names":["QuillShortcutKey","value"],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import "
|
|
1
|
+
import { I18N_LOCALE_CHANGE } from "quill-i18n";
|
|
2
2
|
import { isFunction } from "../../utils/is.es.js";
|
|
3
|
-
import { CHANGE_LANGUAGE_EVENT } from "../../config/editor.config.es.js";
|
|
4
3
|
function generateTableUp(QuillTableUp) {
|
|
5
4
|
return class extends QuillTableUp {
|
|
6
5
|
constructor(quill, options) {
|
|
@@ -14,8 +13,8 @@ function generateTableUp(QuillTableUp) {
|
|
|
14
13
|
"table-up-cell-inner"
|
|
15
14
|
])
|
|
16
15
|
);
|
|
17
|
-
this.quill.
|
|
18
|
-
this.
|
|
16
|
+
this.quill.on(I18N_LOCALE_CHANGE, () => {
|
|
17
|
+
this.refreshUI();
|
|
19
18
|
const toolbar = this.quill.getModule("toolbar");
|
|
20
19
|
if (toolbar && this.quill.theme.pickers) {
|
|
21
20
|
const [, select] = (toolbar.controls || []).find(([name]) => name === this.statics.toolName) || [];
|
|
@@ -35,36 +34,27 @@ function generateTableUp(QuillTableUp) {
|
|
|
35
34
|
this.initModules();
|
|
36
35
|
});
|
|
37
36
|
}
|
|
37
|
+
resolveOptions(options = {}) {
|
|
38
|
+
const { texts, ...rest } = options || {};
|
|
39
|
+
const resolvedOptions = super.resolveOptions(rest);
|
|
40
|
+
resolvedOptions.texts = super.resolveTexts(this.createTextResolver(texts));
|
|
41
|
+
return resolvedOptions;
|
|
42
|
+
}
|
|
38
43
|
resolveTexts(options = {}) {
|
|
39
|
-
return
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
InsertTop: this.quill.getLangText("InsertTop"),
|
|
54
|
-
InsertRight: this.quill.getLangText("InsertRight"),
|
|
55
|
-
InsertBottom: this.quill.getLangText("InsertBottom"),
|
|
56
|
-
InsertLeft: this.quill.getLangText("InsertLeft"),
|
|
57
|
-
MergeCell: this.quill.getLangText("MergeCell"),
|
|
58
|
-
SplitCell: this.quill.getLangText("SplitCell"),
|
|
59
|
-
DeleteRow: this.quill.getLangText("DeleteRow"),
|
|
60
|
-
DeleteColumn: this.quill.getLangText("DeleteColumn"),
|
|
61
|
-
DeleteTable: this.quill.getLangText("DeleteTable"),
|
|
62
|
-
BackgroundColor: this.quill.getLangText("BackgroundColor"),
|
|
63
|
-
BorderColor: this.quill.getLangText("BorderColor")
|
|
64
|
-
}, Object.entries(options).reduce((pre, [key, value]) => {
|
|
65
|
-
pre[key] = this.quill.getLangText(value);
|
|
66
|
-
return pre;
|
|
67
|
-
}, {}));
|
|
44
|
+
return super.resolveTexts(this.createTextResolver(options));
|
|
45
|
+
}
|
|
46
|
+
createTextResolver(options = {}) {
|
|
47
|
+
const textResolver = isFunction(options) ? options : null;
|
|
48
|
+
const textMap = textResolver ? {} : options;
|
|
49
|
+
return (key) => {
|
|
50
|
+
if (textResolver) {
|
|
51
|
+
const customText = textResolver.call(this, key);
|
|
52
|
+
if (customText !== void 0) return customText;
|
|
53
|
+
} else if (textMap[key] !== void 0) {
|
|
54
|
+
return textMap[key];
|
|
55
|
+
}
|
|
56
|
+
return this.quill.getLangText(key);
|
|
57
|
+
};
|
|
68
58
|
}
|
|
69
59
|
};
|
|
70
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../../../src/modules/table-up/index.ts"],"sourcesContent":["import type Toolbar from 'quill/modules/toolbar'\r\nimport type BaseTheme from 'quill/themes/base'\r\nimport type Picker from 'quill/ui/picker'\r\nimport type { Constructor } from '../../config/types'\r\nimport type FluentEditor from '../../core/fluent-editor'\r\nimport {
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../../src/modules/table-up/index.ts"],"sourcesContent":["import type Toolbar from 'quill/modules/toolbar'\r\nimport type BaseTheme from 'quill/themes/base'\r\nimport type Picker from 'quill/ui/picker'\r\nimport type { Constructor } from '../../config/types'\r\nimport type FluentEditor from '../../core/fluent-editor'\r\nimport { I18N_LOCALE_CHANGE } from 'quill-i18n'\r\nimport { isFunction } from '../../utils/is'\r\n\r\ninterface QuillTheme extends BaseTheme {\r\n pickers: QuillThemePicker[]\r\n}\r\ntype QuillThemePicker = (Picker & { options: HTMLElement })\r\n\r\nexport function generateTableUp(QuillTableUp: Constructor) {\n return class extends QuillTableUp {\n constructor(public quill: FluentEditor, options: Partial<any>) {\r\n super(quill, options)\r\n\r\n if (!this.quill.options['format-painter']) this.quill.options['format-painter'] = {}\r\n const currentIgnoreFormat = this.quill.options['format-painter'].ignoreFormat || []\r\n this.quill.options['format-painter'].ignoreFormat = Array.from(\r\n new Set([\r\n ...currentIgnoreFormat,\r\n 'table-up-cell-inner',\r\n ]),\r\n )\r\n\r\n this.quill.on(I18N_LOCALE_CHANGE, () => {\r\n this.refreshUI()\r\n const toolbar = this.quill.getModule('toolbar') as Toolbar\r\n if (toolbar && (this.quill.theme as QuillTheme).pickers) {\r\n const [, select] = (toolbar.controls as [string, HTMLElement][] || []).find(([name]) => name === this.statics.toolName) || []\r\n if (select && select.tagName.toLocaleLowerCase() === 'select') {\r\n const picker = (this.quill.theme as QuillTheme).pickers.find(picker => picker.select === select)\r\n if (picker) {\r\n this.buildCustomSelect(this.options.customSelect, picker)\r\n }\r\n }\r\n }\r\n\r\n Object.keys(this.modules).forEach((key) => {\r\n if (isFunction(this.modules[key].destroy)) {\r\n this.modules[key].destroy()\r\n }\r\n })\r\n this.modules = {}\r\n this.initModules()\n })\n }\n\n resolveOptions(options: Partial<any> = {}) {\n const { texts, ...rest } = options || {}\n const resolvedOptions = super.resolveOptions(rest)\n resolvedOptions.texts = super.resolveTexts(this.createTextResolver(texts))\n return resolvedOptions\n }\n\n resolveTexts(options: Record<string, string> | ((key: string) => string) = {}) {\n return super.resolveTexts(this.createTextResolver(options))\n }\n\n createTextResolver(options: Record<string, string> | ((key: string) => string) = {}) {\n const textResolver = isFunction(options) ? options : null\n const textMap = textResolver ? {} : options\n\n return (key: string) => {\n if (textResolver) {\n const customText = textResolver.call(this, key)\n if (customText !== undefined) return customText\n }\n else if (textMap[key] !== undefined) {\n return textMap[key]\n }\n\n return this.quill.getLangText(key)\n }\n }\n }\n}\n"],"names":["picker"],"mappings":";;AAaO,SAAS,gBAAgB,cAA2B;AACzD,SAAO,cAAc,aAAa;AAAA,IAChC,YAAmB,OAAqB,SAAuB;AAC7D,YAAM,OAAO,OAAO;AADH,WAAA,QAAA;AAGjB,UAAI,CAAC,KAAK,MAAM,QAAQ,gBAAgB,EAAG,MAAK,MAAM,QAAQ,gBAAgB,IAAI,CAAA;AAClF,YAAM,sBAAsB,KAAK,MAAM,QAAQ,gBAAgB,EAAE,gBAAgB,CAAA;AACjF,WAAK,MAAM,QAAQ,gBAAgB,EAAE,eAAe,MAAM;AAAA,4BACpD,IAAI;AAAA,UACN,GAAG;AAAA,UACH;AAAA,QAAA,CACD;AAAA,MAAA;AAGH,WAAK,MAAM,GAAG,oBAAoB,MAAM;AACtC,aAAK,UAAA;AACL,cAAM,UAAU,KAAK,MAAM,UAAU,SAAS;AAC9C,YAAI,WAAY,KAAK,MAAM,MAAqB,SAAS;AACvD,gBAAM,CAAA,EAAG,MAAM,KAAK,QAAQ,YAAuC,CAAA,GAAI,KAAK,CAAC,CAAC,IAAI,MAAM,SAAS,KAAK,QAAQ,QAAQ,KAAK,CAAA;AAC3H,cAAI,UAAU,OAAO,QAAQ,kBAAA,MAAwB,UAAU;AAC7D,kBAAM,SAAU,KAAK,MAAM,MAAqB,QAAQ,KAAK,CAAAA,YAAUA,QAAO,WAAW,MAAM;AAC/F,gBAAI,QAAQ;AACV,mBAAK,kBAAkB,KAAK,QAAQ,cAAc,MAAM;AAAA,YAC1D;AAAA,UACF;AAAA,QACF;AAEA,eAAO,KAAK,KAAK,OAAO,EAAE,QAAQ,CAAC,QAAQ;AACzC,cAAI,WAAW,KAAK,QAAQ,GAAG,EAAE,OAAO,GAAG;AACzC,iBAAK,QAAQ,GAAG,EAAE,QAAA;AAAA,UACpB;AAAA,QACF,CAAC;AACD,aAAK,UAAU,CAAA;AACf,aAAK,YAAA;AAAA,MACP,CAAC;AAAA,IACH;AAAA,IAEA,eAAe,UAAwB,IAAI;AACzC,YAAM,EAAE,OAAO,GAAG,KAAA,IAAS,WAAW,CAAA;AACtC,YAAM,kBAAkB,MAAM,eAAe,IAAI;AACjD,sBAAgB,QAAQ,MAAM,aAAa,KAAK,mBAAmB,KAAK,CAAC;AACzE,aAAO;AAAA,IACT;AAAA,IAEA,aAAa,UAA8D,IAAI;AAC7E,aAAO,MAAM,aAAa,KAAK,mBAAmB,OAAO,CAAC;AAAA,IAC5D;AAAA,IAEA,mBAAmB,UAA8D,IAAI;AACnF,YAAM,eAAe,WAAW,OAAO,IAAI,UAAU;AACrD,YAAM,UAAU,eAAe,CAAA,IAAK;AAEpC,aAAO,CAAC,QAAgB;AACtB,YAAI,cAAc;AAChB,gBAAM,aAAa,aAAa,KAAK,MAAM,GAAG;AAC9C,cAAI,eAAe,OAAW,QAAO;AAAA,QACvC,WACS,QAAQ,GAAG,MAAM,QAAW;AACnC,iBAAO,QAAQ,GAAG;AAAA,QACpB;AAEA,eAAO,KAAK,MAAM,YAAY,GAAG;AAAA,MACnC;AAAA,IACF;AAAA,EAAA;AAEJ;"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import "
|
|
2
|
-
import { isString } from "../../utils/is.es.js";
|
|
3
|
-
import { CHANGE_LANGUAGE_EVENT } from "../../config/editor.config.es.js";
|
|
1
|
+
import { I18N_LOCALE_CHANGE } from "quill-i18n";
|
|
2
|
+
import { isString, isObject } from "../../utils/is.es.js";
|
|
4
3
|
function generateToolbarTip(QuillToolbarTip) {
|
|
5
4
|
return class extends QuillToolbarTip {
|
|
6
5
|
constructor(quill, options) {
|
|
@@ -9,7 +8,7 @@ function generateToolbarTip(QuillToolbarTip) {
|
|
|
9
8
|
}
|
|
10
9
|
super(quill, options);
|
|
11
10
|
this.quill = quill;
|
|
12
|
-
this.quill.
|
|
11
|
+
this.quill.on(I18N_LOCALE_CHANGE, () => {
|
|
13
12
|
this.destroyAllTips();
|
|
14
13
|
this.options = this.resolveOptions(options);
|
|
15
14
|
this.createToolbarTip();
|
|
@@ -124,7 +123,30 @@ ${shortKey}` : "";
|
|
|
124
123
|
}
|
|
125
124
|
};
|
|
126
125
|
const inputTipTextMap = Object.entries(options.tipTextMap).reduce((pre, [key, value]) => {
|
|
127
|
-
|
|
126
|
+
if (isString(value)) {
|
|
127
|
+
pre[key] = { msg: this.quill.getLangText(value) };
|
|
128
|
+
} else if (value && isObject(value)) {
|
|
129
|
+
const isNewConfig = "values" in value || "onShow" in value || "msg" in value || "content" in value;
|
|
130
|
+
if (!isNewConfig) {
|
|
131
|
+
pre[key] = {
|
|
132
|
+
values: Object.fromEntries(
|
|
133
|
+
Object.entries(value).map(([k, v]) => [k, isString(v) ? this.quill.getLangText(v) : v])
|
|
134
|
+
)
|
|
135
|
+
};
|
|
136
|
+
} else {
|
|
137
|
+
const config = { ...value };
|
|
138
|
+
if (isString(config.msg)) config.msg = this.quill.getLangText(config.msg);
|
|
139
|
+
if (isString(config.content)) config.content = this.quill.getLangText(config.content);
|
|
140
|
+
if (config.values) {
|
|
141
|
+
config.values = Object.fromEntries(
|
|
142
|
+
Object.entries(config.values).map(([k, v]) => [k, isString(v) ? this.quill.getLangText(v) : v])
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
pre[key] = config;
|
|
146
|
+
}
|
|
147
|
+
} else {
|
|
148
|
+
pre[key] = value;
|
|
149
|
+
}
|
|
128
150
|
return pre;
|
|
129
151
|
}, {});
|
|
130
152
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar-tip.es.js","sources":["../../../../src/modules/toolbar/toolbar-tip.ts"],"sourcesContent":["import type { Constructor } from '../../config/types'\r\nimport type FluentEditor from '../../fluent-editor'\r\nimport {
|
|
1
|
+
{"version":3,"file":"toolbar-tip.es.js","sources":["../../../../src/modules/toolbar/toolbar-tip.ts"],"sourcesContent":["import type { Constructor } from '../../config/types'\r\nimport type FluentEditor from '../../fluent-editor'\r\nimport { I18N_LOCALE_CHANGE } from 'quill-i18n'\r\nimport { isObject, isString } from '../../utils/is'\r\n\r\nexport function generateToolbarTip(QuillToolbarTip: Constructor) {\r\n return class extends QuillToolbarTip {\r\n constructor(public quill: FluentEditor, options: Partial<Record<string, any>>) {\r\n if (!options?.tipTextMap) {\r\n options.tipTextMap = {}\r\n }\r\n super(quill, options)\r\n\r\n this.quill.on(I18N_LOCALE_CHANGE, () => {\r\n this.destroyAllTips()\r\n this.options = this.resolveOptions(options)\r\n this.createToolbarTip()\r\n })\r\n }\r\n\r\n resolveOptions(options: Partial<Record<string, any>>): Record<string, any> {\r\n const result = super.resolveOptions(options)\r\n if (!this.quill.lang) return result\r\n const shortKeyMap = {\r\n 'bold': 'Ctrl + B',\r\n 'italic': 'Ctrl + I',\r\n 'underline': 'Ctrl + U',\r\n 'strike': 'Ctrl + D',\r\n 'clean': 'Ctrl + /',\r\n 'align-left': 'Alt + L',\r\n 'align-center': 'Alt + C',\r\n 'align-right': 'Alt + R',\r\n 'align-justify': 'Alt + J',\r\n 'indent-+1': 'Ctrl + ]',\r\n 'indent--1': 'Ctrl + [',\r\n 'script-sub': 'Ctrl + ;',\r\n 'script-super': 'Ctrl + \\'',\r\n 'code': 'Ctrl + E',\r\n 'direction-rtl': 'Ctrl + R',\r\n 'direction-ltr': 'Ctrl + L',\r\n 'undo': 'Ctrl + Z',\r\n 'redo': 'Ctrl + shift + Z',\r\n 'color': 'Ctrl + Alt + C',\r\n 'background': 'Ctrl + Alt + B',\r\n 'link': 'Ctrl + K',\r\n }\r\n const shortcutModule = this.quill.getModule('shortcut-key')\r\n const getShortKey = (name: string) => {\r\n if (!shortcutModule) return ''\r\n const shortKey = shortKeyMap[name]\r\n return shortKey ? `\\n${shortKey}` : ''\r\n }\r\n const btnTips = [\r\n 'color',\r\n 'background',\r\n 'bold',\r\n 'italic',\r\n 'strike',\r\n 'underline',\r\n 'undo',\r\n 'redo',\r\n 'clean',\r\n 'link',\r\n 'divider',\r\n 'blockquote',\r\n 'code',\r\n 'image',\r\n 'file',\r\n 'emoji',\r\n 'video',\r\n 'screenshot',\r\n 'code-block',\r\n 'formula',\r\n 'format-painter',\r\n 'header-list',\r\n 'table-up',\r\n ].reduce((map, name) => {\r\n map[name] = this.quill.getLangText(name) + getShortKey(name)\r\n return map\r\n }, {} as Record<string, string>)\r\n const selectTips = [\r\n 'font',\r\n 'size',\r\n 'line-height',\r\n ].reduce((map, name) => {\r\n map[name] = {\r\n onShow: () => {\r\n return this.quill.getLangText(name) + getShortKey(name)\r\n },\r\n }\r\n return map\r\n }, {})\r\n const valueControlTips = [\r\n 'list',\r\n 'align',\r\n 'script',\r\n 'indent',\r\n 'header',\r\n 'direction',\r\n ].reduce((map, name) => {\r\n map[name] = {\r\n onShow: (target: HTMLElement, value: string) => {\r\n if (name === 'direction') {\r\n value = target.classList.contains('ql-active') ? 'rtl' : 'ltr'\r\n }\r\n if (!value) {\r\n if (name === 'align') {\r\n value = 'left'\r\n }\r\n else if (name === 'header') {\r\n value = 'normal'\r\n }\r\n }\r\n return this.quill.getLangText(`${name}-${value}`) + getShortKey(`${name}-${value}`)\r\n },\r\n }\r\n return map\r\n }, {})\r\n const textMap = {\r\n ...btnTips,\r\n ...valueControlTips,\r\n ...selectTips,\r\n fullscreen: {\r\n onShow: () => {\r\n return this.quill.getLangText(this.quill.isFullscreen ? 'exit-fullscreen' : 'fullscreen')\r\n },\r\n },\r\n }\r\n const inputTipTextMap = Object.entries(options.tipTextMap).reduce((pre, [key, value]) => {\r\n if (isString(value)) {\r\n pre[key] = { msg: this.quill.getLangText(value) }\r\n }\r\n else if (value && isObject(value)) {\r\n const isNewConfig = 'values' in value || 'onShow' in value || 'msg' in value || 'content' in value\r\n if (!isNewConfig) {\r\n pre[key] = {\r\n values: Object.fromEntries(\r\n Object.entries(value).map(([k, v]) => [k, isString(v) ? this.quill.getLangText(v as string) : v]),\r\n ),\r\n }\r\n }\r\n else {\r\n const config = { ...value } as any\r\n if (isString(config.msg)) config.msg = this.quill.getLangText(config.msg)\r\n if (isString(config.content)) config.content = this.quill.getLangText(config.content)\r\n if (config.values) {\r\n config.values = Object.fromEntries(\r\n Object.entries(config.values).map(([k, v]) => [k, isString(v) ? this.quill.getLangText(v as string) : v]),\r\n )\r\n }\r\n pre[key] = config\r\n }\r\n }\r\n else {\r\n pre[key] = value\r\n }\r\n return pre\r\n }, {} as Record<string, any>)\r\n return {\r\n ...result,\r\n tipTextMap: {\r\n ...textMap,\r\n ...inputTipTextMap,\r\n },\r\n }\r\n }\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
|
package/es/themes/snow.es.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { I18N_LOCALE_CHANGE } from "quill-i18n";
|
|
1
2
|
import { inputFile } from "../config/index.es.js";
|
|
2
3
|
import FluentEditor from "../core/fluent-editor.es.js";
|
|
3
4
|
import { CustomImageSpec } from "../modules/custom-image/specs/custom-image-spec.es.js";
|
|
@@ -7,7 +8,6 @@ import { ColorPicker, Picker } from "../modules/toolbar/better-picker.es.js";
|
|
|
7
8
|
import { FormatPainter } from "../tools/format-painter.es.js";
|
|
8
9
|
import { fullscreenHandler } from "../tools/fullscreen.es.js";
|
|
9
10
|
import { Screenshot } from "../tools/screenshot.es.js";
|
|
10
|
-
import { CHANGE_LANGUAGE_EVENT } from "../config/editor.config.es.js";
|
|
11
11
|
import { isNullOrUndefined } from "../config/editor.utils.es.js";
|
|
12
12
|
import { LinkTooltip } from "../modules/link/modules/tooltip.es.js";
|
|
13
13
|
const OriginSnowTheme = FluentEditor.import("themes/snow");
|
|
@@ -153,7 +153,7 @@ class SnowTheme extends OriginSnowTheme {
|
|
|
153
153
|
constructor(quill, options) {
|
|
154
154
|
super(quill, options);
|
|
155
155
|
this.quill = quill;
|
|
156
|
-
this.quill.
|
|
156
|
+
this.quill.on(I18N_LOCALE_CHANGE, () => {
|
|
157
157
|
this.i18nTextToolbar();
|
|
158
158
|
});
|
|
159
159
|
}
|
package/es/themes/snow.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snow.es.js","sources":["../../../src/themes/snow.ts"],"sourcesContent":["import type { ThemeOptions } from 'quill/core/theme'\nimport type TypeToolbar from 'quill/modules/toolbar'\nimport type TypeIconPicker from 'quill/ui/icon-picker'\nimport { CHANGE_LANGUAGE_EVENT, inputFile, isNullOrUndefined } from '../config'\nimport FluentEditor from '../core/fluent-editor'\nimport { CustomImageSpec } from '../modules/custom-image/specs/custom-image-spec'\nimport { LinkTooltip } from '../modules/link'\nimport { shortKey } from '../modules/shortcut-key'\nimport { ColorPicker, Picker } from '../modules/toolbar/better-picker'\nimport { FormatPainter } from '../tools/format-painter'\nimport { fullscreenHandler } from '../tools/fullscreen'\nimport { Screenshot } from '../tools/screenshot'\n\nconst OriginSnowTheme = FluentEditor.import('themes/snow') as any\nconst IconPicker = FluentEditor.import('ui/icon-picker') as typeof TypeIconPicker\n\nOriginSnowTheme.DEFAULTS = {\n modules: {\n 'i18n': true,\n 'keyboard': {\n bindings: {\n ...shortKey,\n },\n },\n 'toolbar': {\n handlers: {\n ...(OriginSnowTheme.DEFAULTS as Record<string, any>).modules.toolbar.handlers,\n 'formula': function () {\n if (!this.quill.isEnabled()) return\n const mathlive = this.quill.getModule('mathlive')\n if (!mathlive) {\n this.quill.theme.tooltip.edit('formula')\n }\n else {\n mathlive.createDialog()\n }\n },\n 'undo': function () {\n this.quill.history.undo()\n },\n 'redo': function () {\n this.quill.history.redo()\n },\n 'file': function () {\n const accept = (this.quill as FluentEditor).uploader.getAccept('file')\n inputFile.call(this, 'file', accept)\n },\n 'image': function () {\n const accept = (this.quill as FluentEditor).uploader.getAccept('image')\n inputFile.call(this, 'image', accept)\n },\n 'video': function () {\n const accept = (this.quill as FluentEditor).uploader.getAccept('video')\n inputFile.call(this, 'video', accept)\n },\n 'ai': function () {},\n 'emoji': function () {},\n 'fullscreen': fullscreenHandler,\n [FormatPainter.toolName]: FormatPainter,\n [Screenshot.toolName]: Screenshot,\n 'line-height': function (value) {\n this.quill.format('line-height', value)\n },\n 'divider': function () {\n const range = this.quill.getSelection(true)\n this.quill.insertText(range.index, '\\n', FluentEditor.sources.USER)\n this.quill.insertEmbed(range.index + 1, 'divider', true, FluentEditor.sources.USER)\n this.quill.setSelection(range.index + 2, FluentEditor.sources.SILENT)\n },\n },\n },\n 'image': {\n specs: [CustomImageSpec],\n overlay: {\n style: {\n border: '1px dashed rgb(68, 68, 68)',\n },\n },\n },\n 'shortcut-key': false,\n 'file': true,\n },\n}\n\nconst ALIGNS = [false, 'center', 'right']\nconst COLORS = [\n '',\n 'rgb(255, 255, 255)',\n 'rgb(0, 0, 0)',\n 'rgb(72, 83, 104)',\n 'rgb(41, 114, 244)',\n 'rgb(0, 163, 245)',\n 'rgb(49, 155, 98)',\n 'rgb(222, 60, 54)',\n 'rgb(248, 136, 37)',\n 'rgb(245, 196, 0)',\n 'rgb(153, 56, 215)',\n\n 'rgb(242, 242, 242)',\n 'rgb(127, 127, 127)',\n 'rgb(243, 245, 247)',\n 'rgb(229, 239, 255)',\n 'rgb(229, 246, 255)',\n 'rgb(234, 250, 241)',\n 'rgb(254, 233, 232)',\n 'rgb(254, 243, 235)',\n 'rgb(254, 249, 227)',\n 'rgb(253, 235, 255)',\n\n 'rgb(216, 216, 216)',\n 'rgb(89, 89, 89)',\n 'rgb(197, 202, 211)',\n 'rgb(199, 220, 255)',\n 'rgb(199, 236, 255)',\n 'rgb(195, 234, 213)',\n 'rgb(255, 201, 199)',\n 'rgb(255, 220, 196)',\n 'rgb(255, 238, 173)',\n 'rgb(242, 199, 255)',\n\n 'rgb(191, 191, 191)',\n 'rgb(63, 63, 63)',\n 'rgb(128, 139, 158)',\n 'rgb(153, 190, 255)',\n 'rgb(153, 221, 255)',\n 'rgb(152, 215, 182)',\n 'rgb(255, 156, 153)',\n 'rgb(255, 186, 132)',\n 'rgb(255, 226, 112)',\n 'rgb(213, 142, 255)',\n\n 'rgb(165, 165, 165)',\n 'rgb(38, 38, 38)',\n 'rgb(53, 59, 69)',\n 'rgb(20, 80, 184)',\n 'rgb(18, 116, 165)',\n 'rgb(39, 124, 79)',\n 'rgb(158, 30, 26)',\n 'rgb(184, 96, 20)',\n 'rgb(163, 130, 0)',\n 'rgb(94, 34, 129)',\n\n 'rgb(147, 147, 147)',\n 'rgb(13, 13, 13)',\n 'rgb(36, 39, 46)',\n 'rgb(12, 48, 110)',\n 'rgb(10, 65, 92)',\n 'rgb(24, 78, 50)',\n 'rgb(88, 17, 14)',\n 'rgb(92, 48, 10)',\n 'rgb(102, 82, 0)',\n 'rgb(59, 21, 81)',\n\n 'custom',\n]\nconst FONTS = [false, 'serif', 'monospace']\nconst HEADERS = ['1', '2', '3', false]\nconst SIZES = ['small', false, 'large', 'huge']\nconst LINEHEIGHT = [false, '1.2', '1.5', '2']\n\nclass SnowTheme extends OriginSnowTheme {\n constructor(public quill: FluentEditor, options: ThemeOptions) {\n super(quill, options)\n\n this.quill.emitter.on(CHANGE_LANGUAGE_EVENT, () => {\n this.i18nTextToolbar()\n })\n }\n\n i18nTextToolbar() {\n const toolbar = this.quill.getModule('toolbar') as TypeToolbar\n ColorPicker.clearText = this.quill.getLangText('clear-color')\n ColorPicker.customText = this.quill.getLangText('custom-color')\n\n if (!toolbar || !this.pickers) return\n\n this.pickers.forEach((picker) => {\n if (picker instanceof ColorPicker) {\n // EasyColorPicker have not dts. abd origin quill ColorPicker dts not complete. use any to resovle ts type error\n const colorPicker = picker as any\n colorPicker.options.remove()\n Array.from(colorPicker.select.options).forEach((option: any) => {\n if (option.hasAttribute('custom')) {\n option.remove()\n }\n })\n colorPicker.buildOptions()\n colorPicker.createUsedColor()\n }\n\n if (picker.select && picker.select.classList.contains('ql-header')) {\n const getLabelKey = (v: string | null) => (v ? `header-${v}` : 'header-normal')\n\n // 更新 label 文本\n const labelValue = picker.label.getAttribute('data-value')\n picker.label.setAttribute('data-label', this.quill.getLangText(getLabelKey(labelValue)))\n\n const select = picker.select as HTMLSelectElement\n Array.from(select.options).forEach((option) => {\n const value = option.getAttribute('value')\n option.textContent = this.quill.getLangText(getLabelKey(value))\n })\n\n picker.options.remove()\n picker.buildOptions()\n }\n })\n }\n\n buildPickers(selects: NodeListOf<HTMLSelectElement>, icons: Record<string, string | Record<string, string>>) {\n this.pickers = Array.from(selects).map((select) => {\n if (select.classList.contains('ql-align')) {\n if (isNullOrUndefined(select.querySelector('option'))) {\n fillSelect(select, ALIGNS)\n }\n return new IconPicker(select, icons.align as Record<string, string>)\n }\n\n if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n const format = select.classList.contains('ql-background') ? 'background' : 'color'\n if (isNullOrUndefined(select.querySelector('option'))) {\n fillColorSelect(select, COLORS, format, format === 'background' ? '#ffffff' : '#000000')\n }\n return new ColorPicker(select, icons[format] as string, {\n expandIcon: '<i class=\"icon\" />',\n closeAfterChange: false,\n })\n }\n\n if (isNullOrUndefined(select.querySelector('option'))) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS)\n }\n else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS)\n }\n else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES)\n }\n else if (select.classList.contains('ql-line-height')) {\n fillSelect(select, LINEHEIGHT)\n }\n }\n return new Picker(select)\n })\n\n const update = () => {\n this.pickers.forEach((picker) => {\n if (picker instanceof ColorPicker) return\n picker.update()\n })\n }\n this.quill.on(FluentEditor.events.EDITOR_CHANGE, update)\n }\n\n extendToolbar(toolbar) {\n const icons = FluentEditor.import('ui/icons') as Record<string, any>\n toolbar.container.classList.add('ql-snow')\n this.buildButtons(toolbar.container.querySelectorAll('button'), icons)\n this.buildPickers(toolbar.container.querySelectorAll('select'), icons)\n this.tooltip = new LinkTooltip(this.quill, this.options.bounds)\n }\n}\n\nfunction fillSelect(select, values, defaultValue = false) {\n values.forEach((value) => {\n const option = document.createElement('option')\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected')\n }\n else {\n option.setAttribute('value', value)\n }\n select.appendChild(option)\n })\n}\n\nfunction fillColorSelect(\n select: HTMLSelectElement,\n values: Array<string | boolean>,\n format: string,\n defaultValue: unknown = false,\n) {\n const colorGetter = document.createElement('span') as HTMLElement\n for (const value of values) {\n const option = document.createElement('option')\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected')\n }\n else {\n if (value !== 'custom') {\n colorGetter.style[format] = String(value)\n option.setAttribute('value', colorGetter.style[format])\n }\n else {\n option.setAttribute('value', value)\n }\n }\n select.appendChild(option)\n }\n}\n\nexport default SnowTheme\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"snow.es.js","sources":["../../../src/themes/snow.ts"],"sourcesContent":["import type { ThemeOptions } from 'quill/core/theme'\nimport type TypeToolbar from 'quill/modules/toolbar'\nimport type TypeIconPicker from 'quill/ui/icon-picker'\nimport { I18N_LOCALE_CHANGE } from 'quill-i18n'\nimport { inputFile, isNullOrUndefined } from '../config'\nimport FluentEditor from '../core/fluent-editor'\nimport { CustomImageSpec } from '../modules/custom-image/specs/custom-image-spec'\nimport { LinkTooltip } from '../modules/link'\nimport { shortKey } from '../modules/shortcut-key'\nimport { ColorPicker, Picker } from '../modules/toolbar/better-picker'\nimport { FormatPainter } from '../tools/format-painter'\nimport { fullscreenHandler } from '../tools/fullscreen'\nimport { Screenshot } from '../tools/screenshot'\n\nconst OriginSnowTheme = FluentEditor.import('themes/snow') as any\nconst IconPicker = FluentEditor.import('ui/icon-picker') as typeof TypeIconPicker\n\nOriginSnowTheme.DEFAULTS = {\n modules: {\n 'i18n': true,\n 'keyboard': {\n bindings: {\n ...shortKey,\n },\n },\n 'toolbar': {\n handlers: {\n ...(OriginSnowTheme.DEFAULTS as Record<string, any>).modules.toolbar.handlers,\n 'formula': function () {\n if (!this.quill.isEnabled()) return\n const mathlive = this.quill.getModule('mathlive')\n if (!mathlive) {\n this.quill.theme.tooltip.edit('formula')\n }\n else {\n mathlive.createDialog()\n }\n },\n 'undo': function () {\n this.quill.history.undo()\n },\n 'redo': function () {\n this.quill.history.redo()\n },\n 'file': function () {\n const accept = (this.quill as FluentEditor).uploader.getAccept('file')\n inputFile.call(this, 'file', accept)\n },\n 'image': function () {\n const accept = (this.quill as FluentEditor).uploader.getAccept('image')\n inputFile.call(this, 'image', accept)\n },\n 'video': function () {\n const accept = (this.quill as FluentEditor).uploader.getAccept('video')\n inputFile.call(this, 'video', accept)\n },\n 'ai': function () {},\n 'emoji': function () {},\n 'fullscreen': fullscreenHandler,\n [FormatPainter.toolName]: FormatPainter,\n [Screenshot.toolName]: Screenshot,\n 'line-height': function (value) {\n this.quill.format('line-height', value)\n },\n 'divider': function () {\n const range = this.quill.getSelection(true)\n this.quill.insertText(range.index, '\\n', FluentEditor.sources.USER)\n this.quill.insertEmbed(range.index + 1, 'divider', true, FluentEditor.sources.USER)\n this.quill.setSelection(range.index + 2, FluentEditor.sources.SILENT)\n },\n },\n },\n 'image': {\n specs: [CustomImageSpec],\n overlay: {\n style: {\n border: '1px dashed rgb(68, 68, 68)',\n },\n },\n },\n 'shortcut-key': false,\n 'file': true,\n },\n}\n\nconst ALIGNS = [false, 'center', 'right']\nconst COLORS = [\n '',\n 'rgb(255, 255, 255)',\n 'rgb(0, 0, 0)',\n 'rgb(72, 83, 104)',\n 'rgb(41, 114, 244)',\n 'rgb(0, 163, 245)',\n 'rgb(49, 155, 98)',\n 'rgb(222, 60, 54)',\n 'rgb(248, 136, 37)',\n 'rgb(245, 196, 0)',\n 'rgb(153, 56, 215)',\n\n 'rgb(242, 242, 242)',\n 'rgb(127, 127, 127)',\n 'rgb(243, 245, 247)',\n 'rgb(229, 239, 255)',\n 'rgb(229, 246, 255)',\n 'rgb(234, 250, 241)',\n 'rgb(254, 233, 232)',\n 'rgb(254, 243, 235)',\n 'rgb(254, 249, 227)',\n 'rgb(253, 235, 255)',\n\n 'rgb(216, 216, 216)',\n 'rgb(89, 89, 89)',\n 'rgb(197, 202, 211)',\n 'rgb(199, 220, 255)',\n 'rgb(199, 236, 255)',\n 'rgb(195, 234, 213)',\n 'rgb(255, 201, 199)',\n 'rgb(255, 220, 196)',\n 'rgb(255, 238, 173)',\n 'rgb(242, 199, 255)',\n\n 'rgb(191, 191, 191)',\n 'rgb(63, 63, 63)',\n 'rgb(128, 139, 158)',\n 'rgb(153, 190, 255)',\n 'rgb(153, 221, 255)',\n 'rgb(152, 215, 182)',\n 'rgb(255, 156, 153)',\n 'rgb(255, 186, 132)',\n 'rgb(255, 226, 112)',\n 'rgb(213, 142, 255)',\n\n 'rgb(165, 165, 165)',\n 'rgb(38, 38, 38)',\n 'rgb(53, 59, 69)',\n 'rgb(20, 80, 184)',\n 'rgb(18, 116, 165)',\n 'rgb(39, 124, 79)',\n 'rgb(158, 30, 26)',\n 'rgb(184, 96, 20)',\n 'rgb(163, 130, 0)',\n 'rgb(94, 34, 129)',\n\n 'rgb(147, 147, 147)',\n 'rgb(13, 13, 13)',\n 'rgb(36, 39, 46)',\n 'rgb(12, 48, 110)',\n 'rgb(10, 65, 92)',\n 'rgb(24, 78, 50)',\n 'rgb(88, 17, 14)',\n 'rgb(92, 48, 10)',\n 'rgb(102, 82, 0)',\n 'rgb(59, 21, 81)',\n\n 'custom',\n]\nconst FONTS = [false, 'serif', 'monospace']\nconst HEADERS = ['1', '2', '3', false]\nconst SIZES = ['small', false, 'large', 'huge']\nconst LINEHEIGHT = [false, '1.2', '1.5', '2']\n\nclass SnowTheme extends OriginSnowTheme {\n constructor(public quill: FluentEditor, options: ThemeOptions) {\n super(quill, options)\n\n this.quill.on(I18N_LOCALE_CHANGE, () => {\n this.i18nTextToolbar()\n })\n }\n\n i18nTextToolbar() {\n const toolbar = this.quill.getModule('toolbar') as TypeToolbar\n ColorPicker.clearText = this.quill.getLangText('clear-color')\n ColorPicker.customText = this.quill.getLangText('custom-color')\n\n if (!toolbar || !this.pickers) return\n\n this.pickers.forEach((picker) => {\n if (picker instanceof ColorPicker) {\n // EasyColorPicker have not dts. abd origin quill ColorPicker dts not complete. use any to resovle ts type error\n const colorPicker = picker as any\n colorPicker.options.remove()\n Array.from(colorPicker.select.options).forEach((option: any) => {\n if (option.hasAttribute('custom')) {\n option.remove()\n }\n })\n colorPicker.buildOptions()\n colorPicker.createUsedColor()\n }\n\n if (picker.select && picker.select.classList.contains('ql-header')) {\n const getLabelKey = (v: string | null) => (v ? `header-${v}` : 'header-normal')\n\n // 更新 label 文本\n const labelValue = picker.label.getAttribute('data-value')\n picker.label.setAttribute('data-label', this.quill.getLangText(getLabelKey(labelValue)))\n\n const select = picker.select as HTMLSelectElement\n Array.from(select.options).forEach((option) => {\n const value = option.getAttribute('value')\n option.textContent = this.quill.getLangText(getLabelKey(value))\n })\n\n picker.options.remove()\n picker.buildOptions()\n }\n })\n }\n\n buildPickers(selects: NodeListOf<HTMLSelectElement>, icons: Record<string, string | Record<string, string>>) {\n this.pickers = Array.from(selects).map((select) => {\n if (select.classList.contains('ql-align')) {\n if (isNullOrUndefined(select.querySelector('option'))) {\n fillSelect(select, ALIGNS)\n }\n return new IconPicker(select, icons.align as Record<string, string>)\n }\n\n if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n const format = select.classList.contains('ql-background') ? 'background' : 'color'\n if (isNullOrUndefined(select.querySelector('option'))) {\n fillColorSelect(select, COLORS, format, format === 'background' ? '#ffffff' : '#000000')\n }\n return new ColorPicker(select, icons[format] as string, {\n expandIcon: '<i class=\"icon\" />',\n closeAfterChange: false,\n })\n }\n\n if (isNullOrUndefined(select.querySelector('option'))) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS)\n }\n else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS)\n }\n else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES)\n }\n else if (select.classList.contains('ql-line-height')) {\n fillSelect(select, LINEHEIGHT)\n }\n }\n return new Picker(select)\n })\n\n const update = () => {\n this.pickers.forEach((picker) => {\n if (picker instanceof ColorPicker) return\n picker.update()\n })\n }\n this.quill.on(FluentEditor.events.EDITOR_CHANGE, update)\n }\n\n extendToolbar(toolbar) {\n const icons = FluentEditor.import('ui/icons') as Record<string, any>\n toolbar.container.classList.add('ql-snow')\n this.buildButtons(toolbar.container.querySelectorAll('button'), icons)\n this.buildPickers(toolbar.container.querySelectorAll('select'), icons)\n this.tooltip = new LinkTooltip(this.quill, this.options.bounds)\n }\n}\n\nfunction fillSelect(select, values, defaultValue = false) {\n values.forEach((value) => {\n const option = document.createElement('option')\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected')\n }\n else {\n option.setAttribute('value', value)\n }\n select.appendChild(option)\n })\n}\n\nfunction fillColorSelect(\n select: HTMLSelectElement,\n values: Array<string | boolean>,\n format: string,\n defaultValue: unknown = false,\n) {\n const colorGetter = document.createElement('span') as HTMLElement\n for (const value of values) {\n const option = document.createElement('option')\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected')\n }\n else {\n if (value !== 'custom') {\n colorGetter.style[format] = String(value)\n option.setAttribute('value', colorGetter.style[format])\n }\n else {\n option.setAttribute('value', value)\n }\n }\n select.appendChild(option)\n }\n}\n\nexport default SnowTheme\n"],"names":[],"mappings":"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"}
|
|
@@ -87,7 +87,7 @@ const FULL_TOOLBAR = [
|
|
|
87
87
|
],
|
|
88
88
|
["bold", "italic", "strike", "underline", "divider"],
|
|
89
89
|
[{ color: [] }, { background: [] }],
|
|
90
|
-
[{ align: "" }, { align: "center" }, { align: "right" }, { align: "justify" }],
|
|
90
|
+
[{ align: ["", "center", "right"] }, { align: "" }, { align: "center" }, { align: "right" }, { align: "justify" }],
|
|
91
91
|
[{ list: "ordered" }, { list: "bullet" }, { list: "check" }],
|
|
92
92
|
[{ script: "sub" }, { script: "super" }],
|
|
93
93
|
[{ indent: "-1" }, { indent: "+1" }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.config.cjs.js","sources":["../../../src/config/editor.config.ts"],"sourcesContent":["// Delta数据行太多超出该限制时,加载会比较慢,需要提示用户\nexport const BIG_DELTA_LIMIT = 2000\n\nexport const CHANGE_LANGUAGE_EVENT = 'change-language'\nexport const defaultLanguage = 'zh-CN'\n\n// Image\nexport const IMAGE_UPLOADER_MIME_TYPES = [\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/svg+xml',\n]\n\n// 常用文件格式\nexport const OTHER_FILE_UPLOADER_MIME_TYPES = [\n 'text/plain',\n 'application/json',\n 'application/pdf',\n]\n\nexport const AUDIO_VIDEO_UPLOADER_MIME_TYPES = [\n 'audio/wave',\n 'audio/wav',\n 'audio/x-wav',\n 'audio/x-pn-wav',\n 'audio/mpeg',\n 'video/mpeg',\n 'video/x-msvideo',\n]\n\n// MS office\nexport const DOC_UPLOADER_MIME_TYPES = [\n 'application/msword',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n 'application/vnd.ms-word.document.macroEnabled.12',\n 'application/vnd.ms-word.template.macroEnabled.12',\n]\n\nexport const XSL_UPLOADER_MIME_TYPES = [\n 'application/vnd.ms-excel',\n 'application/vnd.ms-excel',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n 'application/vnd.ms-excel.sheet.macroEnabled.12',\n 'application/vnd.ms-excel.template.macroEnabled.12',\n 'application/vnd.ms-excel.addin.macroEnabled.12',\n 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',\n]\n\nexport const PPT_UPLOADER_MIME_TYPES = [\n 'application/vnd.ms-powerpoint',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/vnd.openxmlformats-officedocument.presentationml.template',\n 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\n 'application/vnd.ms-powerpoint.addin.macroEnabled.12',\n 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',\n 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',\n 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',\n]\n\n// Compressed files\nexport const COMPRESSED_UPLOADER_MIME_TYPES = [\n 'application/x-tar',\n 'application/x-zip-compressed',\n 'application/zip-compressed',\n 'application/gzip',\n '.rar',\n '.7z',\n]\n\n// default\nexport const FILE_UPLOADER_MIME_TYPES = [\n ...OTHER_FILE_UPLOADER_MIME_TYPES,\n ...AUDIO_VIDEO_UPLOADER_MIME_TYPES,\n ...DOC_UPLOADER_MIME_TYPES,\n ...XSL_UPLOADER_MIME_TYPES,\n ...PPT_UPLOADER_MIME_TYPES,\n ...COMPRESSED_UPLOADER_MIME_TYPES,\n]\n\nexport const DEFAULT_TOOLBAR = [\n [{ header: [] }],\n ['bold', 'italic', 'underline', 'link'],\n [{ list: 'ordered' }, { list: 'bullet' }],\n ['clean'],\n]\n\nexport const FULL_TOOLBAR = [\n ['undo', 'redo', 'clean', 'format-painter'],\n [\n { header: [1, 2, 3, 4, 5, 6, false] },\n { font: [false, '宋体', '微软雅黑', '楷体', '黑体', '隶书', 'andale mono', 'arial', 'arial black', 'comic sans ms', 'impact', 'times new roman'] },\n { size: [false, '12px', '14px', '16px', '18px', '20px', '24px', '32px', '36px', '48px', '72px'] },\n { 'line-height': [false, '1.2', '1.5', '1.75', '2', '3', '4', '5'] },\n ],\n ['bold', 'italic', 'strike', 'underline', 'divider'],\n [{ color: [] }, { background: [] }],\n [{ align: '' }, { align: 'center' }, { align: 'right' }, { align: 'justify' }],\n [{ list: 'ordered' }, { list: 'bullet' }, { list: 'check' }],\n [{ script: 'sub' }, { script: 'super' }],\n [{ indent: '-1' }, { indent: '+1' }],\n [{ direction: 'rtl' }],\n ['link', 'blockquote', 'code', 'code-block'],\n ['image', 'file', { 'table-up': [] }],\n ['emoji', 'video', 'formula', 'screenshot', 'fullscreen'],\n]\n"],"names":[],"mappings":";;AACO,MAAM,kBAAkB;AAExB,MAAM,wBAAwB;AAC9B,MAAM,kBAAkB;AAGxB,MAAM,4BAA4B;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,iCAAiC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,kCAAkC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,iCAAiC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,2BAA2B;AAAA,EACtC,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAEO,MAAM,kBAAkB;AAAA,EAC7B,CAAC,EAAE,QAAQ,CAAA,GAAI;AAAA,EACf,CAAC,QAAQ,UAAU,aAAa,MAAM;AAAA,EACtC,CAAC,EAAE,MAAM,UAAA,GAAa,EAAE,MAAM,UAAU;AAAA,EACxC,CAAC,OAAO;AACV;AAEO,MAAM,eAAe;AAAA,EAC1B,CAAC,QAAQ,QAAQ,SAAS,gBAAgB;AAAA,EAC1C;AAAA,IACE,EAAE,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,EAAA;AAAA,IAClC,EAAE,MAAM,CAAC,OAAO,MAAM,QAAQ,MAAM,MAAM,MAAM,eAAe,SAAS,eAAe,iBAAiB,UAAU,iBAAiB,EAAA;AAAA,IACnI,EAAE,MAAM,CAAC,OAAO,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM,EAAA;AAAA,IAC9F,EAAE,eAAe,CAAC,OAAO,OAAO,OAAO,QAAQ,KAAK,KAAK,KAAK,GAAG,EAAA;AAAA,EAAE;AAAA,EAErE,CAAC,QAAQ,UAAU,UAAU,aAAa,SAAS;AAAA,EACnD,CAAC,EAAE,OAAO,CAAA,EAAC,GAAK,EAAE,YAAY,CAAA,EAAC,CAAG;AAAA,EAClC,CAAC,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"editor.config.cjs.js","sources":["../../../src/config/editor.config.ts"],"sourcesContent":["// Delta数据行太多超出该限制时,加载会比较慢,需要提示用户\nexport const BIG_DELTA_LIMIT = 2000\n\nexport const CHANGE_LANGUAGE_EVENT = 'change-language'\nexport const defaultLanguage = 'zh-CN'\n\n// Image\nexport const IMAGE_UPLOADER_MIME_TYPES = [\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/svg+xml',\n]\n\n// 常用文件格式\nexport const OTHER_FILE_UPLOADER_MIME_TYPES = [\n 'text/plain',\n 'application/json',\n 'application/pdf',\n]\n\nexport const AUDIO_VIDEO_UPLOADER_MIME_TYPES = [\n 'audio/wave',\n 'audio/wav',\n 'audio/x-wav',\n 'audio/x-pn-wav',\n 'audio/mpeg',\n 'video/mpeg',\n 'video/x-msvideo',\n]\n\n// MS office\nexport const DOC_UPLOADER_MIME_TYPES = [\n 'application/msword',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n 'application/vnd.ms-word.document.macroEnabled.12',\n 'application/vnd.ms-word.template.macroEnabled.12',\n]\n\nexport const XSL_UPLOADER_MIME_TYPES = [\n 'application/vnd.ms-excel',\n 'application/vnd.ms-excel',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n 'application/vnd.ms-excel.sheet.macroEnabled.12',\n 'application/vnd.ms-excel.template.macroEnabled.12',\n 'application/vnd.ms-excel.addin.macroEnabled.12',\n 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',\n]\n\nexport const PPT_UPLOADER_MIME_TYPES = [\n 'application/vnd.ms-powerpoint',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/vnd.openxmlformats-officedocument.presentationml.template',\n 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\n 'application/vnd.ms-powerpoint.addin.macroEnabled.12',\n 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',\n 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',\n 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',\n]\n\n// Compressed files\nexport const COMPRESSED_UPLOADER_MIME_TYPES = [\n 'application/x-tar',\n 'application/x-zip-compressed',\n 'application/zip-compressed',\n 'application/gzip',\n '.rar',\n '.7z',\n]\n\n// default\nexport const FILE_UPLOADER_MIME_TYPES = [\n ...OTHER_FILE_UPLOADER_MIME_TYPES,\n ...AUDIO_VIDEO_UPLOADER_MIME_TYPES,\n ...DOC_UPLOADER_MIME_TYPES,\n ...XSL_UPLOADER_MIME_TYPES,\n ...PPT_UPLOADER_MIME_TYPES,\n ...COMPRESSED_UPLOADER_MIME_TYPES,\n]\n\nexport const DEFAULT_TOOLBAR = [\n [{ header: [] }],\n ['bold', 'italic', 'underline', 'link'],\n [{ list: 'ordered' }, { list: 'bullet' }],\n ['clean'],\n]\n\nexport const FULL_TOOLBAR = [\n ['undo', 'redo', 'clean', 'format-painter'],\n [\n { header: [1, 2, 3, 4, 5, 6, false] },\n { font: [false, '宋体', '微软雅黑', '楷体', '黑体', '隶书', 'andale mono', 'arial', 'arial black', 'comic sans ms', 'impact', 'times new roman'] },\n { size: [false, '12px', '14px', '16px', '18px', '20px', '24px', '32px', '36px', '48px', '72px'] },\n { 'line-height': [false, '1.2', '1.5', '1.75', '2', '3', '4', '5'] },\n ],\n ['bold', 'italic', 'strike', 'underline', 'divider'],\n [{ color: [] }, { background: [] }],\n [{ align: ['', 'center', 'right'] }, { align: '' }, { align: 'center' }, { align: 'right' }, { align: 'justify' }],\n [{ list: 'ordered' }, { list: 'bullet' }, { list: 'check' }],\n [{ script: 'sub' }, { script: 'super' }],\n [{ indent: '-1' }, { indent: '+1' }],\n [{ direction: 'rtl' }],\n ['link', 'blockquote', 'code', 'code-block'],\n ['image', 'file', { 'table-up': [] }],\n ['emoji', 'video', 'formula', 'screenshot', 'fullscreen'],\n]\n"],"names":[],"mappings":";;AACO,MAAM,kBAAkB;AAExB,MAAM,wBAAwB;AAC9B,MAAM,kBAAkB;AAGxB,MAAM,4BAA4B;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,iCAAiC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,kCAAkC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,iCAAiC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,2BAA2B;AAAA,EACtC,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAEO,MAAM,kBAAkB;AAAA,EAC7B,CAAC,EAAE,QAAQ,CAAA,GAAI;AAAA,EACf,CAAC,QAAQ,UAAU,aAAa,MAAM;AAAA,EACtC,CAAC,EAAE,MAAM,UAAA,GAAa,EAAE,MAAM,UAAU;AAAA,EACxC,CAAC,OAAO;AACV;AAEO,MAAM,eAAe;AAAA,EAC1B,CAAC,QAAQ,QAAQ,SAAS,gBAAgB;AAAA,EAC1C;AAAA,IACE,EAAE,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,EAAA;AAAA,IAClC,EAAE,MAAM,CAAC,OAAO,MAAM,QAAQ,MAAM,MAAM,MAAM,eAAe,SAAS,eAAe,iBAAiB,UAAU,iBAAiB,EAAA;AAAA,IACnI,EAAE,MAAM,CAAC,OAAO,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM,EAAA;AAAA,IAC9F,EAAE,eAAe,CAAC,OAAO,OAAO,OAAO,QAAQ,KAAK,KAAK,KAAK,GAAG,EAAA;AAAA,EAAE;AAAA,EAErE,CAAC,QAAQ,UAAU,UAAU,aAAa,SAAS;AAAA,EACnD,CAAC,EAAE,OAAO,CAAA,EAAC,GAAK,EAAE,YAAY,CAAA,EAAC,CAAG;AAAA,EAClC,CAAC,EAAE,OAAO,CAAC,IAAI,UAAU,OAAO,EAAA,GAAK,EAAE,OAAO,GAAA,GAAM,EAAE,OAAO,SAAA,GAAY,EAAE,OAAO,WAAW,EAAE,OAAO,WAAW;AAAA,EACjH,CAAC,EAAE,MAAM,UAAA,GAAa,EAAE,MAAM,YAAY,EAAE,MAAM,SAAS;AAAA,EAC3D,CAAC,EAAE,QAAQ,MAAA,GAAS,EAAE,QAAQ,SAAS;AAAA,EACvC,CAAC,EAAE,QAAQ,KAAA,GAAQ,EAAE,QAAQ,MAAM;AAAA,EACnC,CAAC,EAAE,WAAW,OAAO;AAAA,EACrB,CAAC,QAAQ,cAAc,QAAQ,YAAY;AAAA,EAC3C,CAAC,SAAS,QAAQ,EAAE,YAAY,CAAA,GAAI;AAAA,EACpC,CAAC,SAAS,SAAS,WAAW,cAAc,YAAY;AAC1D;;;;;;;;;;;;;;"}
|
|
@@ -63,7 +63,10 @@ const EN_US = {
|
|
|
63
63
|
"file": "File",
|
|
64
64
|
"mind-map": "Mind Map",
|
|
65
65
|
"flow-chart": "Flow Chart",
|
|
66
|
-
"link":
|
|
66
|
+
"link": {
|
|
67
|
+
"": "Hyperlink",
|
|
68
|
+
"enter-link": "Enter link: "
|
|
69
|
+
},
|
|
67
70
|
"code": "Inline Code",
|
|
68
71
|
"table": "Table",
|
|
69
72
|
"table-up": "Table",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en-us.cjs.js","sources":["../../../../src/config/i18n/en-us.ts"],"sourcesContent":["export const EN_US = {\n\n 'header': 'Paragraph Formatting',\n 'normal': 'Normal',\n 'h1': 'Heading 1',\n 'h2': 'Heading 2',\n 'h3': 'Heading 3',\n 'h4': 'Heading 4',\n 'h5': 'Heading 5',\n 'h6': 'Heading 6',\n\n 'line-height': 'Line Height',\n 'songti': 'SimSun',\n 'yahei': 'Microsoft Yahei',\n 'kaiti': 'KaiTi',\n 'heiti': 'SimHei',\n 'lishu': 'LiSu',\n\n 'left': 'Left',\n 'center': 'Centered',\n 'right': 'Right',\n\n 'codeblock': 'Code Block',\n 'globallink': 'Link',\n\n 'exit-fullscreen': 'Exit Full Screen',\n 'help': 'Help',\n 'more': 'More',\n\n 'help-format': 'Format',\n 'help-insert': 'Insert',\n 'help-operation': 'Edit',\n 'mention': 'Mention People',\n 'quick-menu': 'Shortcut',\n 'toggle-help-panel': 'Open/Close Help Panel',\n 'scroll-table': 'Horizontal Scroll',\n 'mouse-wheel': 'Mouse Wheel',\n 'save': 'Save',\n\n 'default-link-text': 'Link',\n 'basicblock': 'Card',\n 'linkplaceholder': 'Enter an address and press Enter.',\n 'counter-template': `{{count}}/{{totalCount}} {{countUnit}}`,\n 'char': 'characters',\n 'word': 'words',\n 'counter-limit-tips':\n 'The number of {{countUnit}} exceeds the maximum allowed limit.',\n 'ie-msg':\n 'In order to have a better experience, it is recommended to use the latest version of Chrome browser.',\n\n 'loading': 'Loading...',\n 'pasting': 'A large amount of content to paste. Loading...',\n 'img-error': 'Image Copy Error',\n 'img-error-info':\n 'Failed to copy the image. Save it to your local computer and then upload it by clicking Image on the toolbar.',\n\n 'last-modified': 'Last Modified Date:',\n 'screenshot': 'Screenshot',\n 'uploading': 'Uploading...',\n 'sub-title-bg-color': 'Background Color',\n\n // blot tip name\n 'emoji': 'Emoji',\n 'fullscreen': 'Full Screen',\n 'blockquote': 'Quote',\n 'undo': 'Undo',\n 'redo': 'Redo',\n 'clean': 'Clear Formatting',\n 'bold': 'Bold',\n 'italic': 'Italic',\n 'underline': 'Underline',\n 'strike': 'Strikethrough',\n 'image': 'Image',\n 'file': 'File',\n 'mind-map': 'Mind Map',\n 'flow-chart': 'Flow Chart',\n 'link': 'Hyperlink',\n 'code': 'Inline Code',\n 'table': 'Table',\n 'table-up': 'Table',\n 'code-block': 'Code Block',\n 'formula': 'Formula',\n 'format-painter': 'Format Painter',\n 'divider': 'Divider',\n 'video': 'Video',\n 'color': 'Font Color',\n 'background': 'Background Color',\n 'font': 'Font',\n 'size': 'Size',\n 'list': 'List',\n 'list-ordered': 'Ordered List',\n 'list-bullet': 'Unordered List',\n 'list-check': 'Task List',\n 'align-left': 'Left aligned',\n 'align-center': 'Center aligned',\n 'align-right': 'Right aligned',\n 'align-justify': 'Justify aligned',\n 'direction-ltr': 'Text Direction Left To Right',\n 'direction-rtl': 'Text Direction Right To Left',\n 'indent--1': 'Minus Indent',\n 'indent-+1': 'Add Indent',\n 'script-super': 'Superscript',\n 'script-sub': 'Subscript',\n 'header-normal': 'Text',\n 'header-1': 'Heading 1',\n 'header-2': 'Heading 2',\n 'header-3': 'Heading 3',\n 'header-4': 'Heading 4',\n 'header-5': 'Heading 5',\n 'header-6': 'Heading 6',\n 'header-list': 'Heading List',\n 'input-recall-menu-placeholder': 'Input / recall menu',\n 'clear-color': 'Clear color',\n 'custom-color': 'Color picker',\n // table-up texts\n 'fullCheckboxText': 'Insert full width table',\n 'customBtnText': 'Custom',\n 'confirmText': 'Confirm',\n 'cancelText': 'Cancel',\n 'rowText': 'Row',\n 'colText': 'Column',\n 'notPositiveNumberError': 'Please enter a positive integer',\n 'custom': 'Custom',\n 'clear': 'Clear',\n 'transparent': 'Transparent',\n 'perWidthInsufficient': 'The percentage width is insufficient. To complete the operation, the table needs to be converted to a fixed width. Do you want to continue?',\n 'CopyCell': 'Copy cell',\n 'CutCell': 'Cut cell',\n 'InsertTop': 'Insert row above',\n 'InsertRight': 'Insert column right',\n 'InsertBottom': 'Insert row below',\n 'InsertLeft': 'Insert column Left',\n 'MergeCell': 'Merge Cell',\n 'SplitCell': 'Split Cell',\n 'DeleteRow': 'Delete Row',\n 'DeleteColumn': 'Delete Column',\n 'DeleteTable': 'Delete table',\n 'BackgroundColor': 'Set background color',\n 'BorderColor': 'Set border color',\n}\n"],"names":[],"mappings":";;AAAO,MAAM,QAAQ;AAAA,EAEnB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EAEN,eAAe;AAAA,EACf,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EAET,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EAET,aAAa;AAAA,EACb,cAAc;AAAA,EAEd,mBAAmB;AAAA,EACnB,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,eAAe;AAAA,EACf,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX,cAAc;AAAA,EACd,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,QAAQ;AAAA,EAER,qBAAqB;AAAA,EACrB,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,sBACE;AAAA,EACF,UACE;AAAA,EAEF,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,kBACE;AAAA,EAEF,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,sBAAsB;AAAA;AAAA,EAGtB,SAAS;AAAA,EACT,cAAc;AAAA,EACd,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,aAAa;AAAA,EACb,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,QAAQ;AAAA,
|
|
1
|
+
{"version":3,"file":"en-us.cjs.js","sources":["../../../../src/config/i18n/en-us.ts"],"sourcesContent":["export const EN_US = {\n\n 'header': 'Paragraph Formatting',\n 'normal': 'Normal',\n 'h1': 'Heading 1',\n 'h2': 'Heading 2',\n 'h3': 'Heading 3',\n 'h4': 'Heading 4',\n 'h5': 'Heading 5',\n 'h6': 'Heading 6',\n\n 'line-height': 'Line Height',\n 'songti': 'SimSun',\n 'yahei': 'Microsoft Yahei',\n 'kaiti': 'KaiTi',\n 'heiti': 'SimHei',\n 'lishu': 'LiSu',\n\n 'left': 'Left',\n 'center': 'Centered',\n 'right': 'Right',\n\n 'codeblock': 'Code Block',\n 'globallink': 'Link',\n\n 'exit-fullscreen': 'Exit Full Screen',\n 'help': 'Help',\n 'more': 'More',\n\n 'help-format': 'Format',\n 'help-insert': 'Insert',\n 'help-operation': 'Edit',\n 'mention': 'Mention People',\n 'quick-menu': 'Shortcut',\n 'toggle-help-panel': 'Open/Close Help Panel',\n 'scroll-table': 'Horizontal Scroll',\n 'mouse-wheel': 'Mouse Wheel',\n 'save': 'Save',\n\n 'default-link-text': 'Link',\n 'basicblock': 'Card',\n 'linkplaceholder': 'Enter an address and press Enter.',\n 'counter-template': `{{count}}/{{totalCount}} {{countUnit}}`,\n 'char': 'characters',\n 'word': 'words',\n 'counter-limit-tips':\n 'The number of {{countUnit}} exceeds the maximum allowed limit.',\n 'ie-msg':\n 'In order to have a better experience, it is recommended to use the latest version of Chrome browser.',\n\n 'loading': 'Loading...',\n 'pasting': 'A large amount of content to paste. Loading...',\n 'img-error': 'Image Copy Error',\n 'img-error-info':\n 'Failed to copy the image. Save it to your local computer and then upload it by clicking Image on the toolbar.',\n\n 'last-modified': 'Last Modified Date:',\n 'screenshot': 'Screenshot',\n 'uploading': 'Uploading...',\n 'sub-title-bg-color': 'Background Color',\n\n // blot tip name\n 'emoji': 'Emoji',\n 'fullscreen': 'Full Screen',\n 'blockquote': 'Quote',\n 'undo': 'Undo',\n 'redo': 'Redo',\n 'clean': 'Clear Formatting',\n 'bold': 'Bold',\n 'italic': 'Italic',\n 'underline': 'Underline',\n 'strike': 'Strikethrough',\n 'image': 'Image',\n 'file': 'File',\n 'mind-map': 'Mind Map',\n 'flow-chart': 'Flow Chart',\n 'link': {\n '': 'Hyperlink',\n 'enter-link': 'Enter link: ',\n },\n 'code': 'Inline Code',\n 'table': 'Table',\n 'table-up': 'Table',\n 'code-block': 'Code Block',\n 'formula': 'Formula',\n 'format-painter': 'Format Painter',\n 'divider': 'Divider',\n 'video': 'Video',\n 'color': 'Font Color',\n 'background': 'Background Color',\n 'font': 'Font',\n 'size': 'Size',\n 'list': 'List',\n 'list-ordered': 'Ordered List',\n 'list-bullet': 'Unordered List',\n 'list-check': 'Task List',\n 'align-left': 'Left aligned',\n 'align-center': 'Center aligned',\n 'align-right': 'Right aligned',\n 'align-justify': 'Justify aligned',\n 'direction-ltr': 'Text Direction Left To Right',\n 'direction-rtl': 'Text Direction Right To Left',\n 'indent--1': 'Minus Indent',\n 'indent-+1': 'Add Indent',\n 'script-super': 'Superscript',\n 'script-sub': 'Subscript',\n 'header-normal': 'Text',\n 'header-1': 'Heading 1',\n 'header-2': 'Heading 2',\n 'header-3': 'Heading 3',\n 'header-4': 'Heading 4',\n 'header-5': 'Heading 5',\n 'header-6': 'Heading 6',\n 'header-list': 'Heading List',\n 'input-recall-menu-placeholder': 'Input / recall menu',\n 'clear-color': 'Clear color',\n 'custom-color': 'Color picker',\n // table-up texts\n 'fullCheckboxText': 'Insert full width table',\n 'customBtnText': 'Custom',\n 'confirmText': 'Confirm',\n 'cancelText': 'Cancel',\n 'rowText': 'Row',\n 'colText': 'Column',\n 'notPositiveNumberError': 'Please enter a positive integer',\n 'custom': 'Custom',\n 'clear': 'Clear',\n 'transparent': 'Transparent',\n 'perWidthInsufficient': 'The percentage width is insufficient. To complete the operation, the table needs to be converted to a fixed width. Do you want to continue?',\n 'CopyCell': 'Copy cell',\n 'CutCell': 'Cut cell',\n 'InsertTop': 'Insert row above',\n 'InsertRight': 'Insert column right',\n 'InsertBottom': 'Insert row below',\n 'InsertLeft': 'Insert column Left',\n 'MergeCell': 'Merge Cell',\n 'SplitCell': 'Split Cell',\n 'DeleteRow': 'Delete Row',\n 'DeleteColumn': 'Delete Column',\n 'DeleteTable': 'Delete table',\n 'BackgroundColor': 'Set background color',\n 'BorderColor': 'Set border color',\n}\n"],"names":[],"mappings":";;AAAO,MAAM,QAAQ;AAAA,EAEnB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EAEN,eAAe;AAAA,EACf,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EAET,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EAET,aAAa;AAAA,EACb,cAAc;AAAA,EAEd,mBAAmB;AAAA,EACnB,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,eAAe;AAAA,EACf,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX,cAAc;AAAA,EACd,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,QAAQ;AAAA,EAER,qBAAqB;AAAA,EACrB,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,sBACE;AAAA,EACF,UACE;AAAA,EAEF,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,kBACE;AAAA,EAEF,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,sBAAsB;AAAA;AAAA,EAGtB,SAAS;AAAA,EACT,cAAc;AAAA,EACd,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,aAAa;AAAA,EACb,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,QAAQ;AAAA,IACN,IAAI;AAAA,IACJ,cAAc;AAAA,EAAA;AAAA,EAEhB,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AAAA,EACT,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,cAAc;AAAA,EACd,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,iCAAiC;AAAA,EACjC,eAAe;AAAA,EACf,gBAAgB;AAAA;AAAA,EAEhB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,cAAc;AAAA,EACd,WAAW;AAAA,EACX,WAAW;AAAA,EACX,0BAA0B;AAAA,EAC1B,UAAU;AAAA,EACV,SAAS;AAAA,EACT,eAAe;AAAA,EACf,wBAAwB;AAAA,EACxB,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,aAAa;AAAA,EACb,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,aAAa;AAAA,EACb,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,eAAe;AACjB;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zh-cn.cjs.js","sources":["../../../../src/config/i18n/zh-cn.ts"],"sourcesContent":["export const ZH_CN = {\n\n 'header': '段落格式',\n 'normal': '正文',\n 'h1': '标题1',\n 'h2': '标题2',\n 'h3': '标题3',\n 'h4': '标题4',\n 'h5': '标题5',\n 'h6': '标题6',\n\n 'line-height': '行距',\n 'songti': '宋体',\n 'yahei': '微软雅黑',\n 'kaiti': '楷体',\n 'heiti': '黑体',\n 'lishu': '隶书',\n\n 'left': '左对齐',\n 'center': '居中对齐',\n 'right': '右对齐',\n\n 'codeblock': '代码块',\n 'globallink': '全局链接',\n\n 'exit-fullscreen': '退出全屏',\n 'help': '帮助',\n 'more': '更多',\n\n 'help-format': '格式',\n 'help-insert': '插入',\n 'help-operation': '操作',\n 'mention': '提及某人',\n 'quick-menu': '快捷菜单',\n 'toggle-help-panel': '打开/关闭帮助面板',\n 'scroll-table': '水平滚动表格',\n 'mouse-wheel': '鼠标滚轮',\n 'save': '保存',\n\n 'default-link-text': '链接',\n 'basicblock': '卡片',\n 'linkplaceholder': '请输入链接地址,按回车键确认',\n 'counter-template': '{{count}}/{{totalCount}}',\n 'char': '字符',\n 'word': '单词',\n 'counter-limit-tips': '{{countUnit}}数超出最大允许值',\n 'ie-msg': '为了有更好的体验,推荐使用最新版Chrome浏览器。',\n\n 'loading': '正在加载中...',\n 'pasting': '您粘贴的内容较多,正在努力加载中,请耐心等待...',\n 'img-error': '图片复制出错',\n 'img-error-info':\n '此图片不支持复制,请将原图下载至本地后点击工具栏【插入图片】,重新上传。',\n\n 'last-modified': '最后修改时间:',\n 'screenshot': '截图',\n 'uploading': '上传中...',\n 'sub-title-bg-color': '背景颜色',\n\n // blot tip name\n 'emoji': '表情',\n 'fullscreen': '全屏',\n 'blockquote': '引用',\n 'undo': '撤销',\n 'redo': '重做',\n 'clean': '清除格式',\n 'bold': '粗体',\n 'italic': '斜体',\n 'underline': '下划线',\n 'strike': '删除线',\n 'image': '图片',\n 'file': '文件',\n 'mind-map': '思维导图',\n 'flow-chart': '流程图',\n 'link': '超链接',\n 'divider': '分割线',\n 'code': '行内代码',\n 'table': '表格',\n 'table-up': '表格',\n 'code-block': '代码块',\n 'formula': '公式',\n 'format-painter': '格式刷',\n 'video': '视频',\n 'color': '字体颜色',\n 'background': '背景色',\n 'font': '字体',\n 'size': '字号',\n 'list': '列表',\n 'list-ordered': '有序列表',\n 'list-bullet': '无序列表',\n 'list-check': '任务列表',\n 'align-left': '左对齐',\n 'align-center': '居中对齐',\n 'align-right': '右对齐',\n 'align-justify': '两端对齐',\n 'direction-ltr': '文本方向左到右',\n 'direction-rtl': '文本方向右到左',\n 'indent--1': '减少缩进',\n 'indent-+1': '增加缩进',\n 'script-super': '上标',\n 'script-sub': '下标',\n 'header-normal': '正文',\n 'header-1': '标题1',\n 'header-2': '标题2',\n 'header-3': '标题3',\n 'header-4': '标题4',\n 'header-5': '标题5',\n 'header-6': '标题6',\n 'header-list': '标题列表',\n 'input-recall-menu-placeholder': '输入 / 唤起菜单',\n 'clear-color': '清除颜色',\n 'custom-color': '选择颜色',\n // table-up texts\n 'fullCheckboxText': '插入满宽度表格',\n 'customBtnText': '自定义行列数',\n 'confirmText': '确认',\n 'cancelText': '取消',\n 'rowText': '行数',\n 'colText': '列数',\n 'notPositiveNumberError': '请输入正整数',\n 'custom': '自定义',\n 'clear': '清除',\n 'transparent': '透明',\n 'perWidthInsufficient': '百分比宽度不足, 如需完成操作需要转换表格为固定宽度,是否继续?',\n 'CopyCell': '复制单元格',\n 'CutCell': '剪切单元格',\n 'InsertTop': '向上插入一行',\n 'InsertRight': '向右插入一列',\n 'InsertBottom': '向下插入一行',\n 'InsertLeft': '向左插入一列',\n 'MergeCell': '合并单元格',\n 'SplitCell': '拆分单元格',\n 'DeleteRow': '删除当前行',\n 'DeleteColumn': '删除当前列',\n 'DeleteTable': '删除当前表格',\n 'BackgroundColor': '设置背景颜色',\n 'BorderColor': '设置边框颜色',\n}\n"],"names":[],"mappings":";;AAAO,MAAM,QAAQ;AAAA,EAEnB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EAEN,eAAe;AAAA,EACf,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EAET,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EAET,aAAa;AAAA,EACb,cAAc;AAAA,EAEd,mBAAmB;AAAA,EACnB,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,eAAe;AAAA,EACf,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX,cAAc;AAAA,EACd,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,QAAQ;AAAA,EAER,qBAAqB;AAAA,EACrB,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,sBAAsB;AAAA,EACtB,UAAU;AAAA,EAEV,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,kBACE;AAAA,EAEF,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,sBAAsB;AAAA;AAAA,EAGtB,SAAS;AAAA,EACT,cAAc;AAAA,EACd,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,aAAa;AAAA,EACb,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,QAAQ;AAAA,
|
|
1
|
+
{"version":3,"file":"zh-cn.cjs.js","sources":["../../../../src/config/i18n/zh-cn.ts"],"sourcesContent":["export const ZH_CN = {\n\n 'header': '段落格式',\n 'normal': '正文',\n 'h1': '标题1',\n 'h2': '标题2',\n 'h3': '标题3',\n 'h4': '标题4',\n 'h5': '标题5',\n 'h6': '标题6',\n\n 'line-height': '行距',\n 'songti': '宋体',\n 'yahei': '微软雅黑',\n 'kaiti': '楷体',\n 'heiti': '黑体',\n 'lishu': '隶书',\n\n 'left': '左对齐',\n 'center': '居中对齐',\n 'right': '右对齐',\n\n 'codeblock': '代码块',\n 'globallink': '全局链接',\n\n 'exit-fullscreen': '退出全屏',\n 'help': '帮助',\n 'more': '更多',\n\n 'help-format': '格式',\n 'help-insert': '插入',\n 'help-operation': '操作',\n 'mention': '提及某人',\n 'quick-menu': '快捷菜单',\n 'toggle-help-panel': '打开/关闭帮助面板',\n 'scroll-table': '水平滚动表格',\n 'mouse-wheel': '鼠标滚轮',\n 'save': '保存',\n\n 'default-link-text': '链接',\n 'basicblock': '卡片',\n 'linkplaceholder': '请输入链接地址,按回车键确认',\n 'counter-template': '{{count}}/{{totalCount}}',\n 'char': '字符',\n 'word': '单词',\n 'counter-limit-tips': '{{countUnit}}数超出最大允许值',\n 'ie-msg': '为了有更好的体验,推荐使用最新版Chrome浏览器。',\n\n 'loading': '正在加载中...',\n 'pasting': '您粘贴的内容较多,正在努力加载中,请耐心等待...',\n 'img-error': '图片复制出错',\n 'img-error-info':\n '此图片不支持复制,请将原图下载至本地后点击工具栏【插入图片】,重新上传。',\n\n 'last-modified': '最后修改时间:',\n 'screenshot': '截图',\n 'uploading': '上传中...',\n 'sub-title-bg-color': '背景颜色',\n\n // blot tip name\n 'emoji': '表情',\n 'fullscreen': '全屏',\n 'blockquote': '引用',\n 'undo': '撤销',\n 'redo': '重做',\n 'clean': '清除格式',\n 'bold': '粗体',\n 'italic': '斜体',\n 'underline': '下划线',\n 'strike': '删除线',\n 'image': '图片',\n 'file': '文件',\n 'mind-map': '思维导图',\n 'flow-chart': '流程图',\n 'link': {\n '': '超链接',\n 'enter-link': '输入链接: ',\n },\n 'divider': '分割线',\n 'code': '行内代码',\n 'table': '表格',\n 'table-up': '表格',\n 'code-block': '代码块',\n 'formula': '公式',\n 'format-painter': '格式刷',\n 'video': '视频',\n 'color': '字体颜色',\n 'background': '背景色',\n 'font': '字体',\n 'size': '字号',\n 'list': '列表',\n 'list-ordered': '有序列表',\n 'list-bullet': '无序列表',\n 'list-check': '任务列表',\n 'align-left': '左对齐',\n 'align-center': '居中对齐',\n 'align-right': '右对齐',\n 'align-justify': '两端对齐',\n 'direction-ltr': '文本方向左到右',\n 'direction-rtl': '文本方向右到左',\n 'indent--1': '减少缩进',\n 'indent-+1': '增加缩进',\n 'script-super': '上标',\n 'script-sub': '下标',\n 'header-normal': '正文',\n 'header-1': '标题1',\n 'header-2': '标题2',\n 'header-3': '标题3',\n 'header-4': '标题4',\n 'header-5': '标题5',\n 'header-6': '标题6',\n 'header-list': '标题列表',\n 'input-recall-menu-placeholder': '输入 / 唤起菜单',\n 'clear-color': '清除颜色',\n 'custom-color': '选择颜色',\n // table-up texts\n 'fullCheckboxText': '插入满宽度表格',\n 'customBtnText': '自定义行列数',\n 'confirmText': '确认',\n 'cancelText': '取消',\n 'rowText': '行数',\n 'colText': '列数',\n 'notPositiveNumberError': '请输入正整数',\n 'custom': '自定义',\n 'clear': '清除',\n 'transparent': '透明',\n 'perWidthInsufficient': '百分比宽度不足, 如需完成操作需要转换表格为固定宽度,是否继续?',\n 'CopyCell': '复制单元格',\n 'CutCell': '剪切单元格',\n 'InsertTop': '向上插入一行',\n 'InsertRight': '向右插入一列',\n 'InsertBottom': '向下插入一行',\n 'InsertLeft': '向左插入一列',\n 'MergeCell': '合并单元格',\n 'SplitCell': '拆分单元格',\n 'DeleteRow': '删除当前行',\n 'DeleteColumn': '删除当前列',\n 'DeleteTable': '删除当前表格',\n 'BackgroundColor': '设置背景颜色',\n 'BorderColor': '设置边框颜色',\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,33 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
5
5
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
6
6
|
const Quill = require("quill");
|
|
7
7
|
require("../config/index.cjs.js");
|
|
8
|
-
const
|
|
8
|
+
const enUs = require("../config/i18n/en-us.cjs.js");
|
|
9
|
+
const zhCn = require("../config/i18n/zh-cn.cjs.js");
|
|
10
|
+
const merge = require("../utils/merge.cjs.js");
|
|
9
11
|
const editor_config = require("../config/editor.config.cjs.js");
|
|
12
|
+
const LEGACY_I18N_KEY_REGEX = /^_i18n(?:"([^"]+)"|'([^']+)'|`([^`]+)`)$/;
|
|
13
|
+
function resolveLegacyI18nKey(name) {
|
|
14
|
+
const key = name.trim();
|
|
15
|
+
const matched = key.match(LEGACY_I18N_KEY_REGEX);
|
|
16
|
+
if (!matched) return name;
|
|
17
|
+
return matched[1] || matched[2] || matched[3] || name;
|
|
18
|
+
}
|
|
10
19
|
class FluentEditor extends Quill {
|
|
11
20
|
constructor(container, options = {}) {
|
|
21
|
+
if (!options.modules) options.modules = {};
|
|
22
|
+
if (!options.modules.i18n) options.modules.i18n = {};
|
|
23
|
+
const i18nOptions = options.modules.i18n;
|
|
24
|
+
const defaultMessages = {
|
|
25
|
+
"en-US": enUs.EN_US,
|
|
26
|
+
"zh-CN": zhCn.ZH_CN
|
|
27
|
+
};
|
|
28
|
+
const userMessages = i18nOptions.messages || {};
|
|
29
|
+
i18nOptions.messages = merge.merge({}, defaultMessages, userMessages);
|
|
30
|
+
if (!i18nOptions.interpolate) {
|
|
31
|
+
i18nOptions.interpolate = (template, params) => {
|
|
32
|
+
return template.replaceAll(/\{\{([\w]+)\}\}/g, (match, key) => params[key] != null ? String(params[key]) : match);
|
|
33
|
+
};
|
|
34
|
+
}
|
|
12
35
|
super(container, options);
|
|
13
36
|
__publicField(this, "isFullscreen", false);
|
|
14
37
|
}
|
|
@@ -17,10 +40,12 @@ class FluentEditor extends Quill {
|
|
|
17
40
|
}
|
|
18
41
|
get lang() {
|
|
19
42
|
const i18nModule = this.getModule("i18n");
|
|
20
|
-
return i18nModule ? i18nModule.
|
|
43
|
+
return i18nModule ? i18nModule.getLocale() : editor_config.defaultLanguage;
|
|
21
44
|
}
|
|
22
|
-
getLangText(name) {
|
|
23
|
-
|
|
45
|
+
getLangText(name, params, defaultValue) {
|
|
46
|
+
const i18nModule = this.getModule("i18n");
|
|
47
|
+
if (!i18nModule) return name;
|
|
48
|
+
return i18nModule.t(resolveLegacyI18nKey(name), params, defaultValue);
|
|
24
49
|
}
|
|
25
50
|
}
|
|
26
51
|
exports.default = FluentEditor;
|