@worktile/theia 1.2.7 → 1.2.11
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/bundles/worktile-theia.umd.js +802 -162
- package/bundles/worktile-theia.umd.js.map +1 -1
- package/components/inline-toolbar/inline-toolbar.component.d.ts +24 -0
- package/components/inline-toolbar/inline-toolbar.component.scss +18 -0
- package/components/nav-split-line/nav-split-line.component.d.ts +6 -1
- package/components/toolbar-dropdown/toolbar-dropdown.component.scss +3 -0
- package/components/toolbar-item/toolbar-item.component.d.ts +14 -5
- package/constants/code.d.ts +7 -7
- package/constants/node-types.d.ts +0 -1
- package/constants/toolbar.d.ts +6 -2
- package/custom-types.d.ts +1 -0
- package/editor.component.d.ts +6 -4
- package/editor.module.d.ts +59 -52
- package/esm2015/components/color-select/color-select.component.js +3 -2
- package/esm2015/components/inline-toolbar/inline-toolbar.component.js +136 -0
- package/esm2015/components/nav-split-line/nav-split-line.component.js +26 -5
- package/esm2015/components/toolbar-base-item/toolbar-base-item.component.js +3 -2
- package/esm2015/components/toolbar-item/toolbar-item.component.js +70 -24
- package/esm2015/constants/code.js +7 -7
- package/esm2015/constants/node-types.js +1 -2
- package/esm2015/constants/toolbar.js +37 -5
- package/esm2015/custom-types.js +1 -1
- package/esm2015/editor.component.js +24 -19
- package/esm2015/editor.module.js +20 -8
- package/esm2015/interfaces/toolbar.js +1 -1
- package/esm2015/plugins/code/code.component.js +13 -8
- package/esm2015/plugins/common/auto-insert-data..js +2 -3
- package/esm2015/plugins/common/get-fragment.plugin.js +4 -4
- package/esm2015/plugins/deserializers/deserialize-html.plugin.js +8 -1
- package/esm2015/plugins/image/image.plugin.js +1 -2
- package/esm2015/plugins/index.js +8 -4
- package/esm2015/plugins/link/link.plugin.js +7 -2
- package/esm2015/plugins/list/list.plugin.js +9 -9
- package/esm2015/plugins/list/queries/get-start-list-item.js +9 -2
- package/esm2015/plugins/list/queries/is-selection-in-same-list-item.js +17 -0
- package/esm2015/plugins/node-id/node-id.plugin.js +7 -2
- package/esm2015/plugins/paint-format/options.js +54 -0
- package/esm2015/plugins/paint-format/paint-format.editor.js +67 -0
- package/esm2015/plugins/placeholder/placeholder.component.js +75 -0
- package/esm2015/plugins/public-api.js +2 -1
- package/esm2015/plugins/quick-insert/components/quick-insert.component.js +76 -0
- package/esm2015/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.js +75 -0
- package/esm2015/plugins/quick-insert/quick-insert.editor.js +61 -0
- package/esm2015/plugins/quick-insert/quick-insert.plugint.js +37 -0
- package/esm2015/plugins/table/components/row/row.component.js +3 -1
- package/esm2015/plugins/table/components/table.component.js +6 -3
- package/esm2015/plugins/table/components/td/td.component.js +2 -1
- package/esm2015/plugins/table/components/toolbar/table-toolbar.component.js +1 -1
- package/esm2015/plugins/table/table.plugin.js +3 -3
- package/esm2015/plugins/vertical-align/toolbar-item.component.js +11 -6
- package/esm2015/public-api.js +2 -1
- package/esm2015/services/context.service.js +2 -2
- package/esm2015/services/toolbar.service.js +5 -5
- package/esm2015/utils/auto-focus.js +2 -2
- package/esm2015/utils/fragment.js +3 -3
- package/esm2015/utils/is-clean-empty-paragraph.js +32 -0
- package/esm2015/utils/weak-maps.js +2 -1
- package/fesm2015/worktile-theia.js +778 -160
- package/fesm2015/worktile-theia.js.map +1 -1
- package/interfaces/toolbar.d.ts +3 -2
- package/package.json +1 -1
- package/plugins/code/code.component.d.ts +3 -2
- package/plugins/list/queries/get-start-list-item.d.ts +8 -2
- package/plugins/list/queries/is-selection-in-same-list-item.d.ts +5 -0
- package/plugins/paint-format/options.d.ts +2 -0
- package/plugins/paint-format/paint-format.editor.d.ts +7 -0
- package/{components → plugins}/placeholder/placeholder.component.d.ts +5 -6
- package/{components → plugins}/placeholder/placeholder.component.scss +0 -0
- package/plugins/public-api.d.ts +1 -0
- package/plugins/quick-insert/components/quick-insert.component.d.ts +25 -0
- package/plugins/quick-insert/components/quick-insert.component.scss +21 -0
- package/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.d.ts +29 -0
- package/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.scss +21 -0
- package/plugins/quick-insert/quick-insert.editor.d.ts +8 -0
- package/plugins/quick-insert/quick-insert.plugint.d.ts +2 -0
- package/plugins/table/components/table.component.d.ts +1 -0
- package/plugins/vertical-align/toolbar-item.component.d.ts +1 -0
- package/public-api.d.ts +1 -0
- package/services/toolbar.service.d.ts +1 -1
- package/styles/editor.scss +41 -15
- package/styles/index.scss +5 -2
- package/utils/is-clean-empty-paragraph.d.ts +8 -0
- package/utils/weak-maps.d.ts +1 -0
- package/esm2015/components/placeholder/placeholder.component.js +0 -88
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Component, ElementRef, Input, HostListener, ViewChild } from '@angular/core';
|
|
2
|
+
import { Node } from 'slate';
|
|
3
|
+
import { AngularEditor } from 'slate-angular';
|
|
4
|
+
import { isCleanEmptyParagraph } from '../../../utils/is-clean-empty-paragraph';
|
|
5
|
+
import { QuickInsertEditor } from '../quick-insert.editor';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "ngx-tethys/icon";
|
|
8
|
+
export class TheQuickInsertComponent {
|
|
9
|
+
constructor(renderer, elementRef, cdr) {
|
|
10
|
+
this.renderer = renderer;
|
|
11
|
+
this.elementRef = elementRef;
|
|
12
|
+
this.cdr = cdr;
|
|
13
|
+
this.isHide = true;
|
|
14
|
+
this.defaultIconName = 'plus-circle-thin';
|
|
15
|
+
this.iconNameFill = 'plus-circle-thin-fill';
|
|
16
|
+
this.displayIconName = this.defaultIconName;
|
|
17
|
+
}
|
|
18
|
+
handleMousedownNativeElement(event) {
|
|
19
|
+
event.preventDefault();
|
|
20
|
+
event.stopPropagation();
|
|
21
|
+
}
|
|
22
|
+
checkStatus() {
|
|
23
|
+
var _a;
|
|
24
|
+
const { editor } = this;
|
|
25
|
+
if (isCleanEmptyParagraph(editor)) {
|
|
26
|
+
const block = Node.ancestor(editor, [(_a = editor === null || editor === void 0 ? void 0 : editor.selection) === null || _a === void 0 ? void 0 : _a.anchor.path[0]]);
|
|
27
|
+
const rootNode = AngularEditor.toDOMNode(editor, block);
|
|
28
|
+
this.isHide = false;
|
|
29
|
+
this.updatePosition(rootNode.offsetLeft, rootNode.offsetTop);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.isHide = true;
|
|
33
|
+
}
|
|
34
|
+
updatePosition(left, top) {
|
|
35
|
+
this.isHide = false;
|
|
36
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'top', `${top}px`);
|
|
37
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'left', `${left}px`);
|
|
38
|
+
}
|
|
39
|
+
mouseEnter(event) {
|
|
40
|
+
this.displayIconName = this.iconNameFill;
|
|
41
|
+
this.cdr.markForCheck();
|
|
42
|
+
}
|
|
43
|
+
mouseLeave(event) {
|
|
44
|
+
this.displayIconName = this.defaultIconName;
|
|
45
|
+
this.cdr.markForCheck();
|
|
46
|
+
}
|
|
47
|
+
handleClick(event) {
|
|
48
|
+
event.stopPropagation();
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
QuickInsertEditor.openQuickToolbar(this.editor, this.quickToolbarItems, this.iconElement.nativeElement);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
TheQuickInsertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: TheQuickInsertComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
54
|
+
TheQuickInsertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: TheQuickInsertComponent, selector: "[theQuickInsert]", inputs: { editor: "editor", quickToolbarItems: "quickToolbarItems" }, host: { listeners: { "mousedown": "handleMousedownNativeElement($event)" }, properties: { "class.hide": "isHide" }, classAttribute: "the-quick-insert" }, viewQueries: [{ propertyName: "iconElement", first: true, predicate: ["iconElement"], descendants: true, read: ElementRef }], 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", components: [{ type: i1.ThyIconComponent, selector: "thy-icon", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] });
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: TheQuickInsertComponent, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{
|
|
58
|
+
selector: '[theQuickInsert]',
|
|
59
|
+
templateUrl: './quick-insert.component.html',
|
|
60
|
+
host: {
|
|
61
|
+
class: 'the-quick-insert',
|
|
62
|
+
'[class.hide]': 'isHide'
|
|
63
|
+
}
|
|
64
|
+
}]
|
|
65
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { editor: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], quickToolbarItems: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], iconElement: [{
|
|
70
|
+
type: ViewChild,
|
|
71
|
+
args: ['iconElement', { read: ElementRef, static: false }]
|
|
72
|
+
}], handleMousedownNativeElement: [{
|
|
73
|
+
type: HostListener,
|
|
74
|
+
args: ['mousedown', ['$event']]
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2staW5zZXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3F1aWNrLWluc2VydC9jb21wb25lbnRzL3F1aWNrLWluc2VydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9xdWljay1pbnNlcnQvY29tcG9uZW50cy9xdWljay1pbnNlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBZ0MsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBVSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBVTNELE1BQU0sT0FBTyx1QkFBdUI7SUFrQmhDLFlBQW9CLFFBQW1CLEVBQVUsVUFBc0IsRUFBVSxHQUFzQjtRQUFuRixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBZHZHLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxvQkFBZSxHQUFHLGtCQUFrQixDQUFDO1FBQ3JDLGlCQUFZLEdBQUcsdUJBQXVCLENBQUM7UUFDdkMsb0JBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBV21FLENBQUM7SUFMM0csNEJBQTRCLENBQUMsS0FBSztRQUM5QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFJTSxXQUFXOztRQUNkLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFNBQVMsMENBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekUsTUFBTSxRQUFRLEdBQWdCLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXJFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0QsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFZLEVBQUUsR0FBWTtRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFpQjtRQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWlCO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBaUI7UUFDekIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVHLENBQUM7O29IQXJEUSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwrV0FTRSxVQUFVLDZCQ3hCaEQsd1FBUUE7MkZET2EsdUJBQXVCO2tCQVJuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFdBQVcsRUFBRSwrQkFBK0I7b0JBQzVDLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsa0JBQWtCO3dCQUN6QixjQUFjLEVBQUUsUUFBUTtxQkFDM0I7aUJBQ0o7eUpBRVksTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFRTixXQUFXO3NCQURWLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUk3RCw0QkFBNEI7c0JBRDNCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgSG9zdExpc3RlbmVyLCBSZW5kZXJlcjIsIENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkaXRvciwgTm9kZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IFRvb2xiYXJJdGVtIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy90b29sYmFyJztcbmltcG9ydCB7IGlzQ2xlYW5FbXB0eVBhcmFncmFwaCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2lzLWNsZWFuLWVtcHR5LXBhcmFncmFwaCc7XG5pbXBvcnQgeyBRdWlja0luc2VydEVkaXRvciB9IGZyb20gJy4uL3F1aWNrLWluc2VydC5lZGl0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t0aGVRdWlja0luc2VydF0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9xdWljay1pbnNlcnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aGUtcXVpY2staW5zZXJ0JyxcbiAgICAgICAgJ1tjbGFzcy5oaWRlXSc6ICdpc0hpZGUnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUaGVRdWlja0luc2VydENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgZWRpdG9yOiBFZGl0b3I7XG4gICAgQElucHV0KCkgcXVpY2tUb29sYmFySXRlbXM6IFRvb2xiYXJJdGVtW107XG5cbiAgICBpc0hpZGUgPSB0cnVlO1xuICAgIGRlZmF1bHRJY29uTmFtZSA9ICdwbHVzLWNpcmNsZS10aGluJztcbiAgICBpY29uTmFtZUZpbGwgPSAncGx1cy1jaXJjbGUtdGhpbi1maWxsJztcbiAgICBkaXNwbGF5SWNvbk5hbWUgPSB0aGlzLmRlZmF1bHRJY29uTmFtZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2ljb25FbGVtZW50JywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gICAgaWNvbkVsZW1lbnQ6IEVsZW1lbnRSZWY8YW55PjtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlTW91c2Vkb3duTmF0aXZlRWxlbWVudChldmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgcHVibGljIGNoZWNrU3RhdHVzKCkge1xuICAgICAgICBjb25zdCB7IGVkaXRvciB9ID0gdGhpcztcbiAgICAgICAgaWYgKGlzQ2xlYW5FbXB0eVBhcmFncmFwaChlZGl0b3IpKSB7XG4gICAgICAgICAgICBjb25zdCBibG9jayA9IE5vZGUuYW5jZXN0b3IoZWRpdG9yLCBbZWRpdG9yPy5zZWxlY3Rpb24/LmFuY2hvci5wYXRoWzBdXSk7XG4gICAgICAgICAgICBjb25zdCByb290Tm9kZTogSFRNTEVsZW1lbnQgPSBBbmd1bGFyRWRpdG9yLnRvRE9NTm9kZShlZGl0b3IsIGJsb2NrKTtcblxuICAgICAgICAgICAgdGhpcy5pc0hpZGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24ocm9vdE5vZGUub2Zmc2V0TGVmdCwgcm9vdE5vZGUub2Zmc2V0VG9wKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzSGlkZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQb3NpdGlvbihsZWZ0OiBudW1iZXIsIHRvcD86IG51bWJlcikge1xuICAgICAgICB0aGlzLmlzSGlkZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndG9wJywgYCR7dG9wfXB4YCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7bGVmdH1weGApO1xuICAgIH1cblxuICAgIG1vdXNlRW50ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5SWNvbk5hbWUgPSB0aGlzLmljb25OYW1lRmlsbDtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgbW91c2VMZWF2ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmRpc3BsYXlJY29uTmFtZSA9IHRoaXMuZGVmYXVsdEljb25OYW1lO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgUXVpY2tJbnNlcnRFZGl0b3Iub3BlblF1aWNrVG9vbGJhcih0aGlzLmVkaXRvciwgdGhpcy5xdWlja1Rvb2xiYXJJdGVtcywgdGhpcy5pY29uRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG59XG4iLCI8dGh5LWljb25cbiAgICAjaWNvbkVsZW1lbnRcbiAgICBbdGh5SWNvbk5hbWVdPVwiZGlzcGxheUljb25OYW1lXCJcbiAgICBjbGFzcz1cInF1aWNrLWluc2VydC1pY29uIHRleHQtZGVzYyBmb250LXNpemUteGxnXCJcbiAgICAobW91c2VlbnRlcik9XCJtb3VzZUVudGVyKCRldmVudClcIlxuICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlTGVhdmUoJGV2ZW50KVwiXG4gICAgKG1vdXNlZG93bik9XCJoYW5kbGVDbGljaygkZXZlbnQpXCJcbj48L3RoeS1pY29uPlxuIl19
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Component, Input, HostListener } from '@angular/core';
|
|
2
|
+
import { mixinUnsubscribe, MixinBase } from 'ngx-tethys/core';
|
|
3
|
+
import { Editor, Text, Node } from 'slate';
|
|
4
|
+
import { AngularEditor } from 'slate-angular';
|
|
5
|
+
import { ToolbarActionTypes } from '../../../../constants/node-types';
|
|
6
|
+
import { QUICK_TOOLBAR_HOTKEY, ToolbarItemMode } from '../../../../constants/toolbar';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "ngx-tethys/popover";
|
|
9
|
+
import * as i2 from "ngx-tethys/list";
|
|
10
|
+
import * as i3 from "ngx-tethys/shared";
|
|
11
|
+
import * as i4 from "../../../../components/toolbar-item/toolbar-item.component";
|
|
12
|
+
import * as i5 from "../../../../components/nav-split-line/nav-split-line.component";
|
|
13
|
+
import * as i6 from "@angular/common";
|
|
14
|
+
export class TheQuickToolbarComponent extends mixinUnsubscribe(MixinBase) {
|
|
15
|
+
constructor(popoverRef, elementRef) {
|
|
16
|
+
super();
|
|
17
|
+
this.popoverRef = popoverRef;
|
|
18
|
+
this.elementRef = elementRef;
|
|
19
|
+
this.ToolbarItemMode = ToolbarItemMode;
|
|
20
|
+
this.ToolbarActionTypes = ToolbarActionTypes;
|
|
21
|
+
}
|
|
22
|
+
handleMouseDown(event) {
|
|
23
|
+
if (!this.elementRef.nativeElement.contains(event.target)) {
|
|
24
|
+
this.popoverRef.close();
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
event.preventDefault();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
handleEnter() {
|
|
31
|
+
this.popoverRef.close();
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
this.editorElement = AngularEditor.toDOMNode(this.editor, this.editor);
|
|
35
|
+
}
|
|
36
|
+
stopPropagation(event) {
|
|
37
|
+
event.preventDefault();
|
|
38
|
+
}
|
|
39
|
+
selectionChange(event) {
|
|
40
|
+
this.removeHotKey();
|
|
41
|
+
const toolbarItem = this.quickToolbarItems.find(item => item.key === event.value);
|
|
42
|
+
if (toolbarItem === null || toolbarItem === void 0 ? void 0 : toolbarItem.execute) {
|
|
43
|
+
toolbarItem.execute(this.editor);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
removeHotKey() {
|
|
47
|
+
const node = Node.get(this.editor, this.editor.selection.anchor.path);
|
|
48
|
+
if (node && Text.equals({ text: QUICK_TOOLBAR_HOTKEY }, node)) {
|
|
49
|
+
Editor.deleteBackward(this.editor);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
ngOnDestroy() {
|
|
53
|
+
super.ngOnDestroy();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
TheQuickToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: TheQuickToolbarComponent, deps: [{ token: i1.ThyPopoverRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
57
|
+
TheQuickToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: TheQuickToolbarComponent, selector: "the-quick-toolbar", inputs: { editor: "editor", quickToolbarItems: "quickToolbarItems" }, host: { listeners: { "document: mousedown": "handleMouseDown($event)", "document: keydown.enter": "handleEnter()" } }, usesInheritance: true, ngImport: i0, template: "<thy-selection-list\n class=\"the-quick-toolbar\"\n [thyBindKeyEventContainer]=\"editorElement\"\n (thySelectionChange)=\"selectionChange($event)\"\n [thyMultiple]=\"false\"\n>\n <ng-container *ngFor=\"let item of quickToolbarItems\">\n <ng-container *ngIf=\"item.key !== ToolbarActionTypes.split; else splitLine\">\n <thy-list-option [thyValue]=\"item?.key\" (mousedown)=\"stopPropagation($event)\">\n <the-toolbar-item [editor]=\"editor\" [item]=\"item\" [itemMode]=\"ToolbarItemMode.vertical\"></the-toolbar-item>\n </thy-list-option>\n </ng-container>\n </ng-container>\n</thy-selection-list>\n\n<ng-template #splitLine>\n <nav-split-line [mode]=\"ToolbarItemMode.horizontal\"></nav-split-line>\n</ng-template>\n", components: [{ type: i2.ThySelectionListComponent, selector: "thy-selection-list,[thy-selection-list]", inputs: ["thyMultiple", "thyBindKeyEventContainer", "thyScrollContainer", "thyBeforeKeydown", "thyUniqueKey", "thyCompareWith", "thyLayout", "thyAutoActiveFirstItem", "thySize", "thySpaceKeyEnabled"], outputs: ["thySelectionChange"] }, { type: i3.ThyListOptionComponent, selector: "thy-list-option,[thy-list-option]", inputs: ["id", "thyValue", "thyDisabled"] }, { type: i4.TheToolbarItemComponent, selector: "the-toolbar-item", inputs: ["item", "editor", "itemMode"] }, { type: i5.NavSplitLineComponent, selector: "nav-split-line", inputs: ["mode"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: TheQuickToolbarComponent, decorators: [{
|
|
59
|
+
type: Component,
|
|
60
|
+
args: [{
|
|
61
|
+
selector: 'the-quick-toolbar',
|
|
62
|
+
templateUrl: 'quick-toolbar.component.html'
|
|
63
|
+
}]
|
|
64
|
+
}], ctorParameters: function () { return [{ type: i1.ThyPopoverRef }, { type: i0.ElementRef }]; }, propDecorators: { editor: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], quickToolbarItems: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], handleMouseDown: [{
|
|
69
|
+
type: HostListener,
|
|
70
|
+
args: ['document: mousedown', ['$event']]
|
|
71
|
+
}], handleEnter: [{
|
|
72
|
+
type: HostListener,
|
|
73
|
+
args: ['document: keydown.enter']
|
|
74
|
+
}] } });
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9xdWljay1pbnNlcnQvY29tcG9uZW50cy9xdWljay10b29sYmFyL3F1aWNrLXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvcXVpY2staW5zZXJ0L2NvbXBvbmVudHMvcXVpY2stdG9vbGJhci9xdWljay10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFlBQVksRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTlELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7QUFNdEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztJQXNCckUsWUFBb0IsVUFBbUQsRUFBUyxVQUFzQjtRQUNsRyxLQUFLLEVBQUUsQ0FBQztRQURRLGVBQVUsR0FBVixVQUFVLENBQXlDO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWpCdEcsb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFDbEMsdUJBQWtCLEdBQUcsa0JBQWtCLENBQUM7SUFrQnhDLENBQUM7SUFmRCxlQUFlLENBQUMsS0FBaUI7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBcUIsQ0FBQyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDM0I7YUFBTTtZQUNILEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFHRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBTUQsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQUs7UUFDakIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBSztRQUNqQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xGLElBQUksV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLE9BQU8sRUFBRTtZQUN0QixXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNwQztJQUNMLENBQUM7SUFFRCxZQUFZO1FBQ1IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQVMsQ0FBQztRQUM5RSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDM0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdEM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOztxSEFuRFEsd0JBQXdCO3lHQUF4Qix3QkFBd0IsNlFDYnJDLHN4QkFrQkE7MkZETGEsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSw4QkFBOEI7aUJBQzlDOzZIQUVZLE1BQU07c0JBQWQsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVUvQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWl4aW5VbnN1YnNjcmliZSwgTWl4aW5CYXNlIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeVBvcG92ZXJSZWYgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgRWRpdG9yLCBUZXh0LCBOb2RlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgVG9vbGJhckl0ZW0gfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL3Rvb2xiYXInO1xuaW1wb3J0IHsgVG9vbGJhckFjdGlvblR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29uc3RhbnRzL25vZGUtdHlwZXMnO1xuaW1wb3J0IHsgUVVJQ0tfVE9PTEJBUl9IT1RLRVksIFRvb2xiYXJJdGVtTW9kZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50cy90b29sYmFyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aGUtcXVpY2stdG9vbGJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICdxdWljay10b29sYmFyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUaGVRdWlja1Rvb2xiYXJDb21wb25lbnQgZXh0ZW5kcyBtaXhpblVuc3Vic2NyaWJlKE1peGluQmFzZSkgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgZWRpdG9yOiBFZGl0b3I7XG4gICAgQElucHV0KCkgcXVpY2tUb29sYmFySXRlbXM6IFRvb2xiYXJJdGVtW107XG5cbiAgICBlZGl0b3JFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICBUb29sYmFySXRlbU1vZGUgPSBUb29sYmFySXRlbU1vZGU7XG4gICAgVG9vbGJhckFjdGlvblR5cGVzID0gVG9vbGJhckFjdGlvblR5cGVzO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6IG1vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6IGtleWRvd24uZW50ZXInKVxuICAgIGhhbmRsZUVudGVyKCkge1xuICAgICAgICB0aGlzLnBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBvcG92ZXJSZWY6IFRoeVBvcG92ZXJSZWY8VGhlUXVpY2tUb29sYmFyQ29tcG9uZW50PiwgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5lZGl0b3JFbGVtZW50ID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUodGhpcy5lZGl0b3IsIHRoaXMuZWRpdG9yKTtcbiAgICB9XG5cbiAgICBzdG9wUHJvcGFnYXRpb24oZXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBzZWxlY3Rpb25DaGFuZ2UoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVIb3RLZXkoKTtcbiAgICAgICAgY29uc3QgdG9vbGJhckl0ZW0gPSB0aGlzLnF1aWNrVG9vbGJhckl0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmtleSA9PT0gZXZlbnQudmFsdWUpO1xuICAgICAgICBpZiAodG9vbGJhckl0ZW0/LmV4ZWN1dGUpIHtcbiAgICAgICAgICAgIHRvb2xiYXJJdGVtLmV4ZWN1dGUodGhpcy5lZGl0b3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVtb3ZlSG90S2V5KCkge1xuICAgICAgICBjb25zdCBub2RlID0gTm9kZS5nZXQodGhpcy5lZGl0b3IsIHRoaXMuZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IucGF0aCkgYXMgVGV4dDtcbiAgICAgICAgaWYgKG5vZGUgJiYgVGV4dC5lcXVhbHMoeyB0ZXh0OiBRVUlDS19UT09MQkFSX0hPVEtFWSB9LCBub2RlKSkge1xuICAgICAgICAgICAgRWRpdG9yLmRlbGV0ZUJhY2t3YXJkKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjx0aHktc2VsZWN0aW9uLWxpc3RcbiAgICBjbGFzcz1cInRoZS1xdWljay10b29sYmFyXCJcbiAgICBbdGh5QmluZEtleUV2ZW50Q29udGFpbmVyXT1cImVkaXRvckVsZW1lbnRcIlxuICAgICh0aHlTZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgIFt0aHlNdWx0aXBsZV09XCJmYWxzZVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWlja1Rvb2xiYXJJdGVtc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5rZXkgIT09IFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdDsgZWxzZSBzcGxpdExpbmVcIj5cbiAgICAgICAgICAgIDx0aHktbGlzdC1vcHRpb24gW3RoeVZhbHVlXT1cIml0ZW0/LmtleVwiIChtb3VzZWRvd24pPVwic3RvcFByb3BhZ2F0aW9uKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8dGhlLXRvb2xiYXItaXRlbSBbZWRpdG9yXT1cImVkaXRvclwiIFtpdGVtXT1cIml0ZW1cIiBbaXRlbU1vZGVdPVwiVG9vbGJhckl0ZW1Nb2RlLnZlcnRpY2FsXCI+PC90aGUtdG9vbGJhci1pdGVtPlxuICAgICAgICAgICAgPC90aHktbGlzdC1vcHRpb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC90aHktc2VsZWN0aW9uLWxpc3Q+XG5cbjxuZy10ZW1wbGF0ZSAjc3BsaXRMaW5lPlxuICAgIDxuYXYtc3BsaXQtbGluZSBbbW9kZV09XCJUb29sYmFySXRlbU1vZGUuaG9yaXpvbnRhbFwiPjwvbmF2LXNwbGl0LWxpbmU+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
2
|
+
import { ViewContainerRef } from '@angular/core';
|
|
3
|
+
import { ThyPopover } from 'ngx-tethys/popover';
|
|
4
|
+
import { Node, Range } from 'slate';
|
|
5
|
+
import { THE_EDITOR_QUICK_TOOLBAR_REF } from '../../utils/weak-maps';
|
|
6
|
+
import { TheQuickToolbarComponent } from './components/quick-toolbar/quick-toolbar.component';
|
|
7
|
+
import { TheEditor } from '../../interfaces/editor';
|
|
8
|
+
import { ElementKinds } from '../../constants/node-types';
|
|
9
|
+
import { QUICK_TOOLBAR_HOTKEY } from '../../constants/toolbar';
|
|
10
|
+
const OperationTypes = ['insert_text', 'remove_node', 'merge_node'];
|
|
11
|
+
export const QuickInsertEditor = {
|
|
12
|
+
openQuickToolbar(editor, toolbarItems, origin) {
|
|
13
|
+
const overlay = editor.injector.get(Overlay);
|
|
14
|
+
const viewContainerRef = editor.injector.get(ViewContainerRef);
|
|
15
|
+
const thyPopover = editor.injector.get(ThyPopover);
|
|
16
|
+
const quickToolbarRef = thyPopover.open(TheQuickToolbarComponent, {
|
|
17
|
+
initialState: {
|
|
18
|
+
editor,
|
|
19
|
+
quickToolbarItems: toolbarItems
|
|
20
|
+
},
|
|
21
|
+
origin,
|
|
22
|
+
viewContainerRef: viewContainerRef,
|
|
23
|
+
backdropClosable: true,
|
|
24
|
+
placement: 'bottomLeft',
|
|
25
|
+
offset: 4,
|
|
26
|
+
hasBackdrop: false,
|
|
27
|
+
insideClosable: true,
|
|
28
|
+
panelClass: 'the-quick-toolbar-container',
|
|
29
|
+
scrollStrategy: overlay.scrollStrategies.reposition(),
|
|
30
|
+
manualClosure: true
|
|
31
|
+
});
|
|
32
|
+
THE_EDITOR_QUICK_TOOLBAR_REF.set(editor, quickToolbarRef);
|
|
33
|
+
},
|
|
34
|
+
closeQuickToolbar(editor) {
|
|
35
|
+
const quickToolbarRef = THE_EDITOR_QUICK_TOOLBAR_REF.get(editor);
|
|
36
|
+
if (quickToolbarRef) {
|
|
37
|
+
quickToolbarRef.close();
|
|
38
|
+
THE_EDITOR_QUICK_TOOLBAR_REF.set(editor, null);
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
isOpenToolbar(editor, opTypes = OperationTypes) {
|
|
42
|
+
const isCollapsedCursor = TheEditor.isFocused(editor) && editor.selection && Range.isCollapsed(editor.selection);
|
|
43
|
+
if (!isCollapsedCursor) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
const block = Node.ancestor(editor, [editor.selection.anchor.path[0]]);
|
|
47
|
+
const { undos } = editor.history;
|
|
48
|
+
const lastBatch = undos[undos.length - 1];
|
|
49
|
+
const lastOp = lastBatch && lastBatch[lastBatch.length - 1];
|
|
50
|
+
if (lastOp &&
|
|
51
|
+
block.children.length === 1 &&
|
|
52
|
+
block.type === ElementKinds.paragraph &&
|
|
53
|
+
Node.string(block) === QUICK_TOOLBAR_HOTKEY &&
|
|
54
|
+
opTypes.includes(lastOp.type) &&
|
|
55
|
+
(lastOp.text === QUICK_TOOLBAR_HOTKEY || lastOp.text === undefined)) {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2staW5zZXJ0LmVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3F1aWNrLWluc2VydC9xdWljay1pbnNlcnQuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQWMsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBVSxJQUFJLEVBQVcsS0FBSyxFQUF1QixNQUFNLE9BQU8sQ0FBQztBQUMxRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRy9ELE1BQU0sY0FBYyxHQUFHLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUVwRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUM3QixnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsWUFBMkIsRUFBRSxNQUFnQztRQUMxRixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkQsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUM5RCxZQUFZLEVBQUU7Z0JBQ1YsTUFBTTtnQkFDTixpQkFBaUIsRUFBRSxZQUFZO2FBQ2xDO1lBQ0QsTUFBTTtZQUNOLGdCQUFnQixFQUFFLGdCQUFnQjtZQUNsQyxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLE1BQU0sRUFBRSxDQUFDO1lBQ1QsV0FBVyxFQUFFLEtBQUs7WUFDbEIsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLDZCQUE2QjtZQUN6QyxjQUFjLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRTtZQUNyRCxhQUFhLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7UUFDSCw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxNQUFjO1FBQzVCLE1BQU0sZUFBZSxHQUFHLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRSxJQUFJLGVBQWUsRUFBRTtZQUNqQixlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEIsNEJBQTRCLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNsRDtJQUNMLENBQUM7SUFDRCxhQUFhLENBQUMsTUFBYyxFQUFFLE9BQU8sR0FBRyxjQUFjO1FBQ2xELE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpILElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNwQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQVksQ0FBQztRQUNsRixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNqQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxTQUFTLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFNUQsSUFDSSxNQUFNO1lBQ04sS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUMzQixLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxTQUFTO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssb0JBQW9CO1lBQzNDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUM3QixDQUFFLE1BQThCLENBQUMsSUFBSSxLQUFLLG9CQUFvQixJQUFLLE1BQThCLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxFQUN2SDtZQUNFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IEVkaXRvciwgTm9kZSwgRWxlbWVudCwgUmFuZ2UsIEluc2VydFRleHRPcGVyYXRpb24gfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBUSEVfRURJVE9SX1FVSUNLX1RPT0xCQVJfUkVGIH0gZnJvbSAnLi4vLi4vdXRpbHMvd2Vhay1tYXBzJztcbmltcG9ydCB7IFRoZVF1aWNrVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWljay10b29sYmFyL3F1aWNrLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUVkaXRvciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWRpdG9yJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcbmltcG9ydCB7IFFVSUNLX1RPT0xCQVJfSE9US0VZIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3Rvb2xiYXInO1xuaW1wb3J0IHsgVG9vbGJhckl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3Rvb2xiYXInO1xuXG5jb25zdCBPcGVyYXRpb25UeXBlcyA9IFsnaW5zZXJ0X3RleHQnLCAncmVtb3ZlX25vZGUnLCAnbWVyZ2Vfbm9kZSddO1xuXG5leHBvcnQgY29uc3QgUXVpY2tJbnNlcnRFZGl0b3IgPSB7XG4gICAgb3BlblF1aWNrVG9vbGJhcihlZGl0b3I6IEVkaXRvciwgdG9vbGJhckl0ZW1zOiBUb29sYmFySXRlbVtdLCBvcmlnaW46IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZikge1xuICAgICAgICBjb25zdCBvdmVybGF5ID0gZWRpdG9yLmluamVjdG9yLmdldChPdmVybGF5KTtcbiAgICAgICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IGVkaXRvci5pbmplY3Rvci5nZXQoVmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIGNvbnN0IHRoeVBvcG92ZXIgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFRoeVBvcG92ZXIpO1xuXG4gICAgICAgIGNvbnN0IHF1aWNrVG9vbGJhclJlZiA9IHRoeVBvcG92ZXIub3BlbihUaGVRdWlja1Rvb2xiYXJDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICBxdWlja1Rvb2xiYXJJdGVtczogdG9vbGJhckl0ZW1zXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3JpZ2luLFxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZjogdmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b21MZWZ0JyxcbiAgICAgICAgICAgIG9mZnNldDogNCxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICAgIGluc2lkZUNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogJ3RoZS1xdWljay10b29sYmFyLWNvbnRhaW5lcicsXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICAgICAgICAgIG1hbnVhbENsb3N1cmU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIFRIRV9FRElUT1JfUVVJQ0tfVE9PTEJBUl9SRUYuc2V0KGVkaXRvciwgcXVpY2tUb29sYmFyUmVmKTtcbiAgICB9LFxuICAgIGNsb3NlUXVpY2tUb29sYmFyKGVkaXRvcjogRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IHF1aWNrVG9vbGJhclJlZiA9IFRIRV9FRElUT1JfUVVJQ0tfVE9PTEJBUl9SRUYuZ2V0KGVkaXRvcik7XG4gICAgICAgIGlmIChxdWlja1Rvb2xiYXJSZWYpIHtcbiAgICAgICAgICAgIHF1aWNrVG9vbGJhclJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgVEhFX0VESVRPUl9RVUlDS19UT09MQkFSX1JFRi5zZXQoZWRpdG9yLCBudWxsKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgaXNPcGVuVG9vbGJhcihlZGl0b3I6IEVkaXRvciwgb3BUeXBlcyA9IE9wZXJhdGlvblR5cGVzKSB7XG4gICAgICAgIGNvbnN0IGlzQ29sbGFwc2VkQ3Vyc29yID0gVGhlRWRpdG9yLmlzRm9jdXNlZChlZGl0b3IpICYmIGVkaXRvci5zZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQoZWRpdG9yLnNlbGVjdGlvbik7XG5cbiAgICAgICAgaWYgKCFpc0NvbGxhcHNlZEN1cnNvcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYmxvY2sgPSBOb2RlLmFuY2VzdG9yKGVkaXRvciwgW2VkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGhbMF1dKSBhcyBFbGVtZW50O1xuICAgICAgICBjb25zdCB7IHVuZG9zIH0gPSBlZGl0b3IuaGlzdG9yeTtcbiAgICAgICAgY29uc3QgbGFzdEJhdGNoID0gdW5kb3NbdW5kb3MubGVuZ3RoIC0gMV07XG4gICAgICAgIGNvbnN0IGxhc3RPcCA9IGxhc3RCYXRjaCAmJiBsYXN0QmF0Y2hbbGFzdEJhdGNoLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGxhc3RPcCAmJlxuICAgICAgICAgICAgYmxvY2suY2hpbGRyZW4ubGVuZ3RoID09PSAxICYmXG4gICAgICAgICAgICBibG9jay50eXBlID09PSBFbGVtZW50S2luZHMucGFyYWdyYXBoICYmXG4gICAgICAgICAgICBOb2RlLnN0cmluZyhibG9jaykgPT09IFFVSUNLX1RPT0xCQVJfSE9US0VZICYmXG4gICAgICAgICAgICBvcFR5cGVzLmluY2x1ZGVzKGxhc3RPcC50eXBlKSAmJlxuICAgICAgICAgICAgKChsYXN0T3AgYXMgSW5zZXJ0VGV4dE9wZXJhdGlvbikudGV4dCA9PT0gUVVJQ0tfVE9PTEJBUl9IT1RLRVkgfHwgKGxhc3RPcCBhcyBJbnNlcnRUZXh0T3BlcmF0aW9uKS50ZXh0ID09PSB1bmRlZmluZWQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn07XG4iXX0=
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Node } from 'slate';
|
|
2
|
+
import { AngularEditor } from 'slate-angular';
|
|
3
|
+
import { TheEditorComponent } from '../../editor.component';
|
|
4
|
+
import { QUICK_TOOLBAR_HOTKEY } from '../../constants';
|
|
5
|
+
import { isCleanEmptyParagraph } from '../../utils/is-clean-empty-paragraph';
|
|
6
|
+
import { QuickInsertEditor } from './quick-insert.editor';
|
|
7
|
+
export const withQuickInsert = (editor) => {
|
|
8
|
+
const { onKeydown, deleteBackward, onChange } = editor;
|
|
9
|
+
editor.onKeydown = (event) => {
|
|
10
|
+
if (event.key === QUICK_TOOLBAR_HOTKEY && isCleanEmptyParagraph(editor)) {
|
|
11
|
+
const rootNode = AngularEditor.toDOMNode(editor, Node.ancestor(editor, [editor.selection.anchor.path[0]]));
|
|
12
|
+
const theEditorComponent = editor.injector.get(TheEditorComponent);
|
|
13
|
+
const quickToolbars = theEditorComponent.quickToolbarItems;
|
|
14
|
+
QuickInsertEditor.openQuickToolbar(editor, quickToolbars, rootNode);
|
|
15
|
+
}
|
|
16
|
+
onKeydown(event);
|
|
17
|
+
};
|
|
18
|
+
editor.deleteBackward = unit => {
|
|
19
|
+
if (!QuickInsertEditor.isOpenToolbar(editor, ['remove_text'])) {
|
|
20
|
+
QuickInsertEditor.closeQuickToolbar(editor);
|
|
21
|
+
}
|
|
22
|
+
deleteBackward(unit);
|
|
23
|
+
};
|
|
24
|
+
editor.onChange = () => {
|
|
25
|
+
onChange();
|
|
26
|
+
if (editor.selection) {
|
|
27
|
+
const editorComponent = editor.injector.get(TheEditorComponent);
|
|
28
|
+
editorComponent.quickInsertInstance.checkStatus();
|
|
29
|
+
const block = Node.ancestor(editor, [editor.selection.anchor.path[0]]);
|
|
30
|
+
if (!isCleanEmptyParagraph(editor) && Node.string(block) !== QUICK_TOOLBAR_HOTKEY) {
|
|
31
|
+
QuickInsertEditor.closeQuickToolbar(editor);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
return editor;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2staW5zZXJ0LnBsdWdpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9xdWljay1pbnNlcnQvcXVpY2staW5zZXJ0LnBsdWdpbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLElBQUksRUFBVyxNQUFNLE9BQU8sQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO0lBQzlDLE1BQU0sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUV2RCxNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1FBQ3hDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxvQkFBb0IsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyRSxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzRyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDbkUsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsaUJBQWlCLENBQUM7WUFDM0QsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUN2RTtRQUVELFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUM7SUFFRixNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxFQUFFO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRTtZQUMzRCxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMvQztRQUNELGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUM7SUFFRixNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRTtRQUNuQixRQUFRLEVBQUUsQ0FBQztRQUVYLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUNsQixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2hFLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUVsRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFZLENBQUM7WUFDbEYsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssb0JBQW9CLEVBQUU7Z0JBQy9FLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQy9DO1NBQ0o7SUFDTCxDQUFDLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIE5vZGUsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBUaGVFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFFVSUNLX1RPT0xCQVJfSE9US0VZIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGlzQ2xlYW5FbXB0eVBhcmFncmFwaCB9IGZyb20gJy4uLy4uL3V0aWxzL2lzLWNsZWFuLWVtcHR5LXBhcmFncmFwaCc7XG5pbXBvcnQgeyBRdWlja0luc2VydEVkaXRvciB9IGZyb20gJy4vcXVpY2staW5zZXJ0LmVkaXRvcic7XG5cbmV4cG9ydCBjb25zdCB3aXRoUXVpY2tJbnNlcnQgPSAoZWRpdG9yOiBFZGl0b3IpID0+IHtcbiAgICBjb25zdCB7IG9uS2V5ZG93biwgZGVsZXRlQmFja3dhcmQsIG9uQ2hhbmdlIH0gPSBlZGl0b3I7XG5cbiAgICBlZGl0b3Iub25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IFFVSUNLX1RPT0xCQVJfSE9US0VZICYmIGlzQ2xlYW5FbXB0eVBhcmFncmFwaChlZGl0b3IpKSB7XG4gICAgICAgICAgICBjb25zdCByb290Tm9kZSA9IEFuZ3VsYXJFZGl0b3IudG9ET01Ob2RlKGVkaXRvciwgTm9kZS5hbmNlc3RvcihlZGl0b3IsIFtlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoWzBdXSkpO1xuICAgICAgICAgICAgY29uc3QgdGhlRWRpdG9yQ29tcG9uZW50ID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVFZGl0b3JDb21wb25lbnQpO1xuICAgICAgICAgICAgY29uc3QgcXVpY2tUb29sYmFycyA9IHRoZUVkaXRvckNvbXBvbmVudC5xdWlja1Rvb2xiYXJJdGVtcztcbiAgICAgICAgICAgIFF1aWNrSW5zZXJ0RWRpdG9yLm9wZW5RdWlja1Rvb2xiYXIoZWRpdG9yLCBxdWlja1Rvb2xiYXJzLCByb290Tm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICBvbktleWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuZGVsZXRlQmFja3dhcmQgPSB1bml0ID0+IHtcbiAgICAgICAgaWYgKCFRdWlja0luc2VydEVkaXRvci5pc09wZW5Ub29sYmFyKGVkaXRvciwgWydyZW1vdmVfdGV4dCddKSkge1xuICAgICAgICAgICAgUXVpY2tJbnNlcnRFZGl0b3IuY2xvc2VRdWlja1Rvb2xiYXIoZWRpdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGVCYWNrd2FyZCh1bml0KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLm9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgICBvbkNoYW5nZSgpO1xuXG4gICAgICAgIGlmIChlZGl0b3Iuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBlZGl0b3JDb21wb25lbnQgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFRoZUVkaXRvckNvbXBvbmVudCk7XG4gICAgICAgICAgICBlZGl0b3JDb21wb25lbnQucXVpY2tJbnNlcnRJbnN0YW5jZS5jaGVja1N0YXR1cygpO1xuXG4gICAgICAgICAgICBjb25zdCBibG9jayA9IE5vZGUuYW5jZXN0b3IoZWRpdG9yLCBbZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IucGF0aFswXV0pIGFzIEVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAoIWlzQ2xlYW5FbXB0eVBhcmFncmFwaChlZGl0b3IpICYmIE5vZGUuc3RyaW5nKGJsb2NrKSAhPT0gUVVJQ0tfVE9PTEJBUl9IT1RLRVkpIHtcbiAgICAgICAgICAgICAgICBRdWlja0luc2VydEVkaXRvci5jbG9zZVF1aWNrVG9vbGJhcihlZGl0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBlZGl0b3I7XG59O1xuIl19
|
|
@@ -7,11 +7,13 @@ export class TheTableRowComponent extends TheBaseElementComponent {
|
|
|
7
7
|
super.onContextChange();
|
|
8
8
|
if (this.initialized) {
|
|
9
9
|
this.useBackground();
|
|
10
|
+
this.useHeight();
|
|
10
11
|
}
|
|
11
12
|
}
|
|
12
13
|
ngOnInit() {
|
|
13
14
|
super.ngOnInit();
|
|
14
15
|
this.useBackground();
|
|
16
|
+
this.useHeight();
|
|
15
17
|
}
|
|
16
18
|
useBackground() {
|
|
17
19
|
if (this.element.header && !this.backgroundColor) {
|
|
@@ -42,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
42
44
|
type: HostBinding,
|
|
43
45
|
args: ['style.height']
|
|
44
46
|
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3RhYmxlL2NvbXBvbmVudHMvcm93L3Jvdy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQU0zRSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsdUJBQXdDO0lBSTlFLGVBQWU7UUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDcEI7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7U0FDcEM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUM5QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztTQUMvQjtJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUM1QztJQUNMLENBQUM7O2lIQS9CUSxvQkFBb0I7cUdBQXBCLG9CQUFvQix3TEFGbkIsaUhBQWlIOzJGQUVsSCxvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLGlIQUFpSDtpQkFDOUg7OEJBRXlDLGVBQWU7c0JBQXBELFdBQVc7dUJBQUMsdUJBQXVCO2dCQUNQLE1BQU07c0JBQWxDLFdBQVc7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVSb3dFbGVtZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IFRoZUJhc2VFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy92aWV3LWJhc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RyW3RoZVRhYmxlUm93XScsXG4gICAgdGVtcGxhdGU6ICc8c2xhdGUtY2hpbGRyZW4gW2NoaWxkcmVuXT1cImNoaWxkcmVuXCIgW2NvbnRleHRdPVwiY2hpbGRyZW5Db250ZXh0XCIgW3ZpZXdDb250ZXh0XT1cInZpZXdDb250ZXh0XCI+PC9zbGF0ZS1jaGlsZHJlbj4nXG59KVxuZXhwb3J0IGNsYXNzIFRoZVRhYmxlUm93Q29tcG9uZW50IGV4dGVuZHMgVGhlQmFzZUVsZW1lbnRDb21wb25lbnQ8VGFibGVSb3dFbGVtZW50PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5iYWNrZ3JvdW5kQ29sb3InKSBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpIGhlaWdodDogc3RyaW5nO1xuXG4gICAgb25Db250ZXh0Q2hhbmdlKCkge1xuICAgICAgICBzdXBlci5vbkNvbnRleHRDaGFuZ2UoKTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXNlQmFja2dyb3VuZCgpO1xuICAgICAgICAgICAgdGhpcy51c2VIZWlnaHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnVzZUJhY2tncm91bmQoKTtcbiAgICAgICAgdGhpcy51c2VIZWlnaHQoKTtcbiAgICB9XG5cbiAgICB1c2VCYWNrZ3JvdW5kKCkge1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50LmhlYWRlciAmJiAhdGhpcy5iYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgICAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gJyNGM0YzRjMnO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50LmhlYWRlciAmJiB0aGlzLmJhY2tncm91bmRDb2xvcikge1xuICAgICAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXNlSGVpZ2h0KCkge1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50LmhlaWdodCkge1xuICAgICAgICAgICAgdGhpcy5oZWlnaHQgPSB0aGlzLmVsZW1lbnQuaGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|