@worktile/theia 2.2.10 → 2.3.0-next.2
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 +464 -229
- package/bundles/worktile-theia.umd.js.map +1 -1
- package/constants/default.d.ts +2 -0
- package/constants/node-types.d.ts +4 -0
- package/custom-types.d.ts +3 -1
- package/editor.component.d.ts +1 -1
- package/esm2015/constants/default.js +1 -1
- package/esm2015/constants/node-types.js +6 -1
- package/esm2015/custom-types.js +1 -1
- package/esm2015/editor.component.js +1 -2
- package/esm2015/interfaces/editor.js +1 -1
- package/esm2015/interfaces/image.js +1 -1
- package/esm2015/interfaces/valid-children-types.js +2 -1
- package/esm2015/plugins/align/align.editor.js +14 -2
- package/esm2015/plugins/align/options.js +3 -2
- package/esm2015/plugins/common/auto-insert-data..js +2 -18
- package/esm2015/plugins/image/image.component.js +168 -14
- package/esm2015/plugins/image/image.editor.js +4 -1
- package/esm2015/plugins/quick-insert/components/quick-insert.component.js +13 -2
- package/esm2015/services/context.service.js +5 -1
- package/esm2015/utils/dom.js +40 -2
- package/esm2015/utils/index.js +3 -1
- package/esm2015/utils/merge-element-options.js +20 -0
- package/fesm2015/worktile-theia.js +417 -197
- package/fesm2015/worktile-theia.js.map +1 -1
- package/interfaces/editor.d.ts +4 -1
- package/interfaces/image.d.ts +7 -1
- package/interfaces/valid-children-types.d.ts +1 -0
- package/package.json +1 -1
- package/plugins/align/align.editor.d.ts +1 -0
- package/plugins/image/image.component.d.ts +27 -3
- package/plugins/image/image.component.scss +12 -2
- package/plugins/image/image.editor.d.ts +6 -1
- package/plugins/quick-insert/components/quick-insert.component.d.ts +1 -0
- package/plugins/table/components/table.component.scss +3 -2
- package/services/context.service.d.ts +1 -0
- package/styles/editor.scss +11 -0
- package/styles/index.scss +1 -1
- package/styles/typo.scss +56 -1
- package/utils/dom.d.ts +5 -1
- package/utils/index.d.ts +2 -0
- package/utils/merge-element-options.d.ts +2 -0
|
@@ -2,30 +2,83 @@ import { __awaiter } from "tslib";
|
|
|
2
2
|
import { Component, ViewChild, Inject } from '@angular/core';
|
|
3
3
|
import { AngularEditor } from 'slate-angular';
|
|
4
4
|
import { THE_UPLOAD_SERVICE_TOKEN } from '../../interfaces/image';
|
|
5
|
-
import { Alignment, ElementKinds } from '../../constants/node-types';
|
|
5
|
+
import { Alignment, ElementKinds, LayoutTypes, ToolbarActionTypes } from '../../constants/node-types';
|
|
6
6
|
import { HistoryEditor } from 'slate-history';
|
|
7
7
|
import { Transforms } from 'slate';
|
|
8
8
|
import { map } from 'rxjs/operators';
|
|
9
9
|
import { ThyUploadStatus } from 'ngx-tethys/uploader';
|
|
10
10
|
import { TheBaseElementComponent } from '../../interfaces';
|
|
11
|
+
import { ImageEditor } from './image.editor';
|
|
12
|
+
import * as TheTransforms from '../../transforms';
|
|
13
|
+
import * as TheQueries from '../../queries';
|
|
11
14
|
import * as i0 from "@angular/core";
|
|
12
15
|
import * as i1 from "@angular/platform-browser";
|
|
13
16
|
import * as i2 from "../../services/context.service";
|
|
14
|
-
import * as i3 from "
|
|
15
|
-
import * as i4 from "
|
|
16
|
-
import * as i5 from "
|
|
17
|
-
import * as i6 from "
|
|
17
|
+
import * as i3 from "ngx-tethys/popover";
|
|
18
|
+
import * as i4 from "@angular/cdk/overlay";
|
|
19
|
+
import * as i5 from "slate-angular";
|
|
20
|
+
import * as i6 from "ngx-tethys/progress";
|
|
21
|
+
import * as i7 from "ngx-tethys/icon";
|
|
22
|
+
import * as i8 from "ngx-tethys/nav";
|
|
23
|
+
import * as i9 from "../../components/nav-split-line/nav-split-line.component";
|
|
24
|
+
import * as i10 from "@angular/common";
|
|
25
|
+
import * as i11 from "ngx-tethys/tooltip";
|
|
18
26
|
export class TheImageComponent extends TheBaseElementComponent {
|
|
19
|
-
constructor(elementRef, sanitizer, imageUploaderService, cdr, theContextService) {
|
|
27
|
+
constructor(elementRef, sanitizer, imageUploaderService, cdr, theContextService, thyPopover, overlay, viewContainerRef) {
|
|
20
28
|
super(elementRef, cdr);
|
|
21
29
|
this.elementRef = elementRef;
|
|
22
30
|
this.sanitizer = sanitizer;
|
|
23
31
|
this.imageUploaderService = imageUploaderService;
|
|
24
32
|
this.cdr = cdr;
|
|
25
33
|
this.theContextService = theContextService;
|
|
34
|
+
this.thyPopover = thyPopover;
|
|
35
|
+
this.overlay = overlay;
|
|
36
|
+
this.viewContainerRef = viewContainerRef;
|
|
26
37
|
this.imageEntry = {};
|
|
27
38
|
this.uploading = false;
|
|
28
39
|
this.percentage = 0;
|
|
40
|
+
this.layoutDefaultWidth = 368;
|
|
41
|
+
this.layoutOptions = [
|
|
42
|
+
{
|
|
43
|
+
key: Alignment.left,
|
|
44
|
+
icon: 'image-left',
|
|
45
|
+
name: '左对齐',
|
|
46
|
+
handle: (e, key) => this.setImageNode(e, { align: key, layout: undefined })
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
key: Alignment.center,
|
|
50
|
+
icon: 'image-center',
|
|
51
|
+
name: '居中',
|
|
52
|
+
handle: (e, key) => this.setImageNode(e, { align: key, layout: undefined })
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
key: Alignment.right,
|
|
56
|
+
icon: 'image-right',
|
|
57
|
+
name: '右对齐',
|
|
58
|
+
handle: (e, key) => this.setImageNode(e, { align: key, layout: undefined })
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
key: ToolbarActionTypes.split
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
key: LayoutTypes.wrapLeft,
|
|
65
|
+
icon: 'wrap-left',
|
|
66
|
+
name: '隐藏左边',
|
|
67
|
+
handle: (e, key) => this.setImageNode(e, { layout: key })
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
key: LayoutTypes.wrapRight,
|
|
71
|
+
icon: 'wrap-right',
|
|
72
|
+
name: '隐藏右边',
|
|
73
|
+
handle: (e, key) => this.setImageNode(e, { layout: key })
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
key: 'remove',
|
|
77
|
+
icon: 'trash',
|
|
78
|
+
name: '删除',
|
|
79
|
+
handle: (e) => this.onDelete(e)
|
|
80
|
+
}
|
|
81
|
+
];
|
|
29
82
|
this.dragable = false;
|
|
30
83
|
this.beforeContextChange = (value) => {
|
|
31
84
|
if (value.element !== this.element && value.element.thumbUrl) {
|
|
@@ -35,19 +88,37 @@ export class TheImageComponent extends TheBaseElementComponent {
|
|
|
35
88
|
height: value.element.height,
|
|
36
89
|
thumbUrl: value.element.thumbUrl,
|
|
37
90
|
originUrl: value.element.originUrl,
|
|
38
|
-
align: value.element.align || Alignment.left
|
|
91
|
+
align: value.element.align || Alignment.left,
|
|
92
|
+
layout: value.element.layout,
|
|
93
|
+
reSized: value.element.reSized || false
|
|
39
94
|
};
|
|
95
|
+
this.setBlockCardLayoutAttr();
|
|
40
96
|
}
|
|
41
97
|
};
|
|
42
98
|
}
|
|
99
|
+
get isOpen() {
|
|
100
|
+
return this.layoutToolbarRef && this.layoutToolbarRef.getOverlayRef() && this.layoutToolbarRef.getOverlayRef().hasAttached();
|
|
101
|
+
}
|
|
43
102
|
ngOnInit() {
|
|
44
103
|
var _a;
|
|
104
|
+
this.layoutDefaultWidth = this.theContextService.layoutDefaultWidth();
|
|
45
105
|
this.file = (_a = this.theContextService.fileList.find(item => item.url === this.element.url)) === null || _a === void 0 ? void 0 : _a.file;
|
|
46
106
|
if (this.file && this.file instanceof File) {
|
|
47
107
|
this.uploadImage(this.file);
|
|
48
108
|
}
|
|
49
109
|
super.ngOnInit();
|
|
50
110
|
}
|
|
111
|
+
onContextChange() {
|
|
112
|
+
super.onContextChange();
|
|
113
|
+
if (this.initialized) {
|
|
114
|
+
if (this.isShouldOpen()) {
|
|
115
|
+
this.openLayoutToolbar();
|
|
116
|
+
}
|
|
117
|
+
if (this.isShouldClose()) {
|
|
118
|
+
this.closeLayoutToolbar();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
51
122
|
ngOnDestroy() {
|
|
52
123
|
this.uploadingSubscription.unsubscribe();
|
|
53
124
|
this.mouseUpSubscription.unsubscribe();
|
|
@@ -116,18 +187,20 @@ export class TheImageComponent extends TheBaseElementComponent {
|
|
|
116
187
|
axis,
|
|
117
188
|
printerPositionX: event.pageX,
|
|
118
189
|
printerPositionY: event.pageY,
|
|
119
|
-
internalWidth:
|
|
120
|
-
internalHeight:
|
|
190
|
+
internalWidth: imgElement.width || this.imageEntry.width,
|
|
191
|
+
internalHeight: imgElement.height || this.imageEntry.height,
|
|
121
192
|
maxWidth: this.theContextService.getOptions().width
|
|
122
193
|
};
|
|
123
194
|
this.mouseMoveSubscription = this.theContextService.onMouseMove$.subscribe(e => this.mouseMoveHandle(e, options));
|
|
124
195
|
}
|
|
125
196
|
mouseMoveHandle(event, options) {
|
|
197
|
+
var _a;
|
|
126
198
|
if (this.dragable) {
|
|
127
199
|
const { axis, printerPositionX, printerPositionY, internalWidth, internalHeight, maxWidth } = options;
|
|
128
200
|
const isReversal = axis.includes('-');
|
|
129
201
|
let offsetX = event.pageX - printerPositionX;
|
|
130
202
|
let offsetY = event.pageY - printerPositionY;
|
|
203
|
+
let { width, height } = this.element;
|
|
131
204
|
if (isReversal) {
|
|
132
205
|
offsetX = -offsetX;
|
|
133
206
|
offsetY = -offsetY;
|
|
@@ -135,11 +208,15 @@ export class TheImageComponent extends TheBaseElementComponent {
|
|
|
135
208
|
if (this.element.align === 'center') {
|
|
136
209
|
offsetX = offsetX * 2;
|
|
137
210
|
}
|
|
138
|
-
let { width, height } = this.element;
|
|
139
211
|
if (axis.includes('x')) {
|
|
140
212
|
width = offsetX + internalWidth;
|
|
141
213
|
if (width >= maxWidth) {
|
|
142
214
|
width = maxWidth;
|
|
215
|
+
// clear `layout` when the image is adjusted to the maximum value under rich media
|
|
216
|
+
if ((_a = this.imageEntry) === null || _a === void 0 ? void 0 : _a.layout) {
|
|
217
|
+
const path = TheQueries.findPath(this.editor, this.element);
|
|
218
|
+
ImageEditor.setImageNode(this.editor, path, { layout: undefined });
|
|
219
|
+
}
|
|
143
220
|
}
|
|
144
221
|
if (width <= 100) {
|
|
145
222
|
width = 100;
|
|
@@ -162,6 +239,9 @@ export class TheImageComponent extends TheBaseElementComponent {
|
|
|
162
239
|
width = internalWidth / ratio;
|
|
163
240
|
}
|
|
164
241
|
}
|
|
242
|
+
if (!this.imageEntry.reSized && this.imageEntry.width !== width) {
|
|
243
|
+
this.imageEntry.reSized = true;
|
|
244
|
+
}
|
|
165
245
|
this.imageContent.nativeElement.style.width = width + 'px';
|
|
166
246
|
this.imageContent.nativeElement.style.height = height + 'px';
|
|
167
247
|
this.imageEntry.width = width;
|
|
@@ -184,9 +264,80 @@ export class TheImageComponent extends TheBaseElementComponent {
|
|
|
184
264
|
}
|
|
185
265
|
$event.stopPropagation();
|
|
186
266
|
}
|
|
267
|
+
isShouldOpen() {
|
|
268
|
+
const { theOptions: { richMedia } } = this.theContextService.getOptions();
|
|
269
|
+
return !(this === null || this === void 0 ? void 0 : this.readonly) && richMedia && (this === null || this === void 0 ? void 0 : this.isCollapsed) && !this.uploading && !this.isOpen;
|
|
270
|
+
}
|
|
271
|
+
isShouldClose() {
|
|
272
|
+
return this.isOpen && ((this === null || this === void 0 ? void 0 : this.readonly) || !(this === null || this === void 0 ? void 0 : this.isCollapsed) || this.uploading);
|
|
273
|
+
}
|
|
274
|
+
openLayoutToolbar() {
|
|
275
|
+
var _a;
|
|
276
|
+
this.layoutToolbarRef = this.thyPopover.open(this.layoutToolbar, {
|
|
277
|
+
origin: this.imageContent,
|
|
278
|
+
panelClass: ['the-image-toolbar'],
|
|
279
|
+
placement: 'bottom',
|
|
280
|
+
insideClosable: false,
|
|
281
|
+
backdropClosable: true,
|
|
282
|
+
hasBackdrop: false,
|
|
283
|
+
offset: 10,
|
|
284
|
+
viewContainerRef: this.viewContainerRef,
|
|
285
|
+
scrollStrategy: this.overlay.scrollStrategies.reposition()
|
|
286
|
+
});
|
|
287
|
+
(_a = this.layoutToolbarRef) === null || _a === void 0 ? void 0 : _a.getOverlayRef().updatePositionStrategy(this.createPositionStrategy());
|
|
288
|
+
}
|
|
289
|
+
closeLayoutToolbar() {
|
|
290
|
+
var _a;
|
|
291
|
+
(_a = this.layoutToolbarRef) === null || _a === void 0 ? void 0 : _a.close();
|
|
292
|
+
}
|
|
293
|
+
layoutActive(key) {
|
|
294
|
+
const { layout, align } = this.imageEntry;
|
|
295
|
+
return key && ((key === align && !layout) || key === layout);
|
|
296
|
+
}
|
|
297
|
+
setImageNode(e, partial) {
|
|
298
|
+
e.preventDefault();
|
|
299
|
+
const path = TheQueries.findPath(this.editor, this.element);
|
|
300
|
+
ImageEditor.setImageNode(this.editor, path, partial);
|
|
301
|
+
}
|
|
302
|
+
setBlockCardLayoutAttr() {
|
|
303
|
+
Promise.resolve().then(() => {
|
|
304
|
+
var _a;
|
|
305
|
+
const currentElement = AngularEditor.toDOMNode(this.editor, this.element);
|
|
306
|
+
const blockCard = currentElement.closest('.slate-block-card');
|
|
307
|
+
const { layout } = this.element;
|
|
308
|
+
if (blockCard && layout) {
|
|
309
|
+
blockCard.setAttribute('layout', layout);
|
|
310
|
+
}
|
|
311
|
+
else if (blockCard && !layout) {
|
|
312
|
+
blockCard.removeAttribute('layout');
|
|
313
|
+
}
|
|
314
|
+
(_a = this.layoutToolbarRef) === null || _a === void 0 ? void 0 : _a.getOverlayRef().updatePosition();
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
onDelete(event) {
|
|
318
|
+
event.preventDefault();
|
|
319
|
+
TheTransforms.deleteElement(this.editor, this.element);
|
|
320
|
+
}
|
|
321
|
+
createPositionStrategy() {
|
|
322
|
+
const bottomPosition = {
|
|
323
|
+
originX: 'center',
|
|
324
|
+
originY: 'bottom',
|
|
325
|
+
overlayX: 'center',
|
|
326
|
+
overlayY: 'top',
|
|
327
|
+
offsetX: 0,
|
|
328
|
+
offsetY: 10
|
|
329
|
+
};
|
|
330
|
+
return this.overlay
|
|
331
|
+
.position()
|
|
332
|
+
.flexibleConnectedTo(this.imageContent)
|
|
333
|
+
.withFlexibleDimensions(false)
|
|
334
|
+
.withGrowAfterOpen(false)
|
|
335
|
+
.withPush(false)
|
|
336
|
+
.withPositions([bottomPosition]);
|
|
337
|
+
}
|
|
187
338
|
}
|
|
188
|
-
TheImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TheImageComponent, deps: [{ token: i0.ElementRef }, { token: i1.DomSanitizer }, { token: THE_UPLOAD_SERVICE_TOKEN }, { token: i0.ChangeDetectorRef }, { token: i2.TheContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
189
|
-
TheImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: TheImageComponent, selector: "the-image, [theImage]", viewQueries: [{ propertyName: "imageContent", first: true, predicate: ["imageContent"], descendants: true }, { propertyName: "img", first: true, predicate: ["img"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"></slate-children>\n<div class=\"image-container\" contenteditable=\"false\" [style.textAlign]=\"imageEntry.align\">\n <div\n #imageContent\n *ngIf=\"imageEntry.thumbUrl\"\n class=\"image-content\"\n [class.pointer]=\"!selection\"\n [ngStyle]=\"{ width: imageEntry.width
|
|
339
|
+
TheImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TheImageComponent, deps: [{ token: i0.ElementRef }, { token: i1.DomSanitizer }, { token: THE_UPLOAD_SERVICE_TOKEN }, { token: i0.ChangeDetectorRef }, { token: i2.TheContextService }, { token: i3.ThyPopover }, { token: i4.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
340
|
+
TheImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: TheImageComponent, selector: "the-image, [theImage]", viewQueries: [{ propertyName: "imageContent", first: true, predicate: ["imageContent"], descendants: true }, { propertyName: "img", first: true, predicate: ["img"], descendants: true }, { propertyName: "layoutToolbar", first: true, predicate: ["layoutToolbar"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"></slate-children>\n\n<div class=\"image-container\" contenteditable=\"false\" [style.textAlign]=\"imageEntry.align\">\n <div\n #imageContent\n *ngIf=\"imageEntry.thumbUrl\"\n class=\"image-content\"\n [class.pointer]=\"!selection\"\n [ngStyle]=\"{\n 'width.px':\n imageEntry?.layout && imageEntry?.width > layoutDefaultWidth && !imageEntry?.reSized\n ? layoutDefaultWidth\n : imageEntry.width,\n 'height.px': imageEntry.height\n }\"\n >\n <img #img class=\"main-image\" [src]=\"imageEntry.thumbUrl\" [alt]=\"imageEntry.name\" />\n <div *ngIf=\"selection\" class=\"image-profile\" [class.outline]=\"selection\">\n <span *ngIf=\"isCollapsed\" (mousedown)=\"startDrag($event, '-xl')\" class=\"image-pointer left top\"></span>\n <span *ngIf=\"isCollapsed\" (mousedown)=\"startDrag($event, 'xl')\" class=\"image-pointer right top\"></span>\n <span *ngIf=\"isCollapsed\" (mousedown)=\"startDrag($event, 'xl')\" class=\"image-pointer right bottom\"></span>\n <span *ngIf=\"isCollapsed\" (mousedown)=\"startDrag($event, '-xl')\" class=\"image-pointer left bottom\"></span>\n </div>\n <div *ngIf=\"uploading\" class=\"uploading\">\n <div class=\"uploading-percentage\">\n <thy-progress thyType=\"primary\" [thyValue]=\"percentage\" thySize=\"sm\"></thy-progress>\n <thy-icon (click)=\"cancelUpload($event)\" thyIconName=\"close-circle-bold-fill\" thyIconLegging=\"true\"></thy-icon>\n </div>\n </div>\n <div *ngIf=\"!uploading\" class=\"layer\" (mousedown)=\"preview($event)\" [class.readonly]=\"readonly\"></div>\n </div>\n <div *ngIf=\"!imageEntry.thumbUrl\" class=\"image-loading\" contenteditable=\"false\">\n <thy-icon thyIconName=\"image\"></thy-icon>\n </div>\n</div>\n\n<ng-template #layoutToolbar>\n <div class=\"the-block-toolbar-popover\" contenteditable=\"false\">\n <thy-icon-nav>\n <ng-container *ngFor=\"let item of layoutOptions\">\n <a\n *ngIf=\"item.key !== 'split'\"\n href=\"javascript:;\"\n thyIconNavLink\n [ngClass]=\"{ 'remove-link': item.key === 'remove' }\"\n [thyIconNavLinkIcon]=\"item.icon\"\n [thyTooltip]=\"item.name\"\n [thyIconNavLinkActive]=\"layoutActive(item.key)\"\n thyTooltipPlacement=\"top\"\n (mousedown)=\"item?.handle($event, item.key)\"\n ></a>\n <nav-split-line *ngIf=\"item.key === 'split'\"></nav-split-line>\n </ng-container>\n </thy-icon-nav>\n </div>\n</ng-template>\n", components: [{ type: i5.SlateChildrenComponent, selector: "slate-children", inputs: ["children", "context", "viewContext"] }, { type: i6.ThyProgressComponent, selector: "thy-progress", inputs: ["thyType", "thySize", "thyValue", "thyMax", "thyTips"] }, { type: i7.ThyIconComponent, selector: "thy-icon", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { type: i8.ThyIconNavComponent, selector: "thy-icon-nav", inputs: ["thyType"] }, { type: i8.ThyIconNavLinkComponent, selector: "[thyIconNavLink]", inputs: ["thyIconNavLinkIcon", "thyIconNavLinkActive"] }, { type: i9.NavSplitLineComponent, selector: "nav-split-line", inputs: ["mode"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i11.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }] });
|
|
190
341
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TheImageComponent, decorators: [{
|
|
191
342
|
type: Component,
|
|
192
343
|
args: [{
|
|
@@ -196,11 +347,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
|
196
347
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DomSanitizer }, { type: undefined, decorators: [{
|
|
197
348
|
type: Inject,
|
|
198
349
|
args: [THE_UPLOAD_SERVICE_TOKEN]
|
|
199
|
-
}] }, { type: i0.ChangeDetectorRef }, { type: i2.TheContextService }]; }, propDecorators: { imageContent: [{
|
|
350
|
+
}] }, { type: i0.ChangeDetectorRef }, { type: i2.TheContextService }, { type: i3.ThyPopover }, { type: i4.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { imageContent: [{
|
|
200
351
|
type: ViewChild,
|
|
201
352
|
args: ['imageContent']
|
|
202
353
|
}], img: [{
|
|
203
354
|
type: ViewChild,
|
|
204
355
|
args: ['img', { static: false }]
|
|
356
|
+
}], layoutToolbar: [{
|
|
357
|
+
type: ViewChild,
|
|
358
|
+
args: ['layoutToolbar', { static: true }]
|
|
205
359
|
}] } });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBYSxNQUFNLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBRSxhQUFhLEVBQTRDLE1BQU0sZUFBZSxDQUFDO0FBRXhGLE9BQU8sRUFBYyx3QkFBd0IsRUFBMkIsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLE9BQU8sQ0FBQztBQUUzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7OztBQVMzRCxNQUFNLE9BQU8saUJBQ1QsU0FBUSx1QkFBNkM7SUF5QnJELFlBQ1csVUFBc0IsRUFDdEIsU0FBdUIsRUFFdEIsb0JBQTZDLEVBQzlDLEdBQXNCLEVBQ3JCLGlCQUFvQztRQUU1QyxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBUGhCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUV0Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXlCO1FBQzlDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3JCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUE1QmhELGVBQVUsR0FBZSxFQUFFLENBQUM7UUFFNUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBVVAsYUFBUSxHQUFHLEtBQUssQ0FBQztRQW1CekIsd0JBQW1CLEdBQUcsQ0FBQyxLQUF3QyxFQUFFLEVBQUU7WUFDL0QsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxVQUFVLEdBQUc7b0JBQ2QsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSTtvQkFDeEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSztvQkFDMUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTTtvQkFDNUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUTtvQkFDaEMsU0FBUyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUztvQkFDbEMsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxJQUFJO2lCQUMvQyxDQUFDO2FBQ0w7UUFDTCxDQUFDLENBQUM7SUFiRixDQUFDO0lBZUQsUUFBUTs7UUFDSixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQUEsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDBDQUFFLElBQUksQ0FBQztRQUM5RixJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksWUFBWSxJQUFJLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7UUFDRCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQjthQUNqRCxrQkFBa0IsRUFBRTthQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDcEcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO2dCQUN6QyxPQUFPO2FBQ1Y7WUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFDdEUsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxlQUFlLENBQUMsSUFBSSxFQUFFO2dCQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQzVDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFSyxXQUFXLENBQUMsSUFBVTs7WUFDeEIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZHLElBQUksQ0FBQyxVQUFVLEdBQUc7Z0JBQ2QsTUFBTTtnQkFDTixLQUFLO2dCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsTUFBTTtnQkFDaEQsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNyRixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hHLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0QsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQztZQUNqRCxNQUFNLFNBQVMsR0FBZTtnQkFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUs7Z0JBQzVCLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07Z0JBQzlCLFFBQVE7Z0JBQ1IsU0FBUztnQkFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLE1BQU07YUFDbkQsQ0FBQztZQUNGLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FDMUMsVUFBVSxDQUFDLFFBQVEsQ0FDZixJQUFJLENBQUMsTUFBTSxrQkFFUCxJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUssRUFDeEIsR0FBRyxFQUFFLElBQUksSUFDTixTQUFTLEdBRWhCLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUNmLENBQ0osQ0FBQztRQUNOLENBQUM7S0FBQTtJQUVPLGdCQUFnQixDQUFDLFNBQWUsRUFBRSxPQUFlO1FBQ3JELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QixLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDaEIsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDakMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDL0IsTUFBTSxLQUFLLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUNsRSxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztnQkFDekQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7Z0JBQ3RELE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQztZQUNGLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBaUIsRUFBRSxJQUFZO1FBQ3JDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWlDLENBQUM7UUFDOUQsTUFBTSxPQUFPLEdBQUc7WUFDWixJQUFJO1lBQ0osZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDN0IsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDN0IsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLO1lBQ3ZELGNBQWMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTTtZQUMxRCxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUs7U0FDdEQsQ0FBQztRQUNGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdEgsQ0FBQztJQUVELGVBQWUsQ0FDWCxLQUFpQixFQUNqQixPQU9DO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQztZQUN0RyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7WUFDN0MsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQztZQUM3QyxJQUFJLFVBQVUsRUFBRTtnQkFDWixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUM7Z0JBQ25CLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQzthQUN0QjtZQUNELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUNqQyxPQUFPLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQzthQUN6QjtZQUNELElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNyQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3BCLEtBQUssR0FBRyxPQUFPLEdBQUcsYUFBYSxDQUFDO2dCQUNoQyxJQUFJLEtBQUssSUFBSSxRQUFRLEVBQUU7b0JBQ25CLEtBQUssR0FBRyxRQUFRLENBQUM7aUJBQ3BCO2dCQUNELElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRTtvQkFDZCxLQUFLLEdBQUcsR0FBRyxDQUFDO2lCQUNmO2dCQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDcEIsTUFBTSxLQUFLLEdBQUcsYUFBYSxHQUFHLEtBQUssQ0FBQztvQkFDcEMsTUFBTSxHQUFHLGNBQWMsR0FBRyxLQUFLLENBQUM7aUJBQ25DO2FBQ0o7aUJBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMzQixNQUFNLEdBQUcsT0FBTyxHQUFHLGNBQWMsQ0FBQztnQkFDbEMsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO29CQUNoQixNQUFNLEdBQUcsSUFBSSxDQUFDO2lCQUNqQjtnQkFDRCxJQUFJLE1BQU0sSUFBSSxHQUFHLEVBQUU7b0JBQ2YsTUFBTSxHQUFHLEdBQUcsQ0FBQztpQkFDaEI7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNwQixNQUFNLEtBQUssR0FBRyxjQUFjLEdBQUcsTUFBTSxDQUFDO29CQUN0QyxLQUFLLEdBQUcsYUFBYSxHQUFHLEtBQUssQ0FBQztpQkFDakM7YUFDSjtZQUVELElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQztZQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztTQUNuQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBaUI7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pDLFVBQVUsQ0FBQyxRQUFRLENBQ2YsSUFBSSxDQUFDLE1BQU0sa0JBRVAsSUFBSSxFQUFFLFlBQVksQ0FBQyxLQUFLLElBQ3JCLElBQUksQ0FBQyxVQUFVLEdBRXRCLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FDekIsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFLO1FBQ2QsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBYTtRQUNqQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNuQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzdCLENBQUM7OytHQWxPUSxpQkFBaUIsd0VBNkJkLHdCQUF3QjttR0E3QjNCLGlCQUFpQiwrUUNwQjlCLHN6REE0QkE7NEZEUmEsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFdBQVcsRUFBRSx3QkFBd0I7aUJBQ3hDOzswQkE4QlEsTUFBTTsyQkFBQyx3QkFBd0I7NEdBUnBDLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjO2dCQUl6QixHQUFHO3NCQURGLFNBQVM7dUJBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIE9uRGVzdHJveSwgSW5qZWN0LCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciwgQmVmb3JlQ29udGV4dENoYW5nZSwgU2xhdGVFbGVtZW50Q29udGV4dCB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBJbWFnZUVudHJ5LCBUSEVfVVBMT0FEX1NFUlZJQ0VfVE9LRU4sIFRoZUltYWdlVXBsb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pbWFnZSc7XG5pbXBvcnQgeyBBbGlnbm1lbnQsIEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcbmltcG9ydCB7IEhpc3RvcnlFZGl0b3IgfSBmcm9tICdzbGF0ZS1oaXN0b3J5JztcbmltcG9ydCB7IFRyYW5zZm9ybXMsIEVkaXRvciB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMvaW50ZXJuYWwvU3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRoeVVwbG9hZFN0YXR1cyB9IGZyb20gJ25neC10ZXRoeXMvdXBsb2FkZXInO1xuaW1wb3J0IHsgVGhlQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGhlQmFzZUVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEltYWdlRWxlbWVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5cbmRlY2xhcmUgY29uc3QgJDogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoZS1pbWFnZSwgW3RoZUltYWdlXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUaGVJbWFnZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgVGhlQmFzZUVsZW1lbnRDb21wb25lbnQ8SW1hZ2VFbGVtZW50LCBFZGl0b3I+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgQmVmb3JlQ29udGV4dENoYW5nZTxTbGF0ZUVsZW1lbnRDb250ZXh0Plxue1xuICAgIGltYWdlRW50cnk6IEltYWdlRW50cnkgPSB7fTtcblxuICAgIHVwbG9hZGluZyA9IGZhbHNlO1xuXG4gICAgcGVyY2VudGFnZSA9IDA7XG5cbiAgICBmaWxlOiBGaWxlO1xuXG4gICAgcHJpdmF0ZSB1cGxvYWRpbmdTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHByaXZhdGUgbW91c2VNb3ZlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIG1vdXNlVXBTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHByaXZhdGUgZHJhZ2FibGUgPSBmYWxzZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2ltYWdlQ29udGVudCcpXG4gICAgaW1hZ2VDb250ZW50OiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgnaW1nJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgaW1nOiBFbGVtZW50UmVmO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwdWJsaWMgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgICAgIEBJbmplY3QoVEhFX1VQTE9BRF9TRVJWSUNFX1RPS0VOKVxuICAgICAgICBwcml2YXRlIGltYWdlVXBsb2FkZXJTZXJ2aWNlOiBUaGVJbWFnZVVwbG9hZGVyU2VydmljZSxcbiAgICAgICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgdGhlQ29udGV4dFNlcnZpY2U6IFRoZUNvbnRleHRTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XG4gICAgfVxuXG4gICAgYmVmb3JlQ29udGV4dENoYW5nZSA9ICh2YWx1ZTogU2xhdGVFbGVtZW50Q29udGV4dDxJbWFnZUVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZS5lbGVtZW50ICE9PSB0aGlzLmVsZW1lbnQgJiYgdmFsdWUuZWxlbWVudC50aHVtYlVybCkge1xuICAgICAgICAgICAgdGhpcy5pbWFnZUVudHJ5ID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IHZhbHVlLmVsZW1lbnQubmFtZSxcbiAgICAgICAgICAgICAgICB3aWR0aDogdmFsdWUuZWxlbWVudC53aWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhbHVlLmVsZW1lbnQuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIHRodW1iVXJsOiB2YWx1ZS5lbGVtZW50LnRodW1iVXJsLFxuICAgICAgICAgICAgICAgIG9yaWdpblVybDogdmFsdWUuZWxlbWVudC5vcmlnaW5VcmwsXG4gICAgICAgICAgICAgICAgYWxpZ246IHZhbHVlLmVsZW1lbnQuYWxpZ24gfHwgQWxpZ25tZW50LmxlZnRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZmlsZSA9IHRoaXMudGhlQ29udGV4dFNlcnZpY2UuZmlsZUxpc3QuZmluZChpdGVtID0+IGl0ZW0udXJsID09PSB0aGlzLmVsZW1lbnQudXJsKT8uZmlsZTtcbiAgICAgICAgaWYgKHRoaXMuZmlsZSAmJiB0aGlzLmZpbGUgaW5zdGFuY2VvZiBGaWxlKSB7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZEltYWdlKHRoaXMuZmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51cGxvYWRpbmdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5tb3VzZVVwU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLm1vdXNlVXBTdWJzY3JpcHRpb24gPSB0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLm9uTW91c2VVcCQuc3Vic2NyaWJlKGUgPT4gdGhpcy5lbmREcmFnKGUpKTtcbiAgICAgICAgdGhpcy51cGxvYWRpbmdTdWJzY3JpcHRpb24gPSB0aGlzLmltYWdlVXBsb2FkZXJTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0VXBsb2FkaW5nSXRlbXMkKClcbiAgICAgICAgICAgIC5waXBlKG1hcChmaWxlVXBsb2FkaW5nSXRlbSA9PiB0aGlzLmZpbGUgJiYgZmlsZVVwbG9hZGluZ0l0ZW0uZmluZChpdGVtID0+IGl0ZW0uZmlsZSA9PT0gdGhpcy5maWxlKSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHVwbG9hZGluZ0l0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdXBsb2FkaW5nSXRlbSB8fCAhdXBsb2FkaW5nSXRlbS5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnBlcmNlbnRhZ2UgPSB1cGxvYWRpbmdJdGVtLnJlc3VsdC51cGxvYWRGaWxlLnByb2dyZXNzLnBlcmNlbnRhZ2U7XG4gICAgICAgICAgICAgICAgaWYgKHVwbG9hZGluZ0l0ZW0ucmVzdWx0LnN0YXR1cyA9PT0gVGh5VXBsb2FkU3RhdHVzLmRvbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRpbmdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYXN5bmMgdXBsb2FkSW1hZ2UoZmlsZTogRmlsZSkge1xuICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGF3YWl0IHRoaXMucmVzb2x2ZUltYWdlU2l6ZShmaWxlLCB0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLmdldE9wdGlvbnMoKS53aWR0aCk7XG4gICAgICAgIHRoaXMuaW1hZ2VFbnRyeSA9IHtcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgYWxpZ246IHRoaXMuaW1hZ2VFbnRyeS5hbGlnbiB8fCBBbGlnbm1lbnQuY2VudGVyLFxuICAgICAgICAgICAgdGh1bWJVcmw6IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpKVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IFt1cGxvYWRGaWxlRW50aXR5XSA9IGF3YWl0IHRoaXMuaW1hZ2VVcGxvYWRlclNlcnZpY2UudXBsb2FkRmlsZUhhbmRsZShbZmlsZV0pLnRvUHJvbWlzZSgpO1xuICAgICAgICBjb25zdCBwYXRoID0gQW5ndWxhckVkaXRvci5maW5kUGF0aCh0aGlzLmVkaXRvciwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgY29uc3QgeyB0aHVtYlVybCwgb3JpZ2luVXJsIH0gPSB1cGxvYWRGaWxlRW50aXR5O1xuICAgICAgICBjb25zdCBpbWFnZUluZm86IEltYWdlRW50cnkgPSB7XG4gICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICB3aWR0aDogdGhpcy5pbWFnZUVudHJ5LndpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLmltYWdlRW50cnkuaGVpZ2h0LFxuICAgICAgICAgICAgdGh1bWJVcmwsXG4gICAgICAgICAgICBvcmlnaW5VcmwsXG4gICAgICAgICAgICBhbGlnbjogdGhpcy5pbWFnZUVudHJ5LmFsaWduIHx8IEFsaWdubWVudC5jZW50ZXJcbiAgICAgICAgfTtcbiAgICAgICAgSGlzdG9yeUVkaXRvci53aXRob3V0U2F2aW5nKHRoaXMuZWRpdG9yLCAoKSA9PlxuICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRvcixcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5pbWFnZSxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAuLi5pbWFnZUluZm9cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHsgYXQ6IHBhdGggfVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzb2x2ZUltYWdlU2l6ZShpbWFnZUZpbGU6IEZpbGUsIG1heFNpemU6IG51bWJlcik6IFByb21pc2U8eyBoZWlnaHQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9PiB7XG4gICAgICAgIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbWFnZUhlaWdodCA9IGltYWdlLmhlaWdodDtcbiAgICAgICAgICAgICAgICBjb25zdCBpbWFnZVdpZHRoID0gaW1hZ2Uud2lkdGg7XG4gICAgICAgICAgICAgICAgY29uc3QgcmF0aW8gPSBpbWFnZVdpZHRoID4gbWF4U2l6ZSA/IGltYWdlV2lkdGggLyBtYXhTaXplIDogZmFsc2U7XG4gICAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gcmF0aW8gPyBpbWFnZUhlaWdodCAvIHJhdGlvIDogaW1hZ2VIZWlnaHQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSByYXRpbyA/IGltYWdlV2lkdGggLyByYXRpbyA6IGltYWdlV2lkdGg7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7IGhlaWdodCwgd2lkdGggfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaW1hZ2Uuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChpbWFnZUZpbGUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGFydERyYWcoZXZlbnQ6IE1vdXNlRXZlbnQsIGF4aXM6IHN0cmluZykge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmRyYWdhYmxlID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgaW1nRWxlbWVudCA9IHRoaXMuaW1nLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEltYWdlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGF4aXMsXG4gICAgICAgICAgICBwcmludGVyUG9zaXRpb25YOiBldmVudC5wYWdlWCxcbiAgICAgICAgICAgIHByaW50ZXJQb3NpdGlvblk6IGV2ZW50LnBhZ2VZLFxuICAgICAgICAgICAgaW50ZXJuYWxXaWR0aDogdGhpcy5pbWFnZUVudHJ5LndpZHRoIHwgaW1nRWxlbWVudC53aWR0aCxcbiAgICAgICAgICAgIGludGVybmFsSGVpZ2h0OiB0aGlzLmltYWdlRW50cnkuaGVpZ2h0IHwgaW1nRWxlbWVudC5oZWlnaHQsXG4gICAgICAgICAgICBtYXhXaWR0aDogdGhpcy50aGVDb250ZXh0U2VydmljZS5nZXRPcHRpb25zKCkud2lkdGhcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5tb3VzZU1vdmVTdWJzY3JpcHRpb24gPSB0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLm9uTW91c2VNb3ZlJC5zdWJzY3JpYmUoZSA9PiB0aGlzLm1vdXNlTW92ZUhhbmRsZShlLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgbW91c2VNb3ZlSGFuZGxlKFxuICAgICAgICBldmVudDogTW91c2VFdmVudCxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgYXhpczogc3RyaW5nO1xuICAgICAgICAgICAgcHJpbnRlclBvc2l0aW9uWDogbnVtYmVyO1xuICAgICAgICAgICAgcHJpbnRlclBvc2l0aW9uWTogbnVtYmVyO1xuICAgICAgICAgICAgaW50ZXJuYWxXaWR0aDogbnVtYmVyO1xuICAgICAgICAgICAgaW50ZXJuYWxIZWlnaHQ6IG51bWJlcjtcbiAgICAgICAgICAgIG1heFdpZHRoOiBudW1iZXI7XG4gICAgICAgIH1cbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ2FibGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgYXhpcywgcHJpbnRlclBvc2l0aW9uWCwgcHJpbnRlclBvc2l0aW9uWSwgaW50ZXJuYWxXaWR0aCwgaW50ZXJuYWxIZWlnaHQsIG1heFdpZHRoIH0gPSBvcHRpb25zO1xuICAgICAgICAgICAgY29uc3QgaXNSZXZlcnNhbCA9IGF4aXMuaW5jbHVkZXMoJy0nKTtcbiAgICAgICAgICAgIGxldCBvZmZzZXRYID0gZXZlbnQucGFnZVggLSBwcmludGVyUG9zaXRpb25YO1xuICAgICAgICAgICAgbGV0IG9mZnNldFkgPSBldmVudC5wYWdlWSAtIHByaW50ZXJQb3NpdGlvblk7XG4gICAgICAgICAgICBpZiAoaXNSZXZlcnNhbCkge1xuICAgICAgICAgICAgICAgIG9mZnNldFggPSAtb2Zmc2V0WDtcbiAgICAgICAgICAgICAgICBvZmZzZXRZID0gLW9mZnNldFk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50LmFsaWduID09PSAnY2VudGVyJykge1xuICAgICAgICAgICAgICAgIG9mZnNldFggPSBvZmZzZXRYICogMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgIGlmIChheGlzLmluY2x1ZGVzKCd4JykpIHtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG9mZnNldFggKyBpbnRlcm5hbFdpZHRoO1xuICAgICAgICAgICAgICAgIGlmICh3aWR0aCA+PSBtYXhXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IG1heFdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAod2lkdGggPD0gMTAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoID0gMTAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYXhpcy5pbmNsdWRlcygnbCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhdGlvID0gaW50ZXJuYWxXaWR0aCAvIHdpZHRoO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgPSBpbnRlcm5hbEhlaWdodCAvIHJhdGlvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXhpcy5pbmNsdWRlcygneScpKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gb2Zmc2V0WSArIGludGVybmFsSGVpZ2h0O1xuICAgICAgICAgICAgICAgIGlmIChoZWlnaHQgPj0gMTAwMCkge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgPSAxMDAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaGVpZ2h0IDw9IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgPSAxMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChheGlzLmluY2x1ZGVzKCdsJykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmF0aW8gPSBpbnRlcm5hbEhlaWdodCAvIGhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBpbnRlcm5hbFdpZHRoIC8gcmF0aW87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmltYWdlQ29udGVudC5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gd2lkdGggKyAncHgnO1xuICAgICAgICAgICAgdGhpcy5pbWFnZUNvbnRlbnQubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAncHgnO1xuICAgICAgICAgICAgdGhpcy5pbWFnZUVudHJ5LndpZHRoID0gd2lkdGg7XG4gICAgICAgICAgICB0aGlzLmltYWdlRW50cnkuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZW5kRHJhZyhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5kcmFnYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5kcmFnYWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5tb3VzZU1vdmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoXG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0b3IsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBFbGVtZW50S2luZHMuaW1hZ2UsXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaW1hZ2VFbnRyeVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgeyBhdDogdGhpcy5zZWxlY3Rpb24gfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNhbmNlbFVwbG9hZChldmVudCkge1xuICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGVzKHRoaXMuZWRpdG9yLCB7IGF0OiB0aGlzLnNlbGVjdGlvbiB9KTtcbiAgICB9XG5cbiAgICBwcmV2aWV3KCRldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5pc0NvbGxhcHNlZCkge1xuICAgICAgICAgICAgJC5mYW5jeWJveC5vcGVuKFt7IHNyYzogdGhpcy5pbWFnZUVudHJ5Lm9yaWdpblVybCB9XSk7XG4gICAgICAgIH1cbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbn1cbiIsIjxzbGF0ZS1jaGlsZHJlbiBbY2hpbGRyZW5dPVwiY2hpbGRyZW5cIiBbY29udGV4dF09XCJjaGlsZHJlbkNvbnRleHRcIiBbdmlld0NvbnRleHRdPVwidmlld0NvbnRleHRcIj48L3NsYXRlLWNoaWxkcmVuPlxuPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCIgW3N0eWxlLnRleHRBbGlnbl09XCJpbWFnZUVudHJ5LmFsaWduXCI+XG4gICAgPGRpdlxuICAgICAgICAjaW1hZ2VDb250ZW50XG4gICAgICAgICpuZ0lmPVwiaW1hZ2VFbnRyeS50aHVtYlVybFwiXG4gICAgICAgIGNsYXNzPVwiaW1hZ2UtY29udGVudFwiXG4gICAgICAgIFtjbGFzcy5wb2ludGVyXT1cIiFzZWxlY3Rpb25cIlxuICAgICAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiBpbWFnZUVudHJ5LndpZHRoICsgJ3B4JywgaGVpZ2h0OiBpbWFnZUVudHJ5LmhlaWdodCArICdweCcgfVwiXG4gICAgPlxuICAgICAgICA8aW1nICNpbWcgY2xhc3M9XCJtYWluLWltYWdlXCIgW3NyY109XCJpbWFnZUVudHJ5LnRodW1iVXJsXCIgW2FsdF09XCJpbWFnZUVudHJ5Lm5hbWVcIiAvPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0aW9uXCIgY2xhc3M9XCJpbWFnZS1wcm9maWxlXCIgW2NsYXNzLm91dGxpbmVdPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzQ29sbGFwc2VkXCIgKG1vdXNlZG93bik9XCJzdGFydERyYWcoJGV2ZW50LCAnLXhsJylcIiBjbGFzcz1cImltYWdlLXBvaW50ZXIgbGVmdCB0b3BcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzQ29sbGFwc2VkXCIgKG1vdXNlZG93bik9XCJzdGFydERyYWcoJGV2ZW50LCAneGwnKVwiIGNsYXNzPVwiaW1hZ2UtcG9pbnRlciByaWdodCB0b3BcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzQ29sbGFwc2VkXCIgKG1vdXNlZG93bik9XCJzdGFydERyYWcoJGV2ZW50LCAneGwnKVwiIGNsYXNzPVwiaW1hZ2UtcG9pbnRlciByaWdodCBib3R0b21cIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzQ29sbGFwc2VkXCIgKG1vdXNlZG93bik9XCJzdGFydERyYWcoJGV2ZW50LCAnLXhsJylcIiBjbGFzcz1cImltYWdlLXBvaW50ZXIgbGVmdCBib3R0b21cIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidXBsb2FkaW5nXCIgY2xhc3M9XCJ1cGxvYWRpbmdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRpbmctcGVyY2VudGFnZVwiPlxuICAgICAgICAgICAgICAgIDx0aHktcHJvZ3Jlc3MgdGh5VHlwZT1cInByaW1hcnlcIiBbdGh5VmFsdWVdPVwicGVyY2VudGFnZVwiIHRoeVNpemU9XCJzbVwiPjwvdGh5LXByb2dyZXNzPlxuICAgICAgICAgICAgICAgIDx0aHktaWNvbiAoY2xpY2spPVwiY2FuY2VsVXBsb2FkKCRldmVudClcIiB0aHlJY29uTmFtZT1cImNsb3NlLWNpcmNsZS1ib2xkLWZpbGxcIiB0aHlJY29uTGVnZ2luZz1cInRydWVcIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXVwbG9hZGluZ1wiIGNsYXNzPVwibGF5ZXJcIiAobW91c2Vkb3duKT1cInByZXZpZXcoJGV2ZW50KVwiIFtjbGFzcy5yZWFkb25seV09XCJyZWFkb25seVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhaW1hZ2VFbnRyeS50aHVtYlVybFwiIGNsYXNzPVwiaW1hZ2UtbG9hZGluZ1wiIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCI+XG4gICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImltYWdlXCI+PC90aHktaWNvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxTQUFTLEVBR1QsU0FBUyxFQUVULE1BQU0sRUFLVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQUV4RixPQUFPLEVBQWMsd0JBQXdCLEVBQXlDLE1BQU0sd0JBQXdCLENBQUM7QUFDckgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sT0FBTyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxLQUFLLFVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRNUMsTUFBTSxPQUFPLGlCQUNULFNBQVEsdUJBQTZDO0lBOEVyRCxZQUNXLFVBQXNCLEVBQ3RCLFNBQXVCLEVBRXRCLG9CQUE2QyxFQUM5QyxHQUFzQixFQUNyQixpQkFBb0MsRUFDcEMsVUFBc0Is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RUFBRSxDQUFDO1FBQ3ZCLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELHNCQUFzQjtRQUNsQixNQUFNLGNBQWMsR0FBc0I7WUFDdEMsT0FBTyxFQUFFLFFBQVE7WUFDakIsT0FBTyxFQUFFLFFBQVE7WUFDakIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsUUFBUSxFQUFFLEtBQUs7WUFDZixPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxFQUFFO1NBQ2QsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLE9BQU87YUFDZCxRQUFRLEVBQUU7YUFDVixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ3RDLHNCQUFzQixDQUFDLEtBQUssQ0FBQzthQUM3QixpQkFBaUIsQ0FBQyxLQUFLLENBQUM7YUFDeEIsUUFBUSxDQUFDLEtBQUssQ0FBQzthQUNmLGFBQWEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQzs7K0dBcllRLGlCQUFpQix3RUFrRmQsd0JBQXdCO21HQWxGM0IsaUJBQWlCLDhYQ3BDOUIsazRGQXdEQTs0RkRwQmEsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFdBQVcsRUFBRSx3QkFBd0I7aUJBQ3hDOzswQkFtRlEsTUFBTTsyQkFBQyx3QkFBd0I7MExBWHBDLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjO2dCQUl6QixHQUFHO3NCQURGLFNBQVM7dUJBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJbkMsYUFBYTtzQkFEWixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgRWxlbWVudFJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgT25EZXN0cm95LFxuICAgIEluamVjdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBCZWZvcmVDb250ZXh0Q2hhbmdlLCBTbGF0ZUVsZW1lbnRDb250ZXh0IH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEltYWdlRW50cnksIFRIRV9VUExPQURfU0VSVklDRV9UT0tFTiwgVGhlSW1hZ2VVcGxvYWRlclNlcnZpY2UsIExheW91dE9wdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaW1hZ2UnO1xuaW1wb3J0IHsgQWxpZ25tZW50LCBFbGVtZW50S2luZHMsIExheW91dFR5cGVzLCBUb29sYmFyQWN0aW9uVHlwZXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbm9kZS10eXBlcyc7XG5pbXBvcnQgeyBIaXN0b3J5RWRpdG9yIH0gZnJvbSAnc2xhdGUtaGlzdG9yeSc7XG5pbXBvcnQgeyBUcmFuc2Zvcm1zLCBFZGl0b3IgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzL2ludGVybmFsL1N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUaHlVcGxvYWRTdGF0dXMgfSBmcm9tICduZ3gtdGV0aHlzL3VwbG9hZGVyJztcbmltcG9ydCB7IFRoeVBvcG92ZXIsIFRoeVBvcG92ZXJSZWYgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUaGVDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBUaGVCYXNlRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSW1hZ2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IEltYWdlRWRpdG9yIH0gZnJvbSAnLi9pbWFnZS5lZGl0b3InO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5cbmRlY2xhcmUgY29uc3QgJDogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoZS1pbWFnZSwgW3RoZUltYWdlXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUaGVJbWFnZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgVGhlQmFzZUVsZW1lbnRDb21wb25lbnQ8SW1hZ2VFbGVtZW50LCBFZGl0b3I+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgQmVmb3JlQ29udGV4dENoYW5nZTxTbGF0ZUVsZW1lbnRDb250ZXh0Plxue1xuICAgIGltYWdlRW50cnk6IEltYWdlRW50cnkgPSB7fTtcblxuICAgIHVwbG9hZGluZyA9IGZhbHNlO1xuXG4gICAgcGVyY2VudGFnZSA9IDA7XG5cbiAgICBmaWxlOiBGaWxlO1xuXG4gICAgbGF5b3V0RGVmYXVsdFdpZHRoID0gMzY4O1xuXG4gICAgbGF5b3V0T3B0aW9uczogTGF5b3V0T3B0aW9uW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogQWxpZ25tZW50LmxlZnQsXG4gICAgICAgICAgICBpY29uOiAnaW1hZ2UtbGVmdCcsXG4gICAgICAgICAgICBuYW1lOiAn5bem5a+56b2QJyxcbiAgICAgICAgICAgIGhhbmRsZTogKGU6IE1vdXNlRXZlbnQsIGtleTogQWxpZ25tZW50KSA9PiB0aGlzLnNldEltYWdlTm9kZShlLCB7IGFsaWduOiBrZXksIGxheW91dDogdW5kZWZpbmVkIH0pXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogQWxpZ25tZW50LmNlbnRlcixcbiAgICAgICAgICAgIGljb246ICdpbWFnZS1jZW50ZXInLFxuICAgICAgICAgICAgbmFtZTogJ+WxheS4rScsXG4gICAgICAgICAgICBoYW5kbGU6IChlOiBNb3VzZUV2ZW50LCBrZXk6IEFsaWdubWVudCkgPT4gdGhpcy5zZXRJbWFnZU5vZGUoZSwgeyBhbGlnbjoga2V5LCBsYXlvdXQ6IHVuZGVmaW5lZCB9KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEFsaWdubWVudC5yaWdodCxcbiAgICAgICAgICAgIGljb246ICdpbWFnZS1yaWdodCcsXG4gICAgICAgICAgICBuYW1lOiAn5Y+z5a+56b2QJyxcbiAgICAgICAgICAgIGhhbmRsZTogKGU6IE1vdXNlRXZlbnQsIGtleTogQWxpZ25tZW50KSA9PiB0aGlzLnNldEltYWdlTm9kZShlLCB7IGFsaWduOiBrZXksIGxheW91dDogdW5kZWZpbmVkIH0pXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogVG9vbGJhckFjdGlvblR5cGVzLnNwbGl0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogTGF5b3V0VHlwZXMud3JhcExlZnQsXG4gICAgICAgICAgICBpY29uOiAnd3JhcC1sZWZ0JyxcbiAgICAgICAgICAgIG5hbWU6ICfpmpDol4/lt6bovrknLFxuICAgICAgICAgICAgaGFuZGxlOiAoZTogTW91c2VFdmVudCwga2V5OiBMYXlvdXRUeXBlcykgPT4gdGhpcy5zZXRJbWFnZU5vZGUoZSwgeyBsYXlvdXQ6IGtleSB9KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IExheW91dFR5cGVzLndyYXBSaWdodCxcbiAgICAgICAgICAgIGljb246ICd3cmFwLXJpZ2h0JyxcbiAgICAgICAgICAgIG5hbWU6ICfpmpDol4/lj7PovrknLFxuICAgICAgICAgICAgaGFuZGxlOiAoZTogTW91c2VFdmVudCwga2V5OiBMYXlvdXRUeXBlcykgPT4gdGhpcy5zZXRJbWFnZU5vZGUoZSwgeyBsYXlvdXQ6IGtleSB9KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdyZW1vdmUnLFxuICAgICAgICAgICAgaWNvbjogJ3RyYXNoJyxcbiAgICAgICAgICAgIG5hbWU6ICfliKDpmaQnLFxuICAgICAgICAgICAgaGFuZGxlOiAoZTogTW91c2VFdmVudCkgPT4gdGhpcy5vbkRlbGV0ZShlKVxuICAgICAgICB9XG4gICAgXTtcblxuICAgIHByaXZhdGUgdXBsb2FkaW5nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIG1vdXNlTW92ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJpdmF0ZSBtb3VzZVVwU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIGRyYWdhYmxlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGxheW91dFRvb2xiYXJSZWY6IFRoeVBvcG92ZXJSZWY8YW55PjtcblxuICAgIGdldCBpc09wZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dFRvb2xiYXJSZWYgJiYgdGhpcy5sYXlvdXRUb29sYmFyUmVmLmdldE92ZXJsYXlSZWYoKSAmJiB0aGlzLmxheW91dFRvb2xiYXJSZWYuZ2V0T3ZlcmxheVJlZigpLmhhc0F0dGFjaGVkKCk7XG4gICAgfVxuXG4gICAgQFZpZXdDaGlsZCgnaW1hZ2VDb250ZW50JylcbiAgICBpbWFnZUNvbnRlbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdpbWcnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBpbWc6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdsYXlvdXRUb29sYmFyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBsYXlvdXRUb29sYmFyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwdWJsaWMgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgICAgIEBJbmplY3QoVEhFX1VQTE9BRF9TRVJWSUNFX1RPS0VOKVxuICAgICAgICBwcml2YXRlIGltYWdlVXBsb2FkZXJTZXJ2aWNlOiBUaGVJbWFnZVVwbG9hZGVyU2VydmljZSxcbiAgICAgICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgdGhlQ29udGV4dFNlcnZpY2U6IFRoZUNvbnRleHRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRoeVBvcG92ZXI6IFRoeVBvcG92ZXIsXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XG4gICAgfVxuXG4gICAgYmVmb3JlQ29udGV4dENoYW5nZSA9ICh2YWx1ZTogU2xhdGVFbGVtZW50Q29udGV4dDxJbWFnZUVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZS5lbGVtZW50ICE9PSB0aGlzLmVsZW1lbnQgJiYgdmFsdWUuZWxlbWVudC50aHVtYlVybCkge1xuICAgICAgICAgICAgdGhpcy5pbWFnZUVudHJ5ID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IHZhbHVlLmVsZW1lbnQubmFtZSxcbiAgICAgICAgICAgICAgICB3aWR0aDogdmFsdWUuZWxlbWVudC53aWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhbHVlLmVsZW1lbnQuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIHRodW1iVXJsOiB2YWx1ZS5lbGVtZW50LnRodW1iVXJsLFxuICAgICAgICAgICAgICAgIG9yaWdpblVybDogdmFsdWUuZWxlbWVudC5vcmlnaW5VcmwsXG4gICAgICAgICAgICAgICAgYWxpZ246IHZhbHVlLmVsZW1lbnQuYWxpZ24gfHwgQWxpZ25tZW50LmxlZnQsXG4gICAgICAgICAgICAgICAgbGF5b3V0OiB2YWx1ZS5lbGVtZW50LmxheW91dCxcbiAgICAgICAgICAgICAgICByZVNpemVkOiB2YWx1ZS5lbGVtZW50LnJlU2l6ZWQgfHwgZmFsc2VcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnNldEJsb2NrQ2FyZExheW91dEF0dHIoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5sYXlvdXREZWZhdWx0V2lkdGggPSB0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLmxheW91dERlZmF1bHRXaWR0aCgpO1xuICAgICAgICB0aGlzLmZpbGUgPSB0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLmZpbGVMaXN0LmZpbmQoaXRlbSA9PiBpdGVtLnVybCA9PT0gdGhpcy5lbGVtZW50LnVybCk/LmZpbGU7XG4gICAgICAgIGlmICh0aGlzLmZpbGUgJiYgdGhpcy5maWxlIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRJbWFnZSh0aGlzLmZpbGUpO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlKCkge1xuICAgICAgICBzdXBlci5vbkNvbnRleHRDaGFuZ2UoKTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU2hvdWxkT3BlbigpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTGF5b3V0VG9vbGJhcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaXNTaG91bGRDbG9zZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZUxheW91dFRvb2xiYXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVwbG9hZGluZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm1vdXNlVXBTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMubW91c2VVcFN1YnNjcmlwdGlvbiA9IHRoaXMudGhlQ29udGV4dFNlcnZpY2Uub25Nb3VzZVVwJC5zdWJzY3JpYmUoZSA9PiB0aGlzLmVuZERyYWcoZSkpO1xuICAgICAgICB0aGlzLnVwbG9hZGluZ1N1YnNjcmlwdGlvbiA9IHRoaXMuaW1hZ2VVcGxvYWRlclNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRVcGxvYWRpbmdJdGVtcyQoKVxuICAgICAgICAgICAgLnBpcGUobWFwKGZpbGVVcGxvYWRpbmdJdGVtID0+IHRoaXMuZmlsZSAmJiBmaWxlVXBsb2FkaW5nSXRlbS5maW5kKGl0ZW0gPT4gaXRlbS5maWxlID09PSB0aGlzLmZpbGUpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodXBsb2FkaW5nSXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF1cGxvYWRpbmdJdGVtIHx8ICF1cGxvYWRpbmdJdGVtLnJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucGVyY2VudGFnZSA9IHVwbG9hZGluZ0l0ZW0ucmVzdWx0LnVwbG9hZEZpbGUucHJvZ3Jlc3MucGVyY2VudGFnZTtcbiAgICAgICAgICAgICAgICBpZiAodXBsb2FkaW5nSXRlbS5yZXN1bHQuc3RhdHVzID09PSBUaHlVcGxvYWRTdGF0dXMuZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGluZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhc3luYyB1cGxvYWRJbWFnZShmaWxlOiBGaWxlKSB7XG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gYXdhaXQgdGhpcy5yZXNvbHZlSW1hZ2VTaXplKGZpbGUsIHRoaXMudGhlQ29udGV4dFNlcnZpY2UuZ2V0T3B0aW9ucygpLndpZHRoKTtcbiAgICAgICAgdGhpcy5pbWFnZUVudHJ5ID0ge1xuICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICBhbGlnbjogdGhpcy5pbWFnZUVudHJ5LmFsaWduIHx8IEFsaWdubWVudC5jZW50ZXIsXG4gICAgICAgICAgICB0aHVtYlVybDogdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSkpXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgW3VwbG9hZEZpbGVFbnRpdHldID0gYXdhaXQgdGhpcy5pbWFnZVVwbG9hZGVyU2VydmljZS51cGxvYWRGaWxlSGFuZGxlKFtmaWxlXSkudG9Qcm9taXNlKCk7XG4gICAgICAgIGNvbnN0IHBhdGggPSBBbmd1bGFyRWRpdG9yLmZpbmRQYXRoKHRoaXMuZWRpdG9yLCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICBjb25zdCB7IHRodW1iVXJsLCBvcmlnaW5VcmwgfSA9IHVwbG9hZEZpbGVFbnRpdHk7XG4gICAgICAgIGNvbnN0IGltYWdlSW5mbzogSW1hZ2VFbnRyeSA9IHtcbiAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgIHdpZHRoOiB0aGlzLmltYWdlRW50cnkud2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuaW1hZ2VFbnRyeS5oZWlnaHQsXG4gICAgICAgICAgICB0aHVtYlVybCxcbiAgICAgICAgICAgIG9yaWdpblVybCxcbiAgICAgICAgICAgIGFsaWduOiB0aGlzLmltYWdlRW50cnkuYWxpZ24gfHwgQWxpZ25tZW50LmNlbnRlclxuICAgICAgICB9O1xuICAgICAgICBIaXN0b3J5RWRpdG9yLndpdGhvdXRTYXZpbmcodGhpcy5lZGl0b3IsICgpID0+XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKFxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRWxlbWVudEtpbmRzLmltYWdlLFxuICAgICAgICAgICAgICAgICAgICB1cmw6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIC4uLmltYWdlSW5mb1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgeyBhdDogcGF0aCB9XG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNvbHZlSW1hZ2VTaXplKGltYWdlRmlsZTogRmlsZSwgbWF4U2l6ZTogbnVtYmVyKTogUHJvbWlzZTx7IGhlaWdodDogbnVtYmVyOyB3aWR0aDogbnVtYmVyIH0+IHtcbiAgICAgICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgaW1hZ2Uub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlSGVpZ2h0ID0gaW1hZ2UuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlV2lkdGggPSBpbWFnZS53aWR0aDtcbiAgICAgICAgICAgICAgICBjb25zdCByYXRpbyA9IGltYWdlV2lkdGggPiBtYXhTaXplID8gaW1hZ2VXaWR0aCAvIG1heFNpemUgOiBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSByYXRpbyA/IGltYWdlSGVpZ2h0IC8gcmF0aW8gOiBpbWFnZUhlaWdodDtcbiAgICAgICAgICAgICAgICBjb25zdCB3aWR0aCA9IHJhdGlvID8gaW1hZ2VXaWR0aCAvIHJhdGlvIDogaW1hZ2VXaWR0aDtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHsgaGVpZ2h0LCB3aWR0aCB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpbWFnZS5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGltYWdlRmlsZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXJ0RHJhZyhldmVudDogTW91c2VFdmVudCwgYXhpczogc3RyaW5nKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZHJhZ2FibGUgPSB0cnVlO1xuICAgICAgICBjb25zdCBpbWdFbGVtZW50ID0gdGhpcy5pbWcubmF0aXZlRWxlbWVudCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgYXhpcyxcbiAgICAgICAgICAgIHByaW50ZXJQb3NpdGlvblg6IGV2ZW50LnBhZ2VYLFxuICAgICAgICAgICAgcHJpbnRlclBvc2l0aW9uWTogZXZlbnQucGFnZVksXG4gICAgICAgICAgICBpbnRlcm5hbFdpZHRoOiBpbWdFbGVtZW50LndpZHRoIHx8IHRoaXMuaW1hZ2VFbnRyeS53aWR0aCxcbiAgICAgICAgICAgIGludGVybmFsSGVpZ2h0OiBpbWdFbGVtZW50LmhlaWdodCB8fCB0aGlzLmltYWdlRW50cnkuaGVpZ2h0LFxuICAgICAgICAgICAgbWF4V2lkdGg6IHRoaXMudGhlQ29udGV4dFNlcnZpY2UuZ2V0T3B0aW9ucygpLndpZHRoXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubW91c2VNb3ZlU3Vic2NyaXB0aW9uID0gdGhpcy50aGVDb250ZXh0U2VydmljZS5vbk1vdXNlTW92ZSQuc3Vic2NyaWJlKGUgPT4gdGhpcy5tb3VzZU1vdmVIYW5kbGUoZSwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIG1vdXNlTW92ZUhhbmRsZShcbiAgICAgICAgZXZlbnQ6IE1vdXNlRXZlbnQsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGF4aXM6IHN0cmluZztcbiAgICAgICAgICAgIHByaW50ZXJQb3NpdGlvblg6IG51bWJlcjtcbiAgICAgICAgICAgIHByaW50ZXJQb3NpdGlvblk6IG51bWJlcjtcbiAgICAgICAgICAgIGludGVybmFsV2lkdGg6IG51bWJlcjtcbiAgICAgICAgICAgIGludGVybmFsSGVpZ2h0OiBudW1iZXI7XG4gICAgICAgICAgICBtYXhXaWR0aDogbnVtYmVyO1xuICAgICAgICB9XG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLmRyYWdhYmxlKSB7XG4gICAgICAgICAgICBjb25zdCB7IGF4aXMsIHByaW50ZXJQb3NpdGlvblgsIHByaW50ZXJQb3NpdGlvblksIGludGVybmFsV2lkdGgsIGludGVybmFsSGVpZ2h0LCBtYXhXaWR0aCB9ID0gb3B0aW9ucztcbiAgICAgICAgICAgIGNvbnN0IGlzUmV2ZXJzYWwgPSBheGlzLmluY2x1ZGVzKCctJyk7XG5cbiAgICAgICAgICAgIGxldCBvZmZzZXRYID0gZXZlbnQucGFnZVggLSBwcmludGVyUG9zaXRpb25YO1xuICAgICAgICAgICAgbGV0IG9mZnNldFkgPSBldmVudC5wYWdlWSAtIHByaW50ZXJQb3NpdGlvblk7XG4gICAgICAgICAgICBsZXQgeyB3aWR0aCwgaGVpZ2h0IH0gPSB0aGlzLmVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGlmIChpc1JldmVyc2FsKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0WCA9IC1vZmZzZXRYO1xuICAgICAgICAgICAgICAgIG9mZnNldFkgPSAtb2Zmc2V0WTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmVsZW1lbnQuYWxpZ24gPT09ICdjZW50ZXInKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0WCA9IG9mZnNldFggKiAyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoYXhpcy5pbmNsdWRlcygneCcpKSB7XG4gICAgICAgICAgICAgICAgd2lkdGggPSBvZmZzZXRYICsgaW50ZXJuYWxXaWR0aDtcbiAgICAgICAgICAgICAgICBpZiAod2lkdGggPj0gbWF4V2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBtYXhXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgICAvLyBjbGVhciBgbGF5b3V0YCB3aGVuIHRoZSBpbWFnZSBpcyBhZGp1c3RlZCB0byB0aGUgbWF4aW11bSB2YWx1ZSB1bmRlciByaWNoIG1lZGlhXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlRW50cnk/LmxheW91dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IFRoZVF1ZXJpZXMuZmluZFBhdGgodGhpcy5lZGl0b3IsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBJbWFnZUVkaXRvci5zZXRJbWFnZU5vZGUodGhpcy5lZGl0b3IsIHBhdGgsIHsgbGF5b3V0OiB1bmRlZmluZWQgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHdpZHRoIDw9IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IDEwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGF4aXMuaW5jbHVkZXMoJ2wnKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByYXRpbyA9IGludGVybmFsV2lkdGggLyB3aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ID0gaW50ZXJuYWxIZWlnaHQgLyByYXRpbztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGF4aXMuaW5jbHVkZXMoJ3knKSkge1xuICAgICAgICAgICAgICAgIGhlaWdodCA9IG9mZnNldFkgKyBpbnRlcm5hbEhlaWdodDtcbiAgICAgICAgICAgICAgICBpZiAoaGVpZ2h0ID49IDEwMDApIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ID0gMTAwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGhlaWdodCA8PSAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ID0gMTAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYXhpcy5pbmNsdWRlcygnbCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhdGlvID0gaW50ZXJuYWxIZWlnaHQgLyBoZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoID0gaW50ZXJuYWxXaWR0aCAvIHJhdGlvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF0aGlzLmltYWdlRW50cnkucmVTaXplZCAmJiB0aGlzLmltYWdlRW50cnkud2lkdGggIT09IHdpZHRoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbWFnZUVudHJ5LnJlU2l6ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pbWFnZUNvbnRlbnQubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9IHdpZHRoICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VDb250ZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VFbnRyeS53aWR0aCA9IHdpZHRoO1xuICAgICAgICAgICAgdGhpcy5pbWFnZUVudHJ5LmhlaWdodCA9IGhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVuZERyYWcoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ2FibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ2FibGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubW91c2VNb3ZlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKFxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRWxlbWVudEtpbmRzLmltYWdlLFxuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmltYWdlRW50cnlcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHsgYXQ6IHRoaXMuc2VsZWN0aW9uIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjYW5jZWxVcGxvYWQoZXZlbnQpIHtcbiAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2Rlcyh0aGlzLmVkaXRvciwgeyBhdDogdGhpcy5zZWxlY3Rpb24gfSk7XG4gICAgfVxuXG4gICAgcHJldmlldygkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgICQuZmFuY3lib3gub3BlbihbeyBzcmM6IHRoaXMuaW1hZ2VFbnRyeS5vcmlnaW5VcmwgfV0pO1xuICAgICAgICB9XG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBpc1Nob3VsZE9wZW4oKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHRoZU9wdGlvbnM6IHsgcmljaE1lZGlhIH1cbiAgICAgICAgfSA9IHRoaXMudGhlQ29udGV4dFNlcnZpY2UuZ2V0T3B0aW9ucygpO1xuICAgICAgICByZXR1cm4gIXRoaXM/LnJlYWRvbmx5ICYmIHJpY2hNZWRpYSAmJiB0aGlzPy5pc0NvbGxhcHNlZCAmJiAhdGhpcy51cGxvYWRpbmcgJiYgIXRoaXMuaXNPcGVuO1xuICAgIH1cblxuICAgIGlzU2hvdWxkQ2xvc2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3BlbiAmJiAodGhpcz8ucmVhZG9ubHkgfHwgIXRoaXM/LmlzQ29sbGFwc2VkIHx8IHRoaXMudXBsb2FkaW5nKTtcbiAgICB9XG5cbiAgICBvcGVuTGF5b3V0VG9vbGJhcigpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRUb29sYmFyUmVmID0gdGhpcy50aHlQb3BvdmVyLm9wZW4odGhpcy5sYXlvdXRUb29sYmFyLCB7XG4gICAgICAgICAgICBvcmlnaW46IHRoaXMuaW1hZ2VDb250ZW50LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogWyd0aGUtaW1hZ2UtdG9vbGJhciddLFxuICAgICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICAgICAgICAgIGluc2lkZUNsb3NhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICBvZmZzZXQ6IDEwLFxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5sYXlvdXRUb29sYmFyUmVmPy5nZXRPdmVybGF5UmVmKCkudXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLmNyZWF0ZVBvc2l0aW9uU3RyYXRlZ3koKSk7XG4gICAgfVxuXG4gICAgY2xvc2VMYXlvdXRUb29sYmFyKCkge1xuICAgICAgICB0aGlzLmxheW91dFRvb2xiYXJSZWY/LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgbGF5b3V0QWN0aXZlKGtleTogQWxpZ25tZW50IHwgTGF5b3V0VHlwZXMpIHtcbiAgICAgICAgY29uc3QgeyBsYXlvdXQsIGFsaWduIH0gPSB0aGlzLmltYWdlRW50cnk7XG4gICAgICAgIHJldHVybiBrZXkgJiYgKChrZXkgPT09IGFsaWduICYmICFsYXlvdXQpIHx8IGtleSA9PT0gbGF5b3V0KTtcbiAgICB9XG5cbiAgICBzZXRJbWFnZU5vZGUoZTogTW91c2VFdmVudCwgcGFydGlhbDogeyBsYXlvdXQ/OiBMYXlvdXRUeXBlczsgYWxpZ24/OiBBbGlnbm1lbnQgfSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IHBhdGggPSBUaGVRdWVyaWVzLmZpbmRQYXRoKHRoaXMuZWRpdG9yLCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICBJbWFnZUVkaXRvci5zZXRJbWFnZU5vZGUodGhpcy5lZGl0b3IsIHBhdGgsIHBhcnRpYWwpO1xuICAgIH1cblxuICAgIHNldEJsb2NrQ2FyZExheW91dEF0dHIoKSB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSBBbmd1bGFyRWRpdG9yLnRvRE9NTm9kZSh0aGlzLmVkaXRvciwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrQ2FyZCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJy5zbGF0ZS1ibG9jay1jYXJkJyk7XG4gICAgICAgICAgICBjb25zdCB7IGxheW91dCB9ID0gdGhpcy5lbGVtZW50O1xuXG4gICAgICAgICAgICBpZiAoYmxvY2tDYXJkICYmIGxheW91dCkge1xuICAgICAgICAgICAgICAgIGJsb2NrQ2FyZC5zZXRBdHRyaWJ1dGUoJ2xheW91dCcsIGxheW91dCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGJsb2NrQ2FyZCAmJiAhbGF5b3V0KSB7XG4gICAgICAgICAgICAgICAgYmxvY2tDYXJkLnJlbW92ZUF0dHJpYnV0ZSgnbGF5b3V0Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmxheW91dFRvb2xiYXJSZWY/LmdldE92ZXJsYXlSZWYoKS51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkRlbGV0ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBUaGVUcmFuc2Zvcm1zLmRlbGV0ZUVsZW1lbnQodGhpcy5lZGl0b3IsIHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgY3JlYXRlUG9zaXRpb25TdHJhdGVneSgpIHtcbiAgICAgICAgY29uc3QgYm90dG9tUG9zaXRpb246IENvbm5lY3RlZFBvc2l0aW9uID0ge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICAgIG9mZnNldFg6IDAsXG4gICAgICAgICAgICBvZmZzZXRZOiAxMFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5pbWFnZUNvbnRlbnQpXG4gICAgICAgICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAgICAgICAgIC53aXRoR3Jvd0FmdGVyT3BlbihmYWxzZSlcbiAgICAgICAgICAgIC53aXRoUHVzaChmYWxzZSlcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtib3R0b21Qb3NpdGlvbl0pO1xuICAgIH1cbn1cbiIsIjxzbGF0ZS1jaGlsZHJlbiBbY2hpbGRyZW5dPVwiY2hpbGRyZW5cIiBbY29udGV4dF09XCJjaGlsZHJlbkNvbnRleHRcIiBbdmlld0NvbnRleHRdPVwidmlld0NvbnRleHRcIj48L3NsYXRlLWNoaWxkcmVuPlxuXG48ZGl2IGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyXCIgY29udGVudGVkaXRhYmxlPVwiZmFsc2VcIiBbc3R5bGUudGV4dEFsaWduXT1cImltYWdlRW50cnkuYWxpZ25cIj5cbiAgICA8ZGl2XG4gICAgICAgICNpbWFnZUNvbnRlbnRcbiAgICAgICAgKm5nSWY9XCJpbWFnZUVudHJ5LnRodW1iVXJsXCJcbiAgICAgICAgY2xhc3M9XCJpbWFnZS1jb250ZW50XCJcbiAgICAgICAgW2NsYXNzLnBvaW50ZXJdPVwiIXNlbGVjdGlvblwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICd3aWR0aC5weCc6XG4gICAgICAgICAgICAgICAgaW1hZ2VFbnRyeT8ubGF5b3V0ICYmIGltYWdlRW50cnk/LndpZHRoID4gbGF5b3V0RGVmYXVsdFdpZHRoICYmICFpbWFnZUVudHJ5Py5yZVNpemVkXG4gICAgICAgICAgICAgICAgICAgID8gbGF5b3V0RGVmYXVsdFdpZHRoXG4gICAgICAgICAgICAgICAgICAgIDogaW1hZ2VFbnRyeS53aWR0aCxcbiAgICAgICAgICAgICdoZWlnaHQucHgnOiBpbWFnZUVudHJ5LmhlaWdodFxuICAgICAgICB9XCJcbiAgICA+XG4gICAgICAgIDxpbWcgI2ltZyBjbGFzcz1cIm1haW4taW1hZ2VcIiBbc3JjXT1cImltYWdlRW50cnkudGh1bWJVcmxcIiBbYWx0XT1cImltYWdlRW50cnkubmFtZVwiIC8+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3Rpb25cIiBjbGFzcz1cImltYWdlLXByb2ZpbGVcIiBbY2xhc3Mub3V0bGluZV09XCJzZWxlY3Rpb25cIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNDb2xsYXBzZWRcIiAobW91c2Vkb3duKT1cInN0YXJ0RHJhZygkZXZlbnQsICcteGwnKVwiIGNsYXNzPVwiaW1hZ2UtcG9pbnRlciBsZWZ0IHRvcFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNDb2xsYXBzZWRcIiAobW91c2Vkb3duKT1cInN0YXJ0RHJhZygkZXZlbnQsICd4bCcpXCIgY2xhc3M9XCJpbWFnZS1wb2ludGVyIHJpZ2h0IHRvcFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNDb2xsYXBzZWRcIiAobW91c2Vkb3duKT1cInN0YXJ0RHJhZygkZXZlbnQsICd4bCcpXCIgY2xhc3M9XCJpbWFnZS1wb2ludGVyIHJpZ2h0IGJvdHRvbVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNDb2xsYXBzZWRcIiAobW91c2Vkb3duKT1cInN0YXJ0RHJhZygkZXZlbnQsICcteGwnKVwiIGNsYXNzPVwiaW1hZ2UtcG9pbnRlciBsZWZ0IGJvdHRvbVwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ1cGxvYWRpbmdcIiBjbGFzcz1cInVwbG9hZGluZ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZGluZy1wZXJjZW50YWdlXCI+XG4gICAgICAgICAgICAgICAgPHRoeS1wcm9ncmVzcyB0aHlUeXBlPVwicHJpbWFyeVwiIFt0aHlWYWx1ZV09XCJwZXJjZW50YWdlXCIgdGh5U2l6ZT1cInNtXCI+PC90aHktcHJvZ3Jlc3M+XG4gICAgICAgICAgICAgICAgPHRoeS1pY29uIChjbGljayk9XCJjYW5jZWxVcGxvYWQoJGV2ZW50KVwiIHRoeUljb25OYW1lPVwiY2xvc2UtY2lyY2xlLWJvbGQtZmlsbFwiIHRoeUljb25MZWdnaW5nPVwidHJ1ZVwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhdXBsb2FkaW5nXCIgY2xhc3M9XCJsYXllclwiIChtb3VzZWRvd24pPVwicHJldmlldygkZXZlbnQpXCIgW2NsYXNzLnJlYWRvbmx5XT1cInJlYWRvbmx5XCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFpbWFnZUVudHJ5LnRodW1iVXJsXCIgY2xhc3M9XCJpbWFnZS1sb2FkaW5nXCIgY29udGVudGVkaXRhYmxlPVwiZmFsc2VcIj5cbiAgICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiaW1hZ2VcIj48L3RoeS1pY29uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbGF5b3V0VG9vbGJhcj5cbiAgICA8ZGl2IGNsYXNzPVwidGhlLWJsb2NrLXRvb2xiYXItcG9wb3ZlclwiIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCI+XG4gICAgICAgIDx0aHktaWNvbi1uYXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxheW91dE9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0ua2V5ICE9PSAnc3BsaXQnXCJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgICAgICAgICAgICAgICAgIHRoeUljb25OYXZMaW5rXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3JlbW92ZS1saW5rJzogaXRlbS5rZXkgPT09ICdyZW1vdmUnIH1cIlxuICAgICAgICAgICAgICAgICAgICBbdGh5SWNvbk5hdkxpbmtJY29uXT1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFt0aHlUb29sdGlwXT1cIml0ZW0ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFt0aHlJY29uTmF2TGlua0FjdGl2ZV09XCJsYXlvdXRBY3RpdmUoaXRlbS5rZXkpXCJcbiAgICAgICAgICAgICAgICAgICAgdGh5VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwiaXRlbT8uaGFuZGxlKCRldmVudCwgaXRlbS5rZXkpXCJcbiAgICAgICAgICAgICAgICA+PC9hPlxuICAgICAgICAgICAgICAgIDxuYXYtc3BsaXQtbGluZSAqbmdJZj1cIml0ZW0ua2V5ID09PSAnc3BsaXQnXCI+PC9uYXYtc3BsaXQtbGluZT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3RoeS1pY29uLW5hdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -57,6 +57,9 @@ export const ImageEditor = {
|
|
|
57
57
|
universal: true
|
|
58
58
|
});
|
|
59
59
|
return !!match;
|
|
60
|
+
},
|
|
61
|
+
setImageNode(editor, path, partial) {
|
|
62
|
+
Transforms.setNodes(editor, partial, { at: path });
|
|
60
63
|
}
|
|
61
64
|
};
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBUSxNQUFNLE9BQU8sQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBRUgsWUFBWSxFQUNaLFVBQVUsRUFFViw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQy9CLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxLQUFLLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3ZCLFVBQVUsQ0FBQyxNQUFjO1FBQ3JCLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsU0FBUyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdkMsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDNUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ2xDLFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFHLEtBQUssQ0FBQyxNQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFDO1FBQ0YsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxZQUFZLENBQUMsTUFBYyxFQUFFLFVBQTZCO1FBQ3RELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUQsTUFBTSxVQUFVLEdBQWMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzFCLEtBQUssTUFBTSxLQUFLLElBQUksVUFBVSxFQUFFO1lBQzVCLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3RELElBQUksTUFBTSxFQUFFO2dCQUNSLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDN0IsR0FBRztvQkFDSCxJQUFJLEVBQUUsS0FBSztpQkFDZCxDQUFDLENBQUM7Z0JBQ0gsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDeEU7U0FDSjtRQUNELElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUM1QixVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNqRixVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQ2pDO1NBQ0o7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE1BQWMsRUFBRSxLQUFXO1FBQ25DLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BELE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQ1gsSUFBSSxFQUFFLFVBQVUsQ0FBQyxxQkFBcUI7YUFDekMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUcsT0FBTyxJQUFJLDRCQUE0QixFQUFFO1lBQ3RELE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQ1gsSUFBSSxFQUFFLFVBQVUsQ0FBQyxvQkFBb0I7YUFDeEMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsYUFBYSxDQUFDLE1BQWM7UUFDeEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2pDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsS0FBSztZQUNqRSxTQUFTLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbkIsQ0FBQztJQUNELFlBQVksQ0FBQyxNQUFjLEVBQUUsSUFBVSxFQUFFLE9BQW9EO1FBQ3pGLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBUcmFuc2Zvcm1zLCBFbGVtZW50LCBQYXRoIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgVGhlQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgICBBbGlnbm1lbnQsXG4gICAgRWxlbWVudEtpbmRzLFxuICAgIEVycm9yQ29kZXMsXG4gICAgTGF5b3V0VHlwZXMsXG4gICAgUElDVFVSRV9BQ0NFUFRFRF9VUExPQURfTUlNRSxcbiAgICBQSUNUVVJFX0FDQ0VQVEVEX1VQTE9BRF9TSVpFXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuXG5leHBvcnQgY29uc3QgSW1hZ2VFZGl0b3IgPSB7XG4gICAgb3BlblVwbG9hZChlZGl0b3I6IEVkaXRvcikge1xuICAgICAgICBjb25zdCBpbnB1dEZpbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICBpbnB1dEZpbGUuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2ZpbGUnKTtcbiAgICAgICAgaW5wdXRGaWxlLnNldEF0dHJpYnV0ZSgnYWNjZXB0JywgJ2ltYWdlLyonKTtcbiAgICAgICAgaW5wdXRGaWxlLm9uY2hhbmdlID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgSW1hZ2VFZGl0b3IuaW5zZXJ0SW1hZ2VzKGVkaXRvciwgKGV2ZW50LnRhcmdldCBhcyBhbnkpLmZpbGVzKTtcbiAgICAgICAgfTtcbiAgICAgICAgaW5wdXRGaWxlLmNsaWNrKCk7XG4gICAgfSxcbiAgICBpbnNlcnRJbWFnZXMoZWRpdG9yOiBFZGl0b3IsIGltYWdlRmlsZXM6IEZpbGVMaXN0IHwgRmlsZVtdKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVDb250ZXh0U2VydmljZSk7XG4gICAgICAgIGNvbnN0IGltYWdlTm9kZXM6IEVsZW1lbnRbXSA9IFtdO1xuICAgICAgICBjb25zdCB0ZXh0ID0geyB0ZXh0OiAnJyB9O1xuICAgICAgICBmb3IgKGNvbnN0IGltYWdlIG9mIGltYWdlRmlsZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZlcmlmeSA9IEltYWdlRWRpdG9yLnZlcmlmeUltYWdlKGVkaXRvciwgaW1hZ2UpO1xuICAgICAgICAgICAgaWYgKHZlcmlmeSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoaW1hZ2UpO1xuICAgICAgICAgICAgICAgIGNvbnRleHRTZXJ2aWNlLnNldFVwbG9hZEZpbGVMaXN0KHtcbiAgICAgICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgICAgICBmaWxlOiBpbWFnZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGltYWdlTm9kZXMucHVzaCh7IHR5cGU6IEVsZW1lbnRLaW5kcy5pbWFnZSwgdXJsLCBjaGlsZHJlbjogW3RleHRdIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpbWFnZU5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGF0ID0gZWRpdG9yLnNlbGVjdGlvbjtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoZWRpdG9yLCBpbWFnZU5vZGVzLCB7IGF0IH0pO1xuICAgICAgICAgICAgaWYgKFRoZVF1ZXJpZXMuaXNDb2xsYXBzZWQoZWRpdG9yLnNlbGVjdGlvbikgJiYgVGhlUXVlcmllcy5pc0VtcHR5UGFyYWdyYXBoKGVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGVzKGVkaXRvciwgeyBhdCB9KTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIGF0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgdmVyaWZ5SW1hZ2UoZWRpdG9yOiBFZGl0b3IsIGltYWdlOiBGaWxlKSB7XG4gICAgICAgIGlmICghUElDVFVSRV9BQ0NFUFRFRF9VUExPQURfTUlNRS5pbmNsdWRlcyhpbWFnZS50eXBlKSkge1xuICAgICAgICAgICAgZWRpdG9yLm9uRXJyb3Ioe1xuICAgICAgICAgICAgICAgIGNvZGU6IEVycm9yQ29kZXMuSU1BR0VfRVJSX01JTUVfRk9STUFUXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW1hZ2Uuc2l6ZSAvIDEwMDAwMDAgPj0gUElDVFVSRV9BQ0NFUFRFRF9VUExPQURfU0laRSkge1xuICAgICAgICAgICAgZWRpdG9yLm9uRXJyb3Ioe1xuICAgICAgICAgICAgICAgIGNvZGU6IEVycm9yQ29kZXMuSU1BR0VfRVJSX1NJWkVfTElNSVRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0sXG4gICAgaXNJbWFnZUFjdGl2ZShlZGl0b3I6IEVkaXRvcik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBbbWF0Y2hdID0gRWRpdG9yLm5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgbWF0Y2g6IG4gPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMuaW1hZ2UsXG4gICAgICAgICAgICB1bml2ZXJzYWw6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAhIW1hdGNoO1xuICAgIH0sXG4gICAgc2V0SW1hZ2VOb2RlKGVkaXRvcjogRWRpdG9yLCBwYXRoOiBQYXRoLCBwYXJ0aWFsOiB7IGxheW91dD86IExheW91dFR5cGVzOyBhbGlnbj86IEFsaWdubWVudCB9KSB7XG4gICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoZWRpdG9yLCBwYXJ0aWFsLCB7IGF0OiBwYXRoIH0pO1xuICAgIH1cbn07XG4iXX0=
|
|
@@ -25,7 +25,7 @@ export class TheQuickInsertComponent {
|
|
|
25
25
|
checkStatus() {
|
|
26
26
|
var _a;
|
|
27
27
|
const { editor } = this;
|
|
28
|
-
if (this.isVisible && isCleanEmptyParagraph(editor) && !this.hasExcludeAttribute()) {
|
|
28
|
+
if (this.isVisible && isCleanEmptyParagraph(editor) && !this.hasExcludeAttribute() && !this.isRichMediaScope()) {
|
|
29
29
|
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]]);
|
|
30
30
|
const rootNode = AngularEditor.toDOMNode(editor, block);
|
|
31
31
|
this.updatePosition(rootNode.offsetLeft, rootNode.offsetTop);
|
|
@@ -33,6 +33,17 @@ export class TheQuickInsertComponent {
|
|
|
33
33
|
}
|
|
34
34
|
this.isHide = true;
|
|
35
35
|
}
|
|
36
|
+
isRichMediaScope() {
|
|
37
|
+
var _a;
|
|
38
|
+
const { editor } = this;
|
|
39
|
+
if (editor === null || editor === void 0 ? void 0 : editor.selection) {
|
|
40
|
+
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]]);
|
|
41
|
+
const rootNode = AngularEditor.toDOMNode(editor, block);
|
|
42
|
+
const firstElementChild = rootNode.firstElementChild;
|
|
43
|
+
return (firstElementChild === null || firstElementChild === void 0 ? void 0 : firstElementChild.offsetLeft) > 0;
|
|
44
|
+
}
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
36
47
|
hasExcludeAttribute() {
|
|
37
48
|
const marks = TheQueries.getSelectionMarks(this.editor);
|
|
38
49
|
const fontSizeMark = marks[MarkTypes.fontSize];
|
|
@@ -82,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
|
82
93
|
type: HostListener,
|
|
83
94
|
args: ['mousedown', ['$event']]
|
|
84
95
|
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2staW5zZXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3F1aWNrLWluc2VydC9jb21wb25lbnRzL3F1aWNrLWluc2VydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9xdWljay1pbnNlcnQvY29tcG9uZW50cy9xdWljay1pbnNlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBZ0MsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBVSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxLQUFLLFVBQVUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBVS9DLE1BQU0sT0FBTyx1QkFBdUI7SUFtQmhDLFlBQW9CLFFBQW1CLEVBQVUsVUFBc0IsRUFBVSxHQUFzQjtRQUFuRixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBaEI5RixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRTNCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxvQkFBZSxHQUFHLGtCQUFrQixDQUFDO1FBQ3JDLGlCQUFZLEdBQUcsdUJBQXVCLENBQUM7UUFDdkMsb0JBQWUsR0FBRyxJQUFJLENBQUMsZUFB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RUQsV0FBVyxDQUFDLEtBQWlCO1FBQ3pCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1RyxDQUFDOztxSEF0RVEsdUJBQXVCO3lHQUF2Qix1QkFBdUIsdVlBVUUsVUFBVSw2QkMzQmhELHdRQVFBOzRGRFNhLHVCQUF1QjtrQkFSbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsK0JBQStCO29CQUM1QyxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLGtCQUFrQjt3QkFDekIsY0FBYyxFQUFFLFFBQVE7cUJBQzNCO2lCQUNKO3lKQUVZLE1BQU07c0JBQWQsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFRTixXQUFXO3NCQURWLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUk3RCw0QkFBNEI7c0JBRDNCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgSG9zdExpc3RlbmVyLCBSZW5kZXJlcjIsIENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkaXRvciwgTm9kZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IE1hcmtUeXBlcyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcbmltcG9ydCB7IFRvb2xiYXJJdGVtIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy90b29sYmFyJztcbmltcG9ydCB7IGlzQ2xlYW5FbXB0eVBhcmFncmFwaCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2lzLWNsZWFuLWVtcHR5LXBhcmFncmFwaCc7XG5pbXBvcnQgeyBRdWlja0luc2VydEVkaXRvciB9IGZyb20gJy4uL3F1aWNrLWluc2VydC5lZGl0b3InO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi8uLi9xdWVyaWVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbdGhlUXVpY2tJbnNlcnRdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcXVpY2staW5zZXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGhlLXF1aWNrLWluc2VydCcsXG4gICAgICAgICdbY2xhc3MuaGlkZV0nOiAnaXNIaWRlJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGhlUXVpY2tJbnNlcnRDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGVkaXRvcjogRWRpdG9yO1xuICAgIEBJbnB1dCgpIHF1aWNrVG9vbGJhckl0ZW1zOiBUb29sYmFySXRlbVtdO1xuICAgIEBJbnB1dCgpIGlzVmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgaXNIaWRlID0gdHJ1ZTtcbiAgICBkZWZhdWx0SWNvbk5hbWUgPSAncGx1cy1jaXJjbGUtdGhpbic7XG4gICAgaWNvbk5hbWVGaWxsID0gJ3BsdXMtY2lyY2xlLXRoaW4tZmlsbCc7XG4gICAgZGlzcGxheUljb25OYW1lID0gdGhpcy5kZWZhdWx0SWNvbk5hbWU7XG5cbiAgICBAVmlld0NoaWxkKCdpY29uRWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICAgIGljb25FbGVtZW50OiBFbGVtZW50UmVmPGFueT47XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZU1vdXNlZG93bk5hdGl2ZUVsZW1lbnQoZXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIHB1YmxpYyBjaGVja1N0YXR1cygpIHtcbiAgICAgICAgY29uc3QgeyBlZGl0b3IgfSA9IHRoaXM7XG4gICAgICAgIGlmICh0aGlzLmlzVmlzaWJsZSAmJiBpc0NsZWFuRW1wdHlQYXJhZ3JhcGgoZWRpdG9yKSAmJiAhdGhpcy5oYXNFeGNsdWRlQXR0cmlidXRlKCkgJiYgIXRoaXMuaXNSaWNoTWVkaWFTY29wZSgpKSB7XG4gICAgICAgICAgICBjb25zdCBibG9jayA9IE5vZGUuYW5jZXN0b3IoZWRpdG9yLCBbZWRpdG9yPy5zZWxlY3Rpb24/LmFuY2hvci5wYXRoWzBdXSk7XG4gICAgICAgICAgICBjb25zdCByb290Tm9kZTogSFRNTEVsZW1lbnQgPSBBbmd1bGFyRWRpdG9yLnRvRE9NTm9kZShlZGl0b3IsIGJsb2NrKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24ocm9vdE5vZGUub2Zmc2V0TGVmdCwgcm9vdE5vZGUub2Zmc2V0VG9wKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzSGlkZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1JpY2hNZWRpYVNjb3BlKCkge1xuICAgICAgICBjb25zdCB7IGVkaXRvciB9ID0gdGhpcztcbiAgICAgICAgaWYgKGVkaXRvcj8uc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBibG9jayA9IE5vZGUuYW5jZXN0b3IoZWRpdG9yLCBbZWRpdG9yPy5zZWxlY3Rpb24/LmFuY2hvci5wYXRoWzBdXSk7XG4gICAgICAgICAgICBjb25zdCByb290Tm9kZTogSFRNTEVsZW1lbnQgPSBBbmd1bGFyRWRpdG9yLnRvRE9NTm9kZShlZGl0b3IsIGJsb2NrKTtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0RWxlbWVudENoaWxkID0gcm9vdE5vZGUuZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICByZXR1cm4gZmlyc3RFbGVtZW50Q2hpbGQ/Lm9mZnNldExlZnQgPiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc0V4Y2x1ZGVBdHRyaWJ1dGUoKSB7XG4gICAgICAgIGNvbnN0IG1hcmtzID0gVGhlUXVlcmllcy5nZXRTZWxlY3Rpb25NYXJrcyh0aGlzLmVkaXRvcik7XG4gICAgICAgIGNvbnN0IGZvbnRTaXplTWFyazogbnVtYmVyID0gbWFya3NbTWFya1R5cGVzLmZvbnRTaXplXTtcblxuICAgICAgICByZXR1cm4gZm9udFNpemVNYXJrO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUG9zaXRpb24obGVmdDogbnVtYmVyLCB0b3A/OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pc0hpZGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RvcCcsIGAke3RvcH1weGApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbGVmdCcsIGAke2xlZnR9cHhgKTtcbiAgICB9XG5cbiAgICBtb3VzZUVudGVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUljb25OYW1lID0gdGhpcy5pY29uTmFtZUZpbGw7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIG1vdXNlTGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5SWNvbk5hbWUgPSB0aGlzLmRlZmF1bHRJY29uTmFtZTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgaGFuZGxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIFF1aWNrSW5zZXJ0RWRpdG9yLm9wZW5RdWlja1Rvb2xiYXIodGhpcy5lZGl0b3IsIHRoaXMucXVpY2tUb29sYmFySXRlbXMsIHRoaXMuaWNvbkVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxufVxuIiwiPHRoeS1pY29uXG4gICAgI2ljb25FbGVtZW50XG4gICAgW3RoeUljb25OYW1lXT1cImRpc3BsYXlJY29uTmFtZVwiXG4gICAgY2xhc3M9XCJxdWljay1pbnNlcnQtaWNvbiB0ZXh0LWRlc2MgZm9udC1zaXplLXhsZ1wiXG4gICAgKG1vdXNlZW50ZXIpPVwibW91c2VFbnRlcigkZXZlbnQpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJtb3VzZUxlYXZlKCRldmVudClcIlxuICAgIChtb3VzZWRvd24pPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiXG4+PC90aHktaWNvbj5cbiJdfQ==
|
|
@@ -40,6 +40,10 @@ export class TheContextService {
|
|
|
40
40
|
const editableElement = this.getEditableElement();
|
|
41
41
|
return editableElement === null || editableElement === void 0 ? void 0 : editableElement.firstElementChild;
|
|
42
42
|
}
|
|
43
|
+
layoutDefaultWidth() {
|
|
44
|
+
const firstElementChild = this.getFirstElementChild();
|
|
45
|
+
return 0.48 * firstElementChild.clientWidth;
|
|
46
|
+
}
|
|
43
47
|
setUploadFileList(file) {
|
|
44
48
|
this.fileList.push(file);
|
|
45
49
|
}
|
|
@@ -52,4 +56,4 @@ TheContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
|
|
|
52
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TheContextService, decorators: [{
|
|
53
57
|
type: Injectable
|
|
54
58
|
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRTdDLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQzs7QUFlL0QsTUFBTSxPQUFPLGlCQUFpQjtJQWdCMUIsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFibEMsYUFBUSxHQUFrQyxFQUFFLENBQUM7UUFFdEMsc0JBQWlCLEdBQXNCO1lBQzFDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsS0FBSyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBU0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQWEsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFhLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBYSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sVUFBVSxDQUFDLE9BQTBCO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFTSxVQUFVO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ3JCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxDQUFDO1NBQ3REO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxhQUFhO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDbkMsQ0FBQztJQUVNLGtCQUFrQjs7UUFDckIsT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLDBDQUFFLFFBQVEsS0FBSSxTQUFTLENBQUMsVUFBVSxDQUFDO0lBQ3JFLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU0sb0JBQW9CO1FBQ3ZCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2xELE9BQU8sZUFBZSxhQUFmLGVBQWUsdUJBQWYsZUFBZSxDQUFFLGlCQUFnQyxDQUFDO0lBQzdELENBQUM7SUFFTSxrQkFBa0I7UUFDckIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUN0RCxPQUFPLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7SUFDaEQsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQWlDO1FBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFVO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQ25ELENBQUMsQ0FDSixDQUFDO0lBQ04sQ0FBQzs7K0dBbkVRLGlCQUFpQjttSEFBakIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGhlT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWRpdG9yJztcbmltcG9ydCB7IEZvbnRTaXplcywgTWFya1R5cGVzIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoZUNvbnRleHRPcHRpb25zIHtcbiAgICB0aGVPcHRpb25zOiBUaGVPcHRpb25zO1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG59XG5cbmludGVyZmFjZSBQYWludEZvcm1hdFN0YXR1cyB7XG4gICAgaXNBY3RpdmU6IGJvb2xlYW47XG4gICAgbWFya3M6IHsgW2tleSBpbiBNYXJrVHlwZXNdPzogYW55IH07XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUaGVDb250ZXh0U2VydmljZSB7XG4gICAgcHJpdmF0ZSBvcHRpb25zOiBUaGVDb250ZXh0T3B0aW9ucztcblxuICAgIGZpbGVMaXN0OiB7IHVybDogc3RyaW5nOyBmaWxlOiBGaWxlIH1bXSA9IFtdO1xuXG4gICAgcHVibGljIHBhaW50Rm9ybWF0U3RhdHVzOiBQYWludEZvcm1hdFN0YXR1cyA9IHtcbiAgICAgICAgaXNBY3RpdmU6IGZhbHNlLFxuICAgICAgICBtYXJrczoge31cbiAgICB9O1xuXG4gICAgcHVibGljIG9uTW91c2VVcCQ6IE9ic2VydmFibGU8TW91c2VFdmVudD47XG5cbiAgICBwdWJsaWMgb25Nb3VzZU1vdmUkOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+O1xuXG4gICAgcHVibGljIG9uTW91c2VEb3duJDogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbk1vdXNlVXAkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHdpbmRvdywgYG1vdXNldXBgKTtcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZU1vdmUkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHdpbmRvdywgYG1vdXNlbW92ZWApO1xuICAgICAgICAgICAgdGhpcy5vbk1vdXNlRG93biQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4od2luZG93LCBgbW91c2Vkb3duYCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0aWFsaXplKG9wdGlvbnM6IFRoZUNvbnRleHRPcHRpb25zKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE9wdGlvbnMoKSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLndpZHRoKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdEVsZW1lbnRDaGlsZCA9IHRoaXMuZ2V0Rmlyc3RFbGVtZW50Q2hpbGQoKTtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy53aWR0aCA9IGZpcnN0RWxlbWVudENoaWxkLm9mZnNldFdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRoZU9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMudGhlT3B0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGVmYXVsdEZvbnRTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRoZU9wdGlvbnM/LmZvbnRTaXplIHx8IEZvbnRTaXplcy5mb250U2l6ZTE0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFZGl0YWJsZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcudGhlLWVkaXRvci10eXBvJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpcnN0RWxlbWVudENoaWxkKCkge1xuICAgICAgICBjb25zdCBlZGl0YWJsZUVsZW1lbnQgPSB0aGlzLmdldEVkaXRhYmxlRWxlbWVudCgpO1xuICAgICAgICByZXR1cm4gZWRpdGFibGVFbGVtZW50Py5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbGF5b3V0RGVmYXVsdFdpZHRoKCkge1xuICAgICAgICBjb25zdCBmaXJzdEVsZW1lbnRDaGlsZCA9IHRoaXMuZ2V0Rmlyc3RFbGVtZW50Q2hpbGQoKTtcbiAgICAgICAgcmV0dXJuIDAuNDggKiBmaXJzdEVsZW1lbnRDaGlsZC5jbGllbnRXaWR0aDtcbiAgICB9XG5cbiAgICBzZXRVcGxvYWRGaWxlTGlzdChmaWxlOiB7IHVybDogc3RyaW5nOyBmaWxlOiBGaWxlIH0pIHtcbiAgICAgICAgdGhpcy5maWxlTGlzdC5wdXNoKGZpbGUpO1xuICAgIH1cblxuICAgIHJlbW92ZVVwbG9hZEltYWdlKGZpbGU6IEZpbGUpIHtcbiAgICAgICAgdGhpcy5maWxlTGlzdC5zcGxpY2UoXG4gICAgICAgICAgICB0aGlzLmZpbGVMaXN0LmZpbmRJbmRleChpdGVtID0+IGl0ZW0uZmlsZSA9PT0gZmlsZSksXG4gICAgICAgICAgICAxXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|