@worktile/theia 1.2.8 → 1.2.12
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 +793 -158
- package/bundles/worktile-theia.umd.js.map +1 -1
- package/components/column-resize/column-resize.directive.d.ts +3 -3
- package/components/inline-toolbar/inline-toolbar.component.d.ts +24 -0
- package/components/inline-toolbar/inline-toolbar.component.scss +19 -0
- package/components/nav-split-line/nav-split-line.component.d.ts +6 -1
- package/components/toolbar/toolbar.component.d.ts +2 -1
- package/components/toolbar-dropdown/toolbar-dropdown.component.scss +3 -0
- package/components/toolbar-item/toolbar-item.component.d.ts +14 -5
- package/constants/node-types.d.ts +0 -1
- package/constants/toolbar.d.ts +6 -2
- package/custom-types.d.ts +3 -0
- package/editor.component.d.ts +7 -4
- package/editor.module.d.ts +59 -52
- package/esm2015/components/color-select/color-select.component.js +3 -2
- package/esm2015/components/column-resize/column-resize.directive.js +1 -1
- 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/toolbar.component.js +7 -6
- package/esm2015/components/toolbar-base-item/toolbar-base-item.component.js +3 -2
- package/esm2015/components/toolbar-group/toolbar-group.component.js +1 -1
- package/esm2015/components/toolbar-item/toolbar-item.component.js +70 -24
- 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 +23 -15
- package/esm2015/editor.module.js +15 -6
- package/esm2015/interfaces/toolbar.js +1 -1
- package/esm2015/plugins/deserializers/deserialize-html.plugin.js +12 -3
- package/esm2015/plugins/deserializers/deserialize-md.plugin.js +2 -2
- 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 +7 -7
- 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/paint-format/options.js +54 -0
- package/esm2015/plugins/paint-format/paint-format.editor.js +67 -0
- package/esm2015/plugins/placeholder/placeholder.component.js +76 -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 +38 -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.types.js +1 -1
- package/esm2015/plugins/vertical-align/toolbar-item.component.js +11 -6
- package/esm2015/public-api.js +2 -1
- package/esm2015/queries/is-container-type.js +2 -2
- package/esm2015/services/context.service.js +2 -2
- package/esm2015/services/toolbar.service.js +5 -5
- package/esm2015/transforms/index.js +2 -3
- package/esm2015/utils/auto-focus.js +2 -2
- package/esm2015/utils/fragment.js +20 -1
- package/esm2015/utils/is-clean-empty-paragraph.js +32 -0
- package/esm2015/utils/weak-maps.js +2 -1
- package/fesm2015/worktile-theia.js +778 -164
- package/fesm2015/worktile-theia.js.map +1 -1
- package/interfaces/toolbar.d.ts +3 -2
- package/package.json +1 -1
- 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/table/table.types.d.ts +7 -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/transforms/index.d.ts +1 -2
- package/utils/fragment.d.ts +5 -0
- 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
- package/esm2015/transforms/insert-elements.js +0 -22
- package/transforms/insert-elements.d.ts +0 -2
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { take, skip, filter } from 'rxjs/operators';
|
|
2
|
+
import { Range } from 'slate';
|
|
3
|
+
import { HistoryEditor } from 'slate-history';
|
|
4
|
+
import { EDITOR_TO_ELEMENT } from 'slate-angular';
|
|
5
|
+
import { TheEditor } from '../../interfaces';
|
|
6
|
+
import { TheContextService } from '../../services/context.service';
|
|
7
|
+
import { MarkProps } from '../../constants/node-types';
|
|
8
|
+
import * as TheQueries from '../../queries';
|
|
9
|
+
import * as TheTransforms from '../../transforms';
|
|
10
|
+
export const PaintFormatEditor = {
|
|
11
|
+
formatBrush(editor) {
|
|
12
|
+
const contextService = editor.injector.get(TheContextService);
|
|
13
|
+
const obj = {};
|
|
14
|
+
for (const key of MarkProps) {
|
|
15
|
+
const k = contextService.paintFormatStatus.marks[key];
|
|
16
|
+
obj[key] = k || null;
|
|
17
|
+
}
|
|
18
|
+
const block = TheQueries.anchorBlock(editor);
|
|
19
|
+
if (block && Range.isCollapsed(editor.selection)) {
|
|
20
|
+
// TODO:: 在撤销时有bug, 临时使用withoutSaving处理
|
|
21
|
+
HistoryEditor.withoutSaving(editor, () => {
|
|
22
|
+
const path = TheEditor.findPath(editor, block);
|
|
23
|
+
TheTransforms.setMarks(editor, obj, path);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
TheTransforms.setMarks(editor, obj);
|
|
28
|
+
}
|
|
29
|
+
PaintFormatEditor.cancelFormatBrushStatus(editor);
|
|
30
|
+
},
|
|
31
|
+
isActive(editor) {
|
|
32
|
+
const contextService = editor.injector.get(TheContextService);
|
|
33
|
+
const res = contextService.paintFormatStatus.isActive;
|
|
34
|
+
return res;
|
|
35
|
+
},
|
|
36
|
+
enableFormatBrush(editor) {
|
|
37
|
+
const contextService = editor.injector.get(TheContextService);
|
|
38
|
+
if (contextService.paintFormatStatus.isActive) {
|
|
39
|
+
return PaintFormatEditor.cancelFormatBrushStatus(editor);
|
|
40
|
+
}
|
|
41
|
+
contextService.paintFormatStatus = {
|
|
42
|
+
isActive: true,
|
|
43
|
+
marks: TheQueries.getSelectionMarks(editor)
|
|
44
|
+
};
|
|
45
|
+
const element = EDITOR_TO_ELEMENT.get(editor);
|
|
46
|
+
element.classList.add('pointer-paint');
|
|
47
|
+
contextService.onMouseUp$
|
|
48
|
+
.pipe(skip(1), filter(event => element.contains(event.target)), take(1))
|
|
49
|
+
.subscribe((event) => {
|
|
50
|
+
if (contextService.paintFormatStatus.isActive) {
|
|
51
|
+
PaintFormatEditor.formatBrush(editor);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
editor.onChange();
|
|
55
|
+
},
|
|
56
|
+
cancelFormatBrushStatus(editor) {
|
|
57
|
+
const contextService = editor.injector.get(TheContextService);
|
|
58
|
+
contextService.paintFormatStatus = {
|
|
59
|
+
isActive: false,
|
|
60
|
+
marks: {}
|
|
61
|
+
};
|
|
62
|
+
const element = EDITOR_TO_ELEMENT.get(editor);
|
|
63
|
+
element.classList.remove('pointer-paint');
|
|
64
|
+
editor.onChange();
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnQtZm9ybWF0LmVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3BhaW50LWZvcm1hdC9wYWludC1mb3JtYXQuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQzdCLFdBQVcsQ0FBQyxNQUFpQjtRQUN6QixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNmLEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxHQUFHLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7U0FDeEI7UUFDRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzlDLHVDQUF1QztZQUN2QyxhQUFhLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ3JDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMvQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDdkM7UUFDRCxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsUUFBUSxDQUFDLE1BQWlCO1FBQ3RCLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUQsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUN0RCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxNQUFpQjtRQUMvQixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlELElBQUksY0FBYyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtZQUMzQyxPQUFPLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVEO1FBQ0QsY0FBYyxDQUFDLGlCQUFpQixHQUFHO1lBQy9CLFFBQVEsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7U0FDOUMsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN2QyxjQUFjLENBQUMsVUFBVTthQUNwQixJQUFJLENBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQWlCLENBQUMsQ0FBQyxFQUMxRCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1Y7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDN0IsSUFBSSxjQUFjLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFO2dCQUMzQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDekM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsdUJBQXVCLENBQUMsTUFBaUI7UUFDckMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5RCxjQUFjLENBQUMsaUJBQWlCLEdBQUc7WUFDL0IsUUFBUSxFQUFFLEtBQUs7WUFDZixLQUFLLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGFrZSwgc2tpcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUmFuZ2UgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBIaXN0b3J5RWRpdG9yIH0gZnJvbSAnc2xhdGUtaGlzdG9yeSc7XG5pbXBvcnQgeyBFRElUT1JfVE9fRUxFTUVOVCB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUaGVDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBNYXJrUHJvcHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbm9kZS10eXBlcyc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcblxuZXhwb3J0IGNvbnN0IFBhaW50Rm9ybWF0RWRpdG9yID0ge1xuICAgIGZvcm1hdEJydXNoKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVDb250ZXh0U2VydmljZSk7XG4gICAgICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBNYXJrUHJvcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSBjb250ZXh0U2VydmljZS5wYWludEZvcm1hdFN0YXR1cy5tYXJrc1trZXldO1xuICAgICAgICAgICAgb2JqW2tleV0gPSBrIHx8IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYmxvY2sgPSBUaGVRdWVyaWVzLmFuY2hvckJsb2NrKGVkaXRvcik7XG4gICAgICAgIGlmIChibG9jayAmJiBSYW5nZS5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgLy8gVE9ETzo6IOWcqOaSpOmUgOaXtuaciWJ1Zywg5Li05pe25L2/55Sod2l0aG91dFNhdmluZ+WkhOeQhlxuICAgICAgICAgICAgSGlzdG9yeUVkaXRvci53aXRob3V0U2F2aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBUaGVFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBibG9jayk7XG4gICAgICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5zZXRNYXJrcyhlZGl0b3IsIG9iaiwgcGF0aCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuc2V0TWFya3MoZWRpdG9yLCBvYmopO1xuICAgICAgICB9XG4gICAgICAgIFBhaW50Rm9ybWF0RWRpdG9yLmNhbmNlbEZvcm1hdEJydXNoU3RhdHVzKGVkaXRvcik7XG4gICAgfSxcbiAgICBpc0FjdGl2ZShlZGl0b3I6IFRoZUVkaXRvcikge1xuICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IGVkaXRvci5pbmplY3Rvci5nZXQoVGhlQ29udGV4dFNlcnZpY2UpO1xuICAgICAgICBjb25zdCByZXMgPSBjb250ZXh0U2VydmljZS5wYWludEZvcm1hdFN0YXR1cy5pc0FjdGl2ZTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9LFxuICAgIGVuYWJsZUZvcm1hdEJydXNoKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVDb250ZXh0U2VydmljZSk7XG4gICAgICAgIGlmIChjb250ZXh0U2VydmljZS5wYWludEZvcm1hdFN0YXR1cy5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuIFBhaW50Rm9ybWF0RWRpdG9yLmNhbmNlbEZvcm1hdEJydXNoU3RhdHVzKGVkaXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgY29udGV4dFNlcnZpY2UucGFpbnRGb3JtYXRTdGF0dXMgPSB7XG4gICAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgIG1hcmtzOiBUaGVRdWVyaWVzLmdldFNlbGVjdGlvbk1hcmtzKGVkaXRvcilcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IEVESVRPUl9UT19FTEVNRU5ULmdldChlZGl0b3IpO1xuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3BvaW50ZXItcGFpbnQnKTtcbiAgICAgICAgY29udGV4dFNlcnZpY2Uub25Nb3VzZVVwJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgRWxlbWVudCkpLFxuICAgICAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRleHRTZXJ2aWNlLnBhaW50Rm9ybWF0U3RhdHVzLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIFBhaW50Rm9ybWF0RWRpdG9yLmZvcm1hdEJydXNoKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGVkaXRvci5vbkNoYW5nZSgpO1xuICAgIH0sXG4gICAgY2FuY2VsRm9ybWF0QnJ1c2hTdGF0dXMoZWRpdG9yOiBUaGVFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgY29udGV4dFNlcnZpY2UgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFRoZUNvbnRleHRTZXJ2aWNlKTtcbiAgICAgICAgY29udGV4dFNlcnZpY2UucGFpbnRGb3JtYXRTdGF0dXMgPSB7XG4gICAgICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICBtYXJrczoge31cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IEVESVRPUl9UT19FTEVNRU5ULmdldChlZGl0b3IpO1xuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3BvaW50ZXItcGFpbnQnKTtcbiAgICAgICAgZWRpdG9yLm9uQ2hhbmdlKCk7XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Component, Input, HostListener } 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 * as TheQueries from '../../queries';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class ThePlaceholderComponent {
|
|
8
|
+
constructor(renderer, elementRef) {
|
|
9
|
+
this.renderer = renderer;
|
|
10
|
+
this.elementRef = elementRef;
|
|
11
|
+
this.isHide = true;
|
|
12
|
+
}
|
|
13
|
+
handleCompositionStart() {
|
|
14
|
+
var _a;
|
|
15
|
+
if ((_a = this.editor) === null || _a === void 0 ? void 0 : _a.selection) {
|
|
16
|
+
this.hide();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
handleCompositionEnd(event) {
|
|
20
|
+
if (!event.data) {
|
|
21
|
+
this.checkStatus();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
checkStatus() {
|
|
25
|
+
var _a, _b;
|
|
26
|
+
const { editor } = this;
|
|
27
|
+
// empty content and no selection processing
|
|
28
|
+
if (!(editor === null || editor === void 0 ? void 0 : editor.selection) && TheQueries.isEmptyContent(editor.children)) {
|
|
29
|
+
// normal top is 28, but margin-top: -41px is set when maxHeight is set, so top is 69
|
|
30
|
+
const firstTop = ((_a = this.options) === null || _a === void 0 ? void 0 : _a.maxHeight) ? 69 : 28;
|
|
31
|
+
this.updatePosition(30, firstTop);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (isCleanEmptyParagraph(editor)) {
|
|
35
|
+
const block = Node.ancestor(editor, [(_b = editor === null || editor === void 0 ? void 0 : editor.selection) === null || _b === void 0 ? void 0 : _b.anchor.path[0]]);
|
|
36
|
+
const rootNode = AngularEditor.toDOMNode(editor, block);
|
|
37
|
+
setTimeout(() => {
|
|
38
|
+
this.updatePosition(rootNode.offsetLeft, rootNode.offsetTop);
|
|
39
|
+
});
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
this.isHide = true;
|
|
43
|
+
}
|
|
44
|
+
updatePosition(left, top) {
|
|
45
|
+
this.isHide = false;
|
|
46
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'top', `${top}px`);
|
|
47
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'left', `${left}px`);
|
|
48
|
+
}
|
|
49
|
+
hide() {
|
|
50
|
+
this.isHide = true;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
ThePlaceholderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: ThePlaceholderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
54
|
+
ThePlaceholderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: ThePlaceholderComponent, selector: "div[thePlaceholder]", inputs: { editor: "editor", options: "options" }, host: { listeners: { "document:compositionstart": "handleCompositionStart()", "document:compositionend": "handleCompositionEnd($event)" }, properties: { "class.hide": "isHide" }, classAttribute: "the-placeholder" }, ngImport: i0, template: `{{ options?.placeholder }}`, isInline: true });
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: ThePlaceholderComponent, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{
|
|
58
|
+
selector: 'div[thePlaceholder]',
|
|
59
|
+
template: `{{ options?.placeholder }}`,
|
|
60
|
+
host: {
|
|
61
|
+
class: 'the-placeholder',
|
|
62
|
+
'[class.hide]': 'isHide'
|
|
63
|
+
}
|
|
64
|
+
}]
|
|
65
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { editor: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], options: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], handleCompositionStart: [{
|
|
70
|
+
type: HostListener,
|
|
71
|
+
args: ['document:compositionstart']
|
|
72
|
+
}], handleCompositionEnd: [{
|
|
73
|
+
type: HostListener,
|
|
74
|
+
args: ['document:compositionend', ['$event']]
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvcGxhY2Vob2xkZXIvcGxhY2Vob2xkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQVUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxLQUFLLFVBQVUsTUFBTSxlQUFlLENBQUM7O0FBVTVDLE1BQU0sT0FBTyx1QkFBdUI7SUFvQmhDLFlBQW9CLFFBQW1CLEVBQVUsVUFBc0I7UUFBbkQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFoQnZFLFdBQU0sR0FBRyxJQUFJLENBQUM7SUFnQjRELENBQUM7SUFiM0Usc0JBQXNCOztRQUNsQixJQUFJLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsU0FBUyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNmO0lBQ0wsQ0FBQztJQUdELG9CQUFvQixDQUFDLEtBQUs7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBSU0sV0FBVzs7UUFDZCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRXhCLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsU0FBUyxDQUFBLElBQUksVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEUscUZBQXFGO1lBQ3JGLE1BQU0sUUFBUSxHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2xDLE9BQU87U0FDVjtRQUVELElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxTQUFTLDBDQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sUUFBUSxHQUFnQixhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVyRSxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakUsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRU8sY0FBYyxDQUFDLElBQVksRUFBRSxHQUFZO1FBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU8sSUFBSTtRQUNSLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7O29IQXJEUSx1QkFBdUI7d0dBQXZCLHVCQUF1QixxVUFOdEIsNEJBQTRCOzJGQU03Qix1QkFBdUI7a0JBUm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxpQkFBaUI7d0JBQ3hCLGNBQWMsRUFBRSxRQUFRO3FCQUMzQjtpQkFDSjt5SEFFWSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUtOLHNCQUFzQjtzQkFEckIsWUFBWTt1QkFBQywyQkFBMkI7Z0JBUXpDLG9CQUFvQjtzQkFEbkIsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIEhvc3RMaXN0ZW5lciwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFZGl0b3IsIE5vZGUgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBUaGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBpc0NsZWFuRW1wdHlQYXJhZ3JhcGggfSBmcm9tICcuLi8uLi91dGlscy9pcy1jbGVhbi1lbXB0eS1wYXJhZ3JhcGgnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkaXZbdGhlUGxhY2Vob2xkZXJdJyxcbiAgICB0ZW1wbGF0ZTogYHt7IG9wdGlvbnM/LnBsYWNlaG9sZGVyIH19YCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGhlLXBsYWNlaG9sZGVyJyxcbiAgICAgICAgJ1tjbGFzcy5oaWRlXSc6ICdpc0hpZGUnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUaGVQbGFjZWhvbGRlckNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgZWRpdG9yOiBFZGl0b3I7XG4gICAgQElucHV0KCkgb3B0aW9uczogVGhlT3B0aW9ucztcblxuICAgIGlzSGlkZSA9IHRydWU7XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjb21wb3NpdGlvbnN0YXJ0JylcbiAgICBoYW5kbGVDb21wb3NpdGlvblN0YXJ0KCkge1xuICAgICAgICBpZiAodGhpcy5lZGl0b3I/LnNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjb21wb3NpdGlvbmVuZCcsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlQ29tcG9zaXRpb25FbmQoZXZlbnQpIHtcbiAgICAgICAgaWYgKCFldmVudC5kYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrU3RhdHVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIHB1YmxpYyBjaGVja1N0YXR1cygpIHtcbiAgICAgICAgY29uc3QgeyBlZGl0b3IgfSA9IHRoaXM7XG5cbiAgICAgICAgLy8gZW1wdHkgY29udGVudCBhbmQgbm8gc2VsZWN0aW9uIHByb2Nlc3NpbmdcbiAgICAgICAgaWYgKCFlZGl0b3I/LnNlbGVjdGlvbiAmJiBUaGVRdWVyaWVzLmlzRW1wdHlDb250ZW50KGVkaXRvci5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgIC8vIG5vcm1hbCB0b3AgaXMgMjgsIGJ1dCBtYXJnaW4tdG9wOiAtNDFweCBpcyBzZXQgd2hlbiBtYXhIZWlnaHQgaXMgc2V0LCBzbyB0b3AgaXMgNjlcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0VG9wID0gdGhpcy5vcHRpb25zPy5tYXhIZWlnaHQgPyA2OSA6IDI4O1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbigzMCwgZmlyc3RUb3ApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQ2xlYW5FbXB0eVBhcmFncmFwaChlZGl0b3IpKSB7XG4gICAgICAgICAgICBjb25zdCBibG9jayA9IE5vZGUuYW5jZXN0b3IoZWRpdG9yLCBbZWRpdG9yPy5zZWxlY3Rpb24/LmFuY2hvci5wYXRoWzBdXSk7XG4gICAgICAgICAgICBjb25zdCByb290Tm9kZTogSFRNTEVsZW1lbnQgPSBBbmd1bGFyRWRpdG9yLnRvRE9NTm9kZShlZGl0b3IsIGJsb2NrKTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbihyb290Tm9kZS5vZmZzZXRMZWZ0LCByb290Tm9kZS5vZmZzZXRUb3ApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0hpZGUgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUG9zaXRpb24obGVmdDogbnVtYmVyLCB0b3A/OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pc0hpZGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RvcCcsIGAke3RvcH1weGApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbGVmdCcsIGAke2xlZnR9cHhgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGUoKSB7XG4gICAgICAgIHRoaXMuaXNIaWRlID0gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -11,4 +11,5 @@ export * from './table/table.editor';
|
|
|
11
11
|
export * from './todo-item/todo-item.editor';
|
|
12
12
|
export * from './vertical-align/vertical-align.editor';
|
|
13
13
|
export * from './link/link.editor';
|
|
14
|
-
|
|
14
|
+
export * from './quick-insert/quick-insert.editor';
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hbGlnbi9hbGlnbi5lZGl0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9ibG9ja3F1b3RlL2Jsb2NrcXVvdGUuZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vY29kZS9jb2RlLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2NvbG9yL2NvbG9yLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2hlYWRpbmcvaGVhZGluZy5lZGl0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9oci9oci5lZGl0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS9pbWFnZS5lZGl0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saXN0L2xpc3QuZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbWFyay9tYXJrLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlL3RhYmxlLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3RvZG8taXRlbS90b2RvLWl0ZW0uZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdmVydGljYWwtYWxpZ24vdmVydGljYWwtYWxpZ24uZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGluay9saW5rLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLWluc2VydC9xdWljay1pbnNlcnQuZWRpdG9yJztcbiJdfQ==
|
|
@@ -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,38 @@
|
|
|
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
|
+
var _a;
|
|
26
|
+
onChange();
|
|
27
|
+
if (editor.selection) {
|
|
28
|
+
const editorComponent = editor.injector.get(TheEditorComponent);
|
|
29
|
+
(_a = editorComponent.quickInsertInstance) === null || _a === void 0 ? void 0 : _a.checkStatus();
|
|
30
|
+
const block = Node.ancestor(editor, [editor.selection.anchor.path[0]]);
|
|
31
|
+
if (!isCleanEmptyParagraph(editor) && Node.string(block) !== QUICK_TOOLBAR_HOTKEY) {
|
|
32
|
+
QuickInsertEditor.closeQuickToolbar(editor);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
return editor;
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2staW5zZXJ0LnBsdWdpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9xdWljay1pbnNlcnQvcXVpY2staW5zZXJ0LnBsdWdpbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLElBQUksRUFBVyxNQUFNLE9BQU8sQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO0lBQzlDLE1BQU0sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUV2RCxNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1FBQ3hDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxvQkFBb0IsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyRSxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzRyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDbkUsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsaUJBQWlCLENBQUM7WUFDM0QsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUN2RTtRQUVELFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUM7SUFFRixNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxFQUFFO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRTtZQUMzRCxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMvQztRQUNELGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUM7SUFFRixNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRTs7UUFDbkIsUUFBUSxFQUFFLENBQUM7UUFFWCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDbEIsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNoRSxNQUFBLGVBQWUsQ0FBQyxtQkFBbUIsMENBQUUsV0FBVyxFQUFFLENBQUM7WUFFbkQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBWSxDQUFDO1lBQ2xGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLG9CQUFvQixFQUFFO2dCQUMvRSxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMvQztTQUNKO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBOb2RlLCBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgVGhlRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRVUlDS19UT09MQkFSX0hPVEtFWSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBpc0NsZWFuRW1wdHlQYXJhZ3JhcGggfSBmcm9tICcuLi8uLi91dGlscy9pcy1jbGVhbi1lbXB0eS1wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgUXVpY2tJbnNlcnRFZGl0b3IgfSBmcm9tICcuL3F1aWNrLWluc2VydC5lZGl0b3InO1xuXG5leHBvcnQgY29uc3Qgd2l0aFF1aWNrSW5zZXJ0ID0gKGVkaXRvcjogRWRpdG9yKSA9PiB7XG4gICAgY29uc3QgeyBvbktleWRvd24sIGRlbGV0ZUJhY2t3YXJkLCBvbkNoYW5nZSB9ID0gZWRpdG9yO1xuXG4gICAgZWRpdG9yLm9uS2V5ZG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBRVUlDS19UT09MQkFSX0hPVEtFWSAmJiBpc0NsZWFuRW1wdHlQYXJhZ3JhcGgoZWRpdG9yKSkge1xuICAgICAgICAgICAgY29uc3Qgcm9vdE5vZGUgPSBBbmd1bGFyRWRpdG9yLnRvRE9NTm9kZShlZGl0b3IsIE5vZGUuYW5jZXN0b3IoZWRpdG9yLCBbZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IucGF0aFswXV0pKTtcbiAgICAgICAgICAgIGNvbnN0IHRoZUVkaXRvckNvbXBvbmVudCA9IGVkaXRvci5pbmplY3Rvci5nZXQoVGhlRWRpdG9yQ29tcG9uZW50KTtcbiAgICAgICAgICAgIGNvbnN0IHF1aWNrVG9vbGJhcnMgPSB0aGVFZGl0b3JDb21wb25lbnQucXVpY2tUb29sYmFySXRlbXM7XG4gICAgICAgICAgICBRdWlja0luc2VydEVkaXRvci5vcGVuUXVpY2tUb29sYmFyKGVkaXRvciwgcXVpY2tUb29sYmFycywgcm9vdE5vZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgb25LZXlkb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmRlbGV0ZUJhY2t3YXJkID0gdW5pdCA9PiB7XG4gICAgICAgIGlmICghUXVpY2tJbnNlcnRFZGl0b3IuaXNPcGVuVG9vbGJhcihlZGl0b3IsIFsncmVtb3ZlX3RleHQnXSkpIHtcbiAgICAgICAgICAgIFF1aWNrSW5zZXJ0RWRpdG9yLmNsb3NlUXVpY2tUb29sYmFyKGVkaXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlQmFja3dhcmQodW5pdCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5vbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgb25DaGFuZ2UoKTtcblxuICAgICAgICBpZiAoZWRpdG9yLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgY29uc3QgZWRpdG9yQ29tcG9uZW50ID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVFZGl0b3JDb21wb25lbnQpO1xuICAgICAgICAgICAgZWRpdG9yQ29tcG9uZW50LnF1aWNrSW5zZXJ0SW5zdGFuY2U/LmNoZWNrU3RhdHVzKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gTm9kZS5hbmNlc3RvcihlZGl0b3IsIFtlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoWzBdXSkgYXMgRWxlbWVudDtcbiAgICAgICAgICAgIGlmICghaXNDbGVhbkVtcHR5UGFyYWdyYXBoKGVkaXRvcikgJiYgTm9kZS5zdHJpbmcoYmxvY2spICE9PSBRVUlDS19UT09MQkFSX0hPVEtFWSkge1xuICAgICAgICAgICAgICAgIFF1aWNrSW5zZXJ0RWRpdG9yLmNsb3NlUXVpY2tUb29sYmFyKGVkaXRvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG4iXX0=
|
|
@@ -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==
|