@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.
- 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,5 +1,6 @@
|
|
|
1
|
+
import { I18nOptions } from 'quill-i18n';
|
|
1
2
|
import { ToolbarProps } from 'quill/modules/toolbar';
|
|
2
|
-
import {
|
|
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<
|
|
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 +1 @@
|
|
|
1
|
-
export declare function registerFlowChartI18N(
|
|
1
|
+
export declare function registerFlowChartI18N(i18nModule: any): void;
|
package/types/modules/index.d.ts
CHANGED
|
@@ -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(
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
};
|
package/es/modules/i18n.es.js
DELETED
|
@@ -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;"}
|
package/lib/modules/i18n.cjs.js
DELETED
|
@@ -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;;;"}
|
package/types/modules/i18n.d.ts
DELETED
|
@@ -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;
|