@worktile/theia 18.0.14 → 18.0.16

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 (89) hide show
  1. package/components/toolbar-dropdown/toolbar-dropdown.component.d.ts +1 -2
  2. package/components/toolbar-item/toolbar-item.component.d.ts +1 -2
  3. package/constants/plugin-menu.d.ts +3 -1
  4. package/core/toolbar-item/base-toolbar-item.d.ts +3 -3
  5. package/editor.component.d.ts +1 -0
  6. package/esm2022/components/conversion-hint/conversion-hint.component.mjs +4 -4
  7. package/esm2022/components/plugin-menu/plugin-menu.component.mjs +7 -7
  8. package/esm2022/components/toolbar-dropdown/toolbar-dropdown.component.mjs +7 -8
  9. package/esm2022/components/toolbar-group/toolbar-group.component.mjs +3 -3
  10. package/esm2022/components/toolbar-item/toolbar-item.component.mjs +7 -8
  11. package/esm2022/constants/plugin-menu.mjs +15 -13
  12. package/esm2022/core/toolbar-item/base-toolbar-item.mjs +11 -11
  13. package/esm2022/editor.component.mjs +7 -5
  14. package/esm2022/i18n/i18n.mjs +1 -1
  15. package/esm2022/i18n/i18n.service.mjs +3 -6
  16. package/esm2022/i18n/locales/de-de.mjs +4 -2
  17. package/esm2022/i18n/locales/en-us.mjs +4 -2
  18. package/esm2022/i18n/locales/ja-jp.mjs +4 -2
  19. package/esm2022/i18n/locales/ru-ru.mjs +4 -2
  20. package/esm2022/i18n/locales/zh-hans.mjs +4 -2
  21. package/esm2022/i18n/locales/zh-hant.mjs +4 -2
  22. package/esm2022/interfaces/plugins/plugin-menu.mjs +1 -1
  23. package/esm2022/interfaces/toolbar.mjs +1 -1
  24. package/esm2022/plugins/align/align.plugin.mjs +7 -11
  25. package/esm2022/plugins/blockquote/blockquote.plugin.mjs +7 -10
  26. package/esm2022/plugins/code/code.component.mjs +3 -3
  27. package/esm2022/plugins/code/code.plugin.mjs +7 -10
  28. package/esm2022/plugins/color/color.plugin.mjs +5 -7
  29. package/esm2022/plugins/color/toolbar-item.component.mjs +8 -9
  30. package/esm2022/plugins/common/common.plugin.mjs +4 -5
  31. package/esm2022/plugins/font-size/font-size.editor.mjs +4 -4
  32. package/esm2022/plugins/heading/heading.plugin.mjs +21 -35
  33. package/esm2022/plugins/hr/hr.plugin.mjs +7 -10
  34. package/esm2022/plugins/image/image.component.mjs +4 -4
  35. package/esm2022/plugins/image/image.plugin.mjs +7 -10
  36. package/esm2022/plugins/indent/indent.plugin.mjs +5 -7
  37. package/esm2022/plugins/index.mjs +20 -20
  38. package/esm2022/plugins/inline-code/inline-code.plugin.mjs +4 -5
  39. package/esm2022/plugins/link/edit/link-edit.component.mjs +4 -4
  40. package/esm2022/plugins/link/link.plugin.mjs +7 -10
  41. package/esm2022/plugins/list/list.plugin.mjs +11 -17
  42. package/esm2022/plugins/mark/mark.plugin.mjs +7 -11
  43. package/esm2022/plugins/paint-format/paint-format.editor.mjs +7 -11
  44. package/esm2022/plugins/table/components/toolbar/table-options.component.mjs +4 -4
  45. package/esm2022/plugins/table/components/toolbar/table-toolbar.component.mjs +4 -4
  46. package/esm2022/plugins/table/table.editor.mjs +2 -2
  47. package/esm2022/plugins/table/table.plugin.mjs +7 -10
  48. package/esm2022/plugins/table/toolbar-item.component.mjs +7 -8
  49. package/esm2022/plugins/todo-item/todo-item.plugin.mjs +7 -10
  50. package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +13 -8
  51. package/esm2022/plugins/vertical-align/vertical-align.editor.mjs +12 -12
  52. package/esm2022/services/table-contextmenu.service.mjs +4 -4
  53. package/esm2022/test/basic/basic.component.mjs +10 -8
  54. package/fesm2022/worktile-theia.mjs +237 -277
  55. package/fesm2022/worktile-theia.mjs.map +1 -1
  56. package/i18n/i18n.d.ts +2 -0
  57. package/i18n/i18n.service.d.ts +1 -2
  58. package/i18n/locales/de-de.d.ts +2 -0
  59. package/i18n/locales/en-us.d.ts +2 -0
  60. package/i18n/locales/ja-jp.d.ts +2 -0
  61. package/i18n/locales/ru-ru.d.ts +2 -0
  62. package/i18n/locales/zh-hans.d.ts +2 -0
  63. package/i18n/locales/zh-hant.d.ts +2 -0
  64. package/interfaces/plugins/plugin-menu.d.ts +0 -3
  65. package/interfaces/toolbar.d.ts +0 -1
  66. package/package.json +1 -1
  67. package/plugins/align/align.plugin.d.ts +3 -1
  68. package/plugins/blockquote/blockquote.plugin.d.ts +3 -1
  69. package/plugins/code/code.plugin.d.ts +3 -1
  70. package/plugins/color/color.plugin.d.ts +3 -1
  71. package/plugins/color/toolbar-item.component.d.ts +1 -2
  72. package/plugins/common/common.plugin.d.ts +3 -1
  73. package/plugins/font-size/font-size.editor.d.ts +3 -1
  74. package/plugins/heading/heading.plugin.d.ts +3 -1
  75. package/plugins/hr/hr.plugin.d.ts +3 -1
  76. package/plugins/image/image.plugin.d.ts +3 -1
  77. package/plugins/indent/indent.plugin.d.ts +3 -1
  78. package/plugins/index.d.ts +3 -1
  79. package/plugins/inline-code/inline-code.plugin.d.ts +3 -1
  80. package/plugins/link/link.plugin.d.ts +3 -1
  81. package/plugins/list/list.plugin.d.ts +3 -1
  82. package/plugins/mark/mark.plugin.d.ts +3 -1
  83. package/plugins/paint-format/paint-format.editor.d.ts +3 -1
  84. package/plugins/table/table.plugin.d.ts +3 -1
  85. package/plugins/table/toolbar-item.component.d.ts +1 -2
  86. package/plugins/todo-item/todo-item.plugin.d.ts +3 -1
  87. package/plugins/vertical-align/toolbar-item.component.d.ts +4 -4
  88. package/plugins/vertical-align/vertical-align.editor.d.ts +3 -1
  89. package/test/basic/basic.component.d.ts +4 -0
@@ -341,18 +341,20 @@ const ToolbarMoreGroup = {
341
341
  icon: 'more'
342
342
  };
343
343
 
344
- const DefaultPluginMenu = [
345
- ...STANDARD_HEADING_TYPES,
346
- ElementKinds.numberedList,
347
- ElementKinds.bulletedList,
348
- ElementKinds.link,
349
- { groupName: '基础', translateKey: 'base' },
350
- ElementKinds.image,
351
- ElementKinds.table,
352
- ElementKinds.blockquote,
353
- ElementKinds.hr,
354
- ElementKinds.code
355
- ];
344
+ function getTheDefaultPluginMenu(locale) {
345
+ return [
346
+ ...STANDARD_HEADING_TYPES,
347
+ ElementKinds.numberedList,
348
+ ElementKinds.bulletedList,
349
+ ElementKinds.link,
350
+ { groupName: locale().base },
351
+ ElementKinds.image,
352
+ ElementKinds.table,
353
+ ElementKinds.blockquote,
354
+ ElementKinds.hr,
355
+ ElementKinds.code
356
+ ];
357
+ }
356
358
  var ThePluginMenuItemType;
357
359
  (function (ThePluginMenuItemType) {
358
360
  ThePluginMenuItemType["icon"] = "iconMenu";
@@ -2460,12 +2462,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2460
2462
  providedIn: 'root'
2461
2463
  }]
2462
2464
  }] });
2463
- function injectLocale() {
2464
- return inject(TheI18nService).getLocale();
2465
- }
2466
- function injectTranslations() {
2465
+ function injectTranslations(theI18nService) {
2467
2466
  return computed(() => {
2468
- const locale = injectLocale();
2467
+ const locale = theI18nService.getLocale();
2469
2468
  return locale().translations;
2470
2469
  });
2471
2470
  }
@@ -2565,7 +2564,9 @@ var zhHansLocale = {
2565
2564
  paintFormat: '格式刷',
2566
2565
  cleanFormat: '清除格式',
2567
2566
  checkItem: '待办事项',
2568
- checkItemDesc: '插入待办事项'
2567
+ checkItemDesc: '插入待办事项',
2568
+ more: '更多',
2569
+ fontSize: '字号'
2569
2570
  }
2570
2571
  };
2571
2572
 
@@ -2664,7 +2665,9 @@ var zhHantLocale = {
2664
2665
  paintFormat: '格式刷',
2665
2666
  cleanFormat: '清除格式',
2666
2667
  checkItem: '待辦事項',
2667
- checkItemDesc: '插入待辦事項'
2668
+ checkItemDesc: '插入待辦事項',
2669
+ more: '更多',
2670
+ fontSize: '字號'
2668
2671
  }
2669
2672
  };
2670
2673
 
@@ -2763,7 +2766,9 @@ var enUsLocale = {
2763
2766
  paintFormat: 'Format Painter',
2764
2767
  cleanFormat: 'Clear Format',
2765
2768
  checkItem: 'Todo Item',
2766
- checkItemDesc: 'Insert todo item'
2769
+ checkItemDesc: 'Insert todo item',
2770
+ more: 'More',
2771
+ fontSize: 'Font Size'
2767
2772
  }
2768
2773
  };
2769
2774
 
@@ -2862,7 +2867,9 @@ var jaJpLocale = {
2862
2867
  paintFormat: '書式のコピー',
2863
2868
  cleanFormat: '書式をクリア',
2864
2869
  checkItem: 'タスク',
2865
- checkItemDesc: 'タスクを挿入'
2870
+ checkItemDesc: 'タスクを挿入',
2871
+ more: 'もっと見る',
2872
+ fontSize: 'フォントサイズ'
2866
2873
  }
2867
2874
  };
2868
2875
 
@@ -2961,7 +2968,9 @@ var deDeLocale = {
2961
2968
  paintFormat: 'Format übertragen',
2962
2969
  cleanFormat: 'Format löschen',
2963
2970
  checkItem: 'Aufgabe',
2964
- checkItemDesc: 'Aufgabe einfügen'
2971
+ checkItemDesc: 'Aufgabe einfügen',
2972
+ more: 'Mehr',
2973
+ fontSize: 'Schriftgröße'
2965
2974
  }
2966
2975
  };
2967
2976
 
@@ -3060,7 +3069,9 @@ var ruRuLocale = {
3060
3069
  paintFormat: 'Формат по образцу',
3061
3070
  cleanFormat: 'Очистить формат',
3062
3071
  checkItem: 'Задача',
3063
- checkItemDesc: 'Вставить задачу'
3072
+ checkItemDesc: 'Вставить задачу',
3073
+ more: 'Еще',
3074
+ fontSize: 'Размер шрифта'
3064
3075
  }
3065
3076
  };
3066
3077
 
@@ -3077,9 +3088,9 @@ class TheBaseToolbarItem {
3077
3088
  get activeState() {
3078
3089
  return this.active;
3079
3090
  }
3080
- constructor(i18n) {
3091
+ constructor() {
3081
3092
  this.class = true;
3082
- this.locale = signal(i18n.getLocale()().translations);
3093
+ this.locale = injectTranslations(inject(TheI18nService));
3083
3094
  }
3084
3095
  execute(event) {
3085
3096
  event.preventDefault();
@@ -3100,12 +3111,12 @@ class TheBaseToolbarItem {
3100
3111
  this.active = false;
3101
3112
  }
3102
3113
  }
3103
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheBaseToolbarItem, deps: [{ token: TheI18nService }], target: i0.ɵɵFactoryTarget.Directive }); }
3114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheBaseToolbarItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3104
3115
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TheBaseToolbarItem, inputs: { toolbarItem: "toolbarItem", editor: "editor", itemMousedownHandle: "itemMousedownHandle" }, host: { properties: { "class.the-toolbar-item": "this.class", "class.disabled": "this.disabledState", "class.active": "this.activeState" } }, ngImport: i0 }); }
3105
3116
  }
3106
3117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheBaseToolbarItem, decorators: [{
3107
3118
  type: Directive
3108
- }], ctorParameters: () => [{ type: TheI18nService }], propDecorators: { toolbarItem: [{
3119
+ }], ctorParameters: () => [], propDecorators: { toolbarItem: [{
3109
3120
  type: Input
3110
3121
  }], editor: [{
3111
3122
  type: Input
@@ -3126,8 +3137,8 @@ class TheBaseToolbarDropdown extends TheBaseToolbarItem {
3126
3137
  const activeItem = this.dropdownItemKey && this.menus.find(item => item.key === this.dropdownItemKey);
3127
3138
  return activeItem ? activeItem : this.menus[0];
3128
3139
  }
3129
- constructor(i18n) {
3130
- super(i18n);
3140
+ constructor() {
3141
+ super();
3131
3142
  this.mode = DropdownMode.text;
3132
3143
  }
3133
3144
  selectionChange(editor) {
@@ -3141,12 +3152,12 @@ class TheBaseToolbarDropdown extends TheBaseToolbarItem {
3141
3152
  this.activeMenuItem = activeItem ? activeItem : this.defaultDropdownItem;
3142
3153
  }
3143
3154
  }
3144
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheBaseToolbarDropdown, deps: [{ token: TheI18nService }], target: i0.ɵɵFactoryTarget.Directive }); }
3155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheBaseToolbarDropdown, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3145
3156
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TheBaseToolbarDropdown, inputs: { menus: "menus", mode: "mode", dropdownItemKey: "dropdownItemKey" }, usesInheritance: true, ngImport: i0 }); }
3146
3157
  }
3147
3158
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheBaseToolbarDropdown, decorators: [{
3148
3159
  type: Directive
3149
- }], ctorParameters: () => [{ type: TheI18nService }], propDecorators: { menus: [{
3160
+ }], ctorParameters: () => [], propDecorators: { menus: [{
3150
3161
  type: Input
3151
3162
  }], mode: [{
3152
3163
  type: Input
@@ -3360,8 +3371,8 @@ class TheToolbarDropdown extends TheBaseToolbarDropdown {
3360
3371
  get activeDropdown() {
3361
3372
  return this.toolbarItem.dropdownFixedIcon && !!this.activeKeys.length;
3362
3373
  }
3363
- constructor(elementRef, thyPopover, viewContainerRef, overlay, i18n) {
3364
- super(i18n);
3374
+ constructor(elementRef, thyPopover, viewContainerRef, overlay) {
3375
+ super();
3365
3376
  this.elementRef = elementRef;
3366
3377
  this.thyPopover = thyPopover;
3367
3378
  this.viewContainerRef = viewContainerRef;
@@ -3442,8 +3453,8 @@ class TheToolbarDropdown extends TheBaseToolbarDropdown {
3442
3453
  this.dropdownPopoverRef?.close();
3443
3454
  }
3444
3455
  }
3445
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheToolbarDropdown, deps: [{ token: i0.ElementRef }, { token: i1.ThyPopover }, { token: i0.ViewContainerRef }, { token: i2.Overlay }, { token: TheI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
3446
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheToolbarDropdown, isStandalone: true, selector: "the-toolbar-dropdown", host: { properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "iconModeTemplate", first: true, predicate: ["iconModeTemplate"], descendants: true, static: true }, { propertyName: "textModeTemplate", first: true, predicate: ["textModeTemplate"], descendants: true, static: true }, { propertyName: "dropdownTemplate", first: true, predicate: ["dropdownTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<a\n *ngIf=\"mode === dropdownMode.icon\"\n href=\"javascript:;\"\n class=\"icon-mode\"\n thyAction\n [thyActionIcon]=\"activeIcon\"\n [thyActionActive]=\"activeDropdown\"\n (mousedown)=\"preventDefault($event)\"\n (click)=\"toggleDropdown($event)\"\n>\n <thy-icon *ngIf=\"!toolbarItem.isHideDropdownActionIcon\" class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n</a>\n<a\n *ngIf=\"mode !== dropdownMode.icon\"\n href=\"javascript:;\"\n class=\"text-mode\"\n thyAction\n (mousedown)=\"preventDefault($event)\"\n (click)=\"toggleDropdown($event)\"\n>\n <span class=\"show-text\">{{ locale()[activeMenuItem?.translateKey] ?? activeMenuItem?.name }}</span>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n</a>\n\n<ng-template #dropdownTemplate>\n <div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menu of menus\">\n <a\n *ngIf=\"menu.key !== 'split'\"\n class=\"d-flex justify-content-between text-secondary\"\n href=\"javascript:;\"\n thyDropdownMenuItem\n [ngStyle]=\"menu?.styles\"\n [thyDropdownMenuItemActive]=\"activeKeys.includes(menu.key)\"\n (mousedown)=\"preventDefault($event)\"\n (click)=\"itemMousedown($event, menu)\"\n >\n <div class=\"d-flex align-items-center\">\n <thy-icon\n class=\"text-secondary\"\n *ngIf=\"menu?.icon && mode === dropdownMode.icon\"\n thyDropdownMenuItemIcon\n [thyIconName]=\"menu.icon\"\n ></thy-icon>\n <span class=\"text-body\" *ngIf=\"menu?.name\" thyDropdownMenuItemName>{{ locale()[menu?.translateKey] ?? menu.name }}</span>\n </div>\n <div class=\"menu-item-right font-size-sm text-muted\" *ngIf=\"menu?.shortcutKey\">{{ menu.shortcutKey }}</div>\n </a>\n <thy-dropdown-menu-divider *ngIf=\"menu.key === 'split'\"></thy-dropdown-menu-divider>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "component", type: ThyDropdownMenuDivider, selector: "thy-dropdown-menu-divider" }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: ThyDropdownMenuItemActiveDirective, selector: "[thyDropdownMenuItemActive]", inputs: ["thyDropdownMenuItemActive"] }] }); }
3456
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheToolbarDropdown, deps: [{ token: i0.ElementRef }, { token: i1.ThyPopover }, { token: i0.ViewContainerRef }, { token: i2.Overlay }], target: i0.ɵɵFactoryTarget.Component }); }
3457
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheToolbarDropdown, isStandalone: true, selector: "the-toolbar-dropdown", host: { properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "iconModeTemplate", first: true, predicate: ["iconModeTemplate"], descendants: true, static: true }, { propertyName: "textModeTemplate", first: true, predicate: ["textModeTemplate"], descendants: true, static: true }, { propertyName: "dropdownTemplate", first: true, predicate: ["dropdownTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<a\n *ngIf=\"mode === dropdownMode.icon\"\n href=\"javascript:;\"\n class=\"icon-mode\"\n thyAction\n [thyActionIcon]=\"activeIcon\"\n [thyActionActive]=\"activeDropdown\"\n (mousedown)=\"preventDefault($event)\"\n (click)=\"toggleDropdown($event)\"\n>\n <thy-icon *ngIf=\"!toolbarItem.isHideDropdownActionIcon\" class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n</a>\n<a\n *ngIf=\"mode !== dropdownMode.icon\"\n href=\"javascript:;\"\n class=\"text-mode\"\n thyAction\n (mousedown)=\"preventDefault($event)\"\n (click)=\"toggleDropdown($event)\"\n>\n <span class=\"show-text\">{{ activeMenuItem?.name }}</span>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n</a>\n\n<ng-template #dropdownTemplate>\n <div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menu of menus\">\n <a\n *ngIf=\"menu.key !== 'split'\"\n class=\"d-flex justify-content-between text-secondary\"\n href=\"javascript:;\"\n thyDropdownMenuItem\n [ngStyle]=\"menu?.styles\"\n [thyDropdownMenuItemActive]=\"activeKeys.includes(menu.key)\"\n (mousedown)=\"preventDefault($event)\"\n (click)=\"itemMousedown($event, menu)\"\n >\n <div class=\"d-flex align-items-center\">\n <thy-icon\n class=\"text-secondary\"\n *ngIf=\"menu?.icon && mode === dropdownMode.icon\"\n thyDropdownMenuItemIcon\n [thyIconName]=\"menu.icon\"\n ></thy-icon>\n <span class=\"text-body\" *ngIf=\"menu?.name\" thyDropdownMenuItemName>{{ menu.name }}</span>\n </div>\n <div class=\"menu-item-right font-size-sm text-muted\" *ngIf=\"menu?.shortcutKey\">{{ menu.shortcutKey }}</div>\n </a>\n <thy-dropdown-menu-divider *ngIf=\"menu.key === 'split'\"></thy-dropdown-menu-divider>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "component", type: ThyDropdownMenuDivider, selector: "thy-dropdown-menu-divider" }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: ThyDropdownMenuItemActiveDirective, selector: "[thyDropdownMenuItemActive]", inputs: ["thyDropdownMenuItemActive"] }] }); }
3447
3458
  }
3448
3459
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheToolbarDropdown, decorators: [{
3449
3460
  type: Component,
@@ -3458,8 +3469,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3458
3469
  ThyDropdownMenuItemNameDirective,
3459
3470
  ThyDropdownMenuItemIconDirective,
3460
3471
  ThyDropdownMenuItemActiveDirective
3461
- ], template: "<a\n *ngIf=\"mode === dropdownMode.icon\"\n href=\"javascript:;\"\n class=\"icon-mode\"\n thyAction\n [thyActionIcon]=\"activeIcon\"\n [thyActionActive]=\"activeDropdown\"\n (mousedown)=\"preventDefault($event)\"\n (click)=\"toggleDropdown($event)\"\n>\n <thy-icon *ngIf=\"!toolbarItem.isHideDropdownActionIcon\" class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n</a>\n<a\n *ngIf=\"mode !== dropdownMode.icon\"\n href=\"javascript:;\"\n class=\"text-mode\"\n thyAction\n (mousedown)=\"preventDefault($event)\"\n (click)=\"toggleDropdown($event)\"\n>\n <span class=\"show-text\">{{ locale()[activeMenuItem?.translateKey] ?? activeMenuItem?.name }}</span>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n</a>\n\n<ng-template #dropdownTemplate>\n <div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menu of menus\">\n <a\n *ngIf=\"menu.key !== 'split'\"\n class=\"d-flex justify-content-between text-secondary\"\n href=\"javascript:;\"\n thyDropdownMenuItem\n [ngStyle]=\"menu?.styles\"\n [thyDropdownMenuItemActive]=\"activeKeys.includes(menu.key)\"\n (mousedown)=\"preventDefault($event)\"\n (click)=\"itemMousedown($event, menu)\"\n >\n <div class=\"d-flex align-items-center\">\n <thy-icon\n class=\"text-secondary\"\n *ngIf=\"menu?.icon && mode === dropdownMode.icon\"\n thyDropdownMenuItemIcon\n [thyIconName]=\"menu.icon\"\n ></thy-icon>\n <span class=\"text-body\" *ngIf=\"menu?.name\" thyDropdownMenuItemName>{{ locale()[menu?.translateKey] ?? menu.name }}</span>\n </div>\n <div class=\"menu-item-right font-size-sm text-muted\" *ngIf=\"menu?.shortcutKey\">{{ menu.shortcutKey }}</div>\n </a>\n <thy-dropdown-menu-divider *ngIf=\"menu.key === 'split'\"></thy-dropdown-menu-divider>\n </ng-container>\n </div>\n</ng-template>\n" }]
3462
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ThyPopover }, { type: i0.ViewContainerRef }, { type: i2.Overlay }, { type: TheI18nService }], propDecorators: { className: [{
3472
+ ], template: "<a\n *ngIf=\"mode === dropdownMode.icon\"\n href=\"javascript:;\"\n class=\"icon-mode\"\n thyAction\n [thyActionIcon]=\"activeIcon\"\n [thyActionActive]=\"activeDropdown\"\n (mousedown)=\"preventDefault($event)\"\n (click)=\"toggleDropdown($event)\"\n>\n <thy-icon *ngIf=\"!toolbarItem.isHideDropdownActionIcon\" class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n</a>\n<a\n *ngIf=\"mode !== dropdownMode.icon\"\n href=\"javascript:;\"\n class=\"text-mode\"\n thyAction\n (mousedown)=\"preventDefault($event)\"\n (click)=\"toggleDropdown($event)\"\n>\n <span class=\"show-text\">{{ activeMenuItem?.name }}</span>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n</a>\n\n<ng-template #dropdownTemplate>\n <div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menu of menus\">\n <a\n *ngIf=\"menu.key !== 'split'\"\n class=\"d-flex justify-content-between text-secondary\"\n href=\"javascript:;\"\n thyDropdownMenuItem\n [ngStyle]=\"menu?.styles\"\n [thyDropdownMenuItemActive]=\"activeKeys.includes(menu.key)\"\n (mousedown)=\"preventDefault($event)\"\n (click)=\"itemMousedown($event, menu)\"\n >\n <div class=\"d-flex align-items-center\">\n <thy-icon\n class=\"text-secondary\"\n *ngIf=\"menu?.icon && mode === dropdownMode.icon\"\n thyDropdownMenuItemIcon\n [thyIconName]=\"menu.icon\"\n ></thy-icon>\n <span class=\"text-body\" *ngIf=\"menu?.name\" thyDropdownMenuItemName>{{ menu.name }}</span>\n </div>\n <div class=\"menu-item-right font-size-sm text-muted\" *ngIf=\"menu?.shortcutKey\">{{ menu.shortcutKey }}</div>\n </a>\n <thy-dropdown-menu-divider *ngIf=\"menu.key === 'split'\"></thy-dropdown-menu-divider>\n </ng-container>\n </div>\n</ng-template>\n" }]
3473
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ThyPopover }, { type: i0.ViewContainerRef }, { type: i2.Overlay }], propDecorators: { className: [{
3463
3474
  type: HostBinding,
3464
3475
  args: ['class']
3465
3476
  }], iconModeTemplate: [{
@@ -3477,8 +3488,8 @@ class TheToolbarItem extends TheBaseToolbarItem {
3477
3488
  toggleDropdown(event) {
3478
3489
  super.execute(event);
3479
3490
  }
3480
- constructor(i18n) {
3481
- super(i18n);
3491
+ constructor() {
3492
+ super();
3482
3493
  this.className = 'the-toolbar-item';
3483
3494
  }
3484
3495
  ngOnInit() { }
@@ -3496,7 +3507,7 @@ class TheToolbarItem extends TheBaseToolbarItem {
3496
3507
  }
3497
3508
  this.toolbarItem?.execute(this.editor);
3498
3509
  }
3499
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheToolbarItem, deps: [{ token: TheI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
3510
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheToolbarItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3500
3511
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheToolbarItem, isStandalone: true, selector: "the-toolbar-item", host: { listeners: { "mousedown": "toggleDropdown($event)" }, properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0, template: `
3501
3512
  <a
3502
3513
  href="javascript:;"
@@ -3505,7 +3516,7 @@ class TheToolbarItem extends TheBaseToolbarItem {
3505
3516
  [thyActionActive]="active"
3506
3517
  [thyTooltip]="tooltip"
3507
3518
  [thyTooltipTemplateContext]="{
3508
- name: locale()[toolbarItem.translateKey] ?? toolbarItem.name,
3519
+ name: toolbarItem.name,
3509
3520
  shortcutKey: toolbarItem.shortcutKey
3510
3521
  }"
3511
3522
  thyTooltipPlacement="top"
@@ -3527,7 +3538,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3527
3538
  [thyActionActive]="active"
3528
3539
  [thyTooltip]="tooltip"
3529
3540
  [thyTooltipTemplateContext]="{
3530
- name: locale()[toolbarItem.translateKey] ?? toolbarItem.name,
3541
+ name: toolbarItem.name,
3531
3542
  shortcutKey: toolbarItem.shortcutKey
3532
3543
  }"
3533
3544
  thyTooltipPlacement="top"
@@ -3539,7 +3550,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3539
3550
  standalone: true,
3540
3551
  imports: [ThyAction, ThyTooltipDirective]
3541
3552
  }]
3542
- }], ctorParameters: () => [{ type: TheI18nService }], propDecorators: { className: [{
3553
+ }], ctorParameters: () => [], propDecorators: { className: [{
3543
3554
  type: HostBinding,
3544
3555
  args: ['class']
3545
3556
  }], toggleDropdown: [{
@@ -3893,11 +3904,11 @@ class TheToolbarGroup {
3893
3904
  }
3894
3905
  }
3895
3906
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheToolbarGroup, deps: [{ token: i0.ElementRef }, { token: i1.ThyPopover }, { token: i0.ViewContainerRef }, { token: TheI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
3896
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheToolbarGroup, isStandalone: true, selector: "the-toolbar-group", inputs: { menus: "menus", item: "item" }, host: { listeners: { "mousedown": "mousedownHandler($event)", "document:mouseup": "documentMouseupHandle($event)", "click": "clickHandle($event)" }, properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "groupTemplate", first: true, predicate: ["groupTemplate"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<a\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"item.icon\"\n [thyActionActive]=\"active\"\n [thyTooltip]=\"locale()[item?.translateKey] ?? item?.name\"\n thyTooltipPlacement=\"top\"\n></a>\n\n<ng-template #groupTemplate>\n <the-toolbar class=\"group\" [editor]=\"editor\" [toolbarItems]=\"menus\" [isMore]=\"false\"></the-toolbar>\n</ng-template>\n", dependencies: [{ kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }] }); }
3907
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheToolbarGroup, isStandalone: true, selector: "the-toolbar-group", inputs: { menus: "menus", item: "item" }, host: { listeners: { "mousedown": "mousedownHandler($event)", "document:mouseup": "documentMouseupHandle($event)", "click": "clickHandle($event)" }, properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "groupTemplate", first: true, predicate: ["groupTemplate"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<a\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"item.icon\"\n [thyActionActive]=\"active\"\n [thyTooltip]=\"item?.name\"\n thyTooltipPlacement=\"top\"\n></a>\n\n<ng-template #groupTemplate>\n <the-toolbar class=\"group\" [editor]=\"editor\" [toolbarItems]=\"menus\" [isMore]=\"false\"></the-toolbar>\n</ng-template>\n", dependencies: [{ kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }] }); }
3897
3908
  }
3898
3909
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheToolbarGroup, decorators: [{
3899
3910
  type: Component,
3900
- args: [{ selector: 'the-toolbar-group', standalone: true, imports: [ThyAction, ThyTooltipDirective, TheToolbarComponent], template: "<a\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"item.icon\"\n [thyActionActive]=\"active\"\n [thyTooltip]=\"locale()[item?.translateKey] ?? item?.name\"\n thyTooltipPlacement=\"top\"\n></a>\n\n<ng-template #groupTemplate>\n <the-toolbar class=\"group\" [editor]=\"editor\" [toolbarItems]=\"menus\" [isMore]=\"false\"></the-toolbar>\n</ng-template>\n" }]
3911
+ args: [{ selector: 'the-toolbar-group', standalone: true, imports: [ThyAction, ThyTooltipDirective, TheToolbarComponent], template: "<a\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"item.icon\"\n [thyActionActive]=\"active\"\n [thyTooltip]=\"item?.name\"\n thyTooltipPlacement=\"top\"\n></a>\n\n<ng-template #groupTemplate>\n <the-toolbar class=\"group\" [editor]=\"editor\" [toolbarItems]=\"menus\" [isMore]=\"false\"></the-toolbar>\n</ng-template>\n" }]
3901
3912
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ThyPopover }, { type: i0.ViewContainerRef }, { type: TheI18nService }], propDecorators: { className: [{
3902
3913
  type: HostBinding,
3903
3914
  args: ['class']
@@ -6109,7 +6120,7 @@ const TableEditor = {
6109
6120
  },
6110
6121
  getSelectedCells(editor, location) {
6111
6122
  const tableNode = getAboveByType(editor, ElementKinds.table, {
6112
- at: location || editor.selection.anchor
6123
+ at: location || editor.selection?.anchor
6113
6124
  });
6114
6125
  if (tableNode) {
6115
6126
  const tableComponent = ELEMENT_TO_COMPONENT.get(tableNode[0]);
@@ -7400,12 +7411,18 @@ class TheVerticalToolbarItem extends TheBaseToolbarDropdown {
7400
7411
  this.close();
7401
7412
  }
7402
7413
  }
7403
- constructor(elementRef, thyPopover, viewContainerRef, i18n) {
7404
- super(i18n);
7414
+ constructor(elementRef, thyPopover, viewContainerRef) {
7415
+ super();
7405
7416
  this.elementRef = elementRef;
7406
7417
  this.thyPopover = thyPopover;
7407
7418
  this.viewContainerRef = viewContainerRef;
7408
7419
  }
7420
+ ngOnInit() {
7421
+ if (!this.activeMenuItem) {
7422
+ this.activeMenuItem = this.defaultDropdownItem;
7423
+ }
7424
+ this.disabled = this.toolbarItem?.disable ? this.toolbarItem?.disable(this.editor) : false;
7425
+ }
7409
7426
  menusActive(editor) {
7410
7427
  return this.menus.find(i => {
7411
7428
  if (this.editor?.selection && i?.active) {
@@ -7445,8 +7462,8 @@ class TheVerticalToolbarItem extends TheBaseToolbarDropdown {
7445
7462
  this.dropdownPopoverRef.close();
7446
7463
  }
7447
7464
  }
7448
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheVerticalToolbarItem, deps: [{ token: i0.ElementRef }, { token: i1.ThyPopover }, { token: i0.ViewContainerRef }, { token: TheI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
7449
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheVerticalToolbarItem, isStandalone: true, selector: "the-toolbar-vertical-align-item", host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)" }, classAttribute: "the-toolbar-dropdown-container verticalAlign" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["VerticalAlignItems"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<a\n href=\"javascript:;\"\n class=\"icon-mode link-with-down\"\n thyAction\n [thyActionIcon]=\"activeMenuItem?.icon\"\n [thyActionActive]=\"isOpened\"\n [thyTooltip]=\"locale()[toolbarItem?.translateKey] ?? toolbarItem?.name\"\n thyTooltipPlacement=\"top\"\n (mousedown)=\"execute($event)\"\n>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n</a>\n\n<ng-template #VerticalAlignItems>\n <div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menu of toolbarItem?.includes\">\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n [thyDropdownMenuItemActive]=\"menu.key === activeMenuItem?.key\"\n (mousedown)=\"itemMousedown($event, menu)\"\n >\n <thy-icon *ngIf=\"menu.icon\" thyDropdownMenuItemIcon [thyIconName]=\"menu?.icon\"></thy-icon>\n <span thyDropdownMenuItemName>{{ locale()[menu.translateKey] ?? menu.name }}</span>\n </a>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: ThyDropdownMenuItemActiveDirective, selector: "[thyDropdownMenuItemActive]", inputs: ["thyDropdownMenuItemActive"] }] }); }
7465
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheVerticalToolbarItem, deps: [{ token: i0.ElementRef }, { token: i1.ThyPopover }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
7466
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheVerticalToolbarItem, isStandalone: true, selector: "the-toolbar-vertical-align-item", host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)" }, classAttribute: "the-toolbar-dropdown-container verticalAlign" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["VerticalAlignItems"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<a\n href=\"javascript:;\"\n class=\"icon-mode link-with-down\"\n thyAction\n [thyActionIcon]=\"activeMenuItem?.icon\"\n [thyActionActive]=\"isOpened\"\n [thyTooltip]=\"toolbarItem?.name\"\n thyTooltipPlacement=\"top\"\n (mousedown)=\"execute($event)\"\n>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n</a>\n\n<ng-template #VerticalAlignItems>\n <div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menu of toolbarItem?.includes\">\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n [thyDropdownMenuItemActive]=\"menu.key === activeMenuItem?.key\"\n (mousedown)=\"itemMousedown($event, menu)\"\n >\n <thy-icon *ngIf=\"menu.icon\" thyDropdownMenuItemIcon [thyIconName]=\"menu?.icon\"></thy-icon>\n <span thyDropdownMenuItemName>{{ menu.name }}</span>\n </a>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: ThyDropdownMenuItemActiveDirective, selector: "[thyDropdownMenuItemActive]", inputs: ["thyDropdownMenuItemActive"] }] }); }
7450
7467
  }
7451
7468
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheVerticalToolbarItem, decorators: [{
7452
7469
  type: Component,
@@ -7462,8 +7479,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
7462
7479
  ThyDropdownMenuItemIconDirective,
7463
7480
  ThyDropdownMenuItemNameDirective,
7464
7481
  ThyDropdownMenuItemActiveDirective
7465
- ], template: "<a\n href=\"javascript:;\"\n class=\"icon-mode link-with-down\"\n thyAction\n [thyActionIcon]=\"activeMenuItem?.icon\"\n [thyActionActive]=\"isOpened\"\n [thyTooltip]=\"locale()[toolbarItem?.translateKey] ?? toolbarItem?.name\"\n thyTooltipPlacement=\"top\"\n (mousedown)=\"execute($event)\"\n>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n</a>\n\n<ng-template #VerticalAlignItems>\n <div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menu of toolbarItem?.includes\">\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n [thyDropdownMenuItemActive]=\"menu.key === activeMenuItem?.key\"\n (mousedown)=\"itemMousedown($event, menu)\"\n >\n <thy-icon *ngIf=\"menu.icon\" thyDropdownMenuItemIcon [thyIconName]=\"menu?.icon\"></thy-icon>\n <span thyDropdownMenuItemName>{{ locale()[menu.translateKey] ?? menu.name }}</span>\n </a>\n </ng-container>\n </div>\n</ng-template>\n" }]
7466
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ThyPopover }, { type: i0.ViewContainerRef }, { type: TheI18nService }], propDecorators: { template: [{
7482
+ ], template: "<a\n href=\"javascript:;\"\n class=\"icon-mode link-with-down\"\n thyAction\n [thyActionIcon]=\"activeMenuItem?.icon\"\n [thyActionActive]=\"isOpened\"\n [thyTooltip]=\"toolbarItem?.name\"\n thyTooltipPlacement=\"top\"\n (mousedown)=\"execute($event)\"\n>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n</a>\n\n<ng-template #VerticalAlignItems>\n <div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menu of toolbarItem?.includes\">\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n [thyDropdownMenuItemActive]=\"menu.key === activeMenuItem?.key\"\n (mousedown)=\"itemMousedown($event, menu)\"\n >\n <thy-icon *ngIf=\"menu.icon\" thyDropdownMenuItemIcon [thyIconName]=\"menu?.icon\"></thy-icon>\n <span thyDropdownMenuItemName>{{ menu.name }}</span>\n </a>\n </ng-container>\n </div>\n</ng-template>\n" }]
7483
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ThyPopover }, { type: i0.ViewContainerRef }], propDecorators: { template: [{
7467
7484
  type: ViewChild,
7468
7485
  args: ['VerticalAlignItems', { read: TemplateRef, static: true }]
7469
7486
  }], handleDocumentMouseDown: [{
@@ -7485,45 +7502,45 @@ const VerticalAlignEditor = {
7485
7502
  }
7486
7503
  }
7487
7504
  };
7488
- const createVerticalAlignPlugin = createPluginFactory({
7505
+ const createVerticalAlignPlugin = (locale) => createPluginFactory({
7489
7506
  key: PluginKeys.verticalAlign,
7490
7507
  toolbarItems: [
7491
7508
  {
7492
7509
  key: ToolbarActionTypes.verticalAlign,
7493
- name: '垂直对齐',
7494
- translateKey: 'verticalAlign',
7510
+ name: locale().verticalAlign,
7495
7511
  type: ToolbarItemType.dropdown,
7496
7512
  dropdownMode: DropdownMode.icon,
7497
7513
  iconComponent: TheVerticalToolbarItem,
7498
- includes: [ToolbarActionTypes.verticalAlignTop, ToolbarActionTypes.verticalAlignMiddle, ToolbarActionTypes.verticalAlignBottom],
7514
+ includes: [
7515
+ ToolbarActionTypes.verticalAlignTop,
7516
+ ToolbarActionTypes.verticalAlignMiddle,
7517
+ ToolbarActionTypes.verticalAlignBottom
7518
+ ],
7499
7519
  disable: editor => !TableEditor.isActive(editor)
7500
7520
  },
7501
7521
  {
7502
7522
  key: ToolbarActionTypes.verticalAlignTop,
7503
7523
  icon: 'align-top',
7504
- name: '顶部对齐',
7505
- translateKey: 'verticalAlignTop',
7524
+ name: locale().verticalAlignTop,
7506
7525
  execute: editor => VerticalAlignEditor.setVerticalAlign(editor, VerticalAlignment.top),
7507
7526
  active: editor => VerticalAlignEditor.isVerticalActive(editor, VerticalAlignment.top)
7508
7527
  },
7509
7528
  {
7510
7529
  key: ToolbarActionTypes.verticalAlignMiddle,
7511
7530
  icon: 'align-middle',
7512
- name: '垂直居中',
7513
- translateKey: 'verticalAlignMiddle',
7531
+ name: locale().verticalAlignMiddle,
7514
7532
  execute: editor => VerticalAlignEditor.setVerticalAlign(editor, VerticalAlignment.middle),
7515
7533
  active: editor => VerticalAlignEditor.isVerticalActive(editor, VerticalAlignment.middle)
7516
7534
  },
7517
7535
  {
7518
7536
  key: ToolbarActionTypes.verticalAlignBottom,
7519
7537
  icon: 'align-bottom',
7520
- name: '底部对齐',
7521
- translateKey: 'verticalAlignBottom',
7538
+ name: locale().verticalAlignBottom,
7522
7539
  execute: editor => VerticalAlignEditor.setVerticalAlign(editor, VerticalAlignment.bottom),
7523
7540
  active: editor => VerticalAlignEditor.isVerticalActive(editor, VerticalAlignment.bottom)
7524
7541
  }
7525
7542
  ]
7526
- });
7543
+ })();
7527
7544
 
7528
7545
  const InlineCodeEditor = {
7529
7546
  toggleInlineCode(editor, text) {
@@ -7735,7 +7752,7 @@ class ThePluginMenuComponent {
7735
7752
  this.theDisplaySearch = false;
7736
7753
  this.autoActiveFirstItem = true;
7737
7754
  this.containerClassName = `the-plugin-menu-container`;
7738
- this.locale = injectTranslations();
7755
+ this.locale = injectTranslations(inject(TheI18nService));
7739
7756
  this.listBox = viewChild(TheListboxDirective);
7740
7757
  this.listBoxAutoActiveFirstItem = true;
7741
7758
  this.groupMenu = [];
@@ -7806,7 +7823,7 @@ class ThePluginMenuComponent {
7806
7823
  }
7807
7824
  }
7808
7825
  initializePluginMenu() {
7809
- const currentMenu = this.thePluginMenu || DefaultPluginMenu;
7826
+ const currentMenu = this.thePluginMenu || getTheDefaultPluginMenu(this.locale);
7810
7827
  const menuItemsMap = buildPluginMenuItemMap(this.editor);
7811
7828
  this._pluginMenu = buildPluginMenu(menuItemsMap, currentMenu);
7812
7829
  }
@@ -7929,7 +7946,7 @@ class ThePluginMenuComponent {
7929
7946
  return item?.key ?? index;
7930
7947
  }
7931
7948
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThePluginMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7932
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThePluginMenuComponent, isStandalone: true, selector: "the-plugin-menu", inputs: { editor: "editor", theDisplaySearch: "theDisplaySearch", thePluginMenu: "thePluginMenu", sceneKey: "sceneKey", subPanelClass: "subPanelClass", autoActiveFirstItem: "autoActiveFirstItem" }, host: { properties: { "class": "this.containerClassName" } }, viewQueries: [{ propertyName: "listBox", first: true, predicate: TheListboxDirective, descendants: true, isSignal: true }, { propertyName: "dropdownTriggers", predicate: ["dropdownTriggers"], descendants: true, read: ThyDropdownDirective }], ngImport: i0, template: "@if (theDisplaySearch) {\n <div class=\"menu-search px-5 pt-5 pb-2\">\n <thy-input-search\n [placeholder]=\"locale().search\"\n thyIconPosition=\"after\"\n [(ngModel)]=\"keyWords\"\n (ngModelChange)=\"updateKeywords(keyWords)\"\n >\n </thy-input-search>\n </div>\n}\n\n@if (groupMenu.length > 0) {\n <div\n class=\"thy-dropdown-menu the-plugin-menu-scroll-container pb-2 pt-0\"\n theListBox\n [keyboardContainer]=\"keyboardContainer\"\n [autoActiveFirstItem]=\"listBoxAutoActiveFirstItem\"\n (theListboxChange)=\"listBoxChange($event)\"\n >\n <ng-container *ngIf=\"iconMenu?.length > 0\">\n <div theListboxGroup [horizontalColumn]=\"6\" class=\"icon-menu d-flex pl-5 py-1\">\n @for (item of iconMenu; track trackByFn) {\n @if (item.type === ThePluginMenuItemType.icon) {\n <a\n href=\"javascript:;\"\n class=\"mt-2\"\n thyAction\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"locale()[item.translateKey] ?? item?.name\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (mouseenter)=\"listBoxOptionMouseenter($event, item)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, item)\"\n (click)=\"handleItemSelection(item)\"\n ></a>\n }\n }\n </div>\n <thy-divider class=\"my-2\"></thy-divider>\n </ng-container>\n\n <div theListboxGroup>\n <ng-container *ngFor=\"let item of groupMenu; trackBy: trackByFn\">\n <ng-container *ngIf=\"item.isMenuItem && !(item.children?.length > 0) && item.key !== 'table'\">\n <div\n class=\"py-0\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (mouseenter)=\"listBoxOptionMouseenter($event, item)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, item)\"\n (click)=\"handleItemSelection(item)\"\n >\n @if (item?.menuIcon) {\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n }\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ locale()[item.translateKey] ?? item.name }}\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.isMenuItem && item.children?.length > 0\" #hasExpanded>\n <div\n #dropdownTriggers\n class=\"py-0\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDropdown]=\"expand\"\n [thyPopoverOptions]=\"expandPopoverOptions\"\n [thyPanelClass]=\"subPanelClass\"\n (click)=\"handleItemSelection(item)\"\n >\n @if (item?.menuIcon) {\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n }\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ locale()[item.translateKey] ?? item.name }}\n </div>\n </div>\n @if (item.children?.length > 0) {\n <div>\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n }\n <thy-dropdown-menu #expand>\n <div class=\"the-plugin-menu-container expand-menu\" theListboxGroup>\n @for (child of item.children; track trackByFn) {\n @if (child.type === ThePluginMenuItemType.group) {\n <div\n class=\"py-0\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"child.disabled\"\n [theOptionValue]=\"child\"\n (mouseenter)=\"listBoxOptionMouseenter($event, child)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, child)\"\n (click)=\"handleItemSelection(child)\"\n >\n @if (child?.menuIcon) {\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"child.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n }\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ child.name }}\n </div>\n </div>\n </div>\n } @else if (child === 'divider') {\n <thy-divider class=\"my-2\"></thy-divider>\n }\n }\n </div>\n </thy-dropdown-menu>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.isMenuItem && item.key === 'table'\">\n <div\n #dropdownTriggers\n class=\"py-0\"\n thyPlacement=\"rightTop\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"item.disabled\"\n [thyPopover]=\"tableSelect\"\n [thyConfig]=\"tableSelectPopoverConfig\"\n (mouseenter)=\"listBoxOptionMouseenter($event, item)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, item)\"\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ locale()[item.translateKey] ?? item.name }}\n </div>\n </div>\n <div>\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n\n <ng-template #tableSelect>\n <table-select\n class=\"plugin-menu-table the-table-selector-panel\"\n [editor]=\"editor\"\n [beforeInsert]=\"removeBlock\"\n ></table-select>\n </ng-template>\n </div>\n </ng-container>\n\n @if (!item.isMenuItem) {\n <thy-dropdown-menu-group\n class=\"font-size-sm\"\n [thyTitle]=\"locale()[item.translateKey] ?? item.groupName\"\n ></thy-dropdown-menu-group>\n }\n </ng-container>\n </div>\n </div>\n} @else {\n <div class=\"empty d-flex align-items-center justify-content-center\">\n <thy-empty [thyMessage]=\"thyMessage\"></thy-empty>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ThyEmptyModule }, { kind: "component", type: i2$2.ThyEmpty, selector: "thy-empty", inputs: ["thyMessage", "thyTranslationKey", "thyTranslationValues", "thyEntityName", "thyEntityNameTranslateKey", "thyIconName", "thySize", "thyMarginTop", "thyTopAuto", "thyContainer", "thyImageUrl", "thyImageLoading", "thyImageFetchPriority", "thyDescription"] }, { kind: "component", type: TheTableSelect, selector: "table-select", inputs: ["optionsParam", "editor", "beforeInsert"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "component", type: ThyInputSearch, selector: "thy-input-search", inputs: ["name", "placeholder", "thyTheme", "thySearchFocus", "thyIconPosition", "thySize"], outputs: ["clear", "thyClear"] }, { kind: "component", type: ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth", "thyImmediateRender"] }, { kind: "component", type: ThyDropdownMenuGroup, selector: "thy-dropdown-menu-group", inputs: ["thyTitle"] }, { kind: "pipe", type: PluginMenuPipe, name: "getMenuIcon" }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: ThyPopoverDirective, selector: "[thyPopover]", inputs: ["thyPopover", "thyTrigger", "thyPlacement", "thyOffset", "thyConfig", "thyShowDelay", "thyHideDelay", "thyAutoAdaptive", "thyDisabled"] }, { kind: "directive", type: TheListboxDirective, selector: "[theListBox]", inputs: ["keyboardContainer", "autoActiveFirstItem"], outputs: ["theListboxChange"], exportAs: ["theListBox"] }, { kind: "directive", type: ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyActiveClass", "thyPopoverOptions", "thyPlacement", "thyMenuInsideClosable", "thyPanelClass"], outputs: ["thyActiveChange"] }, { kind: "directive", type: TheListboxGroupDirective, selector: "[theListboxGroup]", inputs: ["horizontalColumn"], exportAs: ["theListboxGroup"] }, { kind: "directive", type: TheListboxOptionDirective, selector: "[theListboxOption]", inputs: ["theOptionValue", "theOptionDisabled"], exportAs: ["theListboxOption"] }, { kind: "directive", type: ThePreventDefaultDirective, selector: "[thePreventDefault]", exportAs: ["thePreventDefault"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }] }); }
7949
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThePluginMenuComponent, isStandalone: true, selector: "the-plugin-menu", inputs: { editor: "editor", theDisplaySearch: "theDisplaySearch", thePluginMenu: "thePluginMenu", sceneKey: "sceneKey", subPanelClass: "subPanelClass", autoActiveFirstItem: "autoActiveFirstItem" }, host: { properties: { "class": "this.containerClassName" } }, viewQueries: [{ propertyName: "listBox", first: true, predicate: TheListboxDirective, descendants: true, isSignal: true }, { propertyName: "dropdownTriggers", predicate: ["dropdownTriggers"], descendants: true, read: ThyDropdownDirective }], ngImport: i0, template: "@if (theDisplaySearch) {\n <div class=\"menu-search px-5 pt-5 pb-2\">\n <thy-input-search\n [placeholder]=\"locale().search\"\n thyIconPosition=\"after\"\n [(ngModel)]=\"keyWords\"\n (ngModelChange)=\"updateKeywords(keyWords)\"\n >\n </thy-input-search>\n </div>\n}\n\n@if (groupMenu.length > 0) {\n <div\n class=\"thy-dropdown-menu the-plugin-menu-scroll-container pb-2 pt-0\"\n theListBox\n [keyboardContainer]=\"keyboardContainer\"\n [autoActiveFirstItem]=\"listBoxAutoActiveFirstItem\"\n (theListboxChange)=\"listBoxChange($event)\"\n >\n <ng-container *ngIf=\"iconMenu?.length > 0\">\n <div theListboxGroup [horizontalColumn]=\"6\" class=\"icon-menu d-flex pl-5 py-1\">\n @for (item of iconMenu; track trackByFn) {\n @if (item.type === ThePluginMenuItemType.icon) {\n <a\n href=\"javascript:;\"\n class=\"mt-2\"\n thyAction\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item?.name\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (mouseenter)=\"listBoxOptionMouseenter($event, item)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, item)\"\n (click)=\"handleItemSelection(item)\"\n ></a>\n }\n }\n </div>\n <thy-divider class=\"my-2\"></thy-divider>\n </ng-container>\n\n <div theListboxGroup>\n <ng-container *ngFor=\"let item of groupMenu; trackBy: trackByFn\">\n <ng-container *ngIf=\"item.isMenuItem && !(item.children?.length > 0) && item.key !== 'table'\">\n <div\n class=\"py-0\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (mouseenter)=\"listBoxOptionMouseenter($event, item)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, item)\"\n (click)=\"handleItemSelection(item)\"\n >\n @if (item?.menuIcon) {\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n }\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.isMenuItem && item.children?.length > 0\" #hasExpanded>\n <div\n #dropdownTriggers\n class=\"py-0\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDropdown]=\"expand\"\n [thyPopoverOptions]=\"expandPopoverOptions\"\n [thyPanelClass]=\"subPanelClass\"\n (click)=\"handleItemSelection(item)\"\n >\n @if (item?.menuIcon) {\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n }\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n @if (item.children?.length > 0) {\n <div>\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n }\n <thy-dropdown-menu #expand>\n <div class=\"the-plugin-menu-container expand-menu\" theListboxGroup>\n @for (child of item.children; track trackByFn) {\n @if (child.type === ThePluginMenuItemType.group) {\n <div\n class=\"py-0\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"child.disabled\"\n [theOptionValue]=\"child\"\n (mouseenter)=\"listBoxOptionMouseenter($event, child)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, child)\"\n (click)=\"handleItemSelection(child)\"\n >\n @if (child?.menuIcon) {\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"child.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n }\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ child.name }}\n </div>\n </div>\n </div>\n } @else if (child === 'divider') {\n <thy-divider class=\"my-2\"></thy-divider>\n }\n }\n </div>\n </thy-dropdown-menu>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.isMenuItem && item.key === 'table'\">\n <div\n #dropdownTriggers\n class=\"py-0\"\n thyPlacement=\"rightTop\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"item.disabled\"\n [thyPopover]=\"tableSelect\"\n [thyConfig]=\"tableSelectPopoverConfig\"\n (mouseenter)=\"listBoxOptionMouseenter($event, item)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, item)\"\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n <div>\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n\n <ng-template #tableSelect>\n <table-select\n class=\"plugin-menu-table the-table-selector-panel\"\n [editor]=\"editor\"\n [beforeInsert]=\"removeBlock\"\n ></table-select>\n </ng-template>\n </div>\n </ng-container>\n\n @if (!item.isMenuItem) {\n <thy-dropdown-menu-group class=\"font-size-sm\" [thyTitle]=\"item.groupName\"></thy-dropdown-menu-group>\n }\n </ng-container>\n </div>\n </div>\n} @else {\n <div class=\"empty d-flex align-items-center justify-content-center\">\n <thy-empty [thyMessage]=\"thyMessage\"></thy-empty>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ThyEmptyModule }, { kind: "component", type: i2$2.ThyEmpty, selector: "thy-empty", inputs: ["thyMessage", "thyTranslationKey", "thyTranslationValues", "thyEntityName", "thyEntityNameTranslateKey", "thyIconName", "thySize", "thyMarginTop", "thyTopAuto", "thyContainer", "thyImageUrl", "thyImageLoading", "thyImageFetchPriority", "thyDescription"] }, { kind: "component", type: TheTableSelect, selector: "table-select", inputs: ["optionsParam", "editor", "beforeInsert"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "component", type: ThyInputSearch, selector: "thy-input-search", inputs: ["name", "placeholder", "thyTheme", "thySearchFocus", "thyIconPosition", "thySize"], outputs: ["clear", "thyClear"] }, { kind: "component", type: ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth", "thyImmediateRender"] }, { kind: "component", type: ThyDropdownMenuGroup, selector: "thy-dropdown-menu-group", inputs: ["thyTitle"] }, { kind: "pipe", type: PluginMenuPipe, name: "getMenuIcon" }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: ThyPopoverDirective, selector: "[thyPopover]", inputs: ["thyPopover", "thyTrigger", "thyPlacement", "thyOffset", "thyConfig", "thyShowDelay", "thyHideDelay", "thyAutoAdaptive", "thyDisabled"] }, { kind: "directive", type: TheListboxDirective, selector: "[theListBox]", inputs: ["keyboardContainer", "autoActiveFirstItem"], outputs: ["theListboxChange"], exportAs: ["theListBox"] }, { kind: "directive", type: ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyActiveClass", "thyPopoverOptions", "thyPlacement", "thyMenuInsideClosable", "thyPanelClass"], outputs: ["thyActiveChange"] }, { kind: "directive", type: TheListboxGroupDirective, selector: "[theListboxGroup]", inputs: ["horizontalColumn"], exportAs: ["theListboxGroup"] }, { kind: "directive", type: TheListboxOptionDirective, selector: "[theListboxOption]", inputs: ["theOptionValue", "theOptionDisabled"], exportAs: ["theListboxOption"] }, { kind: "directive", type: ThePreventDefaultDirective, selector: "[thePreventDefault]", exportAs: ["thePreventDefault"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }] }); }
7933
7950
  }
7934
7951
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThePluginMenuComponent, decorators: [{
7935
7952
  type: Component,
@@ -7954,7 +7971,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
7954
7971
  TheListboxOptionDirective,
7955
7972
  ThePreventDefaultDirective,
7956
7973
  ThyDropdownMenuItemDirective
7957
- ], template: "@if (theDisplaySearch) {\n <div class=\"menu-search px-5 pt-5 pb-2\">\n <thy-input-search\n [placeholder]=\"locale().search\"\n thyIconPosition=\"after\"\n [(ngModel)]=\"keyWords\"\n (ngModelChange)=\"updateKeywords(keyWords)\"\n >\n </thy-input-search>\n </div>\n}\n\n@if (groupMenu.length > 0) {\n <div\n class=\"thy-dropdown-menu the-plugin-menu-scroll-container pb-2 pt-0\"\n theListBox\n [keyboardContainer]=\"keyboardContainer\"\n [autoActiveFirstItem]=\"listBoxAutoActiveFirstItem\"\n (theListboxChange)=\"listBoxChange($event)\"\n >\n <ng-container *ngIf=\"iconMenu?.length > 0\">\n <div theListboxGroup [horizontalColumn]=\"6\" class=\"icon-menu d-flex pl-5 py-1\">\n @for (item of iconMenu; track trackByFn) {\n @if (item.type === ThePluginMenuItemType.icon) {\n <a\n href=\"javascript:;\"\n class=\"mt-2\"\n thyAction\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"locale()[item.translateKey] ?? item?.name\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (mouseenter)=\"listBoxOptionMouseenter($event, item)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, item)\"\n (click)=\"handleItemSelection(item)\"\n ></a>\n }\n }\n </div>\n <thy-divider class=\"my-2\"></thy-divider>\n </ng-container>\n\n <div theListboxGroup>\n <ng-container *ngFor=\"let item of groupMenu; trackBy: trackByFn\">\n <ng-container *ngIf=\"item.isMenuItem && !(item.children?.length > 0) && item.key !== 'table'\">\n <div\n class=\"py-0\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (mouseenter)=\"listBoxOptionMouseenter($event, item)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, item)\"\n (click)=\"handleItemSelection(item)\"\n >\n @if (item?.menuIcon) {\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n }\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ locale()[item.translateKey] ?? item.name }}\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.isMenuItem && item.children?.length > 0\" #hasExpanded>\n <div\n #dropdownTriggers\n class=\"py-0\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDropdown]=\"expand\"\n [thyPopoverOptions]=\"expandPopoverOptions\"\n [thyPanelClass]=\"subPanelClass\"\n (click)=\"handleItemSelection(item)\"\n >\n @if (item?.menuIcon) {\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n }\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ locale()[item.translateKey] ?? item.name }}\n </div>\n </div>\n @if (item.children?.length > 0) {\n <div>\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n }\n <thy-dropdown-menu #expand>\n <div class=\"the-plugin-menu-container expand-menu\" theListboxGroup>\n @for (child of item.children; track trackByFn) {\n @if (child.type === ThePluginMenuItemType.group) {\n <div\n class=\"py-0\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"child.disabled\"\n [theOptionValue]=\"child\"\n (mouseenter)=\"listBoxOptionMouseenter($event, child)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, child)\"\n (click)=\"handleItemSelection(child)\"\n >\n @if (child?.menuIcon) {\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"child.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n }\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ child.name }}\n </div>\n </div>\n </div>\n } @else if (child === 'divider') {\n <thy-divider class=\"my-2\"></thy-divider>\n }\n }\n </div>\n </thy-dropdown-menu>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.isMenuItem && item.key === 'table'\">\n <div\n #dropdownTriggers\n class=\"py-0\"\n thyPlacement=\"rightTop\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"item.disabled\"\n [thyPopover]=\"tableSelect\"\n [thyConfig]=\"tableSelectPopoverConfig\"\n (mouseenter)=\"listBoxOptionMouseenter($event, item)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, item)\"\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ locale()[item.translateKey] ?? item.name }}\n </div>\n </div>\n <div>\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n\n <ng-template #tableSelect>\n <table-select\n class=\"plugin-menu-table the-table-selector-panel\"\n [editor]=\"editor\"\n [beforeInsert]=\"removeBlock\"\n ></table-select>\n </ng-template>\n </div>\n </ng-container>\n\n @if (!item.isMenuItem) {\n <thy-dropdown-menu-group\n class=\"font-size-sm\"\n [thyTitle]=\"locale()[item.translateKey] ?? item.groupName\"\n ></thy-dropdown-menu-group>\n }\n </ng-container>\n </div>\n </div>\n} @else {\n <div class=\"empty d-flex align-items-center justify-content-center\">\n <thy-empty [thyMessage]=\"thyMessage\"></thy-empty>\n </div>\n}\n" }]
7974
+ ], template: "@if (theDisplaySearch) {\n <div class=\"menu-search px-5 pt-5 pb-2\">\n <thy-input-search\n [placeholder]=\"locale().search\"\n thyIconPosition=\"after\"\n [(ngModel)]=\"keyWords\"\n (ngModelChange)=\"updateKeywords(keyWords)\"\n >\n </thy-input-search>\n </div>\n}\n\n@if (groupMenu.length > 0) {\n <div\n class=\"thy-dropdown-menu the-plugin-menu-scroll-container pb-2 pt-0\"\n theListBox\n [keyboardContainer]=\"keyboardContainer\"\n [autoActiveFirstItem]=\"listBoxAutoActiveFirstItem\"\n (theListboxChange)=\"listBoxChange($event)\"\n >\n <ng-container *ngIf=\"iconMenu?.length > 0\">\n <div theListboxGroup [horizontalColumn]=\"6\" class=\"icon-menu d-flex pl-5 py-1\">\n @for (item of iconMenu; track trackByFn) {\n @if (item.type === ThePluginMenuItemType.icon) {\n <a\n href=\"javascript:;\"\n class=\"mt-2\"\n thyAction\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item?.name\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (mouseenter)=\"listBoxOptionMouseenter($event, item)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, item)\"\n (click)=\"handleItemSelection(item)\"\n ></a>\n }\n }\n </div>\n <thy-divider class=\"my-2\"></thy-divider>\n </ng-container>\n\n <div theListboxGroup>\n <ng-container *ngFor=\"let item of groupMenu; trackBy: trackByFn\">\n <ng-container *ngIf=\"item.isMenuItem && !(item.children?.length > 0) && item.key !== 'table'\">\n <div\n class=\"py-0\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (mouseenter)=\"listBoxOptionMouseenter($event, item)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, item)\"\n (click)=\"handleItemSelection(item)\"\n >\n @if (item?.menuIcon) {\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n }\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.isMenuItem && item.children?.length > 0\" #hasExpanded>\n <div\n #dropdownTriggers\n class=\"py-0\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDropdown]=\"expand\"\n [thyPopoverOptions]=\"expandPopoverOptions\"\n [thyPanelClass]=\"subPanelClass\"\n (click)=\"handleItemSelection(item)\"\n >\n @if (item?.menuIcon) {\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n }\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n @if (item.children?.length > 0) {\n <div>\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n }\n <thy-dropdown-menu #expand>\n <div class=\"the-plugin-menu-container expand-menu\" theListboxGroup>\n @for (child of item.children; track trackByFn) {\n @if (child.type === ThePluginMenuItemType.group) {\n <div\n class=\"py-0\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"child.disabled\"\n [theOptionValue]=\"child\"\n (mouseenter)=\"listBoxOptionMouseenter($event, child)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, child)\"\n (click)=\"handleItemSelection(child)\"\n >\n @if (child?.menuIcon) {\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"child.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n }\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ child.name }}\n </div>\n </div>\n </div>\n } @else if (child === 'divider') {\n <thy-divider class=\"my-2\"></thy-divider>\n }\n }\n </div>\n </thy-dropdown-menu>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.isMenuItem && item.key === 'table'\">\n <div\n #dropdownTriggers\n class=\"py-0\"\n thyPlacement=\"rightTop\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n thePreventDefault\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"item.disabled\"\n [thyPopover]=\"tableSelect\"\n [thyConfig]=\"tableSelectPopoverConfig\"\n (mouseenter)=\"listBoxOptionMouseenter($event, item)\"\n (mouseleave)=\"listBoxOptionMouseleave($event, item)\"\n (click)=\"handleItemSelection(item)\"\n >\n <div class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"item.menuIcon | getMenuIcon: sceneKey\"></thy-icon>\n </div>\n <div class=\"menu-content d-flex align-items-center\">\n <div class=\"menu-item-title w-100\">\n {{ item.name }}\n </div>\n </div>\n <div>\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n\n <ng-template #tableSelect>\n <table-select\n class=\"plugin-menu-table the-table-selector-panel\"\n [editor]=\"editor\"\n [beforeInsert]=\"removeBlock\"\n ></table-select>\n </ng-template>\n </div>\n </ng-container>\n\n @if (!item.isMenuItem) {\n <thy-dropdown-menu-group class=\"font-size-sm\" [thyTitle]=\"item.groupName\"></thy-dropdown-menu-group>\n }\n </ng-container>\n </div>\n </div>\n} @else {\n <div class=\"empty d-flex align-items-center justify-content-center\">\n <thy-empty [thyMessage]=\"thyMessage\"></thy-empty>\n </div>\n}\n" }]
7958
7975
  }], propDecorators: { editor: [{
7959
7976
  type: Input
7960
7977
  }], theDisplaySearch: [{
@@ -8417,7 +8434,7 @@ const isMarkdownSyntax = content => {
8417
8434
 
8418
8435
  class TheConversionHint {
8419
8436
  constructor() {
8420
- this.locale = injectTranslations();
8437
+ this.locale = injectTranslations(inject(TheI18nService));
8421
8438
  this.duration = 10000;
8422
8439
  this.pauseOnHover = true;
8423
8440
  }
@@ -8937,7 +8954,7 @@ const withAlign = (editor) => {
8937
8954
  };
8938
8955
  return editor;
8939
8956
  };
8940
- const createAlignPlugin = createPluginFactory({
8957
+ const createAlignPlugin = (locale) => createPluginFactory({
8941
8958
  key: PluginKeys.align,
8942
8959
  withOverrides: withAlign,
8943
8960
  toolbarItems: [
@@ -8947,31 +8964,27 @@ const createAlignPlugin = createPluginFactory({
8947
8964
  dropdownMode: DropdownMode.icon,
8948
8965
  dropdownItemKey: ToolbarActionTypes.alignLeft,
8949
8966
  includes: [ToolbarActionTypes.alignLeft, ToolbarActionTypes.alignCenter, ToolbarActionTypes.alignRight],
8950
- name: '对齐方式',
8951
- translateKey: 'alignment',
8967
+ name: locale().alignment,
8952
8968
  disable: editor => AlignEditor.isDisabled(editor)
8953
8969
  },
8954
8970
  {
8955
8971
  key: ToolbarActionTypes.alignLeft,
8956
8972
  icon: 'align-left',
8957
- name: '左对齐',
8958
- translateKey: 'alignLeft',
8973
+ name: locale().alignLeft,
8959
8974
  execute: editor => AlignEditor.setAlign(editor, Alignment.left),
8960
8975
  active: editor => AlignEditor.isActive(editor, Alignment.left)
8961
8976
  },
8962
8977
  {
8963
8978
  key: ToolbarActionTypes.alignCenter,
8964
8979
  icon: 'align-center',
8965
- name: '居中',
8966
- translateKey: 'alignCenter',
8980
+ name: locale().alignCenter,
8967
8981
  execute: editor => AlignEditor.setAlign(editor, Alignment.center),
8968
8982
  active: editor => AlignEditor.isActive(editor, Alignment.center)
8969
8983
  },
8970
8984
  {
8971
8985
  key: ToolbarActionTypes.alignRight,
8972
8986
  icon: 'align-right',
8973
- name: '右对齐',
8974
- translateKey: 'alignRight',
8987
+ name: locale().alignRight,
8975
8988
  execute: editor => AlignEditor.setAlign(editor, Alignment.right),
8976
8989
  active: editor => AlignEditor.isActive(editor, Alignment.right)
8977
8990
  }
@@ -8979,7 +8992,7 @@ const createAlignPlugin = createPluginFactory({
8979
8992
  options: {
8980
8993
  disabledOperateTypes: [...DISABLED_OPERATE_TYPES]
8981
8994
  }
8982
- });
8995
+ })();
8983
8996
 
8984
8997
  const defaultAutoFormatRules = [
8985
8998
  {
@@ -9387,15 +9400,14 @@ const withBlockquote = (editor) => {
9387
9400
  };
9388
9401
  return editor;
9389
9402
  };
9390
- const createBlockquotePlugin = createPluginFactory({
9403
+ const createBlockquotePlugin = (locale) => createPluginFactory({
9391
9404
  key: PluginKeys.blockquote,
9392
9405
  withOverrides: withBlockquote,
9393
9406
  toolbarItems: [
9394
9407
  {
9395
9408
  key: ElementKinds.blockquote,
9396
9409
  icon: 'blockquote',
9397
- name: '引用',
9398
- translateKey: 'blockquote',
9410
+ name: locale().blockquote,
9399
9411
  active: editor => isBlockActive(editor, ElementKinds.blockquote),
9400
9412
  execute: editor => BlockquoteEditor.toggleBlockquote(editor)
9401
9413
  }
@@ -9404,13 +9416,11 @@ const createBlockquotePlugin = createPluginFactory({
9404
9416
  {
9405
9417
  key: ElementKinds.blockquote,
9406
9418
  type: ThePluginMenuItemType.group,
9407
- keywords: 'yy,yinyong,quote,引用,цитата,zitat',
9419
+ keywords: `yy,yinyong,quote,${locale().blockquote}`,
9408
9420
  active: editor => isBlockActive(editor, ElementKinds.blockquote),
9409
9421
  execute: editor => BlockquoteEditor.toggleBlockquote(editor),
9410
- name: '引用',
9411
- translateKey: 'blockquote',
9412
- description: '支持引用内容',
9413
- descriptionTranslateKey: 'blockquoteDesc',
9422
+ name: locale().blockquote,
9423
+ description: locale().blockquoteDesc,
9414
9424
  menuIcon: PluginMenuIcons.blockquote,
9415
9425
  displayKey: '/yy'
9416
9426
  }
@@ -9418,12 +9428,12 @@ const createBlockquotePlugin = createPluginFactory({
9418
9428
  options: {
9419
9429
  allowParentTypes: [ElementKinds.tableCell]
9420
9430
  }
9421
- });
9431
+ })();
9422
9432
 
9423
9433
  class TheCode extends TheBaseElement {
9424
9434
  constructor() {
9425
9435
  super(...arguments);
9426
- this.locale = injectTranslations();
9436
+ this.locale = injectTranslations(inject(TheI18nService));
9427
9437
  this.startRenderCodemirror = false;
9428
9438
  this.dropdownMode = DropdownMode;
9429
9439
  this.maxHeight = 0;
@@ -9675,15 +9685,14 @@ const withCode = (editor) => {
9675
9685
  };
9676
9686
  return editor;
9677
9687
  };
9678
- const createCodePlugin = createPluginFactory({
9688
+ const createCodePlugin = (locale) => createPluginFactory({
9679
9689
  key: PluginKeys.code,
9680
9690
  withOverrides: withCode,
9681
9691
  toolbarItems: [
9682
9692
  {
9683
9693
  key: ElementKinds.code,
9684
9694
  icon: 'code-syntax',
9685
- name: '代码块',
9686
- translateKey: 'code',
9695
+ name: locale().code,
9687
9696
  active: editor => isBlockActive(editor, ElementKinds.code),
9688
9697
  execute: editor => CodeEditor.insertCode(editor)
9689
9698
  }
@@ -9692,13 +9701,11 @@ const createCodePlugin = createPluginFactory({
9692
9701
  {
9693
9702
  key: ElementKinds.code,
9694
9703
  type: ThePluginMenuItemType.group,
9695
- keywords: 'dmk,daimakuai,code,代码块,程式碼區塊,codeblöcke,コードブロック,Блок кода',
9704
+ keywords: `dmk,daimakuai,code,${locale().code}`,
9696
9705
  active: editor => isBlockActive(editor, ElementKinds.code),
9697
9706
  execute: editor => CodeEditor.insertCode(editor),
9698
- name: '代码块',
9699
- translateKey: 'code',
9700
- description: '支持插入语法高亮的代码',
9701
- descriptionTranslateKey: 'codeDesc',
9707
+ name: locale().code,
9708
+ description: locale().codeDesc,
9702
9709
  menuIcon: PluginMenuIcons.code,
9703
9710
  displayKey: '/dmk'
9704
9711
  }
@@ -9706,7 +9713,7 @@ const createCodePlugin = createPluginFactory({
9706
9713
  options: {
9707
9714
  allowParentTypes: [ElementKinds.tableCell]
9708
9715
  }
9709
- });
9716
+ })();
9710
9717
 
9711
9718
  class TheColorToolbarItem extends TheBaseToolbarItem {
9712
9719
  get lastTextColor() {
@@ -9715,8 +9722,8 @@ class TheColorToolbarItem extends TheBaseToolbarItem {
9715
9722
  get lastBackgroundColor() {
9716
9723
  return THE_EDITOR_BG_COLOR.get(this.editor) ?? '#FFDA00';
9717
9724
  }
9718
- constructor(i18n) {
9719
- super(i18n);
9725
+ constructor() {
9726
+ super();
9720
9727
  this.pickerActive = false;
9721
9728
  }
9722
9729
  ngOnInit() {
@@ -9780,24 +9787,23 @@ class TheColorToolbarItem extends TheBaseToolbarItem {
9780
9787
  });
9781
9788
  });
9782
9789
  }
9783
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheColorToolbarItem, deps: [{ token: TheI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
9784
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheColorToolbarItem, isStandalone: true, selector: "the-color-toolbar-item", host: { classAttribute: "the-color-toolbar-item" }, usesInheritance: true, ngImport: i0, template: "<thy-actions\n class=\"d-flex p-0\"\n thySize=\"zero\"\n thyTooltipPlacement=\"top\"\n [thyTooltip]=\"locale()[toolbarItem.translateKey] ?? toolbarItem.name\"\n [ngClass]=\"{ 'thy-default-picker-active': pickerActive }\"\n>\n <a href=\"javascript:;\" class=\"color\" thyAction (mousedown)=\"selectColor($event)\">\n <thy-icon\n thyIconType=\"twotone\"\n [thyIconName]=\"toolbarItem.icon\"\n [thyTwotoneColor]=\"toolbarItem.key === 'color' ? lastTextColor : lastBackgroundColor\"\n (mousedown)=\"selectColor($event)\"\n ></thy-icon>\n </a>\n <a\n class=\"pl-0 pr-0 caret-down\"\n href=\"javascript:;\"\n thyAction\n thyColorPicker\n thyPlacement=\"bottomLeft\"\n [(ngModel)]=\"selectedColor\"\n (thyPanelOpen)=\"pickerActive = true\"\n (thyPanelOpen)=\"colorPanelOpen($event)\"\n (thyPanelClose)=\"colorPanelClose()\"\n (ngModelChange)=\"changeColor($event)\"\n (mousedown)=\"preventDefault($event)\"\n >\n <thy-icon class=\"link-down-icon font-size-sm text-desc\" thyIconName=\"caret-down\"></thy-icon>\n </a>\n</thy-actions>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: ThyActions, selector: "thy-actions", inputs: ["thySize"] }, { kind: "directive", type: ThyColorPickerDirective, selector: "[thyColorPicker]", inputs: ["thyOffset", "thyHasBackdrop", "thyDefaultColor", "thyTransparentColorSelectable", "thyPresetColors", "thyPlacement", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyDisabled"], outputs: ["thyPanelOpen", "thyPanelClose"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
9790
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheColorToolbarItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9791
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheColorToolbarItem, isStandalone: true, selector: "the-color-toolbar-item", host: { classAttribute: "the-color-toolbar-item" }, usesInheritance: true, ngImport: i0, template: "<thy-actions\n class=\"d-flex p-0\"\n thySize=\"zero\"\n thyTooltipPlacement=\"top\"\n [thyTooltip]=\"toolbarItem.name\"\n [ngClass]=\"{ 'thy-default-picker-active': pickerActive }\"\n>\n <a href=\"javascript:;\" class=\"color\" thyAction (mousedown)=\"selectColor($event)\">\n <thy-icon\n thyIconType=\"twotone\"\n [thyIconName]=\"toolbarItem.icon\"\n [thyTwotoneColor]=\"toolbarItem.key === 'color' ? lastTextColor : lastBackgroundColor\"\n (mousedown)=\"selectColor($event)\"\n ></thy-icon>\n </a>\n <a\n class=\"pl-0 pr-0 caret-down\"\n href=\"javascript:;\"\n thyAction\n thyColorPicker\n thyPlacement=\"bottomLeft\"\n [(ngModel)]=\"selectedColor\"\n (thyPanelOpen)=\"pickerActive = true\"\n (thyPanelOpen)=\"colorPanelOpen($event)\"\n (thyPanelClose)=\"colorPanelClose()\"\n (ngModelChange)=\"changeColor($event)\"\n (mousedown)=\"preventDefault($event)\"\n >\n <thy-icon class=\"link-down-icon font-size-sm text-desc\" thyIconName=\"caret-down\"></thy-icon>\n </a>\n</thy-actions>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: ThyActions, selector: "thy-actions", inputs: ["thySize"] }, { kind: "directive", type: ThyColorPickerDirective, selector: "[thyColorPicker]", inputs: ["thyOffset", "thyHasBackdrop", "thyDefaultColor", "thyTransparentColorSelectable", "thyPresetColors", "thyPlacement", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyDisabled"], outputs: ["thyPanelOpen", "thyPanelClose"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
9785
9792
  }
9786
9793
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheColorToolbarItem, decorators: [{
9787
9794
  type: Component,
9788
9795
  args: [{ selector: 'the-color-toolbar-item', host: {
9789
9796
  class: 'the-color-toolbar-item'
9790
- }, standalone: true, imports: [NgClass, FormsModule, ThyAction, ThyActions, ThyColorPickerDirective, ThyTooltipDirective, ThyIcon], template: "<thy-actions\n class=\"d-flex p-0\"\n thySize=\"zero\"\n thyTooltipPlacement=\"top\"\n [thyTooltip]=\"locale()[toolbarItem.translateKey] ?? toolbarItem.name\"\n [ngClass]=\"{ 'thy-default-picker-active': pickerActive }\"\n>\n <a href=\"javascript:;\" class=\"color\" thyAction (mousedown)=\"selectColor($event)\">\n <thy-icon\n thyIconType=\"twotone\"\n [thyIconName]=\"toolbarItem.icon\"\n [thyTwotoneColor]=\"toolbarItem.key === 'color' ? lastTextColor : lastBackgroundColor\"\n (mousedown)=\"selectColor($event)\"\n ></thy-icon>\n </a>\n <a\n class=\"pl-0 pr-0 caret-down\"\n href=\"javascript:;\"\n thyAction\n thyColorPicker\n thyPlacement=\"bottomLeft\"\n [(ngModel)]=\"selectedColor\"\n (thyPanelOpen)=\"pickerActive = true\"\n (thyPanelOpen)=\"colorPanelOpen($event)\"\n (thyPanelClose)=\"colorPanelClose()\"\n (ngModelChange)=\"changeColor($event)\"\n (mousedown)=\"preventDefault($event)\"\n >\n <thy-icon class=\"link-down-icon font-size-sm text-desc\" thyIconName=\"caret-down\"></thy-icon>\n </a>\n</thy-actions>\n" }]
9791
- }], ctorParameters: () => [{ type: TheI18nService }] });
9797
+ }, standalone: true, imports: [NgClass, FormsModule, ThyAction, ThyActions, ThyColorPickerDirective, ThyTooltipDirective, ThyIcon], template: "<thy-actions\n class=\"d-flex p-0\"\n thySize=\"zero\"\n thyTooltipPlacement=\"top\"\n [thyTooltip]=\"toolbarItem.name\"\n [ngClass]=\"{ 'thy-default-picker-active': pickerActive }\"\n>\n <a href=\"javascript:;\" class=\"color\" thyAction (mousedown)=\"selectColor($event)\">\n <thy-icon\n thyIconType=\"twotone\"\n [thyIconName]=\"toolbarItem.icon\"\n [thyTwotoneColor]=\"toolbarItem.key === 'color' ? lastTextColor : lastBackgroundColor\"\n (mousedown)=\"selectColor($event)\"\n ></thy-icon>\n </a>\n <a\n class=\"pl-0 pr-0 caret-down\"\n href=\"javascript:;\"\n thyAction\n thyColorPicker\n thyPlacement=\"bottomLeft\"\n [(ngModel)]=\"selectedColor\"\n (thyPanelOpen)=\"pickerActive = true\"\n (thyPanelOpen)=\"colorPanelOpen($event)\"\n (thyPanelClose)=\"colorPanelClose()\"\n (ngModelChange)=\"changeColor($event)\"\n (mousedown)=\"preventDefault($event)\"\n >\n <thy-icon class=\"link-down-icon font-size-sm text-desc\" thyIconName=\"caret-down\"></thy-icon>\n </a>\n</thy-actions>\n" }]
9798
+ }], ctorParameters: () => [] });
9792
9799
 
9793
- const createColorPlugin = createPluginFactory({
9800
+ const createColorPlugin = (locale) => createPluginFactory({
9794
9801
  key: PluginKeys.color,
9795
9802
  toolbarItems: [
9796
9803
  {
9797
9804
  key: MarkTypes.color,
9798
9805
  icon: 'color-tt',
9799
- name: '字体颜色',
9800
- translateKey: 'fontColor',
9806
+ name: locale().fontColor,
9801
9807
  type: ToolbarItemType.dropdown,
9802
9808
  dropdownMode: DropdownMode.icon,
9803
9809
  iconComponent: TheColorToolbarItem,
@@ -9806,8 +9812,7 @@ const createColorPlugin = createPluginFactory({
9806
9812
  {
9807
9813
  key: MarkTypes.backgroundColor,
9808
9814
  icon: 'background-tt',
9809
- name: '背景颜色',
9810
- translateKey: 'backgroundColor',
9815
+ name: locale().backgroundColor,
9811
9816
  type: ToolbarItemType.dropdown,
9812
9817
  dropdownMode: DropdownMode.icon,
9813
9818
  iconComponent: TheColorToolbarItem,
@@ -9817,7 +9822,7 @@ const createColorPlugin = createPluginFactory({
9817
9822
  options: {
9818
9823
  disabledOperateTypes: [ElementKinds.image, ...DISABLED_OPERATE_TYPES]
9819
9824
  }
9820
- });
9825
+ })();
9821
9826
 
9822
9827
  const withBlockCard = (editor) => {
9823
9828
  const { insertBreak, deleteBackward, onKeydown, deleteForward, insertData, insertText, mousedown } = editor;
@@ -10165,14 +10170,13 @@ const withInternalCommon = (editor) => {
10165
10170
  };
10166
10171
  return editor;
10167
10172
  };
10168
- const createCommonPlugin = createPluginFactory({
10173
+ const createCommonPlugin = (locale) => createPluginFactory({
10169
10174
  key: PluginKeys.internalCommon,
10170
10175
  withOverrides: withInternalCommon,
10171
10176
  toolbarItems: [
10172
10177
  {
10173
10178
  key: ToolbarActionTypes.group,
10174
- name: '更多',
10175
- translateKey: 'more',
10179
+ name: locale().more,
10176
10180
  icon: 'more',
10177
10181
  type: ToolbarItemType.dropdown,
10178
10182
  dropdownMode: DropdownMode.icon,
@@ -10182,7 +10186,7 @@ const createCommonPlugin = createPluginFactory({
10182
10186
  includes: [MarkTypes.underline, MarkTypes.strike, ElementKinds.inlineCode]
10183
10187
  }
10184
10188
  ]
10185
- });
10189
+ })();
10186
10190
 
10187
10191
  const withGetFragment = (editor) => {
10188
10192
  const { getFragment } = editor;
@@ -10618,12 +10622,12 @@ const sizeOptions = () => {
10618
10622
  };
10619
10623
  });
10620
10624
  };
10621
- const createFontSizePlugin = createPluginFactory({
10625
+ const createFontSizePlugin = (locale) => createPluginFactory({
10622
10626
  key: PluginKeys.fontSize,
10623
10627
  toolbarItems: [
10624
10628
  {
10625
10629
  key: MarkTypes.fontSize,
10626
- name: '字号',
10630
+ name: locale().fontSize,
10627
10631
  type: ToolbarItemType.dropdown,
10628
10632
  dropdownItemKey: FontSizes.fontSize14,
10629
10633
  includes: FontSizeTypes
@@ -10633,7 +10637,7 @@ const createFontSizePlugin = createPluginFactory({
10633
10637
  options: {
10634
10638
  disabledOperateTypes: [...HEADING_TYPES, ElementKinds.image, ...DISABLED_OPERATE_TYPES]
10635
10639
  }
10636
- });
10640
+ })();
10637
10641
 
10638
10642
  const withHeading = (editor) => {
10639
10643
  const { insertBreak } = editor;
@@ -10659,15 +10663,14 @@ const withHeading = (editor) => {
10659
10663
  return editor;
10660
10664
  };
10661
10665
  const headingListPlugins = HeadingEditor.headingPlugins();
10662
- const createHeadingPlugin = createPluginFactory({
10666
+ const createHeadingPlugin = (locale) => createPluginFactory({
10663
10667
  key: PluginKeys.heading,
10664
10668
  withOverrides: withHeading,
10665
10669
  plugins: headingListPlugins,
10666
10670
  toolbarItems: [
10667
10671
  {
10668
10672
  key: ElementKinds.headingList,
10669
- name: '正文',
10670
- translateKey: 'headingList',
10673
+ name: locale().headingList,
10671
10674
  type: ToolbarItemType.dropdown,
10672
10675
  dropdownMode: DropdownMode.text,
10673
10676
  dropdownItemKey: ElementKinds.paragraph,
@@ -10675,16 +10678,14 @@ const createHeadingPlugin = createPluginFactory({
10675
10678
  },
10676
10679
  {
10677
10680
  key: ElementKinds.paragraph,
10678
- name: '正文',
10679
- translateKey: 'paragraph',
10681
+ name: locale().paragraph,
10680
10682
  styles: { height: '40px' },
10681
10683
  execute: editor => Transforms.setNodes(editor, { type: ElementKinds.paragraph }),
10682
10684
  active: editor => isParagraph(editor)
10683
10685
  },
10684
10686
  {
10685
10687
  key: ElementKinds.heading_1,
10686
- name: '标题1',
10687
- translateKey: 'heading1',
10688
+ name: locale().heading1,
10688
10689
  icon: 'header-1',
10689
10690
  styles: { height: '40px', fontSize: '28px' },
10690
10691
  execute: editor => HeadingEditor.setHeading(editor, ElementKinds.heading_1),
@@ -10693,8 +10694,7 @@ const createHeadingPlugin = createPluginFactory({
10693
10694
  {
10694
10695
  key: ElementKinds.heading_2,
10695
10696
  icon: 'header-2',
10696
- name: '标题2',
10697
- translateKey: 'heading2',
10697
+ name: locale().heading2,
10698
10698
  styles: { height: '38px', fontSize: '24px' },
10699
10699
  execute: editor => HeadingEditor.setHeading(editor, ElementKinds.heading_2),
10700
10700
  active: editor => HeadingEditor.isHeadingActive(editor, ElementKinds.heading_2)
@@ -10702,8 +10702,7 @@ const createHeadingPlugin = createPluginFactory({
10702
10702
  {
10703
10703
  key: ElementKinds.heading_3,
10704
10704
  icon: 'header-3',
10705
- name: '标题3',
10706
- translateKey: 'heading3',
10705
+ name: locale().heading3,
10707
10706
  styles: { height: '34px', fontSize: '20px' },
10708
10707
  execute: editor => HeadingEditor.setHeading(editor, ElementKinds.heading_3),
10709
10708
  active: editor => HeadingEditor.isHeadingActive(editor, ElementKinds.heading_3)
@@ -10711,8 +10710,7 @@ const createHeadingPlugin = createPluginFactory({
10711
10710
  {
10712
10711
  key: ElementKinds.heading_4,
10713
10712
  icon: 'header-4',
10714
- name: '标题4',
10715
- translateKey: 'heading4',
10713
+ name: locale().heading4,
10716
10714
  styles: { height: '30px', fontSize: '16px' },
10717
10715
  execute: editor => HeadingEditor.setHeading(editor, ElementKinds.heading_4),
10718
10716
  active: editor => HeadingEditor.isHeadingActive(editor, ElementKinds.heading_4)
@@ -10724,60 +10722,52 @@ const createHeadingPlugin = createPluginFactory({
10724
10722
  type: ThePluginMenuItemType.icon,
10725
10723
  execute: editor => HeadingEditor.setHeading(editor, ElementKinds.heading_1),
10726
10724
  active: editor => HeadingEditor.isHeadingActive(editor, ElementKinds.heading_1),
10727
- name: '标题1',
10728
- translateKey: 'heading1',
10725
+ name: locale().heading1,
10729
10726
  displayKey: '/h1',
10730
- description: '插入一级标题',
10731
- descriptionTranslateKey: 'heading1Desc',
10727
+ description: locale().heading1Desc,
10732
10728
  icon: 'header-1',
10733
10729
  menuIcon: PluginMenuIcons.heading_1,
10734
- keywords: 'h,H,bt,heading1,标题,h1,標題,заголовок,見出し,überschrift'
10730
+ keywords: `h,H,bt,heading1,h1,${locale().heading1}`
10735
10731
  },
10736
10732
  {
10737
10733
  key: ElementKinds.heading_2,
10738
10734
  type: ThePluginMenuItemType.icon,
10739
10735
  execute: editor => HeadingEditor.setHeading(editor, ElementKinds.heading_2),
10740
10736
  active: editor => HeadingEditor.isHeadingActive(editor, ElementKinds.heading_2),
10741
- name: '标题2',
10742
- translateKey: 'heading2',
10737
+ name: locale().heading2,
10743
10738
  icon: 'header-2',
10744
- description: '插入二级标题',
10745
- descriptionTranslateKey: 'heading2Desc',
10739
+ description: locale().heading2Desc,
10746
10740
  displayKey: '/h2',
10747
10741
  menuIcon: PluginMenuIcons.heading_2,
10748
- keywords: 'h,H,bt,heading2,标题,h2,標題,заголовок,見出し,überschrift'
10742
+ keywords: `h,H,bt,heading2,h2,${locale().heading2}`
10749
10743
  },
10750
10744
  {
10751
10745
  key: ElementKinds.heading_3,
10752
10746
  type: ThePluginMenuItemType.icon,
10753
10747
  execute: editor => HeadingEditor.setHeading(editor, ElementKinds.heading_3),
10754
10748
  active: editor => HeadingEditor.isHeadingActive(editor, ElementKinds.heading_3),
10755
- name: '标题3',
10756
- translateKey: 'heading3',
10749
+ name: locale().heading3,
10757
10750
  icon: 'header-3',
10758
- description: '插入三级标题',
10759
- descriptionTranslateKey: 'heading3Desc',
10751
+ description: locale().heading3Desc,
10760
10752
  displayKey: '/h3',
10761
10753
  menuIcon: PluginMenuIcons.heading_3,
10762
- keywords: 'h,H,bt,heading3,标题,h3,標題,заголовок,見出し,überschrift'
10754
+ keywords: `h,H,bt,heading3,h3,${locale().heading3}`
10763
10755
  },
10764
10756
  {
10765
10757
  key: ElementKinds.heading_4,
10766
10758
  type: ThePluginMenuItemType.icon,
10767
10759
  execute: editor => HeadingEditor.setHeading(editor, ElementKinds.heading_4),
10768
10760
  active: editor => HeadingEditor.isHeadingActive(editor, ElementKinds.heading_4),
10769
- name: '标题4',
10770
- translateKey: 'heading4',
10761
+ name: locale().heading4,
10771
10762
  icon: 'header-4',
10772
- description: '插入四级标题',
10773
- descriptionTranslateKey: 'heading4Desc',
10763
+ description: locale().heading4Desc,
10774
10764
  displayKey: '/h4',
10775
10765
  menuIcon: PluginMenuIcons.heading_4,
10776
- keywords: 'h,H,bt,heading4,BT,标题,h4,標題,заголовок,見出し,überschrift'
10766
+ keywords: `h,H,bt,heading4,BT,h4,${locale().heading4}`
10777
10767
  }
10778
10768
  ],
10779
10769
  options: headingOptions
10780
- });
10770
+ })();
10781
10771
 
10782
10772
  class TheHr extends TheBaseElement {
10783
10773
  ngAfterViewInit() {
@@ -10830,15 +10820,14 @@ const withHr = (editor) => {
10830
10820
  };
10831
10821
  return editor;
10832
10822
  };
10833
- const createHrPlugin = createPluginFactory({
10823
+ const createHrPlugin = (locale) => createPluginFactory({
10834
10824
  key: PluginKeys.hr,
10835
10825
  withOverrides: withHr,
10836
10826
  toolbarItems: [
10837
10827
  {
10838
10828
  key: ElementKinds.hr,
10839
10829
  icon: 'horizontal-line',
10840
- name: '分割线',
10841
- translateKey: 'divider',
10830
+ name: locale().divider,
10842
10831
  active: editor => isBlockActive(editor, ElementKinds.hr),
10843
10832
  execute: editor => HrEditor.insertHr(editor)
10844
10833
  }
@@ -10846,22 +10835,20 @@ const createHrPlugin = createPluginFactory({
10846
10835
  menuItems: [
10847
10836
  {
10848
10837
  key: ElementKinds.hr,
10849
- keywords: 'fengexian,fgx,divider,line,分割线,分隔線,разделитель,区切り線,trennlinie',
10838
+ keywords: `fengexian,fgx,divider,line,${locale().divider}`,
10850
10839
  type: ThePluginMenuItemType.group,
10851
10840
  active: editor => isBlockActive(editor, ElementKinds.hr),
10852
10841
  execute: editor => HrEditor.insertHr(editor),
10853
- name: '分割线',
10854
- translateKey: 'divider',
10842
+ name: locale().divider,
10855
10843
  menuIcon: PluginMenuIcons.hr,
10856
- description: '使用水平线分隔内容',
10857
- descriptionTranslateKey: 'dividerDesc',
10844
+ description: locale().dividerDesc,
10858
10845
  displayKey: '/fgx'
10859
10846
  }
10860
10847
  ],
10861
10848
  options: {
10862
10849
  allowParentTypes: [ElementKinds.tableCell]
10863
10850
  }
10864
- });
10851
+ })();
10865
10852
 
10866
10853
  class TheImage extends TheBaseElement {
10867
10854
  get isOpen() {
@@ -10882,7 +10869,7 @@ class TheImage extends TheBaseElement {
10882
10869
  this.thyPopover = thyPopover;
10883
10870
  this.overlay = overlay;
10884
10871
  this.destroyRef = destroyRef;
10885
- this.locale = injectTranslations();
10872
+ this.locale = injectTranslations(inject(TheI18nService));
10886
10873
  this.naturalWidth = 0;
10887
10874
  this.naturalHeight = 0;
10888
10875
  this.imageEntry = {};
@@ -11362,15 +11349,14 @@ const withImage = (editor) => {
11362
11349
  };
11363
11350
  return editor;
11364
11351
  };
11365
- const createImagePlugin = createPluginFactory({
11352
+ const createImagePlugin = (locale) => createPluginFactory({
11366
11353
  key: PluginKeys.image,
11367
11354
  withOverrides: withImage,
11368
11355
  toolbarItems: [
11369
11356
  {
11370
11357
  key: ElementKinds.image,
11371
11358
  icon: 'image',
11372
- name: '图片',
11373
- translateKey: 'image',
11359
+ name: locale().image,
11374
11360
  execute: editor => ImageEditor.openUpload(editor),
11375
11361
  active: editor => ImageEditor.isActive(editor)
11376
11362
  }
@@ -11378,14 +11364,12 @@ const createImagePlugin = createPluginFactory({
11378
11364
  menuItems: [
11379
11365
  {
11380
11366
  key: ElementKinds.image,
11381
- keywords: 'tp,tupian,image,photo,picture,图片,圖片,изображение,画像,がぞう,bild',
11367
+ keywords: `tp,tupian,image,photo,picture,${locale().image}`,
11382
11368
  execute: editor => ImageEditor.openUpload(editor),
11383
11369
  active: editor => ImageEditor.isActive(editor),
11384
- name: '图片',
11385
- translateKey: 'image',
11370
+ name: locale().image,
11386
11371
  menuIcon: PluginMenuIcons.image,
11387
- description: '支持 jpg、jpeg 等格式图像',
11388
- descriptionTranslateKey: 'imageDesc',
11372
+ description: locale().imageDesc,
11389
11373
  type: ThePluginMenuItemType.group,
11390
11374
  displayKey: '/tp'
11391
11375
  }
@@ -11394,7 +11378,7 @@ const createImagePlugin = createPluginFactory({
11394
11378
  allowParentTypes: [ElementKinds.listItem, ElementKinds.tableCell, ElementKinds.blockquote],
11395
11379
  imageTypes: ['image/png', 'image/jpeg', 'image/gif', 'image/bmp', 'image/svg+xml']
11396
11380
  }
11397
- });
11381
+ })();
11398
11382
 
11399
11383
  const onKeydownTextIndent = (editor, event, kinds, textIndentDisabled) => {
11400
11384
  const { selection } = editor;
@@ -11460,7 +11444,7 @@ const withIndent = (editor) => {
11460
11444
  };
11461
11445
  return editor;
11462
11446
  };
11463
- const createIndentPlugin = createPluginFactory({
11447
+ const createIndentPlugin = (locale) => createPluginFactory({
11464
11448
  key: PluginKeys.indent,
11465
11449
  withOverrides: withIndent,
11466
11450
  toolbarItems: [
@@ -11475,16 +11459,14 @@ const createIndentPlugin = createPluginFactory({
11475
11459
  },
11476
11460
  {
11477
11461
  key: Indents.indentRight,
11478
- name: '增加缩进',
11479
- translateKey: 'increaseIndent',
11462
+ name: locale().increaseIndent,
11480
11463
  icon: 'float-left',
11481
11464
  shortcutKey: 'Tab',
11482
11465
  execute: editor => IndentEditor.setIndent(editor)
11483
11466
  },
11484
11467
  {
11485
11468
  key: Indents.indentLeft,
11486
- name: '减少缩进',
11487
- translateKey: 'decreaseIndent',
11469
+ name: locale().decreaseIndent,
11488
11470
  icon: 'float-right',
11489
11471
  shortcutKey: 'Shift+Tab',
11490
11472
  execute: editor => IndentEditor.cancelIndent(editor)
@@ -11502,7 +11484,7 @@ const createIndentPlugin = createPluginFactory({
11502
11484
  disableIndentTypes: [ElementKinds.bulletedList, ElementKinds.numberedList, ElementKinds.checkItem],
11503
11485
  disabledOperateTypes: [ElementKinds.image, ...DISABLED_OPERATE_TYPES]
11504
11486
  }
11505
- });
11487
+ })();
11506
11488
 
11507
11489
  /**
11508
11490
  * Remove nodes with empty text.
@@ -11584,15 +11566,14 @@ const withInlineCode = (editor) => {
11584
11566
  editor = withRemoveEmptyNodes({ type: ElementKinds.inlineCode })(editor);
11585
11567
  return editor;
11586
11568
  };
11587
- const createInlineCodePlugin = createPluginFactory({
11569
+ const createInlineCodePlugin = (locale) => createPluginFactory({
11588
11570
  key: PluginKeys.inlineCode,
11589
11571
  withOverrides: withInlineCode,
11590
11572
  toolbarItems: [
11591
11573
  {
11592
11574
  key: ElementKinds.inlineCode,
11593
11575
  icon: 'code',
11594
- name: '行内代码',
11595
- translateKey: 'inlineCode',
11576
+ name: locale().inlineCode,
11596
11577
  shortcutKey: `${CONTROL_KEY}+E`,
11597
11578
  execute: editor => InlineCodeEditor.toggleInlineCode(editor),
11598
11579
  active: editor => InlineCodeEditor.isInlineCodeActive(editor)
@@ -11602,7 +11583,7 @@ const createInlineCodePlugin = createPluginFactory({
11602
11583
  isInline: true,
11603
11584
  disabledOperateTypes: [ElementKinds.image, ...DISABLED_OPERATE_TYPES]
11604
11585
  }
11605
- });
11586
+ })();
11606
11587
 
11607
11588
  class TheLinkEdit {
11608
11589
  handleDocumentMouseDown(event) {
@@ -11615,7 +11596,7 @@ class TheLinkEdit {
11615
11596
  this.className = 'the-link-edit-container';
11616
11597
  this.link = '';
11617
11598
  this.text = '';
11618
- this.locale = injectTranslations();
11599
+ this.locale = injectTranslations(inject(TheI18nService));
11619
11600
  this.validatorConfig = {
11620
11601
  validationMessages: {
11621
11602
  link: {
@@ -11930,15 +11911,14 @@ const withLink = (editor) => {
11930
11911
  editor = withRemoveEmptyNodes({ type: ElementKinds.link })(editor);
11931
11912
  return editor;
11932
11913
  };
11933
- const createLinkPlugin = createPluginFactory({
11914
+ const createLinkPlugin = (locale) => createPluginFactory({
11934
11915
  key: PluginKeys.link,
11935
11916
  withOverrides: withLink,
11936
11917
  toolbarItems: [
11937
11918
  {
11938
11919
  key: ElementKinds.link,
11939
11920
  icon: 'link-insert',
11940
- name: '链接',
11941
- translateKey: 'link',
11921
+ name: locale().link,
11942
11922
  execute: editor => LinkEditor.insertLink(editor),
11943
11923
  active: editor => LinkEditor.isActive(editor)
11944
11924
  }
@@ -11946,14 +11926,12 @@ const createLinkPlugin = createPluginFactory({
11946
11926
  menuItems: [
11947
11927
  {
11948
11928
  key: ElementKinds.link,
11949
- keywords: 'lj,lianjie,link,链接,鏈接,cсылка,リンク',
11950
- description: '支持插入链接',
11951
- descriptionTranslateKey: 'linkDesc',
11929
+ keywords: `lj,lianjie,link,${locale().link}`,
11930
+ description: locale().linkDesc,
11952
11931
  execute: editor => LinkEditor.insertLink(editor),
11953
11932
  active: editor => LinkEditor.isActive(editor),
11954
11933
  type: ThePluginMenuItemType.icon,
11955
- name: '链接',
11956
- translateKey: 'link',
11934
+ name: locale().link,
11957
11935
  displayKey: '/lj',
11958
11936
  icon: 'link-insert',
11959
11937
  menuIcon: PluginMenuIcons.link
@@ -11963,7 +11941,7 @@ const createLinkPlugin = createPluginFactory({
11963
11941
  isInline: true,
11964
11942
  disabledOperateTypes: [ElementKinds.image, ...DISABLED_OPERATE_TYPES]
11965
11943
  }
11966
- });
11944
+ })();
11967
11945
 
11968
11946
  class TheBulletedList extends TheBaseElement {
11969
11947
  get level() {
@@ -12889,7 +12867,7 @@ const listOptions = {
12889
12867
  validLiChildrenTypes: [ElementKinds.image],
12890
12868
  allowParentTypes: [ElementKinds.listItem, ElementKinds.tableCell, ElementKinds.blockquote]
12891
12869
  };
12892
- const createListPlugin = createPluginFactory({
12870
+ const createListPlugin = (locale) => createPluginFactory({
12893
12871
  key: PluginKeys.list,
12894
12872
  withOverrides: withList,
12895
12873
  plugins: [
@@ -12910,16 +12888,14 @@ const createListPlugin = createPluginFactory({
12910
12888
  {
12911
12889
  key: ElementKinds.numberedList,
12912
12890
  icon: 'list-ordered',
12913
- name: '有序列表',
12914
- translateKey: 'orderedList',
12891
+ name: locale().orderedList,
12915
12892
  execute: editor => ListEditor.toggleList(editor, ElementKinds.numberedList),
12916
12893
  active: editor => ListEditor.isActive(editor, ElementKinds.numberedList)
12917
12894
  },
12918
12895
  {
12919
12896
  key: ElementKinds.bulletedList,
12920
12897
  icon: 'list-bullet',
12921
- name: '无序列表',
12922
- translateKey: 'unorderedList',
12898
+ name: locale().unorderedList,
12923
12899
  execute: editor => ListEditor.toggleList(editor, ElementKinds.bulletedList),
12924
12900
  active: editor => ListEditor.isActive(editor, ElementKinds.bulletedList)
12925
12901
  }
@@ -12927,35 +12903,31 @@ const createListPlugin = createPluginFactory({
12927
12903
  menuItems: [
12928
12904
  {
12929
12905
  key: ElementKinds.numberedList,
12930
- keywords: 'yxlb,youxuliebiao,numbered list,numberedlist,有序列表,有序清單,нумерованный списо,nummerierte liste,順序付きリスト,番号付きリスト,',
12906
+ keywords: `yxlb,youxuliebiao,numbered list,numberedlist,${locale().orderedList}`,
12931
12907
  execute: editor => ListEditor.toggleList(editor, ElementKinds.numberedList),
12932
12908
  active: editor => ListEditor.isActive(editor, ElementKinds.numberedList),
12933
12909
  type: ThePluginMenuItemType.icon,
12934
- name: '有序列表',
12935
- translateKey: 'orderedList',
12936
- description: '插入有序列表',
12937
- descriptionTranslateKey: 'orderedListDesc',
12910
+ name: locale().orderedList,
12911
+ description: locale().orderedListDesc,
12938
12912
  displayKey: '/yxlb',
12939
12913
  icon: 'list-ordered',
12940
12914
  menuIcon: PluginMenuIcons.numberedList
12941
12915
  },
12942
12916
  {
12943
12917
  key: ElementKinds.bulletedList,
12944
- keywords: 'wxlb,wuxuliebiao,bulletedlist,bulleted list,无序列表,無序清單,неупорядоченный список,ungeordneten liste,順序なしリスト,番号なしリスト',
12918
+ keywords: `wxlb,wuxuliebiao,bulletedlist,bulleted list,${locale().unorderedList}`,
12945
12919
  execute: editor => ListEditor.toggleList(editor, ElementKinds.bulletedList),
12946
12920
  active: editor => ListEditor.isActive(editor, ElementKinds.bulletedList),
12947
12921
  type: ThePluginMenuItemType.icon,
12948
- name: '无序列表',
12949
- translateKey: 'unorderedList',
12950
- description: '插入无序列表',
12951
- descriptionTranslateKey: 'unorderedListDesc',
12922
+ name: locale().unorderedList,
12923
+ description: locale().unorderedListDesc,
12952
12924
  displayKey: '/wxlb',
12953
12925
  icon: 'list-bullet',
12954
12926
  menuIcon: PluginMenuIcons.bulletedList
12955
12927
  }
12956
12928
  ],
12957
12929
  options: listOptions
12958
- });
12930
+ })();
12959
12931
 
12960
12932
  const withMark = (editor) => {
12961
12933
  const e = editor;
@@ -13015,15 +12987,14 @@ const withMark = (editor) => {
13015
12987
  };
13016
12988
  return e;
13017
12989
  };
13018
- const createMarkPlugin = createPluginFactory({
12990
+ const createMarkPlugin = (locale) => createPluginFactory({
13019
12991
  key: PluginKeys.mark,
13020
12992
  withOverrides: withMark,
13021
12993
  toolbarItems: [
13022
12994
  {
13023
12995
  key: MarkTypes.bold,
13024
12996
  icon: 'bold',
13025
- name: '加粗',
13026
- translateKey: 'bold',
12997
+ name: locale().bold,
13027
12998
  shortcutKey: `${CONTROL_KEY}+B`,
13028
12999
  execute: editor => MarkEditor.toggleMark(editor, MarkTypes.bold),
13029
13000
  active: editor => MarkEditor.isMarkActive(editor, MarkTypes.bold)
@@ -13031,8 +13002,7 @@ const createMarkPlugin = createPluginFactory({
13031
13002
  {
13032
13003
  key: MarkTypes.italic,
13033
13004
  icon: 'italic',
13034
- name: '斜体',
13035
- translateKey: 'italic',
13005
+ name: locale().italic,
13036
13006
  shortcutKey: `${CONTROL_KEY}+I`,
13037
13007
  execute: editor => MarkEditor.toggleMark(editor, MarkTypes.italic),
13038
13008
  active: editor => MarkEditor.isMarkActive(editor, MarkTypes.italic)
@@ -13040,16 +13010,14 @@ const createMarkPlugin = createPluginFactory({
13040
13010
  {
13041
13011
  key: MarkTypes.strike,
13042
13012
  icon: 'strike',
13043
- name: '删除线',
13044
- translateKey: 'strike',
13013
+ name: locale().strike,
13045
13014
  execute: editor => MarkEditor.toggleMark(editor, MarkTypes.strike),
13046
13015
  active: editor => MarkEditor.isMarkActive(editor, MarkTypes.strike)
13047
13016
  },
13048
13017
  {
13049
13018
  key: MarkTypes.underline,
13050
13019
  icon: 'underline',
13051
- name: '下划线',
13052
- translateKey: 'underline',
13020
+ name: locale().underline,
13053
13021
  shortcutKey: `${CONTROL_KEY}+U`,
13054
13022
  execute: editor => MarkEditor.toggleMark(editor, MarkTypes.underline),
13055
13023
  active: editor => MarkEditor.isMarkActive(editor, MarkTypes.underline)
@@ -13058,7 +13026,7 @@ const createMarkPlugin = createPluginFactory({
13058
13026
  options: {
13059
13027
  disabledOperateTypes: [ElementKinds.image, ...DISABLED_OPERATE_TYPES]
13060
13028
  }
13061
- });
13029
+ })();
13062
13030
 
13063
13031
  const withNodeID = (e) => {
13064
13032
  const editor = e;
@@ -13240,38 +13208,34 @@ const PaintFormatEditor = {
13240
13208
  editor.onChange();
13241
13209
  }
13242
13210
  };
13243
- const createPaintFormatPlugin = createPluginFactory({
13211
+ const createPaintFormatPlugin = (locale) => createPluginFactory({
13244
13212
  key: PluginKeys.paintFormat,
13245
13213
  toolbarItems: [
13246
13214
  {
13247
13215
  key: ToolbarActionTypes.undo,
13248
13216
  icon: 'undo',
13249
- name: '撤销',
13250
- translateKey: 'undo',
13217
+ name: locale().undo,
13251
13218
  shortcutKey: `${CONTROL_KEY}+Z`,
13252
13219
  execute: (editor) => editor.undo()
13253
13220
  },
13254
13221
  {
13255
13222
  key: ToolbarActionTypes.redo,
13256
13223
  icon: 'redo',
13257
- name: '重做',
13258
- translateKey: 'redo',
13224
+ name: locale().redo,
13259
13225
  shortcutKey: `${CONTROL_KEY}+Shift+Z`,
13260
13226
  execute: (editor) => editor.redo()
13261
13227
  },
13262
13228
  {
13263
13229
  key: ToolbarActionTypes.paintformat,
13264
13230
  icon: 'paintformat',
13265
- name: '格式刷',
13266
- translateKey: 'paintFormat',
13231
+ name: locale().paintFormat,
13267
13232
  execute: PaintFormatEditor.enableFormatBrush,
13268
13233
  active: PaintFormatEditor.isActive
13269
13234
  },
13270
13235
  {
13271
13236
  key: ToolbarActionTypes.clean,
13272
13237
  icon: 'clean',
13273
- name: '清除格式',
13274
- translateKey: 'cleanFormat',
13238
+ name: locale().cleanFormat,
13275
13239
  execute: (editor) => {
13276
13240
  const { selection } = editor;
13277
13241
  if (!selection) {
@@ -13296,7 +13260,7 @@ const createPaintFormatPlugin = createPluginFactory({
13296
13260
  }
13297
13261
  }
13298
13262
  ]
13299
- });
13263
+ })();
13300
13264
 
13301
13265
  const withQuickInsert = (editor) => {
13302
13266
  const { onKeydown, onChange, insertText, insertBreak, deleteBackward } = editor;
@@ -14083,7 +14047,7 @@ class TheTableContextMenuService {
14083
14047
  this.thyPopover = thyPopover;
14084
14048
  this.ngZone = ngZone;
14085
14049
  this.theContextService = theContextService;
14086
- this.locale = injectTranslations();
14050
+ this.locale = injectTranslations(inject(TheI18nService));
14087
14051
  this.menuEntities = [
14088
14052
  {
14089
14053
  key: 'background-color',
@@ -14404,7 +14368,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
14404
14368
  class TheTableOptions {
14405
14369
  constructor(popoverRef) {
14406
14370
  this.popoverRef = popoverRef;
14407
- this.locale = injectTranslations();
14371
+ this.locale = injectTranslations(inject(TheI18nService));
14408
14372
  this.tableDropdownList = [
14409
14373
  {
14410
14374
  name: this.locale().titleRow,
@@ -14511,7 +14475,7 @@ class TheTableToolbar {
14511
14475
  this.popoverRef = popoverRef;
14512
14476
  this.thyNotifyService = thyNotifyService;
14513
14477
  this.viewContainerRef = viewContainerRef;
14514
- this.locale = injectTranslations();
14478
+ this.locale = injectTranslations(inject(TheI18nService));
14515
14479
  this.cellMenuList = [
14516
14480
  {
14517
14481
  key: 'merge-cells',
@@ -16468,8 +16432,8 @@ class TheTableToolbarItem extends TheBaseToolbarItem {
16468
16432
  get isOpenTableSelect() {
16469
16433
  return this.tableSelectRef && this.tableSelectRef.componentInstance;
16470
16434
  }
16471
- constructor(thyPopover, overlay, i18n) {
16472
- super(i18n);
16435
+ constructor(thyPopover, overlay) {
16436
+ super();
16473
16437
  this.thyPopover = thyPopover;
16474
16438
  this.overlay = overlay;
16475
16439
  }
@@ -16506,7 +16470,7 @@ class TheTableToolbarItem extends TheBaseToolbarItem {
16506
16470
  });
16507
16471
  return this.tableSelectRef;
16508
16472
  }
16509
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheTableToolbarItem, deps: [{ token: i1.ThyPopover }, { token: i2.Overlay }, { token: TheI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
16473
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheTableToolbarItem, deps: [{ token: i1.ThyPopover }, { token: i2.Overlay }], target: i0.ɵɵFactoryTarget.Component }); }
16510
16474
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheTableToolbarItem, isStandalone: true, selector: "the-table-toolbar-item", host: { classAttribute: "the-toolbar-dropdown-container" }, usesInheritance: true, ngImport: i0, template: `
16511
16475
  <a
16512
16476
  href="javascript:;"
@@ -16514,7 +16478,7 @@ class TheTableToolbarItem extends TheBaseToolbarItem {
16514
16478
  thyAction
16515
16479
  [thyActionIcon]="toolbarItem.icon"
16516
16480
  [thyActionActive]="active"
16517
- [thyTooltip]="locale()[toolbarItem?.translateKey] ?? toolbarItem?.name"
16481
+ [thyTooltip]="toolbarItem?.name"
16518
16482
  thyTooltipPlacement="top"
16519
16483
  (mousedown)="preventDefault($event)"
16520
16484
  (click)="execute($event)"
@@ -16534,7 +16498,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
16534
16498
  thyAction
16535
16499
  [thyActionIcon]="toolbarItem.icon"
16536
16500
  [thyActionActive]="active"
16537
- [thyTooltip]="locale()[toolbarItem?.translateKey] ?? toolbarItem?.name"
16501
+ [thyTooltip]="toolbarItem?.name"
16538
16502
  thyTooltipPlacement="top"
16539
16503
  (mousedown)="preventDefault($event)"
16540
16504
  (click)="execute($event)"
@@ -16548,7 +16512,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
16548
16512
  standalone: true,
16549
16513
  imports: [ThyAction, ThyTooltipDirective, ThyIcon]
16550
16514
  }]
16551
- }], ctorParameters: () => [{ type: i1.ThyPopover }, { type: i2.Overlay }, { type: TheI18nService }] });
16515
+ }], ctorParameters: () => [{ type: i1.ThyPopover }, { type: i2.Overlay }] });
16552
16516
 
16553
16517
  /**
16554
16518
  * Clear the content of the given node
@@ -17108,7 +17072,7 @@ const withTable = (editor) => {
17108
17072
  };
17109
17073
  return editor;
17110
17074
  };
17111
- const createTablePlugin = createPluginFactory({
17075
+ const createTablePlugin = (locale) => createPluginFactory({
17112
17076
  key: PluginKeys.table,
17113
17077
  withOverrides: withTable,
17114
17078
  nestedStructureByKey: {
@@ -17119,8 +17083,7 @@ const createTablePlugin = createPluginFactory({
17119
17083
  {
17120
17084
  key: ElementKinds.table,
17121
17085
  icon: 'table-border-all',
17122
- name: '表格',
17123
- translateKey: 'table',
17086
+ name: locale().table,
17124
17087
  type: ToolbarItemType.dropdown,
17125
17088
  dropdownMode: DropdownMode.icon,
17126
17089
  iconComponent: TheTableToolbarItem,
@@ -17131,15 +17094,13 @@ const createTablePlugin = createPluginFactory({
17131
17094
  menuItems: [
17132
17095
  {
17133
17096
  key: ElementKinds.table,
17134
- keywords: 'biaoge,bg,table,表格,таблицу,テーブル,tabelle',
17097
+ keywords: `biaoge,bg,table,${locale().table}`,
17135
17098
  execute: editor => TableEditor.insertTable(editor),
17136
17099
  active: editor => TableEditor.isActive(editor),
17137
- name: '表格',
17138
- translateKey: 'table',
17100
+ name: locale().table,
17139
17101
  type: ThePluginMenuItemType.group,
17140
17102
  menuIcon: PluginMenuIcons.table,
17141
- description: '支持插入表格',
17142
- descriptionTranslateKey: 'tableDesc',
17103
+ description: locale().tableDesc,
17143
17104
  displayKey: '/bg'
17144
17105
  }
17145
17106
  ],
@@ -17151,7 +17112,7 @@ const createTablePlugin = createPluginFactory({
17151
17112
  event.preventDefault();
17152
17113
  }
17153
17114
  }
17154
- });
17115
+ })();
17155
17116
 
17156
17117
  class TheTodoItem extends TheBaseElement {
17157
17118
  constructor() {
@@ -17267,15 +17228,14 @@ const withTodoItem = (editor) => {
17267
17228
  };
17268
17229
  return editor;
17269
17230
  };
17270
- const createTodoItemPlugin = createPluginFactory({
17231
+ const createTodoItemPlugin = (locale) => createPluginFactory({
17271
17232
  key: PluginKeys.checkItem,
17272
17233
  withOverrides: withTodoItem,
17273
17234
  toolbarItems: [
17274
17235
  {
17275
17236
  key: ElementKinds.checkItem,
17276
17237
  icon: 'list-check',
17277
- name: '待办事项',
17278
- translateKey: 'checkItem',
17238
+ name: locale().checkItem,
17279
17239
  execute: editor => TodoItemEditor.insertTodoItem(editor),
17280
17240
  active: editor => TodoItemEditor.isActive(editor)
17281
17241
  }
@@ -17283,14 +17243,12 @@ const createTodoItemPlugin = createPluginFactory({
17283
17243
  menuItems: [
17284
17244
  {
17285
17245
  key: ElementKinds.checkItem,
17286
- keywords: 'dbsx,daibanshixiang,to do list,todolist,待办事项,待辦事項,Задача,タスク,zu tun,aufgabe,zu tun',
17287
- description: '插入待办事项',
17288
- descriptionTranslateKey: 'checkItemDesc',
17246
+ keywords: `dbsx,daibanshixiang,to do list,todolist,${locale().checkItem}`,
17247
+ description: locale().checkItemDesc,
17289
17248
  execute: editor => TodoItemEditor.insertTodoItem(editor),
17290
17249
  active: editor => TodoItemEditor.isActive(editor),
17291
17250
  type: ThePluginMenuItemType.icon,
17292
- name: '待办事项',
17293
- translateKey: 'checkItem',
17251
+ name: locale().checkItem,
17294
17252
  displayKey: '/dbsx',
17295
17253
  icon: 'list-check',
17296
17254
  menuIcon: PluginMenuIcons.checkItem
@@ -17300,43 +17258,43 @@ const createTodoItemPlugin = createPluginFactory({
17300
17258
  allowParentTypes: [ElementKinds.tableCell, ElementKinds.blockquote],
17301
17259
  editableWithReadonly: false
17302
17260
  }
17303
- });
17261
+ })();
17304
17262
 
17305
- const internalPlugins = () => [
17263
+ const internalPlugins = (locale) => [
17306
17264
  createTheHistoryPlugin(),
17307
- createCommonPlugin(),
17265
+ createCommonPlugin(locale),
17308
17266
  createInsertDataByInvalidTypePlugin(),
17309
17267
  createRemoveEmptyPlugin(),
17310
17268
  createRemoveVoidPlugin(),
17311
17269
  createBlockCardPlugin(), // should in the front of list、resettype、todo、deserialize-html
17312
17270
  createResetTypePlugin(),
17313
- createIndentPlugin(), // should in the front of list
17314
- createListPlugin(),
17315
- createLinkPlugin(),
17316
- createTablePlugin(),
17317
- createTodoItemPlugin(),
17318
- createHrPlugin(),
17319
- createAlignPlugin(),
17320
- createCodePlugin(),
17321
- createHeadingPlugin(),
17322
- createVerticalAlignPlugin(),
17323
- createMarkPlugin(),
17324
- createFontSizePlugin(),
17325
- createColorPlugin(),
17271
+ createIndentPlugin(locale), // should in the front of list
17272
+ createListPlugin(locale),
17273
+ createLinkPlugin(locale),
17274
+ createTablePlugin(locale),
17275
+ createTodoItemPlugin(locale),
17276
+ createHrPlugin(locale),
17277
+ createAlignPlugin(locale),
17278
+ createCodePlugin(locale),
17279
+ createHeadingPlugin(locale),
17280
+ createVerticalAlignPlugin(locale),
17281
+ createMarkPlugin(locale),
17282
+ createFontSizePlugin(locale),
17283
+ createColorPlugin(locale),
17326
17284
  createSoftBreakPlugin(),
17327
- createBlockquotePlugin(),
17285
+ createBlockquotePlugin(locale),
17328
17286
  createNodeIDPlugin(),
17329
17287
  createAutoFormatPlugin(),
17330
- createPaintFormatPlugin(),
17288
+ createPaintFormatPlugin(locale),
17331
17289
  createTrailingNodePlugin(),
17332
17290
  createMoveSelectionPlugin(),
17333
17291
  createInsertParagraphNodesPlugin(),
17334
17292
  createGetFragmentPlugin(),
17335
- createImagePlugin(), // must be before withDeserializeHTML
17293
+ createImagePlugin(locale), // must be before withDeserializeHTML
17336
17294
  createDeserializeHTMLPlugin(),
17337
17295
  createDeserializeMdPlugin(),
17338
17296
  createQuickInsertPlugin(), // must be before plugins that include onkeydown events
17339
- createInlineCodePlugin(),
17297
+ createInlineCodePlugin(locale),
17340
17298
  createMentionPlugin()
17341
17299
  ];
17342
17300
 
@@ -17394,6 +17352,7 @@ class TheEditorComponent {
17394
17352
  this.elementToHtml = new WeakMap();
17395
17353
  this.onChangeCallback = () => { };
17396
17354
  this.onTouchedCallback = () => { };
17355
+ this.locale = injectTranslations(inject(TheI18nService));
17397
17356
  this.isFirstWriteValue = true;
17398
17357
  this.scrollSelectionIntoView = (e, domRange) => {
17399
17358
  const { neededScrollIntoView } = e.options;
@@ -17560,7 +17519,7 @@ class TheEditorComponent {
17560
17519
  autoNormalize: theOptions?.autoNormalize ?? presetAutoNormalize ?? false,
17561
17520
  mode: theOptions?.mode ?? presetMode ?? TheDataMode.html,
17562
17521
  inlineToolbarVisible: theOptions?.inlineToolbarVisible ?? presetInlineToolbarVisible,
17563
- menu: theOptions?.menu ?? presetMenu ?? DefaultPluginMenu,
17522
+ menu: theOptions?.menu ?? presetMenu ?? getTheDefaultPluginMenu(this.locale),
17564
17523
  toolbar: {
17565
17524
  align: theOptions?.toolbar?.align ?? presetToolbarAlign,
17566
17525
  global: optionsGlobalToolbar ?? presetGlobalToolbar ?? DefaultGlobalToolbarDefinition,
@@ -17579,7 +17538,7 @@ class TheEditorComponent {
17579
17538
  });
17580
17539
  }
17581
17540
  getPlugins() {
17582
- const defaultPlugins = internalPlugins();
17541
+ const defaultPlugins = internalPlugins(this.locale);
17583
17542
  const presetPlugins = this.presetConfig?.plugins ?? [];
17584
17543
  const applyPresetPlugins = presetPlugins.filter(presetPlugin => !this.thePlugins.some(plugin => presetPlugin.key === plugin.key));
17585
17544
  return [...defaultPlugins, ...applyPresetPlugins, ...this.thePlugins];
@@ -17902,7 +17861,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
17902
17861
  }] });
17903
17862
 
17904
17863
  class BasicTest {
17905
- constructor() {
17864
+ constructor(i18n) {
17906
17865
  this.value = [
17907
17866
  {
17908
17867
  type: ElementKinds.paragraph,
@@ -17914,11 +17873,12 @@ class BasicTest {
17914
17873
  }
17915
17874
  ];
17916
17875
  this.plugins = [];
17876
+ this.locale = signal(i18n.getLocale()().translations);
17917
17877
  }
17918
17878
  editorCreate(editor) {
17919
17879
  this.editor = editor;
17920
17880
  }
17921
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BasicTest, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17881
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BasicTest, deps: [{ token: TheI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
17922
17882
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BasicTest, isStandalone: true, selector: "basic-editor-component", providers: [
17923
17883
  THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER,
17924
17884
  {
@@ -17942,7 +17902,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
17942
17902
  }
17943
17903
  ]
17944
17904
  }]
17945
- }], propDecorators: { editorComponent: [{
17905
+ }], ctorParameters: () => [{ type: TheI18nService }], propDecorators: { editorComponent: [{
17946
17906
  type: ViewChild,
17947
17907
  args: [TheEditorComponent, { static: true }]
17948
17908
  }] } });
@@ -18091,5 +18051,5 @@ const withTestPlugin = (plugins, initValue) => {
18091
18051
  * Generated bundle index. Do not edit.
18092
18052
  */
18093
18053
 
18094
- export { ALIGN_BLOCK_TYPES, A_TAG_REL_ATTR, AlignEditor, Alignment, BLOCK_DELETE_BACKWARD_TYPES, BasicTest, BlockquoteEditor, CLIPBOARD_FORMAT_KEY, CODEMIRROR_PADDING_TOP, CODE_MODES, CONTAINER_BLOCKS, CONTROL_KEY, CodeEditor, ColorEditor, ColumnResizeNotifierSource, ColumnResizingStore, DEFAULT_LANGUAGE, DEFAULT_SCROLL_CONTAINER, DISABLED_OPERATE_TYPES, DataTransferFaker, DefaultElementOptions, DefaultGlobalToolbarDefinition, DefaultInlineToolbarDefinition, DefaultPluginMenu, DropdownMode, ELEMENT_UNIQUE_ID, EditorPresetConfigFactoryMock, ElementKinds, ErrorCodes, FontSizeTypes, FontSizes, HEADING_TYPES, HeadingEditor, HoveredCellInfo, HrEditor, IS_MAC, ImageEditor, IndentEditor, Indents, InlineCodeEditor, LINK_DEFAULT_TEXT, LIST_BLOCK_TYPES, LayoutTypes, LinkEditor, ListEditor, MarkEditor, MarkProps, MarkTypes, MentionEditor, PICTURE_ACCEPTED_UPLOAD_MIME, PICTURE_ACCEPTED_UPLOAD_SIZE, PluginKeys, PluginMenuIcons, PluginMenuSvgs, Position, QUICK_INSERT_HOTKEY, QuickInsertEditor, ResizeRef, SLA_TABLE_CELL_SELECTOR, SLA_TABLE_SELECTOR, STANDARD_HEADING_TYPES, ScrollDirection, SpecialBackgroundColor, TAB_SPACE, THE_EDITOR_BG_COLOR, THE_EDITOR_COLOR, THE_EDITOR_CONVERSION_HINT_REF, THE_EDITOR_ORIGIN_ANCHOR, THE_EDITOR_POPOVER_REF, THE_EDITOR_PREVIOUS_SELECTION, THE_EDITOR_UUID, THE_I18N_DE_DE, THE_I18N_EN_US, THE_I18N_JA_JP, THE_I18N_LOCALE_ID, THE_I18N_RU_RU, THE_I18N_ZH_HANS, THE_I18N_ZH_HANT, THE_IMAGE_SERVICE_TOKEN, THE_LISTBOX_PARENT_GROUP_TOKEN, THE_LISTBOX_PARENT_OPTION_TOKEN, THE_LISTBOX_TOKEN, THE_MODE_PROVIDER, THE_MODE_TOKEN, THE_PLUGIN_MENU_REF, THE_PRESET_CONFIG_TOKEN, TableCellEventDispatcher, TableEditor, TableHeaderBackgroundColor, TablePosition, TheBaseElement, TheBaseSuggestion, TheBaseToolbarDropdown, TheBaseToolbarItem, TheColumnResizeDirective, TheColumnResizeOverlayHandle, TheContextMenu, TheContextService, TheConversionHint, TheDataMode, TheDefaultElement, TheEditor, TheEditorComponent, TheEditorModule, TheI18nService, TheImage, TheInlineToolbar, TheListboxDirective, TheListboxGroupDirective, TheListboxOptionDirective, TheLocaleType, TheMode, TheModeConfig, ThePluginMenu, ThePluginMenuComponent, ThePluginMenuItemType, ThePreventDefaultDirective, index$1 as TheQueries, TheQuickInsert, TheTableSelect, TheTemplate, TheText, TheToolbarComponent, TheToolbarDropdown, TheToolbarGroup, TheToolbarGroupToken, TheToolbarItem, TheToolbarService, index as TheTransforms, TodoItemEditor, ToolbarActionTypes, ToolbarAlignment, ToolbarItemType, ToolbarMoreGroup, VOID_BLOCK_TYPES, VerticalAlignEditor, VerticalAlignment, ZERO_WIDTH_CHAR, autoFocus, base64toBlob, bottomLeftPosition, buildPluginMenu, buildPluginMenuItemMap, buildQuickInsertMenus, calcPrintColumnWidth, calcSpanForColumn, calcSpanForRow, calculateHeaderRowHeight, calculateRowControls, coercePixelsFromCssValue, combinePlugins, copyNode, createCell, createEmptyContent, createEmptyParagraph, createMentionPlugin, createPluginFactory, createRow, createTable, createTablePosition, createTest1Plugin, createTestPlugin, createToolbar, createVerticalAlignPlugin, customPluginMock, customPluginMockKey, dataDeserialize, dataSerializing, deDeLocale, deleteElementKey, enUsLocale, errorImageUrlMock, extractFragment, filterTextFormat, fixBlockWithoutParagraph, fixBlockWithoutText, flattenDeepPlugins, getCellPositionsFromRange, getColsTotalWidth, getColumnsWidth, getDirtyElements, getEditorScrollContainer, getEditorUUID, getElementClassByPrefix, getElementHeight, getElementWidth, getEndBlock, getGridColumns, getMode, getNextCell, getOriginCell, getPlugin, getPluginOptions, getPlugins, getRowsTotalHeight, getSelectCellNode, getSelectedCellPositions, getStartBlock, getTableByCell, getTableByRow, getToolbarClass, hasHeaderRow, headingOptions, htmlToTheia, idCreator, inValidTypes, initializeDefaultMenuIcons, injectLocale, injectTranslations, insertDataByInvalidType, internalPlugins, isCleanEmptyParagraph, isColorIndicator, isColorInput, isColorPanel, isDirectionKeydown, isInside, isMobileMode, isPrintMode, isPureEmptyParagraph, isRangeInTable, isRectangularInTableCells, isSelectedAllCell, isSelectionInTable, isVirtualKey, jaJpLocale, matchOptions, mergeArray, mergeDeepPlugins, mergeElementOptions, mergeOptions, nestedStructureByKey, normalizeValue, originOptions, plainToTheia, pluginKey, pluginKey1, pluginsByKey, reSelection, recursionNodes, refocus, ruRuLocale, scrollIntoView, setClipboardDataByDom, setEditorUUID, theTethysIconRegistryFaker, topLeftPosition, uniqueCellPosition, updatePopoverPosition, useElementStyle, withMention, withTestPlugin, withTheia, zhHansLocale, zhHantLocale };
18054
+ export { ALIGN_BLOCK_TYPES, A_TAG_REL_ATTR, AlignEditor, Alignment, BLOCK_DELETE_BACKWARD_TYPES, BasicTest, BlockquoteEditor, CLIPBOARD_FORMAT_KEY, CODEMIRROR_PADDING_TOP, CODE_MODES, CONTAINER_BLOCKS, CONTROL_KEY, CodeEditor, ColorEditor, ColumnResizeNotifierSource, ColumnResizingStore, DEFAULT_LANGUAGE, DEFAULT_SCROLL_CONTAINER, DISABLED_OPERATE_TYPES, DataTransferFaker, DefaultElementOptions, DefaultGlobalToolbarDefinition, DefaultInlineToolbarDefinition, DropdownMode, ELEMENT_UNIQUE_ID, EditorPresetConfigFactoryMock, ElementKinds, ErrorCodes, FontSizeTypes, FontSizes, HEADING_TYPES, HeadingEditor, HoveredCellInfo, HrEditor, IS_MAC, ImageEditor, IndentEditor, Indents, InlineCodeEditor, LINK_DEFAULT_TEXT, LIST_BLOCK_TYPES, LayoutTypes, LinkEditor, ListEditor, MarkEditor, MarkProps, MarkTypes, MentionEditor, PICTURE_ACCEPTED_UPLOAD_MIME, PICTURE_ACCEPTED_UPLOAD_SIZE, PluginKeys, PluginMenuIcons, PluginMenuSvgs, Position, QUICK_INSERT_HOTKEY, QuickInsertEditor, ResizeRef, SLA_TABLE_CELL_SELECTOR, SLA_TABLE_SELECTOR, STANDARD_HEADING_TYPES, ScrollDirection, SpecialBackgroundColor, TAB_SPACE, THE_EDITOR_BG_COLOR, THE_EDITOR_COLOR, THE_EDITOR_CONVERSION_HINT_REF, THE_EDITOR_ORIGIN_ANCHOR, THE_EDITOR_POPOVER_REF, THE_EDITOR_PREVIOUS_SELECTION, THE_EDITOR_UUID, THE_I18N_DE_DE, THE_I18N_EN_US, THE_I18N_JA_JP, THE_I18N_LOCALE_ID, THE_I18N_RU_RU, THE_I18N_ZH_HANS, THE_I18N_ZH_HANT, THE_IMAGE_SERVICE_TOKEN, THE_LISTBOX_PARENT_GROUP_TOKEN, THE_LISTBOX_PARENT_OPTION_TOKEN, THE_LISTBOX_TOKEN, THE_MODE_PROVIDER, THE_MODE_TOKEN, THE_PLUGIN_MENU_REF, THE_PRESET_CONFIG_TOKEN, TableCellEventDispatcher, TableEditor, TableHeaderBackgroundColor, TablePosition, TheBaseElement, TheBaseSuggestion, TheBaseToolbarDropdown, TheBaseToolbarItem, TheColumnResizeDirective, TheColumnResizeOverlayHandle, TheContextMenu, TheContextService, TheConversionHint, TheDataMode, TheDefaultElement, TheEditor, TheEditorComponent, TheEditorModule, TheI18nService, TheImage, TheInlineToolbar, TheListboxDirective, TheListboxGroupDirective, TheListboxOptionDirective, TheLocaleType, TheMode, TheModeConfig, ThePluginMenu, ThePluginMenuComponent, ThePluginMenuItemType, ThePreventDefaultDirective, index$1 as TheQueries, TheQuickInsert, TheTableSelect, TheTemplate, TheText, TheToolbarComponent, TheToolbarDropdown, TheToolbarGroup, TheToolbarGroupToken, TheToolbarItem, TheToolbarService, index as TheTransforms, TodoItemEditor, ToolbarActionTypes, ToolbarAlignment, ToolbarItemType, ToolbarMoreGroup, VOID_BLOCK_TYPES, VerticalAlignEditor, VerticalAlignment, ZERO_WIDTH_CHAR, autoFocus, base64toBlob, bottomLeftPosition, buildPluginMenu, buildPluginMenuItemMap, buildQuickInsertMenus, calcPrintColumnWidth, calcSpanForColumn, calcSpanForRow, calculateHeaderRowHeight, calculateRowControls, coercePixelsFromCssValue, combinePlugins, copyNode, createCell, createEmptyContent, createEmptyParagraph, createMentionPlugin, createPluginFactory, createRow, createTable, createTablePosition, createTest1Plugin, createTestPlugin, createToolbar, createVerticalAlignPlugin, customPluginMock, customPluginMockKey, dataDeserialize, dataSerializing, deDeLocale, deleteElementKey, enUsLocale, errorImageUrlMock, extractFragment, filterTextFormat, fixBlockWithoutParagraph, fixBlockWithoutText, flattenDeepPlugins, getCellPositionsFromRange, getColsTotalWidth, getColumnsWidth, getDirtyElements, getEditorScrollContainer, getEditorUUID, getElementClassByPrefix, getElementHeight, getElementWidth, getEndBlock, getGridColumns, getMode, getNextCell, getOriginCell, getPlugin, getPluginOptions, getPlugins, getRowsTotalHeight, getSelectCellNode, getSelectedCellPositions, getStartBlock, getTableByCell, getTableByRow, getTheDefaultPluginMenu, getToolbarClass, hasHeaderRow, headingOptions, htmlToTheia, idCreator, inValidTypes, initializeDefaultMenuIcons, injectTranslations, insertDataByInvalidType, internalPlugins, isCleanEmptyParagraph, isColorIndicator, isColorInput, isColorPanel, isDirectionKeydown, isInside, isMobileMode, isPrintMode, isPureEmptyParagraph, isRangeInTable, isRectangularInTableCells, isSelectedAllCell, isSelectionInTable, isVirtualKey, jaJpLocale, matchOptions, mergeArray, mergeDeepPlugins, mergeElementOptions, mergeOptions, nestedStructureByKey, normalizeValue, originOptions, plainToTheia, pluginKey, pluginKey1, pluginsByKey, reSelection, recursionNodes, refocus, ruRuLocale, scrollIntoView, setClipboardDataByDom, setEditorUUID, theTethysIconRegistryFaker, topLeftPosition, uniqueCellPosition, updatePopoverPosition, useElementStyle, withMention, withTestPlugin, withTheia, zhHansLocale, zhHantLocale };
18095
18055
  //# sourceMappingURL=worktile-theia.mjs.map