slate-angular 16.1.0-next.8 → 17.0.0-next.0
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/components/children/children.component.d.ts +6 -1
- package/components/descendant/descendant.component.d.ts +35 -0
- package/components/editable/editable.component.d.ts +5 -15
- package/components/leaf/leaf.component.d.ts +16 -0
- package/components/leaves/leaves.component.d.ts +14 -1
- package/components/string/default-string.component.d.ts +1 -1
- package/components/string/string.component.d.ts +0 -8
- package/esm2022/components/block-card/block-card.component.mjs +2 -2
- package/esm2022/components/children/children.component.mjs +33 -5
- package/esm2022/components/descendant/descendant.component.mjs +186 -0
- package/esm2022/components/editable/editable.component.mjs +38 -115
- package/esm2022/components/element/default-element.component.mjs +3 -3
- package/esm2022/components/element/element.component.mjs +3 -3
- package/esm2022/components/leaf/leaf.component.mjs +38 -0
- package/esm2022/components/leaves/leaves.component.mjs +50 -5
- package/esm2022/components/string/default-string.component.mjs +1 -1
- package/esm2022/components/string/string.component.mjs +6 -16
- package/esm2022/components/text/default-text.component.mjs +3 -3
- package/esm2022/components/text/void-text.component.mjs +3 -3
- package/esm2022/module.mjs +22 -7
- package/esm2022/plugins/angular-editor.mjs +6 -7
- package/esm2022/plugins/with-angular.mjs +4 -4
- package/esm2022/public-api.mjs +2 -3
- package/esm2022/utils/index.mjs +1 -2
- package/esm2022/view/base.mjs +17 -51
- package/esm2022/view/before-context-change.mjs +7 -0
- package/esm2022/view/container.mjs +82 -2
- package/esm2022/view/context.mjs +1 -1
- package/fesm2022/slate-angular.mjs +747 -1004
- package/fesm2022/slate-angular.mjs.map +1 -1
- package/module.d.ts +8 -7
- package/package.json +5 -5
- package/plugins/angular-editor.d.ts +1 -1
- package/public-api.d.ts +1 -2
- package/utils/index.d.ts +0 -1
- package/view/base.d.ts +4 -15
- package/view/{context-change.d.ts → before-context-change.d.ts} +0 -4
- package/view/container.d.ts +7 -3
- package/view/context.d.ts +1 -6
- package/components/children/children-outlet.component.d.ts +0 -9
- package/components/leaf/token.d.ts +0 -4
- package/components/text/token.d.ts +0 -5
- package/esm2022/components/children/children-outlet.component.mjs +0 -22
- package/esm2022/components/leaf/token.mjs +0 -3
- package/esm2022/components/text/token.mjs +0 -4
- package/esm2022/utils/throttle.mjs +0 -18
- package/esm2022/view/context-change.mjs +0 -13
- package/esm2022/view/render/leaves-render.mjs +0 -107
- package/esm2022/view/render/list-render.mjs +0 -253
- package/esm2022/view/render/utils.mjs +0 -117
- package/utils/throttle.d.ts +0 -2
- package/view/render/leaves-render.d.ts +0 -21
- package/view/render/list-render.d.ts +0 -32
- package/view/render/utils.d.ts +0 -11
package/esm2022/view/base.mjs
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import { Directive, HostBinding, Input
|
|
1
|
+
import { Directive, HostBinding, Input } from '@angular/core';
|
|
2
2
|
import { ELEMENT_TO_COMPONENT, ELEMENT_TO_NODE, NODE_TO_ELEMENT } from '../utils/weak-maps';
|
|
3
3
|
import { Range } from 'slate';
|
|
4
|
-
import {
|
|
5
|
-
import { ListRender } from './render/list-render';
|
|
6
|
-
import { LeavesRender } from './render/leaves-render';
|
|
7
|
-
import { SlateChildrenOutlet } from '../components/children/children-outlet.component';
|
|
4
|
+
import { hasBeforeContextChange } from './before-context-change';
|
|
8
5
|
import * as i0 from "@angular/core";
|
|
9
6
|
/**
|
|
10
7
|
* base class for custom element component or text component
|
|
@@ -16,12 +13,6 @@ export class BaseComponent {
|
|
|
16
13
|
}
|
|
17
14
|
this._context = value;
|
|
18
15
|
this.onContextChange();
|
|
19
|
-
if (this.initialized) {
|
|
20
|
-
this.cdr.detectChanges();
|
|
21
|
-
}
|
|
22
|
-
if (hasAfterContextChange(this)) {
|
|
23
|
-
this.afterContextChange();
|
|
24
|
-
}
|
|
25
16
|
}
|
|
26
17
|
get context() {
|
|
27
18
|
return this._context;
|
|
@@ -35,7 +26,6 @@ export class BaseComponent {
|
|
|
35
26
|
constructor(elementRef, cdr) {
|
|
36
27
|
this.elementRef = elementRef;
|
|
37
28
|
this.cdr = cdr;
|
|
38
|
-
this.initialized = false;
|
|
39
29
|
}
|
|
40
30
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: BaseComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
41
31
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: BaseComponent, inputs: { context: "context", viewContext: "viewContext" }, ngImport: i0 }); }
|
|
@@ -53,6 +43,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
|
53
43
|
export class BaseLeafComponent extends BaseComponent {
|
|
54
44
|
constructor() {
|
|
55
45
|
super(...arguments);
|
|
46
|
+
this.initialized = false;
|
|
56
47
|
this.isSlateLeaf = true;
|
|
57
48
|
}
|
|
58
49
|
get text() {
|
|
@@ -68,6 +59,7 @@ export class BaseLeafComponent extends BaseComponent {
|
|
|
68
59
|
if (!this.initialized) {
|
|
69
60
|
return;
|
|
70
61
|
}
|
|
62
|
+
this.cdr.markForCheck();
|
|
71
63
|
}
|
|
72
64
|
renderPlaceholder() {
|
|
73
65
|
// issue-1: IME input was interrupted
|
|
@@ -119,16 +111,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
|
119
111
|
export class BaseElementComponent extends BaseComponent {
|
|
120
112
|
constructor() {
|
|
121
113
|
super(...arguments);
|
|
122
|
-
this.
|
|
123
|
-
this.getOutletParent = () => {
|
|
124
|
-
return this.elementRef.nativeElement;
|
|
125
|
-
};
|
|
126
|
-
this.getOutletElement = () => {
|
|
127
|
-
if (this.childrenOutletInstance) {
|
|
128
|
-
return this.childrenOutletInstance.getNativeElement();
|
|
129
|
-
}
|
|
130
|
-
return null;
|
|
131
|
-
};
|
|
114
|
+
this.initialized = false;
|
|
132
115
|
}
|
|
133
116
|
get element() {
|
|
134
117
|
return this._context && this._context.element;
|
|
@@ -152,12 +135,11 @@ export class BaseElementComponent extends BaseComponent {
|
|
|
152
135
|
return this._context && this._context.readonly;
|
|
153
136
|
}
|
|
154
137
|
ngOnInit() {
|
|
138
|
+
this.updateWeakMap();
|
|
155
139
|
for (const key in this._context.attributes) {
|
|
156
140
|
this.nativeElement.setAttribute(key, this._context.attributes[key]);
|
|
157
141
|
}
|
|
158
142
|
this.initialized = true;
|
|
159
|
-
this.listRender = new ListRender(this.viewContext, this.viewContainerRef, this.getOutletParent, this.getOutletElement);
|
|
160
|
-
this.listRender.initialize(this.children, this.element, this.childrenContext);
|
|
161
143
|
}
|
|
162
144
|
updateWeakMap() {
|
|
163
145
|
NODE_TO_ELEMENT.set(this.element, this.nativeElement);
|
|
@@ -174,11 +156,11 @@ export class BaseElementComponent extends BaseComponent {
|
|
|
174
156
|
}
|
|
175
157
|
onContextChange() {
|
|
176
158
|
this.childrenContext = this.getChildrenContext();
|
|
177
|
-
this.updateWeakMap();
|
|
178
159
|
if (!this.initialized) {
|
|
179
160
|
return;
|
|
180
161
|
}
|
|
181
|
-
this.
|
|
162
|
+
this.cdr.markForCheck();
|
|
163
|
+
this.updateWeakMap();
|
|
182
164
|
}
|
|
183
165
|
getChildrenContext() {
|
|
184
166
|
return {
|
|
@@ -190,38 +172,25 @@ export class BaseElementComponent extends BaseComponent {
|
|
|
190
172
|
};
|
|
191
173
|
}
|
|
192
174
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: BaseElementComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
193
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: BaseElementComponent,
|
|
175
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: BaseElementComponent, usesInheritance: true, ngImport: i0 }); }
|
|
194
176
|
}
|
|
195
177
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: BaseElementComponent, decorators: [{
|
|
196
178
|
type: Directive
|
|
197
|
-
}]
|
|
198
|
-
type: ViewChild,
|
|
199
|
-
args: [SlateChildrenOutlet, { static: true }]
|
|
200
|
-
}] } });
|
|
179
|
+
}] });
|
|
201
180
|
/**
|
|
202
181
|
* base class for custom text component
|
|
203
182
|
*/
|
|
204
183
|
export class BaseTextComponent extends BaseComponent {
|
|
205
184
|
constructor() {
|
|
206
185
|
super(...arguments);
|
|
207
|
-
this.
|
|
208
|
-
this.getOutletParent = () => {
|
|
209
|
-
return this.elementRef.nativeElement;
|
|
210
|
-
};
|
|
211
|
-
this.getOutletElement = () => {
|
|
212
|
-
if (this.childrenOutletInstance) {
|
|
213
|
-
return this.childrenOutletInstance.getNativeElement();
|
|
214
|
-
}
|
|
215
|
-
return null;
|
|
216
|
-
};
|
|
186
|
+
this.initialized = false;
|
|
217
187
|
}
|
|
218
188
|
get text() {
|
|
219
189
|
return this._context && this._context.text;
|
|
220
190
|
}
|
|
221
191
|
ngOnInit() {
|
|
192
|
+
this.updateWeakMap();
|
|
222
193
|
this.initialized = true;
|
|
223
|
-
this.leavesRender = new LeavesRender(this.viewContext, this.viewContainerRef, this.getOutletParent, this.getOutletElement);
|
|
224
|
-
this.leavesRender.initialize(this.context);
|
|
225
194
|
}
|
|
226
195
|
updateWeakMap() {
|
|
227
196
|
ELEMENT_TO_NODE.set(this.nativeElement, this.text);
|
|
@@ -233,19 +202,16 @@ export class BaseTextComponent extends BaseComponent {
|
|
|
233
202
|
}
|
|
234
203
|
}
|
|
235
204
|
onContextChange() {
|
|
236
|
-
this.updateWeakMap();
|
|
237
205
|
if (!this.initialized) {
|
|
238
206
|
return;
|
|
239
207
|
}
|
|
240
|
-
this.
|
|
208
|
+
this.cdr.markForCheck();
|
|
209
|
+
this.updateWeakMap();
|
|
241
210
|
}
|
|
242
211
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: BaseTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
243
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: BaseTextComponent,
|
|
212
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: BaseTextComponent, usesInheritance: true, ngImport: i0 }); }
|
|
244
213
|
}
|
|
245
214
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: BaseTextComponent, decorators: [{
|
|
246
215
|
type: Directive
|
|
247
|
-
}]
|
|
248
|
-
type: ViewChild,
|
|
249
|
-
args: [SlateChildrenOutlet, { static: true }]
|
|
250
|
-
}] } });
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy92aWV3L2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUdMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUYsT0FBTyxFQUE2QixLQUFLLEVBQVEsTUFBTSxPQUFPLENBQUM7QUFFL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7QUFVdkY7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLGFBQWE7SUFRL0IsSUFDSSxPQUFPLENBQUMsS0FBUTtRQUNoQixJQUFJLHNCQUFzQixDQUFJLElBQUksQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUM1QjtRQUNELElBQUkscUJBQXFCLENBQUksSUFBSSxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDN0I7SUFDTCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FB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SUFFRCxXQUFXO1FBQ1AsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3ZELGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBOUNRLGlCQUFpQjtrR0FBakIsaUJBQWlCLGtGQVNmLG1CQUFtQjs7MkZBVHJCLGlCQUFpQjtrQkFEN0IsU0FBUzs4QkFXTixzQkFBc0I7c0JBRHJCLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICcuLi9wbHVnaW5zL2FuZ3VsYXItZWRpdG9yJztcbmltcG9ydCB7IEVMRU1FTlRfVE9fQ09NUE9ORU5ULCBFTEVNRU5UX1RPX05PREUsIE5PREVfVE9fRUxFTUVOVCB9IGZyb20gJy4uL3V0aWxzL3dlYWstbWFwcyc7XG5pbXBvcnQgeyBTbGF0ZVZpZXdDb250ZXh0LCBTbGF0ZUVsZW1lbnRDb250ZXh0LCBTbGF0ZVRleHRDb250ZXh0LCBTbGF0ZUxlYWZDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IERlc2NlbmRhbnQsIEVsZW1lbnQsIFBhdGgsIFJhbmdlLCBUZXh0IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgU2xhdGVDaGlsZHJlbkNvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgaGFzQWZ0ZXJDb250ZXh0Q2hhbmdlLCBoYXNCZWZvcmVDb250ZXh0Q2hhbmdlIH0gZnJvbSAnLi9jb250ZXh0LWNoYW5nZSc7XG5pbXBvcnQgeyBMaXN0UmVuZGVyIH0gZnJvbSAnLi9yZW5kZXIvbGlzdC1yZW5kZXInO1xuaW1wb3J0IHsgTGVhdmVzUmVuZGVyIH0gZnJvbSAnLi9yZW5kZXIvbGVhdmVzLXJlbmRlcic7XG5pbXBvcnQgeyBTbGF0ZUNoaWxkcmVuT3V0bGV0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jaGlsZHJlbi9jaGlsZHJlbi1vdXRsZXQuY29tcG9uZW50JztcblxuLyoqXG4gKiBiYXNlIGNsYXNzIGZvciB0ZW1wbGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VFbWJlZGRlZFZpZXc8VCwgSyBleHRlbmRzIEFuZ3VsYXJFZGl0b3IgPSBBbmd1bGFyRWRpdG9yPiB7XG4gICAgY29udGV4dDogVDtcbiAgICB2aWV3Q29udGV4dDogU2xhdGVWaWV3Q29udGV4dDxLPjtcbn1cblxuLyoqXG4gKiBiYXNlIGNsYXNzIGZvciBjdXN0b20gZWxlbWVudCBjb21wb25lbnQgb3IgdGV4dCBjb21wb25lbnRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudDxcbiAgICBUID0gU2xhdGVUZXh0Q29udGV4dCB8IFNsYXRlTGVhZkNvbnRleHQgfCBTbGF0ZUVsZW1lbnRDb250ZXh0LFxuICAgIEsgZXh0ZW5kcyBBbmd1bGFyRWRpdG9yID0gQW5ndWxhckVkaXRvclxuPiB7XG4gICAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBfY29udGV4dDogVDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvbnRleHQodmFsdWU6IFQpIHtcbiAgICAgICAgaWYgKGhhc0JlZm9yZUNvbnRleHRDaGFuZ2U8VD4odGhpcykpIHtcbiAgICAgICAgICAgIHRoaXMuYmVmb3JlQ29udGV4dENoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29udGV4dCA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9uQ29udGV4dENoYW5nZSgpO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNBZnRlckNvbnRleHRDaGFuZ2U8VD4odGhpcykpIHtcbiAgICAgICAgICAgIHRoaXMuYWZ0ZXJDb250ZXh0Q2hhbmdlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgY29udGV4dCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XG4gICAgfVxuXG4gICAgQElucHV0KCkgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQ8Sz47XG5cbiAgICBnZXQgZWRpdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3Q29udGV4dCAmJiB0aGlzLnZpZXdDb250ZXh0LmVkaXRvcjtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgYWJzdHJhY3Qgb25Db250ZXh0Q2hhbmdlKCk7XG59XG5cbi8qKlxuICogYmFzZSBjbGFzcyBmb3IgY3VzdG9tIGxlYWYgY29tcG9uZW50XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEJhc2VMZWFmQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudDxTbGF0ZUxlYWZDb250ZXh0PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcGxhY2Vob2xkZXJFbGVtZW50OiBIVE1MU3BhbkVsZW1lbnQ7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zbGF0ZS1sZWFmJykgaXNTbGF0ZUxlYWYgPSB0cnVlO1xuXG4gICAgZ2V0IHRleHQoKTogVGV4dCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0LnRleHQ7XG4gICAgfVxuXG4gICAgZ2V0IGxlYWYoKTogVGV4dCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0LmxlYWY7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW5kZXJQbGFjZWhvbGRlcigpIHtcbiAgICAgICAgLy8gaXNzdWUtMTogSU1FIGlucHV0IHdhcyBpbnRlcnJ1cHRlZFxuICAgICAgICAvLyBpc3N1ZS0yOiBJTUUgaW5wdXQgZm9jdXMganVtcGluZ1xuICAgICAgICAvLyBJc3N1ZSBvY2N1cnMgd2hlbiB0aGUgc3BhbiBub2RlIG9mIHRoZSBwbGFjZWhvbGRlciBpcyBiZWZvcmUgdGhlIHNsYXRlU3RyaW5nIHNwYW4gbm9kZVxuICAgICAgICBpZiAodGhpcy5jb250ZXh0LmxlYWZbJ3BsYWNlaG9sZGVyJ10pIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5wbGFjZWhvbGRlckVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBsYWNlaG9sZGVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBsYWNlaG9sZGVyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3lQbGFjZWhvbGRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlUGxhY2Vob2xkZXIoKSB7XG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgcGxhY2Vob2xkZXJFbGVtZW50LmlubmVyVGV4dCA9IHRoaXMuY29udGV4dC5sZWFmWydwbGFjZWhvbGRlciddO1xuICAgICAgICBwbGFjZWhvbGRlckVsZW1lbnQuY29udGVudEVkaXRhYmxlID0gJ2ZhbHNlJztcbiAgICAgICAgcGxhY2Vob2xkZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1zbGF0ZS1wbGFjZWhvbGRlcicsICd0cnVlJyk7XG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXJFbGVtZW50ID0gcGxhY2Vob2xkZXJFbGVtZW50O1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbGVhZi13aXRoLXBsYWNlaG9sZGVyJyk7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChwbGFjZWhvbGRlckVsZW1lbnQpO1xuICAgIH1cblxuICAgIHVwZGF0ZVBsYWNlaG9sZGVyKCkge1xuICAgICAgICBpZiAodGhpcy5wbGFjZWhvbGRlckVsZW1lbnQuaW5uZXJUZXh0ICE9PSB0aGlzLmNvbnRleHQubGVhZlsncGxhY2Vob2xkZXInXSkge1xuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlckVsZW1lbnQuaW5uZXJUZXh0ID0gdGhpcy5jb250ZXh0LmxlYWZbJ3BsYWNlaG9sZGVyJ107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZXN0cm95UGxhY2Vob2xkZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlckVsZW1lbnQucmVtb3ZlKCk7XG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyRWxlbWVudCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnbGVhZi13aXRoLXBsYWNlaG9sZGVyJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogYmFzZSBjbGFzcyBmb3IgY3VzdG9tIGVsZW1lbnQgY29tcG9uZW50XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEJhc2VFbGVtZW50Q29tcG9uZW50PFQgZXh0ZW5kcyBFbGVtZW50ID0gRWxlbWVudCwgSyBleHRlbmRzIEFuZ3VsYXJFZGl0b3IgPSBBbmd1bGFyRWRpdG9yPlxuICAgIGV4dGVuZHMgQmFzZUNvbXBvbmVudDxTbGF0ZUVsZW1lbnRDb250ZXh0PFQ+LCBLPlxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgICB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gICAgY2hpbGRyZW5Db250ZXh0OiBTbGF0ZUNoaWxkcmVuQ29udGV4dDtcblxuICAgIEBWaWV3Q2hpbGQoU2xhdGVDaGlsZHJlbk91dGxldCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBjaGlsZHJlbk91dGxldEluc3RhbmNlPzogU2xhdGVDaGlsZHJlbk91dGxldDtcblxuICAgIGdldCBlbGVtZW50KCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LmVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IHNlbGVjdGlvbigpOiBSYW5nZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0ICYmIHRoaXMuX2NvbnRleHQuc2VsZWN0aW9uO1xuICAgIH1cblxuICAgIGdldCBkZWNvcmF0aW9ucygpOiBSYW5nZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQgJiYgdGhpcy5fY29udGV4dC5kZWNvcmF0aW9ucztcbiAgICB9XG5cbiAgICBnZXQgY2hpbGRyZW4oKTogRGVzY2VuZGFudFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQgJiYgdGhpcy5fY29udGV4dC5lbGVtZW50LmNoaWxkcmVuO1xuICAgIH1cblxuICAgIGdldCBpc0NvbGxhcHNlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uICYmIFJhbmdlLmlzQ29sbGFwc2VkKHRoaXMuc2VsZWN0aW9uKTtcbiAgICB9XG5cbiAgICBnZXQgaXNDb2xsYXBzZWRBbmROb25SZWFkb25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uICYmIFJhbmdlLmlzQ29sbGFwc2VkKHRoaXMuc2VsZWN0aW9uKSAmJiAhdGhpcy5yZWFkb25seTtcbiAgICB9XG5cbiAgICBnZXQgcmVhZG9ubHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0ICYmIHRoaXMuX2NvbnRleHQucmVhZG9ubHk7XG4gICAgfVxuXG4gICAgZ2V0T3V0bGV0UGFyZW50ID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfTtcblxuICAgIGdldE91dGxldEVsZW1lbnQgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNoaWxkcmVuT3V0bGV0SW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuT3V0bGV0SW5zdGFuY2UuZ2V0TmF0aXZlRWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG5cbiAgICBsaXN0UmVuZGVyOiBMaXN0UmVuZGVyO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuX2NvbnRleHQuYXR0cmlidXRlcykge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZShrZXksIHRoaXMuX2NvbnRleHQuYXR0cmlidXRlc1trZXldKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5saXN0UmVuZGVyID0gbmV3IExpc3RSZW5kZXIodGhpcy52aWV3Q29udGV4dCwgdGhpcy52aWV3Q29udGFpbmVyUmVmLCB0aGlzLmdldE91dGxldFBhcmVudCwgdGhpcy5nZXRPdXRsZXRFbGVtZW50KTtcbiAgICAgICAgdGhpcy5saXN0UmVuZGVyLmluaXRpYWxpemUodGhpcy5jaGlsZHJlbiwgdGhpcy5lbGVtZW50LCB0aGlzLmNoaWxkcmVuQ29udGV4dCk7XG4gICAgfVxuXG4gICAgdXBkYXRlV2Vha01hcCgpIHtcbiAgICAgICAgTk9ERV9UT19FTEVNRU5ULnNldCh0aGlzLmVsZW1lbnQsIHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIEVMRU1FTlRfVE9fTk9ERS5zZXQodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICBFTEVNRU5UX1RPX0NPTVBPTkVOVC5zZXQodGhpcy5lbGVtZW50LCB0aGlzKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKE5PREVfVE9fRUxFTUVOVC5nZXQodGhpcy5lbGVtZW50KSA9PT0gdGhpcy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBOT0RFX1RPX0VMRU1FTlQuZGVsZXRlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEVMRU1FTlRfVE9fQ09NUE9ORU5ULmdldCh0aGlzLmVsZW1lbnQpID09PSB0aGlzKSB7XG4gICAgICAgICAgICBFTEVNRU5UX1RPX0NPTVBPTkVOVC5kZWxldGUodGhpcy5lbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbkNvbnRleHQgPSB0aGlzLmdldENoaWxkcmVuQ29udGV4dCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVdlYWtNYXAoKTtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5saXN0UmVuZGVyLnVwZGF0ZSh0aGlzLmNoaWxkcmVuLCB0aGlzLmVsZW1lbnQsIHRoaXMuY2hpbGRyZW5Db250ZXh0KTtcbiAgICB9XG5cbiAgICBnZXRDaGlsZHJlbkNvbnRleHQoKTogU2xhdGVDaGlsZHJlbkNvbnRleHQge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGFyZW50OiB0aGlzLl9jb250ZXh0LmVsZW1lbnQsXG4gICAgICAgICAgICBzZWxlY3Rpb246IHRoaXMuX2NvbnRleHQuc2VsZWN0aW9uLFxuICAgICAgICAgICAgZGVjb3JhdGlvbnM6IHRoaXMuX2NvbnRleHQuZGVjb3JhdGlvbnMsXG4gICAgICAgICAgICBkZWNvcmF0ZTogdGhpcy5fY29udGV4dC5kZWNvcmF0ZSxcbiAgICAgICAgICAgIHJlYWRvbmx5OiB0aGlzLl9jb250ZXh0LnJlYWRvbmx5XG4gICAgICAgIH07XG4gICAgfVxufVxuXG4vKipcbiAqIGJhc2UgY2xhc3MgZm9yIGN1c3RvbSB0ZXh0IGNvbXBvbmVudFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBCYXNlVGV4dENvbXBvbmVudDxUIGV4dGVuZHMgVGV4dCA9IFRleHQ+IGV4dGVuZHMgQmFzZUNvbXBvbmVudDxTbGF0ZVRleHRDb250ZXh0PFQ+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gICAgZ2V0IHRleHQoKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0ICYmIHRoaXMuX2NvbnRleHQudGV4dDtcbiAgICB9XG5cbiAgICBsZWF2ZXNSZW5kZXI6IExlYXZlc1JlbmRlcjtcblxuICAgIEBWaWV3Q2hpbGQoU2xhdGVDaGlsZHJlbk91dGxldCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBjaGlsZHJlbk91dGxldEluc3RhbmNlPzogU2xhdGVDaGlsZHJlbk91dGxldDtcblxuICAgIGdldE91dGxldFBhcmVudCA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH07XG5cbiAgICBnZXRPdXRsZXRFbGVtZW50ID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jaGlsZHJlbk91dGxldEluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbk91dGxldEluc3RhbmNlLmdldE5hdGl2ZUVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmxlYXZlc1JlbmRlciA9IG5ldyBMZWF2ZXNSZW5kZXIodGhpcy52aWV3Q29udGV4dCwgdGhpcy52aWV3Q29udGFpbmVyUmVmLCB0aGlzLmdldE91dGxldFBhcmVudCwgdGhpcy5nZXRPdXRsZXRFbGVtZW50KTtcbiAgICAgICAgdGhpcy5sZWF2ZXNSZW5kZXIuaW5pdGlhbGl6ZSh0aGlzLmNvbnRleHQpO1xuICAgIH1cblxuICAgIHVwZGF0ZVdlYWtNYXAoKSB7XG4gICAgICAgIEVMRU1FTlRfVE9fTk9ERS5zZXQodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLnRleHQpO1xuICAgICAgICBOT0RFX1RPX0VMRU1FTlQuc2V0KHRoaXMudGV4dCwgdGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKE5PREVfVE9fRUxFTUVOVC5nZXQodGhpcy50ZXh0KSA9PT0gdGhpcy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBOT0RFX1RPX0VMRU1FTlQuZGVsZXRlKHRoaXMudGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlV2Vha01hcCgpO1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxlYXZlc1JlbmRlci51cGRhdGUodGhpcy5jb250ZXh0KTtcbiAgICB9XG59XG4iXX0=
|
|
216
|
+
}] });
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy92aWV3L2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQyxTQUFTLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFM0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RixPQUFPLEVBQXVCLEtBQUssRUFBUSxNQUFNLE9BQU8sQ0FBQztBQUV6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFVakU7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLGFBQWE7SUFNL0IsSUFDSSxPQUFPLENBQUMsS0FBUTtRQUNoQixJQUFJLHNCQUFzQixDQUFJLElBQUksQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFJRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJQUVELFlBQW1CLFVBQXNCLEVBQVMsR0FBc0I7UUFBckQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQUcsQ0FBQzs4R0E3QjFELGFBQWE7a0dBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEbEMsU0FB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bnQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJy4uL3BsdWdpbnMvYW5ndWxhci1lZGl0b3InO1xuaW1wb3J0IHsgRUxFTUVOVF9UT19DT01QT05FTlQsIEVMRU1FTlRfVE9fTk9ERSwgTk9ERV9UT19FTEVNRU5UIH0gZnJvbSAnLi4vdXRpbHMvd2Vhay1tYXBzJztcbmltcG9ydCB7IFNsYXRlVmlld0NvbnRleHQsIFNsYXRlRWxlbWVudENvbnRleHQsIFNsYXRlVGV4dENvbnRleHQsIFNsYXRlTGVhZkNvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgRGVzY2VuZGFudCwgRWxlbWVudCwgUmFuZ2UsIFRleHQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBTbGF0ZUNoaWxkcmVuQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBoYXNCZWZvcmVDb250ZXh0Q2hhbmdlIH0gZnJvbSAnLi9iZWZvcmUtY29udGV4dC1jaGFuZ2UnO1xuXG4vKipcbiAqIGJhc2UgY2xhc3MgZm9yIHRlbXBsYXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUVtYmVkZGVkVmlldzxULCBLIGV4dGVuZHMgQW5ndWxhckVkaXRvciA9IEFuZ3VsYXJFZGl0b3I+IHtcbiAgICBjb250ZXh0OiBUO1xuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0PEs+O1xufVxuXG4vKipcbiAqIGJhc2UgY2xhc3MgZm9yIGN1c3RvbSBlbGVtZW50IGNvbXBvbmVudCBvciB0ZXh0IGNvbXBvbmVudFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tcG9uZW50PFxuICAgIFQgPSBTbGF0ZVRleHRDb250ZXh0IHwgU2xhdGVMZWFmQ29udGV4dCB8IFNsYXRlRWxlbWVudENvbnRleHQsXG4gICAgSyBleHRlbmRzIEFuZ3VsYXJFZGl0b3IgPSBBbmd1bGFyRWRpdG9yXG4+IHtcbiAgICBwcm90ZWN0ZWQgX2NvbnRleHQ6IFQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb250ZXh0KHZhbHVlOiBUKSB7XG4gICAgICAgIGlmIChoYXNCZWZvcmVDb250ZXh0Q2hhbmdlPFQ+KHRoaXMpKSB7XG4gICAgICAgICAgICB0aGlzLmJlZm9yZUNvbnRleHRDaGFuZ2UodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NvbnRleHQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vbkNvbnRleHRDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBnZXQgY29udGV4dCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XG4gICAgfVxuXG4gICAgQElucHV0KCkgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQ8Sz47XG5cbiAgICBnZXQgZWRpdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3Q29udGV4dCAmJiB0aGlzLnZpZXdDb250ZXh0LmVkaXRvcjtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBhYnN0cmFjdCBvbkNvbnRleHRDaGFuZ2UoKTtcbn1cblxuLyoqXG4gKiBiYXNlIGNsYXNzIGZvciBjdXN0b20gbGVhZiBjb21wb25lbnRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZUxlYWZDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFNsYXRlTGVhZkNvbnRleHQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcGxhY2Vob2xkZXJFbGVtZW50OiBIVE1MU3BhbkVsZW1lbnQ7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zbGF0ZS1sZWFmJykgaXNTbGF0ZUxlYWYgPSB0cnVlO1xuXG4gICAgZ2V0IHRleHQoKTogVGV4dCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0LnRleHQ7XG4gICAgfVxuXG4gICAgZ2V0IGxlYWYoKTogVGV4dCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0LmxlYWY7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcmVuZGVyUGxhY2Vob2xkZXIoKSB7XG4gICAgICAgIC8vIGlzc3VlLTE6IElNRSBpbnB1dCB3YXMgaW50ZXJydXB0ZWRcbiAgICAgICAgLy8gaXNzdWUtMjogSU1FIGlucHV0IGZvY3VzIGp1bXBpbmdcbiAgICAgICAgLy8gSXNzdWUgb2NjdXJzIHdoZW4gdGhlIHNwYW4gbm9kZSBvZiB0aGUgcGxhY2Vob2xkZXIgaXMgYmVmb3JlIHRoZSBzbGF0ZVN0cmluZyBzcGFuIG5vZGVcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dC5sZWFmWydwbGFjZWhvbGRlciddKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXJFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQbGFjZWhvbGRlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy51cGRhdGVQbGFjZWhvbGRlcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kZXN0cm95UGxhY2Vob2xkZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZVBsYWNlaG9sZGVyKCkge1xuICAgICAgICBjb25zdCBwbGFjZWhvbGRlckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIHBsYWNlaG9sZGVyRWxlbWVudC5pbm5lclRleHQgPSB0aGlzLmNvbnRleHQubGVhZlsncGxhY2Vob2xkZXInXTtcbiAgICAgICAgcGxhY2Vob2xkZXJFbGVtZW50LmNvbnRlbnRFZGl0YWJsZSA9ICdmYWxzZSc7XG4gICAgICAgIHBsYWNlaG9sZGVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2xhdGUtcGxhY2Vob2xkZXInLCAndHJ1ZScpO1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyRWxlbWVudCA9IHBsYWNlaG9sZGVyRWxlbWVudDtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2xlYWYtd2l0aC1wbGFjZWhvbGRlcicpO1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQocGxhY2Vob2xkZXJFbGVtZW50KTtcbiAgICB9XG5cbiAgICB1cGRhdGVQbGFjZWhvbGRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXJFbGVtZW50LmlubmVyVGV4dCAhPT0gdGhpcy5jb250ZXh0LmxlYWZbJ3BsYWNlaG9sZGVyJ10pIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJFbGVtZW50LmlubmVyVGV4dCA9IHRoaXMuY29udGV4dC5sZWFmWydwbGFjZWhvbGRlciddO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzdHJveVBsYWNlaG9sZGVyKCkge1xuICAgICAgICBpZiAodGhpcy5wbGFjZWhvbGRlckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJFbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlckVsZW1lbnQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2xlYWYtd2l0aC1wbGFjZWhvbGRlcicpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIGJhc2UgY2xhc3MgZm9yIGN1c3RvbSBlbGVtZW50IGNvbXBvbmVudFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBCYXNlRWxlbWVudENvbXBvbmVudDxUIGV4dGVuZHMgRWxlbWVudCA9IEVsZW1lbnQsIEsgZXh0ZW5kcyBBbmd1bGFyRWRpdG9yID0gQW5ndWxhckVkaXRvcj5cbiAgICBleHRlbmRzIEJhc2VDb21wb25lbnQ8U2xhdGVFbGVtZW50Q29udGV4dDxUPiwgSz5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gICAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIGNoaWxkcmVuQ29udGV4dDogU2xhdGVDaGlsZHJlbkNvbnRleHQ7XG5cbiAgICBnZXQgZWxlbWVudCgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQgJiYgdGhpcy5fY29udGV4dC5lbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBzZWxlY3Rpb24oKTogUmFuZ2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LnNlbGVjdGlvbjtcbiAgICB9XG5cbiAgICBnZXQgZGVjb3JhdGlvbnMoKTogUmFuZ2VbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0ICYmIHRoaXMuX2NvbnRleHQuZGVjb3JhdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGNoaWxkcmVuKCk6IERlc2NlbmRhbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0ICYmIHRoaXMuX2NvbnRleHQuZWxlbWVudC5jaGlsZHJlbjtcbiAgICB9XG5cbiAgICBnZXQgaXNDb2xsYXBzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZCh0aGlzLnNlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgZ2V0IGlzQ29sbGFwc2VkQW5kTm9uUmVhZG9ubHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZCh0aGlzLnNlbGVjdGlvbikgJiYgIXRoaXMucmVhZG9ubHk7XG4gICAgfVxuXG4gICAgZ2V0IHJlYWRvbmx5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LnJlYWRvbmx5O1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVdlYWtNYXAoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fY29udGV4dC5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKGtleSwgdGhpcy5fY29udGV4dC5hdHRyaWJ1dGVzW2tleV0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHVwZGF0ZVdlYWtNYXAoKSB7XG4gICAgICAgIE5PREVfVE9fRUxFTUVOVC5zZXQodGhpcy5lbGVtZW50LCB0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBFTEVNRU5UX1RPX05PREUuc2V0KHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgRUxFTUVOVF9UT19DT01QT05FTlQuc2V0KHRoaXMuZWxlbWVudCwgdGhpcyk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmIChOT0RFX1RPX0VMRU1FTlQuZ2V0KHRoaXMuZWxlbWVudCkgPT09IHRoaXMubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgTk9ERV9UT19FTEVNRU5ULmRlbGV0ZSh0aGlzLmVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChFTEVNRU5UX1RPX0NPTVBPTkVOVC5nZXQodGhpcy5lbGVtZW50KSA9PT0gdGhpcykge1xuICAgICAgICAgICAgRUxFTUVOVF9UT19DT01QT05FTlQuZGVsZXRlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW5Db250ZXh0ID0gdGhpcy5nZXRDaGlsZHJlbkNvbnRleHQoKTtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMudXBkYXRlV2Vha01hcCgpO1xuICAgIH1cblxuICAgIGdldENoaWxkcmVuQ29udGV4dCgpOiBTbGF0ZUNoaWxkcmVuQ29udGV4dCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMuX2NvbnRleHQuZWxlbWVudCxcbiAgICAgICAgICAgIHNlbGVjdGlvbjogdGhpcy5fY29udGV4dC5zZWxlY3Rpb24sXG4gICAgICAgICAgICBkZWNvcmF0aW9uczogdGhpcy5fY29udGV4dC5kZWNvcmF0aW9ucyxcbiAgICAgICAgICAgIGRlY29yYXRlOiB0aGlzLl9jb250ZXh0LmRlY29yYXRlLFxuICAgICAgICAgICAgcmVhZG9ubHk6IHRoaXMuX2NvbnRleHQucmVhZG9ubHlcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbi8qKlxuICogYmFzZSBjbGFzcyBmb3IgY3VzdG9tIHRleHQgY29tcG9uZW50XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEJhc2VUZXh0Q29tcG9uZW50PFQgZXh0ZW5kcyBUZXh0ID0gVGV4dD4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFNsYXRlVGV4dENvbnRleHQ8VD4+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBnZXQgdGV4dCgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQgJiYgdGhpcy5fY29udGV4dC50ZXh0O1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVdlYWtNYXAoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgdXBkYXRlV2Vha01hcCgpIHtcbiAgICAgICAgRUxFTUVOVF9UT19OT0RFLnNldCh0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMudGV4dCk7XG4gICAgICAgIE5PREVfVE9fRUxFTUVOVC5zZXQodGhpcy50ZXh0LCB0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAoTk9ERV9UT19FTEVNRU5ULmdldCh0aGlzLnRleHQpID09PSB0aGlzLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIE5PREVfVE9fRUxFTUVOVC5kZWxldGUodGhpcy50ZXh0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy51cGRhdGVXZWFrTWFwKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function hasBeforeContextChange(value) {
|
|
2
|
+
if (value.beforeContextChange) {
|
|
3
|
+
return true;
|
|
4
|
+
}
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLWNvbnRleHQtY2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL3ZpZXcvYmVmb3JlLWNvbnRleHQtY2hhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSxzQkFBc0IsQ0FBSSxLQUFLO0lBQzNDLElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBCZWZvcmVDb250ZXh0Q2hhbmdlPFQ+IHtcbiAgICBiZWZvcmVDb250ZXh0Q2hhbmdlOiAodmFsdWU6IFQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNCZWZvcmVDb250ZXh0Q2hhbmdlPFQ+KHZhbHVlKTogdmFsdWUgaXMgQmVmb3JlQ29udGV4dENoYW5nZTxUPiB7XG4gICAgaWYgKHZhbHVlLmJlZm9yZUNvbnRleHRDaGFuZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { SlateErrorCode } from '../types/error';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
/**
|
|
4
|
-
* @deprecated
|
|
5
5
|
* the special container for angular template
|
|
6
6
|
* Add the rootNodes of each child component to the parentElement
|
|
7
7
|
* Remove useless DOM elements, eg: comment...
|
|
@@ -11,6 +11,86 @@ export class ViewContainer {
|
|
|
11
11
|
this.elementRef = elementRef;
|
|
12
12
|
this.differs = differs;
|
|
13
13
|
}
|
|
14
|
+
ngAfterViewInit() {
|
|
15
|
+
const differ = this.differs.find(this.childrenComponent).create((index, item) => {
|
|
16
|
+
return item;
|
|
17
|
+
});
|
|
18
|
+
// first diff
|
|
19
|
+
differ.diff(this.childrenComponent);
|
|
20
|
+
const parentElement = this.elementRef.nativeElement.parentElement;
|
|
21
|
+
if (this.childrenComponent.length > 0) {
|
|
22
|
+
parentElement.insertBefore(this.createFragment(), this.elementRef.nativeElement);
|
|
23
|
+
this.elementRef.nativeElement.remove();
|
|
24
|
+
}
|
|
25
|
+
this.childrenComponent.changes.subscribe(value => {
|
|
26
|
+
const iterableChanges = differ.diff(this.childrenComponent);
|
|
27
|
+
if (iterableChanges) {
|
|
28
|
+
iterableChanges.forEachOperation((record, previousIndex, currentIndex) => {
|
|
29
|
+
// removed
|
|
30
|
+
if (currentIndex === null) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// added or moved
|
|
34
|
+
this.handleContainerItemChange(record, parentElement);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
getPreviousRootNode(currentIndex) {
|
|
40
|
+
if (currentIndex === 0) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
const previousComponent = this.childrenComponent.find((item, index) => index === currentIndex - 1);
|
|
44
|
+
let previousRootNode = previousComponent.rootNodes[previousComponent.rootNodes.length - 1];
|
|
45
|
+
if (previousRootNode) {
|
|
46
|
+
return previousRootNode;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
return this.getPreviousRootNode(currentIndex - 1);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
createFragment() {
|
|
53
|
+
const fragment = document.createDocumentFragment();
|
|
54
|
+
this.childrenComponent.forEach((component, index) => {
|
|
55
|
+
fragment.append(...component.rootNodes);
|
|
56
|
+
});
|
|
57
|
+
return fragment;
|
|
58
|
+
}
|
|
59
|
+
handleContainerItemChange(record, parentElement) {
|
|
60
|
+
// first insert
|
|
61
|
+
if (this.elementRef.nativeElement.parentElement && this.elementRef.nativeElement.parentElement === parentElement) {
|
|
62
|
+
const fragment = document.createDocumentFragment();
|
|
63
|
+
fragment.append(...record.item.rootNodes);
|
|
64
|
+
parentElement.insertBefore(fragment, this.elementRef.nativeElement);
|
|
65
|
+
this.elementRef.nativeElement.remove();
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
// insert at start location
|
|
69
|
+
if (record.currentIndex === 0) {
|
|
70
|
+
const fragment = document.createDocumentFragment();
|
|
71
|
+
fragment.append(...record.item.rootNodes);
|
|
72
|
+
parentElement.prepend(fragment);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// insert afterend of previous component end
|
|
76
|
+
let previousRootNode = this.getPreviousRootNode(record.currentIndex);
|
|
77
|
+
if (previousRootNode) {
|
|
78
|
+
record.item.rootNodes.forEach(rootNode => {
|
|
79
|
+
previousRootNode.insertAdjacentElement('afterend', rootNode);
|
|
80
|
+
previousRootNode = rootNode;
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this.viewContext.editor.onError({
|
|
85
|
+
code: SlateErrorCode.NotFoundPreviousRootNodeError,
|
|
86
|
+
name: 'not found previous rootNode',
|
|
87
|
+
nativeError: null
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Solve the block-card DOMElement loss when moving nodes
|
|
92
|
+
record.item.appendBlockCardElement();
|
|
93
|
+
}
|
|
14
94
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: ViewContainer, deps: [{ token: i0.ElementRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
15
95
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: ViewContainer, inputs: { viewContext: "viewContext" }, ngImport: i0 }); }
|
|
16
96
|
}
|
|
@@ -19,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
|
19
99
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.IterableDiffers }]; }, propDecorators: { viewContext: [{
|
|
20
100
|
type: Input
|
|
21
101
|
}] } });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL3ZpZXcvY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBb0QsTUFBTSxlQUFlLENBQUM7QUFHOUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVoRDs7OztHQUlHO0FBRUgsTUFBTSxPQUFnQixhQUFhO0lBSy9CLFlBQXNCLFVBQTJCLEVBQVksT0FBd0I7UUFBL0QsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7UUFBWSxZQUFPLEdBQVAsT0FBTyxDQUFpQjtJQUFHLENBQUM7SUFFekYsZUFBZTtRQUNYLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM1RSxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUNILGFBQWE7UUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sYUFBYSxHQUFnQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7UUFDL0UsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVB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QWdCLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUM3RCxnQkFBZ0IsR0FBRyxRQUFRLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxDQUFDO2FBQ047aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO29CQUM1QixJQUFJLEVBQUUsY0FBYyxDQUFDLDZCQUE2QjtvQkFDbEQsSUFBSSxFQUFFLDZCQUE2QjtvQkFDbkMsV0FBVyxFQUFFLElBQUk7aUJBQ3BCLENBQUMsQ0FBQzthQUNOO1NBQ0o7UUFDRCx5REFBeUQ7UUFDekQsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7OEdBdEZpQixhQUFhO2tHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRGxDLFNBQVM7K0hBSUcsV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIEl0ZXJhYmxlQ2hhbmdlUmVjb3JkLCBJdGVyYWJsZURpZmZlcnMsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2xhdGVWaWV3Q29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBWaWV3Q29udGFpbmVySXRlbSB9IGZyb20gJy4vY29udGFpbmVyLWl0ZW0nO1xuaW1wb3J0IHsgU2xhdGVFcnJvckNvZGUgfSBmcm9tICcuLi90eXBlcy9lcnJvcic7XG5cbi8qKlxuICogdGhlIHNwZWNpYWwgY29udGFpbmVyIGZvciBhbmd1bGFyIHRlbXBsYXRlXG4gKiBBZGQgdGhlIHJvb3ROb2RlcyBvZiBlYWNoIGNoaWxkIGNvbXBvbmVudCB0byB0aGUgcGFyZW50RWxlbWVudFxuICogUmVtb3ZlIHVzZWxlc3MgRE9NIGVsZW1lbnRzLCBlZzogY29tbWVudC4uLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWaWV3Q29udGFpbmVyPFQgZXh0ZW5kcyBWaWV3Q29udGFpbmVySXRlbT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBhYnN0cmFjdCBjaGlsZHJlbkNvbXBvbmVudDogUXVlcnlMaXN0PFQ+O1xuXG4gICAgQElucHV0KCkgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZjxhbnk+LCBwcm90ZWN0ZWQgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzKSB7fVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBjb25zdCBkaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZCh0aGlzLmNoaWxkcmVuQ29tcG9uZW50KS5jcmVhdGUoKGluZGV4LCBpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGZpcnN0IGRpZmZcbiAgICAgICAgZGlmZmVyLmRpZmYodGhpcy5jaGlsZHJlbkNvbXBvbmVudCk7XG4gICAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW5Db21wb25lbnQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUodGhpcy5jcmVhdGVGcmFnbWVudCgpLCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoaWxkcmVuQ29tcG9uZW50LmNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZXJhYmxlQ2hhbmdlcyA9IGRpZmZlci5kaWZmKHRoaXMuY2hpbGRyZW5Db21wb25lbnQpO1xuICAgICAgICAgICAgaWYgKGl0ZXJhYmxlQ2hhbmdlcykge1xuICAgICAgICAgICAgICAgIGl0ZXJhYmxlQ2hhbmdlcy5mb3JFYWNoT3BlcmF0aW9uKChyZWNvcmQ6IEl0ZXJhYmxlQ2hhbmdlUmVjb3JkPFQ+LCBwcmV2aW91c0luZGV4OiBOdW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGFkZGVkIG9yIG1vdmVkXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ29udGFpbmVySXRlbUNoYW5nZShyZWNvcmQsIHBhcmVudEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRQcmV2aW91c1Jvb3ROb2RlKGN1cnJlbnRJbmRleCkge1xuICAgICAgICBpZiAoY3VycmVudEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmV2aW91c0NvbXBvbmVudCA9IHRoaXMuY2hpbGRyZW5Db21wb25lbnQuZmluZCgoaXRlbSwgaW5kZXgpID0+IGluZGV4ID09PSBjdXJyZW50SW5kZXggLSAxKTtcbiAgICAgICAgbGV0IHByZXZpb3VzUm9vdE5vZGUgPSBwcmV2aW91c0NvbXBvbmVudC5yb290Tm9kZXNbcHJldmlvdXNDb21wb25lbnQucm9vdE5vZGVzLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAocHJldmlvdXNSb290Tm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzUm9vdE5vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRQcmV2aW91c1Jvb3ROb2RlKGN1cnJlbnRJbmRleCAtIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlRnJhZ21lbnQoKSB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICB0aGlzLmNoaWxkcmVuQ29tcG9uZW50LmZvckVhY2goKGNvbXBvbmVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGZyYWdtZW50LmFwcGVuZCguLi5jb21wb25lbnQucm9vdE5vZGVzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmcmFnbWVudDtcbiAgICB9XG5cbiAgICBoYW5kbGVDb250YWluZXJJdGVtQ2hhbmdlKHJlY29yZDogSXRlcmFibGVDaGFuZ2VSZWNvcmQ8VD4sIHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIC8vIGZpcnN0IGluc2VydFxuICAgICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCAmJiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50ID09PSBwYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgICAgIGZyYWdtZW50LmFwcGVuZCguLi5yZWNvcmQuaXRlbS5yb290Tm9kZXMpO1xuICAgICAgICAgICAgcGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUoZnJhZ21lbnQsIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIGluc2VydCBhdCBzdGFydCBsb2NhdGlvblxuICAgICAgICBpZiAocmVjb3JkLmN1cnJlbnRJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgICAgICBmcmFnbWVudC5hcHBlbmQoLi4ucmVjb3JkLml0ZW0ucm9vdE5vZGVzKTtcbiAgICAgICAgICAgIHBhcmVudEVsZW1lbnQucHJlcGVuZChmcmFnbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBpbnNlcnQgYWZ0ZXJlbmQgb2YgcHJldmlvdXMgY29tcG9uZW50IGVuZFxuICAgICAgICAgICAgbGV0IHByZXZpb3VzUm9vdE5vZGUgPSB0aGlzLmdldFByZXZpb3VzUm9vdE5vZGUocmVjb3JkLmN1cnJlbnRJbmRleCk7XG4gICAgICAgICAgICBpZiAocHJldmlvdXNSb290Tm9kZSkge1xuICAgICAgICAgICAgICAgIHJlY29yZC5pdGVtLnJvb3ROb2Rlcy5mb3JFYWNoKHJvb3ROb2RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNSb290Tm9kZS5pbnNlcnRBZGphY2VudEVsZW1lbnQoJ2FmdGVyZW5kJywgcm9vdE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1Jvb3ROb2RlID0gcm9vdE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRleHQuZWRpdG9yLm9uRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICBjb2RlOiBTbGF0ZUVycm9yQ29kZS5Ob3RGb3VuZFByZXZpb3VzUm9vdE5vZGVFcnJvcixcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ25vdCBmb3VuZCBwcmV2aW91cyByb290Tm9kZScsXG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZUVycm9yOiBudWxsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gU29sdmUgdGhlIGJsb2NrLWNhcmQgRE9NRWxlbWVudCBsb3NzIHdoZW4gbW92aW5nIG5vZGVzXG4gICAgICAgIHJlY29yZC5pdGVtLmFwcGVuZEJsb2NrQ2FyZEVsZW1lbnQoKTtcbiAgICB9XG59XG4iXX0=
|
package/esm2022/view/context.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy92aWV3L2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVFbnRyeSwgUmFuZ2UsIEVsZW1lbnQsIEFuY2VzdG9yLCBUZXh0IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgU2xhdGVTdHJpbmdUZW1wbGF0ZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3RyaW5nL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnLi4vcGx1Z2lucy9hbmd1bGFyLWVkaXRvcic7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uL3R5cGVzL3ZpZXcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNsYXRlVmlld0NvbnRleHQ8VCBleHRlbmRzIEFuZ3VsYXJFZGl0b3IgPSBBbmd1bGFyRWRpdG9yPiB7XG4gICAgZWRpdG9yOiBUO1xuICAgIHRlbXBsYXRlQ29tcG9uZW50OiBTbGF0ZVN0cmluZ1RlbXBsYXRlO1xuICAgIHRyYWNrQnk6IChlbGVtZW50OiBFbGVtZW50KSA9PiBhbnk7XG4gICAgcmVuZGVyRWxlbWVudD86IChlbGVtZW50OiBFbGVtZW50KSA9PiBWaWV3VHlwZTtcbiAgICByZW5kZXJMZWFmPzogKHRleHQ6IFRleHQpID0+IFZpZXdUeXBlO1xuICAgIHJlbmRlclRleHQ/OiAodGV4dDogVGV4dCkgPT4gVmlld1R5cGU7XG4gICAgaXNTdHJpY3REZWNvcmF0ZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbGF0ZUNoaWxkcmVuQ29udGV4dCB7XG4gICAgcGFyZW50OiBBbmNlc3RvcjtcbiAgICBzZWxlY3Rpb246IFJhbmdlO1xuICAgIGRlY29yYXRpb25zOiBSYW5nZVtdO1xuICAgIGRlY29yYXRlOiAoZW50cnk6IE5vZGVFbnRyeSkgPT4gUmFuZ2VbXTtcbiAgICByZWFkb25seTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbGF0ZUVsZW1lbnRDb250ZXh0PFQgZXh0ZW5kcyBFbGVtZW50ID0gRWxlbWVudD4ge1xuICAgIGVsZW1lbnQ6IFQ7XG4gICAgc2VsZWN0aW9uOiBSYW5nZSB8IG51bGw7XG4gICAgZGVjb3JhdGlvbnM6IFJhbmdlW107XG4gICAgYXR0cmlidXRlczogU2xhdGVFbGVtZW50QXR0cmlidXRlcztcbiAgICBkZWNvcmF0ZTogKGVudHJ5OiBOb2RlRW50cnkpID0+IFJhbmdlW107XG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVUZXh0Q29udGV4dDxUIGV4dGVuZHMgVGV4dCA9IFRleHQ+IHtcbiAgICB0ZXh0OiBUO1xuICAgIGRlY29yYXRpb25zOiBSYW5nZVtdO1xuICAgIGlzTGFzdDogYm9vbGVhbjtcbiAgICBwYXJlbnQ6IEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVMZWFmQ29udGV4dCB7XG4gICAgbGVhZjogVGV4dDtcbiAgICB0ZXh0OiBUZXh0O1xuICAgIHBhcmVudDogRWxlbWVudDtcbiAgICBpc0xhc3Q6IGJvb2xlYW47XG4gICAgaW5kZXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbGF0ZUVsZW1lbnRBdHRyaWJ1dGVzIHtcbiAgICAnZGF0YS1zbGF0ZS1ub2RlJzogJ2VsZW1lbnQnO1xuICAgICdkYXRhLXNsYXRlLXZvaWQnPzogYm9vbGVhbjtcbiAgICAnZGF0YS1zbGF0ZS1pbmxpbmUnPzogYm9vbGVhbjtcbiAgICBjb250ZW50ZWRpdGFibGU/OiBib29sZWFuO1xuICAgICdkYXRhLXNsYXRlLWtleSc/OiBzdHJpbmc7XG4gICAgZGlyPzogJ3J0bCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVTdHJpbmdDb250ZXh0IHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgZWxlbWVudFN0cmluZ0xlbmd0aDogbnVtYmVyO1xuICAgIHR5cGU6ICdzdHJpbmcnIHwgJ2xpbmVCcmVha0VtcHR5U3RyaW5nJztcbn1cbiJdfQ==
|