nuxeo-development-framework 5.3.3 → 5.3.4
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/nuxeo-development-framework.umd.js +2674 -289
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/ndf-config-editor/components/config-editor-actions/config-editor-actions.component.js +35 -0
- package/esm2015/lib/components/ndf-config-editor/components/editor-mode-switch.component.js +43 -0
- package/esm2015/lib/components/ndf-config-editor/components/index.js +4 -0
- package/esm2015/lib/components/ndf-config-editor/components/info-dialog/info-dialog.component.js +27 -0
- package/esm2015/lib/components/ndf-config-editor/config.token.js +3 -0
- package/esm2015/lib/components/ndf-config-editor/constants/index.js +4 -0
- package/esm2015/lib/components/ndf-config-editor/constants/mode.js +5 -0
- package/esm2015/lib/components/ndf-config-editor/constants/query.js +5 -0
- package/esm2015/lib/components/ndf-config-editor/constants/type.js +5 -0
- package/esm2015/lib/components/ndf-config-editor/containers/config-preview/config-preview.component.js +28 -0
- package/esm2015/lib/components/ndf-config-editor/containers/editor-settings/editor-settings.component.js +73 -0
- package/esm2015/lib/components/ndf-config-editor/containers/index.js +5 -0
- package/esm2015/lib/components/ndf-config-editor/containers/monaco-editor.component.js +195 -0
- package/esm2015/lib/components/ndf-config-editor/containers/ndf-config-editor/ndf-config-editor.component.js +133 -0
- package/esm2015/lib/components/ndf-config-editor/index.js +2 -0
- package/esm2015/lib/components/ndf-config-editor/models/config.js +2 -0
- package/esm2015/lib/components/ndf-config-editor/models/dialog-data.js +2 -0
- package/esm2015/lib/components/ndf-config-editor/models/editor-model.js +2 -0
- package/esm2015/lib/components/ndf-config-editor/models/index.js +5 -0
- package/esm2015/lib/components/ndf-config-editor/models/type-helper.js +2 -0
- package/esm2015/lib/components/ndf-config-editor/ndf-config-editor.module.js +118 -0
- package/esm2015/lib/components/ndf-config-editor/pipes/index.js +3 -0
- package/esm2015/lib/components/ndf-config-editor/pipes/is-valid-json.pipe.js +17 -0
- package/esm2015/lib/components/ndf-config-editor/pipes/validate-object.pipe.js +16 -0
- package/esm2015/lib/components/ndf-config-editor/public/editor-navigate-button.js +104 -0
- package/esm2015/lib/components/ndf-config-editor/public/index.js +2 -0
- package/esm2015/lib/components/ndf-config-editor/public-api.js +7 -0
- package/esm2015/lib/components/ndf-config-editor/services/data-access.service.js +26 -0
- package/esm2015/lib/components/ndf-config-editor/services/data-store.service.js +52 -0
- package/esm2015/lib/components/ndf-config-editor/services/dummy-data.js +1321 -0
- package/esm2015/lib/components/ndf-config-editor/services/index.js +4 -0
- package/esm2015/lib/components/ndf-config-editor/services/monaco.loader.service.js +51 -0
- package/esm2015/lib/components/ndf-config-editor/utility/index.js +2 -0
- package/esm2015/lib/components/ndf-config-editor/utility/json.js +10 -0
- package/esm2015/lib/components/reports/index.js +3 -0
- package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +19 -12
- package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +14 -5
- package/esm2015/lib/components/reports/ndf-reports/services/chart-data-transformers.service.js +15 -1
- package/esm2015/lib/components/reports/ndf-reports/services/chart-plugins-registry.service.js +9 -1
- package/esm2015/lib/components/spell-checker-field/spell-checker-field.module.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.js +20 -14
- package/esm2015/lib/components/tables/ndf-table/directives/index.js +1 -2
- package/esm2015/lib/components/tables/ndf-table/models/table-config.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/ndf-table.module.js +15 -7
- package/esm2015/lib/core/services/extension/component-register.service.js +4 -1
- package/esm2015/lib/core/tokens/index.js +2 -0
- package/esm2015/lib/core/tokens/project.token.js +3 -0
- package/esm2015/lib/directive/permissions/evaluators.service.js +20 -18
- package/esm2015/lib/shared/directives/copy-to-clipboard.directive.js +41 -0
- package/esm2015/lib/shared/directives/element-height.directive.js +80 -0
- package/esm2015/lib/shared/directives/fluid-height.directive.js +115 -0
- package/esm2015/lib/shared/directives/index.js +4 -0
- package/esm2015/lib/shared/index.js +6 -0
- package/esm2015/lib/shared/libraryShared.module.js +35 -10
- package/esm2015/lib/shared/models/index.js +2 -1
- package/esm2015/lib/shared/models/ndf-request.model.js +2 -0
- package/esm2015/public-api.js +4 -1
- package/fesm2015/nuxeo-development-framework.js +2528 -190
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/ndf-config-editor/components/config-editor-actions/config-editor-actions.component.d.ts +14 -0
- package/lib/components/ndf-config-editor/components/editor-mode-switch.component.d.ts +17 -0
- package/lib/components/ndf-config-editor/components/index.d.ts +3 -0
- package/lib/components/ndf-config-editor/components/info-dialog/info-dialog.component.d.ts +11 -0
- package/lib/components/ndf-config-editor/config.token.d.ts +9 -0
- package/lib/components/ndf-config-editor/constants/index.d.ts +3 -0
- package/lib/components/ndf-config-editor/constants/mode.d.ts +4 -0
- package/lib/components/ndf-config-editor/constants/query.d.ts +4 -0
- package/lib/components/ndf-config-editor/constants/type.d.ts +4 -0
- package/lib/components/ndf-config-editor/containers/config-preview/config-preview.component.d.ts +15 -0
- package/lib/components/ndf-config-editor/containers/editor-settings/editor-settings.component.d.ts +24 -0
- package/lib/components/ndf-config-editor/containers/index.d.ts +4 -0
- package/lib/components/ndf-config-editor/containers/monaco-editor.component.d.ts +33 -0
- package/lib/components/ndf-config-editor/containers/ndf-config-editor/ndf-config-editor.component.d.ts +48 -0
- package/lib/components/ndf-config-editor/index.d.ts +1 -0
- package/lib/components/ndf-config-editor/models/config.d.ts +24 -0
- package/lib/components/ndf-config-editor/models/dialog-data.d.ts +6 -0
- package/lib/components/ndf-config-editor/models/editor-model.d.ts +15 -0
- package/lib/components/ndf-config-editor/models/index.d.ts +4 -0
- package/lib/components/ndf-config-editor/models/type-helper.d.ts +3 -0
- package/lib/components/ndf-config-editor/ndf-config-editor.module.d.ts +36 -0
- package/lib/components/ndf-config-editor/pipes/index.d.ts +2 -0
- package/lib/components/ndf-config-editor/pipes/is-valid-json.pipe.d.ts +7 -0
- package/lib/components/ndf-config-editor/pipes/validate-object.pipe.d.ts +7 -0
- package/lib/components/ndf-config-editor/public/editor-navigate-button.d.ts +31 -0
- package/lib/components/ndf-config-editor/public/index.d.ts +1 -0
- package/lib/components/ndf-config-editor/public-api.d.ts +6 -0
- package/lib/components/ndf-config-editor/services/data-access.service.d.ts +8 -0
- package/lib/components/ndf-config-editor/services/data-store.service.d.ts +24 -0
- package/lib/components/ndf-config-editor/services/dummy-data.d.ts +992 -0
- package/lib/components/ndf-config-editor/services/index.d.ts +3 -0
- package/lib/components/ndf-config-editor/services/monaco.loader.service.d.ts +14 -0
- package/lib/components/ndf-config-editor/utility/index.d.ts +1 -0
- package/lib/components/ndf-config-editor/utility/json.d.ts +1 -0
- package/lib/components/reports/index.d.ts +2 -0
- package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +6 -3
- package/lib/components/reports/ndf-reports/ndf-reports.module.d.ts +4 -2
- package/lib/components/reports/ndf-reports/services/chart-data-transformers.service.d.ts +10 -0
- package/lib/components/reports/ndf-reports/services/chart-plugins-registry.service.d.ts +6 -0
- package/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.d.ts +3 -1
- package/lib/components/tables/ndf-table/directives/index.d.ts +0 -1
- package/lib/components/tables/ndf-table/models/table-config.d.ts +1 -0
- package/lib/components/tables/ndf-table/ndf-table.module.d.ts +4 -2
- package/lib/core/services/extension/component-register.service.d.ts +3 -0
- package/lib/core/tokens/index.d.ts +1 -0
- package/lib/core/tokens/project.token.d.ts +2 -0
- package/lib/directive/permissions/evaluators.service.d.ts +4 -2
- package/lib/shared/directives/copy-to-clipboard.directive.d.ts +15 -0
- package/lib/shared/directives/element-height.directive.d.ts +28 -0
- package/lib/{components/tables/ndf-table → shared}/directives/fluid-height.directive.d.ts +2 -1
- package/lib/shared/directives/index.d.ts +3 -0
- package/lib/shared/index.d.ts +5 -0
- package/lib/shared/libraryShared.module.d.ts +3 -1
- package/lib/shared/models/index.d.ts +1 -0
- package/lib/shared/models/ndf-request.model.d.ts +7 -0
- package/package.json +4 -2
- package/public-api.d.ts +3 -0
- package/src/docs/ndf-table.doc.md +1433 -0
- package/esm2015/lib/components/tables/ndf-table/directives/fluid-height.directive.js +0 -112
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, NgModule } from '@angular/core';
|
|
2
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class FluidHeightDirective {
|
|
5
|
-
constructor(renderer, elementRef, ngZone) {
|
|
6
|
-
this.renderer = renderer;
|
|
7
|
-
this.elementRef = elementRef;
|
|
8
|
-
this.ngZone = ngZone;
|
|
9
|
-
this.minHeight = 0;
|
|
10
|
-
this.topOffset = 0;
|
|
11
|
-
this.subtractItems = [];
|
|
12
|
-
this.decrease = 0;
|
|
13
|
-
this.delay = 200;
|
|
14
|
-
this.calculate = true;
|
|
15
|
-
this._inlineStyle = false;
|
|
16
|
-
this._domElement = this.elementRef.nativeElement;
|
|
17
|
-
this._resizeListener = () => this.onResize();
|
|
18
|
-
this.ngZone.runOutsideAngular(() => {
|
|
19
|
-
window.addEventListener('resize', this._resizeListener);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
get inlineStyle() {
|
|
23
|
-
return this._inlineStyle;
|
|
24
|
-
}
|
|
25
|
-
set inlineStyle(value) {
|
|
26
|
-
this._inlineStyle = coerceBooleanProperty(value);
|
|
27
|
-
}
|
|
28
|
-
ngAfterViewInit() {
|
|
29
|
-
this.scheduleSetHeight();
|
|
30
|
-
}
|
|
31
|
-
scheduleSetHeight(delay = this.delay) {
|
|
32
|
-
setTimeout(() => this.setHeight(), delay);
|
|
33
|
-
}
|
|
34
|
-
onResize() {
|
|
35
|
-
if (this._animationId) {
|
|
36
|
-
cancelAnimationFrame(this._animationId);
|
|
37
|
-
}
|
|
38
|
-
this._animationId = requestAnimationFrame(() => this.setHeight());
|
|
39
|
-
}
|
|
40
|
-
setHeight() {
|
|
41
|
-
if (!this.calculate) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
const windowHeight = window.innerHeight;
|
|
45
|
-
const topOffset = this.topOffset || this._calcTopOffset();
|
|
46
|
-
let height = windowHeight - topOffset;
|
|
47
|
-
this.subtractItems.forEach((selector) => {
|
|
48
|
-
height -= this._getSelectorHeight(selector);
|
|
49
|
-
});
|
|
50
|
-
height = Math.max(height - this.decrease, this.minHeight);
|
|
51
|
-
if (this.inlineStyle) {
|
|
52
|
-
this.renderer.setStyle(this._domElement, 'height', `${height}px`);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
this.renderer.setAttribute(this._domElement, 'style', `--ndf-table-height : ${height}px`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
_getSelectorHeight(selector) {
|
|
59
|
-
const element = document.querySelector(selector);
|
|
60
|
-
return element ? element.clientHeight : 0;
|
|
61
|
-
}
|
|
62
|
-
_calcTopOffset() {
|
|
63
|
-
try {
|
|
64
|
-
const rect = this._domElement.getBoundingClientRect();
|
|
65
|
-
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
|
|
66
|
-
return rect.top + scrollTop;
|
|
67
|
-
}
|
|
68
|
-
catch (_a) {
|
|
69
|
-
return 0;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
ngOnDestroy() {
|
|
73
|
-
window.removeEventListener('resize', this._resizeListener);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
FluidHeightDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FluidHeightDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
77
|
-
FluidHeightDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: { minHeight: "minHeight", topOffset: ["ndfFluidHeight", "topOffset"], subtractItems: "subtractItems", decrease: "decrease", delay: "delay", calculate: "calculate", inlineStyle: "inlineStyle" }, exportAs: ["ndfFluidHeight"], ngImport: i0 });
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FluidHeightDirective, decorators: [{
|
|
79
|
-
type: Directive,
|
|
80
|
-
args: [{
|
|
81
|
-
selector: '[ndfFluidHeight]',
|
|
82
|
-
exportAs: 'ndfFluidHeight'
|
|
83
|
-
}]
|
|
84
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { minHeight: [{
|
|
85
|
-
type: Input
|
|
86
|
-
}], topOffset: [{
|
|
87
|
-
type: Input,
|
|
88
|
-
args: ['ndfFluidHeight']
|
|
89
|
-
}], subtractItems: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}], decrease: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], delay: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}], calculate: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}], inlineStyle: [{
|
|
98
|
-
type: Input
|
|
99
|
-
}] } });
|
|
100
|
-
export class FluidHeightModule {
|
|
101
|
-
}
|
|
102
|
-
FluidHeightModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FluidHeightModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
103
|
-
FluidHeightModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FluidHeightModule, declarations: [FluidHeightDirective], exports: [FluidHeightDirective] });
|
|
104
|
-
FluidHeightModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FluidHeightModule });
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FluidHeightModule, decorators: [{
|
|
106
|
-
type: NgModule,
|
|
107
|
-
args: [{
|
|
108
|
-
declarations: [FluidHeightDirective],
|
|
109
|
-
exports: [FluidHeightDirective]
|
|
110
|
-
}]
|
|
111
|
-
}] });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx1aWQtaGVpZ2h0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9kaXJlY3RpdmVzL2ZsdWlkLWhlaWdodC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFFLFFBQVEsRUFBZ0MsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU01RSxNQUFNLE9BQU8sb0JBQW9CO0lBdUJoQyxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLE1BQWM7UUFGZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXpCZCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ0UsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUM5QixrQkFBYSxHQUFhLEVBQUUsQ0FBQztRQUM3QixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsVUFBSyxHQUFHLEdBQUcsQ0FBQztRQUVaLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFbEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFtQjVCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUE0QixDQUFDO1FBRWhFLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTdDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFD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QUMxQjs4SUFFUyxTQUFTO3NCQUFqQixLQUFLO2dCQUNtQixTQUFTO3NCQUFqQyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFDZCxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUYsV0FBVztzQkFEZCxLQUFLOztBQXlGUCxNQUFNLE9BQU8saUJBQWlCOzsrR0FBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsaUJBbkdqQixvQkFBb0IsYUFBcEIsb0JBQW9CO2dIQW1HcEIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBSjdCLFFBQVE7bUJBQUM7b0JBQ1QsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE5nTW9kdWxlLCBOZ1pvbmUsIE9uRGVzdHJveSwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG5cdHNlbGVjdG9yOiAnW25kZkZsdWlkSGVpZ2h0XScsXHJcblx0ZXhwb3J0QXM6ICduZGZGbHVpZEhlaWdodCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEZsdWlkSGVpZ2h0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHRASW5wdXQoKSBtaW5IZWlnaHQgPSAwO1xyXG5cdEBJbnB1dCgnbmRmRmx1aWRIZWlnaHQnKSB0b3BPZmZzZXQgPSAwO1xyXG5cdEBJbnB1dCgpIHN1YnRyYWN0SXRlbXM6IHN0cmluZ1tdID0gW107XHJcblx0QElucHV0KCkgZGVjcmVhc2UgPSAwO1xyXG5cdEBJbnB1dCgpIGRlbGF5ID0gMjAwO1xyXG5cclxuXHRASW5wdXQoKSBjYWxjdWxhdGUgPSB0cnVlO1xyXG5cclxuXHRwcml2YXRlIF9pbmxpbmVTdHlsZSA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpXHJcblx0Z2V0IGlubGluZVN0eWxlKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2lubGluZVN0eWxlO1xyXG5cdH1cclxuXHJcblx0c2V0IGlubGluZVN0eWxlKHZhbHVlOiBib29sZWFuKSB7XHJcblx0XHR0aGlzLl9pbmxpbmVTdHlsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9kb21FbGVtZW50OiBIVE1MRWxlbWVudDtcclxuXHRwcml2YXRlIF9hbmltYXRpb25JZD86IG51bWJlcjtcclxuXHRwcml2YXRlIF9yZXNpemVMaXN0ZW5lcjogKCkgPT4gdm9pZDtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcblx0XHRwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcblx0XHRwcml2YXRlIG5nWm9uZTogTmdab25lXHJcblx0KSB7XHJcblx0XHR0aGlzLl9kb21FbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG5cdFx0dGhpcy5fcmVzaXplTGlzdGVuZXIgPSAoKSA9PiB0aGlzLm9uUmVzaXplKCk7XHJcblxyXG5cdFx0dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG5cdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5fcmVzaXplTGlzdGVuZXIpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLnNjaGVkdWxlU2V0SGVpZ2h0KCk7XHJcblx0fVxyXG5cclxuXHRzY2hlZHVsZVNldEhlaWdodChkZWxheTogbnVtYmVyID0gdGhpcy5kZWxheSk6IHZvaWQge1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB0aGlzLnNldEhlaWdodCgpLCBkZWxheSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIG9uUmVzaXplKCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMuX2FuaW1hdGlvbklkKSB7XHJcblx0XHRcdGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2FuaW1hdGlvbklkKTtcclxuXHRcdH1cclxuXHRcdHRoaXMuX2FuaW1hdGlvbklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMuc2V0SGVpZ2h0KCkpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzZXRIZWlnaHQoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuY2FsY3VsYXRlKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuXHRcdGNvbnN0IHRvcE9mZnNldCA9IHRoaXMudG9wT2Zmc2V0IHx8IHRoaXMuX2NhbGNUb3BPZmZzZXQoKTtcclxuXHRcdGxldCBoZWlnaHQgPSB3aW5kb3dIZWlnaHQgLSB0b3BPZmZzZXQ7XHJcblxyXG5cdFx0dGhpcy5zdWJ0cmFjdEl0ZW1zLmZvckVhY2goKHNlbGVjdG9yKSA9PiB7XHJcblx0XHRcdGhlaWdodCAtPSB0aGlzLl9nZXRTZWxlY3RvckhlaWdodChzZWxlY3Rvcik7XHJcblx0XHR9KTtcclxuXHJcblx0XHRoZWlnaHQgPSBNYXRoLm1heChoZWlnaHQgLSB0aGlzLmRlY3JlYXNlLCB0aGlzLm1pbkhlaWdodCk7XHJcblxyXG5cdFx0aWYgKHRoaXMuaW5saW5lU3R5bGUpIHtcclxuXHRcdFx0dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLl9kb21FbGVtZW50LCAnaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLl9kb21FbGVtZW50LCAnc3R5bGUnLCBgLS1uZGYtdGFibGUtaGVpZ2h0IDogJHtoZWlnaHR9cHhgKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2dldFNlbGVjdG9ySGVpZ2h0KHNlbGVjdG9yOiBzdHJpbmcpOiBudW1iZXIge1xyXG5cdFx0Y29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcclxuXHRcdHJldHVybiBlbGVtZW50ID8gZWxlbWVudC5jbGllbnRIZWlnaHQgOiAwO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfY2FsY1RvcE9mZnNldCgpOiBudW1iZXIge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgcmVjdCA9IHRoaXMuX2RvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblx0XHRcdGNvbnN0IHNjcm9sbFRvcCA9IHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wO1xyXG5cdFx0XHRyZXR1cm4gcmVjdC50b3AgKyBzY3JvbGxUb3A7XHJcblx0XHR9IGNhdGNoIHtcclxuXHRcdFx0cmV0dXJuIDA7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaW5saW5lU3R5bGU6IEJvb2xlYW5JbnB1dDtcclxuXHJcblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcblx0XHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5fcmVzaXplTGlzdGVuZXIpO1xyXG5cdH1cclxufVxyXG5cclxuQE5nTW9kdWxlKHtcclxuXHRkZWNsYXJhdGlvbnM6IFtGbHVpZEhlaWdodERpcmVjdGl2ZV0sXHJcblx0ZXhwb3J0czogW0ZsdWlkSGVpZ2h0RGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmx1aWRIZWlnaHRNb2R1bGUge31cclxuIl19
|