@worktile/theia 16.2.2 → 16.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/editor.module.d.ts +1 -1
- package/esm2022/components/action/prevent-default.mjs +3 -3
- package/esm2022/components/column-resize/column-resize-notifier.mjs +3 -3
- package/esm2022/components/column-resize/column-resize.directive.mjs +3 -3
- package/esm2022/components/column-resize/column-resize.module.mjs +8 -8
- package/esm2022/components/column-resize/event-dispatcher.mjs +3 -3
- package/esm2022/components/column-resize/overlay-handle.component.mjs +3 -3
- package/esm2022/components/column-resize/resizing.store.mjs +3 -3
- package/esm2022/components/contextmenu/contextmenu.component.mjs +3 -3
- package/esm2022/components/conversion-hint/conversion-hint.component.mjs +3 -3
- package/esm2022/components/element/element.component.mjs +3 -3
- package/esm2022/components/inline-toolbar/inline-toolbar.component.mjs +3 -3
- package/esm2022/components/listbox/listbox.mjs +9 -9
- package/esm2022/components/plugin-menu/plugin-menu.component.mjs +3 -3
- package/esm2022/components/table-select/table-select.component.mjs +3 -3
- package/esm2022/components/template/template.component.mjs +3 -3
- package/esm2022/components/text/text.component.mjs +3 -3
- package/esm2022/components/toolbar/toolbar.component.mjs +3 -3
- package/esm2022/components/toolbar-dropdown/toolbar-dropdown.component.mjs +3 -3
- package/esm2022/components/toolbar-group/toolbar-group.component.mjs +3 -3
- package/esm2022/components/toolbar-item/toolbar-item.component.mjs +3 -3
- package/esm2022/core/toolbar-item/base-toolbar-item.mjs +6 -6
- package/esm2022/editor.component.mjs +3 -3
- package/esm2022/editor.module.mjs +4 -4
- package/esm2022/interfaces/view-base.mjs +3 -3
- package/esm2022/pipes.mjs +9 -9
- package/esm2022/plugins/blockquote/blockquote.component.mjs +3 -3
- package/esm2022/plugins/code/code.component.mjs +3 -3
- package/esm2022/plugins/color/toolbar-item.component.mjs +3 -3
- package/esm2022/plugins/hr/hr.component.mjs +3 -3
- package/esm2022/plugins/image/image.component.mjs +3 -3
- package/esm2022/plugins/inline-code/inline-code.component.mjs +3 -3
- package/esm2022/plugins/link/edit/link-edit.component.mjs +3 -3
- package/esm2022/plugins/link/hover/link-hover.component.mjs +3 -3
- package/esm2022/plugins/link/link.component.mjs +6 -6
- package/esm2022/plugins/list/components/bulleted-list.component.mjs +3 -3
- package/esm2022/plugins/list/components/list-item.component.mjs +3 -3
- package/esm2022/plugins/list/components/numbered-list.component.mjs +3 -3
- package/esm2022/plugins/mention/suggestion.component.mjs +3 -3
- package/esm2022/plugins/quick-insert/components/quick-insert.component.mjs +3 -3
- package/esm2022/plugins/table/components/insert-mark/insert-mark.component.mjs +3 -3
- package/esm2022/plugins/table/components/row/row.component.mjs +3 -3
- package/esm2022/plugins/table/components/table.component.mjs +19 -20
- package/esm2022/plugins/table/components/td/td.component.mjs +3 -3
- package/esm2022/plugins/table/components/toolbar/table-options.component.mjs +3 -3
- package/esm2022/plugins/table/components/toolbar/table-toolbar.component.mjs +3 -3
- package/esm2022/plugins/table/table.pipe.mjs +6 -6
- package/esm2022/plugins/table/table.plugin.mjs +23 -23
- package/esm2022/plugins/table/table.service.mjs +6 -9
- package/esm2022/plugins/table/table.store.mjs +8 -25
- package/esm2022/plugins/table/toolbar-item.component.mjs +3 -3
- package/esm2022/plugins/table/transforms/move-selection-from-cell.mjs +91 -0
- package/esm2022/plugins/table/utils/calc-anchor-position.mjs +13 -12
- package/esm2022/plugins/table/utils/create-table-position.mjs +2 -2
- package/esm2022/plugins/table/utils/get-next-cell.mjs +44 -0
- package/esm2022/plugins/table/utils/index.mjs +9 -10
- package/esm2022/plugins/todo-item/todo-item.component.mjs +3 -3
- package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +3 -3
- package/esm2022/services/context.service.mjs +3 -3
- package/esm2022/services/table-contextmenu.service.mjs +3 -3
- package/esm2022/services/toolbar.service.mjs +3 -3
- package/fesm2022/worktile-theia.mjs +905 -801
- package/fesm2022/worktile-theia.mjs.map +1 -1
- package/package.json +1 -1
- package/plugins/table/table.plugin.d.ts +1 -1
- package/plugins/table/table.service.d.ts +1 -3
- package/plugins/table/table.store.d.ts +1 -1
- package/plugins/table/transforms/move-selection-from-cell.d.ts +7 -0
- package/plugins/table/utils/calc-anchor-position.d.ts +3 -3
- package/plugins/table/utils/get-next-cell.d.ts +4 -0
- package/plugins/table/utils/index.d.ts +8 -9
|
@@ -99,10 +99,10 @@ class TheBaseElementComponent extends BaseElementComponent {
|
|
|
99
99
|
const blockClass = this.editor.isInline(this.element) ? 'slate-inline-block' : 'slate-block';
|
|
100
100
|
this.nativeElement.classList.add(`slate-element-${this.element.type}`, blockClass);
|
|
101
101
|
}
|
|
102
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
103
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
102
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBaseElementComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
103
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheBaseElementComponent, selector: "TheBaseElementComponent", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
104
104
|
}
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBaseElementComponent, decorators: [{
|
|
106
106
|
type: Component,
|
|
107
107
|
args: [{
|
|
108
108
|
selector: 'TheBaseElementComponent',
|
|
@@ -114,10 +114,10 @@ class TheDefaultElementComponent extends TheBaseElementComponent {
|
|
|
114
114
|
get indent() {
|
|
115
115
|
return this.element?.indent;
|
|
116
116
|
}
|
|
117
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
118
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
117
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheDefaultElementComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
118
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheDefaultElementComponent, selector: "[theDefaultElement]", host: { properties: { "attr.the-indent": "this.indent" } }, usesInheritance: true, ngImport: i0, template: '<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>', isInline: true, dependencies: [{ kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
119
119
|
}
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheDefaultElementComponent, decorators: [{
|
|
121
121
|
type: Component,
|
|
122
122
|
args: [{
|
|
123
123
|
selector: '[theDefaultElement]',
|
|
@@ -744,10 +744,10 @@ class ElementStylePipe {
|
|
|
744
744
|
}
|
|
745
745
|
return style;
|
|
746
746
|
}
|
|
747
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
748
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.
|
|
747
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ElementStylePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
748
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.5", ngImport: i0, type: ElementStylePipe, name: "elementStyle" }); }
|
|
749
749
|
}
|
|
750
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
750
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ElementStylePipe, decorators: [{
|
|
751
751
|
type: Pipe,
|
|
752
752
|
args: [{
|
|
753
753
|
name: 'elementStyle'
|
|
@@ -762,10 +762,10 @@ class ElementClassPipe {
|
|
|
762
762
|
}
|
|
763
763
|
return classStr;
|
|
764
764
|
}
|
|
765
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
766
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.
|
|
765
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ElementClassPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
766
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.5", ngImport: i0, type: ElementClassPipe, name: "elementClass" }); }
|
|
767
767
|
}
|
|
768
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
768
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ElementClassPipe, decorators: [{
|
|
769
769
|
type: Pipe,
|
|
770
770
|
args: [{
|
|
771
771
|
name: 'elementClass'
|
|
@@ -778,10 +778,10 @@ class PluginMenuPipe {
|
|
|
778
778
|
}
|
|
779
779
|
return icon;
|
|
780
780
|
}
|
|
781
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
782
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.
|
|
781
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: PluginMenuPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
782
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.5", ngImport: i0, type: PluginMenuPipe, name: "getMenuIcon" }); }
|
|
783
783
|
}
|
|
784
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
784
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: PluginMenuPipe, decorators: [{
|
|
785
785
|
type: Pipe,
|
|
786
786
|
args: [{
|
|
787
787
|
name: 'getMenuIcon'
|
|
@@ -815,10 +815,10 @@ class TheTemplateComponent {
|
|
|
815
815
|
return null;
|
|
816
816
|
};
|
|
817
817
|
}
|
|
818
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
819
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
818
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
819
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheTemplateComponent, selector: "the-template,[theTemplate]", viewQueries: [{ propertyName: "paragraphTemplate", first: true, predicate: ["paragraph"], descendants: true, read: TemplateRef, static: true }, { propertyName: "headingOneTemplate", first: true, predicate: ["headingOne"], descendants: true, read: TemplateRef, static: true }, { propertyName: "headingTwoTemplate", first: true, predicate: ["headingTwo"], descendants: true, read: TemplateRef, static: true }, { propertyName: "headingThreeTemplate", first: true, predicate: ["headingThree"], descendants: true, read: TemplateRef, static: true }, { propertyName: "headingFourTemplate", first: true, predicate: ["headingFour"], descendants: true, read: TemplateRef, static: true }, { propertyName: "headingFiveTemplate", first: true, predicate: ["headingFive"], descendants: true, read: TemplateRef, static: true }, { propertyName: "headingSixTemplate", first: true, predicate: ["headingSix"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-template #paragraph let-context=\"context\" let-viewContext=\"viewContext\">\n <div theDefaultElement [context]=\"context\" [viewContext]=\"viewContext\" [ngStyle]=\"context.element | elementStyle\"></div>\n</ng-template>\n<ng-template #headingOne let-context=\"context\" let-viewContext=\"viewContext\">\n <h1\n theDefaultElement\n [context]=\"context\"\n [viewContext]=\"viewContext\"\n [attr.id]=\"context.element.key\"\n [ngStyle]=\"context.element | elementStyle\"\n ></h1>\n</ng-template>\n<ng-template #headingTwo let-context=\"context\" let-viewContext=\"viewContext\">\n <h2\n theDefaultElement\n [context]=\"context\"\n [viewContext]=\"viewContext\"\n [attr.id]=\"context.element.key\"\n [ngStyle]=\"context.element | elementStyle\"\n ></h2>\n</ng-template>\n<ng-template #headingThree let-context=\"context\" let-viewContext=\"viewContext\">\n <h3\n theDefaultElement\n [context]=\"context\"\n [viewContext]=\"viewContext\"\n [attr.id]=\"context.element.key\"\n [ngStyle]=\"context.element | elementStyle\"\n ></h3>\n</ng-template>\n<ng-template #headingFour let-context=\"context\" let-viewContext=\"viewContext\">\n <h4\n theDefaultElement\n [context]=\"context\"\n [viewContext]=\"viewContext\"\n [attr.id]=\"context.element.key\"\n [ngStyle]=\"context.element | elementStyle\"\n ></h4>\n</ng-template>\n<ng-template #headingFive let-context=\"context\" let-viewContext=\"viewContext\">\n <h5\n theDefaultElement\n [context]=\"context\"\n [viewContext]=\"viewContext\"\n [attr.id]=\"context.element.key\"\n [ngStyle]=\"context.element | elementStyle\"\n ></h5>\n</ng-template>\n<ng-template #headingSix let-context=\"context\" let-viewContext=\"viewContext\">\n <h6\n theDefaultElement\n [context]=\"context\"\n [viewContext]=\"viewContext\"\n [attr.id]=\"context.element.key\"\n [ngStyle]=\"context.element | elementStyle\"\n ></h6>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TheDefaultElementComponent, selector: "[theDefaultElement]" }, { kind: "pipe", type: ElementStylePipe, name: "elementStyle" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
820
820
|
}
|
|
821
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
821
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTemplateComponent, decorators: [{
|
|
822
822
|
type: Component,
|
|
823
823
|
args: [{ selector: 'the-template,[theTemplate]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #paragraph let-context=\"context\" let-viewContext=\"viewContext\">\n <div theDefaultElement [context]=\"context\" [viewContext]=\"viewContext\" [ngStyle]=\"context.element | elementStyle\"></div>\n</ng-template>\n<ng-template #headingOne let-context=\"context\" let-viewContext=\"viewContext\">\n <h1\n theDefaultElement\n [context]=\"context\"\n [viewContext]=\"viewContext\"\n [attr.id]=\"context.element.key\"\n [ngStyle]=\"context.element | elementStyle\"\n ></h1>\n</ng-template>\n<ng-template #headingTwo let-context=\"context\" let-viewContext=\"viewContext\">\n <h2\n theDefaultElement\n [context]=\"context\"\n [viewContext]=\"viewContext\"\n [attr.id]=\"context.element.key\"\n [ngStyle]=\"context.element | elementStyle\"\n ></h2>\n</ng-template>\n<ng-template #headingThree let-context=\"context\" let-viewContext=\"viewContext\">\n <h3\n theDefaultElement\n [context]=\"context\"\n [viewContext]=\"viewContext\"\n [attr.id]=\"context.element.key\"\n [ngStyle]=\"context.element | elementStyle\"\n ></h3>\n</ng-template>\n<ng-template #headingFour let-context=\"context\" let-viewContext=\"viewContext\">\n <h4\n theDefaultElement\n [context]=\"context\"\n [viewContext]=\"viewContext\"\n [attr.id]=\"context.element.key\"\n [ngStyle]=\"context.element | elementStyle\"\n ></h4>\n</ng-template>\n<ng-template #headingFive let-context=\"context\" let-viewContext=\"viewContext\">\n <h5\n theDefaultElement\n [context]=\"context\"\n [viewContext]=\"viewContext\"\n [attr.id]=\"context.element.key\"\n [ngStyle]=\"context.element | elementStyle\"\n ></h5>\n</ng-template>\n<ng-template #headingSix let-context=\"context\" let-viewContext=\"viewContext\">\n <h6\n theDefaultElement\n [context]=\"context\"\n [viewContext]=\"viewContext\"\n [attr.id]=\"context.element.key\"\n [ngStyle]=\"context.element | elementStyle\"\n ></h6>\n</ng-template>\n" }]
|
|
824
824
|
}], propDecorators: { paragraphTemplate: [{
|
|
@@ -883,10 +883,10 @@ class TheTextComponent extends BaseTextComponent {
|
|
|
883
883
|
super.onContextChange();
|
|
884
884
|
this.applyTextMark();
|
|
885
885
|
}
|
|
886
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
887
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
886
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTextComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
887
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheTextComponent, selector: "span[theText]", host: { attributes: { "data-slate-node": "text" } }, usesInheritance: true, ngImport: i0, template: `<slate-leaves [context]="context" [viewContext]="viewContext"></slate-leaves>`, isInline: true, dependencies: [{ kind: "component", type: i1.SlateLeaves, selector: "slate-leaves", inputs: ["context"] }] }); }
|
|
888
888
|
}
|
|
889
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
889
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTextComponent, decorators: [{
|
|
890
890
|
type: Component,
|
|
891
891
|
args: [{
|
|
892
892
|
selector: 'span[theText]',
|
|
@@ -2674,10 +2674,10 @@ class TheBaseToolbarItem {
|
|
|
2674
2674
|
this.active = false;
|
|
2675
2675
|
}
|
|
2676
2676
|
}
|
|
2677
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
2678
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.
|
|
2677
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBaseToolbarItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2678
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: TheBaseToolbarItem, inputs: { toolbarItem: "toolbarItem", editor: "editor", itemMousedownHandle: "itemMousedownHandle" }, host: { properties: { "class.disabled": "this.disabledState", "class.active": "this.activeState" } }, ngImport: i0 }); }
|
|
2679
2679
|
}
|
|
2680
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
2680
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBaseToolbarItem, decorators: [{
|
|
2681
2681
|
type: Directive
|
|
2682
2682
|
}], propDecorators: { toolbarItem: [{
|
|
2683
2683
|
type: Input
|
|
@@ -2712,10 +2712,10 @@ class TheBaseToolbarDropdown extends TheBaseToolbarItem {
|
|
|
2712
2712
|
this.activeMenuItem = activeItem ? activeItem : this.defaultDropdownItem;
|
|
2713
2713
|
}
|
|
2714
2714
|
}
|
|
2715
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
2716
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.
|
|
2715
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBaseToolbarDropdown, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2716
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: TheBaseToolbarDropdown, inputs: { menus: "menus", mode: "mode", dropdownItemKey: "dropdownItemKey" }, usesInheritance: true, ngImport: i0 }); }
|
|
2717
2717
|
}
|
|
2718
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
2718
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBaseToolbarDropdown, decorators: [{
|
|
2719
2719
|
type: Directive
|
|
2720
2720
|
}], propDecorators: { menus: [{
|
|
2721
2721
|
type: Input
|
|
@@ -2838,10 +2838,10 @@ class TheToolbarDropdownComponent extends TheBaseToolbarDropdown {
|
|
|
2838
2838
|
.withPush(false)
|
|
2839
2839
|
.withPositions([bottomPosition, topPosition]);
|
|
2840
2840
|
}
|
|
2841
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
2842
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
2841
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheToolbarDropdownComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.ThyPopover }, { token: i0.ViewContainerRef }, { token: i2$1.Overlay }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2842
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheToolbarDropdownComponent, 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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: i6.ThyDropdownMenuDividerComponent, selector: "thy-dropdown-menu-divider" }, { kind: "directive", type: i6.ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: i6.ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: i6.ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: i6.ThyDropdownMenuItemActiveDirective, selector: "[thyDropdownMenuItemActive]", inputs: ["thyDropdownMenuItemActive"] }] }); }
|
|
2843
2843
|
}
|
|
2844
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
2844
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheToolbarDropdownComponent, decorators: [{
|
|
2845
2845
|
type: Component,
|
|
2846
2846
|
args: [{ selector: 'the-toolbar-dropdown', 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" }]
|
|
2847
2847
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.ThyPopover }, { type: i0.ViewContainerRef }, { type: i2$1.Overlay }]; }, propDecorators: { className: [{
|
|
@@ -2881,8 +2881,8 @@ class TheToolbarItemComponent extends TheBaseToolbarItem {
|
|
|
2881
2881
|
}
|
|
2882
2882
|
this.toolbarItem?.execute(this.editor);
|
|
2883
2883
|
}
|
|
2884
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
2885
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
2884
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheToolbarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2885
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheToolbarItemComponent, selector: "the-toolbar-item", host: { listeners: { "mousedown": "toggleDropdown($event)" }, properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0, template: `
|
|
2886
2886
|
<a
|
|
2887
2887
|
href="javascript:;"
|
|
2888
2888
|
thyAction
|
|
@@ -2897,7 +2897,7 @@ class TheToolbarItemComponent extends TheBaseToolbarItem {
|
|
|
2897
2897
|
<ng-template #tooltip let-data> {{ data?.name }} {{ data?.shortcutKey }} </ng-template>
|
|
2898
2898
|
`, isInline: true, dependencies: [{ kind: "directive", type: i8.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }] }); }
|
|
2899
2899
|
}
|
|
2900
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
2900
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheToolbarItemComponent, decorators: [{
|
|
2901
2901
|
type: Component,
|
|
2902
2902
|
args: [{
|
|
2903
2903
|
selector: 'the-toolbar-item',
|
|
@@ -3150,10 +3150,10 @@ class TheToolbarComponent {
|
|
|
3150
3150
|
}
|
|
3151
3151
|
return TheToolbarItemComponent;
|
|
3152
3152
|
}
|
|
3153
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
3154
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
3153
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheToolbarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: TheToolbarGroupToken }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3154
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheToolbarComponent, selector: "the-toolbar", inputs: { editor: "editor", toolbarItems: "toolbarItems", align: "align", containerClass: "containerClass", isMore: "isMore", afterTemplate: "afterTemplate" }, host: { properties: { "style.justifyContent": "this.justifyContent" }, classAttribute: "the-toolbar-container d-flex align-items-center" }, viewQueries: [{ propertyName: "toolbarContainer", first: true, predicate: ["toolbarContainer"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container #toolbarContainer></ng-container>\n<ng-content></ng-content>\n<ng-template *ngIf=\"afterTemplate\" [ngTemplateOutlet]=\"afterTemplate\"></ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
3155
3155
|
}
|
|
3156
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
3156
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheToolbarComponent, decorators: [{
|
|
3157
3157
|
type: Component,
|
|
3158
3158
|
args: [{ selector: 'the-toolbar', host: {
|
|
3159
3159
|
class: 'the-toolbar-container d-flex align-items-center'
|
|
@@ -3304,10 +3304,10 @@ class TheContextService {
|
|
|
3304
3304
|
this.destroy$.next();
|
|
3305
3305
|
this.destroy$.complete();
|
|
3306
3306
|
}
|
|
3307
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
3308
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
3307
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheContextService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3308
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheContextService }); }
|
|
3309
3309
|
}
|
|
3310
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
3310
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheContextService, decorators: [{
|
|
3311
3311
|
type: Injectable
|
|
3312
3312
|
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
|
|
3313
3313
|
|
|
@@ -3376,49 +3376,185 @@ var TableSelectCellDirection;
|
|
|
3376
3376
|
TableSelectCellDirection[TableSelectCellDirection["left"] = 3] = "left";
|
|
3377
3377
|
})(TableSelectCellDirection || (TableSelectCellDirection = {}));
|
|
3378
3378
|
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3379
|
+
function calcSpanForRow(table, targetIndex) {
|
|
3380
|
+
const rowspans = [];
|
|
3381
|
+
table.children
|
|
3382
|
+
.filter((row, rowIndex) => rowIndex < targetIndex)
|
|
3383
|
+
.forEach((row, rowIndex) => {
|
|
3384
|
+
row.children.forEach((cell, columnIndex) => {
|
|
3385
|
+
if (cell.rowspan && cell.rowspan > 1) {
|
|
3386
|
+
const rect = {
|
|
3387
|
+
x: rowIndex,
|
|
3388
|
+
y: columnIndex,
|
|
3389
|
+
width: cell.colspan || 1,
|
|
3390
|
+
height: cell.rowspan || 1
|
|
3391
|
+
};
|
|
3392
|
+
rowspans.push(rect);
|
|
3393
|
+
}
|
|
3394
|
+
});
|
|
3395
|
+
});
|
|
3396
|
+
return table.children[0].children.map((cell, columnIndex) => {
|
|
3397
|
+
return rowspans.some(rowspan => isInside(rowspan, targetIndex, columnIndex));
|
|
3398
|
+
});
|
|
3387
3399
|
}
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3400
|
+
function calcSpanForColumn(table, targetIndex) {
|
|
3401
|
+
const rowspans = [];
|
|
3402
|
+
table.children.forEach((row, rowIndex) => {
|
|
3403
|
+
row.children
|
|
3404
|
+
.filter((cell, columnIndex) => columnIndex < targetIndex)
|
|
3405
|
+
.forEach((cell, columnIndex) => {
|
|
3406
|
+
if (cell.colspan && cell.colspan > 1) {
|
|
3407
|
+
const rect = {
|
|
3408
|
+
x: rowIndex,
|
|
3409
|
+
y: columnIndex,
|
|
3410
|
+
width: cell.colspan || 1,
|
|
3411
|
+
height: cell.rowspan || 1
|
|
3412
|
+
};
|
|
3413
|
+
rowspans.push(rect);
|
|
3414
|
+
}
|
|
3415
|
+
});
|
|
3416
|
+
});
|
|
3417
|
+
return table.children.map((cell, rowIndx) => {
|
|
3418
|
+
return rowspans.some(rowspan => isInside(rowspan, rowIndx, targetIndex));
|
|
3419
|
+
});
|
|
3420
|
+
}
|
|
3421
|
+
function getOriginCell(table, targetRowIndex, targetColumnIndex) {
|
|
3422
|
+
for (let rowIndex = 0; rowIndex <= targetRowIndex; rowIndex++) {
|
|
3423
|
+
const row = table.children[rowIndex];
|
|
3424
|
+
const originCell = row.children
|
|
3425
|
+
.filter((cell, columnIndex) => columnIndex <= targetColumnIndex)
|
|
3426
|
+
.find((cell, columnIndex) => {
|
|
3427
|
+
if (cell.rowspan > 1 || cell.colspan > 1) {
|
|
3428
|
+
const rect = {
|
|
3429
|
+
x: rowIndex,
|
|
3430
|
+
y: columnIndex,
|
|
3431
|
+
width: cell.colspan || 1,
|
|
3432
|
+
height: cell.rowspan || 1
|
|
3433
|
+
};
|
|
3434
|
+
return isInside(rect, targetRowIndex, targetColumnIndex);
|
|
3435
|
+
}
|
|
3436
|
+
});
|
|
3437
|
+
if (originCell) {
|
|
3438
|
+
return originCell;
|
|
3439
|
+
}
|
|
3440
|
+
}
|
|
3441
|
+
}
|
|
3442
|
+
function isInside(cellRect, rowIndex, columnIndex) {
|
|
3443
|
+
if (rowIndex >= cellRect.x &&
|
|
3444
|
+
rowIndex <= cellRect.x + cellRect.height - 1 &&
|
|
3445
|
+
columnIndex >= cellRect.y &&
|
|
3446
|
+
columnIndex <= cellRect.y + cellRect.width - 1) {
|
|
3447
|
+
return true;
|
|
3448
|
+
}
|
|
3449
|
+
return false;
|
|
3396
3450
|
}
|
|
3397
3451
|
|
|
3398
3452
|
/**
|
|
3399
|
-
*
|
|
3453
|
+
* 计算最小行跨距单元格
|
|
3454
|
+
* @param element TableElement
|
|
3455
|
+
* @returns
|
|
3400
3456
|
*/
|
|
3401
|
-
|
|
3402
|
-
const
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
|
|
3406
|
-
|
|
3407
|
-
}
|
|
3408
|
-
|
|
3457
|
+
const calculateMinRowSpanCellForRows = (element) => {
|
|
3458
|
+
const cells = element.children.map((row, index) => {
|
|
3459
|
+
const noHiddenCells = row.children.filter(cell => !cell.hidden);
|
|
3460
|
+
if (noHiddenCells.length > 0) {
|
|
3461
|
+
const minRowspan = Math.min.apply(Math, noHiddenCells.map(cell => {
|
|
3462
|
+
return cell.rowspan || 1;
|
|
3463
|
+
}));
|
|
3464
|
+
const cell = row.children.find(item => !item.hidden && (item.rowspan || 1) === minRowspan);
|
|
3465
|
+
return {
|
|
3466
|
+
cell,
|
|
3467
|
+
rowIndex: index
|
|
3468
|
+
};
|
|
3469
|
+
}
|
|
3470
|
+
else {
|
|
3471
|
+
return {
|
|
3472
|
+
rowIndex: index
|
|
3473
|
+
};
|
|
3474
|
+
}
|
|
3475
|
+
});
|
|
3476
|
+
return cells;
|
|
3477
|
+
};
|
|
3409
3478
|
/**
|
|
3410
|
-
*
|
|
3479
|
+
* 计算行控件的平均高度
|
|
3480
|
+
* @param previousCombineRowIndex
|
|
3481
|
+
* @param previousRowIndex
|
|
3482
|
+
* @param rowControls
|
|
3411
3483
|
*/
|
|
3412
|
-
|
|
3413
|
-
const
|
|
3414
|
-
|
|
3415
|
-
|
|
3416
|
-
|
|
3417
|
-
|
|
3418
|
-
|
|
3484
|
+
const calculateRowControlsAvgHeight = (previousCombineRowIndex, previousRowIndex, rowControls) => {
|
|
3485
|
+
const rowControl = rowControls[previousRowIndex];
|
|
3486
|
+
const count = previousCombineRowIndex - previousRowIndex;
|
|
3487
|
+
const avgHeight = Math.floor(rowControl.height / (count + 1));
|
|
3488
|
+
const firstHeight = rowControl.height - avgHeight * count;
|
|
3489
|
+
rowControl.height = firstHeight;
|
|
3490
|
+
rowControls
|
|
3491
|
+
.filter((_, index) => index > previousRowIndex && index <= previousCombineRowIndex)
|
|
3492
|
+
.forEach(rowControl => {
|
|
3493
|
+
rowControl.height = avgHeight;
|
|
3494
|
+
});
|
|
3495
|
+
};
|
|
3496
|
+
const getBelowRowHeight = (editor, cells, index, rowIndex, rowspan) => {
|
|
3497
|
+
let belowRowlHeight = 0;
|
|
3498
|
+
cells.slice(index + 1, cells.length).map(item => {
|
|
3499
|
+
if (!item.cell) {
|
|
3500
|
+
return;
|
|
3419
3501
|
}
|
|
3420
|
-
|
|
3421
|
-
|
|
3502
|
+
if (rowIndex + rowspan > item.rowIndex) {
|
|
3503
|
+
const cellDom = AngularEditor.toDOMNode(editor, item.cell);
|
|
3504
|
+
if (item.cell.rowspan > 1) {
|
|
3505
|
+
// 如果下方单元格的rowspan > 1,递归计算
|
|
3506
|
+
const height = getBelowRowHeight(editor, cells, cells.findIndex(cell => cell.rowIndex === item.rowIndex), item.rowIndex, item.cell.rowspan);
|
|
3507
|
+
belowRowlHeight += getElementHeight(cellDom) - height;
|
|
3508
|
+
}
|
|
3509
|
+
else {
|
|
3510
|
+
belowRowlHeight += getElementHeight(cellDom);
|
|
3511
|
+
}
|
|
3512
|
+
}
|
|
3513
|
+
});
|
|
3514
|
+
return belowRowlHeight;
|
|
3515
|
+
};
|
|
3516
|
+
const calculateRowControls = (editor, element) => {
|
|
3517
|
+
const minRowSpanCellForRows = calculateMinRowSpanCellForRows(element);
|
|
3518
|
+
const rowControls = [];
|
|
3519
|
+
let previousRowIndex = 0;
|
|
3520
|
+
let previousCombineRowIndex = 0;
|
|
3521
|
+
minRowSpanCellForRows.forEach((cellInfo, index) => {
|
|
3522
|
+
if (!cellInfo.cell) {
|
|
3523
|
+
rowControls.push({
|
|
3524
|
+
height: 0,
|
|
3525
|
+
rowIndex: index
|
|
3526
|
+
});
|
|
3527
|
+
previousCombineRowIndex = index;
|
|
3528
|
+
if (index === minRowSpanCellForRows.length - 1) {
|
|
3529
|
+
calculateRowControlsAvgHeight(previousCombineRowIndex, previousRowIndex, rowControls);
|
|
3530
|
+
}
|
|
3531
|
+
return;
|
|
3532
|
+
}
|
|
3533
|
+
// calculate combine row height
|
|
3534
|
+
if (previousCombineRowIndex > previousRowIndex) {
|
|
3535
|
+
calculateRowControlsAvgHeight(previousCombineRowIndex, previousRowIndex, rowControls);
|
|
3536
|
+
previousCombineRowIndex = 0;
|
|
3537
|
+
}
|
|
3538
|
+
const cellDom = AngularEditor.toDOMNode(editor, cellInfo.cell);
|
|
3539
|
+
let height = getElementHeight(cellDom);
|
|
3540
|
+
// 当cell为合并的单元格(rowspan > 1),计算其实际高度(当前单元格的高度 - 下方合并单元格的高度)
|
|
3541
|
+
if (cellInfo.cell.rowspan > 1) {
|
|
3542
|
+
const calcHeight = height - getBelowRowHeight(editor, minRowSpanCellForRows, index, cellInfo.rowIndex, cellInfo.cell.rowspan);
|
|
3543
|
+
rowControls.push({
|
|
3544
|
+
height: calcHeight,
|
|
3545
|
+
rowIndex: cellInfo.rowIndex
|
|
3546
|
+
});
|
|
3547
|
+
}
|
|
3548
|
+
else {
|
|
3549
|
+
rowControls.push({
|
|
3550
|
+
height,
|
|
3551
|
+
rowIndex: cellInfo.rowIndex
|
|
3552
|
+
});
|
|
3553
|
+
}
|
|
3554
|
+
previousRowIndex = index;
|
|
3555
|
+
});
|
|
3556
|
+
return rowControls;
|
|
3557
|
+
};
|
|
3422
3558
|
|
|
3423
3559
|
class TablePosition {
|
|
3424
3560
|
constructor(options = {
|
|
@@ -3661,315 +3797,47 @@ class TablePosition {
|
|
|
3661
3797
|
}
|
|
3662
3798
|
|
|
3663
3799
|
const createTablePosition = (editor, path) => {
|
|
3664
|
-
path = path || editor.selection
|
|
3800
|
+
path = path || editor.selection?.anchor?.path;
|
|
3665
3801
|
if (!path) {
|
|
3666
3802
|
throw new Error('Path invalid');
|
|
3667
3803
|
}
|
|
3668
3804
|
return TablePosition.create(new TableOptions(), editor, path);
|
|
3669
3805
|
};
|
|
3670
3806
|
|
|
3807
|
+
/* cell-position 有关的函数 */
|
|
3671
3808
|
/**
|
|
3672
|
-
*
|
|
3809
|
+
* 判断是否选中了所有的单元格
|
|
3810
|
+
* @param editor 编辑器对象
|
|
3811
|
+
* @param selectedCellPositions 选中的单元格位置数组
|
|
3812
|
+
* @returns 是否选中了所有的单元格
|
|
3673
3813
|
*/
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
const startPosition = createTablePosition(editor);
|
|
3677
|
-
const endPosition = createTablePosition(editor, focus.path);
|
|
3678
|
-
// Only handle events in tables
|
|
3679
|
-
if (!startPosition.isInTable() || !endPosition.isInTable()) {
|
|
3814
|
+
const isSelectedAllCell = (editor, selectedCellPositions) => {
|
|
3815
|
+
if (!AngularEditor.isFocused(editor)) {
|
|
3680
3816
|
return false;
|
|
3681
3817
|
}
|
|
3682
|
-
|
|
3683
|
-
return
|
|
3684
|
-
}
|
|
3685
|
-
|
|
3818
|
+
const pos = createTablePosition(editor);
|
|
3819
|
+
return !!selectedCellPositions.length && pos.getHeight() * pos.getWidth() === selectedCellPositions.length;
|
|
3820
|
+
};
|
|
3686
3821
|
/**
|
|
3687
|
-
*
|
|
3822
|
+
* 获取选中的单元格位置数组
|
|
3823
|
+
* @param editor 编辑器对象
|
|
3824
|
+
* @param selectedCells 选中的单元格
|
|
3825
|
+
* @returns 选中的单元格位置
|
|
3688
3826
|
*/
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
}
|
|
3827
|
+
const getSelectedCellPositions = (editor, selectedCells) => {
|
|
3828
|
+
return selectedCells?.map((cell) => {
|
|
3829
|
+
const path = AngularEditor.findPath(editor, cell);
|
|
3830
|
+
const [row, col] = path.slice(-2);
|
|
3831
|
+
return { row, col };
|
|
3832
|
+
});
|
|
3833
|
+
};
|
|
3695
3834
|
/**
|
|
3696
|
-
*
|
|
3697
|
-
* @param
|
|
3698
|
-
* @param
|
|
3699
|
-
* @
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
let selectCellSize = cells.length;
|
|
3703
|
-
if (selectCellSize === 0) {
|
|
3704
|
-
return false;
|
|
3705
|
-
}
|
|
3706
|
-
const { row, col } = cells[0];
|
|
3707
|
-
let maxCol = col;
|
|
3708
|
-
let minCol = col;
|
|
3709
|
-
let maxRow = row;
|
|
3710
|
-
let minRow = row;
|
|
3711
|
-
const pos = createTablePosition(editor);
|
|
3712
|
-
for (let { row, col } of cells) {
|
|
3713
|
-
const { hidden, rowspan, colspan } = pos.findCellByPath({ row, col });
|
|
3714
|
-
if (hidden) {
|
|
3715
|
-
selectCellSize--;
|
|
3716
|
-
continue;
|
|
3717
|
-
}
|
|
3718
|
-
if (rowspan || colspan) {
|
|
3719
|
-
const colSpan = colspan ?? 1;
|
|
3720
|
-
const rowSpan = rowspan ?? 1;
|
|
3721
|
-
// 更新视觉选中的个数
|
|
3722
|
-
selectCellSize = selectCellSize + (rowSpan * colSpan - 1);
|
|
3723
|
-
// 纠正合并单元格下的 row 和 col 的真实值
|
|
3724
|
-
row = row + rowSpan - 1;
|
|
3725
|
-
col = col + colSpan - 1;
|
|
3726
|
-
}
|
|
3727
|
-
maxCol = col > maxCol ? col : maxCol;
|
|
3728
|
-
minCol = col < minCol ? col : minCol;
|
|
3729
|
-
maxRow = row > maxRow ? row : maxRow;
|
|
3730
|
-
minRow = row < minRow ? row : minRow;
|
|
3731
|
-
}
|
|
3732
|
-
return (maxRow + 1 - minRow) * (maxCol + 1 - minCol) === selectCellSize;
|
|
3733
|
-
}
|
|
3734
|
-
|
|
3735
|
-
function calcSpanForRow(table, targetIndex) {
|
|
3736
|
-
const rowspans = [];
|
|
3737
|
-
table.children
|
|
3738
|
-
.filter((row, rowIndex) => rowIndex < targetIndex)
|
|
3739
|
-
.forEach((row, rowIndex) => {
|
|
3740
|
-
row.children.forEach((cell, columnIndex) => {
|
|
3741
|
-
if (cell.rowspan && cell.rowspan > 1) {
|
|
3742
|
-
const rect = {
|
|
3743
|
-
x: rowIndex,
|
|
3744
|
-
y: columnIndex,
|
|
3745
|
-
width: cell.colspan || 1,
|
|
3746
|
-
height: cell.rowspan || 1
|
|
3747
|
-
};
|
|
3748
|
-
rowspans.push(rect);
|
|
3749
|
-
}
|
|
3750
|
-
});
|
|
3751
|
-
});
|
|
3752
|
-
return table.children[0].children.map((cell, columnIndex) => {
|
|
3753
|
-
return rowspans.some(rowspan => isInside(rowspan, targetIndex, columnIndex));
|
|
3754
|
-
});
|
|
3755
|
-
}
|
|
3756
|
-
function calcSpanForColumn(table, targetIndex) {
|
|
3757
|
-
const rowspans = [];
|
|
3758
|
-
table.children.forEach((row, rowIndex) => {
|
|
3759
|
-
row.children
|
|
3760
|
-
.filter((cell, columnIndex) => columnIndex < targetIndex)
|
|
3761
|
-
.forEach((cell, columnIndex) => {
|
|
3762
|
-
if (cell.colspan && cell.colspan > 1) {
|
|
3763
|
-
const rect = {
|
|
3764
|
-
x: rowIndex,
|
|
3765
|
-
y: columnIndex,
|
|
3766
|
-
width: cell.colspan || 1,
|
|
3767
|
-
height: cell.rowspan || 1
|
|
3768
|
-
};
|
|
3769
|
-
rowspans.push(rect);
|
|
3770
|
-
}
|
|
3771
|
-
});
|
|
3772
|
-
});
|
|
3773
|
-
return table.children.map((cell, rowIndx) => {
|
|
3774
|
-
return rowspans.some(rowspan => isInside(rowspan, rowIndx, targetIndex));
|
|
3775
|
-
});
|
|
3776
|
-
}
|
|
3777
|
-
function getOriginCell(table, targetRowIndex, targetColumnIndex) {
|
|
3778
|
-
for (let rowIndex = 0; rowIndex <= targetRowIndex; rowIndex++) {
|
|
3779
|
-
const row = table.children[rowIndex];
|
|
3780
|
-
const originCell = row.children
|
|
3781
|
-
.filter((cell, columnIndex) => columnIndex <= targetColumnIndex)
|
|
3782
|
-
.find((cell, columnIndex) => {
|
|
3783
|
-
if (cell.rowspan > 1 || cell.colspan > 1) {
|
|
3784
|
-
const rect = {
|
|
3785
|
-
x: rowIndex,
|
|
3786
|
-
y: columnIndex,
|
|
3787
|
-
width: cell.colspan || 1,
|
|
3788
|
-
height: cell.rowspan || 1
|
|
3789
|
-
};
|
|
3790
|
-
return isInside(rect, targetRowIndex, targetColumnIndex);
|
|
3791
|
-
}
|
|
3792
|
-
});
|
|
3793
|
-
if (originCell) {
|
|
3794
|
-
return originCell;
|
|
3795
|
-
}
|
|
3796
|
-
}
|
|
3797
|
-
}
|
|
3798
|
-
function isInside(cellRect, rowIndex, columnIndex) {
|
|
3799
|
-
if (rowIndex >= cellRect.x &&
|
|
3800
|
-
rowIndex <= cellRect.x + cellRect.height - 1 &&
|
|
3801
|
-
columnIndex >= cellRect.y &&
|
|
3802
|
-
columnIndex <= cellRect.y + cellRect.width - 1) {
|
|
3803
|
-
return true;
|
|
3804
|
-
}
|
|
3805
|
-
return false;
|
|
3806
|
-
}
|
|
3807
|
-
|
|
3808
|
-
function isVirtualKey(e) {
|
|
3809
|
-
const isMod = e.ctrlKey || e.metaKey;
|
|
3810
|
-
const isAlt = isKeyHotkey('alt', e);
|
|
3811
|
-
const isShift = isKeyHotkey('shift', e);
|
|
3812
|
-
const isCapsLock = e.key.includes('CapsLock');
|
|
3813
|
-
const isTab = e.key.includes('Tab');
|
|
3814
|
-
const isEsc = e.key.includes('Escape');
|
|
3815
|
-
const isF = e.key.startsWith('F');
|
|
3816
|
-
const isArrow = e.key.includes('Arrow') ? true : false;
|
|
3817
|
-
return isCapsLock || isMod || isAlt || isArrow || isShift || isTab || isEsc || isF;
|
|
3818
|
-
}
|
|
3819
|
-
|
|
3820
|
-
/**
|
|
3821
|
-
* 获取标题行网格列宽值
|
|
3822
|
-
* @param editor
|
|
3823
|
-
* @param headerRow 标题行
|
|
3824
|
-
* @param cellsWidth
|
|
3825
|
-
* @returns string
|
|
3826
|
-
*/
|
|
3827
|
-
const getGridColumns = (headerRow, cellsWidth) => {
|
|
3828
|
-
let result = '';
|
|
3829
|
-
Array.from(headerRow.childNodes)
|
|
3830
|
-
.filter((n) => n.nodeType === 1)
|
|
3831
|
-
.forEach((node, i) => {
|
|
3832
|
-
const col = node.getAttribute('colspan');
|
|
3833
|
-
const display = node.style.display;
|
|
3834
|
-
if (display === 'none') {
|
|
3835
|
-
return;
|
|
3836
|
-
}
|
|
3837
|
-
if (col) {
|
|
3838
|
-
const colSpan = Number(col) ?? 1;
|
|
3839
|
-
let width = 0;
|
|
3840
|
-
Array.from({ length: colSpan }, (_, j) => {
|
|
3841
|
-
width += cellsWidth[i + j];
|
|
3842
|
-
});
|
|
3843
|
-
result += width + 'px ';
|
|
3844
|
-
}
|
|
3845
|
-
else {
|
|
3846
|
-
result += cellsWidth[i] + 'px ';
|
|
3847
|
-
}
|
|
3848
|
-
});
|
|
3849
|
-
return result;
|
|
3850
|
-
};
|
|
3851
|
-
const getColumnsWidth = (cellRow, isColgroup = false) => {
|
|
3852
|
-
const result = [];
|
|
3853
|
-
Array.from(cellRow.childNodes)
|
|
3854
|
-
.filter((n) => n.nodeType === 1)
|
|
3855
|
-
.forEach((item) => {
|
|
3856
|
-
if (isColgroup && IS_SAFARI) {
|
|
3857
|
-
result.push(item.offsetWidth);
|
|
3858
|
-
return;
|
|
3859
|
-
}
|
|
3860
|
-
if (item.getBoundingClientRect) {
|
|
3861
|
-
result.push(item.getBoundingClientRect().width);
|
|
3862
|
-
}
|
|
3863
|
-
});
|
|
3864
|
-
return result;
|
|
3865
|
-
};
|
|
3866
|
-
/**
|
|
3867
|
-
* 计算表格列宽
|
|
3868
|
-
* @param isReadonly
|
|
3869
|
-
* @param element
|
|
3870
|
-
* @param tableWidth
|
|
3871
|
-
* @param mode
|
|
3872
|
-
* @returns number[]
|
|
3873
|
-
*/
|
|
3874
|
-
const calcColumnGroups = (isReadonly, element, tableWidth, mode) => {
|
|
3875
|
-
const columns = element?.columns;
|
|
3876
|
-
if (isReadonly) {
|
|
3877
|
-
if (columns) {
|
|
3878
|
-
const opts = new TableOptions();
|
|
3879
|
-
const isPrint = mode === TheMode.print;
|
|
3880
|
-
const newColumns = isPrint
|
|
3881
|
-
? calcPrintColumnWidth(element, opts.minWidthPx)
|
|
3882
|
-
: calcColumnWidth(element, tableWidth, opts.minWidthPx);
|
|
3883
|
-
return newColumns;
|
|
3884
|
-
}
|
|
3885
|
-
return [];
|
|
3886
|
-
}
|
|
3887
|
-
else {
|
|
3888
|
-
return columns;
|
|
3889
|
-
}
|
|
3890
|
-
};
|
|
3891
|
-
/**
|
|
3892
|
-
* 计算表格列宽
|
|
3893
|
-
* @param element
|
|
3894
|
-
* @param tableWidth
|
|
3895
|
-
* @param minWidthPx
|
|
3896
|
-
* @returns number[]
|
|
3897
|
-
*/
|
|
3898
|
-
const calcColumnWidth = (element, tableWidth, minWidthPx) => {
|
|
3899
|
-
const columns = element?.columns;
|
|
3900
|
-
const numberedColumnWidth = element?.options?.numberedColumn ? TABLE_NUMBER_COLUMN : 0;
|
|
3901
|
-
const columnsWidth = columns.reduce((a, b) => a + b.width, 0);
|
|
3902
|
-
// 总列宽大于当前表格宽度时,按照设置时的总列宽计算
|
|
3903
|
-
const columnTotalWidth = Math.max(columnsWidth, tableWidth - numberedColumnWidth);
|
|
3904
|
-
return columns.map(column => {
|
|
3905
|
-
const cellWidth = (column.width / columnsWidth) * columnTotalWidth;
|
|
3906
|
-
return { width: Math.max(cellWidth, minWidthPx) };
|
|
3907
|
-
});
|
|
3908
|
-
};
|
|
3909
|
-
/**
|
|
3910
|
-
* 打印模式下,按照原宽度比例基于当前表格宽度计算列宽
|
|
3911
|
-
* 1. 所有列的最小列宽总和大于表格宽度时,所有列返回最小宽度
|
|
3912
|
-
* @param element
|
|
3913
|
-
* @param minWidthPx
|
|
3914
|
-
* @returns number[]
|
|
3915
|
-
*/
|
|
3916
|
-
const calcPrintColumnWidth = (element, minWidthPx) => {
|
|
3917
|
-
const columns = element?.columns;
|
|
3918
|
-
const numberedColumnWidth = element?.options?.numberedColumn ? TABLE_NUMBER_COLUMN : 0;
|
|
3919
|
-
// 按照 DPI 96 的 A4 纸宽度是 794, 打印时左右 80px 的边距,所以这里取 794 - 80 * 2 = 634
|
|
3920
|
-
// 如果存在序号列,还需要在 634 基础上减去序号列的宽度,剩下的才是内容区域的宽度
|
|
3921
|
-
let columnTotalWidth = 634 - numberedColumnWidth;
|
|
3922
|
-
const columnsWidth = columns.reduce((a, b) => a + b.width, 0);
|
|
3923
|
-
// 计算所有列的 minWidth 总和
|
|
3924
|
-
const totalMinWidth = minWidthPx * columns.length;
|
|
3925
|
-
if (totalMinWidth > columnTotalWidth) {
|
|
3926
|
-
// 如果所有列的 minWidth 总和大于 columnTotalWidth,所有列返回最小宽度
|
|
3927
|
-
return columns.map(() => ({ width: minWidthPx }));
|
|
3928
|
-
}
|
|
3929
|
-
// 在剩余的宽度中按比例分配
|
|
3930
|
-
const remainingWidth = columnTotalWidth - totalMinWidth;
|
|
3931
|
-
const remainingWidthRatio = columns.map(column => column.width / columnsWidth);
|
|
3932
|
-
// 为什么减 1, 因为这个宽度是内容区域宽度,但 td 右侧还有一个边框,所以减去 1
|
|
3933
|
-
let newColumnsWidth = remainingWidthRatio.map(ratio => minWidthPx + Math.floor(ratio * remainingWidth) - 1);
|
|
3934
|
-
return columns.map((_, index) => ({
|
|
3935
|
-
width: newColumnsWidth[index]
|
|
3936
|
-
}));
|
|
3937
|
-
};
|
|
3938
|
-
|
|
3939
|
-
/* cell-position 有关的函数 */
|
|
3940
|
-
/**
|
|
3941
|
-
* 判断是否选中了所有的单元格
|
|
3942
|
-
* @param editor 编辑器对象
|
|
3943
|
-
* @param selectedCellPositions 选中的单元格位置数组
|
|
3944
|
-
* @returns 是否选中了所有的单元格
|
|
3945
|
-
*/
|
|
3946
|
-
const isSelectedAllCell = (editor, selectedCellPositions) => {
|
|
3947
|
-
if (!AngularEditor.isFocused(editor)) {
|
|
3948
|
-
return false;
|
|
3949
|
-
}
|
|
3950
|
-
const pos = createTablePosition(editor);
|
|
3951
|
-
return !!selectedCellPositions.length && pos.getHeight() * pos.getWidth() === selectedCellPositions.length;
|
|
3952
|
-
};
|
|
3953
|
-
/**
|
|
3954
|
-
* 获取选中的单元格位置数组
|
|
3955
|
-
* @param editor 编辑器对象
|
|
3956
|
-
* @param selectedCells 选中的单元格
|
|
3957
|
-
* @returns 选中的单元格位置
|
|
3958
|
-
*/
|
|
3959
|
-
const getSelectedCellPositions = (editor, selectedCells) => {
|
|
3960
|
-
return selectedCells?.map((cell) => {
|
|
3961
|
-
const path = AngularEditor.findPath(editor, cell);
|
|
3962
|
-
const [row, col] = path.slice(-2);
|
|
3963
|
-
return { row, col };
|
|
3964
|
-
});
|
|
3965
|
-
};
|
|
3966
|
-
/**
|
|
3967
|
-
* 获取一定范围内所有的单元格位置
|
|
3968
|
-
* @param startRow 起始行
|
|
3969
|
-
* @param startCol 起始列
|
|
3970
|
-
* @param endRow 结束行
|
|
3971
|
-
* @param endCol 结束列
|
|
3972
|
-
* @returns 单元格位置
|
|
3835
|
+
* 获取一定范围内所有的单元格位置
|
|
3836
|
+
* @param startRow 起始行
|
|
3837
|
+
* @param startCol 起始列
|
|
3838
|
+
* @param endRow 结束行
|
|
3839
|
+
* @param endCol 结束列
|
|
3840
|
+
* @returns 单元格位置
|
|
3973
3841
|
*/
|
|
3974
3842
|
const getCellPositionsFromRange = (startRow, startCol, endRow, endCol) => {
|
|
3975
3843
|
const positions = [];
|
|
@@ -3995,125 +3863,208 @@ const uniqueCellPosition = (cells, selectedCellPositions) => {
|
|
|
3995
3863
|
};
|
|
3996
3864
|
|
|
3997
3865
|
/**
|
|
3998
|
-
*
|
|
3999
|
-
* @param element TableElement
|
|
4000
|
-
* @returns
|
|
3866
|
+
* Create a new cell
|
|
4001
3867
|
*/
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
}));
|
|
4009
|
-
const cell = row.children.find(item => !item.hidden && (item.rowspan || 1) === minRowspan);
|
|
4010
|
-
return {
|
|
4011
|
-
cell,
|
|
4012
|
-
rowIndex: index
|
|
4013
|
-
};
|
|
4014
|
-
}
|
|
4015
|
-
else {
|
|
4016
|
-
return {
|
|
4017
|
-
rowIndex: index
|
|
4018
|
-
};
|
|
4019
|
-
}
|
|
4020
|
-
});
|
|
4021
|
-
return cells;
|
|
4022
|
-
};
|
|
3868
|
+
function createCell(opts, nodes) {
|
|
3869
|
+
return {
|
|
3870
|
+
type: opts.typeCell,
|
|
3871
|
+
children: nodes || [createEmptyContent(opts)]
|
|
3872
|
+
};
|
|
3873
|
+
}
|
|
4023
3874
|
/**
|
|
4024
|
-
*
|
|
4025
|
-
* @param previousCombineRowIndex
|
|
4026
|
-
* @param previousRowIndex
|
|
4027
|
-
* @param rowControls
|
|
3875
|
+
* Create a new default content block
|
|
4028
3876
|
*/
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
|
|
4040
|
-
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
4044
|
-
|
|
4045
|
-
|
|
4046
|
-
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4052
|
-
|
|
4053
|
-
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
|
|
4057
|
-
}
|
|
4058
|
-
});
|
|
4059
|
-
return belowRowlHeight;
|
|
4060
|
-
};
|
|
4061
|
-
const calculateRowControls = (editor, element) => {
|
|
4062
|
-
const minRowSpanCellForRows = calculateMinRowSpanCellForRows(element);
|
|
4063
|
-
const rowControls = [];
|
|
4064
|
-
let previousRowIndex = 0;
|
|
4065
|
-
let previousCombineRowIndex = 0;
|
|
4066
|
-
minRowSpanCellForRows.forEach((cellInfo, index) => {
|
|
4067
|
-
if (!cellInfo.cell) {
|
|
4068
|
-
rowControls.push({
|
|
4069
|
-
height: 0,
|
|
4070
|
-
rowIndex: index
|
|
4071
|
-
});
|
|
4072
|
-
previousCombineRowIndex = index;
|
|
4073
|
-
if (index === minRowSpanCellForRows.length - 1) {
|
|
4074
|
-
calculateRowControlsAvgHeight(previousCombineRowIndex, previousRowIndex, rowControls);
|
|
4075
|
-
}
|
|
4076
|
-
return;
|
|
4077
|
-
}
|
|
4078
|
-
// calculate combine row height
|
|
4079
|
-
if (previousCombineRowIndex > previousRowIndex) {
|
|
4080
|
-
calculateRowControlsAvgHeight(previousCombineRowIndex, previousRowIndex, rowControls);
|
|
4081
|
-
previousCombineRowIndex = 0;
|
|
3877
|
+
function createEmptyContent(opts) {
|
|
3878
|
+
return {
|
|
3879
|
+
type: opts.typeContent,
|
|
3880
|
+
children: [{ text: '' }]
|
|
3881
|
+
};
|
|
3882
|
+
}
|
|
3883
|
+
|
|
3884
|
+
/**
|
|
3885
|
+
* Create a new row block
|
|
3886
|
+
*/
|
|
3887
|
+
function createRow(opts, columns, getCellContent) {
|
|
3888
|
+
const cellNodes = new Array(columns).fill(1).map(i => createCell(opts, getCellContent ? getCellContent(i) : undefined));
|
|
3889
|
+
return {
|
|
3890
|
+
type: opts.typeRow,
|
|
3891
|
+
children: cellNodes
|
|
3892
|
+
};
|
|
3893
|
+
}
|
|
3894
|
+
|
|
3895
|
+
/**
|
|
3896
|
+
* Create a table
|
|
3897
|
+
*/
|
|
3898
|
+
function createTable(opts, columns, rows, getCellContent) {
|
|
3899
|
+
const rowNodes = new Array(rows).fill(1).map(i => createRow(opts, columns, getCellContent ? getCellContent.bind(null, i) : undefined));
|
|
3900
|
+
return {
|
|
3901
|
+
type: opts.typeTable,
|
|
3902
|
+
children: rowNodes,
|
|
3903
|
+
options: {
|
|
3904
|
+
headerRow: true
|
|
4082
3905
|
}
|
|
4083
|
-
|
|
4084
|
-
|
|
4085
|
-
|
|
4086
|
-
|
|
4087
|
-
|
|
4088
|
-
|
|
4089
|
-
|
|
4090
|
-
|
|
3906
|
+
};
|
|
3907
|
+
}
|
|
3908
|
+
|
|
3909
|
+
/**
|
|
3910
|
+
* 获取标题行网格列宽值
|
|
3911
|
+
* @param editor
|
|
3912
|
+
* @param headerRow 标题行
|
|
3913
|
+
* @param cellsWidth
|
|
3914
|
+
* @returns string
|
|
3915
|
+
*/
|
|
3916
|
+
const getGridColumns = (headerRow, cellsWidth) => {
|
|
3917
|
+
let result = '';
|
|
3918
|
+
Array.from(headerRow.childNodes)
|
|
3919
|
+
.filter((n) => n.nodeType === 1)
|
|
3920
|
+
.forEach((node, i) => {
|
|
3921
|
+
const col = node.getAttribute('colspan');
|
|
3922
|
+
const display = node.style.display;
|
|
3923
|
+
if (display === 'none') {
|
|
3924
|
+
return;
|
|
3925
|
+
}
|
|
3926
|
+
if (col) {
|
|
3927
|
+
const colSpan = Number(col) ?? 1;
|
|
3928
|
+
let width = 0;
|
|
3929
|
+
Array.from({ length: colSpan }, (_, j) => {
|
|
3930
|
+
width += cellsWidth[i + j];
|
|
4091
3931
|
});
|
|
3932
|
+
result += width + 'px ';
|
|
4092
3933
|
}
|
|
4093
3934
|
else {
|
|
4094
|
-
|
|
4095
|
-
height,
|
|
4096
|
-
rowIndex: cellInfo.rowIndex
|
|
4097
|
-
});
|
|
3935
|
+
result += cellsWidth[i] + 'px ';
|
|
4098
3936
|
}
|
|
4099
|
-
previousRowIndex = index;
|
|
4100
3937
|
});
|
|
4101
|
-
return
|
|
3938
|
+
return result;
|
|
3939
|
+
};
|
|
3940
|
+
const getColumnsWidth = (cellRow, isColgroup = false) => {
|
|
3941
|
+
const result = [];
|
|
3942
|
+
Array.from(cellRow.childNodes)
|
|
3943
|
+
.filter((n) => n.nodeType === 1)
|
|
3944
|
+
.forEach((item) => {
|
|
3945
|
+
if (isColgroup && IS_SAFARI) {
|
|
3946
|
+
result.push(item.offsetWidth);
|
|
3947
|
+
return;
|
|
3948
|
+
}
|
|
3949
|
+
if (item.getBoundingClientRect) {
|
|
3950
|
+
result.push(item.getBoundingClientRect().width);
|
|
3951
|
+
}
|
|
3952
|
+
});
|
|
3953
|
+
return result;
|
|
4102
3954
|
};
|
|
4103
|
-
|
|
4104
3955
|
/**
|
|
4105
|
-
*
|
|
4106
|
-
* @
|
|
3956
|
+
* 计算表格列宽
|
|
3957
|
+
* @param isReadonly
|
|
3958
|
+
* @param element
|
|
3959
|
+
* @param tableWidth
|
|
3960
|
+
* @param mode
|
|
3961
|
+
* @returns number[]
|
|
4107
3962
|
*/
|
|
4108
|
-
|
|
4109
|
-
|
|
4110
|
-
|
|
3963
|
+
const calcColumnGroups = (isReadonly, element, tableWidth, mode) => {
|
|
3964
|
+
const columns = element?.columns;
|
|
3965
|
+
if (isReadonly) {
|
|
3966
|
+
if (columns) {
|
|
3967
|
+
const opts = new TableOptions();
|
|
3968
|
+
const isPrint = mode === TheMode.print;
|
|
3969
|
+
const newColumns = isPrint
|
|
3970
|
+
? calcPrintColumnWidth(element, opts.minWidthPx)
|
|
3971
|
+
: calcColumnWidth(element, tableWidth, opts.minWidthPx);
|
|
3972
|
+
return newColumns;
|
|
3973
|
+
}
|
|
3974
|
+
return [];
|
|
4111
3975
|
}
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
return true;
|
|
3976
|
+
else {
|
|
3977
|
+
return columns;
|
|
4115
3978
|
}
|
|
4116
|
-
}
|
|
3979
|
+
};
|
|
3980
|
+
/**
|
|
3981
|
+
* 计算表格列宽
|
|
3982
|
+
* @param element
|
|
3983
|
+
* @param tableWidth
|
|
3984
|
+
* @param minWidthPx
|
|
3985
|
+
* @returns number[]
|
|
3986
|
+
*/
|
|
3987
|
+
const calcColumnWidth = (element, tableWidth, minWidthPx) => {
|
|
3988
|
+
const columns = element?.columns;
|
|
3989
|
+
const numberedColumnWidth = element?.options?.numberedColumn ? TABLE_NUMBER_COLUMN : 0;
|
|
3990
|
+
const columnsWidth = columns.reduce((a, b) => a + b.width, 0);
|
|
3991
|
+
// 总列宽大于当前表格宽度时,按照设置时的总列宽计算
|
|
3992
|
+
const columnTotalWidth = Math.max(columnsWidth, tableWidth - numberedColumnWidth);
|
|
3993
|
+
return columns.map(column => {
|
|
3994
|
+
const cellWidth = (column.width / columnsWidth) * columnTotalWidth;
|
|
3995
|
+
return { width: Math.max(cellWidth, minWidthPx) };
|
|
3996
|
+
});
|
|
3997
|
+
};
|
|
3998
|
+
/**
|
|
3999
|
+
* 打印模式下,按照原宽度比例基于当前表格宽度计算列宽
|
|
4000
|
+
* 1. 所有列的最小列宽总和大于表格宽度时,所有列返回最小宽度
|
|
4001
|
+
* @param element
|
|
4002
|
+
* @param minWidthPx
|
|
4003
|
+
* @returns number[]
|
|
4004
|
+
*/
|
|
4005
|
+
const calcPrintColumnWidth = (element, minWidthPx) => {
|
|
4006
|
+
const columns = element?.columns;
|
|
4007
|
+
const numberedColumnWidth = element?.options?.numberedColumn ? TABLE_NUMBER_COLUMN : 0;
|
|
4008
|
+
// 按照 DPI 96 的 A4 纸宽度是 794, 打印时左右 80px 的边距,所以这里取 794 - 80 * 2 = 634
|
|
4009
|
+
// 如果存在序号列,还需要在 634 基础上减去序号列的宽度,剩下的才是内容区域的宽度
|
|
4010
|
+
let columnTotalWidth = 634 - numberedColumnWidth;
|
|
4011
|
+
const columnsWidth = columns.reduce((a, b) => a + b.width, 0);
|
|
4012
|
+
// 计算所有列的 minWidth 总和
|
|
4013
|
+
const totalMinWidth = minWidthPx * columns.length;
|
|
4014
|
+
if (totalMinWidth > columnTotalWidth) {
|
|
4015
|
+
// 如果所有列的 minWidth 总和大于 columnTotalWidth,所有列返回最小宽度
|
|
4016
|
+
return columns.map(() => ({ width: minWidthPx }));
|
|
4017
|
+
}
|
|
4018
|
+
// 在剩余的宽度中按比例分配
|
|
4019
|
+
const remainingWidth = columnTotalWidth - totalMinWidth;
|
|
4020
|
+
const remainingWidthRatio = columns.map(column => column.width / columnsWidth);
|
|
4021
|
+
// 为什么减 1, 因为这个宽度是内容区域宽度,但 td 右侧还有一个边框,所以减去 1
|
|
4022
|
+
let newColumnsWidth = remainingWidthRatio.map(ratio => minWidthPx + Math.floor(ratio * remainingWidth) - 1);
|
|
4023
|
+
return columns.map((_, index) => ({
|
|
4024
|
+
width: newColumnsWidth[index]
|
|
4025
|
+
}));
|
|
4026
|
+
};
|
|
4027
|
+
|
|
4028
|
+
const getNextCell = (e, direction, cellPath) => {
|
|
4029
|
+
const [row, col] = cellPath;
|
|
4030
|
+
const pos = createTablePosition(e);
|
|
4031
|
+
let cell;
|
|
4032
|
+
switch (direction) {
|
|
4033
|
+
case TableSelectCellDirection.up:
|
|
4034
|
+
const aboveRow = pos.table.children[pos.getRowIndex() - 1];
|
|
4035
|
+
cell = aboveRow && aboveRow.children[pos.getColumnIndex()];
|
|
4036
|
+
break;
|
|
4037
|
+
case TableSelectCellDirection.down:
|
|
4038
|
+
let belowRowIndex = pos.getRowIndex() + 1;
|
|
4039
|
+
if (pos.cell.rowspan > 1) {
|
|
4040
|
+
belowRowIndex = pos.getRowIndex() + pos.cell.rowspan;
|
|
4041
|
+
}
|
|
4042
|
+
const belowRow = pos.table.children[belowRowIndex];
|
|
4043
|
+
cell = belowRow && belowRow.children[pos.getColumnIndex()];
|
|
4044
|
+
break;
|
|
4045
|
+
case TableSelectCellDirection.right:
|
|
4046
|
+
const afterPoint = Editor.after(e, e.selection);
|
|
4047
|
+
const afterPosition = afterPoint && createTablePosition(e, afterPoint.path);
|
|
4048
|
+
if (afterPosition && afterPosition.cell?.hidden) {
|
|
4049
|
+
cell = afterPosition.findNext();
|
|
4050
|
+
}
|
|
4051
|
+
else {
|
|
4052
|
+
cell = pos.findCellByPath({ row: row, col: col + 1 });
|
|
4053
|
+
}
|
|
4054
|
+
break;
|
|
4055
|
+
case TableSelectCellDirection.left:
|
|
4056
|
+
const beforePoint = Editor.before(e, e.selection);
|
|
4057
|
+
const beforePosition = beforePoint && createTablePosition(e, beforePoint.path);
|
|
4058
|
+
if (beforePosition && beforePosition.cell?.hidden) {
|
|
4059
|
+
cell = beforePosition.findPrevious();
|
|
4060
|
+
}
|
|
4061
|
+
else {
|
|
4062
|
+
cell = pos.findCellByPath({ row: row, col: col - 1 });
|
|
4063
|
+
}
|
|
4064
|
+
break;
|
|
4065
|
+
}
|
|
4066
|
+
return cell;
|
|
4067
|
+
};
|
|
4117
4068
|
|
|
4118
4069
|
function getSelectCellNode(editor, selectedCells) {
|
|
4119
4070
|
const pos = createTablePosition(editor);
|
|
@@ -4135,6 +4086,96 @@ function focusCell(editor, path) {
|
|
|
4135
4086
|
Transforms.select(editor, at);
|
|
4136
4087
|
}
|
|
4137
4088
|
|
|
4089
|
+
/**
|
|
4090
|
+
* compatible with old data
|
|
4091
|
+
* @returns
|
|
4092
|
+
*/
|
|
4093
|
+
function isHeaderRow(element) {
|
|
4094
|
+
if (element?.options?.headerRow) {
|
|
4095
|
+
return true;
|
|
4096
|
+
}
|
|
4097
|
+
// compat old data
|
|
4098
|
+
if (element?.children[0].header) {
|
|
4099
|
+
return true;
|
|
4100
|
+
}
|
|
4101
|
+
}
|
|
4102
|
+
|
|
4103
|
+
/**
|
|
4104
|
+
* True if the given range is inside one table
|
|
4105
|
+
*/
|
|
4106
|
+
function isRangeInTable(opts, editor, range) {
|
|
4107
|
+
const { focus } = range;
|
|
4108
|
+
const startPosition = createTablePosition(editor);
|
|
4109
|
+
const endPosition = createTablePosition(editor, focus.path);
|
|
4110
|
+
// Only handle events in tables
|
|
4111
|
+
if (!startPosition.isInTable() || !endPosition.isInTable()) {
|
|
4112
|
+
return false;
|
|
4113
|
+
}
|
|
4114
|
+
// Inside the same table
|
|
4115
|
+
return startPosition.table === endPosition.table;
|
|
4116
|
+
}
|
|
4117
|
+
|
|
4118
|
+
/**
|
|
4119
|
+
* Is the selection in a table
|
|
4120
|
+
*/
|
|
4121
|
+
function isSelectionInTable(opts, editor) {
|
|
4122
|
+
if (!editor.selection) {
|
|
4123
|
+
return false;
|
|
4124
|
+
}
|
|
4125
|
+
return isRangeInTable(opts, editor, editor.selection);
|
|
4126
|
+
}
|
|
4127
|
+
/**
|
|
4128
|
+
* 传入的单元格能否组成一个矩形
|
|
4129
|
+
* @param editor
|
|
4130
|
+
* @param cells
|
|
4131
|
+
* @returns boolean
|
|
4132
|
+
*/
|
|
4133
|
+
function isRectangularInTableCells(editor, cells) {
|
|
4134
|
+
let selectCellSize = cells.length;
|
|
4135
|
+
if (selectCellSize === 0) {
|
|
4136
|
+
return false;
|
|
4137
|
+
}
|
|
4138
|
+
const { row, col } = cells[0];
|
|
4139
|
+
let maxCol = col;
|
|
4140
|
+
let minCol = col;
|
|
4141
|
+
let maxRow = row;
|
|
4142
|
+
let minRow = row;
|
|
4143
|
+
const pos = createTablePosition(editor);
|
|
4144
|
+
for (let { row, col } of cells) {
|
|
4145
|
+
const { hidden, rowspan, colspan } = pos.findCellByPath({ row, col });
|
|
4146
|
+
if (hidden) {
|
|
4147
|
+
selectCellSize--;
|
|
4148
|
+
continue;
|
|
4149
|
+
}
|
|
4150
|
+
if (rowspan || colspan) {
|
|
4151
|
+
const colSpan = colspan ?? 1;
|
|
4152
|
+
const rowSpan = rowspan ?? 1;
|
|
4153
|
+
// 更新视觉选中的个数
|
|
4154
|
+
selectCellSize = selectCellSize + (rowSpan * colSpan - 1);
|
|
4155
|
+
// 纠正合并单元格下的 row 和 col 的真实值
|
|
4156
|
+
row = row + rowSpan - 1;
|
|
4157
|
+
col = col + colSpan - 1;
|
|
4158
|
+
}
|
|
4159
|
+
maxCol = col > maxCol ? col : maxCol;
|
|
4160
|
+
minCol = col < minCol ? col : minCol;
|
|
4161
|
+
maxRow = row > maxRow ? row : maxRow;
|
|
4162
|
+
minRow = row < minRow ? row : minRow;
|
|
4163
|
+
}
|
|
4164
|
+
return (maxRow + 1 - minRow) * (maxCol + 1 - minCol) === selectCellSize;
|
|
4165
|
+
}
|
|
4166
|
+
|
|
4167
|
+
function isVirtualKey(e) {
|
|
4168
|
+
const isMod = e.ctrlKey || e.metaKey;
|
|
4169
|
+
const isAlt = isKeyHotkey('alt', e);
|
|
4170
|
+
const isShift = isKeyHotkey('shift', e);
|
|
4171
|
+
const isCapsLock = e.key.includes('CapsLock');
|
|
4172
|
+
const isTab = e.key.includes('Tab');
|
|
4173
|
+
const isEsc = e.key.includes('Escape');
|
|
4174
|
+
const isF = e.key.startsWith('F');
|
|
4175
|
+
const isArrow = e.key.includes('Arrow') ? true : false;
|
|
4176
|
+
return isCapsLock || isMod || isAlt || isArrow || isShift || isTab || isEsc || isF;
|
|
4177
|
+
}
|
|
4178
|
+
|
|
4138
4179
|
const setMarks = (editor, marks, at) => {
|
|
4139
4180
|
Transforms.setNodes(editor, marks, {
|
|
4140
4181
|
at,
|
|
@@ -5498,10 +5539,10 @@ class TheBaseSuggestion {
|
|
|
5498
5539
|
handleMousedown(event) {
|
|
5499
5540
|
event.preventDefault();
|
|
5500
5541
|
}
|
|
5501
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
5502
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.
|
|
5542
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBaseSuggestion, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5543
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: TheBaseSuggestion, inputs: { editor: "editor", type: "type", keywords: "keywords" }, host: { listeners: { "mousedown": "handleMousedown($event)" } }, ngImport: i0 }); }
|
|
5503
5544
|
}
|
|
5504
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
5545
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBaseSuggestion, decorators: [{
|
|
5505
5546
|
type: Directive
|
|
5506
5547
|
}], propDecorators: { editor: [{
|
|
5507
5548
|
type: Input
|
|
@@ -5542,10 +5583,10 @@ class TheTableSelectComponent {
|
|
|
5542
5583
|
this.maxRowIndex = -1;
|
|
5543
5584
|
}
|
|
5544
5585
|
}
|
|
5545
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
5546
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
5586
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableSelectComponent, deps: [{ token: i1$1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5587
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheTableSelectComponent, selector: "table-select", inputs: { optionsParam: "optionsParam", editor: "editor", beforeInsert: "beforeInsert" }, ngImport: i0, template: "<div class=\"table-selector-container\">\n <div *ngFor=\"let item of tableData; let rowIndex = index\" class=\"selector-row\" (mousedown)=\"executeTable($event)\">\n <span\n *ngFor=\"let item of tableData; let colIndex = index\"\n [ngClass]=\"{ 'active-cell': rowIndex <= maxRowIndex && colIndex <= maxColIndex, 'selector-cell': true }\"\n (mouseenter)=\"onSelectCells(rowIndex, colIndex)\"\n >\n </span>\n </div>\n <span class=\"selector-text\">{{ maxRowIndex + 1 }} x {{ maxColIndex + 1 }}</span>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
5547
5588
|
}
|
|
5548
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
5589
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableSelectComponent, decorators: [{
|
|
5549
5590
|
type: Component,
|
|
5550
5591
|
args: [{ selector: 'table-select', template: "<div class=\"table-selector-container\">\n <div *ngFor=\"let item of tableData; let rowIndex = index\" class=\"selector-row\" (mousedown)=\"executeTable($event)\">\n <span\n *ngFor=\"let item of tableData; let colIndex = index\"\n [ngClass]=\"{ 'active-cell': rowIndex <= maxRowIndex && colIndex <= maxColIndex, 'selector-cell': true }\"\n (mouseenter)=\"onSelectCells(rowIndex, colIndex)\"\n >\n </span>\n </div>\n <span class=\"selector-text\">{{ maxRowIndex + 1 }} x {{ maxColIndex + 1 }}</span>\n</div>\n" }]
|
|
5551
5592
|
}], ctorParameters: function () { return [{ type: i1$1.ThyPopoverRef }]; }, propDecorators: { optionsParam: [{
|
|
@@ -5597,15 +5638,15 @@ class TheListboxOptionDirective {
|
|
|
5597
5638
|
getActive() {
|
|
5598
5639
|
return this._active;
|
|
5599
5640
|
}
|
|
5600
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
5601
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.
|
|
5641
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheListboxOptionDirective, deps: [{ token: THE_LISTBOX_PARENT_OPTION_TOKEN, optional: true, skipSelf: true }, { token: THE_LISTBOX_PARENT_GROUP_TOKEN }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5642
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: TheListboxOptionDirective, selector: "[theListboxOption]", inputs: { theOptionValue: "theOptionValue", theOptionDisabled: "theOptionDisabled" }, host: { properties: { "class": "this.className" } }, providers: [
|
|
5602
5643
|
{
|
|
5603
5644
|
provide: THE_LISTBOX_PARENT_OPTION_TOKEN,
|
|
5604
5645
|
useExisting: TheListboxOptionDirective
|
|
5605
5646
|
}
|
|
5606
5647
|
], queries: [{ propertyName: "_options", predicate: i0.forwardRef(function () { return TheListboxOptionDirective; }), descendants: true }], exportAs: ["theListboxOption"], ngImport: i0 }); }
|
|
5607
5648
|
}
|
|
5608
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
5649
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheListboxOptionDirective, decorators: [{
|
|
5609
5650
|
type: Directive,
|
|
5610
5651
|
args: [{
|
|
5611
5652
|
selector: '[theListboxOption]',
|
|
@@ -5680,15 +5721,15 @@ class TheListboxGroupDirective {
|
|
|
5680
5721
|
getLast() {
|
|
5681
5722
|
return this.options[this.options.length - 1];
|
|
5682
5723
|
}
|
|
5683
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
5684
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.
|
|
5724
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheListboxGroupDirective, deps: [{ token: THE_LISTBOX_PARENT_OPTION_TOKEN, optional: true, skipSelf: true }, { token: THE_LISTBOX_TOKEN }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5725
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: TheListboxGroupDirective, selector: "[theListboxGroup]", inputs: { horizontalColumn: "horizontalColumn" }, host: { properties: { "class": "this.className" } }, providers: [
|
|
5685
5726
|
{
|
|
5686
5727
|
provide: THE_LISTBOX_PARENT_GROUP_TOKEN,
|
|
5687
5728
|
useExisting: TheListboxGroupDirective
|
|
5688
5729
|
}
|
|
5689
5730
|
], queries: [{ propertyName: "_options", predicate: TheListboxOptionDirective, descendants: true }], exportAs: ["theListboxGroup"], ngImport: i0 }); }
|
|
5690
5731
|
}
|
|
5691
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
5732
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheListboxGroupDirective, decorators: [{
|
|
5692
5733
|
type: Directive,
|
|
5693
5734
|
args: [{
|
|
5694
5735
|
selector: '[theListboxGroup]',
|
|
@@ -5891,15 +5932,15 @@ class TheListboxDirective {
|
|
|
5891
5932
|
this._optionChangesSubscription.unsubscribe();
|
|
5892
5933
|
this._keyboardSubscription.unsubscribe();
|
|
5893
5934
|
}
|
|
5894
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
5895
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.
|
|
5935
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheListboxDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5936
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: TheListboxDirective, selector: "[theListBox]", inputs: { keyboardContainer: "keyboardContainer", autoActiveFirstItem: "autoActiveFirstItem" }, outputs: { theListboxChange: "theListboxChange" }, host: { properties: { "class": "this.className" } }, providers: [
|
|
5896
5937
|
{
|
|
5897
5938
|
provide: THE_LISTBOX_TOKEN,
|
|
5898
5939
|
useExisting: TheListboxDirective
|
|
5899
5940
|
}
|
|
5900
5941
|
], queries: [{ propertyName: "_groups", predicate: TheListboxGroupDirective, descendants: true }, { propertyName: "_options", predicate: TheListboxOptionDirective, descendants: true }], exportAs: ["theListBox"], ngImport: i0 }); }
|
|
5901
5942
|
}
|
|
5902
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
5943
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheListboxDirective, decorators: [{
|
|
5903
5944
|
type: Directive,
|
|
5904
5945
|
args: [{
|
|
5905
5946
|
selector: '[theListBox]',
|
|
@@ -5932,10 +5973,10 @@ class ThePreventDefaultDirective {
|
|
|
5932
5973
|
mousedown(event) {
|
|
5933
5974
|
event.preventDefault();
|
|
5934
5975
|
}
|
|
5935
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
5936
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.
|
|
5976
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ThePreventDefaultDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5977
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: ThePreventDefaultDirective, selector: "[thePreventDefault]", host: { listeners: { "mousedown": "mousedown($event)" } }, exportAs: ["thePreventDefault"], ngImport: i0 }); }
|
|
5937
5978
|
}
|
|
5938
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
5979
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ThePreventDefaultDirective, decorators: [{
|
|
5939
5980
|
type: Directive,
|
|
5940
5981
|
args: [{
|
|
5941
5982
|
selector: '[thePreventDefault]',
|
|
@@ -6100,10 +6141,10 @@ class ThePluginMenuComponent extends mixinUnsubscribe(MixinBase) {
|
|
|
6100
6141
|
ngOnDestroy() {
|
|
6101
6142
|
super.ngOnDestroy();
|
|
6102
6143
|
}
|
|
6103
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
6104
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.4", type: ThePluginMenuComponent, selector: "the-plugin-menu", inputs: { editor: "editor", theDisplaySearch: "theDisplaySearch", thePluginMenu: "thePluginMenu", sceneKey: "sceneKey", subPanelClass: "subPanelClass", autoActiveFirstItem: "autoActiveFirstItem" }, host: { properties: { "class": "this.containerClassName" } }, viewQueries: [{ propertyName: "dropdownTriggers", predicate: ["dropdownTriggers"], descendants: true, read: ThyDropdownDirective }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"theDisplaySearch\" class=\"menu-search px-5 pt-5 pb-2\">\n <thy-input-search [(ngModel)]=\"keyWords\" placeholder=\"\u641C\u7D22\" thyIconPosition=\"after\" (ngModelChange)=\"updateKeywords(keyWords)\">\n </thy-input-search>\n</div>\n\n<div\n *ngIf=\"groupMenu.length > 0; else thyEmpty\"\n theListBox\n [keyboardContainer]=\"keyboardContainer\"\n [autoActiveFirstItem]=\"listBoxAutoActiveFirstItem\"\n (theListboxChange)=\"theListboxChange($event)\"\n class=\"thy-dropdown-menu the-plugin-menu-scroll-container pb-2 pt-0\"\n>\n <div *ngIf=\"iconMenu?.length > 0\" theListboxGroup [horizontalColumn]=\"6\" class=\"icon-menu d-flex pl-5 py-1\">\n <ng-container *ngFor=\"let item of iconMenu; trackBy: trackByFn\">\n <a\n *ngIf=\"item.type === ThePluginMenuItemType.icon\"\n href=\"javascript:;\"\n class=\"mt-2\"\n thyAction\n theListboxOption\n [theOptionValue]=\"item\"\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item?.name\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n ></a>\n </ng-container>\n </div>\n\n <thy-divider *ngIf=\"this.iconMenu?.length\" class=\"my-2\"></thy-divider>\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 thyDropdownMenuItem\n theListboxOption\n [theOptionValue]=\"item\"\n class=\"py-0\"\n thePreventDefault\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (click)=\"handleItemSelection(item)\"\n >\n <div *ngIf=\"item.menuIcon\" 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 </ng-container>\n <ng-container *ngIf=\"item.isMenuItem && item.children?.length > 0\" #hasExpanded>\n <div\n #dropdownTriggers\n [thyDropdown]=\"expand\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n [thyDisabled]=\"item.disabled\"\n theListboxOption\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyPopoverOptions]=\"expandPopoverOptions\"\n class=\"py-0\"\n thePreventDefault\n [thyPanelClass]=\"subPanelClass\"\n (click)=\"handleItemSelection(item)\"\n >\n <div *ngIf=\"item.menuIcon\" 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 *ngIf=\"item.children?.length > 0\">\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n <thy-dropdown-menu #expand>\n <div class=\"the-plugin-menu-container expand-menu\" theListboxGroup>\n <ng-container *ngFor=\"let child of item.children\">\n <div\n *ngIf=\"child.type === ThePluginMenuItemType.group\"\n thyDropdownMenuItem\n theListboxOption\n class=\"py-0\"\n thePreventDefault\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"child.disabled\"\n (click)=\"handleItemSelection(child)\"\n [theOptionValue]=\"child\"\n >\n <div *ngIf=\"child.menuIcon\" class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"child.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 {{ child.name }}\n </div>\n </div>\n </div>\n <thy-divider *ngIf=\"child === 'divider'\" class=\"my-2\"></thy-divider>\n </ng-container>\n </div>\n </thy-dropdown-menu>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.isMenuItem && item.key === 'table'\">\n <div\n #dropdownTriggers\n [thyPopover]=\"tableSelect\"\n thyPlacement=\"rightTop\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n [thyConfig]=\"tableSelectPopoverConfig\"\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"item.disabled\"\n class=\"py-0\"\n thePreventDefault\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]=\"removeKeywords\"\n ></table-select>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!item.isMenuItem\" #menuGroup>\n <thy-dropdown-menu-group class=\"font-size-sm\" [thyTitle]=\"item.groupName\"></thy-dropdown-menu-group>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #thyEmpty>\n <div class=\"empty d-flex align-items-center justify-content-center\">\n <thy-empty [thyMessage]=\"thyMessage\"></thy-empty>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i8.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: i6$1.ThyInputSearchComponent, selector: "thy-input-search", inputs: ["name", "placeholder", "thyTheme", "thySearchFocus", "thyIconPosition", "thySize"], outputs: ["clear", "thyClear"] }, { kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: i8$1.ThyDividerComponent, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: i6.ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyActiveClass", "thyPopoverOptions", "thyPlacement", "thyMenuInsideClosable", "thyPanelClass"], outputs: ["thyActiveChange"] }, { kind: "component", type: i6.ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth", "thyImmediateRender"] }, { kind: "component", type: i6.ThyDropdownMenuGroupComponent, selector: "thy-dropdown-menu-group", inputs: ["thyTitle"] }, { kind: "directive", type: i6.ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "component", type: i10.ThyEmptyComponent, selector: "thy-empty", inputs: ["thyMessage", "thyTranslationKey", "thyTranslationValues", "thyEntityName", "thyEntityNameTranslateKey", "thyIconName", "thySize", "thyMarginTop", "thyTopAuto", "thyContainer", "thyImageUrl", "thyImageLoading", "thyImageFetchPriority", "thyDescription"] }, { kind: "directive", type: i1$1.ThyPopoverDirective, selector: "[thyPopover]", inputs: ["thyPopover", "thyTrigger", "thyPlacement", "thyOffset", "thyConfig", "thyShowDelay", "thyHideDelay", "thyAutoAdaptive", "thyDisabled"] }, { kind: "component", type: TheTableSelectComponent, selector: "table-select", inputs: ["optionsParam", "editor", "beforeInsert"] }, { kind: "directive", type: TheListboxOptionDirective, selector: "[theListboxOption]", inputs: ["theOptionValue", "theOptionDisabled"], exportAs: ["theListboxOption"] }, { kind: "directive", type: TheListboxGroupDirective, selector: "[theListboxGroup]", inputs: ["horizontalColumn"], exportAs: ["theListboxGroup"] }, { kind: "directive", type: TheListboxDirective, selector: "[theListBox]", inputs: ["keyboardContainer", "autoActiveFirstItem"], outputs: ["theListboxChange"], exportAs: ["theListBox"] }, { kind: "directive", type: ThePreventDefaultDirective, selector: "[thePreventDefault]", exportAs: ["thePreventDefault"] }, { kind: "pipe", type: PluginMenuPipe, name: "getMenuIcon" }] }); }
|
|
6144
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ThePluginMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1$1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6145
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: ThePluginMenuComponent, selector: "the-plugin-menu", inputs: { editor: "editor", theDisplaySearch: "theDisplaySearch", thePluginMenu: "thePluginMenu", sceneKey: "sceneKey", subPanelClass: "subPanelClass", autoActiveFirstItem: "autoActiveFirstItem" }, host: { properties: { "class": "this.containerClassName" } }, viewQueries: [{ propertyName: "dropdownTriggers", predicate: ["dropdownTriggers"], descendants: true, read: ThyDropdownDirective }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"theDisplaySearch\" class=\"menu-search px-5 pt-5 pb-2\">\n <thy-input-search [(ngModel)]=\"keyWords\" placeholder=\"\u641C\u7D22\" thyIconPosition=\"after\" (ngModelChange)=\"updateKeywords(keyWords)\">\n </thy-input-search>\n</div>\n\n<div\n *ngIf=\"groupMenu.length > 0; else thyEmpty\"\n theListBox\n [keyboardContainer]=\"keyboardContainer\"\n [autoActiveFirstItem]=\"listBoxAutoActiveFirstItem\"\n (theListboxChange)=\"theListboxChange($event)\"\n class=\"thy-dropdown-menu the-plugin-menu-scroll-container pb-2 pt-0\"\n>\n <div *ngIf=\"iconMenu?.length > 0\" theListboxGroup [horizontalColumn]=\"6\" class=\"icon-menu d-flex pl-5 py-1\">\n <ng-container *ngFor=\"let item of iconMenu; trackBy: trackByFn\">\n <a\n *ngIf=\"item.type === ThePluginMenuItemType.icon\"\n href=\"javascript:;\"\n class=\"mt-2\"\n thyAction\n theListboxOption\n [theOptionValue]=\"item\"\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item?.name\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n ></a>\n </ng-container>\n </div>\n\n <thy-divider *ngIf=\"this.iconMenu?.length\" class=\"my-2\"></thy-divider>\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 thyDropdownMenuItem\n theListboxOption\n [theOptionValue]=\"item\"\n class=\"py-0\"\n thePreventDefault\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (click)=\"handleItemSelection(item)\"\n >\n <div *ngIf=\"item.menuIcon\" 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 </ng-container>\n <ng-container *ngIf=\"item.isMenuItem && item.children?.length > 0\" #hasExpanded>\n <div\n #dropdownTriggers\n [thyDropdown]=\"expand\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n [thyDisabled]=\"item.disabled\"\n theListboxOption\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyPopoverOptions]=\"expandPopoverOptions\"\n class=\"py-0\"\n thePreventDefault\n [thyPanelClass]=\"subPanelClass\"\n (click)=\"handleItemSelection(item)\"\n >\n <div *ngIf=\"item.menuIcon\" 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 *ngIf=\"item.children?.length > 0\">\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n <thy-dropdown-menu #expand>\n <div class=\"the-plugin-menu-container expand-menu\" theListboxGroup>\n <ng-container *ngFor=\"let child of item.children\">\n <div\n *ngIf=\"child.type === ThePluginMenuItemType.group\"\n thyDropdownMenuItem\n theListboxOption\n class=\"py-0\"\n thePreventDefault\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"child.disabled\"\n (click)=\"handleItemSelection(child)\"\n [theOptionValue]=\"child\"\n >\n <div *ngIf=\"child.menuIcon\" class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"child.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 {{ child.name }}\n </div>\n </div>\n </div>\n <thy-divider *ngIf=\"child === 'divider'\" class=\"my-2\"></thy-divider>\n </ng-container>\n </div>\n </thy-dropdown-menu>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.isMenuItem && item.key === 'table'\">\n <div\n #dropdownTriggers\n [thyPopover]=\"tableSelect\"\n thyPlacement=\"rightTop\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n [thyConfig]=\"tableSelectPopoverConfig\"\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"item.disabled\"\n class=\"py-0\"\n thePreventDefault\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]=\"removeKeywords\"\n ></table-select>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!item.isMenuItem\" #menuGroup>\n <thy-dropdown-menu-group class=\"font-size-sm\" [thyTitle]=\"item.groupName\"></thy-dropdown-menu-group>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #thyEmpty>\n <div class=\"empty d-flex align-items-center justify-content-center\">\n <thy-empty [thyMessage]=\"thyMessage\"></thy-empty>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i8.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: i6$1.ThyInputSearchComponent, selector: "thy-input-search", inputs: ["name", "placeholder", "thyTheme", "thySearchFocus", "thyIconPosition", "thySize"], outputs: ["clear", "thyClear"] }, { kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: i8$1.ThyDividerComponent, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: i6.ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyActiveClass", "thyPopoverOptions", "thyPlacement", "thyMenuInsideClosable", "thyPanelClass"], outputs: ["thyActiveChange"] }, { kind: "component", type: i6.ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth", "thyImmediateRender"] }, { kind: "component", type: i6.ThyDropdownMenuGroupComponent, selector: "thy-dropdown-menu-group", inputs: ["thyTitle"] }, { kind: "directive", type: i6.ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "component", type: i10.ThyEmptyComponent, selector: "thy-empty", inputs: ["thyMessage", "thyTranslationKey", "thyTranslationValues", "thyEntityName", "thyEntityNameTranslateKey", "thyIconName", "thySize", "thyMarginTop", "thyTopAuto", "thyContainer", "thyImageUrl", "thyImageLoading", "thyImageFetchPriority", "thyDescription"] }, { kind: "directive", type: i1$1.ThyPopoverDirective, selector: "[thyPopover]", inputs: ["thyPopover", "thyTrigger", "thyPlacement", "thyOffset", "thyConfig", "thyShowDelay", "thyHideDelay", "thyAutoAdaptive", "thyDisabled"] }, { kind: "component", type: TheTableSelectComponent, selector: "table-select", inputs: ["optionsParam", "editor", "beforeInsert"] }, { kind: "directive", type: TheListboxOptionDirective, selector: "[theListboxOption]", inputs: ["theOptionValue", "theOptionDisabled"], exportAs: ["theListboxOption"] }, { kind: "directive", type: TheListboxGroupDirective, selector: "[theListboxGroup]", inputs: ["horizontalColumn"], exportAs: ["theListboxGroup"] }, { kind: "directive", type: TheListboxDirective, selector: "[theListBox]", inputs: ["keyboardContainer", "autoActiveFirstItem"], outputs: ["theListboxChange"], exportAs: ["theListBox"] }, { kind: "directive", type: ThePreventDefaultDirective, selector: "[thePreventDefault]", exportAs: ["thePreventDefault"] }, { kind: "pipe", type: PluginMenuPipe, name: "getMenuIcon" }] }); }
|
|
6105
6146
|
}
|
|
6106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
6147
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ThePluginMenuComponent, decorators: [{
|
|
6107
6148
|
type: Component,
|
|
6108
6149
|
args: [{ selector: 'the-plugin-menu', template: "<div *ngIf=\"theDisplaySearch\" class=\"menu-search px-5 pt-5 pb-2\">\n <thy-input-search [(ngModel)]=\"keyWords\" placeholder=\"\u641C\u7D22\" thyIconPosition=\"after\" (ngModelChange)=\"updateKeywords(keyWords)\">\n </thy-input-search>\n</div>\n\n<div\n *ngIf=\"groupMenu.length > 0; else thyEmpty\"\n theListBox\n [keyboardContainer]=\"keyboardContainer\"\n [autoActiveFirstItem]=\"listBoxAutoActiveFirstItem\"\n (theListboxChange)=\"theListboxChange($event)\"\n class=\"thy-dropdown-menu the-plugin-menu-scroll-container pb-2 pt-0\"\n>\n <div *ngIf=\"iconMenu?.length > 0\" theListboxGroup [horizontalColumn]=\"6\" class=\"icon-menu d-flex pl-5 py-1\">\n <ng-container *ngFor=\"let item of iconMenu; trackBy: trackByFn\">\n <a\n *ngIf=\"item.type === ThePluginMenuItemType.icon\"\n href=\"javascript:;\"\n class=\"mt-2\"\n thyAction\n theListboxOption\n [theOptionValue]=\"item\"\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item?.name\"\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n thePreventDefault\n (click)=\"handleItemSelection(item)\"\n ></a>\n </ng-container>\n </div>\n\n <thy-divider *ngIf=\"this.iconMenu?.length\" class=\"my-2\"></thy-divider>\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 thyDropdownMenuItem\n theListboxOption\n [theOptionValue]=\"item\"\n class=\"py-0\"\n thePreventDefault\n [thyDisabled]=\"item.disabled\"\n [theOptionDisabled]=\"item.disabled\"\n (click)=\"handleItemSelection(item)\"\n >\n <div *ngIf=\"item.menuIcon\" 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 </ng-container>\n <ng-container *ngIf=\"item.isMenuItem && item.children?.length > 0\" #hasExpanded>\n <div\n #dropdownTriggers\n [thyDropdown]=\"expand\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n [thyDisabled]=\"item.disabled\"\n theListboxOption\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyPopoverOptions]=\"expandPopoverOptions\"\n class=\"py-0\"\n thePreventDefault\n [thyPanelClass]=\"subPanelClass\"\n (click)=\"handleItemSelection(item)\"\n >\n <div *ngIf=\"item.menuIcon\" 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 *ngIf=\"item.children?.length > 0\">\n <thy-icon class=\"text-muted\" thyIconName=\"angle-right\"></thy-icon>\n </div>\n <thy-dropdown-menu #expand>\n <div class=\"the-plugin-menu-container expand-menu\" theListboxGroup>\n <ng-container *ngFor=\"let child of item.children\">\n <div\n *ngIf=\"child.type === ThePluginMenuItemType.group\"\n thyDropdownMenuItem\n theListboxOption\n class=\"py-0\"\n thePreventDefault\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"child.disabled\"\n (click)=\"handleItemSelection(child)\"\n [theOptionValue]=\"child\"\n >\n <div *ngIf=\"child.menuIcon\" class=\"menu-icon mr-2\">\n <thy-icon [thyIconName]=\"child.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 {{ child.name }}\n </div>\n </div>\n </div>\n <thy-divider *ngIf=\"child === 'divider'\" class=\"my-2\"></thy-divider>\n </ng-container>\n </div>\n </thy-dropdown-menu>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.isMenuItem && item.key === 'table'\">\n <div\n #dropdownTriggers\n [thyPopover]=\"tableSelect\"\n thyPlacement=\"rightTop\"\n thyTrigger=\"hover\"\n thyDropdownMenuItem\n theListboxOption\n [thyConfig]=\"tableSelectPopoverConfig\"\n [theOptionValue]=\"item\"\n [theOptionDisabled]=\"item.disabled\"\n [thyDisabled]=\"item.disabled\"\n class=\"py-0\"\n thePreventDefault\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]=\"removeKeywords\"\n ></table-select>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!item.isMenuItem\" #menuGroup>\n <thy-dropdown-menu-group class=\"font-size-sm\" [thyTitle]=\"item.groupName\"></thy-dropdown-menu-group>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #thyEmpty>\n <div class=\"empty d-flex align-items-center justify-content-center\">\n <thy-empty [thyMessage]=\"thyMessage\"></thy-empty>\n </div>\n</ng-template>\n" }]
|
|
6109
6150
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1$1.ThyPopoverRef }]; }, propDecorators: { dropdownTriggers: [{
|
|
@@ -6271,10 +6312,10 @@ class TheVerticalToolbarItemComponent extends TheBaseToolbarDropdown {
|
|
|
6271
6312
|
this.dropdownPopoverRef.close();
|
|
6272
6313
|
}
|
|
6273
6314
|
}
|
|
6274
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
6275
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
6315
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheVerticalToolbarItemComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.ThyPopover }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6316
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheVerticalToolbarItemComponent, selector: "the-toolbar-vertical-align-item", host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)" }, properties: { "class.hide": "!active" }, 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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i8.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: i6.ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: i6.ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: i6.ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: i6.ThyDropdownMenuItemActiveDirective, selector: "[thyDropdownMenuItemActive]", inputs: ["thyDropdownMenuItemActive"] }] }); }
|
|
6276
6317
|
}
|
|
6277
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
6318
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheVerticalToolbarItemComponent, decorators: [{
|
|
6278
6319
|
type: Component,
|
|
6279
6320
|
args: [{ selector: 'the-toolbar-vertical-align-item', host: {
|
|
6280
6321
|
class: 'the-toolbar-dropdown-container verticalAlign',
|
|
@@ -7056,10 +7097,10 @@ class TheBlockquoteComponent extends TheBaseElementComponent {
|
|
|
7056
7097
|
this.elementRef = elementRef;
|
|
7057
7098
|
this.cdr = cdr;
|
|
7058
7099
|
}
|
|
7059
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
7060
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
7100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBlockquoteComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7101
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheBlockquoteComponent, selector: "blockquote[theBlockquote]", usesInheritance: true, ngImport: i0, template: `<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>`, isInline: true, dependencies: [{ kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }] }); }
|
|
7061
7102
|
}
|
|
7062
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
7103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBlockquoteComponent, decorators: [{
|
|
7063
7104
|
type: Component,
|
|
7064
7105
|
args: [{
|
|
7065
7106
|
selector: 'blockquote[theBlockquote]',
|
|
@@ -7353,10 +7394,10 @@ class TheCodeComponent extends TheBaseElementComponent {
|
|
|
7353
7394
|
this.destroy$.next();
|
|
7354
7395
|
this.destroy$.complete();
|
|
7355
7396
|
}
|
|
7356
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
7357
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
7397
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheCodeComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$2.ThyNotifyService }, { token: TheContextService }, { token: i0.NgZone }, { token: i1$1.ThyPopover }, { token: i0.ViewContainerRef }, { token: i2$1.Overlay }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7398
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheCodeComponent, selector: "div[theCode]", viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true, read: TemplateRef, static: true }, { propertyName: "codemirror", first: true, predicate: ["codemirror"], descendants: true, read: CodeMirrorComponent }, { propertyName: "toolbarDropdownComponent", first: true, predicate: TheToolbarDropdownComponent, descendants: true, read: TheToolbarDropdownComponent }], usesInheritance: true, ngImport: i0, template: "<slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"></slate-children>\n\n<!-- \u53EA\u8BFB\u6A21\u5F0F\u4E0BCodeMirror-sizer\u9AD8\u5EA6\u6BD4\u7F16\u8F91\u6A21\u5F0F\u4E0B\u591A2px\uFF0C\u8BBE\u7F6EthyMinHeight\u4E3A46px\u9632\u6B62\u62D6\u62FD\u5230\u6700\u5C0F\u9AD8\u5EA6\u65F6\u53EA\u8BFB\u6A21\u5F0F\u4E0B\u51FA\u73B0\u6EDA\u52A8\u6761 -->\n<div\n thyResizable\n [thyMinHeight]=\"46\"\n [thyBounds]=\"resizeBounds\"\n [style.height.px]=\"resizeHeight\"\n (thyResize)=\"onResize($event)\"\n (thyResizeEnd)=\"onEndResize()\"\n class=\"resize-code-container\"\n [ngClass]=\"{ focus: isCollapsedAndNonReadonly, readonly: options.readOnly, active: isHightLight && isCollapsedAndNonReadonly }\"\n>\n <ng-codemirror\n *ngIf=\"startRenderCodemirror\"\n #codemirror\n contenteditable=\"false\"\n class=\"ng-codemirror-wrapper\"\n [ngStyle]=\"{ maxHeight: maxHeight > 0 ? maxHeight + 'px' : 'auto' }\"\n [options]=\"options\"\n [ngModel]=\"code\"\n [delayRefreshTime]=\"300\"\n (ngModelChange)=\"codeChange($event)\"\n (focusChange)=\"focusChange($event)\"\n [autoMaxHeight]=\"maxHeight\"\n >\n </ng-codemirror>\n <thy-resize-handle thyDirection=\"bottom\" class=\"code-resize-icon\" *ngIf=\"isCollapsedAndNonReadonly\"></thy-resize-handle>\n</div>\n\n<ng-template #toolbar>\n <thy-actions thySize=\"xxs\" thePreventDefault>\n <the-toolbar-dropdown\n [menus]=\"menus\"\n [toolbarItem]=\"activeLanguage\"\n [dropdownItemKey]=\"activeLanguage?.key\"\n [itemMousedownHandle]=\"onChangeLanguage\"\n >\n </the-toolbar-dropdown>\n <span class=\"auto-wrap d-flex align-items-center px-2 text-secondary\">\n <span>\u81EA\u52A8\u6362\u884C</span>\n <thy-switch\n class=\"auto-wrap-btn d-flex ml-1\"\n [(ngModel)]=\"options.lineWrapping\"\n (ngModelChange)=\"onChangeWrap($event)\"\n thySize=\"sm\"\n ></thy-switch>\n </span>\n <a href=\"javascript:;\" thyAction thyActionIcon=\"copy\" thyTooltip=\"\u590D\u5236\" thyTooltipPlacement=\"top\" (click)=\"onCopy($event)\"></a>\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyType=\"danger\"\n thyActionIcon=\"trash\"\n thyTooltip=\"\u5220\u9664\"\n thyTooltipPlacement=\"top\"\n (click)=\"onDelete($event)\"\n ></a>\n </thy-actions>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: i9.ThyResizableDirective, selector: "[thyResizable]", inputs: ["thyBounds", "thyMaxHeight", "thyMaxWidth", "thyMinHeight", "thyMinWidth", "thyGridColumnCount", "thyMaxColumn", "thyMinColumn", "thyLockAspectRatio", "thyPreview", "thyDisabled"], outputs: ["thyResize", "thyResizeStart", "thyResizeEnd"] }, { kind: "component", type: i9.ThyResizeHandleComponent, selector: "thy-resize-handle, [thy-resize-handle]", inputs: ["thyDirection", "thyLine"], outputs: ["thyMouseDown"], exportAs: ["thyResizeHandle"] }, { kind: "component", type: i10$1.ThySwitchComponent, selector: "thy-switch", inputs: ["thyType", "thySize", "thyDisabled"], outputs: ["thyChange"] }, { kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: i7.ThyActionsComponent, selector: "thy-actions", inputs: ["thySize"] }, { kind: "component", type: i8$1.ThyDividerComponent, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "component", type: i13.CodeMirrorComponent, selector: "ng-codemirror, [ngCodeMirror]", inputs: ["autoMaxHeight", "options", "delayRefreshTime"], outputs: ["focusChange"] }, { kind: "component", type: TheToolbarDropdownComponent, selector: "the-toolbar-dropdown" }, { kind: "directive", type: ThePreventDefaultDirective, selector: "[thePreventDefault]", exportAs: ["thePreventDefault"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7358
7399
|
}
|
|
7359
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
7400
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheCodeComponent, decorators: [{
|
|
7360
7401
|
type: Component,
|
|
7361
7402
|
args: [{ selector: 'div[theCode]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"></slate-children>\n\n<!-- \u53EA\u8BFB\u6A21\u5F0F\u4E0BCodeMirror-sizer\u9AD8\u5EA6\u6BD4\u7F16\u8F91\u6A21\u5F0F\u4E0B\u591A2px\uFF0C\u8BBE\u7F6EthyMinHeight\u4E3A46px\u9632\u6B62\u62D6\u62FD\u5230\u6700\u5C0F\u9AD8\u5EA6\u65F6\u53EA\u8BFB\u6A21\u5F0F\u4E0B\u51FA\u73B0\u6EDA\u52A8\u6761 -->\n<div\n thyResizable\n [thyMinHeight]=\"46\"\n [thyBounds]=\"resizeBounds\"\n [style.height.px]=\"resizeHeight\"\n (thyResize)=\"onResize($event)\"\n (thyResizeEnd)=\"onEndResize()\"\n class=\"resize-code-container\"\n [ngClass]=\"{ focus: isCollapsedAndNonReadonly, readonly: options.readOnly, active: isHightLight && isCollapsedAndNonReadonly }\"\n>\n <ng-codemirror\n *ngIf=\"startRenderCodemirror\"\n #codemirror\n contenteditable=\"false\"\n class=\"ng-codemirror-wrapper\"\n [ngStyle]=\"{ maxHeight: maxHeight > 0 ? maxHeight + 'px' : 'auto' }\"\n [options]=\"options\"\n [ngModel]=\"code\"\n [delayRefreshTime]=\"300\"\n (ngModelChange)=\"codeChange($event)\"\n (focusChange)=\"focusChange($event)\"\n [autoMaxHeight]=\"maxHeight\"\n >\n </ng-codemirror>\n <thy-resize-handle thyDirection=\"bottom\" class=\"code-resize-icon\" *ngIf=\"isCollapsedAndNonReadonly\"></thy-resize-handle>\n</div>\n\n<ng-template #toolbar>\n <thy-actions thySize=\"xxs\" thePreventDefault>\n <the-toolbar-dropdown\n [menus]=\"menus\"\n [toolbarItem]=\"activeLanguage\"\n [dropdownItemKey]=\"activeLanguage?.key\"\n [itemMousedownHandle]=\"onChangeLanguage\"\n >\n </the-toolbar-dropdown>\n <span class=\"auto-wrap d-flex align-items-center px-2 text-secondary\">\n <span>\u81EA\u52A8\u6362\u884C</span>\n <thy-switch\n class=\"auto-wrap-btn d-flex ml-1\"\n [(ngModel)]=\"options.lineWrapping\"\n (ngModelChange)=\"onChangeWrap($event)\"\n thySize=\"sm\"\n ></thy-switch>\n </span>\n <a href=\"javascript:;\" thyAction thyActionIcon=\"copy\" thyTooltip=\"\u590D\u5236\" thyTooltipPlacement=\"top\" (click)=\"onCopy($event)\"></a>\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyType=\"danger\"\n thyActionIcon=\"trash\"\n thyTooltip=\"\u5220\u9664\"\n thyTooltipPlacement=\"top\"\n (click)=\"onDelete($event)\"\n ></a>\n </thy-actions>\n</ng-template>\n" }]
|
|
7362
7403
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$2.ThyNotifyService }, { type: TheContextService }, { type: i0.NgZone }, { type: i1$1.ThyPopover }, { type: i0.ViewContainerRef }, { type: i2$1.Overlay }]; }, propDecorators: { toolbar: [{
|
|
@@ -7467,10 +7508,10 @@ class TheColorToolbarItemComponent extends TheBaseToolbarItem {
|
|
|
7467
7508
|
Transforms.select(this.editor, this.editor.selection);
|
|
7468
7509
|
ColorEditor.setColor(this.editor, this.selectedColor, this.type);
|
|
7469
7510
|
}
|
|
7470
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
7471
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
7511
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheColorToolbarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7512
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheColorToolbarItemComponent, selector: "the-color-toolbar-item", host: { classAttribute: "the-toolbar-item" }, usesInheritance: true, ngImport: i0, template: "<a\n href=\"javascript:;\"\n thyAction\n [thyActionActive]=\"active\"\n [thyTooltip]=\"toolbarItem.name\"\n thyTooltipPlacement=\"top\"\n thyColorPicker\n thyPlacement=\"bottomLeft\"\n [(ngModel)]=\"selectedColor\"\n (ngModelChange)=\"changeColor($event)\"\n (mousedown)=\"preventDefault($event)\"\n>\n <thy-icon\n [thyIconName]=\"toolbarItem.icon\"\n thyIconType=\"twotone\"\n [thyTwotoneColor]=\"active ?? (toolbarItem.key === 'color' ? defaultColorLine : defaultBackgroundColorLine)\"\n ></thy-icon>\n <thy-icon class=\"link-down-icon font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n</a>\n", dependencies: [{ kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i8.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: i5.ThyColorPickerDirective, selector: "[thyColorPicker]", inputs: ["thyOffset", "thyHasBackdrop", "thyDefaultColor", "thyTransparentColorSelectable", "thyPresetColors", "thyPlacement", "thyTrigger", "thyShowDelay", "thyHideDelay"], outputs: ["thyPanelOpen", "thyPanelClose"] }] }); }
|
|
7472
7513
|
}
|
|
7473
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
7514
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheColorToolbarItemComponent, decorators: [{
|
|
7474
7515
|
type: Component,
|
|
7475
7516
|
args: [{ selector: 'the-color-toolbar-item', host: {
|
|
7476
7517
|
class: 'the-toolbar-item'
|
|
@@ -8221,10 +8262,10 @@ class TheConversionHintComponent {
|
|
|
8221
8262
|
clearCloseTimer() {
|
|
8222
8263
|
clearInterval(this.closeTimer);
|
|
8223
8264
|
}
|
|
8224
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
8225
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
8265
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheConversionHintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8266
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheConversionHintComponent, selector: "the-conversion-hint", inputs: { editor: "editor", conversion: "conversion" }, host: { listeners: { "mouseenter": "mouseenter()", "mouseleave": "mouseleave()" }, classAttribute: "the-conversion-hint" }, ngImport: i0, template: "<ng-container>\n <thy-alert thyType=\"primary-weak\" thyIcon=\"info-circle-fill\" thyCloseable=\"true\" thyMessage=\"\u68C0\u6D4B\u5230\u7C98\u8D34\u5185\u5BB9\u7B26\u5408Markdown\u8BED\u6CD5\">\n <ng-template #operation>\n <a href=\"javascript:;\" thyAlertActionItem (click)=\"conversion()\"> \u7ACB\u5373\u8F6C\u6362 </a>\n </ng-template>\n </thy-alert>\n</ng-container>\n", dependencies: [{ kind: "component", type: i1$3.ThyAlertComponent, selector: "thy-alert", inputs: ["thyType", "thyTheme", "thyMessage", "thyIcon", "thyCloseable"] }, { kind: "directive", type: i1$3.ThyAlertActionItemDirective, selector: "[thyAlertActionItem]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8226
8267
|
}
|
|
8227
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
8268
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheConversionHintComponent, decorators: [{
|
|
8228
8269
|
type: Component,
|
|
8229
8270
|
args: [{ selector: 'the-conversion-hint', host: {
|
|
8230
8271
|
class: 'the-conversion-hint'
|
|
@@ -8597,15 +8638,15 @@ class TheHrComponent extends TheBaseElementComponent {
|
|
|
8597
8638
|
}
|
|
8598
8639
|
});
|
|
8599
8640
|
}
|
|
8600
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
8601
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
8641
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheHrComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8642
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheHrComponent, selector: "the-hr, [theHr]", usesInheritance: true, ngImport: i0, template: `
|
|
8602
8643
|
<div class="the-hr" contenteditable="false" [ngClass]="{ active: isCollapsedAndNonReadonly }">
|
|
8603
8644
|
<hr class="the-hr" />
|
|
8604
8645
|
<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>
|
|
8605
8646
|
</div>
|
|
8606
8647
|
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }] }); }
|
|
8607
8648
|
}
|
|
8608
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
8649
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheHrComponent, decorators: [{
|
|
8609
8650
|
type: Component,
|
|
8610
8651
|
args: [{
|
|
8611
8652
|
selector: 'the-hr, [theHr]',
|
|
@@ -9056,10 +9097,10 @@ class TheImageComponent extends TheBaseElementComponent {
|
|
|
9056
9097
|
event.preventDefault();
|
|
9057
9098
|
event.stopPropagation();
|
|
9058
9099
|
}
|
|
9059
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
9060
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
9100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheImageComponent, deps: [{ token: i0.ElementRef }, { token: THE_UPLOAD_SERVICE_TOKEN }, { token: i0.ChangeDetectorRef }, { token: TheContextService }, { token: i1$1.ThyPopover }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: i4$1.ThyImageGroupComponent }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9101
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheImageComponent, selector: "the-image, [theImage]", viewQueries: [{ propertyName: "imageContent", first: true, predicate: ["imageContent"], descendants: true }, { propertyName: "img", first: true, predicate: ["img"], descendants: true }, { propertyName: "layoutToolbar", first: true, predicate: ["layoutToolbar"], descendants: true, static: true }, { propertyName: "imageDirective", first: true, predicate: ThyImageDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"></slate-children>\n\n<div class=\"image-container\" contenteditable=\"false\" [style.textAlign]=\"imageEntry.align\">\n <div #imageContent *ngIf=\"imageEntry.thumbUrl\" class=\"image-content\" [class.cursor-pointer]=\"!selection\">\n <img\n #img\n thyImage\n class=\"main-image\"\n [class.image-collapsed]=\"selection && !uploading\"\n [ngStyle]=\"{ 'width.px': imageBindingWidth }\"\n [alt]=\"imageEntry.name\"\n [thySrc]=\"imageEntry.thumbUrl\"\n [thyPreviewSrc]=\"imageEntry.thumbUrl\"\n [thyOriginSrc]=\"imageEntry.originUrl\"\n [thyDisablePreview]=\"disablePreview\"\n [thyImageMeta]=\"{ name: imageEntry.name, size: imageEntry.size }\"\n (load)=\"imageLoaded($event)\"\n (mousedown)=\"preventDefault($event)\"\n (error)=\"imageError($event)\"\n (click)=\"imageClick($event)\"\n />\n <div *ngIf=\"isCollapsedAndNonReadonly\" class=\"image-profile\" [class.outline]=\"selection\">\n <ng-container *ngIf=\"!loadImageError\">\n <span (mousedown)=\"startDrag($event, '-xl')\" class=\"image-pointer left top\"></span>\n <span (mousedown)=\"startDrag($event, 'xl')\" class=\"image-pointer right top\"></span>\n <span (mousedown)=\"startDrag($event, 'xl')\" class=\"image-pointer right bottom\"></span>\n <span (mousedown)=\"startDrag($event, '-xl')\" class=\"image-pointer left bottom\"></span>\n </ng-container>\n </div>\n <div *ngIf=\"uploading\" class=\"uploading\">\n <div class=\"uploading-percentage\">\n <thy-progress thyType=\"primary\" [thyValue]=\"percentage\" thySize=\"sm\"></thy-progress>\n <thy-icon (click)=\"cancelUpload($event)\" thyIconName=\"close-circle-bold-fill\" thyIconLegging=\"true\"> </thy-icon>\n </div>\n </div>\n <div *ngIf=\"!uploading\" class=\"layer\" [class.readonly]=\"readonly\"></div>\n </div>\n <div *ngIf=\"!imageEntry.thumbUrl\" class=\"image-loading cursor-pointer\" contenteditable=\"false\">\n <thy-icon thyIconName=\"image\"></thy-icon>\n </div>\n</div>\n\n<ng-template #layoutToolbar>\n <thy-actions thySize=\"xxs\">\n <ng-container *ngFor=\"let item of layoutOptions\">\n <a\n *ngIf=\"item.key !== 'split'\"\n href=\"javascript:;\"\n thyAction\n [thyType]=\"item.key === 'remove' ? 'danger' : 'primary'\"\n [thyActionIcon]=\"item.icon\"\n [thyActionActive]=\"layoutActive(item.key)\"\n [thyTooltip]=\"item.name\"\n thyTooltipPlacement=\"top\"\n (mousedown)=\"item?.handle($event, item.key)\"\n ></a>\n <thy-divider *ngIf=\"item.key === 'split'\" class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n </ng-container>\n </thy-actions>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }, { kind: "component", type: i4.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i8.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: i9$1.ThyProgressComponent, selector: "thy-progress", inputs: ["thyType", "thySize", "thyValue", "thyMax", "thyTips", "thyShape", "thyGapDegree", "thyGapPosition", "thyStrokeWidth"] }, { kind: "directive", type: i4$1.ThyImageDirective, selector: "img[thyImage]", inputs: ["thySrc", "thyPreviewSrc", "thyOriginSrc", "thyImageMeta", "thyDisablePreview", "thyResolveSize"], exportAs: ["thyImage"] }, { kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: i7.ThyActionsComponent, selector: "thy-actions", inputs: ["thySize"] }, { kind: "component", type: i8$1.ThyDividerComponent, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }] }); }
|
|
9061
9102
|
}
|
|
9062
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
9103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheImageComponent, decorators: [{
|
|
9063
9104
|
type: Component,
|
|
9064
9105
|
args: [{ selector: 'the-image, [theImage]', template: "<slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"></slate-children>\n\n<div class=\"image-container\" contenteditable=\"false\" [style.textAlign]=\"imageEntry.align\">\n <div #imageContent *ngIf=\"imageEntry.thumbUrl\" class=\"image-content\" [class.cursor-pointer]=\"!selection\">\n <img\n #img\n thyImage\n class=\"main-image\"\n [class.image-collapsed]=\"selection && !uploading\"\n [ngStyle]=\"{ 'width.px': imageBindingWidth }\"\n [alt]=\"imageEntry.name\"\n [thySrc]=\"imageEntry.thumbUrl\"\n [thyPreviewSrc]=\"imageEntry.thumbUrl\"\n [thyOriginSrc]=\"imageEntry.originUrl\"\n [thyDisablePreview]=\"disablePreview\"\n [thyImageMeta]=\"{ name: imageEntry.name, size: imageEntry.size }\"\n (load)=\"imageLoaded($event)\"\n (mousedown)=\"preventDefault($event)\"\n (error)=\"imageError($event)\"\n (click)=\"imageClick($event)\"\n />\n <div *ngIf=\"isCollapsedAndNonReadonly\" class=\"image-profile\" [class.outline]=\"selection\">\n <ng-container *ngIf=\"!loadImageError\">\n <span (mousedown)=\"startDrag($event, '-xl')\" class=\"image-pointer left top\"></span>\n <span (mousedown)=\"startDrag($event, 'xl')\" class=\"image-pointer right top\"></span>\n <span (mousedown)=\"startDrag($event, 'xl')\" class=\"image-pointer right bottom\"></span>\n <span (mousedown)=\"startDrag($event, '-xl')\" class=\"image-pointer left bottom\"></span>\n </ng-container>\n </div>\n <div *ngIf=\"uploading\" class=\"uploading\">\n <div class=\"uploading-percentage\">\n <thy-progress thyType=\"primary\" [thyValue]=\"percentage\" thySize=\"sm\"></thy-progress>\n <thy-icon (click)=\"cancelUpload($event)\" thyIconName=\"close-circle-bold-fill\" thyIconLegging=\"true\"> </thy-icon>\n </div>\n </div>\n <div *ngIf=\"!uploading\" class=\"layer\" [class.readonly]=\"readonly\"></div>\n </div>\n <div *ngIf=\"!imageEntry.thumbUrl\" class=\"image-loading cursor-pointer\" contenteditable=\"false\">\n <thy-icon thyIconName=\"image\"></thy-icon>\n </div>\n</div>\n\n<ng-template #layoutToolbar>\n <thy-actions thySize=\"xxs\">\n <ng-container *ngFor=\"let item of layoutOptions\">\n <a\n *ngIf=\"item.key !== 'split'\"\n href=\"javascript:;\"\n thyAction\n [thyType]=\"item.key === 'remove' ? 'danger' : 'primary'\"\n [thyActionIcon]=\"item.icon\"\n [thyActionActive]=\"layoutActive(item.key)\"\n [thyTooltip]=\"item.name\"\n thyTooltipPlacement=\"top\"\n (mousedown)=\"item?.handle($event, item.key)\"\n ></a>\n <thy-divider *ngIf=\"item.key === 'split'\" class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n </ng-container>\n </thy-actions>\n</ng-template>\n" }]
|
|
9065
9106
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
@@ -9257,12 +9298,12 @@ class TheInlineCodeComponent extends TheBaseElementComponent {
|
|
|
9257
9298
|
// https://bugs.chromium.org/p/chromium/issues/detail?id=1249405
|
|
9258
9299
|
this.inlineChromiumBugfix = String.fromCodePoint(160);
|
|
9259
9300
|
}
|
|
9260
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
9261
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
9301
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheInlineCodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
9302
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheInlineCodeComponent, selector: "span[theInlineCode]", usesInheritance: true, ngImport: i0, template: `<span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>
|
|
9262
9303
|
<span><slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children></span>
|
|
9263
9304
|
<span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>`, isInline: true, dependencies: [{ kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }] }); }
|
|
9264
9305
|
}
|
|
9265
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
9306
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheInlineCodeComponent, decorators: [{
|
|
9266
9307
|
type: Component,
|
|
9267
9308
|
args: [{
|
|
9268
9309
|
selector: 'span[theInlineCode]',
|
|
@@ -9362,10 +9403,10 @@ class TheLinkHoverComponent {
|
|
|
9362
9403
|
this.deleteHandle();
|
|
9363
9404
|
event.stopPropagation();
|
|
9364
9405
|
}
|
|
9365
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
9366
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
9406
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheLinkHoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9407
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheLinkHoverComponent, selector: "the-link-hover", inputs: { link: "link", dom: "dom", editHandle: "editHandle", deleteHandle: "deleteHandle" }, ngImport: i0, template: "<div class=\"link-hover-card px-1\">\n <a readonly href=\"{{ link }}\" target=\"_blank\" rel=\"{{ aTagRelAttr }}\" class=\"hover-control-plaintext text-truncate mx-2\">\n {{ link }}\n </a>\n <thy-divider class=\"mx-2\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a href=\"javascript:;\" thyAction thyActionIcon=\"edit\" thePreventDefault (click)=\"editLink($event)\"></a>\n <thy-divider class=\"mx-2\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a href=\"javascript:;\" thyAction thyActionIcon=\"unlink-insert\" thePreventDefault (click)=\"removeLink($event)\"></a>\n</div>\n", dependencies: [{ kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: i8$1.ThyDividerComponent, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: ThePreventDefaultDirective, selector: "[thePreventDefault]", exportAs: ["thePreventDefault"] }] }); }
|
|
9367
9408
|
}
|
|
9368
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
9409
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheLinkHoverComponent, decorators: [{
|
|
9369
9410
|
type: Component,
|
|
9370
9411
|
args: [{ selector: 'the-link-hover', template: "<div class=\"link-hover-card px-1\">\n <a readonly href=\"{{ link }}\" target=\"_blank\" rel=\"{{ aTagRelAttr }}\" class=\"hover-control-plaintext text-truncate mx-2\">\n {{ link }}\n </a>\n <thy-divider class=\"mx-2\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a href=\"javascript:;\" thyAction thyActionIcon=\"edit\" thePreventDefault (click)=\"editLink($event)\"></a>\n <thy-divider class=\"mx-2\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a href=\"javascript:;\" thyAction thyActionIcon=\"unlink-insert\" thePreventDefault (click)=\"removeLink($event)\"></a>\n</div>\n" }]
|
|
9371
9412
|
}], ctorParameters: function () { return []; }, propDecorators: { link: [{
|
|
@@ -9443,10 +9484,10 @@ class TheLinkEditComponent {
|
|
|
9443
9484
|
form.validator.setElementErrorMessage(`link`, '请输入正确的链接');
|
|
9444
9485
|
}
|
|
9445
9486
|
}
|
|
9446
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
9447
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
9487
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheLinkEditComponent, deps: [{ token: i1$1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9488
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheLinkEditComponent, selector: "the-link-edit", inputs: { tag: "tag", node: "node", link: "link", text: "text", originSelection: "originSelection" }, host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)" }, properties: { "class": "this.className" } }, ngImport: i0, template: "<form thyForm #linkForm=\"thyForm\" [thyFormValidatorConfig]=\"validatorConfig\" name=\"linkForm\">\n <thy-form-group thyLabelText=\"\u6587\u672C\">\n <input thyInput placeholder=\"\u8BF7\u8F93\u5165\u6587\u672C\" required name=\"text\" [(ngModel)]=\"text\" thyAutofocus type=\"text\" />\n </thy-form-group>\n <thy-form-group thyLabelText=\"\u94FE\u63A5\">\n <input name=\"link\" thyInput placeholder=\"\u8BF7\u8F93\u5165\u94FE\u63A5\" required type=\"text\" #linkControl=\"ngModel\" [(ngModel)]=\"link\" />\n </thy-form-group>\n <thy-form-group-footer>\n <div class=\"btn-pair\">\n <button thyButton=\"link-secondary\" thySize=\"sm\" (click)=\"closePopover()\">\u53D6\u6D88</button>\n <button thyButton=\"primary-square\" thySize=\"sm\" (thyFormSubmit)=\"applyLink(linkForm)\">\u5E94\u7528</button>\n </div>\n </thy-form-group-footer>\n</form>\n", dependencies: [{ kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.ThyFormDirective, selector: "[thyForm],[thy-form]", inputs: ["thyLayout", "thyEnterKeyMode", "thyFormValidatorConfig"], exportAs: ["thyForm"] }, { kind: "component", type: i3.ThyFormGroupComponent, selector: "thy-form-group", inputs: ["thyLabelText", "thyLabelTextTranslateKey", "thyLabelRequired", "thyLabelPaddingTopClear", "thyFeedbackIcon", "thyTipsMode", "thyTips", "thyTipsTranslateKey", "thyRowFill"] }, { kind: "directive", type: i3.ThyFormSubmitDirective, selector: "[thyFormSubmit],[thy-form-submit]", outputs: ["thyFormSubmit"] }, { kind: "component", type: i3.ThyFormGroupFooterComponent, selector: "thy-form-group-footer", inputs: ["thyAlign"] }, { kind: "directive", type: i5$1.ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "directive", type: i6$1.ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "component", type: i6$2.ThyButtonComponent, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }] }); }
|
|
9448
9489
|
}
|
|
9449
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
9490
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheLinkEditComponent, decorators: [{
|
|
9450
9491
|
type: Component,
|
|
9451
9492
|
args: [{ selector: 'the-link-edit', template: "<form thyForm #linkForm=\"thyForm\" [thyFormValidatorConfig]=\"validatorConfig\" name=\"linkForm\">\n <thy-form-group thyLabelText=\"\u6587\u672C\">\n <input thyInput placeholder=\"\u8BF7\u8F93\u5165\u6587\u672C\" required name=\"text\" [(ngModel)]=\"text\" thyAutofocus type=\"text\" />\n </thy-form-group>\n <thy-form-group thyLabelText=\"\u94FE\u63A5\">\n <input name=\"link\" thyInput placeholder=\"\u8BF7\u8F93\u5165\u94FE\u63A5\" required type=\"text\" #linkControl=\"ngModel\" [(ngModel)]=\"link\" />\n </thy-form-group>\n <thy-form-group-footer>\n <div class=\"btn-pair\">\n <button thyButton=\"link-secondary\" thySize=\"sm\" (click)=\"closePopover()\">\u53D6\u6D88</button>\n <button thyButton=\"primary-square\" thySize=\"sm\" (thyFormSubmit)=\"applyLink(linkForm)\">\u5E94\u7528</button>\n </div>\n </thy-form-group-footer>\n</form>\n" }]
|
|
9452
9493
|
}], ctorParameters: function () { return [{ type: i1$1.ThyPopoverRef }]; }, propDecorators: { className: [{
|
|
@@ -9584,10 +9625,10 @@ class TheBaseLinkComponent extends TheBaseElementComponent {
|
|
|
9584
9625
|
super.ngOnDestroy();
|
|
9585
9626
|
this.close(LinkCloseTypes.destroy);
|
|
9586
9627
|
}
|
|
9587
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
9588
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
9628
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBaseLinkComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.ThyPopover }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9629
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheBaseLinkComponent, selector: "[TheBaseLinkComponent]", host: { listeners: { "click": "mousedownHandle($event)" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
9589
9630
|
}
|
|
9590
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
9631
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBaseLinkComponent, decorators: [{
|
|
9591
9632
|
type: Component,
|
|
9592
9633
|
args: [{
|
|
9593
9634
|
selector: '[TheBaseLinkComponent]',
|
|
@@ -9604,12 +9645,12 @@ class TheLinkComponent extends TheBaseLinkComponent {
|
|
|
9604
9645
|
// https://bugs.chromium.org/p/chromium/issues/detail?id=1249405
|
|
9605
9646
|
this.inlineChromiumBugfix = String.fromCodePoint(160);
|
|
9606
9647
|
}
|
|
9607
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
9608
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
9648
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheLinkComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
9649
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheLinkComponent, selector: "a[theLink]", host: { attributes: { "target": "_blank" }, properties: { "attr.href": "element.url" } }, usesInheritance: true, ngImport: i0, template: ` <span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>
|
|
9609
9650
|
<span><slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children></span>
|
|
9610
9651
|
<span contenteditable="false" class="the-break-char">{{ inlineChromiumBugfix }}</span>`, isInline: true, dependencies: [{ kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }] }); }
|
|
9611
9652
|
}
|
|
9612
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
9653
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheLinkComponent, decorators: [{
|
|
9613
9654
|
type: Component,
|
|
9614
9655
|
args: [{
|
|
9615
9656
|
selector: 'a[theLink]',
|
|
@@ -10264,10 +10305,10 @@ class TheNumberedListComponent extends TheBaseElementComponent {
|
|
|
10264
10305
|
ngOnDestroy() {
|
|
10265
10306
|
super.ngOnDestroy();
|
|
10266
10307
|
}
|
|
10267
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
10268
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
10308
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheNumberedListComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10309
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheNumberedListComponent, selector: "ol[theOl]", host: { properties: { "attr.start": "this.start", "attr.the-level": "this.level" } }, usesInheritance: true, ngImport: i0, template: `<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>`, isInline: true, dependencies: [{ kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }] }); }
|
|
10269
10310
|
}
|
|
10270
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
10311
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheNumberedListComponent, decorators: [{
|
|
10271
10312
|
type: Component,
|
|
10272
10313
|
args: [{
|
|
10273
10314
|
selector: 'ol[theOl]',
|
|
@@ -10296,10 +10337,10 @@ class TheBulletedListComponent extends TheBaseElementComponent {
|
|
|
10296
10337
|
ngOnDestroy() {
|
|
10297
10338
|
super.ngOnDestroy();
|
|
10298
10339
|
}
|
|
10299
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
10300
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
10340
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBulletedListComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10341
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheBulletedListComponent, selector: "ul[theUl]", host: { properties: { "attr.the-level": "this.level" } }, usesInheritance: true, ngImport: i0, template: `<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>`, isInline: true, dependencies: [{ kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }] }); }
|
|
10301
10342
|
}
|
|
10302
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
10343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBulletedListComponent, decorators: [{
|
|
10303
10344
|
type: Component,
|
|
10304
10345
|
args: [{
|
|
10305
10346
|
selector: 'ul[theUl]',
|
|
@@ -10385,10 +10426,10 @@ class TheListItemComponent extends TheBaseElementComponent {
|
|
|
10385
10426
|
this.elementRef.nativeElement.removeAttribute(multiDigit);
|
|
10386
10427
|
}
|
|
10387
10428
|
}
|
|
10388
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
10389
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
10429
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheListItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10430
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheListItemComponent, selector: "li[theLi]", usesInheritance: true, ngImport: i0, template: `<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>`, isInline: true, dependencies: [{ kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }] }); }
|
|
10390
10431
|
}
|
|
10391
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
10432
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheListItemComponent, decorators: [{
|
|
10392
10433
|
type: Component,
|
|
10393
10434
|
args: [{
|
|
10394
10435
|
selector: 'li[theLi]',
|
|
@@ -11154,7 +11195,70 @@ const createSoftBreakPlugin = createPluginFactory({
|
|
|
11154
11195
|
}
|
|
11155
11196
|
]
|
|
11156
11197
|
}
|
|
11157
|
-
});
|
|
11198
|
+
});
|
|
11199
|
+
|
|
11200
|
+
class TheTableRowComponent extends TheBaseElementComponent {
|
|
11201
|
+
constructor(elementRef, cdr, renderer) {
|
|
11202
|
+
super(elementRef, cdr);
|
|
11203
|
+
this.elementRef = elementRef;
|
|
11204
|
+
this.cdr = cdr;
|
|
11205
|
+
this.renderer = renderer;
|
|
11206
|
+
this.numberedColumn = false;
|
|
11207
|
+
this.rowNumber = '';
|
|
11208
|
+
}
|
|
11209
|
+
onContextChange() {
|
|
11210
|
+
super.onContextChange();
|
|
11211
|
+
const path = TheEditor.findPath(this.editor, this.element);
|
|
11212
|
+
const tablePosition = createTablePosition(this.editor, path.concat(0));
|
|
11213
|
+
const rowIndex = tablePosition.getRowIndex();
|
|
11214
|
+
if (rowIndex === 0) {
|
|
11215
|
+
this.renderer.addClass(this.elementRef.nativeElement, 'the-sticky-row');
|
|
11216
|
+
}
|
|
11217
|
+
else {
|
|
11218
|
+
this.renderer.removeClass(this.elementRef.nativeElement, 'the-sticky-row');
|
|
11219
|
+
}
|
|
11220
|
+
if (this.initialized) {
|
|
11221
|
+
this.useHeight();
|
|
11222
|
+
}
|
|
11223
|
+
this.setNumberColumn(tablePosition, rowIndex);
|
|
11224
|
+
}
|
|
11225
|
+
ngOnInit() {
|
|
11226
|
+
super.ngOnInit();
|
|
11227
|
+
this.useHeight();
|
|
11228
|
+
}
|
|
11229
|
+
useHeight() {
|
|
11230
|
+
if (this.element.height) {
|
|
11231
|
+
this.height = this.element.height + 'px';
|
|
11232
|
+
}
|
|
11233
|
+
}
|
|
11234
|
+
setNumberColumn(ps, rowIndex) {
|
|
11235
|
+
const headerRow = isHeaderRow(ps.table);
|
|
11236
|
+
this.numberedColumn = ps.table?.options?.numberedColumn;
|
|
11237
|
+
this.rowNumber = headerRow && rowIndex === 0 ? '' : headerRow ? rowIndex : rowIndex + 1;
|
|
11238
|
+
}
|
|
11239
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableRowComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11240
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheTableRowComponent, selector: "tr[theTableRow]", host: { properties: { "style.height": "this.height" } }, usesInheritance: true, ngImport: i0, template: `
|
|
11241
|
+
<td *ngIf="readonly && numberedColumn" class="the-table-number-column align-middle" thePreventDefault>
|
|
11242
|
+
{{ rowNumber }}
|
|
11243
|
+
</td>
|
|
11244
|
+
<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>
|
|
11245
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }, { kind: "directive", type: ThePreventDefaultDirective, selector: "[thePreventDefault]", exportAs: ["thePreventDefault"] }] }); }
|
|
11246
|
+
}
|
|
11247
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableRowComponent, decorators: [{
|
|
11248
|
+
type: Component,
|
|
11249
|
+
args: [{
|
|
11250
|
+
selector: 'tr[theTableRow]',
|
|
11251
|
+
template: `
|
|
11252
|
+
<td *ngIf="readonly && numberedColumn" class="the-table-number-column align-middle" thePreventDefault>
|
|
11253
|
+
{{ rowNumber }}
|
|
11254
|
+
</td>
|
|
11255
|
+
<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>
|
|
11256
|
+
`
|
|
11257
|
+
}]
|
|
11258
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, propDecorators: { height: [{
|
|
11259
|
+
type: HostBinding,
|
|
11260
|
+
args: ['style.height']
|
|
11261
|
+
}] } });
|
|
11158
11262
|
|
|
11159
11263
|
class TheToolbarGroupComponent {
|
|
11160
11264
|
set item(i) {
|
|
@@ -11245,10 +11349,10 @@ class TheToolbarGroupComponent {
|
|
|
11245
11349
|
this.groupPopoverRef.close();
|
|
11246
11350
|
}
|
|
11247
11351
|
}
|
|
11248
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
11249
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
11352
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheToolbarGroupComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.ThyPopover }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11353
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheToolbarGroupComponent, 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: "directive", type: i8.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }] }); }
|
|
11250
11354
|
}
|
|
11251
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
11355
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheToolbarGroupComponent, decorators: [{
|
|
11252
11356
|
type: Component,
|
|
11253
11357
|
args: [{ selector: 'the-toolbar-group', 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" }]
|
|
11254
11358
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.ThyPopover }, { type: i0.ViewContainerRef }]; }, propDecorators: { className: [{
|
|
@@ -11293,10 +11397,10 @@ class ColumnResizeNotifierSource {
|
|
|
11293
11397
|
/** Triggers a resize action. */
|
|
11294
11398
|
this.triggerResize = new Subject();
|
|
11295
11399
|
}
|
|
11296
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
11297
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
11400
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ColumnResizeNotifierSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11401
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ColumnResizeNotifierSource }); }
|
|
11298
11402
|
}
|
|
11299
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
11403
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ColumnResizeNotifierSource, decorators: [{
|
|
11300
11404
|
type: Injectable
|
|
11301
11405
|
}] });
|
|
11302
11406
|
|
|
@@ -11345,10 +11449,10 @@ class TableCellEventDispatcher {
|
|
|
11345
11449
|
complete: () => observer.complete()
|
|
11346
11450
|
}));
|
|
11347
11451
|
}
|
|
11348
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
11349
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
11452
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableCellEventDispatcher, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11453
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableCellEventDispatcher }); }
|
|
11350
11454
|
}
|
|
11351
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
11455
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableCellEventDispatcher, decorators: [{
|
|
11352
11456
|
type: Injectable
|
|
11353
11457
|
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
|
|
11354
11458
|
|
|
@@ -11566,10 +11670,10 @@ class TheContextMenuComponent {
|
|
|
11566
11670
|
this.wrap = true;
|
|
11567
11671
|
}
|
|
11568
11672
|
ngOnInit() { }
|
|
11569
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
11570
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
11673
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheContextMenuComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11674
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheContextMenuComponent, selector: "the-contextmenu", inputs: { menuEntities: "menuEntities", actionHandle: "actionHandle", activeHandle: "activeHandle", deactivateHandle: "deactivateHandle" }, host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)", "mousedown": "handleMouseDown($event)" }, properties: { "class.the-overlay-menu-wrap": "this.wrap" } }, ngImport: i0, template: "<div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menuItem of menuEntities\">\n <ng-container *ngIf=\"menuItem.visibility && !menuItem?.isInputNumber && menuItem.key !== 'background-color'\">\n <ng-template [ngTemplateOutlet]=\"defaultMenuTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"menuItem.visibility && menuItem.key === 'background-color'\">\n <ng-template [ngTemplateOutlet]=\"backgroundColorTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"menuItem.visibility && menuItem?.isInputNumber\">\n <ng-template [ngTemplateOutlet]=\"inputNumberMenuTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <thy-dropdown-menu-divider *ngIf=\"menuItem.divider && menuItem.visibility\"></thy-dropdown-menu-divider>\n </ng-container>\n</div>\n\n<ng-template #defaultMenuTemplate let-item>\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n (mousedown)=\"itemMousedown($event, item)\"\n (mouseenter)=\"itemMouseenter($event, item)\"\n (mouseleave)=\"itemMouseleave($event, item)\"\n >\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n <span *ngIf=\"item.extendIcon\" thyDropdownMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ item.extendIcon }}\"></thy-icon>\n </span>\n </a>\n</ng-template>\n\n<ng-template #backgroundColorTemplate let-item>\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n thyColorPicker\n thyTrigger=\"hover\"\n thyPlacement=\"rightTop\"\n [(ngModel)]=\"item.backgroundColor\"\n (ngModelChange)=\"changeColor($event, item)\"\n [thyHasBackdrop]=\"false\"\n >\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\" thyIconType=\"twotone\" [thyTwotoneColor]=\"item.backgroundColor\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n <span *ngIf=\"item.extendIcon\" thyDropdownMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ item.extendIcon }}\"></thy-icon>\n </span>\n </a>\n</ng-template>\n\n<ng-template #inputNumberMenuTemplate let-item>\n <a href=\"javascript:;\" class=\"the-input-number-menu\" thyDropdownMenuItem (click)=\"itemMousedown($event, item)\">\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName class=\"d-flex align-items-center\">\n {{ item.name }}\n <thy-input-number\n #inputNumber\n class=\"mx-2\"\n thySize=\"sm\"\n [(ngModel)]=\"item.count\"\n [thyStep]=\"1\"\n [thyMin]=\"1\"\n (click)=\"inputNumberFocus($event)\"\n (thyEnter)=\"itemEnterHandle($event, item)\"\n thyStopPropagation\n ></thy-input-number>\n {{ item.nameSuffix }}\n </span>\n </a>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i5$1.ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "directive", type: i5$1.ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }, { kind: "component", type: i6.ThyDropdownMenuDividerComponent, selector: "thy-dropdown-menu-divider" }, { kind: "directive", type: i6.ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: i6.ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: i6.ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: i6.ThyDropdownMenuItemExtendIconDirective, selector: "[thyDropdownMenuItemExtendIcon]" }, { kind: "component", type: i7$1.ThyInputNumberComponent, selector: "thy-input-number", inputs: ["thyAutoFocus", "thyPlaceholder", "thyDisabled", "thyMax", "thyMin", "thyStep", "thySize", "thyPrecision", "thySuffix"], outputs: ["thyBlur", "thyFocus"] }, { kind: "directive", type: i5.ThyColorPickerDirective, selector: "[thyColorPicker]", inputs: ["thyOffset", "thyHasBackdrop", "thyDefaultColor", "thyTransparentColorSelectable", "thyPresetColors", "thyPlacement", "thyTrigger", "thyShowDelay", "thyHideDelay"], outputs: ["thyPanelOpen", "thyPanelClose"] }] }); }
|
|
11571
11675
|
}
|
|
11572
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
11676
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheContextMenuComponent, decorators: [{
|
|
11573
11677
|
type: Component,
|
|
11574
11678
|
args: [{ selector: 'the-contextmenu', template: "<div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menuItem of menuEntities\">\n <ng-container *ngIf=\"menuItem.visibility && !menuItem?.isInputNumber && menuItem.key !== 'background-color'\">\n <ng-template [ngTemplateOutlet]=\"defaultMenuTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"menuItem.visibility && menuItem.key === 'background-color'\">\n <ng-template [ngTemplateOutlet]=\"backgroundColorTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"menuItem.visibility && menuItem?.isInputNumber\">\n <ng-template [ngTemplateOutlet]=\"inputNumberMenuTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <thy-dropdown-menu-divider *ngIf=\"menuItem.divider && menuItem.visibility\"></thy-dropdown-menu-divider>\n </ng-container>\n</div>\n\n<ng-template #defaultMenuTemplate let-item>\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n (mousedown)=\"itemMousedown($event, item)\"\n (mouseenter)=\"itemMouseenter($event, item)\"\n (mouseleave)=\"itemMouseleave($event, item)\"\n >\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n <span *ngIf=\"item.extendIcon\" thyDropdownMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ item.extendIcon }}\"></thy-icon>\n </span>\n </a>\n</ng-template>\n\n<ng-template #backgroundColorTemplate let-item>\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n thyColorPicker\n thyTrigger=\"hover\"\n thyPlacement=\"rightTop\"\n [(ngModel)]=\"item.backgroundColor\"\n (ngModelChange)=\"changeColor($event, item)\"\n [thyHasBackdrop]=\"false\"\n >\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\" thyIconType=\"twotone\" [thyTwotoneColor]=\"item.backgroundColor\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n <span *ngIf=\"item.extendIcon\" thyDropdownMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ item.extendIcon }}\"></thy-icon>\n </span>\n </a>\n</ng-template>\n\n<ng-template #inputNumberMenuTemplate let-item>\n <a href=\"javascript:;\" class=\"the-input-number-menu\" thyDropdownMenuItem (click)=\"itemMousedown($event, item)\">\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName class=\"d-flex align-items-center\">\n {{ item.name }}\n <thy-input-number\n #inputNumber\n class=\"mx-2\"\n thySize=\"sm\"\n [(ngModel)]=\"item.count\"\n [thyStep]=\"1\"\n [thyMin]=\"1\"\n (click)=\"inputNumberFocus($event)\"\n (thyEnter)=\"itemEnterHandle($event, item)\"\n thyStopPropagation\n ></thy-input-number>\n {{ item.nameSuffix }}\n </span>\n </a>\n</ng-template>\n" }]
|
|
11575
11679
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.ThyPopoverRef }]; }, propDecorators: { menuEntities: [{
|
|
@@ -12157,33 +12261,16 @@ class TableStore {
|
|
|
12157
12261
|
}
|
|
12158
12262
|
}
|
|
12159
12263
|
selectCellInDirection(direction) {
|
|
12160
|
-
const pos = createTablePosition(this.editor);
|
|
12161
12264
|
const [row, col] = this.focusCellPath.slice(-2);
|
|
12162
|
-
|
|
12163
|
-
|
|
12164
|
-
|
|
12165
|
-
nextCellPath = [row - 1, col];
|
|
12166
|
-
break;
|
|
12167
|
-
case TableSelectCellDirection.right:
|
|
12168
|
-
nextCellPath = [row, col + 1];
|
|
12169
|
-
break;
|
|
12170
|
-
case TableSelectCellDirection.down:
|
|
12171
|
-
nextCellPath = [row + 1, col];
|
|
12172
|
-
break;
|
|
12173
|
-
case TableSelectCellDirection.left:
|
|
12174
|
-
nextCellPath = [row, col - 1];
|
|
12175
|
-
break;
|
|
12176
|
-
}
|
|
12177
|
-
const nextCellPosition = { row: nextCellPath[0], col: nextCellPath[1] };
|
|
12178
|
-
const cell = pos.findCellByPath(nextCellPosition);
|
|
12179
|
-
if (cell) {
|
|
12180
|
-
this.setAreaSelectionCells(cell);
|
|
12265
|
+
const nextCell = getNextCell(this.editor, direction, [row, col]);
|
|
12266
|
+
if (nextCell) {
|
|
12267
|
+
this.setAreaSelectionCells(nextCell);
|
|
12181
12268
|
}
|
|
12182
12269
|
}
|
|
12183
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
12184
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
12270
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
12271
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableStore }); }
|
|
12185
12272
|
}
|
|
12186
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
12273
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableStore, decorators: [{
|
|
12187
12274
|
type: Injectable
|
|
12188
12275
|
}], ctorParameters: function () { return []; } });
|
|
12189
12276
|
|
|
@@ -12443,10 +12530,10 @@ class TheTableContextMenuService {
|
|
|
12443
12530
|
return this.menuRef.afterClosed();
|
|
12444
12531
|
}
|
|
12445
12532
|
}
|
|
12446
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
12447
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
12533
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableContextMenuService, deps: [{ token: TableStore }, { token: i1$1.ThyPopover }, { token: i0.NgZone }, { token: TheContextService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
12534
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableContextMenuService }); }
|
|
12448
12535
|
}
|
|
12449
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
12536
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableContextMenuService, decorators: [{
|
|
12450
12537
|
type: Injectable
|
|
12451
12538
|
}], ctorParameters: function () { return [{ type: TableStore }, { type: i1$1.ThyPopover }, { type: i0.NgZone }, { type: TheContextService }]; } });
|
|
12452
12539
|
|
|
@@ -12468,10 +12555,10 @@ class TableFreezeColumnPipe {
|
|
|
12468
12555
|
const mergeColumnCells = rows && rows.map(cells => cells[0]).filter(item => item.colspan && item.colspan !== 1);
|
|
12469
12556
|
return !!(tablePluginOptions?.freezeColumnHeader && table.options?.headerColumn && !mergeColumnCells.length && stickyColumn);
|
|
12470
12557
|
}
|
|
12471
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
12472
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.
|
|
12558
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableFreezeColumnPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12559
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.5", ngImport: i0, type: TableFreezeColumnPipe, name: "freezeColumn" }); }
|
|
12473
12560
|
}
|
|
12474
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
12561
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableFreezeColumnPipe, decorators: [{
|
|
12475
12562
|
type: Pipe,
|
|
12476
12563
|
args: [{ name: 'freezeColumn' }]
|
|
12477
12564
|
}] });
|
|
@@ -12484,10 +12571,10 @@ class TableFreezeRowPipe {
|
|
|
12484
12571
|
}
|
|
12485
12572
|
return false;
|
|
12486
12573
|
}
|
|
12487
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
12488
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.
|
|
12574
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableFreezeRowPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12575
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.5", ngImport: i0, type: TableFreezeRowPipe, name: "freezeRow" }); }
|
|
12489
12576
|
}
|
|
12490
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
12577
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableFreezeRowPipe, decorators: [{
|
|
12491
12578
|
type: Pipe,
|
|
12492
12579
|
args: [{ name: 'freezeRow' }]
|
|
12493
12580
|
}] });
|
|
@@ -12541,8 +12628,8 @@ class TheTableOptionsComponent {
|
|
|
12541
12628
|
Transforms.setNodes(this.editor, { header: null }, { at: rowPath });
|
|
12542
12629
|
}
|
|
12543
12630
|
}
|
|
12544
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
12545
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
12631
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableOptionsComponent, deps: [{ token: i1$1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12632
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheTableOptionsComponent, selector: "the-table-options", inputs: { editor: "editor" }, host: { classAttribute: "the-table-options" }, ngImport: i0, template: `
|
|
12546
12633
|
<div class="thy-dropdown-menu table-drop-menu">
|
|
12547
12634
|
<ng-container *ngFor="let option of tableDropdownList">
|
|
12548
12635
|
<a thyDropdownMenuItem href="javascript:;" (mousedown)="setTableOptions($event, option)">
|
|
@@ -12555,7 +12642,7 @@ class TheTableOptionsComponent {
|
|
|
12555
12642
|
</div>
|
|
12556
12643
|
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i6.ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: i6.ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: i6.ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }] }); }
|
|
12557
12644
|
}
|
|
12558
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
12645
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableOptionsComponent, decorators: [{
|
|
12559
12646
|
type: Component,
|
|
12560
12647
|
args: [{
|
|
12561
12648
|
selector: 'the-table-options',
|
|
@@ -12722,10 +12809,10 @@ class TheTableToolbarComponent {
|
|
|
12722
12809
|
viewContainerRef: this.viewContainerRef
|
|
12723
12810
|
});
|
|
12724
12811
|
}
|
|
12725
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
12726
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
12812
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableToolbarComponent, deps: [{ token: i1$1.ThyPopover }, { token: i1$1.ThyPopoverRef }, { token: i1$2.ThyNotifyService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12813
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheTableToolbarComponent, selector: "the-table-toolbar", inputs: { tableStore: "tableStore", tableElement: "tableElement" }, ngImport: i0, template: "<thy-actions thySize=\"xxs\" (mousedown)=\"preventDefault($event)\">\n <ng-container *ngFor=\"let item of cellMenuList\">\n <a\n *ngIf=\"item.visibility\"\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item.name\"\n (click)=\"item.actionHandle()\"\n ></a>\n </ng-container>\n <thy-divider *ngIf=\"hasDivider\" class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"> </thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyTooltip=\"\u5355\u5143\u683C\u80CC\u666F\"\n thyColorPicker\n [(ngModel)]=\"selectedColor\"\n (ngModelChange)=\"changeColor($event)\"\n (click)=\"openColorPanel($event)\"\n thyPlacement=\"bottomLeft\"\n [thyHasBackdrop]=\"false\"\n >\n <thy-icon thyIconName=\"background-tt\" thyIconType=\"twotone\" [thyTwotoneColor]=\"selectedColor\"></thy-icon>\n </a>\n <a\n href=\"javascript:;\"\n *ngIf=\"tableStore.isSelectedTable && !isColumnEqual\"\n thyAction\n thyTooltip=\"\u5217\u7B49\u5BBD\"\n (click)=\"setEquallyColumnHandle($event)\"\n >\n <thy-icon thyIconName=\"table-column-equal-width\"></thy-icon>\n </a>\n <a\n href=\"javascript:;\"\n *ngIf=\"tableStore.isSelectedTable && tableOptions?.showFullscreen\"\n thyAction\n thyTooltip=\"\u5168\u5C4F\"\n (click)=\"setFullscreen($event)\"\n >\n <thy-icon thyIconName=\"arrows-alt\"></thy-icon>\n </a>\n <a\n *ngIf=\"tableStore.isSelectedTable && !tableStore?.isFullscreen\"\n class=\"fullscreen-hidden\"\n href=\"javascript:;\"\n thyAction\n thyActionIcon=\"copy\"\n thyTooltip=\"\u590D\u5236\"\n (click)=\"onCopy($event)\"\n ></a>\n <ng-container *ngIf=\"tableStore.isSelectedTable\">\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a href=\"javascript:;\" class=\"link-with-down\" thyAction (mousedown)=\"preventDefault($event)\" (click)=\"openTableOptionMenu($event)\">\n <span>\u8868\u683C\u9009\u9879</span>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n </a>\n </ng-container>\n <ng-container *ngIf=\"tableStore?.isFullscreen ? deleteIcon && !tableStore.isSelectedTable : deleteIcon\">\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyType=\"danger\"\n [thyActionIcon]=\"deleteIcon\"\n [thyTooltip]=\"iconName\"\n (click)=\"onDelete($event)\"\n (mouseenter)=\"onEnterDelete($event)\"\n (mouseleave)=\"onLeaveDelete($event)\"\n ></a>\n </ng-container>\n</thy-actions>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i8.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: i7.ThyActionsComponent, selector: "thy-actions", inputs: ["thySize"] }, { kind: "component", type: i8$1.ThyDividerComponent, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: i5.ThyColorPickerDirective, selector: "[thyColorPicker]", inputs: ["thyOffset", "thyHasBackdrop", "thyDefaultColor", "thyTransparentColorSelectable", "thyPresetColors", "thyPlacement", "thyTrigger", "thyShowDelay", "thyHideDelay"], outputs: ["thyPanelOpen", "thyPanelClose"] }] }); }
|
|
12727
12814
|
}
|
|
12728
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
12815
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableToolbarComponent, decorators: [{
|
|
12729
12816
|
type: Component,
|
|
12730
12817
|
args: [{ selector: 'the-table-toolbar', template: "<thy-actions thySize=\"xxs\" (mousedown)=\"preventDefault($event)\">\n <ng-container *ngFor=\"let item of cellMenuList\">\n <a\n *ngIf=\"item.visibility\"\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"item.icon\"\n [thyTooltip]=\"item.name\"\n (click)=\"item.actionHandle()\"\n ></a>\n </ng-container>\n <thy-divider *ngIf=\"hasDivider\" class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"> </thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyTooltip=\"\u5355\u5143\u683C\u80CC\u666F\"\n thyColorPicker\n [(ngModel)]=\"selectedColor\"\n (ngModelChange)=\"changeColor($event)\"\n (click)=\"openColorPanel($event)\"\n thyPlacement=\"bottomLeft\"\n [thyHasBackdrop]=\"false\"\n >\n <thy-icon thyIconName=\"background-tt\" thyIconType=\"twotone\" [thyTwotoneColor]=\"selectedColor\"></thy-icon>\n </a>\n <a\n href=\"javascript:;\"\n *ngIf=\"tableStore.isSelectedTable && !isColumnEqual\"\n thyAction\n thyTooltip=\"\u5217\u7B49\u5BBD\"\n (click)=\"setEquallyColumnHandle($event)\"\n >\n <thy-icon thyIconName=\"table-column-equal-width\"></thy-icon>\n </a>\n <a\n href=\"javascript:;\"\n *ngIf=\"tableStore.isSelectedTable && tableOptions?.showFullscreen\"\n thyAction\n thyTooltip=\"\u5168\u5C4F\"\n (click)=\"setFullscreen($event)\"\n >\n <thy-icon thyIconName=\"arrows-alt\"></thy-icon>\n </a>\n <a\n *ngIf=\"tableStore.isSelectedTable && !tableStore?.isFullscreen\"\n class=\"fullscreen-hidden\"\n href=\"javascript:;\"\n thyAction\n thyActionIcon=\"copy\"\n thyTooltip=\"\u590D\u5236\"\n (click)=\"onCopy($event)\"\n ></a>\n <ng-container *ngIf=\"tableStore.isSelectedTable\">\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a href=\"javascript:;\" class=\"link-with-down\" thyAction (mousedown)=\"preventDefault($event)\" (click)=\"openTableOptionMenu($event)\">\n <span>\u8868\u683C\u9009\u9879</span>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n </a>\n </ng-container>\n <ng-container *ngIf=\"tableStore?.isFullscreen ? deleteIcon && !tableStore.isSelectedTable : deleteIcon\">\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyType=\"danger\"\n [thyActionIcon]=\"deleteIcon\"\n [thyTooltip]=\"iconName\"\n (click)=\"onDelete($event)\"\n (mouseenter)=\"onEnterDelete($event)\"\n (mouseleave)=\"onLeaveDelete($event)\"\n ></a>\n </ng-container>\n</thy-actions>\n" }]
|
|
12731
12818
|
}], ctorParameters: function () { return [{ type: i1$1.ThyPopover }, { type: i1$1.ThyPopoverRef }, { type: i1$2.ThyNotifyService }, { type: i0.ViewContainerRef }]; }, propDecorators: { tableStore: [{
|
|
@@ -12744,12 +12831,11 @@ class TableService {
|
|
|
12744
12831
|
get isOpened() {
|
|
12745
12832
|
return this.toolbarRef && this.toolbarRef.componentInstance;
|
|
12746
12833
|
}
|
|
12747
|
-
constructor(thyPopover, overlay, tableStore, ngZone
|
|
12834
|
+
constructor(thyPopover, overlay, tableStore, ngZone) {
|
|
12748
12835
|
this.thyPopover = thyPopover;
|
|
12749
12836
|
this.overlay = overlay;
|
|
12750
12837
|
this.tableStore = tableStore;
|
|
12751
12838
|
this.ngZone = ngZone;
|
|
12752
|
-
this.theContextService = theContextService;
|
|
12753
12839
|
this.backdropClosable = false;
|
|
12754
12840
|
this.hasBackdrop = false;
|
|
12755
12841
|
this.insideClosable = false;
|
|
@@ -12768,7 +12854,6 @@ class TableService {
|
|
|
12768
12854
|
tableStore: this.tableStore,
|
|
12769
12855
|
tableElement
|
|
12770
12856
|
},
|
|
12771
|
-
viewContainerRef: this.theContextService.getOptions().viewContainerRef,
|
|
12772
12857
|
origin: this.getOrigin(origin),
|
|
12773
12858
|
backdropClosable: this.backdropClosable,
|
|
12774
12859
|
panelClass: 'the-plugin-toolbar-popover',
|
|
@@ -12872,12 +12957,119 @@ class TableService {
|
|
|
12872
12957
|
e.preventDefault();
|
|
12873
12958
|
}
|
|
12874
12959
|
}
|
|
12875
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
12876
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
12960
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableService, deps: [{ token: i1$1.ThyPopover }, { token: i2$1.Overlay }, { token: TableStore }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
12961
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableService }); }
|
|
12877
12962
|
}
|
|
12878
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
12963
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableService, decorators: [{
|
|
12879
12964
|
type: Injectable
|
|
12880
|
-
}], ctorParameters: function () { return [{ type: i1$1.ThyPopover }, { type: i2$1.Overlay }, { type: TableStore }, { type: i0.NgZone }
|
|
12965
|
+
}], ctorParameters: function () { return [{ type: i1$1.ThyPopover }, { type: i2$1.Overlay }, { type: TableStore }, { type: i0.NgZone }]; } });
|
|
12966
|
+
|
|
12967
|
+
function calculateAnchorPositionInCell(editor, at) {
|
|
12968
|
+
at = at || editor.selection.anchor;
|
|
12969
|
+
const entry = anchorBlockEntry(editor, at);
|
|
12970
|
+
const [block, blockPath] = entry;
|
|
12971
|
+
const blockDom = AngularEditor.toDOMNode(editor, block);
|
|
12972
|
+
const valueRangeRect = blockDom.getBoundingClientRect();
|
|
12973
|
+
const blockHeight = window.getComputedStyle(blockDom).lineHeight;
|
|
12974
|
+
const nativeSelection = window.getSelection();
|
|
12975
|
+
const nativeRange = nativeSelection && nativeSelection.getRangeAt(0);
|
|
12976
|
+
const nativeRangeRect = nativeRange && nativeRange.getBoundingClientRect();
|
|
12977
|
+
let isFirstLine = false;
|
|
12978
|
+
let isLastLine = false;
|
|
12979
|
+
if (valueRangeRect && nativeRangeRect && blockHeight) {
|
|
12980
|
+
const lineHeight = parseInt(blockHeight, 10);
|
|
12981
|
+
isFirstLine = nativeRangeRect.top - valueRangeRect.top < lineHeight;
|
|
12982
|
+
isLastLine = valueRangeRect.bottom - nativeRangeRect.bottom < lineHeight;
|
|
12983
|
+
}
|
|
12984
|
+
return {
|
|
12985
|
+
isFirstLine,
|
|
12986
|
+
isLastLine,
|
|
12987
|
+
blockPath
|
|
12988
|
+
};
|
|
12989
|
+
}
|
|
12990
|
+
|
|
12991
|
+
const keyShiftDir = {
|
|
12992
|
+
'shift+up': TableSelectCellDirection.up,
|
|
12993
|
+
'shift+right': TableSelectCellDirection.right,
|
|
12994
|
+
'shift+down': TableSelectCellDirection.down,
|
|
12995
|
+
'shift+left': TableSelectCellDirection.left
|
|
12996
|
+
};
|
|
12997
|
+
const getHotKey = (e) => {
|
|
12998
|
+
const hotkey = ['shift+up', 'shift+right', 'shift+down', 'shift+left'].find(key => isKeyHotkey(key, e));
|
|
12999
|
+
return hotkey;
|
|
13000
|
+
};
|
|
13001
|
+
/**
|
|
13002
|
+
* 处理单元格内 shift + up/down/left/right 行为
|
|
13003
|
+
* @param editor 编辑器对象
|
|
13004
|
+
* @param e 键盘事件对象
|
|
13005
|
+
*/
|
|
13006
|
+
const moveSelectionFromCell = (editor, e) => {
|
|
13007
|
+
const hotkey = getHotKey(e);
|
|
13008
|
+
if (!hotkey) {
|
|
13009
|
+
return;
|
|
13010
|
+
}
|
|
13011
|
+
const { selection } = editor;
|
|
13012
|
+
const cursor = selection.focus;
|
|
13013
|
+
const tablePosition = createTablePosition(editor);
|
|
13014
|
+
const tableComponent = ELEMENT_TO_COMPONENT.get(tablePosition.table);
|
|
13015
|
+
const tableStore = tableComponent.tableStore;
|
|
13016
|
+
const selectedCells = tableStore.getSelectedCellPositions();
|
|
13017
|
+
const endPosition = createTablePosition(editor, cursor.path);
|
|
13018
|
+
const cellPath = endPosition.cellEntry[1];
|
|
13019
|
+
const isStart = Editor.isStart(editor, selection.focus, cellPath);
|
|
13020
|
+
const isEnd = Editor.isEnd(editor, selection.focus, cellPath);
|
|
13021
|
+
const isUp = isKeyHotkey('shift+up', e);
|
|
13022
|
+
const isDown = isKeyHotkey('shift+down', e);
|
|
13023
|
+
const isLeft = isKeyHotkey('shift+left', e);
|
|
13024
|
+
const isRight = isKeyHotkey('shift+right', e);
|
|
13025
|
+
// 当前已经没有选中单元格
|
|
13026
|
+
if (selectedCells.length === 0) {
|
|
13027
|
+
if (isUp || isDown) {
|
|
13028
|
+
const cellStartPath = Editor.start(editor, cellPath).path;
|
|
13029
|
+
const cellEndPath = Editor.end(editor, cellPath).path;
|
|
13030
|
+
const { isFirstLine, isLastLine } = calculateAnchorPositionInCell(editor, cursor);
|
|
13031
|
+
const [, anchorBlockPath] = anchorBlockEntry(editor, cursor);
|
|
13032
|
+
const anchorPosition = createTablePosition(editor, selection.anchor.path);
|
|
13033
|
+
const startCellPosition = createTablePosition(editor, cellStartPath);
|
|
13034
|
+
const endCellPosition = createTablePosition(editor, cellEndPath);
|
|
13035
|
+
const isSameCellByStart = Path.equals(anchorPosition.cellEntry[1], startCellPosition.cellEntry[1]);
|
|
13036
|
+
const isSameCellByEnd = Path.equals(anchorPosition.cellEntry[1], endCellPosition.cellEntry[1]);
|
|
13037
|
+
cellStartPath.pop();
|
|
13038
|
+
cellEndPath.pop();
|
|
13039
|
+
// 同一单元格内,当前光标不在首行或当前是跨行,则执行默认逻辑
|
|
13040
|
+
if (isUp && isSameCellByStart && (!isFirstLine || !Path.equals(anchorBlockPath, cellStartPath))) {
|
|
13041
|
+
return;
|
|
13042
|
+
}
|
|
13043
|
+
// 同一单元格内,当前光标不在最后一行或当前是跨行,则执行默认逻辑
|
|
13044
|
+
if (isDown && isSameCellByEnd && (!isLastLine || !Path.equals(anchorBlockPath, cellEndPath))) {
|
|
13045
|
+
return;
|
|
13046
|
+
}
|
|
13047
|
+
}
|
|
13048
|
+
if (isLeft) {
|
|
13049
|
+
const beforePoint = Editor.before(editor, selection);
|
|
13050
|
+
const beforePosition = beforePoint && createTablePosition(editor, beforePoint.path);
|
|
13051
|
+
// 如果不是单元格或不在起始位置,则不处理
|
|
13052
|
+
if (!beforePosition?.cell || !isStart) {
|
|
13053
|
+
return;
|
|
13054
|
+
}
|
|
13055
|
+
}
|
|
13056
|
+
if (isRight) {
|
|
13057
|
+
const afterPoint = Editor.after(editor, selection);
|
|
13058
|
+
const afterPosition = afterPoint && createTablePosition(editor, afterPoint.path);
|
|
13059
|
+
// 如果不是单元格或不是单元格尾部,则不处理
|
|
13060
|
+
if (!afterPosition?.cell || !isEnd) {
|
|
13061
|
+
return;
|
|
13062
|
+
}
|
|
13063
|
+
}
|
|
13064
|
+
}
|
|
13065
|
+
tableStore.selectCellInDirection(keyShiftDir[hotkey]);
|
|
13066
|
+
setTimeout(() => {
|
|
13067
|
+
const tableService = tableComponent.tableService;
|
|
13068
|
+
const isMobile = isMobileMode(editor);
|
|
13069
|
+
const focusElement = tableComponent.tbodyNativeElement?.querySelector('.focused-cell') || tableStore.focusCellElement;
|
|
13070
|
+
tableService.afterSelectedCells(focusElement, tableComponent.element, isMobile);
|
|
13071
|
+
});
|
|
13072
|
+
};
|
|
12881
13073
|
|
|
12882
13074
|
const TABLE_SELECTOR = '.the-table';
|
|
12883
13075
|
const TABLE_WRAPPER_SELECTOR = '.the-table-wrapper';
|
|
@@ -12964,10 +13156,10 @@ class TheColumnResizeDirective {
|
|
|
12964
13156
|
this.destroyed.next();
|
|
12965
13157
|
this.destroyed.complete();
|
|
12966
13158
|
}
|
|
12967
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
12968
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.
|
|
13159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheColumnResizeDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: TableCellEventDispatcher }, { token: ColumnResizeNotifierSource }, { token: THE_TABLE_COMPONENT_TOKEN }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
13160
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: TheColumnResizeDirective, selector: "div[theColumnResize]", ngImport: i0 }); }
|
|
12969
13161
|
}
|
|
12970
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
13162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheColumnResizeDirective, decorators: [{
|
|
12971
13163
|
type: Directive,
|
|
12972
13164
|
args: [{
|
|
12973
13165
|
selector: 'div[theColumnResize]'
|
|
@@ -13052,10 +13244,10 @@ class TheInsertMarkComponent {
|
|
|
13052
13244
|
return result + 'px';
|
|
13053
13245
|
}
|
|
13054
13246
|
}
|
|
13055
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
13056
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
13247
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheInsertMarkComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13248
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheInsertMarkComponent, selector: "the-table-insert-mark", inputs: { type: "type", at: "at", tableStore: "tableStore", parentElement: "parentElement" }, host: { classAttribute: "the-table-insert-mark" }, ngImport: i0, template: "<div\n [thyTooltip]=\"!disabled && tooltipContent\"\n class=\"the-table-controls-insert-wrapper\"\n [ngClass]=\"{ disabled: disabled }\"\n contenteditable=\"false\"\n (mousedown)=\"onMouseDown($event)\"\n (mouseenter)=\"onMouseEnter($event)\"\n (mouseleave)=\"onMouseLeave($event)\"\n>\n <div\n class=\"the-table-controls-insert-line\"\n *ngIf=\"dotWrapperHovered\"\n [attr.data-dot-type]=\"type\"\n [ngStyle]=\"{ height: type === 'column' && insertLength, width: type === 'row' && insertLength }\"\n ></div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i8.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }] }); }
|
|
13057
13249
|
}
|
|
13058
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
13250
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheInsertMarkComponent, decorators: [{
|
|
13059
13251
|
type: Component,
|
|
13060
13252
|
args: [{ selector: 'the-table-insert-mark', host: {
|
|
13061
13253
|
class: 'the-table-insert-mark'
|
|
@@ -13093,9 +13285,6 @@ class TheTableComponent extends TheBaseElementComponent {
|
|
|
13093
13285
|
Promise.resolve().then(() => {
|
|
13094
13286
|
this.tableStore.emitTableChange();
|
|
13095
13287
|
this.tableStore.setSelectedColumnsAndRowIndex();
|
|
13096
|
-
if (!this.tableStore.selectedCells.length && this.tableService.isOpened) {
|
|
13097
|
-
this.tableService.closeToolbar();
|
|
13098
|
-
}
|
|
13099
13288
|
this.bindTableScrollingShadow();
|
|
13100
13289
|
this.useRowControls();
|
|
13101
13290
|
this.setHeaderCellStyle();
|
|
@@ -13165,8 +13354,11 @@ class TheTableComponent extends TheBaseElementComponent {
|
|
|
13165
13354
|
this.tableStore
|
|
13166
13355
|
.selectedCellsChange()
|
|
13167
13356
|
.pipe(takeUntil(this.destroy$))
|
|
13168
|
-
.subscribe(
|
|
13357
|
+
.subscribe(cells => {
|
|
13169
13358
|
this.isSelectedAllCell = isSelectedAllCell(this.editor, this.tableStore.getSelectedCellPositions());
|
|
13359
|
+
if (!cells.length && this.tableService.isOpened) {
|
|
13360
|
+
this.tableService.closeToolbar();
|
|
13361
|
+
}
|
|
13170
13362
|
});
|
|
13171
13363
|
}
|
|
13172
13364
|
getWrapperWidth() {
|
|
@@ -13708,17 +13900,13 @@ class TheTableComponent extends TheBaseElementComponent {
|
|
|
13708
13900
|
if (isKeyHotkey('shift', e)) {
|
|
13709
13901
|
this.tableService.handleKeydownForAreaSelection(e, this.tbodyNativeElement);
|
|
13710
13902
|
}
|
|
13711
|
-
|
|
13712
|
-
|
|
13713
|
-
|
|
13714
|
-
if (isKeyHotkey('shift+down', e)) {
|
|
13715
|
-
this.tableStore.selectCellInDirection(TableSelectCellDirection.down);
|
|
13903
|
+
// 处理单元格内 shift + up/down/left/right 行为
|
|
13904
|
+
if (this.isInTable) {
|
|
13905
|
+
moveSelectionFromCell(this.editor, e);
|
|
13716
13906
|
}
|
|
13717
|
-
|
|
13718
|
-
|
|
13719
|
-
|
|
13720
|
-
if (isKeyHotkey('shift+right', e)) {
|
|
13721
|
-
this.tableStore.selectCellInDirection(TableSelectCellDirection.right);
|
|
13907
|
+
// 触发上下左右键时,清除选中的单元格
|
|
13908
|
+
if (isKeyHotkey(['up', 'down', 'left', 'right'], e) && this.tableStore.selectCells?.length > 0) {
|
|
13909
|
+
this.tableStore.clearSelectedCells();
|
|
13722
13910
|
}
|
|
13723
13911
|
});
|
|
13724
13912
|
});
|
|
@@ -13813,11 +14001,13 @@ class TheTableComponent extends TheBaseElementComponent {
|
|
|
13813
14001
|
}
|
|
13814
14002
|
ngOnDestroy() {
|
|
13815
14003
|
super.ngOnDestroy();
|
|
14004
|
+
this.tableService.closeToolbar();
|
|
14005
|
+
this.theTableContextMenuService.closeContextMenu();
|
|
13816
14006
|
this.destroy$.next();
|
|
13817
14007
|
this.destroy$.complete();
|
|
13818
14008
|
}
|
|
13819
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
13820
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
14009
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableComponent, deps: [{ token: i0.ElementRef }, { token: TableCellEventDispatcher }, { token: ColumnResizeNotifierSource }, { token: TableStore }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: TableService }, { token: TheTableContextMenuService }, { token: TableFreezeColumnPipe }, { token: TableFreezeRowPipe }, { token: i0.Renderer2 }, { token: TheContextService }, { token: THE_MODE_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14010
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheTableComponent, selector: "the-table, [theTable]", host: { listeners: { "mousedown": "handleMousedown($event)" }, properties: { "class.the-table-with-controls": "isInTable || tableStore.isRightClicking || tableStore.isFocusedInput", "class.the-table-with-sticky-column": "freezeColumnPipe.transform(element, tablePluginOptions)", "class.the-numbered-table": "element?.options?.numberedColumn", "class.the-table-selection-hide": "tableStore.isCellSelecting || tableStore.isRightClicking || tableStore.isFocusedInput" } }, providers: [
|
|
13821
14011
|
TableStore,
|
|
13822
14012
|
TableService,
|
|
13823
14013
|
TheTableContextMenuService,
|
|
@@ -13831,7 +14021,7 @@ class TheTableComponent extends TheBaseElementComponent {
|
|
|
13831
14021
|
}
|
|
13832
14022
|
], viewQueries: [{ propertyName: "tableWrapper", first: true, predicate: ["tableWrapper"], descendants: true, read: ElementRef, static: true }, { propertyName: "theTableElement", first: true, predicate: ["theTable"], descendants: true, read: ElementRef, static: true }, { propertyName: "tbodyElement", first: true, predicate: ["tbody"], descendants: true, read: ElementRef, static: true }, { propertyName: "tableRowControlsWrapper", first: true, predicate: ["tableRowControlsWrapper"], descendants: true, read: ElementRef }, { propertyName: "columnControlsWrapper", first: true, predicate: ["columnControlsWrapper"], descendants: true, read: ElementRef }, { propertyName: "cornerControl", first: true, predicate: ["cornerControl"], descendants: true, read: ElementRef }, { propertyName: "rowControlsInner", first: true, predicate: ["rowControlsInner"], descendants: true, read: ElementRef }, { propertyName: "headerRowLeftShadow", first: true, predicate: ["headerRowLeftShadow"], descendants: true, read: ElementRef }, { propertyName: "headerRowRightShadow", first: true, predicate: ["headerRowRightShadow"], descendants: true, read: ElementRef }, { propertyName: "colgroup", first: true, predicate: ["colgroup"], descendants: true, read: ElementRef }, { propertyName: "rowControlsButtonWrapper", predicate: ["rowControlsButtonWrapper"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"the-table-container\" theColumnResize>\n <div #tableRowControlsWrapper class=\"the-table-row-controls-wrapper\">\n <div\n class=\"the-table-corner-controls the-sticky-corner-controls\"\n #cornerControl\n [ngClass]=\"{\n visible: !readonly && (isInTable || tableStore.isRightClicking || tableStore.isFocusedInput),\n 'control-active': isSelectedAllCell,\n dangerous: tableStore.isSelectedTable && tableStore.dangerousCells.length > 0\n }\"\n >\n <div class=\"the-table-corner-button\" (mousedown)=\"onSelectTable($event)\"></div>\n <div class=\"the-table-corner-controls-insert-row-marker\" *ngIf=\"!headerRow && !isMobileMode\">\n <the-table-insert-mark type=\"row\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n <div class=\"the-table-corner-controls-insert-column-marker\" *ngIf=\"!element?.options?.headerColumn && !isMobileMode\">\n <the-table-insert-mark type=\"column\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n </div>\n <div class=\"the-table-row-controls\">\n <div class=\"the-table-row-controls-inner\" #rowControlsInner>\n <div\n class=\"the-table-row-controls-button-wrap\"\n #rowControlsButtonWrapper\n *ngFor=\"let control of rowControls; let i = index; trackBy: trackByFnRowControls\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedRowsIndex.includes(control.rowIndex),\n dangerous: tableStore.dangerousRowsIndex.includes(control.rowIndex) && tableStore.dangerousCells.length > 0\n }\"\n >\n <ng-container\n *ngIf=\"!readonly && (isInTable || tableStore.isRightClicking || tableStore.isFocusedInput) && !element?.options?.numberedColumn\"\n >\n <button\n (mousedown)=\"onRowMousedown($event, control.rowIndex)\"\n type=\"button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n class=\"the-table-row-controls-button the-table-controls-button\"\n ></button>\n </ng-container>\n <ng-container *ngIf=\"element?.options?.numberedColumn\">\n <div\n [contentEditable]=\"false\"\n contenteditable=\"false\"\n (mousedown)=\"onRowMousedown($event, control.rowIndex)\"\n class=\"the-table-numbered-controls-button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n >\n <p class=\"row-number d-flex align-items-center\">{{ headerRow && i === 0 ? '' : headerRow ? i : i + 1 }}</p>\n </div>\n </ng-container>\n <the-table-insert-mark *ngIf=\"!isMobileMode\" type=\"row\" [at]=\"control.rowIndex + 1\" [tableStore]=\"tableStore\">\n </the-table-insert-mark>\n </div>\n </div>\n </div>\n </div>\n <div class=\"the-table-wrapper\" #tableWrapper [ngClass]=\"{ 'the-table-numbered': element?.options?.numberedColumn }\">\n <table class=\"the-table\" #theTable>\n <colgroup #colgroup *ngIf=\"columns\">\n <col *ngIf=\"readonly && element?.options?.numberedColumn\" class=\"the-table-number-col\" />\n <col *ngFor=\"let col of columns\" [ngStyle]=\"{ width: col.width + 'px' }\" />\n </colgroup>\n <thead>\n <tr class=\"the-table-col-controls-wrapper the-sticky-row\" #columnControlsWrapper>\n <th *ngIf=\"readonly && element?.options?.numberedColumn\" class=\"the-table-number-col\"></th>\n <th\n #colControl\n class=\"the-table-col-controls\"\n *ngFor=\"let control of colControls; let i = index; trackBy: trackByFnColControls\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedColumnsIndex.includes(i),\n dangerous: tableStore.dangerousColumnsIndex.includes(i) && tableStore.dangerousCells.length > 0\n }\"\n (mousedown)=\"onColMousedown($event, i)\"\n >\n <the-table-insert-mark\n *ngIf=\"(isInTable || tableStore.isRightClicking || tableStore.isFocusedInput) && !isMobileMode\"\n type=\"column\"\n [at]=\"i + 1\"\n [tableStore]=\"tableStore\"\n [parentElement]=\"colControl\"\n >\n </the-table-insert-mark>\n </th>\n </tr>\n </thead>\n <tbody #tbody>\n <slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"> </slate-children>\n </tbody>\n <div\n *ngIf=\"!element?.options?.headerColumn\"\n #headerRowLeftShadow\n class=\"header-row-shadow header-row-left-shadow\"\n contenteditable=\"false\"\n ></div>\n <div class=\"header-row-shadow header-row-right-shadow\" #headerRowRightShadow contenteditable=\"false\"></div>\n </table>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }, { kind: "directive", type: TheColumnResizeDirective, selector: "div[theColumnResize]" }, { kind: "component", type: TheInsertMarkComponent, selector: "the-table-insert-mark", inputs: ["type", "at", "tableStore", "parentElement"] }] }); }
|
|
13833
14023
|
}
|
|
13834
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
14024
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableComponent, decorators: [{
|
|
13835
14025
|
type: Component,
|
|
13836
14026
|
args: [{ selector: 'the-table, [theTable]', providers: [
|
|
13837
14027
|
TableStore,
|
|
@@ -13892,116 +14082,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImpor
|
|
|
13892
14082
|
args: ['mousedown', ['$event']]
|
|
13893
14083
|
}] } });
|
|
13894
14084
|
|
|
13895
|
-
/**
|
|
13896
|
-
* Clear the content of the given node
|
|
13897
|
-
*/
|
|
13898
|
-
function clearTableNode(opts, editor, isTopToBot) {
|
|
13899
|
-
const { selection } = editor;
|
|
13900
|
-
const element = createTablePosition(editor, selection.focus.path);
|
|
13901
|
-
const rowIndex = element.getRowIndex();
|
|
13902
|
-
const colIndex = element.getColumnIndex();
|
|
13903
|
-
const removeRow = isTopToBot ? 0 : rowIndex + 1;
|
|
13904
|
-
for (let i = 0; i < element.getWidth(); i++) {
|
|
13905
|
-
const inColRange = Range.includes(selection, [...element.tableEntry[1], rowIndex, i]);
|
|
13906
|
-
if (inColRange && i !== colIndex) {
|
|
13907
|
-
Transforms.removeNodes(editor, { at: [...element.tableEntry[1], rowIndex, i] });
|
|
13908
|
-
Transforms.insertNodes(editor, createCell(opts), { at: [...element.tableEntry[1], rowIndex, i] });
|
|
13909
|
-
}
|
|
13910
|
-
}
|
|
13911
|
-
for (let i = 0; i < element.getHeight(); i++) {
|
|
13912
|
-
const inRowRange = Range.includes(selection, [...element.tableEntry[1], i]);
|
|
13913
|
-
if (inRowRange && i !== rowIndex) {
|
|
13914
|
-
Transforms.removeNodes(editor, { at: [...element.tableEntry[1], removeRow] });
|
|
13915
|
-
}
|
|
13916
|
-
}
|
|
13917
|
-
}
|
|
13918
|
-
|
|
13919
|
-
function calculateAnchorPositionInCell(editor) {
|
|
13920
|
-
let isFirstLine = false;
|
|
13921
|
-
let isLastLine = false;
|
|
13922
|
-
const anchorBlock$1 = anchorBlock(editor);
|
|
13923
|
-
const anchorBlockPath = findPath(editor, anchorBlock$1);
|
|
13924
|
-
const anchorBlockDom = AngularEditor.toDOMNode(editor, anchorBlock$1);
|
|
13925
|
-
const valueRangeRect = anchorBlockDom.getBoundingClientRect();
|
|
13926
|
-
const anchorBlockHeight = window.getComputedStyle(anchorBlockDom).lineHeight;
|
|
13927
|
-
const nativeSelection = window.getSelection();
|
|
13928
|
-
const nativeRange = nativeSelection && nativeSelection.getRangeAt(0);
|
|
13929
|
-
const nativeRangeRect = nativeRange && nativeRange.getBoundingClientRect();
|
|
13930
|
-
if (valueRangeRect && nativeRangeRect && anchorBlockHeight) {
|
|
13931
|
-
const lineHeight = parseInt(anchorBlockHeight, 10);
|
|
13932
|
-
isFirstLine = nativeRangeRect.top - valueRangeRect.top < lineHeight;
|
|
13933
|
-
isLastLine = valueRangeRect.bottom - nativeRangeRect.bottom < lineHeight;
|
|
13934
|
-
}
|
|
13935
|
-
return {
|
|
13936
|
-
isFirstLine,
|
|
13937
|
-
isLastLine,
|
|
13938
|
-
anchorBlockPath
|
|
13939
|
-
};
|
|
13940
|
-
}
|
|
13941
|
-
|
|
13942
|
-
class TheTableRowComponent extends TheBaseElementComponent {
|
|
13943
|
-
constructor(elementRef, cdr, renderer) {
|
|
13944
|
-
super(elementRef, cdr);
|
|
13945
|
-
this.elementRef = elementRef;
|
|
13946
|
-
this.cdr = cdr;
|
|
13947
|
-
this.renderer = renderer;
|
|
13948
|
-
this.numberedColumn = false;
|
|
13949
|
-
this.rowNumber = '';
|
|
13950
|
-
}
|
|
13951
|
-
onContextChange() {
|
|
13952
|
-
super.onContextChange();
|
|
13953
|
-
const path = TheEditor.findPath(this.editor, this.element);
|
|
13954
|
-
const tablePosition = createTablePosition(this.editor, path.concat(0));
|
|
13955
|
-
const rowIndex = tablePosition.getRowIndex();
|
|
13956
|
-
if (rowIndex === 0) {
|
|
13957
|
-
this.renderer.addClass(this.elementRef.nativeElement, 'the-sticky-row');
|
|
13958
|
-
}
|
|
13959
|
-
else {
|
|
13960
|
-
this.renderer.removeClass(this.elementRef.nativeElement, 'the-sticky-row');
|
|
13961
|
-
}
|
|
13962
|
-
if (this.initialized) {
|
|
13963
|
-
this.useHeight();
|
|
13964
|
-
}
|
|
13965
|
-
this.setNumberColumn(tablePosition, rowIndex);
|
|
13966
|
-
}
|
|
13967
|
-
ngOnInit() {
|
|
13968
|
-
super.ngOnInit();
|
|
13969
|
-
this.useHeight();
|
|
13970
|
-
}
|
|
13971
|
-
useHeight() {
|
|
13972
|
-
if (this.element.height) {
|
|
13973
|
-
this.height = this.element.height + 'px';
|
|
13974
|
-
}
|
|
13975
|
-
}
|
|
13976
|
-
setNumberColumn(ps, rowIndex) {
|
|
13977
|
-
const headerRow = isHeaderRow(ps.table);
|
|
13978
|
-
this.numberedColumn = ps.table?.options?.numberedColumn;
|
|
13979
|
-
this.rowNumber = headerRow && rowIndex === 0 ? '' : headerRow ? rowIndex : rowIndex + 1;
|
|
13980
|
-
}
|
|
13981
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: TheTableRowComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13982
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.4", type: TheTableRowComponent, selector: "tr[theTableRow]", host: { properties: { "style.height": "this.height" } }, usesInheritance: true, ngImport: i0, template: `
|
|
13983
|
-
<td *ngIf="readonly && numberedColumn" class="the-table-number-column align-middle" thePreventDefault>
|
|
13984
|
-
{{ rowNumber }}
|
|
13985
|
-
</td>
|
|
13986
|
-
<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>
|
|
13987
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }, { kind: "directive", type: ThePreventDefaultDirective, selector: "[thePreventDefault]", exportAs: ["thePreventDefault"] }] }); }
|
|
13988
|
-
}
|
|
13989
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: TheTableRowComponent, decorators: [{
|
|
13990
|
-
type: Component,
|
|
13991
|
-
args: [{
|
|
13992
|
-
selector: 'tr[theTableRow]',
|
|
13993
|
-
template: `
|
|
13994
|
-
<td *ngIf="readonly && numberedColumn" class="the-table-number-column align-middle" thePreventDefault>
|
|
13995
|
-
{{ rowNumber }}
|
|
13996
|
-
</td>
|
|
13997
|
-
<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>
|
|
13998
|
-
`
|
|
13999
|
-
}]
|
|
14000
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, propDecorators: { height: [{
|
|
14001
|
-
type: HostBinding,
|
|
14002
|
-
args: ['style.height']
|
|
14003
|
-
}] } });
|
|
14004
|
-
|
|
14005
14085
|
/**
|
|
14006
14086
|
* @license
|
|
14007
14087
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -14152,10 +14232,10 @@ class TheColumnResizeOverlayHandleComponent {
|
|
|
14152
14232
|
this.destroyed.next();
|
|
14153
14233
|
this.destroyed.complete();
|
|
14154
14234
|
}
|
|
14155
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
14156
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
14235
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheColumnResizeOverlayHandleComponent, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: ResizeRef }, { token: TableCellEventDispatcher }, { token: DOCUMENT }, { token: ColumnResizeNotifierSource }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14236
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheColumnResizeOverlayHandleComponent, selector: "ng-component", host: { classAttribute: "the-table-resize-overlay-thumb" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14157
14237
|
}
|
|
14158
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
14238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheColumnResizeOverlayHandleComponent, decorators: [{
|
|
14159
14239
|
type: Component,
|
|
14160
14240
|
args: [{
|
|
14161
14241
|
host: { class: 'the-table-resize-overlay-thumb' },
|
|
@@ -14311,10 +14391,10 @@ class ColumnResizingStore {
|
|
|
14311
14391
|
popRow() {
|
|
14312
14392
|
this.resizeRows.pop();
|
|
14313
14393
|
}
|
|
14314
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
14315
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
14394
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ColumnResizingStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
14395
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ColumnResizingStore }); }
|
|
14316
14396
|
}
|
|
14317
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
14397
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ColumnResizingStore, decorators: [{
|
|
14318
14398
|
type: Injectable
|
|
14319
14399
|
}], ctorParameters: function () { return []; } });
|
|
14320
14400
|
|
|
@@ -14964,10 +15044,10 @@ class TheTdComponent extends TheBaseElementComponent {
|
|
|
14964
15044
|
this.destroy$.next();
|
|
14965
15045
|
this.destroy$.complete();
|
|
14966
15046
|
}
|
|
14967
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
14968
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
15047
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTdComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i0.Injector }, { token: i2$1.Overlay }, { token: ColumnResizingStore }, { token: i2$1.ScrollDispatcher }, { token: TableFreezeColumnPipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15048
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheTdComponent, selector: "td[theTd]", host: { properties: { "style.backgroundColor": "this.backgroundColor", "attr.colspan": "this.colspan", "attr.rowspan": "this.rowspan", "style.display": "this.display" } }, providers: [ColumnResizingStore], usesInheritance: true, ngImport: i0, template: "<div #cellInner>\n <slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"></slate-children>\n</div>\n", dependencies: [{ kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }] }); }
|
|
14969
15049
|
}
|
|
14970
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
15050
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTdComponent, decorators: [{
|
|
14971
15051
|
type: Component,
|
|
14972
15052
|
args: [{ selector: 'td[theTd]', providers: [ColumnResizingStore], template: "<div #cellInner>\n <slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"></slate-children>\n</div>\n" }]
|
|
14973
15053
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i0.Injector }, { type: i2$1.Overlay }, { type: ColumnResizingStore }, { type: i2$1.ScrollDispatcher }, { type: TableFreezeColumnPipe }]; }, propDecorators: { backgroundColor: [{
|
|
@@ -14984,36 +15064,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImpor
|
|
|
14984
15064
|
args: ['style.display']
|
|
14985
15065
|
}] } });
|
|
14986
15066
|
|
|
14987
|
-
const normalizeTable = (table) => {
|
|
14988
|
-
const normalizedNodes = [];
|
|
14989
|
-
const rowHeight = table.children.length;
|
|
14990
|
-
const columnWidth = table.children[0].children.length;
|
|
14991
|
-
table.children.forEach((row, rowIndex) => {
|
|
14992
|
-
row.children.forEach((cell, columnIndex) => {
|
|
14993
|
-
// case 1
|
|
14994
|
-
if (cell.colspan || cell.rowspan) {
|
|
14995
|
-
const rowspan = cell.rowspan || 1;
|
|
14996
|
-
const colspan = cell.colspan || 1;
|
|
14997
|
-
if (rowspan > rowHeight - rowIndex) {
|
|
14998
|
-
cell.rowspan = rowHeight - rowIndex;
|
|
14999
|
-
}
|
|
15000
|
-
if (colspan > columnWidth - columnIndex) {
|
|
15001
|
-
cell.colspan = columnWidth - columnIndex;
|
|
15002
|
-
}
|
|
15003
|
-
return;
|
|
15004
|
-
}
|
|
15005
|
-
// case 2
|
|
15006
|
-
if (cell.hidden && !normalizedNodes.includes(cell)) {
|
|
15007
|
-
const origin = getOriginCell(table, rowIndex, columnIndex);
|
|
15008
|
-
if (!origin) {
|
|
15009
|
-
delete table.children[rowIndex].children[columnIndex].hidden;
|
|
15010
|
-
}
|
|
15011
|
-
}
|
|
15012
|
-
});
|
|
15013
|
-
});
|
|
15014
|
-
return table;
|
|
15015
|
-
};
|
|
15016
|
-
|
|
15017
15067
|
class TheTableToolbarItemComponent extends TheBaseToolbarItem {
|
|
15018
15068
|
get isOpenTableSelect() {
|
|
15019
15069
|
return this.tableSelectRef && this.tableSelectRef.componentInstance;
|
|
@@ -15056,8 +15106,8 @@ class TheTableToolbarItemComponent extends TheBaseToolbarItem {
|
|
|
15056
15106
|
});
|
|
15057
15107
|
return this.tableSelectRef;
|
|
15058
15108
|
}
|
|
15059
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
15060
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
15109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableToolbarItemComponent, deps: [{ token: i1$1.ThyPopover }, { token: i2$1.Overlay }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheTableToolbarItemComponent, selector: "the-table-toolbar-item", host: { classAttribute: "the-toolbar-dropdown-container" }, usesInheritance: true, ngImport: i0, template: `
|
|
15061
15111
|
<a
|
|
15062
15112
|
href="javascript:;"
|
|
15063
15113
|
class="link-with-down"
|
|
@@ -15073,7 +15123,7 @@ class TheTableToolbarItemComponent extends TheBaseToolbarItem {
|
|
|
15073
15123
|
</a>
|
|
15074
15124
|
`, isInline: true, dependencies: [{ kind: "component", type: i4.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i8.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: i7.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }] }); }
|
|
15075
15125
|
}
|
|
15076
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
15126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableToolbarItemComponent, decorators: [{
|
|
15077
15127
|
type: Component,
|
|
15078
15128
|
args: [{
|
|
15079
15129
|
selector: 'the-table-toolbar-item',
|
|
@@ -15098,6 +15148,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImpor
|
|
|
15098
15148
|
}]
|
|
15099
15149
|
}], ctorParameters: function () { return [{ type: i1$1.ThyPopover }, { type: i2$1.Overlay }]; } });
|
|
15100
15150
|
|
|
15151
|
+
/**
|
|
15152
|
+
* Clear the content of the given node
|
|
15153
|
+
*/
|
|
15154
|
+
function clearTableNode(opts, editor, isTopToBot) {
|
|
15155
|
+
const { selection } = editor;
|
|
15156
|
+
const element = createTablePosition(editor, selection.focus.path);
|
|
15157
|
+
const rowIndex = element.getRowIndex();
|
|
15158
|
+
const colIndex = element.getColumnIndex();
|
|
15159
|
+
const removeRow = isTopToBot ? 0 : rowIndex + 1;
|
|
15160
|
+
for (let i = 0; i < element.getWidth(); i++) {
|
|
15161
|
+
const inColRange = Range.includes(selection, [...element.tableEntry[1], rowIndex, i]);
|
|
15162
|
+
if (inColRange && i !== colIndex) {
|
|
15163
|
+
Transforms.removeNodes(editor, { at: [...element.tableEntry[1], rowIndex, i] });
|
|
15164
|
+
Transforms.insertNodes(editor, createCell(opts), { at: [...element.tableEntry[1], rowIndex, i] });
|
|
15165
|
+
}
|
|
15166
|
+
}
|
|
15167
|
+
for (let i = 0; i < element.getHeight(); i++) {
|
|
15168
|
+
const inRowRange = Range.includes(selection, [...element.tableEntry[1], i]);
|
|
15169
|
+
if (inRowRange && i !== rowIndex) {
|
|
15170
|
+
Transforms.removeNodes(editor, { at: [...element.tableEntry[1], removeRow] });
|
|
15171
|
+
}
|
|
15172
|
+
}
|
|
15173
|
+
}
|
|
15174
|
+
|
|
15101
15175
|
const isLegalTable = (editor, element, path) => {
|
|
15102
15176
|
try {
|
|
15103
15177
|
const nodePath = path || TheEditor.findPath(editor, element);
|
|
@@ -15110,6 +15184,36 @@ const isLegalTable = (editor, element, path) => {
|
|
|
15110
15184
|
}
|
|
15111
15185
|
};
|
|
15112
15186
|
|
|
15187
|
+
const normalizeTable = (table) => {
|
|
15188
|
+
const normalizedNodes = [];
|
|
15189
|
+
const rowHeight = table.children.length;
|
|
15190
|
+
const columnWidth = table.children[0].children.length;
|
|
15191
|
+
table.children.forEach((row, rowIndex) => {
|
|
15192
|
+
row.children.forEach((cell, columnIndex) => {
|
|
15193
|
+
// case 1
|
|
15194
|
+
if (cell.colspan || cell.rowspan) {
|
|
15195
|
+
const rowspan = cell.rowspan || 1;
|
|
15196
|
+
const colspan = cell.colspan || 1;
|
|
15197
|
+
if (rowspan > rowHeight - rowIndex) {
|
|
15198
|
+
cell.rowspan = rowHeight - rowIndex;
|
|
15199
|
+
}
|
|
15200
|
+
if (colspan > columnWidth - columnIndex) {
|
|
15201
|
+
cell.colspan = columnWidth - columnIndex;
|
|
15202
|
+
}
|
|
15203
|
+
return;
|
|
15204
|
+
}
|
|
15205
|
+
// case 2
|
|
15206
|
+
if (cell.hidden && !normalizedNodes.includes(cell)) {
|
|
15207
|
+
const origin = getOriginCell(table, rowIndex, columnIndex);
|
|
15208
|
+
if (!origin) {
|
|
15209
|
+
delete table.children[rowIndex].children[columnIndex].hidden;
|
|
15210
|
+
}
|
|
15211
|
+
}
|
|
15212
|
+
});
|
|
15213
|
+
});
|
|
15214
|
+
return table;
|
|
15215
|
+
};
|
|
15216
|
+
|
|
15113
15217
|
const withTable = (editor) => {
|
|
15114
15218
|
const { deleteBackward, deleteForward, onKeydown, setFragmentData, insertData, normalizeNode, isBlockCard, renderElement, deleteCutData, isContainer, onChange, onClick } = editor;
|
|
15115
15219
|
editor.deleteBackward = unit => {
|
|
@@ -15649,15 +15753,15 @@ class TheTodoItemComponent extends TheBaseElementComponent {
|
|
|
15649
15753
|
}
|
|
15650
15754
|
setNode(this.editor, { checked }, this.element);
|
|
15651
15755
|
}
|
|
15652
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
15653
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
15756
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTodoItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: TheContextService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15757
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheTodoItemComponent, selector: "div[theTodoItem]", host: { properties: { "class.the-check-item": "this.checkItemClass", "class.the-todo-item-selectable": "this.checkItemSelectable", "attr.the-level": "this.level" } }, usesInheritance: true, ngImport: i0, template: `
|
|
15654
15758
|
<span contenteditable="false" class="todo-item-status">
|
|
15655
15759
|
<input #checkbox type="checkbox" [checked]="element.checked" (click)="onCheck(checkbox.checked)" />
|
|
15656
15760
|
</span>
|
|
15657
15761
|
<span><slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children></span>
|
|
15658
15762
|
`, isInline: true, dependencies: [{ kind: "component", type: i1.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }] }); }
|
|
15659
15763
|
}
|
|
15660
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
15764
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTodoItemComponent, decorators: [{
|
|
15661
15765
|
type: Component,
|
|
15662
15766
|
args: [{
|
|
15663
15767
|
selector: 'div[theTodoItem]',
|
|
@@ -15922,8 +16026,8 @@ class TheInlineToolbarComponent {
|
|
|
15922
16026
|
this.destroy$.next();
|
|
15923
16027
|
this.destroy$.complete();
|
|
15924
16028
|
}
|
|
15925
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
15926
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
16029
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheInlineToolbarComponent, deps: [{ token: i0.ElementRef }, { token: i2$1.ScrollDispatcher }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: TheContextService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16030
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheInlineToolbarComponent, selector: "the-inline-toolbar", inputs: { editor: "editor", toolbarItems: "toolbarItems" }, host: { properties: { "class.hide": "toolbarItems.length === 0" } }, viewQueries: [{ propertyName: "inlineToolbar", first: true, predicate: ["inlineToolbar"], descendants: true }], ngImport: i0, template: `<the-toolbar
|
|
15927
16031
|
#inlineToolbar
|
|
15928
16032
|
class="the-inline-toolbar"
|
|
15929
16033
|
[editor]="editor"
|
|
@@ -15931,7 +16035,7 @@ class TheInlineToolbarComponent {
|
|
|
15931
16035
|
[isMore]="false"
|
|
15932
16036
|
></the-toolbar> `, isInline: true, dependencies: [{ kind: "component", type: TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15933
16037
|
}
|
|
15934
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
16038
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheInlineToolbarComponent, decorators: [{
|
|
15935
16039
|
type: Component,
|
|
15936
16040
|
args: [{
|
|
15937
16041
|
selector: 'the-inline-toolbar',
|
|
@@ -16052,10 +16156,10 @@ class TheQuickInsertComponent {
|
|
|
16052
16156
|
this.updateIconDisplay();
|
|
16053
16157
|
}, 100);
|
|
16054
16158
|
}
|
|
16055
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
16056
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
16159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheQuickInsertComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16160
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheQuickInsertComponent, selector: "[theQuickInsert]", inputs: { editor: "editor", isVisible: "isVisible" }, host: { listeners: { "mousedown": "handleMousedownNativeElement($event)" }, properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "iconElement", first: true, predicate: ["iconElement"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<thy-icon\n #iconElement\n [thyIconName]=\"displayIconName\"\n class=\"quick-insert-icon text-desc font-size-xlg\"\n (mouseenter)=\"mouseEnter($event)\"\n (mouseleave)=\"mouseLeave($event)\"\n (mousedown)=\"handleClick($event)\"\n></thy-icon>\n", dependencies: [{ kind: "component", type: i4.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
|
|
16057
16161
|
}
|
|
16058
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
16162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheQuickInsertComponent, decorators: [{
|
|
16059
16163
|
type: Component,
|
|
16060
16164
|
args: [{ selector: '[theQuickInsert]', template: "<thy-icon\n #iconElement\n [thyIconName]=\"displayIconName\"\n class=\"quick-insert-icon text-desc font-size-xlg\"\n (mouseenter)=\"mouseEnter($event)\"\n (mouseleave)=\"mouseLeave($event)\"\n (mousedown)=\"handleClick($event)\"\n></thy-icon>\n" }]
|
|
16061
16165
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { className: [{
|
|
@@ -16443,8 +16547,8 @@ class TheEditorComponent extends mixinUnsubscribe(MixinBase) {
|
|
|
16443
16547
|
text
|
|
16444
16548
|
};
|
|
16445
16549
|
}
|
|
16446
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
16447
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
16550
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheEditorComponent, deps: [{ token: i0.Injector }, { token: TheContextService }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i4.ThyIconRegistry }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16551
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheEditorComponent, selector: "the-editor, theEditor", inputs: { theOptions: "theOptions", thePlugins: "thePlugins", theGlobalToolbar: "theGlobalToolbar", theDecorate: "theDecorate", theOnError: "theOnError" }, outputs: { theOnSave: "theOnSave", theOnDOMEvent: "theOnDOMEvent", theEditorCreated: "theEditorCreated", theUploadingStatus: "theUploadingStatus" }, host: { properties: { "class.the-editor-readonly": "theOptions?.readonly", "class.the-mobile-editor": "isMobileMode" }, classAttribute: "the-editor" }, providers: [
|
|
16448
16552
|
TheContextService,
|
|
16449
16553
|
{
|
|
16450
16554
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -16453,7 +16557,7 @@ class TheEditorComponent extends mixinUnsubscribe(MixinBase) {
|
|
|
16453
16557
|
}
|
|
16454
16558
|
], viewQueries: [{ propertyName: "templateInstance", first: true, predicate: ["templateInstance"], descendants: true, static: true }, { propertyName: "theEditableContainer", first: true, predicate: ["theEditableContainer"], descendants: true, read: ElementRef, static: true }, { propertyName: "globalToolbarInstance", first: true, predicate: ["globalToolbar"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<the-toolbar\n *ngIf=\"!theOptions?.readonly && !theGlobalToolbar && !isMobileMode\"\n [ngClass]=\"{\n 'the-toolbar-disabled': theOptions?.disabled\n }\"\n #globalToolbar\n [editor]=\"editor\"\n [toolbarItems]=\"toolbarEntity.global\"\n [containerClass]=\"globalToolbarClass\"\n [align]=\"theOptions?.toolbar?.align\"\n></the-toolbar>\n\n<div\n #theEditableContainer\n class=\"the-editable-container\"\n thyImageGroup\n [ngClass]=\"{\n 'the-editor-disabled': theOptions?.disabled,\n 'max-height': maxHeight\n }\"\n [ngStyle]=\"{ 'max-height': maxHeight }\"\n>\n <slate-editable\n class=\"the-editor-typo\"\n [editor]=\"editor\"\n [ngModel]=\"editorValue\"\n (ngModelChange)=\"valueChange($event)\"\n [decorate]=\"decorate\"\n [placeholder]=\"theOptions?.placeholder\"\n [placeholderDecorate]=\"theOptions?.placeholderDecorate ? theOptions?.placeholderDecorate : null\"\n [renderElement]=\"renderElement\"\n [renderText]=\"renderText\"\n [renderLeaf]=\"renderLeaf\"\n [readonly]=\"theOptions?.readonly || theOptions?.disabled\"\n [keydown]=\"onKeyDown\"\n [click]=\"onClick\"\n [paste]=\"onSlaPaste\"\n [beforeInput]=\"onSlaBeforeInput\"\n [blur]=\"onSlaBlur\"\n [focus]=\"onSlaFocus\"\n [copy]=\"onSlaCopy\"\n [cut]=\"onSlaCut\"\n [isStrictDecorate]=\"false\"\n [compositionStart]=\"onSlaCompositionStart\"\n [compositionEnd]=\"onSlaCompositionEnd\"\n [dragStart]=\"onSlaDragStart\"\n [dragOver]=\"onSlaDragOver\"\n [drop]=\"onDrop\"\n (mousedown)=\"mousedown($event)\"\n [scrollSelectionIntoView]=\"scrollSelectionIntoView\"\n ></slate-editable>\n <ng-container *ngIf=\"!isMobileMode\">\n <the-inline-toolbar\n *ngIf=\"!theOptions?.readonly && theOptions?.inlineToolbarVisible\"\n [editor]=\"editor\"\n [toolbarItems]=\"toolbarEntity.inline\"\n ></the-inline-toolbar>\n <div *ngIf=\"!theOptions?.readonly\" theQuickInsert [editor]=\"editor\" [isVisible]=\"visibleQuickInsertPlus\"></div>\n </ng-container>\n\n <the-template #templateInstance></the-template>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i1.SlateEditable, selector: "slate-editable", inputs: ["editor", "renderElement", "renderLeaf", "renderText", "decorate", "placeholderDecorate", "scrollSelectionIntoView", "isStrictDecorate", "trackBy", "readonly", "placeholder", "beforeInput", "blur", "click", "compositionEnd", "compositionUpdate", "compositionStart", "copy", "cut", "dragOver", "dragStart", "dragEnd", "drop", "focus", "keydown", "paste", "spellCheck", "autoCorrect", "autoCapitalize"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$1.ThyImageGroupComponent, selector: "thy-image-group, [thyImageGroup]" }, { kind: "component", type: TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }, { kind: "component", type: TheInlineToolbarComponent, selector: "the-inline-toolbar", inputs: ["editor", "toolbarItems"] }, { kind: "component", type: TheQuickInsertComponent, selector: "[theQuickInsert]", inputs: ["editor", "isVisible"] }, { kind: "component", type: TheTemplateComponent, selector: "the-template,[theTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
16455
16559
|
}
|
|
16456
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
16560
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheEditorComponent, decorators: [{
|
|
16457
16561
|
type: Component,
|
|
16458
16562
|
args: [{ selector: 'the-editor, theEditor', providers: [
|
|
16459
16563
|
TheContextService,
|
|
@@ -16499,11 +16603,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImpor
|
|
|
16499
16603
|
const ENTRY_COMMON_COMPONENTS = [TheColumnResizeOverlayHandleComponent];
|
|
16500
16604
|
const DIRECTIVES = [TheColumnResizeDirective];
|
|
16501
16605
|
class TheColumnResizeCommonModule {
|
|
16502
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
16503
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.
|
|
16504
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.
|
|
16606
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheColumnResizeCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
16607
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.5", ngImport: i0, type: TheColumnResizeCommonModule, declarations: [TheColumnResizeOverlayHandleComponent], exports: [TheColumnResizeOverlayHandleComponent] }); }
|
|
16608
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheColumnResizeCommonModule }); }
|
|
16505
16609
|
}
|
|
16506
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
16610
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheColumnResizeCommonModule, decorators: [{
|
|
16507
16611
|
type: NgModule,
|
|
16508
16612
|
args: [{
|
|
16509
16613
|
declarations: ENTRY_COMMON_COMPONENTS,
|
|
@@ -16511,11 +16615,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImpor
|
|
|
16511
16615
|
}]
|
|
16512
16616
|
}] });
|
|
16513
16617
|
class TheColumnSizeModule {
|
|
16514
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
16515
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.
|
|
16516
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.
|
|
16618
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheColumnSizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
16619
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.5", ngImport: i0, type: TheColumnSizeModule, declarations: [TheColumnResizeDirective], imports: [OverlayModule, TheColumnResizeCommonModule], exports: [TheColumnResizeDirective] }); }
|
|
16620
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheColumnSizeModule, imports: [OverlayModule, TheColumnResizeCommonModule] }); }
|
|
16517
16621
|
}
|
|
16518
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
16622
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheColumnSizeModule, decorators: [{
|
|
16519
16623
|
type: NgModule,
|
|
16520
16624
|
args: [{
|
|
16521
16625
|
imports: [OverlayModule, TheColumnResizeCommonModule],
|
|
@@ -16596,8 +16700,8 @@ const PLUGIN_COMPONENTS = [
|
|
|
16596
16700
|
];
|
|
16597
16701
|
const PIPES = [ElementStylePipe, ElementClassPipe, TableFreezeColumnPipe, TableFreezeRowPipe, PluginMenuPipe];
|
|
16598
16702
|
class TheEditorModule {
|
|
16599
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
16600
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.
|
|
16703
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
16704
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.5", ngImport: i0, type: TheEditorModule, declarations: [TheEditorComponent, ElementStylePipe, ElementClassPipe, TableFreezeColumnPipe, TableFreezeRowPipe, PluginMenuPipe, TheToolbarComponent,
|
|
16601
16705
|
TheToolbarDropdownComponent,
|
|
16602
16706
|
TheToolbarGroupComponent,
|
|
16603
16707
|
TheToolbarItemComponent,
|
|
@@ -16668,7 +16772,7 @@ class TheEditorModule {
|
|
|
16668
16772
|
TheListboxGroupDirective,
|
|
16669
16773
|
TheListboxDirective,
|
|
16670
16774
|
ThePreventDefaultDirective] }); }
|
|
16671
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.
|
|
16775
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheEditorModule, providers: [
|
|
16672
16776
|
{
|
|
16673
16777
|
provide: TheToolbarGroupToken,
|
|
16674
16778
|
useValue: TheToolbarGroupComponent
|
|
@@ -16676,7 +16780,7 @@ class TheEditorModule {
|
|
|
16676
16780
|
THE_MODE_PROVIDER
|
|
16677
16781
|
], imports: [CommonModule, ScrollingModule, SlateModule, FormsModule, TETHYS, CodemirrorModule, TheColumnSizeModule] }); }
|
|
16678
16782
|
}
|
|
16679
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
16783
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheEditorModule, decorators: [{
|
|
16680
16784
|
type: NgModule,
|
|
16681
16785
|
args: [{
|
|
16682
16786
|
declarations: [TheEditorComponent, ...PIPES, ...COMPONENTS, ...PLUGIN_COMPONENTS],
|
|
@@ -16740,10 +16844,10 @@ class TheToolbarService {
|
|
|
16740
16844
|
return item;
|
|
16741
16845
|
});
|
|
16742
16846
|
}
|
|
16743
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
16744
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
16847
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheToolbarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
16848
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheToolbarService }); }
|
|
16745
16849
|
}
|
|
16746
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
16850
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheToolbarService, decorators: [{
|
|
16747
16851
|
type: Injectable
|
|
16748
16852
|
}] });
|
|
16749
16853
|
|