@opentiny/fluent-editor 4.1.0 → 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.
Files changed (120) hide show
  1. package/es/config/editor.config.es.js +1 -1
  2. package/es/config/editor.config.es.js.map +1 -1
  3. package/es/config/i18n/en-us.es.js +4 -1
  4. package/es/config/i18n/en-us.es.js.map +1 -1
  5. package/es/config/i18n/zh-cn.es.js +4 -1
  6. package/es/config/i18n/zh-cn.es.js.map +1 -1
  7. package/es/core/fluent-editor.es.js +29 -4
  8. package/es/core/fluent-editor.es.js.map +1 -1
  9. package/es/fluent-editor.es.js +2 -11
  10. package/es/fluent-editor.es.js.map +1 -1
  11. package/es/formats/strike.es.js +1 -1
  12. package/es/formats/strike.es.js.map +1 -1
  13. package/es/index.es.js +3 -3
  14. package/es/index.es.js.map +1 -1
  15. package/es/modules/counter.es.js +2 -3
  16. package/es/modules/counter.es.js.map +1 -1
  17. package/es/modules/custom-clipboard.es.js +13 -1
  18. package/es/modules/custom-clipboard.es.js.map +1 -1
  19. package/es/modules/custom-image/blot-formatter.es.js +2 -2
  20. package/es/modules/custom-image/blot-formatter.es.js.map +1 -1
  21. package/es/modules/custom-image/index.es.js +1 -1
  22. package/es/modules/custom-image/preview/preview-modal.es.js +17 -6
  23. package/es/modules/custom-image/preview/preview-modal.es.js.map +1 -1
  24. package/es/modules/custom-image/specs/custom-image-spec.es.js.map +1 -1
  25. package/es/modules/custom-uploader.es.js.map +1 -1
  26. package/es/modules/file/modules/file-module.es.js.map +1 -1
  27. package/es/modules/flow-chart/i18n/index.es.js +3 -5
  28. package/es/modules/flow-chart/i18n/index.es.js.map +1 -1
  29. package/es/modules/flow-chart/modules/context-menu.es.js +10 -13
  30. package/es/modules/flow-chart/modules/context-menu.es.js.map +1 -1
  31. package/es/modules/flow-chart/modules/control-panel.es.js +13 -16
  32. package/es/modules/flow-chart/modules/control-panel.es.js.map +1 -1
  33. package/es/modules/index.es.js +2 -2
  34. package/es/modules/index.es.js.map +1 -1
  35. package/es/modules/link/modules/tooltip.es.js +42 -27
  36. package/es/modules/link/modules/tooltip.es.js.map +1 -1
  37. package/es/modules/mind-map/i18n/index.es.js +3 -5
  38. package/es/modules/mind-map/i18n/index.es.js.map +1 -1
  39. package/es/modules/mind-map/modules/context-menu.es.js +11 -11
  40. package/es/modules/mind-map/modules/context-menu.es.js.map +1 -1
  41. package/es/modules/mind-map/modules/control-panel.es.js +7 -9
  42. package/es/modules/mind-map/modules/control-panel.es.js.map +1 -1
  43. package/es/modules/shortcut-key/index.es.js +6 -6
  44. package/es/modules/shortcut-key/index.es.js.map +1 -1
  45. package/es/modules/table-up/index.es.js +23 -33
  46. package/es/modules/table-up/index.es.js.map +1 -1
  47. package/es/modules/toolbar/toolbar-tip.es.js +27 -5
  48. package/es/modules/toolbar/toolbar-tip.es.js.map +1 -1
  49. package/es/themes/snow.es.js +2 -2
  50. package/es/themes/snow.es.js.map +1 -1
  51. package/lib/config/editor.config.cjs.js +1 -1
  52. package/lib/config/editor.config.cjs.js.map +1 -1
  53. package/lib/config/i18n/en-us.cjs.js +4 -1
  54. package/lib/config/i18n/en-us.cjs.js.map +1 -1
  55. package/lib/config/i18n/zh-cn.cjs.js +4 -1
  56. package/lib/config/i18n/zh-cn.cjs.js.map +1 -1
  57. package/lib/core/fluent-editor.cjs.js +29 -4
  58. package/lib/core/fluent-editor.cjs.js.map +1 -1
  59. package/lib/fluent-editor.cjs.js +2 -11
  60. package/lib/fluent-editor.cjs.js.map +1 -1
  61. package/lib/formats/strike.cjs.js +1 -1
  62. package/lib/formats/strike.cjs.js.map +1 -1
  63. package/lib/index.cjs.js +16 -5
  64. package/lib/index.cjs.js.map +1 -1
  65. package/lib/modules/counter.cjs.js +2 -3
  66. package/lib/modules/counter.cjs.js.map +1 -1
  67. package/lib/modules/custom-clipboard.cjs.js +13 -1
  68. package/lib/modules/custom-clipboard.cjs.js.map +1 -1
  69. package/lib/modules/custom-image/blot-formatter.cjs.js +2 -2
  70. package/lib/modules/custom-image/blot-formatter.cjs.js.map +1 -1
  71. package/lib/modules/custom-image/index.cjs.js +1 -1
  72. package/lib/modules/custom-image/preview/preview-modal.cjs.js +17 -6
  73. package/lib/modules/custom-image/preview/preview-modal.cjs.js.map +1 -1
  74. package/lib/modules/custom-image/specs/custom-image-spec.cjs.js.map +1 -1
  75. package/lib/modules/custom-uploader.cjs.js.map +1 -1
  76. package/lib/modules/file/modules/file-module.cjs.js.map +1 -1
  77. package/lib/modules/flow-chart/i18n/index.cjs.js +3 -5
  78. package/lib/modules/flow-chart/i18n/index.cjs.js.map +1 -1
  79. package/lib/modules/flow-chart/modules/context-menu.cjs.js +10 -13
  80. package/lib/modules/flow-chart/modules/context-menu.cjs.js.map +1 -1
  81. package/lib/modules/flow-chart/modules/control-panel.cjs.js +13 -16
  82. package/lib/modules/flow-chart/modules/control-panel.cjs.js.map +1 -1
  83. package/lib/modules/index.cjs.js +14 -2
  84. package/lib/modules/index.cjs.js.map +1 -1
  85. package/lib/modules/link/modules/tooltip.cjs.js +42 -27
  86. package/lib/modules/link/modules/tooltip.cjs.js.map +1 -1
  87. package/lib/modules/mind-map/i18n/index.cjs.js +3 -5
  88. package/lib/modules/mind-map/i18n/index.cjs.js.map +1 -1
  89. package/lib/modules/mind-map/modules/context-menu.cjs.js +11 -11
  90. package/lib/modules/mind-map/modules/context-menu.cjs.js.map +1 -1
  91. package/lib/modules/mind-map/modules/control-panel.cjs.js +7 -9
  92. package/lib/modules/mind-map/modules/control-panel.cjs.js.map +1 -1
  93. package/lib/modules/shortcut-key/index.cjs.js +4 -4
  94. package/lib/modules/shortcut-key/index.cjs.js.map +1 -1
  95. package/lib/modules/table-up/index.cjs.js +23 -33
  96. package/lib/modules/table-up/index.cjs.js.map +1 -1
  97. package/lib/modules/toolbar/toolbar-tip.cjs.js +26 -4
  98. package/lib/modules/toolbar/toolbar-tip.cjs.js.map +1 -1
  99. package/lib/themes/snow.cjs.js +2 -2
  100. package/lib/themes/snow.cjs.js.map +1 -1
  101. package/package.json +3 -2
  102. package/style.css +149 -144
  103. package/types/config/editor.config.d.ts +4 -2
  104. package/types/config/i18n/en-us.d.ts +4 -1
  105. package/types/config/i18n/zh-cn.d.ts +4 -1
  106. package/types/config/types/editor-modules.interface.d.ts +3 -2
  107. package/types/core/fluent-editor.d.ts +1 -1
  108. package/types/modules/custom-clipboard.d.ts +2 -0
  109. package/types/modules/custom-image/index.d.ts +1 -1
  110. package/types/modules/custom-image/preview/preview-modal.d.ts +1 -0
  111. package/types/modules/flow-chart/i18n/index.d.ts +1 -1
  112. package/types/modules/index.d.ts +2 -1
  113. package/types/modules/link/modules/tooltip.d.ts +1 -0
  114. package/types/modules/mind-map/i18n/index.d.ts +1 -1
  115. package/types/modules/table-up/index.d.ts +3 -26
  116. package/es/modules/i18n.es.js +0 -62
  117. package/es/modules/i18n.es.js.map +0 -1
  118. package/lib/modules/i18n.cjs.js +0 -62
  119. package/lib/modules/i18n.cjs.js.map +0 -1
  120. package/types/modules/i18n.d.ts +0 -14
@@ -40,9 +40,11 @@ export declare const FULL_TOOLBAR: (({
40
40
  } | {
41
41
  background: any[];
42
42
  color?: undefined;
43
- })[] | {
43
+ })[] | ({
44
+ align: string[];
45
+ } | {
44
46
  align: string;
45
- }[] | {
47
+ })[] | {
46
48
  list: string;
47
49
  }[] | {
48
50
  script: string;
@@ -60,7 +60,10 @@ export declare const EN_US: {
60
60
  file: string;
61
61
  'mind-map': string;
62
62
  'flow-chart': string;
63
- link: string;
63
+ link: {
64
+ '': string;
65
+ 'enter-link': string;
66
+ };
64
67
  code: string;
65
68
  table: string;
66
69
  'table-up': string;
@@ -60,7 +60,10 @@ export declare const ZH_CN: {
60
60
  file: string;
61
61
  'mind-map': string;
62
62
  'flow-chart': string;
63
- link: string;
63
+ link: {
64
+ '': string;
65
+ 'enter-link': string;
66
+ };
64
67
  divider: string;
65
68
  code: string;
66
69
  table: string;
@@ -1,5 +1,6 @@
1
+ import { I18nOptions } from 'quill-i18n';
1
2
  import { ToolbarProps } from 'quill/modules/toolbar';
2
- import { I18NOptions, ICounterOption, MentionOption, ShortCutKeyInputOptions } from '../../modules';
3
+ import { ICounterOption, MentionOption, ShortCutKeyInputOptions } from '../../modules';
3
4
  import { BlotFormatterOptionsInput } from '../../modules/custom-image/options';
4
5
  import { FileUploaderOptions } from '../../modules/custom-uploader';
5
6
  import { EmojiModuleOptions } from '../../modules/emoji';
@@ -34,7 +35,7 @@ export interface IEditorModules {
34
35
  'uploader'?: boolean | Partial<FileUploaderOptions>;
35
36
  'shortcut-key'?: boolean | Partial<ShortCutKeyInputOptions>;
36
37
  'mention'?: boolean | MentionOption;
37
- 'i18n'?: boolean | Partial<I18NOptions>;
38
+ 'i18n'?: boolean | Partial<I18nOptions>;
38
39
  'counter'?: boolean | ICounterOption;
39
40
  'emoji'?: boolean | EmojiModuleOptions;
40
41
  'file'?: boolean;
@@ -8,6 +8,6 @@ declare class FluentEditor extends Quill {
8
8
  static register(...args: any[]): void;
9
9
  get lang(): string;
10
10
  constructor(container: HTMLElement | string, options?: IEditorConfig);
11
- getLangText(name: string): string;
11
+ getLangText(name: string, params?: Record<string, any>, defaultValue?: string): string;
12
12
  }
13
13
  export default FluentEditor;
@@ -3,6 +3,8 @@ import { default as FluentEditor } from '../fluent-editor';
3
3
  declare const Clipboard: typeof TypeClipboard;
4
4
  export declare class CustomClipboard extends Clipboard {
5
5
  quill: FluentEditor;
6
+ quill: FluentEditor;
7
+ constructor(quill: FluentEditor);
6
8
  prepareMatching(container: HTMLElement, nodeMatches: any): any[][];
7
9
  onCaptureCopy(e: any, isCut?: boolean): void;
8
10
  onCapturePaste(e: ClipboardEvent): void;
@@ -1,5 +1,5 @@
1
1
  export * from './actions';
2
2
  export * from './blot-formatter';
3
3
  export * from './image';
4
- export * from './specs';
5
4
  export * from './preview';
5
+ export * from './specs';
@@ -7,6 +7,7 @@ export declare class ImagePreviewModal {
7
7
  private overlay;
8
8
  private previewImage;
9
9
  private scaleTooltip;
10
+ private closeBtn;
10
11
  private currentScale;
11
12
  private minScale;
12
13
  private maxScale;
@@ -1 +1 @@
1
- export declare function registerFlowChartI18N(I18N: any): void;
1
+ export declare function registerFlowChartI18N(i18nModule: any): void;
@@ -7,7 +7,6 @@ export * from './divider';
7
7
  export * from './emoji';
8
8
  export * from './file';
9
9
  export * from './flow-chart';
10
- export * from './i18n';
11
10
  export * from './link';
12
11
  export * from './mathlive';
13
12
  export * from './mention';
@@ -16,3 +15,5 @@ export * from './shortcut-key';
16
15
  export * from './syntax';
17
16
  export * from './table-up';
18
17
  export * from './toolbar';
18
+ export * from 'quill-i18n';
19
+ export * from 'quill-shortcut-key';
@@ -19,6 +19,7 @@ export declare class LinkTooltip extends BaseTooltip {
19
19
  handleMouseLeave(): void;
20
20
  handleMouseEnter(event: MouseEvent): void;
21
21
  listen(): void;
22
+ bindRootEvents(): void;
22
23
  save(): void;
23
24
  position(reference: any): number;
24
25
  edit(mode: string, preview: any, range: any): void;
@@ -1 +1 @@
1
- export declare function registerMindMapI18N(I18N: any): void;
1
+ export declare function registerMindMapI18N(i18nModule: any): void;
@@ -4,31 +4,8 @@ export declare function generateTableUp(QuillTableUp: Constructor): {
4
4
  new (quill: FluentEditor, options: Partial<any>): {
5
5
  [x: string]: any;
6
6
  quill: FluentEditor;
7
- resolveTexts(options?: Record<string, string>): {
8
- fullCheckboxText: string;
9
- customBtnText: string;
10
- confirmText: string;
11
- cancelText: string;
12
- rowText: string;
13
- colText: string;
14
- notPositiveNumberError: string;
15
- custom: string;
16
- clear: string;
17
- transparent: string;
18
- perWidthInsufficient: string;
19
- CopyCell: string;
20
- CutCell: string;
21
- InsertTop: string;
22
- InsertRight: string;
23
- InsertBottom: string;
24
- InsertLeft: string;
25
- MergeCell: string;
26
- SplitCell: string;
27
- DeleteRow: string;
28
- DeleteColumn: string;
29
- DeleteTable: string;
30
- BackgroundColor: string;
31
- BorderColor: string;
32
- } & Record<string, string>;
7
+ resolveOptions(options?: Partial<any>): any;
8
+ resolveTexts(options?: Record<string, string> | ((key: string) => string)): any;
9
+ createTextResolver(options?: Record<string, string> | ((key: string) => string)): (key: string) => any;
33
10
  };
34
11
  };
@@ -1,62 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import "../config/index.es.js";
5
- import { isUndefined } from "../utils/is.es.js";
6
- import { defaultLanguage, CHANGE_LANGUAGE_EVENT } from "../config/editor.config.es.js";
7
- const langs = {};
8
- class I18N {
9
- constructor(quill, options) {
10
- __publicField(this, "options", {
11
- lang: ""
12
- });
13
- this.quill = quill;
14
- this.options = Object.assign({}, options, this.resolveLanguageOption(options || {}));
15
- Promise.resolve().then(() => this.changeLanguage(this.options, true));
16
- }
17
- static register(inputLangs, isCover = true) {
18
- for (const lang in inputLangs) {
19
- const texts = inputLangs[lang];
20
- if (isCover) {
21
- langs[lang] = texts;
22
- } else {
23
- if (!langs[lang]) langs[lang] = {};
24
- Object.assign(langs[lang], texts);
25
- }
26
- }
27
- }
28
- static parserText(text, lang) {
29
- var _a;
30
- const i18nPattern = /^_i18n"([^"]*)"/;
31
- const match = text.match(i18nPattern);
32
- let key = text;
33
- if (match) {
34
- key = match[1];
35
- }
36
- return ((_a = langs[lang]) == null ? void 0 : _a[key]) || key;
37
- }
38
- resolveLanguageOption(options) {
39
- if (isUndefined(options.lang)) {
40
- options.lang = defaultLanguage;
41
- }
42
- if (!(options.lang in langs)) {
43
- console.warn(`The language ${options.lang} is not supported. Use the default language: ${defaultLanguage}`);
44
- options.lang = defaultLanguage;
45
- }
46
- return {
47
- lang: options.lang
48
- };
49
- }
50
- changeLanguage(options, force = false) {
51
- const currentLang = this.options.lang;
52
- const langOps = this.resolveLanguageOption(options);
53
- if (langOps.lang === currentLang && !force) return;
54
- this.options.lang = langOps.lang;
55
- this.quill.emitter.emit(CHANGE_LANGUAGE_EVENT, this.options.lang, langs[langOps.lang]);
56
- }
57
- }
58
- export {
59
- I18N,
60
- I18N as default
61
- };
62
- //# sourceMappingURL=i18n.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"i18n.es.js","sources":["../../../src/modules/i18n.ts"],"sourcesContent":["import type FluentEditor from '../fluent-editor'\r\nimport { CHANGE_LANGUAGE_EVENT, defaultLanguage } from '../config'\r\nimport { isUndefined } from '../utils/is'\r\n\r\nconst langs: Record<string, Record<string, string>> = {}\r\n\r\nexport interface I18NOptions {\r\n lang: string\r\n}\r\nexport class I18N {\r\n static register(inputLangs: Record<string, Record<string, string>>, isCover: boolean = true) {\r\n for (const lang in inputLangs) {\r\n const texts = inputLangs[lang]\r\n if (isCover) {\r\n langs[lang] = texts\r\n }\r\n else {\r\n if (!langs[lang]) langs[lang] = {}\r\n Object.assign(langs[lang], texts)\r\n }\r\n }\r\n }\r\n\r\n static parserText(text: string, lang: string): string {\r\n const i18nPattern = /^_i18n\"([^\"]*)\"/\r\n const match = text.match(i18nPattern)\r\n let key = text\r\n if (match) {\r\n key = match[1]\r\n }\r\n return langs[lang]?.[key] || key\r\n }\r\n\r\n options: I18NOptions = {\r\n lang: '',\r\n }\r\n\r\n constructor(public quill: FluentEditor, options: Partial<I18NOptions>) {\r\n this.options = Object.assign({}, options, this.resolveLanguageOption(options || {}))\r\n // wait until all module registed\r\n Promise.resolve().then(() => this.changeLanguage(this.options, true))\r\n }\r\n\r\n resolveLanguageOption(options: Partial<I18NOptions>): I18NOptions {\r\n if (isUndefined(options.lang)) {\r\n options.lang = defaultLanguage\r\n }\r\n if (!(options.lang in langs)) {\r\n console.warn(`The language ${options.lang} is not supported. Use the default language: ${defaultLanguage}`)\r\n options.lang = defaultLanguage\r\n }\r\n return {\r\n lang: options.lang,\r\n }\r\n }\r\n\r\n changeLanguage(options: Partial<I18NOptions>, force: boolean = false) {\r\n const currentLang = this.options.lang\r\n const langOps = this.resolveLanguageOption(options)\r\n if (langOps.lang === currentLang && !force) return\r\n this.options.lang = langOps.lang\r\n this.quill.emitter.emit(CHANGE_LANGUAGE_EVENT, this.options.lang, langs[langOps.lang])\r\n }\r\n}\r\n\r\nexport default I18N\r\n"],"names":[],"mappings":";;;;;;AAIA,MAAM,QAAgD,CAAA;AAK/C,MAAM,KAAK;AAAA,EA4BhB,YAAmB,OAAqB,SAA+B;AAJvE,mCAAuB;AAAA,MACrB,MAAM;AAAA,IAAA;AAGW,SAAA,QAAA;AACjB,SAAK,UAAU,OAAO,OAAO,CAAA,GAAI,SAAS,KAAK,sBAAsB,WAAW,CAAA,CAAE,CAAC;AAEnF,YAAQ,UAAU,KAAK,MAAM,KAAK,eAAe,KAAK,SAAS,IAAI,CAAC;AAAA,EACtE;AAAA,EA/BA,OAAO,SAAS,YAAoD,UAAmB,MAAM;AAC3F,eAAW,QAAQ,YAAY;AAC7B,YAAM,QAAQ,WAAW,IAAI;AAC7B,UAAI,SAAS;AACX,cAAM,IAAI,IAAI;AAAA,MAChB,OACK;AACH,YAAI,CAAC,MAAM,IAAI,EAAG,OAAM,IAAI,IAAI,CAAA;AAChC,eAAO,OAAO,MAAM,IAAI,GAAG,KAAK;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO,WAAW,MAAc,MAAsB;;AACpD,UAAM,cAAc;AACpB,UAAM,QAAQ,KAAK,MAAM,WAAW;AACpC,QAAI,MAAM;AACV,QAAI,OAAO;AACT,YAAM,MAAM,CAAC;AAAA,IACf;AACA,aAAO,WAAM,IAAI,MAAV,mBAAc,SAAQ;AAAA,EAC/B;AAAA,EAYA,sBAAsB,SAA4C;AAChE,QAAI,YAAY,QAAQ,IAAI,GAAG;AAC7B,cAAQ,OAAO;AAAA,IACjB;AACA,QAAI,EAAE,QAAQ,QAAQ,QAAQ;AAC5B,cAAQ,KAAK,gBAAgB,QAAQ,IAAI,gDAAgD,eAAe,EAAE;AAC1G,cAAQ,OAAO;AAAA,IACjB;AACA,WAAO;AAAA,MACL,MAAM,QAAQ;AAAA,IAAA;AAAA,EAElB;AAAA,EAEA,eAAe,SAA+B,QAAiB,OAAO;AACpE,UAAM,cAAc,KAAK,QAAQ;AACjC,UAAM,UAAU,KAAK,sBAAsB,OAAO;AAClD,QAAI,QAAQ,SAAS,eAAe,CAAC,MAAO;AAC5C,SAAK,QAAQ,OAAO,QAAQ;AAC5B,SAAK,MAAM,QAAQ,KAAK,uBAAuB,KAAK,QAAQ,MAAM,MAAM,QAAQ,IAAI,CAAC;AAAA,EACvF;AACF;"}
@@ -1,62 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
6
- require("../config/index.cjs.js");
7
- const is = require("../utils/is.cjs.js");
8
- const editor_config = require("../config/editor.config.cjs.js");
9
- const langs = {};
10
- class I18N {
11
- constructor(quill, options) {
12
- __publicField(this, "options", {
13
- lang: ""
14
- });
15
- this.quill = quill;
16
- this.options = Object.assign({}, options, this.resolveLanguageOption(options || {}));
17
- Promise.resolve().then(() => this.changeLanguage(this.options, true));
18
- }
19
- static register(inputLangs, isCover = true) {
20
- for (const lang in inputLangs) {
21
- const texts = inputLangs[lang];
22
- if (isCover) {
23
- langs[lang] = texts;
24
- } else {
25
- if (!langs[lang]) langs[lang] = {};
26
- Object.assign(langs[lang], texts);
27
- }
28
- }
29
- }
30
- static parserText(text, lang) {
31
- var _a;
32
- const i18nPattern = /^_i18n"([^"]*)"/;
33
- const match = text.match(i18nPattern);
34
- let key = text;
35
- if (match) {
36
- key = match[1];
37
- }
38
- return ((_a = langs[lang]) == null ? void 0 : _a[key]) || key;
39
- }
40
- resolveLanguageOption(options) {
41
- if (is.isUndefined(options.lang)) {
42
- options.lang = editor_config.defaultLanguage;
43
- }
44
- if (!(options.lang in langs)) {
45
- console.warn(`The language ${options.lang} is not supported. Use the default language: ${editor_config.defaultLanguage}`);
46
- options.lang = editor_config.defaultLanguage;
47
- }
48
- return {
49
- lang: options.lang
50
- };
51
- }
52
- changeLanguage(options, force = false) {
53
- const currentLang = this.options.lang;
54
- const langOps = this.resolveLanguageOption(options);
55
- if (langOps.lang === currentLang && !force) return;
56
- this.options.lang = langOps.lang;
57
- this.quill.emitter.emit(editor_config.CHANGE_LANGUAGE_EVENT, this.options.lang, langs[langOps.lang]);
58
- }
59
- }
60
- exports.I18N = I18N;
61
- exports.default = I18N;
62
- //# sourceMappingURL=i18n.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"i18n.cjs.js","sources":["../../../src/modules/i18n.ts"],"sourcesContent":["import type FluentEditor from '../fluent-editor'\r\nimport { CHANGE_LANGUAGE_EVENT, defaultLanguage } from '../config'\r\nimport { isUndefined } from '../utils/is'\r\n\r\nconst langs: Record<string, Record<string, string>> = {}\r\n\r\nexport interface I18NOptions {\r\n lang: string\r\n}\r\nexport class I18N {\r\n static register(inputLangs: Record<string, Record<string, string>>, isCover: boolean = true) {\r\n for (const lang in inputLangs) {\r\n const texts = inputLangs[lang]\r\n if (isCover) {\r\n langs[lang] = texts\r\n }\r\n else {\r\n if (!langs[lang]) langs[lang] = {}\r\n Object.assign(langs[lang], texts)\r\n }\r\n }\r\n }\r\n\r\n static parserText(text: string, lang: string): string {\r\n const i18nPattern = /^_i18n\"([^\"]*)\"/\r\n const match = text.match(i18nPattern)\r\n let key = text\r\n if (match) {\r\n key = match[1]\r\n }\r\n return langs[lang]?.[key] || key\r\n }\r\n\r\n options: I18NOptions = {\r\n lang: '',\r\n }\r\n\r\n constructor(public quill: FluentEditor, options: Partial<I18NOptions>) {\r\n this.options = Object.assign({}, options, this.resolveLanguageOption(options || {}))\r\n // wait until all module registed\r\n Promise.resolve().then(() => this.changeLanguage(this.options, true))\r\n }\r\n\r\n resolveLanguageOption(options: Partial<I18NOptions>): I18NOptions {\r\n if (isUndefined(options.lang)) {\r\n options.lang = defaultLanguage\r\n }\r\n if (!(options.lang in langs)) {\r\n console.warn(`The language ${options.lang} is not supported. Use the default language: ${defaultLanguage}`)\r\n options.lang = defaultLanguage\r\n }\r\n return {\r\n lang: options.lang,\r\n }\r\n }\r\n\r\n changeLanguage(options: Partial<I18NOptions>, force: boolean = false) {\r\n const currentLang = this.options.lang\r\n const langOps = this.resolveLanguageOption(options)\r\n if (langOps.lang === currentLang && !force) return\r\n this.options.lang = langOps.lang\r\n this.quill.emitter.emit(CHANGE_LANGUAGE_EVENT, this.options.lang, langs[langOps.lang])\r\n }\r\n}\r\n\r\nexport default I18N\r\n"],"names":["isUndefined","defaultLanguage","CHANGE_LANGUAGE_EVENT"],"mappings":";;;;;;;;AAIA,MAAM,QAAgD,CAAA;AAK/C,MAAM,KAAK;AAAA,EA4BhB,YAAmB,OAAqB,SAA+B;AAJvE,mCAAuB;AAAA,MACrB,MAAM;AAAA,IAAA;AAGW,SAAA,QAAA;AACjB,SAAK,UAAU,OAAO,OAAO,CAAA,GAAI,SAAS,KAAK,sBAAsB,WAAW,CAAA,CAAE,CAAC;AAEnF,YAAQ,UAAU,KAAK,MAAM,KAAK,eAAe,KAAK,SAAS,IAAI,CAAC;AAAA,EACtE;AAAA,EA/BA,OAAO,SAAS,YAAoD,UAAmB,MAAM;AAC3F,eAAW,QAAQ,YAAY;AAC7B,YAAM,QAAQ,WAAW,IAAI;AAC7B,UAAI,SAAS;AACX,cAAM,IAAI,IAAI;AAAA,MAChB,OACK;AACH,YAAI,CAAC,MAAM,IAAI,EAAG,OAAM,IAAI,IAAI,CAAA;AAChC,eAAO,OAAO,MAAM,IAAI,GAAG,KAAK;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO,WAAW,MAAc,MAAsB;;AACpD,UAAM,cAAc;AACpB,UAAM,QAAQ,KAAK,MAAM,WAAW;AACpC,QAAI,MAAM;AACV,QAAI,OAAO;AACT,YAAM,MAAM,CAAC;AAAA,IACf;AACA,aAAO,WAAM,IAAI,MAAV,mBAAc,SAAQ;AAAA,EAC/B;AAAA,EAYA,sBAAsB,SAA4C;AAChE,QAAIA,GAAAA,YAAY,QAAQ,IAAI,GAAG;AAC7B,cAAQ,OAAOC,cAAAA;AAAAA,IACjB;AACA,QAAI,EAAE,QAAQ,QAAQ,QAAQ;AAC5B,cAAQ,KAAK,gBAAgB,QAAQ,IAAI,gDAAgDA,cAAAA,eAAe,EAAE;AAC1G,cAAQ,OAAOA,cAAAA;AAAAA,IACjB;AACA,WAAO;AAAA,MACL,MAAM,QAAQ;AAAA,IAAA;AAAA,EAElB;AAAA,EAEA,eAAe,SAA+B,QAAiB,OAAO;AACpE,UAAM,cAAc,KAAK,QAAQ;AACjC,UAAM,UAAU,KAAK,sBAAsB,OAAO;AAClD,QAAI,QAAQ,SAAS,eAAe,CAAC,MAAO;AAC5C,SAAK,QAAQ,OAAO,QAAQ;AAC5B,SAAK,MAAM,QAAQ,KAAKC,cAAAA,uBAAuB,KAAK,QAAQ,MAAM,MAAM,QAAQ,IAAI,CAAC;AAAA,EACvF;AACF;;;"}
@@ -1,14 +0,0 @@
1
- import { default as FluentEditor } from '../fluent-editor';
2
- export interface I18NOptions {
3
- lang: string;
4
- }
5
- export declare class I18N {
6
- quill: FluentEditor;
7
- static register(inputLangs: Record<string, Record<string, string>>, isCover?: boolean): void;
8
- static parserText(text: string, lang: string): string;
9
- options: I18NOptions;
10
- constructor(quill: FluentEditor, options: Partial<I18NOptions>);
11
- resolveLanguageOption(options: Partial<I18NOptions>): I18NOptions;
12
- changeLanguage(options: Partial<I18NOptions>, force?: boolean): void;
13
- }
14
- export default I18N;