@veloceapps/sdk 6.0.0-40 → 6.0.0-42
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/veloceapps-sdk-cms.umd.js +3 -168
- package/bundles/veloceapps-sdk-cms.umd.js.map +1 -1
- package/bundles/veloceapps-sdk.umd.js.map +1 -1
- package/cms/types/common.types.d.ts +2 -2
- package/esm2015/cms/cms.elements.js +4 -17
- package/esm2015/cms/types/common.types.js +1 -1
- package/esm2015/src/components/header/header.component.js +2 -2
- package/fesm2015/veloceapps-sdk-cms.js +5 -166
- package/fesm2015/veloceapps-sdk-cms.js.map +1 -1
- package/fesm2015/veloceapps-sdk.js.map +1 -1
- package/package.json +1 -1
- package/cms/plugins/element-hover.plugin.d.ts +0 -32
- package/esm2015/cms/plugins/element-hover.plugin.js +0 -157
package/package.json
CHANGED
@@ -1,32 +0,0 @@
|
|
1
|
-
import { OnDestroy } from '@angular/core';
|
2
|
-
import { ElementComponent } from '../components/element.component';
|
3
|
-
import { PluginComponent } from '../components/plugin.component';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
export declare class ElementHoverPlugin implements PluginComponent, OnDestroy {
|
6
|
-
host: ElementComponent;
|
7
|
-
private readonly hoverClassName;
|
8
|
-
private readonly color;
|
9
|
-
private el;
|
10
|
-
private metadata;
|
11
|
-
private document;
|
12
|
-
private runtimeEditorService;
|
13
|
-
private overlayEl?;
|
14
|
-
private highlighted;
|
15
|
-
private destroyed$;
|
16
|
-
private mouseOverListenerBound;
|
17
|
-
private mouseLeaveListenerBound;
|
18
|
-
constructor(host: ElementComponent);
|
19
|
-
ngOnDestroy(): void;
|
20
|
-
private attachListeners;
|
21
|
-
private detachListeners;
|
22
|
-
private mouseOverListener;
|
23
|
-
private mouseLeaveListener;
|
24
|
-
private addHighlight;
|
25
|
-
private removeHighlight;
|
26
|
-
private createContainer;
|
27
|
-
private addRemoveButton;
|
28
|
-
private addElementName;
|
29
|
-
private deleteRemoveButton;
|
30
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ElementHoverPlugin, never>;
|
31
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ElementHoverPlugin, never, never, {}, {}, never>;
|
32
|
-
}
|
@@ -1,157 +0,0 @@
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
2
|
-
import { Directive, ElementRef } from '@angular/core';
|
3
|
-
import { merge } from 'lodash';
|
4
|
-
import { Subject, takeUntil } from 'rxjs';
|
5
|
-
import { ELEMENT_METADATA } from '../injection-tokens';
|
6
|
-
import { RuntimeEditorService } from '../modules/runtime/services/runtime-editor.service';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
import * as i1 from "../components/element.component";
|
9
|
-
export class ElementHoverPlugin {
|
10
|
-
constructor(host) {
|
11
|
-
this.host = host;
|
12
|
-
this.hoverClassName = 'element-hover';
|
13
|
-
this.color = 'red';
|
14
|
-
this.highlighted = false;
|
15
|
-
this.destroyed$ = new Subject();
|
16
|
-
this.el = this.host.injector.get(ElementRef);
|
17
|
-
this.metadata = this.host.injector.get(ELEMENT_METADATA);
|
18
|
-
this.document = this.host.injector.get(DOCUMENT);
|
19
|
-
this.runtimeEditorService = this.host.injector.get(RuntimeEditorService);
|
20
|
-
this.mouseOverListenerBound = this.mouseOverListener.bind(this);
|
21
|
-
this.mouseLeaveListenerBound = this.mouseLeaveListener.bind(this);
|
22
|
-
this.runtimeEditorService.editorMode$.pipe(takeUntil(this.destroyed$)).subscribe(editorMode => {
|
23
|
-
if (editorMode) {
|
24
|
-
this.attachListeners();
|
25
|
-
}
|
26
|
-
else {
|
27
|
-
this.detachListeners();
|
28
|
-
}
|
29
|
-
});
|
30
|
-
}
|
31
|
-
ngOnDestroy() {
|
32
|
-
this.destroyed$.next();
|
33
|
-
this.destroyed$.complete();
|
34
|
-
this.detachListeners();
|
35
|
-
}
|
36
|
-
attachListeners() {
|
37
|
-
this.el.nativeElement.addEventListener('mouseover', this.mouseOverListenerBound);
|
38
|
-
this.el.nativeElement.addEventListener('mouseleave', this.mouseLeaveListenerBound);
|
39
|
-
}
|
40
|
-
detachListeners() {
|
41
|
-
this.el.nativeElement.removeEventListener('mouseover', this.mouseOverListenerBound);
|
42
|
-
this.el.nativeElement.removeEventListener('mouseleave', this.mouseLeaveListenerBound);
|
43
|
-
}
|
44
|
-
mouseOverListener(e) {
|
45
|
-
const path = e.composedPath();
|
46
|
-
const innerPath = path.slice(0, path.indexOf(this.el.nativeElement));
|
47
|
-
const hasChildHovered = innerPath.some(target => {
|
48
|
-
const t = target;
|
49
|
-
return t.tagName === 'VL-ELEMENT' && t.classList.contains(this.hoverClassName);
|
50
|
-
});
|
51
|
-
if (hasChildHovered) {
|
52
|
-
this.removeHighlight();
|
53
|
-
}
|
54
|
-
else {
|
55
|
-
this.addHighlight();
|
56
|
-
}
|
57
|
-
}
|
58
|
-
mouseLeaveListener() {
|
59
|
-
this.removeHighlight();
|
60
|
-
}
|
61
|
-
addHighlight() {
|
62
|
-
if (this.highlighted) {
|
63
|
-
return;
|
64
|
-
}
|
65
|
-
this.highlighted = true;
|
66
|
-
this.el.nativeElement.classList.add(this.hoverClassName);
|
67
|
-
const overlay = this.createContainer();
|
68
|
-
this.addRemoveButton(overlay);
|
69
|
-
this.addElementName(overlay);
|
70
|
-
this.el.nativeElement.appendChild(overlay);
|
71
|
-
this.overlayEl = overlay;
|
72
|
-
}
|
73
|
-
removeHighlight() {
|
74
|
-
if (!this.highlighted) {
|
75
|
-
return;
|
76
|
-
}
|
77
|
-
this.highlighted = false;
|
78
|
-
this.el.nativeElement.style.boxShadow = '';
|
79
|
-
this.el.nativeElement.classList.remove(this.hoverClassName);
|
80
|
-
this.deleteRemoveButton();
|
81
|
-
}
|
82
|
-
createContainer() {
|
83
|
-
const hostRect = this.el.nativeElement.getBoundingClientRect();
|
84
|
-
const div = this.document.createElement('div');
|
85
|
-
merge(div.style, {
|
86
|
-
position: 'fixed',
|
87
|
-
display: 'block',
|
88
|
-
pointerEvents: 'none',
|
89
|
-
left: '0',
|
90
|
-
top: '0',
|
91
|
-
fontSize: '10px',
|
92
|
-
lineHeight: `12px`,
|
93
|
-
fontWeight: '400',
|
94
|
-
color: '#fff',
|
95
|
-
width: `${hostRect.width}px`,
|
96
|
-
height: `${hostRect.height}px`,
|
97
|
-
transform: `translate(${hostRect.left}px, ${hostRect.top}px)`,
|
98
|
-
boxSizing: 'border-box',
|
99
|
-
boxShadow: `inset 0 0 0 1px ${this.color}`,
|
100
|
-
});
|
101
|
-
return div;
|
102
|
-
}
|
103
|
-
addRemoveButton(container) {
|
104
|
-
if (this.metadata.type === 'LAYOUT_REGION') {
|
105
|
-
return;
|
106
|
-
}
|
107
|
-
const buttonEl = this.document.createElement('div');
|
108
|
-
const buttonSize = 12;
|
109
|
-
merge(buttonEl.style, {
|
110
|
-
bottom: '100%',
|
111
|
-
right: '0',
|
112
|
-
width: `${buttonSize}px`,
|
113
|
-
height: `${buttonSize}px`,
|
114
|
-
padding: '1px',
|
115
|
-
textAlign: 'center',
|
116
|
-
backgroundColor: this.color,
|
117
|
-
position: 'absolute',
|
118
|
-
cursor: 'pointer',
|
119
|
-
display: 'block',
|
120
|
-
pointerEvents: 'all',
|
121
|
-
});
|
122
|
-
buttonEl.innerHTML = '✕';
|
123
|
-
buttonEl.addEventListener('click', () => {
|
124
|
-
if (this.metadata.path) {
|
125
|
-
this.runtimeEditorService.elementDeleted$.next({ path: this.metadata.path });
|
126
|
-
}
|
127
|
-
});
|
128
|
-
container.appendChild(buttonEl);
|
129
|
-
}
|
130
|
-
addElementName(container) {
|
131
|
-
const nameEl = this.document.createElement('div');
|
132
|
-
merge(nameEl.style, {
|
133
|
-
bottom: '100%',
|
134
|
-
left: '0',
|
135
|
-
height: `12px`,
|
136
|
-
backgroundColor: this.color,
|
137
|
-
position: 'absolute',
|
138
|
-
padding: '1px 2px',
|
139
|
-
display: 'block',
|
140
|
-
pointerEvents: 'all',
|
141
|
-
});
|
142
|
-
nameEl.innerHTML = this.metadata.name;
|
143
|
-
container.appendChild(nameEl);
|
144
|
-
}
|
145
|
-
deleteRemoveButton() {
|
146
|
-
if (this.overlayEl) {
|
147
|
-
this.el.nativeElement.removeChild(this.overlayEl);
|
148
|
-
this.overlayEl = undefined;
|
149
|
-
}
|
150
|
-
}
|
151
|
-
}
|
152
|
-
ElementHoverPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ElementHoverPlugin, deps: [{ token: i1.ElementComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
153
|
-
ElementHoverPlugin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: ElementHoverPlugin, ngImport: i0 });
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ElementHoverPlugin, decorators: [{
|
155
|
-
type: Directive
|
156
|
-
}], ctorParameters: function () { return [{ type: i1.ElementComponent }]; } });
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1ob3Zlci5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvcGx1Z2lucy9lbGVtZW50LWhvdmVyLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMvQixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7O0FBSTFGLE1BQU0sT0FBTyxrQkFBa0I7SUFlN0IsWUFBbUIsSUFBc0I7UUFBdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFkeEIsbUJBQWMsR0FBRyxlQUFlLENBQUM7UUFDakMsVUFBSyxHQUFHLEtBQUssQ0FBQztRQU92QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU12QyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJ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UUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxTQUFzQjtRQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBdUI7WUFDdkMsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsR0FBRztZQUNULE1BQU0sRUFBRSxNQUFNO1lBQ2QsZUFBZSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQzNCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLGFBQWEsRUFBRSxLQUFLO1NBQ3JCLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFFdEMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQzs7Z0hBM0tVLGtCQUFrQjtvR0FBbEIsa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBRDlCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbHVnaW5Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRUxFTUVOVF9NRVRBREFUQSB9IGZyb20gJy4uL2luamVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgUnVudGltZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi9tb2R1bGVzL3J1bnRpbWUvc2VydmljZXMvcnVudGltZS1lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi90eXBlcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRIb3ZlclBsdWdpbiBpbXBsZW1lbnRzIFBsdWdpbkNvbXBvbmVudCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBob3ZlckNsYXNzTmFtZSA9ICdlbGVtZW50LWhvdmVyJztcbiAgcHJpdmF0ZSByZWFkb25seSBjb2xvciA9ICdyZWQnO1xuXG4gIHByaXZhdGUgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBwcml2YXRlIG1ldGFkYXRhOiBFbGVtZW50TWV0YWRhdGE7XG4gIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50O1xuICBwcml2YXRlIHJ1bnRpbWVFZGl0b3JTZXJ2aWNlOiBSdW50aW1lRWRpdG9yU2VydmljZTtcbiAgcHJpdmF0ZSBvdmVybGF5RWw/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBoaWdobGlnaHRlZCA9IGZhbHNlO1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgbW91c2VPdmVyTGlzdGVuZXJCb3VuZDogKGU6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gIHByaXZhdGUgbW91c2VMZWF2ZUxpc3RlbmVyQm91bmQ6IChlOiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBob3N0OiBFbGVtZW50Q29tcG9uZW50KSB7XG4gICAgdGhpcy5lbCA9IHRoaXMuaG9zdC5pbmplY3Rvci5nZXQoRWxlbWVudFJlZik7XG4gICAgdGhpcy5tZXRhZGF0YSA9IHRoaXMuaG9zdC5pbmplY3Rvci5nZXQoRUxFTUVOVF9NRVRBREFUQSk7XG4gICAgdGhpcy5kb2N1bWVudCA9IHRoaXMuaG9zdC5pbmplY3Rvci5nZXQoRE9DVU1FTlQpO1xuICAgIHRoaXMucnVudGltZUVkaXRvclNlcnZpY2UgPSB0aGlzLmhvc3QuaW5qZWN0b3IuZ2V0KFJ1bnRpbWVFZGl0b3JTZXJ2aWNlKTtcblxuICAgIHRoaXMubW91c2VPdmVyTGlzdGVuZXJCb3VuZCA9IHRoaXMubW91c2VPdmVyTGlzdGVuZXIuYmluZCh0aGlzKTtcbiAgICB0aGlzLm1vdXNlTGVhdmVMaXN0ZW5lckJvdW5kID0gdGhpcy5tb3VzZUxlYXZlTGlzdGVuZXIuYmluZCh0aGlzKTtcblxuICAgIHRoaXMucnVudGltZUVkaXRvclNlcnZpY2UuZWRpdG9yTW9kZSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKGVkaXRvck1vZGUgPT4ge1xuICAgICAgaWYgKGVkaXRvck1vZGUpIHtcbiAgICAgICAgdGhpcy5hdHRhY2hMaXN0ZW5lcnMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGV0YWNoTGlzdGVuZXJzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgICB0aGlzLmRldGFjaExpc3RlbmVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHRhY2hMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIHRoaXMubW91c2VPdmVyTGlzdGVuZXJCb3VuZCk7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLm1vdXNlTGVhdmVMaXN0ZW5lckJvdW5kKTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0YWNoTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCB0aGlzLm1vdXNlT3Zlckxpc3RlbmVyQm91bmQpO1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5tb3VzZUxlYXZlTGlzdGVuZXJCb3VuZCk7XG4gIH1cblxuICBwcml2YXRlIG1vdXNlT3Zlckxpc3RlbmVyKGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwYXRoID0gZS5jb21wb3NlZFBhdGgoKTtcbiAgICBjb25zdCBpbm5lclBhdGggPSBwYXRoLnNsaWNlKDAsIHBhdGguaW5kZXhPZih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpKTtcbiAgICBjb25zdCBoYXNDaGlsZEhvdmVyZWQgPSBpbm5lclBhdGguc29tZSh0YXJnZXQgPT4ge1xuICAgICAgY29uc3QgdCA9IHRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIHJldHVybiB0LnRhZ05hbWUgPT09ICdWTC1FTEVNRU5UJyAmJiB0LmNsYXNzTGlzdC5jb250YWlucyh0aGlzLmhvdmVyQ2xhc3NOYW1lKTtcbiAgICB9KTtcblxuICAgIGlmIChoYXNDaGlsZEhvdmVyZWQpIHtcbiAgICAgIHRoaXMucmVtb3ZlSGlnaGxpZ2h0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkSGlnaGxpZ2h0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtb3VzZUxlYXZlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVIaWdobGlnaHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSGlnaGxpZ2h0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhpZ2hsaWdodGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5oaWdobGlnaHRlZCA9IHRydWU7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQodGhpcy5ob3ZlckNsYXNzTmFtZSk7XG5cbiAgICBjb25zdCBvdmVybGF5ID0gdGhpcy5jcmVhdGVDb250YWluZXIoKTtcbiAgICB0aGlzLmFkZFJlbW92ZUJ1dHRvbihvdmVybGF5KTtcbiAgICB0aGlzLmFkZEVsZW1lbnROYW1lKG92ZXJsYXkpO1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChvdmVybGF5KTtcbiAgICB0aGlzLm92ZXJsYXlFbCA9IG92ZXJsYXk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUhpZ2hsaWdodCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGlnaGxpZ2h0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmhpZ2hsaWdodGVkID0gZmFsc2U7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLmJveFNoYWRvdyA9ICcnO1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuaG92ZXJDbGFzc05hbWUpO1xuICAgIHRoaXMuZGVsZXRlUmVtb3ZlQnV0dG9uKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgaG9zdFJlY3QgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgZGl2ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgIG1lcmdlKGRpdi5zdHlsZSwgPENTU1N0eWxlRGVjbGFyYXRpb24+e1xuICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgbGVmdDogJzAnLFxuICAgICAgdG9wOiAnMCcsXG4gICAgICBmb250U2l6ZTogJzEwcHgnLFxuICAgICAgbGluZUhlaWdodDogYDEycHhgLFxuICAgICAgZm9udFdlaWdodDogJzQwMCcsXG4gICAgICBjb2xvcjogJyNmZmYnLFxuICAgICAgd2lkdGg6IGAke2hvc3RSZWN0LndpZHRofXB4YCxcbiAgICAgIGhlaWdodDogYCR7aG9zdFJlY3QuaGVpZ2h0fXB4YCxcbiAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZSgke2hvc3RSZWN0LmxlZnR9cHgsICR7aG9zdFJlY3QudG9wfXB4KWAsXG4gICAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICAgIGJveFNoYWRvdzogYGluc2V0IDAgMCAwIDFweCAke3RoaXMuY29sb3J9YCxcbiAgICB9KTtcblxuICAgIHJldHVybiBkaXY7XG4gIH1cblxuICBwcml2YXRlIGFkZFJlbW92ZUJ1dHRvbihjb250YWluZXI6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWV0YWRhdGEudHlwZSA9PT0gJ0xBWU9VVF9SRUdJT04nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYnV0dG9uRWwgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGNvbnN0IGJ1dHRvblNpemUgPSAxMjtcbiAgICBtZXJnZShidXR0b25FbC5zdHlsZSwgPENTU1N0eWxlRGVjbGFyYXRpb24+e1xuICAgICAgYm90dG9tOiAnMTAwJScsXG4gICAgICByaWdodDogJzAnLFxuICAgICAgd2lkdGg6IGAke2J1dHRvblNpemV9cHhgLFxuICAgICAgaGVpZ2h0OiBgJHtidXR0b25TaXplfXB4YCxcbiAgICAgIHBhZGRpbmc6ICcxcHgnLFxuICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5jb2xvcixcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgICAgcG9pbnRlckV2ZW50czogJ2FsbCcsXG4gICAgfSk7XG4gICAgYnV0dG9uRWwuaW5uZXJIVE1MID0gJyYjMTAwMDU7JztcbiAgICBidXR0b25FbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIGlmICh0aGlzLm1ldGFkYXRhLnBhdGgpIHtcbiAgICAgICAgdGhpcy5ydW50aW1lRWRpdG9yU2VydmljZS5lbGVtZW50RGVsZXRlZCQubmV4dCh7IHBhdGg6IHRoaXMubWV0YWRhdGEucGF0aCB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChidXR0b25FbCk7XG4gIH1cblxuICBwcml2YXRlIGFkZEVsZW1lbnROYW1lKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBuYW1lRWwgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIG1lcmdlKG5hbWVFbC5zdHlsZSwgPENTU1N0eWxlRGVjbGFyYXRpb24+e1xuICAgICAgYm90dG9tOiAnMTAwJScsXG4gICAgICBsZWZ0OiAnMCcsXG4gICAgICBoZWlnaHQ6IGAxMnB4YCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5jb2xvcixcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgcGFkZGluZzogJzFweCAycHgnLFxuICAgICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICAgIHBvaW50ZXJFdmVudHM6ICdhbGwnLFxuICAgIH0pO1xuXG4gICAgbmFtZUVsLmlubmVySFRNTCA9IHRoaXMubWV0YWRhdGEubmFtZTtcblxuICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChuYW1lRWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWxldGVSZW1vdmVCdXR0b24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3ZlcmxheUVsKSB7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5vdmVybGF5RWwpO1xuICAgICAgdGhpcy5vdmVybGF5RWwgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG4iXX0=
|