@talrace/ngx-noder 0.0.8 → 0.0.9
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/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +15 -9
- package/esm2022/lib/apart-components/editor-toolbar/components/base-toolbar.component.mjs +8 -2
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font/font.component.mjs +2 -2
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-size/font-size.component.mjs +3 -3
- package/esm2022/lib/apart-components/editor-toolbar/shared/toolbar-styles.helper.mjs +1 -8
- package/esm2022/lib/editor/components/edges/edge.component.mjs +2 -2
- package/esm2022/lib/editor/components/edges/edges.mjs +21 -2
- package/esm2022/lib/editor/components/image/input-handler/image-input.handler.mjs +18 -1
- package/esm2022/lib/editor/components/shared/services/custom-content.service.mjs +22 -56
- package/esm2022/lib/editor/components/table/components/table-cell.component.mjs +6 -6
- package/esm2022/lib/editor/components/table/components/table.component.mjs +13 -4
- package/esm2022/lib/editor/components/table/models/cell-data.model.mjs +3 -4
- package/esm2022/lib/editor/components/table/selection/table-selection.mjs +15 -5
- package/esm2022/lib/editor/content/constants/editor.const.mjs +9 -1
- package/esm2022/lib/editor/content/display-data/display-data.mjs +839 -0
- package/esm2022/lib/editor/content/display-data/general-properties.model.mjs +1 -1
- package/esm2022/lib/editor/content/display-data/models/paragraph-info.model.mjs +8 -0
- package/esm2022/lib/editor/content/display-data/paragraph.mjs +5 -1
- package/esm2022/lib/editor/content/display-data/text-line-info.mjs +2 -1
- package/esm2022/lib/editor/content/display-data/toolbar-styles.interface.mjs +1 -1
- package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +12 -30
- package/esm2022/lib/editor/content/helpers/display-token.helper.mjs +62 -0
- package/esm2022/lib/editor/display/layers/cursor.layer.mjs +9 -8
- package/esm2022/lib/editor/display/layers/pages.layer.mjs +5 -5
- package/esm2022/lib/editor/display/layers/print.text.layer.mjs +2 -2
- package/esm2022/lib/editor/display/layers/selection.layer.mjs +15 -9
- package/esm2022/lib/editor/display/layers/text.layer.mjs +25 -27
- package/esm2022/lib/editor/display/print/print.renderer.mjs +8 -8
- package/esm2022/lib/editor/display/renderer.mjs +10 -10
- package/esm2022/lib/editor/display/rendering.helper.mjs +2 -4
- package/esm2022/lib/editor/display/virtual.renderer.mjs +5 -5
- package/esm2022/lib/editor/execution/edit.session.mjs +199 -755
- package/esm2022/lib/editor/execution/editor.mjs +116 -75
- package/esm2022/lib/editor/execution/helpers/format-style.helper.mjs +1 -33
- package/esm2022/lib/editor/execution/helpers/image.helpet.mjs +12 -0
- package/esm2022/lib/editor/execution/helpers/paragraph.helper.mjs +11 -3
- package/esm2022/lib/editor/execution/regulator.service.mjs +28 -20
- package/esm2022/lib/editor/gadgets/numbering/numbering-paragraph-style.model.mjs +13 -0
- package/esm2022/lib/editor/gadgets/numbering/numbering.helper.mjs +77 -10
- package/esm2022/lib/editor/gadgets/search/search.mjs +6 -6
- package/esm2022/lib/editor/interaction/editor.service.mjs +27 -6
- package/esm2022/lib/editor/interaction/input.handler.mjs +8 -5
- package/esm2022/lib/editor/interaction/mouse.handler.mjs +2 -1
- package/esm2022/lib/editor/operations/helpers/format-operations.helper.mjs +32 -2
- package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +47 -12
- package/esm2022/lib/editor/operations/operations-helper.helper.mjs +13 -14
- package/esm2022/lib/editor/operations/save-commands.helper.mjs +2 -2
- package/esm2022/lib/editor/positioning/content.helper.mjs +15 -15
- package/esm2022/lib/editor/positioning/line-width.helper.mjs +5 -5
- package/esm2022/lib/editor/positioning/position.helper.mjs +34 -32
- package/esm2022/lib/editor/positioning/selection.mjs +42 -32
- package/esm2022/lib/editor/revision.helper.mjs +4 -3
- package/fesm2022/talrace-ngx-noder.mjs +3765 -3548
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/apart-components/add-link-dialog/add-link-dialog.component.d.ts +0 -1
- package/lib/apart-components/editor-toolbar/shared/toolbar-styles.helper.d.ts +0 -2
- package/lib/editor/components/image/input-handler/image-input.handler.d.ts +3 -0
- package/lib/editor/components/shared/services/custom-content.service.d.ts +3 -5
- package/lib/editor/components/table/components/table-cell.component.d.ts +1 -1
- package/lib/editor/components/table/components/table.component.d.ts +1 -0
- package/lib/editor/components/table/models/cell-data.model.d.ts +1 -1
- package/lib/editor/components/table/selection/table-selection.d.ts +2 -0
- package/lib/editor/content/constants/editor.const.d.ts +2 -0
- package/lib/editor/content/display-data/display-data.d.ts +103 -0
- package/lib/editor/content/display-data/general-properties.model.d.ts +5 -0
- package/lib/editor/content/display-data/models/paragraph-info.model.d.ts +9 -0
- package/lib/editor/content/display-data/paragraph.d.ts +1 -0
- package/lib/editor/content/display-data/text-line-info.d.ts +1 -0
- package/lib/editor/content/display-data/toolbar-styles.interface.d.ts +1 -1
- package/lib/editor/content/helpers/content-style.helper.d.ts +1 -2
- package/lib/editor/content/helpers/display-token.helper.d.ts +6 -0
- package/lib/editor/display/layers/text.layer.d.ts +1 -2
- package/lib/editor/display/print/print.renderer.d.ts +0 -2
- package/lib/editor/execution/edit.session.d.ts +11 -59
- package/lib/editor/execution/editor.d.ts +9 -6
- package/lib/editor/execution/helpers/format-style.helper.d.ts +0 -2
- package/lib/editor/execution/helpers/image.helpet.d.ts +4 -0
- package/lib/editor/execution/regulator.service.d.ts +1 -1
- package/lib/editor/gadgets/numbering/numbering-paragraph-style.model.d.ts +6 -0
- package/lib/editor/gadgets/numbering/numbering.helper.d.ts +10 -3
- package/lib/editor/interaction/editor.service.d.ts +12 -3
- package/lib/editor/operations/helpers/link-operations.helper.d.ts +5 -3
- package/lib/editor/positioning/content.helper.d.ts +6 -5
- package/lib/editor/positioning/position.helper.d.ts +3 -3
- package/lib/editor/positioning/selection.d.ts +3 -0
- package/package.json +1 -1
- package/src/_ngx-noder.theme.scss +31 -2
- package/esm2022/lib/editor/content/display-data/document.mjs +0 -134
- package/esm2022/lib/editor/content/display-data/pages.wrap.mjs +0 -226
- package/esm2022/lib/editor/execution/helpers/delta.helper.mjs +0 -18
- package/lib/editor/content/display-data/document.d.ts +0 -56
- package/lib/editor/content/display-data/pages.wrap.d.ts +0 -42
- package/lib/editor/execution/helpers/delta.helper.d.ts +0 -6
|
@@ -3,12 +3,15 @@ export class ImageInputHandler {
|
|
|
3
3
|
constructor(editorService, image) {
|
|
4
4
|
this.editorService = editorService;
|
|
5
5
|
this.image = image;
|
|
6
|
+
this.imageComponentTagName = 'APP-NOD-IMAGE';
|
|
6
7
|
this.undoRedoActions = {};
|
|
7
8
|
this.imageKeyDownSubscription = fromEvent(document, 'keydown').subscribe(event => this.onKeyDown(event));
|
|
9
|
+
this.clickSubscription = fromEvent(document, 'click').subscribe(event => this.onClick(event.target));
|
|
8
10
|
this.fillUndoRedoActions();
|
|
9
11
|
}
|
|
10
12
|
destroy() {
|
|
11
13
|
this.imageKeyDownSubscription?.unsubscribe();
|
|
14
|
+
this.clickSubscription?.unsubscribe();
|
|
12
15
|
}
|
|
13
16
|
onKeyDown(event) {
|
|
14
17
|
if (this.editorService.isViewOnly) {
|
|
@@ -22,6 +25,10 @@ export class ImageInputHandler {
|
|
|
22
25
|
if (this.undoRedoActions[keyCombination] && !this.editorService.isViewOnly) {
|
|
23
26
|
this.undoRedoActions[keyCombination]();
|
|
24
27
|
event.preventDefault();
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (!event.ctrlKey && !event.altKey && !event.shiftKey && !event.metaKey && event.key.length === 1) {
|
|
31
|
+
this.editorService.insertText(event.key);
|
|
25
32
|
}
|
|
26
33
|
}
|
|
27
34
|
getKeyCombination(event) {
|
|
@@ -34,5 +41,15 @@ export class ImageInputHandler {
|
|
|
34
41
|
this.undoRedoActions['Ctrl-KeyY'] = () => this.editorService.redo();
|
|
35
42
|
this.undoRedoActions['Command-KeyY'] = () => this.editorService.redo();
|
|
36
43
|
}
|
|
44
|
+
onClick(element) {
|
|
45
|
+
let currentElement = element;
|
|
46
|
+
while (currentElement) {
|
|
47
|
+
if (currentElement.tagName === this.imageComponentTagName) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
currentElement = currentElement.parentElement;
|
|
51
|
+
}
|
|
52
|
+
this.editorService.blurCustomComponent();
|
|
53
|
+
}
|
|
37
54
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtaW5wdXQuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9jb21wb25lbnRzL2ltYWdlL2lucHV0LWhhbmRsZXIvaW1hZ2UtaW5wdXQuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUsvQyxNQUFNLE9BQU8saUJBQWlCO0lBUzFCLFlBQTZCLGFBQTRCLEVBQW1CLEtBQTBCO1FBQXpFLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQW1CLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBUjdGLDBCQUFxQixHQUFHLGVBQWUsQ0FBQztRQUVoQyxvQkFBZSxHQUFrQyxFQUFFLENBQUM7UUFPakUsSUFBSSxDQUFDLHdCQUF3QixHQUFHLFNBQVMsQ0FBZ0IsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4SCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFnQixRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBcUIsQ0FBQyxDQUFDLENBQUM7UUFDbkksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFTyxTQUFTLENBQUMsS0FBb0I7UUFDbEMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUMvQixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUU7WUFDeEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDaEcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzVDO0lBQ0wsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEtBQW9CO1FBQzFDLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUQsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwRSxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVPLE9BQU8sQ0FBQyxPQUFvQjtRQUNoQyxJQUFJLGNBQWMsR0FBRyxPQUFPLENBQUM7UUFDN0IsT0FBTyxjQUFjLEVBQUU7WUFDbkIsSUFBSSxjQUFjLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtnQkFDdkQsT0FBTzthQUNWO1lBQ0QsY0FBYyxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUM7U0FDakQ7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0MsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyYWN0aW9uL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVySW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2ltYWdlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBJbWFnZUlucHV0SGFuZGxlciB7XG4gICAgcmVhZG9ubHkgaW1hZ2VDb21wb25lbnRUYWdOYW1lID0gJ0FQUC1OT0QtSU1BR0UnO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bmRvUmVkb0FjdGlvbnM6IHsgW2tleTogc3RyaW5nXTogKCkgPT4gdm9pZCB9ID0ge307XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGltYWdlS2V5RG93blN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGlja1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGltYWdlOiBOb2RlckltYWdlQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuaW1hZ2VLZXlEb3duU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAna2V5ZG93bicpLnN1YnNjcmliZShldmVudCA9PiB0aGlzLm9uS2V5RG93bihldmVudCkpO1xuICAgICAgICB0aGlzLmNsaWNrU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAnY2xpY2snKS5zdWJzY3JpYmUoZXZlbnQgPT4gdGhpcy5vbkNsaWNrKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkpO1xuICAgICAgICB0aGlzLmZpbGxVbmRvUmVkb0FjdGlvbnMoKTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmltYWdlS2V5RG93blN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5jbGlja1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5lZGl0b3JTZXJ2aWNlLmlzVmlld09ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChbJ0JhY2tzcGFjZScsICdEZWxldGUnXS5pbmNsdWRlcyhldmVudC5jb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnJlbW92ZUltYWdlKHRoaXMuaW1hZ2UuaW5zZXJ0SW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qga2V5Q29tYmluYXRpb24gPSB0aGlzLmdldEtleUNvbWJpbmF0aW9uKGV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMudW5kb1JlZG9BY3Rpb25zW2tleUNvbWJpbmF0aW9uXSAmJiAhdGhpcy5lZGl0b3JTZXJ2aWNlLmlzVmlld09ubHkpIHtcbiAgICAgICAgICAgIHRoaXMudW5kb1JlZG9BY3Rpb25zW2tleUNvbWJpbmF0aW9uXSgpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZXZlbnQuY3RybEtleSAmJiAhZXZlbnQuYWx0S2V5ICYmICFldmVudC5zaGlmdEtleSAmJiAhZXZlbnQubWV0YUtleSAmJiBldmVudC5rZXkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuaW5zZXJ0VGV4dChldmVudC5rZXkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRLZXlDb21iaW5hdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHN0cmluZyB7XG4gICAgICAgIGxldCByZXN1bHQgPSBldmVudC5tZXRhS2V5ID8gJ0NvbW1hbmQtJyA6ICcnO1xuICAgICAgICByZXR1cm4gZXZlbnQuY3RybEtleSA/IGAke3Jlc3VsdH1DdHJsLSR7ZXZlbnQuY29kZX1gIDogJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWxsVW5kb1JlZG9BY3Rpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVuZG9SZWRvQWN0aW9uc1snQ3RybC1LZXlaJ10gPSAoKSA9PiB0aGlzLmVkaXRvclNlcnZpY2UudW5kbygpO1xuICAgICAgICB0aGlzLnVuZG9SZWRvQWN0aW9uc1snQ29tbWFuZC1LZXlaJ10gPSAoKSA9PiB0aGlzLmVkaXRvclNlcnZpY2UudW5kbygpO1xuICAgICAgICB0aGlzLnVuZG9SZWRvQWN0aW9uc1snQ3RybC1LZXlZJ10gPSAoKSA9PiB0aGlzLmVkaXRvclNlcnZpY2UucmVkbygpO1xuICAgICAgICB0aGlzLnVuZG9SZWRvQWN0aW9uc1snQ29tbWFuZC1LZXlZJ10gPSAoKSA9PiB0aGlzLmVkaXRvclNlcnZpY2UucmVkbygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25DbGljayhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBsZXQgY3VycmVudEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB3aGlsZSAoY3VycmVudEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50RWxlbWVudC50YWdOYW1lID09PSB0aGlzLmltYWdlQ29tcG9uZW50VGFnTmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGN1cnJlbnRFbGVtZW50ID0gY3VycmVudEVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuYmx1ckN1c3RvbUNvbXBvbmVudCgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -2,8 +2,6 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { CUSTOM_ELEMENT_MARKER, TABLE_MARKER } from '../custom-content-markers.const';
|
|
3
3
|
import { DEFAULT_PARAGRAPH_STYLE } from '../../../content/constants/editor.const';
|
|
4
4
|
import { DisplayToken } from '../../../content/display-data/display-token.model';
|
|
5
|
-
import { DocxModel } from '../../../../models/generated/docx.model';
|
|
6
|
-
import { Edges } from '../../edges/edges';
|
|
7
5
|
import { EXTERNAL_ELEMENT_SERVICE } from '../../external-element/external-elements.const';
|
|
8
6
|
import { NoderImageComponent } from '../../image/components/image.component';
|
|
9
7
|
import { NoderTabComponent } from '../../tab/tab.component';
|
|
@@ -16,51 +14,34 @@ export class CustomContentService {
|
|
|
16
14
|
this.injector = injector;
|
|
17
15
|
this.elements = this.injector.get(EXTERNAL_ELEMENT_SERVICE).elements;
|
|
18
16
|
}
|
|
19
|
-
|
|
20
|
-
const contentWidth = document.pageWidth - (document.pageMargin.left + document.pageMargin.right);
|
|
21
|
-
return {
|
|
22
|
-
images: this.componentService.generateComponents(NoderImageComponent, model?.images || [], x => {
|
|
23
|
-
return { image: x, sessionId, generalProperties };
|
|
24
|
-
}),
|
|
25
|
-
tables: this.componentService.generateComponents(NoderTableComponent, model?.tables || [], x => {
|
|
26
|
-
return { table: x, sessionId, generalProperties };
|
|
27
|
-
}),
|
|
28
|
-
tabs: this.componentService.generateComponents(NoderTabComponent, model?.tabs || [], x => {
|
|
29
|
-
return { tab: x, sessionId, generalProperties };
|
|
30
|
-
}),
|
|
31
|
-
customElements: this.generateElementComponents(model?.elements || [], sessionId, contentWidth),
|
|
32
|
-
edges: model instanceof DocxModel
|
|
33
|
-
? new Edges(this.componentService, model.headers, model.footers, document.pageMargin, document.pageWidth, sessionId, generalProperties)
|
|
34
|
-
: null
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
getOrGenerateComponent(model, components, sessionId, generalProperties, contentWidth, charIndex, char) {
|
|
38
|
-
if (char !== CUSTOM_ELEMENT_MARKER && char !== TABLE_MARKER) {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
const component = this.getComponent(components, char, charIndex);
|
|
42
|
-
if (component) {
|
|
43
|
-
return component;
|
|
44
|
-
}
|
|
17
|
+
generateComponent(model, components, sessionId, generalProperties, contentWidth, charIndex) {
|
|
45
18
|
const image = model.images.find(x => x.insertIndex === charIndex);
|
|
46
19
|
if (image) {
|
|
47
|
-
|
|
20
|
+
const component = this.componentService.generateComponent(NoderImageComponent, { image, sessionId, generalProperties });
|
|
21
|
+
components.images.push(component);
|
|
22
|
+
return component;
|
|
48
23
|
}
|
|
49
24
|
const table = model.tables.find(x => x.insertIndex === charIndex);
|
|
50
25
|
if (table) {
|
|
51
|
-
|
|
26
|
+
const component = this.componentService.generateComponent(NoderTableComponent, { table, sessionId, generalProperties });
|
|
27
|
+
components.tables.push(component);
|
|
28
|
+
return component;
|
|
52
29
|
}
|
|
53
30
|
const tab = model.tabs.find(x => x.insertIndex === charIndex);
|
|
54
31
|
if (tab) {
|
|
55
|
-
|
|
32
|
+
const component = this.componentService.generateComponent(NoderTabComponent, { tab, sessionId, generalProperties });
|
|
33
|
+
components.tabs.push(component);
|
|
34
|
+
return component;
|
|
56
35
|
}
|
|
57
|
-
const
|
|
58
|
-
if (
|
|
59
|
-
|
|
60
|
-
content
|
|
36
|
+
const content = model.elements.find(x => x.insertIndex === charIndex);
|
|
37
|
+
if (content) {
|
|
38
|
+
const component = this.componentService.generateComponent(this.findComponentType(content.type), {
|
|
39
|
+
content,
|
|
61
40
|
sessionId,
|
|
62
41
|
contentWidth
|
|
63
42
|
});
|
|
43
|
+
components.customElements.push(component);
|
|
44
|
+
return component;
|
|
64
45
|
}
|
|
65
46
|
return null;
|
|
66
47
|
}
|
|
@@ -70,24 +51,6 @@ export class CustomContentService {
|
|
|
70
51
|
return this.componentService.generateComponent(type, { content: x, sessionId, contentWidth });
|
|
71
52
|
});
|
|
72
53
|
}
|
|
73
|
-
addToCustomComponents(components, component, char, charIndex) {
|
|
74
|
-
const existed = this.getComponent(components, char, charIndex);
|
|
75
|
-
if (existed) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
if (component.componentType === NoderImageComponent) {
|
|
79
|
-
components.images.push(component);
|
|
80
|
-
}
|
|
81
|
-
else if (component.componentType === NoderTableComponent) {
|
|
82
|
-
components.tables.push(component);
|
|
83
|
-
}
|
|
84
|
-
else if (component.componentType === NoderTabComponent) {
|
|
85
|
-
components.tabs.push(component);
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
components.customElements.push(component);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
54
|
isFragmentContainComponent(components, textFragment, fragmentDistance) {
|
|
92
55
|
if (textFragment.includes(CUSTOM_ELEMENT_MARKER)) {
|
|
93
56
|
return (this.isFragmentContainComponents(components.images, fragmentDistance) ||
|
|
@@ -148,11 +111,14 @@ export class CustomContentService {
|
|
|
148
111
|
findComponentType(type) {
|
|
149
112
|
return this.elements.find(x => x.type === type).componentType;
|
|
150
113
|
}
|
|
114
|
+
findComponent(components, insertIndex) {
|
|
115
|
+
return components.find((x) => x.instance.insertIndex === insertIndex);
|
|
116
|
+
}
|
|
151
117
|
isFragmentContainComponents(components, distance) {
|
|
152
118
|
return components.some(x => x.instance.insertIndex >= distance.start && x.instance.insertIndex <= distance.end);
|
|
153
119
|
}
|
|
154
|
-
|
|
155
|
-
return
|
|
120
|
+
isSpecialMarker(char) {
|
|
121
|
+
return char === CUSTOM_ELEMENT_MARKER || char === TABLE_MARKER;
|
|
156
122
|
}
|
|
157
123
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomContentService, deps: [{ token: i1.ComponentService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
158
124
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomContentService }); }
|
|
@@ -160,4 +126,4 @@ export class CustomContentService {
|
|
|
160
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomContentService, decorators: [{
|
|
161
127
|
type: Injectable
|
|
162
128
|
}], ctorParameters: () => [{ type: i1.ComponentService }, { type: i0.Injector }] });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNvbnRlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9jb21wb25lbnRzL3NoYXJlZC9zZXJ2aWNlcy9jdXN0b20tY29udGVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUt6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBR2pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFNMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQUc3RSxNQUFNLE9BQU8sb0JBQW9CO0lBRzdCLFlBQW1CLGdCQUFrQyxFQUFVLFFBQWtCO1FBQTlELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQzdFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDekUsQ0FBQztJQUVELGtCQUFrQixDQUNkLEtBQXdCLEVBQ3hCLFNB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QUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFTyxhQUFhLENBQUksVUFBNkIsRUFBRSxXQUFtQjtRQUN2RSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxDQUFDO0lBQy9FLENBQUM7K0dBcE1RLG9CQUFvQjttSEFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBJbmplY3RhYmxlLCBJbmplY3RvciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlTm9kZXJDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC9iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi9jb21wb25lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb250ZW50c0ludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uL2NvbnRlbnQvY29udGVudHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IENVU1RPTV9FTEVNRU5UX01BUktFUiwgVEFCTEVfTUFSS0VSIH0gZnJvbSAnLi4vY3VzdG9tLWNvbnRlbnQtbWFya2Vycy5jb25zdCc7XG5pbXBvcnQgeyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRSB9IGZyb20gJy4uLy4uLy4uL2NvbnRlbnQvY29uc3RhbnRzL2VkaXRvci5jb25zdCc7XG5pbXBvcnQgeyBEaXNwbGF5VG9rZW4gfSBmcm9tICcuLi8uLi8uLi9jb250ZW50L2Rpc3BsYXktZGF0YS9kaXNwbGF5LXRva2VuLm1vZGVsJztcbmltcG9ydCB7IERpc3RhbmNlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9leGVjdXRpb24vZGlzdGFuY2UubW9kZWwnO1xuaW1wb3J0IHsgRG9jdW1lbnQgfSBmcm9tICcuLi8uLi8uLi9jb250ZW50L2Rpc3BsYXktZGF0YS9kb2N1bWVudCc7XG5pbXBvcnQgeyBEb2N4TW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2RvY3gubW9kZWwnO1xuaW1wb3J0IHsgRWRnZXMgfSBmcm9tICcuLi8uLi9lZGdlcy9lZGdlcyc7XG5pbXBvcnQgeyBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2VsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgRVhURVJOQUxfRUxFTUVOVF9TRVJWSUNFIH0gZnJvbSAnLi4vLi4vZXh0ZXJuYWwtZWxlbWVudC9leHRlcm5hbC1lbGVtZW50cy5jb25zdCc7XG5pbXBvcnQgeyBFeHRlcm5hbEVsZW1lbnRNb2RlbCB9IGZyb20gJy4uLy4uL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2V4dGVybmFsLWVsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgR2VuZXJhbFByb3BlcnRpZXNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2NvbnRlbnQvZGlzcGxheS1kYXRhL2dlbmVyYWwtcHJvcGVydGllcy5tb2RlbCc7XG5pbXBvcnQgeyBJQ3VzdG9tQ29tcG9uZW50cyB9IGZyb20gJy4uL2N1c3RvbS1jb21wb25lbnRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRm9udE1ldHJpY1NpemUgfSBmcm9tICcuLi8uLi8uLi9nYWRnZXRzL2ZvbnQtbWV0cmljcy9mb250LW1ldHJpYy1zaXplLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMaW5lSW5mb01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vY29udGVudC9kaXNwbGF5LWRhdGEvbGluZS1pbmZvLm1vZGVsJztcbmltcG9ydCB7IE5vZGVySW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbWFnZS9jb21wb25lbnRzL2ltYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb2RlclRhYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RhYi90YWIuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVyVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi90YWJsZS9jb21wb25lbnRzL3RhYmxlLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDdXN0b21Db250ZW50U2VydmljZSB7XG4gICAgZWxlbWVudHM6IEV4dGVybmFsRWxlbWVudE1vZGVsW107XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY29tcG9uZW50U2VydmljZTogQ29tcG9uZW50U2VydmljZSwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEVYVEVSTkFMX0VMRU1FTlRfU0VSVklDRSkuZWxlbWVudHM7XG4gICAgfVxuXG4gICAgZ2VuZXJhdGVDb21wb25lbnRzKFxuICAgICAgICBtb2RlbDogQ29udGVudHNJbnRlcmZhY2UsXG4gICAgICAgIHNlc3Npb25JZDogbnVtYmVyLFxuICAgICAgICBnZW5lcmFsUHJvcGVydGllczogR2VuZXJhbFByb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgZG9jdW1lbnQ6IERvY3VtZW50XG4gICAgKTogSUN1c3RvbUNvbXBvbmVudHMge1xuICAgICAgICBjb25zdCBjb250ZW50V2lkdGggPSBkb2N1bWVudC5wYWdlV2lkdGggLSAoZG9jdW1lbnQucGFnZU1hcmdpbi5sZWZ0ICsgZG9jdW1lbnQucGFnZU1hcmdpbi5yaWdodCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpbWFnZXM6IHRoaXMuY29tcG9uZW50U2VydmljZS5nZW5lcmF0ZUNvbXBvbmVudHMoTm9kZXJJbWFnZUNvbXBvbmVudCwgbW9kZWw/LmltYWdlcyB8fCBbXSwgeCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaW1hZ2U6IHgsIHNlc3Npb25JZCwgZ2VuZXJhbFByb3BlcnRpZXMgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFibGVzOiB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZ2VuZXJhdGVDb21wb25lbnRzKE5vZGVyVGFibGVDb21wb25lbnQsIG1vZGVsPy50YWJsZXMgfHwgW10sIHggPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHRhYmxlOiB4LCBzZXNzaW9uSWQsIGdlbmVyYWxQcm9wZXJ0aWVzIH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhYnM6IHRoaXMuY29tcG9uZW50U2VydmljZS5nZW5lcmF0ZUNvbXBvbmVudHMoTm9kZXJUYWJDb21wb25lbnQsIG1vZGVsPy50YWJzIHx8IFtdLCB4ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyB0YWI6IHgsIHNlc3Npb25JZCwgZ2VuZXJhbFByb3BlcnRpZXMgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY3VzdG9tRWxlbWVudHM6IHRoaXMuZ2VuZXJhdGVFbGVtZW50Q29tcG9uZW50cyhtb2RlbD8uZWxlbWVudHMgfHwgW10sIHNlc3Npb25JZCwgY29udGVudFdpZHRoKSxcbiAgICAgICAgICAgIGVkZ2VzOlxuICAgICAgICAgICAgICAgIG1vZGVsIGluc3RhbmNlb2YgRG9jeE1vZGVsXG4gICAgICAgICAgICAgICAgICAgID8gbmV3IEVkZ2VzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsLmZvb3RlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnBhZ2VNYXJnaW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnBhZ2VXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmFsUHJvcGVydGllc1xuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0T3JHZW5lcmF0ZUNvbXBvbmVudChcbiAgICAgICAgbW9kZWw6IENvbnRlbnRzSW50ZXJmYWNlLFxuICAgICAgICBjb21wb25lbnRzOiBJQ3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgc2Vzc2lvbklkOiBudW1iZXIsXG4gICAgICAgIGdlbmVyYWxQcm9wZXJ0aWVzOiBHZW5lcmFsUHJvcGVydGllc01vZGVsLFxuICAgICAgICBjb250ZW50V2lkdGg6IG51bWJlcixcbiAgICAgICAgY2hhckluZGV4OiBudW1iZXIsXG4gICAgICAgIGNoYXI6IHN0cmluZ1xuICAgICk6IENvbXBvbmVudFJlZjxCYXNlTm9kZXJDb21wb25lbnQ+IHwgbnVsbCB7XG4gICAgICAgIGlmIChjaGFyICE9PSBDVVNUT01fRUxFTUVOVF9NQVJLRVIgJiYgY2hhciAhPT0gVEFCTEVfTUFSS0VSKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuZ2V0Q29tcG9uZW50KGNvbXBvbmVudHMsIGNoYXIsIGNoYXJJbmRleCk7XG4gICAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbWFnZSA9IG1vZGVsLmltYWdlcy5maW5kKHggPT4geC5pbnNlcnRJbmRleCA9PT0gY2hhckluZGV4KTtcbiAgICAgICAgaWYgKGltYWdlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdlbmVyYXRlQ29tcG9uZW50KE5vZGVySW1hZ2VDb21wb25lbnQsIHsgaW1hZ2UsIHNlc3Npb25JZCwgZ2VuZXJhbFByb3BlcnRpZXMgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YWJsZSA9IG1vZGVsLnRhYmxlcy5maW5kKHggPT4geC5pbnNlcnRJbmRleCA9PT0gY2hhckluZGV4KTtcbiAgICAgICAgaWYgKHRhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdlbmVyYXRlQ29tcG9uZW50KE5vZGVyVGFibGVDb21wb25lbnQsIHsgdGFibGUsIHNlc3Npb25JZCwgZ2VuZXJhbFByb3BlcnRpZXMgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YWIgPSBtb2RlbC50YWJzLmZpbmQoeCA9PiB4Lmluc2VydEluZGV4ID09PSBjaGFySW5kZXgpO1xuICAgICAgICBpZiAodGFiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdlbmVyYXRlQ29tcG9uZW50KE5vZGVyVGFiQ29tcG9uZW50LCB7IHRhYiwgc2Vzc2lvbklkLCBnZW5lcmFsUHJvcGVydGllcyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBtb2RlbC5lbGVtZW50cy5maW5kKHggPT4geC5pbnNlcnRJbmRleCA9PT0gY2hhckluZGV4KTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZ2VuZXJhdGVDb21wb25lbnQodGhpcy5maW5kQ29tcG9uZW50VHlwZShlbGVtZW50LnR5cGUpLCB7XG4gICAgICAgICAgICAgICAgY29udGVudDogZWxlbWVudCxcbiAgICAgICAgICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgICAgICAgICAgY29udGVudFdpZHRoXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGdlbmVyYXRlRWxlbWVudENvbXBvbmVudHMoZWxlbWVudHM6IEVsZW1lbnRNb2RlbFtdLCBzZXNzaW9uSWQ6IG51bWJlciwgY29udGVudFdpZHRoOiBudW1iZXIpOiBDb21wb25lbnRSZWY8QmFzZU5vZGVyQ29tcG9uZW50PltdIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRzLm1hcCh4ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0aGlzLmZpbmRDb21wb25lbnRUeXBlKHgudHlwZSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdlbmVyYXRlQ29tcG9uZW50KHR5cGUsIHsgY29udGVudDogeCwgc2Vzc2lvbklkLCBjb250ZW50V2lkdGggfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZFRvQ3VzdG9tQ29tcG9uZW50cyhjb21wb25lbnRzOiBJQ3VzdG9tQ29tcG9uZW50cywgY29tcG9uZW50OiBDb21wb25lbnRSZWY8YW55PiwgY2hhcjogc3RyaW5nLCBjaGFySW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBleGlzdGVkID0gdGhpcy5nZXRDb21wb25lbnQoY29tcG9uZW50cywgY2hhciwgY2hhckluZGV4KTtcbiAgICAgICAgaWYgKGV4aXN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb21wb25lbnQuY29tcG9uZW50VHlwZSA9PT0gTm9kZXJJbWFnZUNvbXBvbmVudCkge1xuICAgICAgICAgICAgY29tcG9uZW50cy5pbWFnZXMucHVzaChjb21wb25lbnQgYXMgQ29tcG9uZW50UmVmPE5vZGVySW1hZ2VDb21wb25lbnQ+KTtcbiAgICAgICAgfSBlbHNlIGlmIChjb21wb25lbnQuY29tcG9uZW50VHlwZSA9PT0gTm9kZXJUYWJsZUNvbXBvbmVudCkge1xuICAgICAgICAgICAgY29tcG9uZW50cy50YWJsZXMucHVzaChjb21wb25lbnQgYXMgQ29tcG9uZW50UmVmPE5vZGVyVGFibGVDb21wb25lbnQ+KTtcbiAgICAgICAgfSBlbHNlIGlmIChjb21wb25lbnQuY29tcG9uZW50VHlwZSA9PT0gTm9kZXJUYWJDb21wb25lbnQpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudHMudGFicy5wdXNoKGNvbXBvbmVudCBhcyBDb21wb25lbnRSZWY8Tm9kZXJUYWJDb21wb25lbnQ+KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbXBvbmVudHMuY3VzdG9tRWxlbWVudHMucHVzaChjb21wb25lbnQgYXMgQ29tcG9uZW50UmVmPEJhc2VOb2RlckNvbXBvbmVudD4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNGcmFnbWVudENvbnRhaW5Db21wb25lbnQoY29tcG9uZW50czogSUN1c3RvbUNvbXBvbmVudHMsIHRleHRGcmFnbWVudDogc3RyaW5nLCBmcmFnbWVudERpc3RhbmNlOiBEaXN0YW5jZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0ZXh0RnJhZ21lbnQuaW5jbHVkZXMoQ1VTVE9NX0VMRU1FTlRfTUFSS0VSKSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICB0aGlzLmlzRnJhZ21lbnRDb250YWluQ29tcG9uZW50cyhjb21wb25lbnRzLmltYWdlcywgZnJhZ21lbnREaXN0YW5jZSkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmlzRnJhZ21lbnRDb250YWluQ29tcG9uZW50cyhjb21wb25lbnRzLnRhYnMsIGZyYWdtZW50RGlzdGFuY2UpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5pc0ZyYWdtZW50Q29udGFpbkNvbXBvbmVudHMoY29tcG9uZW50cy5jdXN0b21FbGVtZW50cywgZnJhZ21lbnREaXN0YW5jZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGV4dEZyYWdtZW50LmluY2x1ZGVzKFRBQkxFX01BUktFUikpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzRnJhZ21lbnRDb250YWluQ29tcG9uZW50cyhjb21wb25lbnRzLnRhYmxlcywgZnJhZ21lbnREaXN0YW5jZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0Q29tcG9uZW50cyhjb21wb25lbnRzOiBJQ3VzdG9tQ29tcG9uZW50cywgZGlzdGFuY2U6IERpc3RhbmNlTW9kZWwpOiBDb21wb25lbnRSZWY8QmFzZU5vZGVyQ29tcG9uZW50PltdIHtcbiAgICAgICAgY29uc3QgaW1hZ2VzID0gY29tcG9uZW50cy5pbWFnZXMuZmlsdGVyKHggPT4geC5pbnN0YW5jZS5pbnNlcnRJbmRleCA+PSBkaXN0YW5jZS5zdGFydCAmJiB4Lmluc3RhbmNlLmluc2VydEluZGV4IDw9IGRpc3RhbmNlLmVuZCk7XG4gICAgICAgIGNvbnN0IHRhYmxlcyA9IGNvbXBvbmVudHMudGFibGVzLmZpbHRlcih4ID0+IHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPj0gZGlzdGFuY2Uuc3RhcnQgJiYgeC5pbnN0YW5jZS5pbnNlcnRJbmRleCA8PSBkaXN0YW5jZS5lbmQpO1xuICAgICAgICBjb25zdCB0YWJzID0gY29tcG9uZW50cy50YWJzLmZpbHRlcih4ID0+IHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPj0gZGlzdGFuY2Uuc3RhcnQgJiYgeC5pbnN0YW5jZS5pbnNlcnRJbmRleCA8PSBkaXN0YW5jZS5lbmQpO1xuICAgICAgICBjb25zdCBjdXN0b20gPSBjb21wb25lbnRzLmN1c3RvbUVsZW1lbnRzLmZpbHRlcihcbiAgICAgICAgICAgIHggPT4geC5pbnN0YW5jZS5pbnNlcnRJbmRleCA+PSBkaXN0YW5jZS5zdGFydCAmJiB4Lmluc3RhbmNlLmluc2VydEluZGV4IDw9IGRpc3RhbmNlLmVuZFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gWy4uLmltYWdlcywgLi4udGFibGVzLCAuLi50YWJzLCAuLi5jdXN0b21dLnNvcnQoKGEsIGIpID0+IGEuaW5zdGFuY2UuaW5zZXJ0SW5kZXggLSBiLmluc3RhbmNlLmluc2VydEluZGV4KTtcbiAgICB9XG5cbiAgICBnZXRDb21wb25lbnQoY29tcG9uZW50czogSUN1c3RvbUNvbXBvbmVudHMsIGNoYXI6IHN0cmluZywgY2hhckluZGV4OiBudW1iZXIpOiBDb21wb25lbnRSZWY8QmFzZU5vZGVyQ29tcG9uZW50PiB7XG4gICAgICAgIGlmIChjaGFyID09PSBDVVNUT01fRUxFTUVOVF9NQVJLRVIpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy5maW5kQ29tcG9uZW50KGNvbXBvbmVudHMuaW1hZ2VzLCBjaGFySW5kZXgpID8/XG4gICAgICAgICAgICAgICAgdGhpcy5maW5kQ29tcG9uZW50KGNvbXBvbmVudHMudGFicywgY2hhckluZGV4KSA/P1xuICAgICAgICAgICAgICAgIHRoaXMuZmluZENvbXBvbmVudChjb21wb25lbnRzLmN1c3RvbUVsZW1lbnRzLCBjaGFySW5kZXgpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZENvbXBvbmVudChjb21wb25lbnRzLnRhYmxlcywgY2hhckluZGV4KTtcbiAgICB9XG5cbiAgICBnZXRUb2tlbkZyb21Db21wb25lbnQoXG4gICAgICAgIGNvbXBvbmVudDogQ29tcG9uZW50UmVmPEJhc2VOb2RlckNvbXBvbmVudD4sXG4gICAgICAgIGxpbmVJbmZvOiBMaW5lSW5mb01vZGVsLFxuICAgICAgICBkaXNwbGF5VmFsdWU6IG51bWJlcixcbiAgICAgICAgaXNGaXJzdDogYm9vbGVhbixcbiAgICAgICAgc2l6ZTogSUZvbnRNZXRyaWNTaXplXG4gICAgKTogRGlzcGxheVRva2VuIHtcbiAgICAgICAgbGV0IGhlaWdodCA9IHNpemUuaGVpZ2h0O1xuICAgICAgICBpZiAoY29tcG9uZW50Lmluc3RhbmNlLmhlaWdodCA+IHNpemUuaGVpZ2h0KSB7XG4gICAgICAgICAgICBoZWlnaHQgPVxuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZSBpbnN0YW5jZW9mIE5vZGVySW1hZ2VDb21wb25lbnQgPyBjb21wb25lbnQuaW5zdGFuY2UuaGVpZ2h0ICsgc2l6ZS5kZXNjZW50IDogY29tcG9uZW50Lmluc3RhbmNlLmhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgRGlzcGxheVRva2VuKHtcbiAgICAgICAgICAgIHdpZHRoOiBjb21wb25lbnQuaW5zdGFuY2Uud2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICBiYXNlbGluZTogMCxcbiAgICAgICAgICAgIGNvbnRlbnQ6IDAsXG4gICAgICAgICAgICBmb250OiBzaXplLmZvbnQsXG4gICAgICAgICAgICBhc2NlbnQ6IGNvbXBvbmVudC5pbnN0YW5jZS5oZWlnaHQgPz8gc2l6ZS5oZWlnaHQsXG4gICAgICAgICAgICBkZXNjZW50OiAwLFxuICAgICAgICAgICAgbGluZTogMCxcbiAgICAgICAgICAgIGxpbmVTcGFjaW5nOiBsaW5lSW5mby5saW5lU3BhY2luZyxcbiAgICAgICAgICAgIG11bHRpcGxpZXI6IDAsXG4gICAgICAgICAgICBhbGlnbjogbGluZUluZm8uYWxpZ24sXG4gICAgICAgICAgICBpbmRlbnRGaXJzdExpbmU6IGlzRmlyc3QgPyBsaW5lSW5mby5pbmRlbnQuZmlyc3RMaW5lIDogREVGQVVMVF9QQVJBR1JBUEhfU1RZTEUuaW5kZW50Rmlyc3RMaW5lLFxuICAgICAgICAgICAgaW5kZW50SGFuZ2luZzogaXNGaXJzdCA/IGxpbmVJbmZvLmluZGVudC5oYW5naW5nIDogREVGQVVMVF9QQVJBR1JBUEhfU1RZTEUuaW5kZW50SGFuZ2luZyxcbiAgICAgICAgICAgIGluZGVudExlZnQ6IGxpbmVJbmZvLmluZGVudC5sZWZ0LFxuICAgICAgICAgICAgaW5kZW50UmlnaHQ6IGxpbmVJbmZvLmluZGVudC5yaWdodCxcbiAgICAgICAgICAgIGluZGVudEJlZm9yZTogbGluZUluZm8ub2Zmc2V0QmVmb3JlLFxuICAgICAgICAgICAgaW5kZW50QWZ0ZXI6IGxpbmVJbmZvLm9mZnNldEFmdGVyLFxuICAgICAgICAgICAgaXNQYWdlQnJlYWs6IGZhbHNlLFxuICAgICAgICAgICAgaXNMaW5lQnJlYWs6IGZhbHNlLFxuICAgICAgICAgICAgZGlzcGxheVZhbHVlLFxuICAgICAgICAgICAgaXNUYWI6IGNvbXBvbmVudC5pbnN0YW5jZSBpbnN0YW5jZW9mIE5vZGVyVGFiQ29tcG9uZW50LFxuICAgICAgICAgICAgaXNUYWJsZTogY29tcG9uZW50Lmluc3RhbmNlIGluc3RhbmNlb2YgTm9kZXJUYWJsZUNvbXBvbmVudFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmaW5kQ29tcG9uZW50VHlwZSh0eXBlOiBudW1iZXIpOiBUeXBlPEJhc2VOb2RlckNvbXBvbmVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50cy5maW5kKHggPT4geC50eXBlID09PSB0eXBlKS5jb21wb25lbnRUeXBlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGcmFnbWVudENvbnRhaW5Db21wb25lbnRzKGNvbXBvbmVudHM6IENvbXBvbmVudFJlZjxCYXNlTm9kZXJDb21wb25lbnQ+W10sIGRpc3RhbmNlOiBEaXN0YW5jZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBjb21wb25lbnRzLnNvbWUoeCA9PiB4Lmluc3RhbmNlLmluc2VydEluZGV4ID49IGRpc3RhbmNlLnN0YXJ0ICYmIHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPD0gZGlzdGFuY2UuZW5kKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRDb21wb25lbnQ8VD4oY29tcG9uZW50czogQ29tcG9uZW50UmVmPFQ+W10sIGluc2VydEluZGV4OiBudW1iZXIpOiBDb21wb25lbnRSZWY8VD4ge1xuICAgICAgICByZXR1cm4gY29tcG9uZW50cy5maW5kKCh4OiBhbnkpID0+IHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPT09IGluc2VydEluZGV4KTtcbiAgICB9XG59XG4iXX0=
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNvbnRlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9jb21wb25lbnRzL3NoYXJlZC9zZXJ2aWNlcy9jdXN0b20tY29udGVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUt6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBR2pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBTTFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFHN0UsTUFBTSxPQUFPLG9CQUFvQjtJQUc3QixZQUFtQixnQkFBa0MsRUFBVSxRQUFrQjtRQUE5RCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUM3RSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxpQkFBaUIsQ0FDYixLQUF3QixFQUN4QixVQUE2QixFQUM3QixTQUFpQixFQUNqQixpQkFBeUMsRUFDekMsWUFBb0IsRUFDcEIsU0FBaUI7UUFFakIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1B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aUJBQWlCLENBQUMsSUFBWTtRQUMxQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDbEUsQ0FBQztJQUVELGFBQWEsQ0FBSSxVQUE2QixFQUFFLFdBQW1CO1FBQy9ELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVPLDJCQUEyQixDQUFDLFVBQThDLEVBQUUsUUFBdUI7UUFDdkcsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFZO1FBQ3hCLE9BQU8sSUFBSSxLQUFLLHFCQUFxQixJQUFJLElBQUksS0FBSyxZQUFZLENBQUM7SUFDbkUsQ0FBQzsrR0FwSlEsb0JBQW9CO21IQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VOb2RlckNvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0L2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuL2NvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRlbnRzSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vY29udGVudC9jb250ZW50cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRfTUFSS0VSLCBUQUJMRV9NQVJLRVIgfSBmcm9tICcuLi9jdXN0b20tY29udGVudC1tYXJrZXJzLmNvbnN0JztcbmltcG9ydCB7IERFRkFVTFRfUEFSQUdSQVBIX1NUWUxFIH0gZnJvbSAnLi4vLi4vLi4vY29udGVudC9jb25zdGFudHMvZWRpdG9yLmNvbnN0JztcbmltcG9ydCB7IERpc3BsYXlUb2tlbiB9IGZyb20gJy4uLy4uLy4uL2NvbnRlbnQvZGlzcGxheS1kYXRhL2Rpc3BsYXktdG9rZW4ubW9kZWwnO1xuaW1wb3J0IHsgRGlzdGFuY2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2V4ZWN1dGlvbi9kaXN0YW5jZS5tb2RlbCc7XG5pbXBvcnQgeyBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2VsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgRVhURVJOQUxfRUxFTUVOVF9TRVJWSUNFIH0gZnJvbSAnLi4vLi4vZXh0ZXJuYWwtZWxlbWVudC9leHRlcm5hbC1lbGVtZW50cy5jb25zdCc7XG5pbXBvcnQgeyBFeHRlcm5hbEVsZW1lbnRNb2RlbCB9IGZyb20gJy4uLy4uL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2V4dGVybmFsLWVsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgR2VuZXJhbFByb3BlcnRpZXNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2NvbnRlbnQvZGlzcGxheS1kYXRhL2dlbmVyYWwtcHJvcGVydGllcy5tb2RlbCc7XG5pbXBvcnQgeyBJQ3VzdG9tQ29tcG9uZW50cyB9IGZyb20gJy4uL2N1c3RvbS1jb21wb25lbnRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRm9udE1ldHJpY1NpemUgfSBmcm9tICcuLi8uLi8uLi9nYWRnZXRzL2ZvbnQtbWV0cmljcy9mb250LW1ldHJpYy1zaXplLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMaW5lSW5mb01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vY29udGVudC9kaXNwbGF5LWRhdGEvbGluZS1pbmZvLm1vZGVsJztcbmltcG9ydCB7IE5vZGVySW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbWFnZS9jb21wb25lbnRzL2ltYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb2RlclRhYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RhYi90YWIuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVyVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi90YWJsZS9jb21wb25lbnRzL3RhYmxlLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDdXN0b21Db250ZW50U2VydmljZSB7XG4gICAgZWxlbWVudHM6IEV4dGVybmFsRWxlbWVudE1vZGVsW107XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY29tcG9uZW50U2VydmljZTogQ29tcG9uZW50U2VydmljZSwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEVYVEVSTkFMX0VMRU1FTlRfU0VSVklDRSkuZWxlbWVudHM7XG4gICAgfVxuXG4gICAgZ2VuZXJhdGVDb21wb25lbnQoXG4gICAgICAgIG1vZGVsOiBDb250ZW50c0ludGVyZmFjZSxcbiAgICAgICAgY29tcG9uZW50czogSUN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgIHNlc3Npb25JZDogbnVtYmVyLFxuICAgICAgICBnZW5lcmFsUHJvcGVydGllczogR2VuZXJhbFByb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgY29udGVudFdpZHRoOiBudW1iZXIsXG4gICAgICAgIGNoYXJJbmRleDogbnVtYmVyXG4gICAgKTogQ29tcG9uZW50UmVmPEJhc2VOb2RlckNvbXBvbmVudD4gfCBudWxsIHtcbiAgICAgICAgY29uc3QgaW1hZ2UgPSBtb2RlbC5pbWFnZXMuZmluZCh4ID0+IHguaW5zZXJ0SW5kZXggPT09IGNoYXJJbmRleCk7XG4gICAgICAgIGlmIChpbWFnZSkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdlbmVyYXRlQ29tcG9uZW50KE5vZGVySW1hZ2VDb21wb25lbnQsIHsgaW1hZ2UsIHNlc3Npb25JZCwgZ2VuZXJhbFByb3BlcnRpZXMgfSk7XG4gICAgICAgICAgICBjb21wb25lbnRzLmltYWdlcy5wdXNoKGNvbXBvbmVudCk7XG4gICAgICAgICAgICByZXR1cm4gY29tcG9uZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFibGUgPSBtb2RlbC50YWJsZXMuZmluZCh4ID0+IHguaW5zZXJ0SW5kZXggPT09IGNoYXJJbmRleCk7XG4gICAgICAgIGlmICh0YWJsZSkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdlbmVyYXRlQ29tcG9uZW50KE5vZGVyVGFibGVDb21wb25lbnQsIHsgdGFibGUsIHNlc3Npb25JZCwgZ2VuZXJhbFByb3BlcnRpZXMgfSk7XG4gICAgICAgICAgICBjb21wb25lbnRzLnRhYmxlcy5wdXNoKGNvbXBvbmVudCk7XG4gICAgICAgICAgICByZXR1cm4gY29tcG9uZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFiID0gbW9kZWwudGFicy5maW5kKHggPT4geC5pbnNlcnRJbmRleCA9PT0gY2hhckluZGV4KTtcbiAgICAgICAgaWYgKHRhYikge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdlbmVyYXRlQ29tcG9uZW50KE5vZGVyVGFiQ29tcG9uZW50LCB7IHRhYiwgc2Vzc2lvbklkLCBnZW5lcmFsUHJvcGVydGllcyB9KTtcbiAgICAgICAgICAgIGNvbXBvbmVudHMudGFicy5wdXNoKGNvbXBvbmVudCk7XG4gICAgICAgICAgICByZXR1cm4gY29tcG9uZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29udGVudCA9IG1vZGVsLmVsZW1lbnRzLmZpbmQoeCA9PiB4Lmluc2VydEluZGV4ID09PSBjaGFySW5kZXgpO1xuICAgICAgICBpZiAoY29udGVudCkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdlbmVyYXRlQ29tcG9uZW50KHRoaXMuZmluZENvbXBvbmVudFR5cGUoY29udGVudC50eXBlKSwge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgICAgIGNvbnRlbnRXaWR0aFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb21wb25lbnRzLmN1c3RvbUVsZW1lbnRzLnB1c2goY29tcG9uZW50KTtcbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBnZW5lcmF0ZUVsZW1lbnRDb21wb25lbnRzKGVsZW1lbnRzOiBFbGVtZW50TW9kZWxbXSwgc2Vzc2lvbklkOiBudW1iZXIsIGNvbnRlbnRXaWR0aDogbnVtYmVyKTogQ29tcG9uZW50UmVmPEJhc2VOb2RlckNvbXBvbmVudD5bXSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50cy5tYXAoeCA9PiB7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gdGhpcy5maW5kQ29tcG9uZW50VHlwZSh4LnR5cGUpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U2VydmljZS5nZW5lcmF0ZUNvbXBvbmVudCh0eXBlLCB7IGNvbnRlbnQ6IHgsIHNlc3Npb25JZCwgY29udGVudFdpZHRoIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpc0ZyYWdtZW50Q29udGFpbkNvbXBvbmVudChjb21wb25lbnRzOiBJQ3VzdG9tQ29tcG9uZW50cywgdGV4dEZyYWdtZW50OiBzdHJpbmcsIGZyYWdtZW50RGlzdGFuY2U6IERpc3RhbmNlTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRleHRGcmFnbWVudC5pbmNsdWRlcyhDVVNUT01fRUxFTUVOVF9NQVJLRVIpKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuaXNGcmFnbWVudENvbnRhaW5Db21wb25lbnRzKGNvbXBvbmVudHMuaW1hZ2VzLCBmcmFnbWVudERpc3RhbmNlKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuaXNGcmFnbWVudENvbnRhaW5Db21wb25lbnRzKGNvbXBvbmVudHMudGFicywgZnJhZ21lbnREaXN0YW5jZSkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmlzRnJhZ21lbnRDb250YWluQ29tcG9uZW50cyhjb21wb25lbnRzLmN1c3RvbUVsZW1lbnRzLCBmcmFnbWVudERpc3RhbmNlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0ZXh0RnJhZ21lbnQuaW5jbHVkZXMoVEFCTEVfTUFSS0VSKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNGcmFnbWVudENvbnRhaW5Db21wb25lbnRzKGNvbXBvbmVudHMudGFibGVzLCBmcmFnbWVudERpc3RhbmNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXRDb21wb25lbnRzKGNvbXBvbmVudHM6IElDdXN0b21Db21wb25lbnRzLCBkaXN0YW5jZTogRGlzdGFuY2VNb2RlbCk6IENvbXBvbmVudFJlZjxCYXNlTm9kZXJDb21wb25lbnQ+W10ge1xuICAgICAgICBjb25zdCBpbWFnZXMgPSBjb21wb25lbnRzLmltYWdlcy5maWx0ZXIoeCA9PiB4Lmluc3RhbmNlLmluc2VydEluZGV4ID49IGRpc3RhbmNlLnN0YXJ0ICYmIHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPD0gZGlzdGFuY2UuZW5kKTtcbiAgICAgICAgY29uc3QgdGFibGVzID0gY29tcG9uZW50cy50YWJsZXMuZmlsdGVyKHggPT4geC5pbnN0YW5jZS5pbnNlcnRJbmRleCA+PSBkaXN0YW5jZS5zdGFydCAmJiB4Lmluc3RhbmNlLmluc2VydEluZGV4IDw9IGRpc3RhbmNlLmVuZCk7XG4gICAgICAgIGNvbnN0IHRhYnMgPSBjb21wb25lbnRzLnRhYnMuZmlsdGVyKHggPT4geC5pbnN0YW5jZS5pbnNlcnRJbmRleCA+PSBkaXN0YW5jZS5zdGFydCAmJiB4Lmluc3RhbmNlLmluc2VydEluZGV4IDw9IGRpc3RhbmNlLmVuZCk7XG4gICAgICAgIGNvbnN0IGN1c3RvbSA9IGNvbXBvbmVudHMuY3VzdG9tRWxlbWVudHMuZmlsdGVyKFxuICAgICAgICAgICAgeCA9PiB4Lmluc3RhbmNlLmluc2VydEluZGV4ID49IGRpc3RhbmNlLnN0YXJ0ICYmIHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPD0gZGlzdGFuY2UuZW5kXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBbLi4uaW1hZ2VzLCAuLi50YWJsZXMsIC4uLnRhYnMsIC4uLmN1c3RvbV0uc29ydCgoYSwgYikgPT4gYS5pbnN0YW5jZS5pbnNlcnRJbmRleCAtIGIuaW5zdGFuY2UuaW5zZXJ0SW5kZXgpO1xuICAgIH1cblxuICAgIGdldENvbXBvbmVudChjb21wb25lbnRzOiBJQ3VzdG9tQ29tcG9uZW50cywgY2hhcjogc3RyaW5nLCBjaGFySW5kZXg6IG51bWJlcik6IENvbXBvbmVudFJlZjxCYXNlTm9kZXJDb21wb25lbnQ+IHtcbiAgICAgICAgaWYgKGNoYXIgPT09IENVU1RPTV9FTEVNRU5UX01BUktFUikge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICB0aGlzLmZpbmRDb21wb25lbnQoY29tcG9uZW50cy5pbWFnZXMsIGNoYXJJbmRleCkgPz9cbiAgICAgICAgICAgICAgICB0aGlzLmZpbmRDb21wb25lbnQoY29tcG9uZW50cy50YWJzLCBjaGFySW5kZXgpID8/XG4gICAgICAgICAgICAgICAgdGhpcy5maW5kQ29tcG9uZW50KGNvbXBvbmVudHMuY3VzdG9tRWxlbWVudHMsIGNoYXJJbmRleClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5maW5kQ29tcG9uZW50KGNvbXBvbmVudHMudGFibGVzLCBjaGFySW5kZXgpO1xuICAgIH1cblxuICAgIGdldFRva2VuRnJvbUNvbXBvbmVudChcbiAgICAgICAgY29tcG9uZW50OiBDb21wb25lbnRSZWY8QmFzZU5vZGVyQ29tcG9uZW50PixcbiAgICAgICAgbGluZUluZm86IExpbmVJbmZvTW9kZWwsXG4gICAgICAgIGRpc3BsYXlWYWx1ZTogbnVtYmVyLFxuICAgICAgICBpc0ZpcnN0OiBib29sZWFuLFxuICAgICAgICBzaXplOiBJRm9udE1ldHJpY1NpemVcbiAgICApOiBEaXNwbGF5VG9rZW4ge1xuICAgICAgICBsZXQgaGVpZ2h0ID0gc2l6ZS5oZWlnaHQ7XG4gICAgICAgIGlmIChjb21wb25lbnQuaW5zdGFuY2UuaGVpZ2h0ID4gc2l6ZS5oZWlnaHQpIHtcbiAgICAgICAgICAgIGhlaWdodCA9XG4gICAgICAgICAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlIGluc3RhbmNlb2YgTm9kZXJJbWFnZUNvbXBvbmVudCA/IGNvbXBvbmVudC5pbnN0YW5jZS5oZWlnaHQgKyBzaXplLmRlc2NlbnQgOiBjb21wb25lbnQuaW5zdGFuY2UuaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBEaXNwbGF5VG9rZW4oe1xuICAgICAgICAgICAgd2lkdGg6IGNvbXBvbmVudC5pbnN0YW5jZS53aWR0aCxcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIGJhc2VsaW5lOiAwLFxuICAgICAgICAgICAgY29udGVudDogMCxcbiAgICAgICAgICAgIGZvbnQ6IHNpemUuZm9udCxcbiAgICAgICAgICAgIGFzY2VudDogY29tcG9uZW50Lmluc3RhbmNlLmhlaWdodCA/PyBzaXplLmhlaWdodCxcbiAgICAgICAgICAgIGRlc2NlbnQ6IDAsXG4gICAgICAgICAgICBsaW5lOiAwLFxuICAgICAgICAgICAgbGluZVNwYWNpbmc6IGxpbmVJbmZvLmxpbmVTcGFjaW5nLFxuICAgICAgICAgICAgbXVsdGlwbGllcjogMCxcbiAgICAgICAgICAgIGFsaWduOiBsaW5lSW5mby5hbGlnbixcbiAgICAgICAgICAgIGluZGVudEZpcnN0TGluZTogaXNGaXJzdCA/IGxpbmVJbmZvLmluZGVudC5maXJzdExpbmUgOiBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5pbmRlbnRGaXJzdExpbmUsXG4gICAgICAgICAgICBpbmRlbnRIYW5naW5nOiBpc0ZpcnN0ID8gbGluZUluZm8uaW5kZW50LmhhbmdpbmcgOiBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5pbmRlbnRIYW5naW5nLFxuICAgICAgICAgICAgaW5kZW50TGVmdDogbGluZUluZm8uaW5kZW50LmxlZnQsXG4gICAgICAgICAgICBpbmRlbnRSaWdodDogbGluZUluZm8uaW5kZW50LnJpZ2h0LFxuICAgICAgICAgICAgaW5kZW50QmVmb3JlOiBsaW5lSW5mby5vZmZzZXRCZWZvcmUsXG4gICAgICAgICAgICBpbmRlbnRBZnRlcjogbGluZUluZm8ub2Zmc2V0QWZ0ZXIsXG4gICAgICAgICAgICBpc1BhZ2VCcmVhazogZmFsc2UsXG4gICAgICAgICAgICBpc0xpbmVCcmVhazogZmFsc2UsXG4gICAgICAgICAgICBkaXNwbGF5VmFsdWUsXG4gICAgICAgICAgICBpc1RhYjogY29tcG9uZW50Lmluc3RhbmNlIGluc3RhbmNlb2YgTm9kZXJUYWJDb21wb25lbnQsXG4gICAgICAgICAgICBpc1RhYmxlOiBjb21wb25lbnQuaW5zdGFuY2UgaW5zdGFuY2VvZiBOb2RlclRhYmxlQ29tcG9uZW50XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZpbmRDb21wb25lbnRUeXBlKHR5cGU6IG51bWJlcik6IFR5cGU8QmFzZU5vZGVyQ29tcG9uZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRzLmZpbmQoeCA9PiB4LnR5cGUgPT09IHR5cGUpLmNvbXBvbmVudFR5cGU7XG4gICAgfVxuXG4gICAgZmluZENvbXBvbmVudDxUPihjb21wb25lbnRzOiBDb21wb25lbnRSZWY8VD5bXSwgaW5zZXJ0SW5kZXg6IG51bWJlcik6IENvbXBvbmVudFJlZjxUPiB7XG4gICAgICAgIHJldHVybiBjb21wb25lbnRzLmZpbmQoKHg6IGFueSkgPT4geC5pbnN0YW5jZS5pbnNlcnRJbmRleCA9PT0gaW5zZXJ0SW5kZXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGcmFnbWVudENvbnRhaW5Db21wb25lbnRzKGNvbXBvbmVudHM6IENvbXBvbmVudFJlZjxCYXNlTm9kZXJDb21wb25lbnQ+W10sIGRpc3RhbmNlOiBEaXN0YW5jZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBjb21wb25lbnRzLnNvbWUoeCA9PiB4Lmluc3RhbmNlLmluc2VydEluZGV4ID49IGRpc3RhbmNlLnN0YXJ0ICYmIHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPD0gZGlzdGFuY2UuZW5kKTtcbiAgICB9XG5cbiAgICBpc1NwZWNpYWxNYXJrZXIoY2hhcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBjaGFyID09PSBDVVNUT01fRUxFTUVOVF9NQVJLRVIgfHwgY2hhciA9PT0gVEFCTEVfTUFSS0VSO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -28,7 +28,7 @@ export class NoderTableCellComponent {
|
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
ngOnDestroy() {
|
|
31
|
-
this.session?.
|
|
31
|
+
this.session?.displayData.removeEventListener('pagesCountChanged', this.pagesCountChangedHandler);
|
|
32
32
|
this.regulatorService.removeSession(this.sessionId);
|
|
33
33
|
}
|
|
34
34
|
initialize() {
|
|
@@ -45,18 +45,18 @@ export class NoderTableCellComponent {
|
|
|
45
45
|
this.addEventListeners();
|
|
46
46
|
}
|
|
47
47
|
getCellContentHeight() {
|
|
48
|
-
this._allParagraphsHeight = this.session.
|
|
48
|
+
this._allParagraphsHeight = this.session.displayData.getAllParagraphsHeight();
|
|
49
49
|
return this._allParagraphsHeight;
|
|
50
50
|
}
|
|
51
|
-
|
|
52
|
-
this.editorService.
|
|
51
|
+
disableEditorSelection() {
|
|
52
|
+
this.editorService.disableSelection();
|
|
53
53
|
}
|
|
54
54
|
onStartResizing(event, border) {
|
|
55
55
|
event.stopPropagation();
|
|
56
56
|
this.startResizing(new CellResizerParametersModel(this.columnIndex, this.rowIndex, this.cellIndex, border));
|
|
57
57
|
}
|
|
58
58
|
addEventListeners() {
|
|
59
|
-
this.session.
|
|
59
|
+
this.session.displayData.addEventListener('pagesCountChanged', this.pagesCountChangedHandler);
|
|
60
60
|
}
|
|
61
61
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderTableCellComponent, deps: [{ token: i1.EditorService }, { token: i2.RegulatorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
62
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NoderTableCellComponent, selector: "app-nod-table-cell", inputs: { table: "table", cell: "cell", rowIndex: "rowIndex", cellIndex: "cellIndex", columnIndex: "columnIndex", width: "width", parentSessionId: "parentSessionId", generalProperties: "generalProperties", heightChanged: "heightChanged", startResizing: "startResizing" }, host: { properties: { "class.highlighted": "this.isHighlighted", "attr.data-session-id": "this.sessionId" } }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }], ngImport: i0, template: "<div\n *ngIf=\"cellIndex === 0\"\n class=\"resizer left-border\"\n (mousedown)=\"onStartResizing($event, resizerBorder.Left)\"></div>\n<div\n #container\n class=\"edit-container\"></div>\n<div class=\"highlight-container\"></div>\n<div\n class=\"resizer right-border\"\n (mousedown)=\"onStartResizing($event, resizerBorder.Right)\"></div>\n", styles: [".highlight-container{visibility:hidden;position:absolute;width:100%;height:100%;background-color:#5ea8f766;pointer-events:none;overflow:hidden}:host{display:flex;position:relative;min-height:19px;height:100%;background:transparent}:host.highlighted .highlight-container{visibility:visible}.edit-container{min-height:1px;overflow:hidden}.left-border{left:-6px}.resizer{cursor:col-resize;width:11px;height:100%;position:absolute;z-index:1}.right-border{right:-6px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
94
94
|
type: ViewChild,
|
|
95
95
|
args: ['container', { static: true }]
|
|
96
96
|
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL3RhYmxlLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2NvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHOUcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFJNUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7QUFXakYsTUFBTSxPQUFPLHVCQUF1QjtJQTZCaEMsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBUUQsWUFBb0IsYUFBNEIsRUFBVSxnQkFBa0M7UUFBeEUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBckI1RixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQWlCYixrQkFBYSxHQUFHLFdBQVcsQ0FBQztRQTRDN0IsNkJBQXdCLEdBQUcsQ0FBQyxLQUE2QixFQUFRLEVBQUU7WUFDdkUsSUFBSSxJQUFJLENBQUMs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RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENlbGxNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvY2VsbC5tb2RlbCc7XG5pbXBvcnQgeyBDZWxsUmVzaXplclBhcmFtZXRlcnNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvdGFibGUvbW9kZWxzL2NlbGwtcmVzaXplci1wYXJhbWV0ZXJzLm1vZGVsJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vZXhlY3V0aW9uL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VuZXJhbFByb3BlcnRpZXNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2NvbnRlbnQvZGlzcGxheS1kYXRhL2dlbmVyYWwtcHJvcGVydGllcy5tb2RlbCc7XG5pbXBvcnQgeyBNYXJnaW5Nb2RlbCB9IGZyb20gJy4uLy4uLy4uL2NvbnRlbnQvbWFyZ2luLm1vZGVsJztcbmltcG9ydCB7IFJlZ3VsYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9leGVjdXRpb24vcmVndWxhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVuZGVyZXIgfSBmcm9tICcuLi8uLi8uLi9kaXNwbGF5L3JlbmRlcmVyJztcbmltcG9ydCB7IFJlc2l6ZXJTaWRlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy90YWJsZS9lbnVtcy9yZWlzaXplci1zaWRlLmVudW0nO1xuaW1wb3J0IHsgU2Vzc2lvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vZXhlY3V0aW9uL3RhcmdldGluZy9zZXNzaW9uLm1vZGVsJztcbmltcG9ydCB7IFRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RhYmxlLm1vZGVsJztcbmltcG9ydCB7IFZpcnR1YWxSZW5kZXJlciB9IGZyb20gJy4uLy4uLy4uL2Rpc3BsYXkvdmlydHVhbC5yZW5kZXJlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLW5vZC10YWJsZS1jZWxsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY2VsbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVyVGFibGVDZWxsQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSB0YWJsZTogVGFibGVNb2RlbDtcblxuICAgIEBJbnB1dCgpIGNlbGw6IENlbGxNb2RlbDtcblxuICAgIEBJbnB1dCgpIHJvd0luZGV4OiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSBjZWxsSW5kZXg6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpIGNvbHVtbkluZGV4OiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSB3aWR0aDogbnVtYmVyO1xuXG4gICAgQElucHV0KCkgcGFyZW50U2Vzc2lvbklkOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSBnZW5lcmFsUHJvcGVydGllczogR2VuZXJhbFByb3BlcnRpZXNNb2RlbDtcblxuICAgIEBJbnB1dCgpIGhlaWdodENoYW5nZWQ6IChyb3dJbmRleDogbnVtYmVyLCBjZWxsSW5kZXg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IHZvaWQ7XG5cbiAgICBASW5wdXQoKSBzdGFydFJlc2l6aW5nOiAoY2VsbFJlc2l6ZXJQYXJhbWV0ZXJzOiBDZWxsUmVzaXplclBhcmFtZXRlcnNNb2RlbCkgPT4gdm9pZDtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaGlnaGxpZ2h0ZWQnKVxuICAgIGlzSGlnaGxpZ2h0ZWQgPSBmYWxzZTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNlc3Npb24taWQnKVxuICAgIHNlc3Npb25JZDogbnVtYmVyO1xuXG4gICAgY2VsbFNlc3Npb246IFNlc3Npb25Nb2RlbDtcblxuICAgIGdldCBzZXNzaW9uKCk6IEVkaXRTZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2VsbFNlc3Npb24uc2Vzc2lvbjtcbiAgICB9XG5cbiAgICBnZXQgcmVuZGVyZXIoKTogUmVuZGVyZXIgfCBWaXJ0dWFsUmVuZGVyZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jZWxsU2Vzc2lvbi5yZW5kZXJlcjtcbiAgICB9XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgcmVhZG9ubHkgcmVzaXplckJvcmRlciA9IFJlc2l6ZXJTaWRlO1xuXG4gICAgcHJpdmF0ZSBfYWxsUGFyYWdyYXBoc0hlaWdodDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlLCBwcml2YXRlIHJlZ3VsYXRvclNlcnZpY2U6IFJlZ3VsYXRvclNlcnZpY2UpIHt9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXNzaW9uPy5kaXNwbGF5RGF0YS5yZW1vdmVFdmVudExpc3RlbmVyKCdwYWdlc0NvdW50Q2hhbmdlZCcsIHRoaXMucGFnZXNDb3VudENoYW5nZWRIYW5kbGVyKTtcbiAgICAgICAgdGhpcy5yZWd1bGF0b3JTZXJ2aWNlLnJlbW92ZVNlc3Npb24odGhpcy5zZXNzaW9uSWQpO1xuICAgIH1cblxuICAgIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1hcmdpbk1vZGVsID0gbmV3IE1hcmdpbk1vZGVsKHtcbiAgICAgICAgICAgIGxlZnQ6IDcsXG4gICAgICAgICAgICByaWdodDogNyxcbiAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgICAgIGhlYWRlcjogMCxcbiAgICAgICAgICAgIGZvb3RlcjogMFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jZWxsU2Vzc2lvbiA9IHRoaXMucmVndWxhdG9yU2VydmljZS5hZGRDZWxsU2Vzc2lvbih0aGlzLnRhYmxlLCBtYXJnaW5Nb2RlbCwgdGhpcywgdGhpcy5nZW5lcmFsUHJvcGVydGllcyk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbklkID0gdGhpcy5jZWxsU2Vzc2lvbi5zZXNzaW9uSWQ7XG4gICAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICBnZXRDZWxsQ29udGVudEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICB0aGlzLl9hbGxQYXJhZ3JhcGhzSGVpZ2h0ID0gdGhpcy5zZXNzaW9uLmRpc3BsYXlEYXRhLmdldEFsbFBhcmFncmFwaHNIZWlnaHQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FsbFBhcmFncmFwaHNIZWlnaHQ7XG4gICAgfVxuXG4gICAgZGlzYWJsZUVkaXRvclNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmRpc2FibGVTZWxlY3Rpb24oKTtcbiAgICB9XG5cbiAgICBvblN0YXJ0UmVzaXppbmcoZXZlbnQ6IE1vdXNlRXZlbnQsIGJvcmRlcjogUmVzaXplclNpZGUpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5zdGFydFJlc2l6aW5nKG5ldyBDZWxsUmVzaXplclBhcmFtZXRlcnNNb2RlbCh0aGlzLmNvbHVtbkluZGV4LCB0aGlzLnJvd0luZGV4LCB0aGlzLmNlbGxJbmRleCwgYm9yZGVyKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRFdmVudExpc3RlbmVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXNzaW9uLmRpc3BsYXlEYXRhLmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzQ291bnRDaGFuZ2VkJywgdGhpcy5wYWdlc0NvdW50Q2hhbmdlZEhhbmRsZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFnZXNDb3VudENoYW5nZWRIYW5kbGVyID0gKGV2ZW50OiB7IHBhZ2VIZWlnaHQ6IG51bWJlciB9KTogdm9pZCA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9hbGxQYXJhZ3JhcGhzSGVpZ2h0ID09PSBldmVudC5wYWdlSGVpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9hbGxQYXJhZ3JhcGhzSGVpZ2h0ID0gZXZlbnQucGFnZUhlaWdodDtcbiAgICAgICAgY29uc3QgY2VsbENvbnRlbnRIZWlnaHQgPSB0aGlzLl9hbGxQYXJhZ3JhcGhzSGVpZ2h0O1xuICAgICAgICB0aGlzLmhlaWdodENoYW5nZWQodGhpcy5yb3dJbmRleCwgdGhpcy5jZWxsSW5kZXgsIGNlbGxDb250ZW50SGVpZ2h0KTtcbiAgICB9O1xufVxuIiwiPGRpdlxuICAgICpuZ0lmPVwiY2VsbEluZGV4ID09PSAwXCJcbiAgICBjbGFzcz1cInJlc2l6ZXIgbGVmdC1ib3JkZXJcIlxuICAgIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6aW5nKCRldmVudCwgcmVzaXplckJvcmRlci5MZWZ0KVwiPjwvZGl2PlxuPGRpdlxuICAgICNjb250YWluZXJcbiAgICBjbGFzcz1cImVkaXQtY29udGFpbmVyXCI+PC9kaXY+XG48ZGl2IGNsYXNzPVwiaGlnaGxpZ2h0LWNvbnRhaW5lclwiPjwvZGl2PlxuPGRpdlxuICAgIGNsYXNzPVwicmVzaXplciByaWdodC1ib3JkZXJcIlxuICAgIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6aW5nKCRldmVudCwgcmVzaXplckJvcmRlci5SaWdodClcIj48L2Rpdj5cbiJdfQ==
|