ng-zorro-antd-extension 17.4.0 → 18.1.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/.npmignore +2 -0
- package/README.md +1 -0
- package/acl/package.json +3 -0
- package/blank-field/package.json +3 -0
- package/checkbox/package.json +3 -0
- package/configurable-query/controls/date-picker.control.d.ts +1 -1
- package/configurable-query/controls/input.control.d.ts +1 -1
- package/configurable-query/controls/range-picker.control.d.ts +1 -1
- package/configurable-query/controls/select.control.d.ts +1 -1
- package/configurable-query/controls/template.control.d.ts +1 -1
- package/configurable-query/package.json +3 -0
- package/core/config/package.json +3 -0
- package/editable/package.json +3 -0
- package/esm2022/acl/nzx-acl.directive.mjs +4 -4
- package/esm2022/acl/nzx-acl.module.mjs +4 -4
- package/esm2022/acl/nzx-acl.service.mjs +4 -4
- package/esm2022/blank-field/blank-field.component.mjs +3 -3
- package/esm2022/blank-field/blank-field.module.mjs +4 -4
- package/esm2022/checkbox/checkbox-group.component.mjs +4 -4
- package/esm2022/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/configurable-query/configurable-query-item/configurable-query-item.component.mjs +4 -4
- package/esm2022/configurable-query/configurable-query.component.mjs +4 -4
- package/esm2022/configurable-query/configurable-query.module.mjs +10 -10
- package/esm2022/configurable-query/control.directive.mjs +3 -3
- package/esm2022/configurable-query/controls/abstract.control.mjs +3 -3
- package/esm2022/configurable-query/controls/date-picker.control.mjs +6 -5
- package/esm2022/configurable-query/controls/input.control.mjs +5 -4
- package/esm2022/configurable-query/controls/range-picker.control.mjs +6 -5
- package/esm2022/configurable-query/controls/select.control.mjs +5 -4
- package/esm2022/configurable-query/controls/template.control.mjs +5 -4
- package/esm2022/configurable-query/query-config.service.mjs +4 -4
- package/esm2022/core/config/config.service.mjs +4 -4
- package/esm2022/editable/editable.component.mjs +4 -4
- package/esm2022/editable/editable.module.mjs +4 -4
- package/esm2022/jigsaw/jigsaw.component.mjs +4 -4
- package/esm2022/jigsaw/jigsaw.module.mjs +4 -4
- package/esm2022/pipes/map.pipe.mjs +4 -4
- package/esm2022/pipes/pipes.module.mjs +4 -4
- package/esm2022/pipes/safe-html.pipe.mjs +3 -3
- package/esm2022/pipes/safe-null.pipe.mjs +4 -4
- package/esm2022/pipes/safe-resource-url.pipe.mjs +3 -3
- package/esm2022/pipes/safe-script.pipe.mjs +3 -3
- package/esm2022/pipes/safe-style.pipe.mjs +3 -3
- package/esm2022/pipes/safe-url.pipe.mjs +4 -4
- package/esm2022/print/nzx-print-content.directive.mjs +3 -3
- package/esm2022/print/nzx-print-v.component.mjs +4 -4
- package/esm2022/print/nzx-print.component.mjs +4 -4
- package/esm2022/print/nzx-print.directive.mjs +4 -4
- package/esm2022/print/nzx-print.module.mjs +4 -4
- package/esm2022/simple-table/directive/expand.directive.mjs +3 -3
- package/esm2022/simple-table/directive/td.directive.mjs +3 -3
- package/esm2022/simple-table/directive/th.directive.mjs +3 -3
- package/esm2022/simple-table/simple-table.component.mjs +5 -5
- package/esm2022/simple-table/simple-table.module.mjs +4 -4
- package/esm2022/table-adaptor/page-table-basic.mjs +3 -3
- package/esm2022/table-adaptor/table-adaptor.directive.mjs +4 -4
- package/esm2022/table-adaptor/table-adaptor.module.mjs +4 -4
- package/esm2022/table-form/directive/table-expand.directive.mjs +3 -3
- package/esm2022/table-form/directive/table-td.directive.mjs +3 -3
- package/esm2022/table-form/directive/table-th.directive.mjs +3 -3
- package/esm2022/table-form/table-form.component.mjs +5 -5
- package/esm2022/table-form/table-form.module.mjs +4 -4
- package/esm2022/table-select/abstract-table-select.mjs +4 -4
- package/esm2022/table-select/key.directive.mjs +3 -3
- package/esm2022/table-select/nzx-table-select.module.mjs +4 -4
- package/esm2022/table-select/page-table-select/page-table-select.component.mjs +5 -5
- package/esm2022/table-select/table-select/table-select.component.mjs +5 -5
- package/esm2022/timer-button/timer-button.directive.mjs +4 -4
- package/esm2022/timer-button/timer-button.module.mjs +4 -4
- package/esm2022/trim/trim.directive.mjs +4 -4
- package/esm2022/trim/trim.module.mjs +4 -4
- package/esm2022/util/lib/cloneDeep.mjs +1 -1
- package/esm2022/util/lib/fileUtil.mjs +2 -2
- package/esm2022/util/lib/getElementByTag.mjs +1 -1
- package/esm2022/util/lib/isArray.mjs +1 -1
- package/esm2022/util/lib/isEmpty.mjs +1 -1
- package/esm2022/util/lib/isNumber.mjs +1 -1
- package/esm2022/util/lib/isObject.mjs +1 -1
- package/esm2022/util/lib/isString.mjs +1 -1
- package/esm2022/util/lib/toNumber.mjs +1 -1
- package/esm2022/util/lib/toString.mjs +1 -1
- package/esm2022/util/lib/trimObject.mjs +1 -1
- package/esm2022/util/lib/updateControlStatus.mjs +1 -1
- package/esm2022/wang-editor/wang-editor.component.mjs +4 -4
- package/esm2022/wang-editor/wang-editor.module.mjs +4 -4
- package/esm2022/wang-editor/wang-toolbar.component.mjs +4 -4
- package/fesm2022/ng-zorro-antd-extension-acl.mjs +10 -10
- package/fesm2022/ng-zorro-antd-extension-acl.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-blank-field.mjs +7 -7
- package/fesm2022/ng-zorro-antd-extension-blank-field.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-checkbox.mjs +7 -7
- package/fesm2022/ng-zorro-antd-extension-checkbox.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs +41 -36
- package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-core-config.mjs +3 -3
- package/fesm2022/ng-zorro-antd-extension-core-config.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-editable.mjs +7 -7
- package/fesm2022/ng-zorro-antd-extension-editable.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-jigsaw.mjs +7 -7
- package/fesm2022/ng-zorro-antd-extension-jigsaw.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-pipes.mjs +25 -25
- package/fesm2022/ng-zorro-antd-extension-pipes.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-print.mjs +16 -16
- package/fesm2022/ng-zorro-antd-extension-print.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-simple-table.mjs +17 -17
- package/fesm2022/ng-zorro-antd-extension-simple-table.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-table-adaptor.mjs +10 -10
- package/fesm2022/ng-zorro-antd-extension-table-adaptor.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-table-form.mjs +17 -17
- package/fesm2022/ng-zorro-antd-extension-table-form.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-table-select.mjs +18 -18
- package/fesm2022/ng-zorro-antd-extension-table-select.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-timer-button.mjs +7 -7
- package/fesm2022/ng-zorro-antd-extension-timer-button.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-trim.mjs +7 -7
- package/fesm2022/ng-zorro-antd-extension-trim.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-util.mjs +1 -1
- package/fesm2022/ng-zorro-antd-extension-util.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-wang-editor.mjs +10 -10
- package/fesm2022/ng-zorro-antd-extension-wang-editor.mjs.map +1 -1
- package/i18n/package.json +3 -0
- package/jigsaw/package.json +3 -0
- package/package.json +10 -10
- package/pipes/package.json +3 -0
- package/print/package.json +3 -0
- package/simple-table/package.json +3 -0
- package/table-adaptor/package.json +3 -0
- package/table-form/package.json +3 -0
- package/table-select/abstract-table-select.d.ts +1 -1
- package/table-select/package.json +3 -0
- package/timer-button/package.json +3 -0
- package/trim/package.json +3 -0
- package/types/package.json +3 -0
- package/util/package.json +3 -0
- package/wang-editor/package.json +3 -0
|
@@ -216,10 +216,10 @@ export class NzxJigsawComponent {
|
|
|
216
216
|
ctx.globalCompositeOperation = 'destination-over';
|
|
217
217
|
operation === 'fill' ? ctx.fill() : ctx.clip();
|
|
218
218
|
}
|
|
219
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
220
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
219
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxJigsawComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
220
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NzxJigsawComponent, selector: "nzx-jigsaw", inputs: { width: "width", height: "height", nzxLoadingText: "nzxLoadingText", nzxTipText: "nzxTipText", nzxBgImgUrl: "nzxBgImgUrl" }, outputs: { nzxOnRefresh: "nzxOnRefresh", nzxOnSuccess: "nzxOnSuccess", nzxOnFail: "nzxOnFail" }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvasCtx"], descendants: true }, { propertyName: "blockRef", first: true, predicate: ["blockCtx"], descendants: true }, { propertyName: "sliderContainerRef", first: true, predicate: ["sliderContainer"], descendants: true }, { propertyName: "sliderRef", first: true, predicate: ["slider"], descendants: true }, { propertyName: "sliderMaskRef", first: true, predicate: ["sliderMask"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"nzx-jigsaw-container\"\r\n [ngStyle]=\"{\r\n width: width + 'px'\r\n }\"\r\n (selectstart)=\"selectstart()\"\r\n>\r\n <div\r\n class=\"nzx-jigsaw-loading-container\"\r\n [ngStyle]=\"{\r\n display: isLoading ? '' : 'none',\r\n width: width + 'px',\r\n height: height + 'px'\r\n }\"\r\n >\r\n <span class=\"nzx-jigsaw-loading-icon\" nz-icon [nzType]=\"'loading'\"></span>\r\n <span>{{ nzxLoadingText }}</span>\r\n </div>\r\n\r\n <canvas #canvasCtx [width]=\"width\" [height]=\"height\"></canvas>\r\n\r\n <span\r\n class=\"nzx-jigsaw-refresh-icon\"\r\n nz-icon\r\n nzType=\"redo\"\r\n nzTheme=\"outline\"\r\n [nzRotate]=\"-80\"\r\n (click)=\"refresh()\"\r\n ></span>\r\n\r\n <canvas\r\n #blockCtx\r\n class=\"nzx-jigsaw-block\"\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n (touchstart)=\"handleDragStart($event)\"\r\n (mousedown)=\"handleDragStart($event)\"\r\n ></canvas>\r\n\r\n <div\r\n #sliderContainer\r\n class=\"nzx-jigsaw-slider-container\"\r\n [ngStyle]=\"{\r\n width: width + 'px',\r\n 'pointer-events': isLoading ? 'none' : ''\r\n }\"\r\n >\r\n <div #sliderMask class=\"nzx-jigsaw-slider-mask\">\r\n <div\r\n #slider\r\n class=\"nzx-jigsaw-slider\"\r\n (touchstart)=\"handleDragStart($event)\"\r\n (mousedown)=\"handleDragStart($event)\"\r\n >\r\n <span nz-icon nzType=\"arrow-right\" nzTheme=\"outline\"></span>\r\n </div>\r\n </div>\r\n <span class=\"nzx-jigsaw-slider-text\">{{ nzxTipText }}</span>\r\n </div>\r\n</div>\r\n", styles: [".nzx-jigsaw-container{position:relative}.nzx-jigsaw-block{position:absolute;left:0;top:0;cursor:pointer;cursor:grab}.nzx-jigsaw-block:active{cursor:grabbing}.nzx-jigsaw-slider-container{position:relative;text-align:center;line-height:40px;height:40px;background:#f7f9fa;color:#45494c;border:1px solid #e4e7eb}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider{top:-1px;border:1px solid #1991fa}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider-mask{border-width:1px}.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider{top:-1px;border:1px solid #52ccba;background-color:#52ccba!important}.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider-mask{border:1px solid #52ccba;background-color:#d2f4ef}.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider{top:-1px;border:1px solid #f57a7a;background-color:#f57a7a!important}.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider-mask{border:1px solid #f57a7a;background-color:#fce1e1}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider-text,.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider-text,.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider-text{display:none}.nzx-jigsaw-slider-mask{position:absolute;left:0;top:0;height:40px;border:0 solid #1991fa;background:#d1e9fe}.nzx-jigsaw-slider{position:absolute;top:0;left:0;width:40px;height:40px;background:#fff;box-shadow:0 0 3px #0000004d;transition:background .2s linear;cursor:pointer;cursor:grab}.nzx-jigsaw-slider:active{cursor:grabbing}.nzx-jigsaw-slider:hover{background:#1991fa}.nzx-jigsaw-refresh-icon{position:absolute;right:5px;top:5px;font-size:24px;cursor:pointer;color:#fff}.nzx-jigsaw-loading-container{position:absolute;left:0;top:0;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:14px;color:#45494c;z-index:2;background:#edf0f2}.nzx-jigsaw-loading-icon{font-size:32px;margin-bottom:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
221
221
|
}
|
|
222
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
222
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxJigsawComponent, decorators: [{
|
|
223
223
|
type: Component,
|
|
224
224
|
args: [{ selector: 'nzx-jigsaw', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"nzx-jigsaw-container\"\r\n [ngStyle]=\"{\r\n width: width + 'px'\r\n }\"\r\n (selectstart)=\"selectstart()\"\r\n>\r\n <div\r\n class=\"nzx-jigsaw-loading-container\"\r\n [ngStyle]=\"{\r\n display: isLoading ? '' : 'none',\r\n width: width + 'px',\r\n height: height + 'px'\r\n }\"\r\n >\r\n <span class=\"nzx-jigsaw-loading-icon\" nz-icon [nzType]=\"'loading'\"></span>\r\n <span>{{ nzxLoadingText }}</span>\r\n </div>\r\n\r\n <canvas #canvasCtx [width]=\"width\" [height]=\"height\"></canvas>\r\n\r\n <span\r\n class=\"nzx-jigsaw-refresh-icon\"\r\n nz-icon\r\n nzType=\"redo\"\r\n nzTheme=\"outline\"\r\n [nzRotate]=\"-80\"\r\n (click)=\"refresh()\"\r\n ></span>\r\n\r\n <canvas\r\n #blockCtx\r\n class=\"nzx-jigsaw-block\"\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n (touchstart)=\"handleDragStart($event)\"\r\n (mousedown)=\"handleDragStart($event)\"\r\n ></canvas>\r\n\r\n <div\r\n #sliderContainer\r\n class=\"nzx-jigsaw-slider-container\"\r\n [ngStyle]=\"{\r\n width: width + 'px',\r\n 'pointer-events': isLoading ? 'none' : ''\r\n }\"\r\n >\r\n <div #sliderMask class=\"nzx-jigsaw-slider-mask\">\r\n <div\r\n #slider\r\n class=\"nzx-jigsaw-slider\"\r\n (touchstart)=\"handleDragStart($event)\"\r\n (mousedown)=\"handleDragStart($event)\"\r\n >\r\n <span nz-icon nzType=\"arrow-right\" nzTheme=\"outline\"></span>\r\n </div>\r\n </div>\r\n <span class=\"nzx-jigsaw-slider-text\">{{ nzxTipText }}</span>\r\n </div>\r\n</div>\r\n", styles: [".nzx-jigsaw-container{position:relative}.nzx-jigsaw-block{position:absolute;left:0;top:0;cursor:pointer;cursor:grab}.nzx-jigsaw-block:active{cursor:grabbing}.nzx-jigsaw-slider-container{position:relative;text-align:center;line-height:40px;height:40px;background:#f7f9fa;color:#45494c;border:1px solid #e4e7eb}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider{top:-1px;border:1px solid #1991fa}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider-mask{border-width:1px}.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider{top:-1px;border:1px solid #52ccba;background-color:#52ccba!important}.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider-mask{border:1px solid #52ccba;background-color:#d2f4ef}.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider{top:-1px;border:1px solid #f57a7a;background-color:#f57a7a!important}.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider-mask{border:1px solid #f57a7a;background-color:#fce1e1}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider-text,.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider-text,.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider-text{display:none}.nzx-jigsaw-slider-mask{position:absolute;left:0;top:0;height:40px;border:0 solid #1991fa;background:#d1e9fe}.nzx-jigsaw-slider{position:absolute;top:0;left:0;width:40px;height:40px;background:#fff;box-shadow:0 0 3px #0000004d;transition:background .2s linear;cursor:pointer;cursor:grab}.nzx-jigsaw-slider:active{cursor:grabbing}.nzx-jigsaw-slider:hover{background:#1991fa}.nzx-jigsaw-refresh-icon{position:absolute;right:5px;top:5px;font-size:24px;cursor:pointer;color:#fff}.nzx-jigsaw-loading-container{position:absolute;left:0;top:0;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:14px;color:#45494c;z-index:2;background:#edf0f2}.nzx-jigsaw-loading-icon{font-size:32px;margin-bottom:10px}\n"] }]
|
|
225
225
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { width: [{
|
|
@@ -254,4 +254,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
254
254
|
type: ViewChild,
|
|
255
255
|
args: ['sliderMask']
|
|
256
256
|
}] } });
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamlnc2F3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvamlnc2F3L2ppZ3Nhdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb21wb25lbnRzL2ppZ3Nhdy9qaWdzYXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7O0FBRXZCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQU87QUFDckIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTztBQUNwQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQ25CLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVM7QUFRbEMsTUFBTSxPQUFPLGtCQUFrQjtJQXFDN0IsWUFBb0IsRUFBcUI7UUFBckIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFwQ2hDLFVBQUssR0FBRyxHQUFHLENBQUM7UUFDWixXQUFNLEdBQUcsR0FBRyxDQUFDO1FBQ2IsbUJBQWMsR0FBRyxRQUFRLENBQUM7UUFDMUIsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUN4QixnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFFbkMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3hDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN4QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUvQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBa0JWLE1BQUMsR0FBVyxDQUFDLENBQUM7UUFDZCxNQUFDLEdBQVcsQ0FBQyxDQUFDO1FBRWQsWUFBTyxHQUFXLENBQUMsQ0FB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QVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmNvbnN0IGwgPSA0MjsgLy8g5ruR5Z2X6L656ZW/XHJcbmNvbnN0IHIgPSA5OyAvLyDmu5HlnZfljYrlvoRcclxuY29uc3QgUEkgPSBNYXRoLlBJO1xyXG5jb25zdCBMID0gbCArIHIgKiAyICsgMzsgLy8g5ruR5Z2X5a6e6ZmF6L656ZW/XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ256eC1qaWdzYXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9qaWdzYXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ppZ3Nhdy5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnp4Smlnc2F3Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgd2lkdGggPSAzMTA7XHJcbiAgQElucHV0KCkgaGVpZ2h0ID0gMTU1O1xyXG4gIEBJbnB1dCgpIG56eExvYWRpbmdUZXh0ID0gJ+WKoOi9veS4rS4uLic7XHJcbiAgQElucHV0KCkgbnp4VGlwVGV4dCA9ICflkJHlj7Pmu5HliqjloavlhYXmi7zlm74nO1xyXG4gIEBJbnB1dCgpIG56eEJnSW1nVXJsOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcnO1xyXG5cclxuICBAT3V0cHV0KCkgbnp4T25SZWZyZXNoID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBuenhPblN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIG56eE9uRmFpbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NhbnZhc0N0eCcpXHJcbiAgcHJpdmF0ZSBjYW52YXNSZWYhOiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYmxvY2tDdHgnKVxyXG4gIHByaXZhdGUgYmxvY2tSZWYhOiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc2xpZGVyQ29udGFpbmVyJylcclxuICBwcml2YXRlIHNsaWRlckNvbnRhaW5lclJlZiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG5cclxuICBAVmlld0NoaWxkKCdzbGlkZXInKVxyXG4gIHByaXZhdGUgc2xpZGVyUmVmITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3NsaWRlck1hc2snKVxyXG4gIHByaXZhdGUgc2xpZGVyTWFza1JlZiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG5cclxuICBwcml2YXRlIGltZzogYW55O1xyXG4gIHByaXZhdGUgeDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIHk6IG51bWJlciA9IDA7XHJcblxyXG4gIHByaXZhdGUgb3JpZ2luWDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIG9yaWdpblk6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSB0cmFpbDogYW55W10gPSBbXTtcclxuICBwcml2YXRlIGlzTW91c2VEb3duID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRJbWcoKTtcclxuXHJcbiAgICBjb25zdCBoYW5kbGVEcmFnTW92ZSA9IChlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmlzTW91c2VEb3duKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgY29uc3QgZXZlbnRYID0gZS5jbGllbnRYIHx8IGUudG91Y2hlc1swXS5jbGllbnRYO1xyXG4gICAgICBjb25zdCBldmVudFkgPSBlLmNsaWVudFkgfHwgZS50b3VjaGVzWzBdLmNsaWVudFk7XHJcbiAgICAgIGNvbnN0IG1vdmVYID0gZXZlbnRYIC0gdGhpcy5vcmlnaW5YO1xyXG4gICAgICBjb25zdCBtb3ZlWSA9IGV2ZW50WSAtIHRoaXMub3JpZ2luWTtcclxuICAgICAgaWYgKG1vdmVYIDwgMCB8fCBtb3ZlWCArIDM4ID49IHRoaXMud2lkdGgpIHJldHVybiBmYWxzZTtcclxuICAgICAgdGhpcy5zbGlkZXJSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gbW92ZVggKyAncHgnO1xyXG4gICAgICBjb25zdCBibG9ja0xlZnQgPSAoKHRoaXMud2lkdGggLSA0MCAtIDIwKSAvICh0aGlzLndpZHRoIC0gNDApKSAqIG1vdmVYO1xyXG4gICAgICB0aGlzLmJsb2NrUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IGJsb2NrTGVmdCArICdweCc7XHJcbiAgICAgIHRoaXMuc2xpZGVyQ29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcclxuICAgICAgICAnbnp4LWppZ3Nhdy1zbGlkZXItY29udGFpbmVyLWFjdGl2ZSdcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zbGlkZXJNYXNrUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBtb3ZlWCArICdweCc7XHJcbiAgICAgIHRoaXMudHJhaWwucHVzaChtb3ZlWSk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgaGFuZGxlRHJhZ0VuZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmlzTW91c2VEb3duKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaXNNb3VzZURvd24gPSBmYWxzZTtcclxuICAgICAgY29uc3QgZXZlbnRYID0gZS5jbGllbnRYIHx8IGUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WDtcclxuICAgICAgaWYgKGV2ZW50WCA9PT0gdGhpcy5vcmlnaW5YKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2xpZGVyQ29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcclxuICAgICAgICAnbnp4LWppZ3Nhdy1zbGlkZXItY29udGFpbmVyLWFjdGl2ZSdcclxuICAgICAgKTtcclxuICAgICAgdGhpcy50cmFpbCA9IHRoaXMudHJhaWw7XHJcbiAgICAgIGNvbnN0IHsgc3BsaWNlZCwgdmVyaWZpZWQgfSA9IHRoaXMudmVyaWZ5KCk7XHJcblxyXG4gICAgICBpZiAoc3BsaWNlZCkge1xyXG4gICAgICAgIGlmICh2ZXJpZmllZCkge1xyXG4gICAgICAgICAgdGhpcy5zbGlkZXJDb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFxyXG4gICAgICAgICAgICAnbnp4LWppZ3Nhdy1zbGlkZXItY29udGFpbmVyLXN1Y2Nlc3MnXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5uenhPblN1Y2Nlc3MuZW1pdCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNsaWRlckNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXHJcbiAgICAgICAgICAgICduengtamlnc2F3LXNsaWRlci1jb250YWluZXItZmFpbCdcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLm56eFRpcFRleHQgPSAn6K+35YaN6K+V5LiA5qyhJztcclxuICAgICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zbGlkZXJDb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFxyXG4gICAgICAgICAgJ256eC1qaWdzYXctc2xpZGVyLWNvbnRhaW5lci1mYWlsJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5uenhPbkZhaWwuZW1pdCgpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZXNldCgpLCAxMDAwKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG5cclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGhhbmRsZURyYWdNb3ZlKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGhhbmRsZURyYWdNb3ZlKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVEcmFnRW5kKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgaGFuZGxlRHJhZ0VuZCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RzdGFydCgpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2goKSB7XHJcbiAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICB0aGlzLm56eE9uUmVmcmVzaC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVEcmFnU3RhcnQoZTogYW55KSB7XHJcbiAgICB0aGlzLm9yaWdpblggPSBlLmNsaWVudFggfHwgZS50b3VjaGVzWzBdLmNsaWVudFg7XHJcbiAgICB0aGlzLm9yaWdpblkgPSBlLmNsaWVudFkgfHwgZS50b3VjaGVzWzBdLmNsaWVudFk7XHJcbiAgICB0aGlzLmlzTW91c2VEb3duID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmVyaWZ5KCkge1xyXG4gICAgY29uc3QgYXJyID0gdGhpcy50cmFpbDsgLy8g5ouW5Yqo5pe2eei9tOeahOenu+WKqOi3neemu1xyXG4gICAgY29uc3QgYXZlcmFnZSA9IGFyci5yZWR1Y2UoKHg6IG51bWJlciwgeTogbnVtYmVyKSA9PiB4ICsgeSkgLyBhcnIubGVuZ3RoO1xyXG4gICAgY29uc3QgZGV2aWF0aW9ucyA9IGFyci5tYXAoKHgpID0+IHggLSBhdmVyYWdlKTtcclxuICAgIGNvbnN0IHN0ZGRldiA9IE1hdGguc3FydChcclxuICAgICAgZGV2aWF0aW9uc1xyXG4gICAgICAgIC5tYXAoKHg6IG51bWJlcikgPT4geCAqIHgpXHJcbiAgICAgICAgLnJlZHVjZSgoeDogbnVtYmVyLCB5OiBudW1iZXIpID0+IHggKyB5KSAvIGFyci5sZW5ndGhcclxuICAgICk7XHJcbiAgICBjb25zdCBsZWZ0ID0gcGFyc2VJbnQodGhpcy5ibG9ja1JlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc3BsaWNlZDogTWF0aC5hYnMobGVmdCAtIHRoaXMueCkgPCAxMCxcclxuICAgICAgdmVyaWZpZWQ6IHN0ZGRldiAhPT0gMCwgLy8g566A5Y2V6aqM6K+B5ouW5Yqo6L2o6L+577yM5Li66Zu25pe26KGo56S6Wei9tOS4iuS4i+ayoeacieazouWKqO+8jOWPr+iDvemdnuS6uuS4uuaTjeS9nFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzZXQoKSB7XHJcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXM7XHJcbiAgICAvLyDph43nva7moLflvI9cclxuICAgIHRoaXMuc2xpZGVyQ29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lID1cclxuICAgICAgJ256eC1qaWdzYXctc2xpZGVyLWNvbnRhaW5lcic7XHJcbiAgICB0aGlzLnNsaWRlclJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAwICsgJ3B4JztcclxuICAgIHRoaXMuYmxvY2tSZWYubmF0aXZlRWxlbWVudC53aWR0aCA9IHdpZHRoO1xyXG4gICAgdGhpcy5ibG9ja1JlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAwICsgJ3B4JztcclxuICAgIHRoaXMuc2xpZGVyTWFza1JlZi5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gMCArICdweCc7XHJcblxyXG4gICAgLy8g5riF56m655S75biDXHJcbiAgICB0aGlzLmNhbnZhc1JlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgIC5nZXRDb250ZXh0KCcyZCcpIVxyXG4gICAgICAuY2xlYXJSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgdGhpcy5ibG9ja1JlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgIC5nZXRDb250ZXh0KCcyZCcpIVxyXG4gICAgICAuY2xlYXJSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xyXG5cclxuICAgIC8vIOmHjeaWsOWKoOi9veWbvueJh1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMuc2V0SW1hZ2VTcmModGhpcy5nZXRSYW5kb21JbWdTcmMoKSwgdGhpcy5pbWcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0SW1nKCkge1xyXG4gICAgY29uc3QgaW1nOiBIVE1MSW1hZ2VFbGVtZW50ID0gbmV3IEltYWdlKCk7XHJcbiAgICBpbWcuc3R5bGUub2JqZWN0Rml0ID0gJ2NvdmVyJztcclxuICAgIGltZy5jcm9zc09yaWdpbiA9ICdBbm9ueW1vdXMnO1xyXG4gICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5kcmF3KGltZyk7XHJcbiAgICB9O1xyXG4gICAgaW1nLm9uZXJyb3IgPSAoKSA9PiB7XHJcbiAgICAgIC8vIOWbvueJh+WKoOi9veWksei0peeahOaXtuWAmemHjeaWsOWKoOi9veWFtuS7luWbvueJh1xyXG4gICAgICB0aGlzLnNldEltYWdlU3JjKHRoaXMuZ2V0UmFuZG9tSW1nU3JjKCksIGltZyk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXRJbWFnZVNyYyh0aGlzLmdldFJhbmRvbUltZ1NyYygpLCBpbWcpO1xyXG4gICAgdGhpcy5pbWcgPSBpbWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRyYXcoaW1nOiBIVE1MSW1hZ2VFbGVtZW50KSB7XHJcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXM7XHJcbiAgICAvLyDpmo/mnLrkvY3nva7liJvlu7rmi7zlm77lvaLnirZcclxuICAgIHRoaXMueCA9IHRoaXMuZ2V0UmFuZG9tTnVtYmVyQnlSYW5nZShMICsgMTAsIHdpZHRoIC0gKEwgKyAxMCkpO1xyXG4gICAgdGhpcy55ID0gdGhpcy5nZXRSYW5kb21OdW1iZXJCeVJhbmdlKDEwICsgciAqIDIsIGhlaWdodCAtIChMICsgMTApKTtcclxuICAgIHRoaXMuZHJhd1BhdGgoXHJcbiAgICAgIHRoaXMuY2FudmFzUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKSEsXHJcbiAgICAgIHRoaXMueCxcclxuICAgICAgdGhpcy55LFxyXG4gICAgICAnZmlsbCdcclxuICAgICk7XHJcbiAgICB0aGlzLmRyYXdQYXRoKFxyXG4gICAgICB0aGlzLmJsb2NrUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKSEsXHJcbiAgICAgIHRoaXMueCxcclxuICAgICAgdGhpcy55LFxyXG4gICAgICAnY2xpcCdcclxuICAgICk7XHJcblxyXG4gICAgLy8g55S75YWl5Zu+54mHXHJcbiAgICB0aGlzLmNhbnZhc1JlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgIC5nZXRDb250ZXh0KCcyZCcpIVxyXG4gICAgICAuZHJhd0ltYWdlKGltZywgMCwgMCwgd2lkdGgsIGhlaWdodCk7XHJcbiAgICB0aGlzLmJsb2NrUmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgLmdldENvbnRleHQoJzJkJykhXHJcbiAgICAgIC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAvLyDmj5Dlj5bmu5HlnZflubbmlL7liLDmnIDlt6bovrlcclxuICAgIGNvbnN0IHkgPSB0aGlzLnkgLSByICogMiAtIDE7XHJcbiAgICBjb25zdCBJbWFnZURhdGEgPSB0aGlzLmJsb2NrUmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgLmdldENvbnRleHQoJzJkJykhXHJcbiAgICAgIC5nZXRJbWFnZURhdGEodGhpcy54IC0gMywgeSwgTCwgTCk7XHJcbiAgICB0aGlzLmJsb2NrUmVmLm5hdGl2ZUVsZW1lbnQhLndpZHRoID0gTDtcclxuICAgIHRoaXMuYmxvY2tSZWYubmF0aXZlRWxlbWVudC5nZXRDb250ZXh0KCcyZCcpIS5wdXRJbWFnZURhdGEoSW1hZ2VEYXRhLCAwLCB5KTtcclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEltYWdlU3JjKHNyYzogc3RyaW5nLCBpbWc6IEhUTUxJbWFnZUVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGlzSUUgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdUcmlkZW50JykgPiAtMTtcclxuICAgIGlmIChpc0lFKSB7XHJcbiAgICAgIC8vIElF5rWP6KeI5Zmo5peg5rOV6YCa6L+HaW1nLmNyb3NzT3JpZ2lu6Leo5Z+f77yM5L2/55SoYWpheOiOt+WPluWbvueJh2Jsb2LnhLblkI7ovazkuLpkYXRhVVJM5pi+56S6XHJcbiAgICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgICB4aHIub25sb2FkZW5kID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZVJlYWRlcigpOyAvLyBGaWxlUmVhZGVy5LuF5pSv5oyBSUUxMCtcclxuICAgICAgICBmaWxlLnJlYWRBc0RhdGFVUkwoZS50YXJnZXQucmVzcG9uc2UpO1xyXG4gICAgICAgIGZpbGUub25sb2FkZW5kID0gKGUpID0+IHtcclxuICAgICAgICAgIGltZy5zcmMgPSBlLnRhcmdldD8ucmVzdWx0IGFzIHN0cmluZztcclxuICAgICAgICB9O1xyXG4gICAgICB9O1xyXG4gICAgICB4aHIub3BlbignR0VUJywgc3JjKTtcclxuICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdibG9iJztcclxuICAgICAgeGhyLnNlbmQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGltZy5zcmMgPSBzcmM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJhbmRvbUltZ1NyYygpIHtcclxuICAgIGlmICh0aGlzLm56eEJnSW1nVXJsICYmIHR5cGVvZiB0aGlzLm56eEJnSW1nVXJsID09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm56eEJnSW1nVXJsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5uenhCZ0ltZ1VybCAmJlxyXG4gICAgICBBcnJheS5pc0FycmF5KHRoaXMubnp4QmdJbWdVcmwpICYmXHJcbiAgICAgIHRoaXMubnp4QmdJbWdVcmwubGVuZ3RoXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRoaXMubnp4QmdJbWdVcmxbXHJcbiAgICAgICAgdGhpcy5nZXRSYW5kb21OdW1iZXJCeVJhbmdlKDAsIHRoaXMubnp4QmdJbWdVcmwubGVuZ3RoIC0gMSlcclxuICAgICAgXTtcclxuICAgIH1cclxuICAgIHJldHVybiBgaHR0cHM6Ly9waWNzdW0ucGhvdG9zL2lkLyR7dGhpcy5nZXRSYW5kb21OdW1iZXJCeVJhbmdlKDAsIDEwODQpfS8ke1xyXG4gICAgICB0aGlzLndpZHRoXHJcbiAgICB9LyR7dGhpcy5oZWlnaHR9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UmFuZG9tTnVtYmVyQnlSYW5nZShzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIChlbmQgLSBzdGFydCkgKyBzdGFydCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRyYXdQYXRoKFxyXG4gICAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXHJcbiAgICB4OiBudW1iZXIsXHJcbiAgICB5OiBudW1iZXIsXHJcbiAgICBvcGVyYXRpb246IGFueVxyXG4gICkge1xyXG4gICAgY3R4LmJlZ2luUGF0aCgpO1xyXG4gICAgY3R4Lm1vdmVUbyh4LCB5KTtcclxuICAgIGN0eC5hcmMoeCArIGwgLyAyLCB5IC0gciArIDIsIHIsIDAuNzIgKiBQSSwgMi4yNiAqIFBJKTtcclxuICAgIGN0eC5saW5lVG8oeCArIGwsIHkpO1xyXG4gICAgY3R4LmFyYyh4ICsgbCArIHIgLSAyLCB5ICsgbCAvIDIsIHIsIDEuMjEgKiBQSSwgMi43OCAqIFBJKTtcclxuICAgIGN0eC5saW5lVG8oeCArIGwsIHkgKyBsKTtcclxuICAgIGN0eC5saW5lVG8oeCwgeSArIGwpO1xyXG4gICAgY3R4LmFyYyh4ICsgciAtIDIsIHkgKyBsIC8gMiwgciArIDAuNCwgMi43NiAqIFBJLCAxLjI0ICogUEksIHRydWUpO1xyXG4gICAgY3R4LmxpbmVUbyh4LCB5KTtcclxuICAgIGN0eC5saW5lV2lkdGggPSAyO1xyXG4gICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyknO1xyXG4gICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSc7XHJcbiAgICBjdHguc3Ryb2tlKCk7XHJcbiAgICBjdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ2Rlc3RpbmF0aW9uLW92ZXInO1xyXG4gICAgb3BlcmF0aW9uID09PSAnZmlsbCcgPyBjdHguZmlsbCgpIDogY3R4LmNsaXAoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwibnp4LWppZ3Nhdy1jb250YWluZXJcIlxyXG4gIFtuZ1N0eWxlXT1cIntcclxuICAgIHdpZHRoOiB3aWR0aCArICdweCdcclxuICB9XCJcclxuICAoc2VsZWN0c3RhcnQpPVwic2VsZWN0c3RhcnQoKVwiXHJcbj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cIm56eC1qaWdzYXctbG9hZGluZy1jb250YWluZXJcIlxyXG4gICAgW25nU3R5bGVdPVwie1xyXG4gICAgICBkaXNwbGF5OiBpc0xvYWRpbmcgPyAnJyA6ICdub25lJyxcclxuICAgICAgd2lkdGg6IHdpZHRoICsgJ3B4JyxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQgKyAncHgnXHJcbiAgICB9XCJcclxuICA+XHJcbiAgICA8c3BhbiBjbGFzcz1cIm56eC1qaWdzYXctbG9hZGluZy1pY29uXCIgbnotaWNvbiBbbnpUeXBlXT1cIidsb2FkaW5nJ1wiPjwvc3Bhbj5cclxuICAgIDxzcGFuPnt7IG56eExvYWRpbmdUZXh0IH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8Y2FudmFzICNjYW52YXNDdHggW3dpZHRoXT1cIndpZHRoXCIgW2hlaWdodF09XCJoZWlnaHRcIj48L2NhbnZhcz5cclxuXHJcbiAgPHNwYW5cclxuICAgIGNsYXNzPVwibnp4LWppZ3Nhdy1yZWZyZXNoLWljb25cIlxyXG4gICAgbnotaWNvblxyXG4gICAgbnpUeXBlPVwicmVkb1wiXHJcbiAgICBuelRoZW1lPVwib3V0bGluZVwiXHJcbiAgICBbbnpSb3RhdGVdPVwiLTgwXCJcclxuICAgIChjbGljayk9XCJyZWZyZXNoKClcIlxyXG4gID48L3NwYW4+XHJcblxyXG4gIDxjYW52YXNcclxuICAgICNibG9ja0N0eFxyXG4gICAgY2xhc3M9XCJuengtamlnc2F3LWJsb2NrXCJcclxuICAgIFt3aWR0aF09XCJ3aWR0aFwiXHJcbiAgICBbaGVpZ2h0XT1cImhlaWdodFwiXHJcbiAgICAodG91Y2hzdGFydCk9XCJoYW5kbGVEcmFnU3RhcnQoJGV2ZW50KVwiXHJcbiAgICAobW91c2Vkb3duKT1cImhhbmRsZURyYWdTdGFydCgkZXZlbnQpXCJcclxuICA+PC9jYW52YXM+XHJcblxyXG4gIDxkaXZcclxuICAgICNzbGlkZXJDb250YWluZXJcclxuICAgIGNsYXNzPVwibnp4LWppZ3Nhdy1zbGlkZXItY29udGFpbmVyXCJcclxuICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgd2lkdGg6IHdpZHRoICsgJ3B4JyxcclxuICAgICAgJ3BvaW50ZXItZXZlbnRzJzogaXNMb2FkaW5nID8gJ25vbmUnIDogJydcclxuICAgIH1cIlxyXG4gID5cclxuICAgIDxkaXYgI3NsaWRlck1hc2sgY2xhc3M9XCJuengtamlnc2F3LXNsaWRlci1tYXNrXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAjc2xpZGVyXHJcbiAgICAgICAgY2xhc3M9XCJuengtamlnc2F3LXNsaWRlclwiXHJcbiAgICAgICAgKHRvdWNoc3RhcnQpPVwiaGFuZGxlRHJhZ1N0YXJ0KCRldmVudClcIlxyXG4gICAgICAgIChtb3VzZWRvd24pPVwiaGFuZGxlRHJhZ1N0YXJ0KCRldmVudClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW4gbnotaWNvbiBuelR5cGU9XCJhcnJvdy1yaWdodFwiIG56VGhlbWU9XCJvdXRsaW5lXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHNwYW4gY2xhc3M9XCJuengtamlnc2F3LXNsaWRlci10ZXh0XCI+e3sgbnp4VGlwVGV4dCB9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamlnc2F3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvamlnc2F3L2ppZ3Nhdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb21wb25lbnRzL2ppZ3Nhdy9qaWdzYXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7O0FBRXZCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQU87QUFDckIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTztBQUNwQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQ25CLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVM7QUFRbEMsTUFBTSxPQUFPLGtCQUFrQjtJQXFDN0IsWUFBb0IsRUFBcUI7UUFBckIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFwQ2hDLFVBQUssR0FBRyxHQUFHLENBQUM7UUFDWixXQUFNLEdBQUcsR0FBRyxDQUFDO1FBQ2IsbUJBQWMsR0FBRyxRQUFRLENBQUM7UUFDMUIsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUN4QixnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFFbkMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3hDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN4QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUvQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBa0JWLE1BQUMsR0FBVyxDQUFDLENBQUM7UUFDZCxNQUFDLEdBQVcsQ0FBQyxDQUFDO1FBRWQsWUFBTyxHQUFXLENBQUMsQ0FB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ZixTQUFTO3VCQUFDLFVBQVU7Z0JBSWIsa0JBQWtCO3NCQUR6QixTQUFTO3VCQUFDLGlCQUFpQjtnQkFJcEIsU0FBUztzQkFEaEIsU0FBUzt1QkFBQyxRQUFRO2dCQUlYLGFBQWE7c0JBRHBCLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmNvbnN0IGwgPSA0MjsgLy8g5ruR5Z2X6L656ZW/XHJcbmNvbnN0IHIgPSA5OyAvLyDmu5HlnZfljYrlvoRcclxuY29uc3QgUEkgPSBNYXRoLlBJO1xyXG5jb25zdCBMID0gbCArIHIgKiAyICsgMzsgLy8g5ruR5Z2X5a6e6ZmF6L656ZW/XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ256eC1qaWdzYXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9qaWdzYXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ppZ3Nhdy5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnp4Smlnc2F3Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgd2lkdGggPSAzMTA7XHJcbiAgQElucHV0KCkgaGVpZ2h0ID0gMTU1O1xyXG4gIEBJbnB1dCgpIG56eExvYWRpbmdUZXh0ID0gJ+WKoOi9veS4rS4uLic7XHJcbiAgQElucHV0KCkgbnp4VGlwVGV4dCA9ICflkJHlj7Pmu5HliqjloavlhYXmi7zlm74nO1xyXG4gIEBJbnB1dCgpIG56eEJnSW1nVXJsOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcnO1xyXG5cclxuICBAT3V0cHV0KCkgbnp4T25SZWZyZXNoID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBuenhPblN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIG56eE9uRmFpbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NhbnZhc0N0eCcpXHJcbiAgcHJpdmF0ZSBjYW52YXNSZWYhOiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYmxvY2tDdHgnKVxyXG4gIHByaXZhdGUgYmxvY2tSZWYhOiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc2xpZGVyQ29udGFpbmVyJylcclxuICBwcml2YXRlIHNsaWRlckNvbnRhaW5lclJlZiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG5cclxuICBAVmlld0NoaWxkKCdzbGlkZXInKVxyXG4gIHByaXZhdGUgc2xpZGVyUmVmITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3NsaWRlck1hc2snKVxyXG4gIHByaXZhdGUgc2xpZGVyTWFza1JlZiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG5cclxuICBwcml2YXRlIGltZzogYW55O1xyXG4gIHByaXZhdGUgeDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIHk6IG51bWJlciA9IDA7XHJcblxyXG4gIHByaXZhdGUgb3JpZ2luWDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIG9yaWdpblk6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSB0cmFpbDogYW55W10gPSBbXTtcclxuICBwcml2YXRlIGlzTW91c2VEb3duID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRJbWcoKTtcclxuXHJcbiAgICBjb25zdCBoYW5kbGVEcmFnTW92ZSA9IChlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmlzTW91c2VEb3duKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgY29uc3QgZXZlbnRYID0gZS5jbGllbnRYIHx8IGUudG91Y2hlc1swXS5jbGllbnRYO1xyXG4gICAgICBjb25zdCBldmVudFkgPSBlLmNsaWVudFkgfHwgZS50b3VjaGVzWzBdLmNsaWVudFk7XHJcbiAgICAgIGNvbnN0IG1vdmVYID0gZXZlbnRYIC0gdGhpcy5vcmlnaW5YO1xyXG4gICAgICBjb25zdCBtb3ZlWSA9IGV2ZW50WSAtIHRoaXMub3JpZ2luWTtcclxuICAgICAgaWYgKG1vdmVYIDwgMCB8fCBtb3ZlWCArIDM4ID49IHRoaXMud2lkdGgpIHJldHVybiBmYWxzZTtcclxuICAgICAgdGhpcy5zbGlkZXJSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gbW92ZVggKyAncHgnO1xyXG4gICAgICBjb25zdCBibG9ja0xlZnQgPSAoKHRoaXMud2lkdGggLSA0MCAtIDIwKSAvICh0aGlzLndpZHRoIC0gNDApKSAqIG1vdmVYO1xyXG4gICAgICB0aGlzLmJsb2NrUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IGJsb2NrTGVmdCArICdweCc7XHJcbiAgICAgIHRoaXMuc2xpZGVyQ29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcclxuICAgICAgICAnbnp4LWppZ3Nhdy1zbGlkZXItY29udGFpbmVyLWFjdGl2ZSdcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zbGlkZXJNYXNrUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBtb3ZlWCArICdweCc7XHJcbiAgICAgIHRoaXMudHJhaWwucHVzaChtb3ZlWSk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgaGFuZGxlRHJhZ0VuZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmlzTW91c2VEb3duKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaXNNb3VzZURvd24gPSBmYWxzZTtcclxuICAgICAgY29uc3QgZXZlbnRYID0gZS5jbGllbnRYIHx8IGUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WDtcclxuICAgICAgaWYgKGV2ZW50WCA9PT0gdGhpcy5vcmlnaW5YKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2xpZGVyQ29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcclxuICAgICAgICAnbnp4LWppZ3Nhdy1zbGlkZXItY29udGFpbmVyLWFjdGl2ZSdcclxuICAgICAgKTtcclxuICAgICAgdGhpcy50cmFpbCA9IHRoaXMudHJhaWw7XHJcbiAgICAgIGNvbnN0IHsgc3BsaWNlZCwgdmVyaWZpZWQgfSA9IHRoaXMudmVyaWZ5KCk7XHJcblxyXG4gICAgICBpZiAoc3BsaWNlZCkge1xyXG4gICAgICAgIGlmICh2ZXJpZmllZCkge1xyXG4gICAgICAgICAgdGhpcy5zbGlkZXJDb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFxyXG4gICAgICAgICAgICAnbnp4LWppZ3Nhdy1zbGlkZXItY29udGFpbmVyLXN1Y2Nlc3MnXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5uenhPblN1Y2Nlc3MuZW1pdCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNsaWRlckNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXHJcbiAgICAgICAgICAgICduengtamlnc2F3LXNsaWRlci1jb250YWluZXItZmFpbCdcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLm56eFRpcFRleHQgPSAn6K+35YaN6K+V5LiA5qyhJztcclxuICAgICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zbGlkZXJDb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFxyXG4gICAgICAgICAgJ256eC1qaWdzYXctc2xpZGVyLWNvbnRhaW5lci1mYWlsJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5uenhPbkZhaWwuZW1pdCgpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZXNldCgpLCAxMDAwKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG5cclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGhhbmRsZURyYWdNb3ZlKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGhhbmRsZURyYWdNb3ZlKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVEcmFnRW5kKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgaGFuZGxlRHJhZ0VuZCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RzdGFydCgpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2goKSB7XHJcbiAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICB0aGlzLm56eE9uUmVmcmVzaC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVEcmFnU3RhcnQoZTogYW55KSB7XHJcbiAgICB0aGlzLm9yaWdpblggPSBlLmNsaWVudFggfHwgZS50b3VjaGVzWzBdLmNsaWVudFg7XHJcbiAgICB0aGlzLm9yaWdpblkgPSBlLmNsaWVudFkgfHwgZS50b3VjaGVzWzBdLmNsaWVudFk7XHJcbiAgICB0aGlzLmlzTW91c2VEb3duID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmVyaWZ5KCkge1xyXG4gICAgY29uc3QgYXJyID0gdGhpcy50cmFpbDsgLy8g5ouW5Yqo5pe2eei9tOeahOenu+WKqOi3neemu1xyXG4gICAgY29uc3QgYXZlcmFnZSA9IGFyci5yZWR1Y2UoKHg6IG51bWJlciwgeTogbnVtYmVyKSA9PiB4ICsgeSkgLyBhcnIubGVuZ3RoO1xyXG4gICAgY29uc3QgZGV2aWF0aW9ucyA9IGFyci5tYXAoKHgpID0+IHggLSBhdmVyYWdlKTtcclxuICAgIGNvbnN0IHN0ZGRldiA9IE1hdGguc3FydChcclxuICAgICAgZGV2aWF0aW9uc1xyXG4gICAgICAgIC5tYXAoKHg6IG51bWJlcikgPT4geCAqIHgpXHJcbiAgICAgICAgLnJlZHVjZSgoeDogbnVtYmVyLCB5OiBudW1iZXIpID0+IHggKyB5KSAvIGFyci5sZW5ndGhcclxuICAgICk7XHJcbiAgICBjb25zdCBsZWZ0ID0gcGFyc2VJbnQodGhpcy5ibG9ja1JlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc3BsaWNlZDogTWF0aC5hYnMobGVmdCAtIHRoaXMueCkgPCAxMCxcclxuICAgICAgdmVyaWZpZWQ6IHN0ZGRldiAhPT0gMCwgLy8g566A5Y2V6aqM6K+B5ouW5Yqo6L2o6L+577yM5Li66Zu25pe26KGo56S6Wei9tOS4iuS4i+ayoeacieazouWKqO+8jOWPr+iDvemdnuS6uuS4uuaTjeS9nFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzZXQoKSB7XHJcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXM7XHJcbiAgICAvLyDph43nva7moLflvI9cclxuICAgIHRoaXMuc2xpZGVyQ29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lID1cclxuICAgICAgJ256eC1qaWdzYXctc2xpZGVyLWNvbnRhaW5lcic7XHJcbiAgICB0aGlzLnNsaWRlclJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAwICsgJ3B4JztcclxuICAgIHRoaXMuYmxvY2tSZWYubmF0aXZlRWxlbWVudC53aWR0aCA9IHdpZHRoO1xyXG4gICAgdGhpcy5ibG9ja1JlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAwICsgJ3B4JztcclxuICAgIHRoaXMuc2xpZGVyTWFza1JlZi5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gMCArICdweCc7XHJcblxyXG4gICAgLy8g5riF56m655S75biDXHJcbiAgICB0aGlzLmNhbnZhc1JlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgIC5nZXRDb250ZXh0KCcyZCcpIVxyXG4gICAgICAuY2xlYXJSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgdGhpcy5ibG9ja1JlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgIC5nZXRDb250ZXh0KCcyZCcpIVxyXG4gICAgICAuY2xlYXJSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xyXG5cclxuICAgIC8vIOmHjeaWsOWKoOi9veWbvueJh1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMuc2V0SW1hZ2VTcmModGhpcy5nZXRSYW5kb21JbWdTcmMoKSwgdGhpcy5pbWcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0SW1nKCkge1xyXG4gICAgY29uc3QgaW1nOiBIVE1MSW1hZ2VFbGVtZW50ID0gbmV3IEltYWdlKCk7XHJcbiAgICBpbWcuc3R5bGUub2JqZWN0Rml0ID0gJ2NvdmVyJztcclxuICAgIGltZy5jcm9zc09yaWdpbiA9ICdBbm9ueW1vdXMnO1xyXG4gICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5kcmF3KGltZyk7XHJcbiAgICB9O1xyXG4gICAgaW1nLm9uZXJyb3IgPSAoKSA9PiB7XHJcbiAgICAgIC8vIOWbvueJh+WKoOi9veWksei0peeahOaXtuWAmemHjeaWsOWKoOi9veWFtuS7luWbvueJh1xyXG4gICAgICB0aGlzLnNldEltYWdlU3JjKHRoaXMuZ2V0UmFuZG9tSW1nU3JjKCksIGltZyk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXRJbWFnZVNyYyh0aGlzLmdldFJhbmRvbUltZ1NyYygpLCBpbWcpO1xyXG4gICAgdGhpcy5pbWcgPSBpbWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRyYXcoaW1nOiBIVE1MSW1hZ2VFbGVtZW50KSB7XHJcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXM7XHJcbiAgICAvLyDpmo/mnLrkvY3nva7liJvlu7rmi7zlm77lvaLnirZcclxuICAgIHRoaXMueCA9IHRoaXMuZ2V0UmFuZG9tTnVtYmVyQnlSYW5nZShMICsgMTAsIHdpZHRoIC0gKEwgKyAxMCkpO1xyXG4gICAgdGhpcy55ID0gdGhpcy5nZXRSYW5kb21OdW1iZXJCeVJhbmdlKDEwICsgciAqIDIsIGhlaWdodCAtIChMICsgMTApKTtcclxuICAgIHRoaXMuZHJhd1BhdGgoXHJcbiAgICAgIHRoaXMuY2FudmFzUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKSEsXHJcbiAgICAgIHRoaXMueCxcclxuICAgICAgdGhpcy55LFxyXG4gICAgICAnZmlsbCdcclxuICAgICk7XHJcbiAgICB0aGlzLmRyYXdQYXRoKFxyXG4gICAgICB0aGlzLmJsb2NrUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKSEsXHJcbiAgICAgIHRoaXMueCxcclxuICAgICAgdGhpcy55LFxyXG4gICAgICAnY2xpcCdcclxuICAgICk7XHJcblxyXG4gICAgLy8g55S75YWl5Zu+54mHXHJcbiAgICB0aGlzLmNhbnZhc1JlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgIC5nZXRDb250ZXh0KCcyZCcpIVxyXG4gICAgICAuZHJhd0ltYWdlKGltZywgMCwgMCwgd2lkdGgsIGhlaWdodCk7XHJcbiAgICB0aGlzLmJsb2NrUmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgLmdldENvbnRleHQoJzJkJykhXHJcbiAgICAgIC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAvLyDmj5Dlj5bmu5HlnZflubbmlL7liLDmnIDlt6bovrlcclxuICAgIGNvbnN0IHkgPSB0aGlzLnkgLSByICogMiAtIDE7XHJcbiAgICBjb25zdCBJbWFnZURhdGEgPSB0aGlzLmJsb2NrUmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgLmdldENvbnRleHQoJzJkJykhXHJcbiAgICAgIC5nZXRJbWFnZURhdGEodGhpcy54IC0gMywgeSwgTCwgTCk7XHJcbiAgICB0aGlzLmJsb2NrUmVmLm5hdGl2ZUVsZW1lbnQhLndpZHRoID0gTDtcclxuICAgIHRoaXMuYmxvY2tSZWYubmF0aXZlRWxlbWVudC5nZXRDb250ZXh0KCcyZCcpIS5wdXRJbWFnZURhdGEoSW1hZ2VEYXRhLCAwLCB5KTtcclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEltYWdlU3JjKHNyYzogc3RyaW5nLCBpbWc6IEhUTUxJbWFnZUVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGlzSUUgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdUcmlkZW50JykgPiAtMTtcclxuICAgIGlmIChpc0lFKSB7XHJcbiAgICAgIC8vIElF5rWP6KeI5Zmo5peg5rOV6YCa6L+HaW1nLmNyb3NzT3JpZ2lu6Leo5Z+f77yM5L2/55SoYWpheOiOt+WPluWbvueJh2Jsb2LnhLblkI7ovazkuLpkYXRhVVJM5pi+56S6XHJcbiAgICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgICB4aHIub25sb2FkZW5kID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZVJlYWRlcigpOyAvLyBGaWxlUmVhZGVy5LuF5pSv5oyBSUUxMCtcclxuICAgICAgICBmaWxlLnJlYWRBc0RhdGFVUkwoZS50YXJnZXQucmVzcG9uc2UpO1xyXG4gICAgICAgIGZpbGUub25sb2FkZW5kID0gKGUpID0+IHtcclxuICAgICAgICAgIGltZy5zcmMgPSBlLnRhcmdldD8ucmVzdWx0IGFzIHN0cmluZztcclxuICAgICAgICB9O1xyXG4gICAgICB9O1xyXG4gICAgICB4aHIub3BlbignR0VUJywgc3JjKTtcclxuICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdibG9iJztcclxuICAgICAgeGhyLnNlbmQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGltZy5zcmMgPSBzcmM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJhbmRvbUltZ1NyYygpIHtcclxuICAgIGlmICh0aGlzLm56eEJnSW1nVXJsICYmIHR5cGVvZiB0aGlzLm56eEJnSW1nVXJsID09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm56eEJnSW1nVXJsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5uenhCZ0ltZ1VybCAmJlxyXG4gICAgICBBcnJheS5pc0FycmF5KHRoaXMubnp4QmdJbWdVcmwpICYmXHJcbiAgICAgIHRoaXMubnp4QmdJbWdVcmwubGVuZ3RoXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRoaXMubnp4QmdJbWdVcmxbXHJcbiAgICAgICAgdGhpcy5nZXRSYW5kb21OdW1iZXJCeVJhbmdlKDAsIHRoaXMubnp4QmdJbWdVcmwubGVuZ3RoIC0gMSlcclxuICAgICAgXTtcclxuICAgIH1cclxuICAgIHJldHVybiBgaHR0cHM6Ly9waWNzdW0ucGhvdG9zL2lkLyR7dGhpcy5nZXRSYW5kb21OdW1iZXJCeVJhbmdlKDAsIDEwODQpfS8ke1xyXG4gICAgICB0aGlzLndpZHRoXHJcbiAgICB9LyR7dGhpcy5oZWlnaHR9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UmFuZG9tTnVtYmVyQnlSYW5nZShzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIChlbmQgLSBzdGFydCkgKyBzdGFydCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRyYXdQYXRoKFxyXG4gICAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXHJcbiAgICB4OiBudW1iZXIsXHJcbiAgICB5OiBudW1iZXIsXHJcbiAgICBvcGVyYXRpb246IGFueVxyXG4gICkge1xyXG4gICAgY3R4LmJlZ2luUGF0aCgpO1xyXG4gICAgY3R4Lm1vdmVUbyh4LCB5KTtcclxuICAgIGN0eC5hcmMoeCArIGwgLyAyLCB5IC0gciArIDIsIHIsIDAuNzIgKiBQSSwgMi4yNiAqIFBJKTtcclxuICAgIGN0eC5saW5lVG8oeCArIGwsIHkpO1xyXG4gICAgY3R4LmFyYyh4ICsgbCArIHIgLSAyLCB5ICsgbCAvIDIsIHIsIDEuMjEgKiBQSSwgMi43OCAqIFBJKTtcclxuICAgIGN0eC5saW5lVG8oeCArIGwsIHkgKyBsKTtcclxuICAgIGN0eC5saW5lVG8oeCwgeSArIGwpO1xyXG4gICAgY3R4LmFyYyh4ICsgciAtIDIsIHkgKyBsIC8gMiwgciArIDAuNCwgMi43NiAqIFBJLCAxLjI0ICogUEksIHRydWUpO1xyXG4gICAgY3R4LmxpbmVUbyh4LCB5KTtcclxuICAgIGN0eC5saW5lV2lkdGggPSAyO1xyXG4gICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyknO1xyXG4gICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSc7XHJcbiAgICBjdHguc3Ryb2tlKCk7XHJcbiAgICBjdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ2Rlc3RpbmF0aW9uLW92ZXInO1xyXG4gICAgb3BlcmF0aW9uID09PSAnZmlsbCcgPyBjdHguZmlsbCgpIDogY3R4LmNsaXAoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwibnp4LWppZ3Nhdy1jb250YWluZXJcIlxyXG4gIFtuZ1N0eWxlXT1cIntcclxuICAgIHdpZHRoOiB3aWR0aCArICdweCdcclxuICB9XCJcclxuICAoc2VsZWN0c3RhcnQpPVwic2VsZWN0c3RhcnQoKVwiXHJcbj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cIm56eC1qaWdzYXctbG9hZGluZy1jb250YWluZXJcIlxyXG4gICAgW25nU3R5bGVdPVwie1xyXG4gICAgICBkaXNwbGF5OiBpc0xvYWRpbmcgPyAnJyA6ICdub25lJyxcclxuICAgICAgd2lkdGg6IHdpZHRoICsgJ3B4JyxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQgKyAncHgnXHJcbiAgICB9XCJcclxuICA+XHJcbiAgICA8c3BhbiBjbGFzcz1cIm56eC1qaWdzYXctbG9hZGluZy1pY29uXCIgbnotaWNvbiBbbnpUeXBlXT1cIidsb2FkaW5nJ1wiPjwvc3Bhbj5cclxuICAgIDxzcGFuPnt7IG56eExvYWRpbmdUZXh0IH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8Y2FudmFzICNjYW52YXNDdHggW3dpZHRoXT1cIndpZHRoXCIgW2hlaWdodF09XCJoZWlnaHRcIj48L2NhbnZhcz5cclxuXHJcbiAgPHNwYW5cclxuICAgIGNsYXNzPVwibnp4LWppZ3Nhdy1yZWZyZXNoLWljb25cIlxyXG4gICAgbnotaWNvblxyXG4gICAgbnpUeXBlPVwicmVkb1wiXHJcbiAgICBuelRoZW1lPVwib3V0bGluZVwiXHJcbiAgICBbbnpSb3RhdGVdPVwiLTgwXCJcclxuICAgIChjbGljayk9XCJyZWZyZXNoKClcIlxyXG4gID48L3NwYW4+XHJcblxyXG4gIDxjYW52YXNcclxuICAgICNibG9ja0N0eFxyXG4gICAgY2xhc3M9XCJuengtamlnc2F3LWJsb2NrXCJcclxuICAgIFt3aWR0aF09XCJ3aWR0aFwiXHJcbiAgICBbaGVpZ2h0XT1cImhlaWdodFwiXHJcbiAgICAodG91Y2hzdGFydCk9XCJoYW5kbGVEcmFnU3RhcnQoJGV2ZW50KVwiXHJcbiAgICAobW91c2Vkb3duKT1cImhhbmRsZURyYWdTdGFydCgkZXZlbnQpXCJcclxuICA+PC9jYW52YXM+XHJcblxyXG4gIDxkaXZcclxuICAgICNzbGlkZXJDb250YWluZXJcclxuICAgIGNsYXNzPVwibnp4LWppZ3Nhdy1zbGlkZXItY29udGFpbmVyXCJcclxuICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgd2lkdGg6IHdpZHRoICsgJ3B4JyxcclxuICAgICAgJ3BvaW50ZXItZXZlbnRzJzogaXNMb2FkaW5nID8gJ25vbmUnIDogJydcclxuICAgIH1cIlxyXG4gID5cclxuICAgIDxkaXYgI3NsaWRlck1hc2sgY2xhc3M9XCJuengtamlnc2F3LXNsaWRlci1tYXNrXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAjc2xpZGVyXHJcbiAgICAgICAgY2xhc3M9XCJuengtamlnc2F3LXNsaWRlclwiXHJcbiAgICAgICAgKHRvdWNoc3RhcnQpPVwiaGFuZGxlRHJhZ1N0YXJ0KCRldmVudClcIlxyXG4gICAgICAgIChtb3VzZWRvd24pPVwiaGFuZGxlRHJhZ1N0YXJ0KCRldmVudClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW4gbnotaWNvbiBuelR5cGU9XCJhcnJvdy1yaWdodFwiIG56VGhlbWU9XCJvdXRsaW5lXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHNwYW4gY2xhc3M9XCJuengtamlnc2F3LXNsaWRlci10ZXh0XCI+e3sgbnp4VGlwVGV4dCB9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -4,11 +4,11 @@ import { CommonModule } from '@angular/common';
|
|
|
4
4
|
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class NzxJigsawModule {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
9
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxJigsawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NzxJigsawModule, declarations: [NzxJigsawComponent], imports: [CommonModule, NzIconModule], exports: [NzxJigsawComponent] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxJigsawModule, imports: [CommonModule, NzIconModule] }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxJigsawModule, decorators: [{
|
|
12
12
|
type: NgModule,
|
|
13
13
|
args: [{
|
|
14
14
|
imports: [CommonModule, NzIconModule],
|
|
@@ -12,13 +12,13 @@ export class NzxMapPipe {
|
|
|
12
12
|
}
|
|
13
13
|
return value;
|
|
14
14
|
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
16
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxMapPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
16
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NzxMapPipe, name: "nzxMap" }); }
|
|
17
17
|
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxMapPipe, decorators: [{
|
|
19
19
|
type: Pipe,
|
|
20
20
|
args: [{
|
|
21
21
|
name: 'nzxMap',
|
|
22
22
|
}]
|
|
23
23
|
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21wb25lbnRzL3BpcGVzL21hcC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sVUFBVTtJQUNyQixTQUFTLENBQ1AsS0FBOEIsRUFDOUIsSUFBNkMsRUFDN0MsU0FBUyxHQUFHLEdBQUc7UUFFZixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQixDQUFDO1lBQ0QsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzsrR0FmVSxVQUFVOzZHQUFWLFVBQVU7OzRGQUFWLFVBQVU7a0JBSHRCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFFBQVE7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ256eE1hcCcsXG59KVxuZXhwb3J0IGNsYXNzIE56eE1hcFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBhbnlbXSxcbiAgICBkYXRhPzogeyBba2V5OiBzdHJpbmcgfCBudW1iZXJdOiBhbnkgfSB8IG51bGwsXG4gICAgc2VwYXJhdG9yID0gJywnXG4gICk6IGFueSB7XG4gICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDApIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWUuam9pbihzZXBhcmF0b3IpO1xuICAgICAgfVxuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIGRhdGFbdmFsdWVdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -8,8 +8,8 @@ import { NzxSafeResourceUrlPipe } from './safe-resource-url.pipe';
|
|
|
8
8
|
import { NzxSafeScriptPipe } from './safe-script.pipe';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export class NzxPipesModule {
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
12
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NzxPipesModule, declarations: [NzxMapPipe,
|
|
13
13
|
NzxSafeNullPipe,
|
|
14
14
|
NzxSafeUrlPipe,
|
|
15
15
|
NzxSafeStylePipe,
|
|
@@ -22,9 +22,9 @@ export class NzxPipesModule {
|
|
|
22
22
|
NzxSafeHtmlPipe,
|
|
23
23
|
NzxSafeResourceUrlPipe,
|
|
24
24
|
NzxSafeScriptPipe] }); }
|
|
25
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
25
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPipesModule }); }
|
|
26
26
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPipesModule, decorators: [{
|
|
28
28
|
type: NgModule,
|
|
29
29
|
args: [{
|
|
30
30
|
declarations: [
|
|
@@ -8,10 +8,10 @@ export class NzxSafeHtmlPipe {
|
|
|
8
8
|
transform(value) {
|
|
9
9
|
return this.domSanitizer.bypassSecurityTrustHtml(value);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeHtmlPipe, name: "nzxSafeHtml" }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeHtmlPipe, decorators: [{
|
|
15
15
|
type: Pipe,
|
|
16
16
|
args: [{
|
|
17
17
|
name: 'nzxSafeHtml',
|
|
@@ -15,16 +15,16 @@ export class NzxSafeNullPipe {
|
|
|
15
15
|
}
|
|
16
16
|
return value;
|
|
17
17
|
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
19
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeNullPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
19
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeNullPipe, name: "nzxSafeNull" }); }
|
|
20
20
|
}
|
|
21
21
|
__decorate([
|
|
22
22
|
ExtensionWithConfig()
|
|
23
23
|
], NzxSafeNullPipe.prototype, "placeholder", void 0);
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeNullPipe, decorators: [{
|
|
25
25
|
type: Pipe,
|
|
26
26
|
args: [{
|
|
27
27
|
name: 'nzxSafeNull',
|
|
28
28
|
}]
|
|
29
29
|
}], propDecorators: { placeholder: [] } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1udWxsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21wb25lbnRzL3BpcGVzL3NhZmUtbnVsbC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUNMLG1CQUFtQixFQUVuQixnQkFBZ0IsR0FDakIsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFN0MsTUFBTSxxQkFBcUIsR0FBaUIsYUFBYSxDQUFDO0FBSzFELE1BQU0sT0FBTyxlQUFlO0lBSDVCO1FBSVcsa0JBQWEsR0FBaUIscUJBQXFCLENBQUM7UUFDdEMsZ0JBQVcsR0FBVyxJQUFJLENBQUM7UUFFMUMscUJBQWdCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBUXZFO0lBTkMsU0FBUyxDQUFDLEtBQVUsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVc7UUFDbEQsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDdkQsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzsrR0FYVSxlQUFlOzZHQUFmLGVBQWU7O0FBRUg7SUFBdEIsbUJBQW1CLEVBQUU7b0RBQTRCOzRGQUZ2QyxlQUFlO2tCQUgzQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxhQUFhO2lCQUNwQjs4QkFHd0IsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRXh0ZW5zaW9uV2l0aENvbmZpZyxcbiAgTnp4Q29uZmlnS2V5LFxuICBOenhDb25maWdTZXJ2aWNlLFxufSBmcm9tICduZy16b3Jyby1hbnRkLWV4dGVuc2lvbi9jb3JlL2NvbmZpZyc7XG5cbmNvbnN0IE5aX0NPTkZJR19NT0RVTEVfTkFNRTogTnp4Q29uZmlnS2V5ID0gJ256eFNhZmVOdWxsJztcblxuQFBpcGUoe1xuICBuYW1lOiAnbnp4U2FmZU51bGwnLFxufSlcbmV4cG9ydCBjbGFzcyBOenhTYWZlTnVsbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcmVhZG9ubHkgX256TW9kdWxlTmFtZTogTnp4Q29uZmlnS2V5ID0gTlpfQ09ORklHX01PRFVMRV9OQU1FO1xuICBARXh0ZW5zaW9uV2l0aENvbmZpZygpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnLS0nO1xuXG4gIHByaXZhdGUgbnp4Q29uZmlnU2VydmljZTogTnp4Q29uZmlnU2VydmljZSA9IGluamVjdChOenhDb25maWdTZXJ2aWNlKTtcblxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgcGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyKTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHZvaWQgMCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgIHJldHVybiBwbGFjZWhvbGRlcjtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=
|
|
@@ -8,10 +8,10 @@ export class NzxSafeResourceUrlPipe {
|
|
|
8
8
|
transform(value) {
|
|
9
9
|
return this.domSanitizer.bypassSecurityTrustResourceUrl(value);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeResourceUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeResourceUrlPipe, name: "nzxSafeResourceUrl" }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeResourceUrlPipe, decorators: [{
|
|
15
15
|
type: Pipe,
|
|
16
16
|
args: [{
|
|
17
17
|
name: 'nzxSafeResourceUrl',
|
|
@@ -8,10 +8,10 @@ export class NzxSafeScriptPipe {
|
|
|
8
8
|
transform(value) {
|
|
9
9
|
return this.domSanitizer.bypassSecurityTrustScript(value);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeScriptPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeScriptPipe, name: "nzxSafeScript" }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeScriptPipe, decorators: [{
|
|
15
15
|
type: Pipe,
|
|
16
16
|
args: [{
|
|
17
17
|
name: 'nzxSafeScript',
|
|
@@ -8,10 +8,10 @@ export class NzxSafeStylePipe {
|
|
|
8
8
|
transform(value) {
|
|
9
9
|
return this.domSanitizer.bypassSecurityTrustStyle(value);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeStylePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeStylePipe, name: "nzxSafeStyle" }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeStylePipe, decorators: [{
|
|
15
15
|
type: Pipe,
|
|
16
16
|
args: [{
|
|
17
17
|
name: 'nzxSafeStyle',
|
|
@@ -19,16 +19,16 @@ export class NzxSafeUrlPipe {
|
|
|
19
19
|
}
|
|
20
20
|
return value;
|
|
21
21
|
}
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
23
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
23
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeUrlPipe, name: "nzxSafeUrl" }); }
|
|
24
24
|
}
|
|
25
25
|
__decorate([
|
|
26
26
|
ExtensionWithConfig()
|
|
27
27
|
], NzxSafeUrlPipe.prototype, "protocol", void 0);
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeUrlPipe, decorators: [{
|
|
29
29
|
type: Pipe,
|
|
30
30
|
args: [{
|
|
31
31
|
name: 'nzxSafeUrl',
|
|
32
32
|
}]
|
|
33
33
|
}], propDecorators: { protocol: [] } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS11cmwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcGlwZXMvc2FmZS11cmwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQVcsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLGdCQUFnQixHQUNqQixNQUFNLHFDQUFxQyxDQUFDOztBQUU3QyxNQUFNLHFCQUFxQixHQUFpQixZQUFZLENBQUM7QUFLekQsTUFBTSxPQUFPLGNBQWM7SUFIM0I7UUFJVyxrQkFBYSxHQUFpQixxQkFBcUIsQ0FBQztRQUdyRCxxQkFBZ0IsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUQsaUJBQVksR0FBaUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBWTNEO0lBVkMsU0FBUyxDQUFDLEtBQWEsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVE7UUFDL0MsSUFBSSwwQ0FBMEMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzRCxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBaEJVLGNBQWM7NkdBQWQsY0FBYzs7QUFFRjtJQUF0QixtQkFBbUIsRUFBRTtnREFBd0M7NEZBRm5ELGNBQWM7a0JBSDFCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFlBQVk7aUJBQ25COzhCQUd3QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7XG4gIEV4dGVuc2lvbldpdGhDb25maWcsXG4gIE56eENvbmZpZ0tleSxcbiAgTnp4Q29uZmlnU2VydmljZSxcbn0gZnJvbSAnbmctem9ycm8tYW50ZC1leHRlbnNpb24vY29yZS9jb25maWcnO1xuXG5jb25zdCBOWl9DT05GSUdfTU9EVUxFX05BTUU6IE56eENvbmZpZ0tleSA9ICduenhTYWZlVXJsJztcblxuQFBpcGUoe1xuICBuYW1lOiAnbnp4U2FmZVVybCcsXG59KVxuZXhwb3J0IGNsYXNzIE56eFNhZmVVcmxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHJlYWRvbmx5IF9uek1vZHVsZU5hbWU6IE56eENvbmZpZ0tleSA9IE5aX0NPTkZJR19NT0RVTEVfTkFNRTtcbiAgQEV4dGVuc2lvbldpdGhDb25maWcoKSBwcm90b2NvbDogJ2h0dHAnIHwgJ2h0dHBzJyB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIG56eENvbmZpZ1NlcnZpY2U6IE56eENvbmZpZ1NlcnZpY2UgPSBpbmplY3QoTnp4Q29uZmlnU2VydmljZSk7XG4gIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcblxuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgcHJvdG9jb2wgPSB0aGlzLnByb3RvY29sKTogU2FmZVVybCB7XG4gICAgaWYgKC9eKGh0dHB8aHR0cHN8ZnRwKTpcXC9cXC9bXlxccy8kLj8jXS5bXlxcc10qJC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgIGlmIChwcm90b2NvbCkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL14oaHR0cHxodHRwcykvLCBwcm90b2NvbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=
|
|
@@ -6,10 +6,10 @@ export class NzxPrintContentDirective {
|
|
|
6
6
|
this.identifierStr = '';
|
|
7
7
|
this.customStyle = '';
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintContentDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
10
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NzxPrintContentDirective, selector: "[nzxPrintContent]", inputs: { identifierStr: "identifierStr", customStyle: "customStyle" }, ngImport: i0 }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintContentDirective, decorators: [{
|
|
13
13
|
type: Directive,
|
|
14
14
|
args: [{
|
|
15
15
|
selector: '[nzxPrintContent]',
|
|
@@ -236,8 +236,8 @@ export class NzxPrintVComponent {
|
|
|
236
236
|
this.viewer = undefined;
|
|
237
237
|
this._isRenderComplete = false;
|
|
238
238
|
}
|
|
239
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
240
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
239
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintVComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
240
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NzxPrintVComponent, selector: "nzx-print-v", inputs: { printTitle: "printTitle", width: "width", height: "height", enablePreview: "enablePreview", pixelRatio: "pixelRatio" }, outputs: { pageRenderComplete: "pageRenderComplete" }, queries: [{ propertyName: "_printElQueryList", predicate: NzxPrintContentDirective }], viewQueries: [{ propertyName: "vivViewRef", first: true, predicate: ["vivView"], descendants: true }], ngImport: i0, template: `
|
|
241
241
|
<ng-content select="[nzxPrintHeader]"></ng-content>
|
|
242
242
|
|
|
243
243
|
<div #vivView [ngStyle]="{ margin: '10px 0' }"></div>
|
|
@@ -256,7 +256,7 @@ export class NzxPrintVComponent {
|
|
|
256
256
|
</div>
|
|
257
257
|
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "component", type: i3.NzPaginationComponent, selector: "nz-pagination", inputs: ["nzShowTotal", "nzItemRender", "nzSize", "nzPageSizeOptions", "nzShowSizeChanger", "nzShowQuickJumper", "nzSimple", "nzDisabled", "nzResponsive", "nzHideOnSinglePage", "nzTotal", "nzPageIndex", "nzPageSize"], outputs: ["nzPageSizeChange", "nzPageIndexChange"], exportAs: ["nzPagination"] }] }); }
|
|
258
258
|
}
|
|
259
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
259
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintVComponent, decorators: [{
|
|
260
260
|
type: Component,
|
|
261
261
|
args: [{
|
|
262
262
|
selector: 'nzx-print-v',
|
|
@@ -298,4 +298,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
298
298
|
type: ContentChildren,
|
|
299
299
|
args: [NzxPrintContentDirective]
|
|
300
300
|
}] } });
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnp4LXByaW50LXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tcG9uZW50cy9wcmludC9uengtcHJpbnQtdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksR0FHYixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7OztBQUV6RTs7R0FFRztBQXNCSCxNQUFNLE9BQU8sa0JBQWtCO0lBdUI3QixZQUFvQixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQXRCaEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUM1Qjs7V0FFRztRQUNNLFVBQUssR0FBRyxHQUFHLENBQUM7UUFDWixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2Qsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDckIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNkLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHM0QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQU9OLFdBQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBRXhCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQXNIMUIsZ0JBQVcsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtZQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUM7UUFFTSwyQkFBc0IsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1lBQy9CLElBQUksQ0FB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QyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUN4QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7K0dBelFVLGtCQUFrQjttR0FBbEIsa0JBQWtCLDhRQWlCWix3QkFBd0Isb0lBcEMvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQlQ7OzRGQUVVLGtCQUFrQjtrQkFyQjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQlQ7aUJBQ0Y7c0ZBRVUsVUFBVTtzQkFBbEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBTUMsVUFBVTtzQkFEakIsU0FBUzt1QkFBQyxTQUFTO2dCQUlaLGlCQUFpQjtzQkFEeEIsZUFBZTt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb3JlVmlld2VyLFxuICBOYXZpZ2F0aW9uLFxuICBQYWdlVmlld01vZGUsXG4gIFBheWxvYWQsXG4gIFNpbmdsZURvY3VtZW50T3B0aW9ucyxcbn0gZnJvbSAnQHZpdmxpb3N0eWxlL2NvcmUnO1xuaW1wb3J0IHsgTnp4UHJpbnRDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9uengtcHJpbnQtY29udGVudC5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIFZpdmxpb3N0eWxlIOaJk+WNsFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduengtcHJpbnQtdicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW256eFByaW50SGVhZGVyXVwiPjwvbmctY29udGVudD5cblxuICAgIDxkaXYgI3ZpdlZpZXcgW25nU3R5bGVdPVwieyBtYXJnaW46ICcxMHB4IDAnIH1cIj48L2Rpdj5cblxuICAgIDxkaXYgbnotcm93IG56SnVzdGlmeT1cImVuZFwiPlxuICAgICAgPG5nLXRlbXBsYXRlICN0b3RhbFRlbXBsYXRlIGxldC10b3RhbD7lhbEge3sgdG90YWwgfX0g6aG1PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuei1wYWdpbmF0aW9uXG4gICAgICAgIFtuelBhZ2VJbmRleF09XCIxXCJcbiAgICAgICAgW256VG90YWxdPVwicGFnZVRvdGFsXCJcbiAgICAgICAgW256UGFnZVNpemVdPVwiMVwiXG4gICAgICAgIFtuelNpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgIFtuelNob3dUb3RhbF09XCJ0b3RhbFRlbXBsYXRlXCJcbiAgICAgICAgbnpTaG93UXVpY2tKdW1wZXJcbiAgICAgICAgKG56UGFnZUluZGV4Q2hhbmdlKT1cIm9uUGFnZUluZGV4Q2hhbmdlKCRldmVudClcIlxuICAgICAgPjwvbnotcGFnaW5hdGlvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTnp4UHJpbnRWQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgcHJpbnRUaXRsZSA9ICdwZGYnO1xuICAvKipcbiAgICogYTQgNzk0cHgxMTIzcHhcbiAgICovXG4gIEBJbnB1dCgpIHdpZHRoID0gODE0O1xuICBASW5wdXQoKSBoZWlnaHQgPSAxMTQzO1xuICBASW5wdXQoKSBlbmFibGVQcmV2aWV3ID0gdHJ1ZTtcbiAgQElucHV0KCkgcGl4ZWxSYXRpbyA9IDg7XG4gIEBPdXRwdXQoKSBwYWdlUmVuZGVyQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgdmlld2VyOiBDb3JlVmlld2VyIHwgdW5kZWZpbmVkO1xuICBwYWdlVG90YWwgPSAwO1xuXG4gIEBWaWV3Q2hpbGQoJ3ZpdlZpZXcnKVxuICBwcml2YXRlIHZpdlZpZXdSZWYhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBAQ29udGVudENoaWxkcmVuKE56eFByaW50Q29udGVudERpcmVjdGl2ZSlcbiAgcHJpdmF0ZSBfcHJpbnRFbFF1ZXJ5TGlzdCE6IFF1ZXJ5TGlzdDxOenhQcmludENvbnRlbnREaXJlY3RpdmU+O1xuICBwcml2YXRlIF90aXRsZSA9IGRvY3VtZW50LnRpdGxlO1xuICBwcml2YXRlIGlmcmFtZUVsITogSFRNTElGcmFtZUVsZW1lbnQ7XG4gIHByaXZhdGUgX2lzUmVuZGVyQ29tcGxldGUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNyZWF0ZUlmcmFtZVdyYXBwZXIoKTtcbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpZXdlcikge1xuICAgICAgdGhpcy5jbGVhclZpZXcoKTtcbiAgICB9XG4gIH1cblxuICBvblBhZ2VJbmRleENoYW5nZShudW06IG51bWJlcikge1xuICAgIGlmICh0aGlzLnZpZXdlcikge1xuICAgICAgdGhpcy52aWV3ZXIubmF2aWdhdGVUb1BhZ2UoTmF2aWdhdGlvbi5FUEFHRSwgbnVtIC0gMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpbnQoKSB7XG4gICAgaWYgKHRoaXMuX2lzUmVuZGVyQ29tcGxldGUpIHtcbiAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdyEucHJpbnQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdyZW5kaW5nLi4uJyk7XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY3JlYXRlSWZyYW1lV3JhcHBlcigpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUlmcmFtZVdyYXBwZXIoKSB7XG4gICAgaWYgKHRoaXMudml2Vmlld1JlZikge1xuICAgICAgdGhpcy5jbGVhclZpZXcoKTtcblxuICAgICAgdGhpcy5pZnJhbWVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICAgICAgdGhpcy5pZnJhbWVFbC5oZWlnaHQgPSB0aGlzLmhlaWdodCArICcnO1xuICAgICAgdGhpcy5pZnJhbWVFbC53aWR0aCA9IHRoaXMud2lkdGggKyAnJztcbiAgICAgIHRoaXMuaWZyYW1lRWwuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCAjY2NjJztcbiAgICAgIHRoaXMuaWZyYW1lRWwuc3R5bGUuYmFja2dyb3VuZCA9ICcjZmZmJztcblxuICAgICAgY29uc3QgdGVtcGxhdGUgPSBgXG4gICAgICAgIDwhRE9DVFlQRSBodG1sPlxuICAgICAgICA8aHRtbCBkYXRhLXZpdmxpb3N0eWxlLXBhZ2luYXRlZD1cInRydWVcIj5cbiAgICAgICAgICA8aGVhZD5cbiAgICAgICAgICAgIDxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiIC8+XG4gICAgICAgICAgICA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMFwiIC8+XG4gICAgICAgICAgICA8YmFzZSBocmVmPVwiL1wiIC8+XG4gICAgICAgICAgICA8dGl0bGU+JHt0aGlzLnByaW50VGl0bGV9PC90aXRsZT5cbiAgICAgICAgICAgIDxzdHlsZT5cbiAgICAgICAgICAgICAgaHRtbFtkYXRhLXZpdmxpb3N0eWxlLXBhZ2luYXRlZF0ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBodG1sW2RhdGEtdml2bGlvc3R5bGUtcGFnaW5hdGVkXSBib2R5LFxuICAgICAgICAgICAgICBodG1sW2RhdGEtdml2bGlvc3R5bGUtcGFnaW5hdGVkXSBbZGF0YS12aXZsaW9zdHlsZS12aWV3ZXItdmlld3BvcnRdIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaHRtbFtkYXRhLXZpdmxpb3N0eWxlLXBhZ2luYXRlZF0sXG4gICAgICAgICAgICAgIGh0bWxbZGF0YS12aXZsaW9zdHlsZS1wYWdpbmF0ZWRdIGJvZHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3N0eWxlPlxuICAgICAgICAgICAgPHN0eWxlIGlkPVwidml2bGlvc3R5bGUtcGFnZS1ydWxlc1wiPjwvc3R5bGU+XG4gICAgICAgICAgPC9oZWFkPlxuICAgICAgICAgIDxib2R5PlxuICAgICAgICAgICAgPGRpdiBpZD1cInZpdmxpb3N0eWxlLXZpZXdlci12aWV3cG9ydFwiPjwvZGl2PlxuICAgICAgICAgIDwvYm9keT5cbiAgICAgICAgPC9odG1sPlxuICAgICAgYDtcblxuICAgICAgdGhpcy5pZnJhbWVFbC5zcmNkb2MgPSB0ZW1wbGF0ZTtcbiAgICAgIHRoaXMudml2Vmlld1JlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuaWZyYW1lRWwpO1xuICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93IS5vbmJlZm9yZXByaW50ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3chLnBhcmVudC5kb2N1bWVudC50aXRsZSA9IHRoaXMucHJpbnRUaXRsZTtcbiAgICAgIH07XG4gICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3chLm9uYWZ0ZXJwcmludCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93IS5wYXJlbnQuZG9jdW1lbnQudGl0bGUgPSB0aGlzLl90aXRsZTtcbiAgICAgIH07XG4gICAgICB0aGlzLmNyZWF0ZVZpdlZpZXdlcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVml2Vmlld2VyKCkge1xuICAgIHRoaXMuaWZyYW1lRWwub25sb2FkID0gKCkgPT4ge1xuICAgICAgY29uc3QgZWxzOiBOenhQcmludENvbnRlbnREaXJlY3RpdmVbXSA9IHRoaXMuX3ByaW50RWxRdWVyeUxpc3QudG9BcnJheSgpO1xuICAgICAgY29uc3QgdGVtcGxhdGVzID0gdGhpcy5nZXRWaXZUZW1wbGF0ZXMoZWxzKTtcbiAgICAgIGNvbnN0IG9wdGlvbnM6IFNpbmdsZURvY3VtZW50T3B0aW9uc1tdID0gW107XG4gICAgICB0ZW1wbGF0ZXMuZm9yRWFjaCgodGVtcGxhdGUpID0+IHtcbiAgICAgICAgY29uc3QgZG9jQmxvYiA9IG5ldyBCbG9iKFt0ZW1wbGF0ZV0sIHtcbiAgICAgICAgICB0eXBlOiAndGV4dC9odG1sJyxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGRvY1VSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZG9jQmxvYik7XG4gICAgICAgIG9wdGlvbnMucHVzaCh7IHVybDogZG9jVVJMIH0pO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnZpZXdlciA9IG5ldyBDb3JlVmlld2VyKFxuICAgICAgICB7XG4gICAgICAgICAgdmlld3BvcnRFbGVtZW50OiB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3c/LmRvY3VtZW50LmJvZHlcbiAgICAgICAgICAgIC5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhZ2VWaWV3TW9kZTogUGFnZVZpZXdNb2RlLlNJTkdMRV9QQUdFLFxuICAgICAgICAgIHBpeGVsUmF0aW86IHRoaXMucGl4ZWxSYXRpbyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHRoaXMudmlld2VyLmxvYWREb2N1bWVudChvcHRpb25zKTtcbiAgICAgIHRoaXMuY3JlYXRlTGlzdGVuZXIodGhpcy52aWV3ZXIpO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yID0gKHBheWxvYWQ6IFBheWxvYWQpID0+IHtcbiAgICBjb25zb2xlLmxvZygnZXJyb3I6OicsIHBheWxvYWQpO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlUmVhZHlTdGF0ZUNoYW5nZSA9IChwYXlsb2FkOiBQYXlsb2FkKSA9PiB7XG4gICAgdGhpcy5faXNSZW5kZXJDb21wbGV0ZSA9IGZhbHNlO1xuICAgIHRoaXMucGFnZVJlbmRlckNvbXBsZXRlLmVtaXQoZmFsc2UpO1xuICAgIGlmICh0aGlzLnZpZXdlciAmJiB0aGlzLnZpZXdlci5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgICBjb25zdCBpbnRlcnZhbFRhZyA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuaWZyYW1lRWwgJiZcbiAgICAgICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3cgJiZcbiAgICAgICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgaW1hZ2VzID1cbiAgICAgICAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW1nJyk7XG5cbiAgICAgICAgICBsZXQgYWxsSW1hZ2VzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGltYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFpbWFnZXNbaV0uY29tcGxldGUpIHtcbiAgICAgICAgICAgICAgYWxsSW1hZ2VzTG9hZGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYWxsSW1hZ2VzTG9hZGVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQWxsIGltYWdlcyBpbiBpZnJhbWUgbG9hZGVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgICAgdGhpcy5wYWdlUmVuZGVyQ29tcGxldGUuZW1pdCh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuX2lzUmVuZGVyQ29tcGxldGUgPSB0cnVlO1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbFRhZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCAxMDAwKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBoYW5kbGVIeXBlcmxpbmsgPSAocGF5bG9hZDogUGF5bG9hZCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKCdoYW5kbGVIeXBlcmxpbms6OicsIHBheWxvYWQpO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlTG9hZGVkID0gKHBheWxvYWQ6IFBheWxvYWQpID0+IHtcbiAgICBjb25zb2xlLmxvZygnaGFuZGxlTG9hZGVkOjonLCBwYXlsb2FkKTtcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZU5hdmlnYXRpb24gPSAocGF5bG9hZDogUGF5bG9hZCkgPT4ge1xuICAgIHRoaXMucGFnZVRvdGFsID0gcGF5bG9hZC5lcGFnZUNvdW50O1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBjcmVhdGVMaXN0ZW5lcih2aWV3ZXI6IENvcmVWaWV3ZXIpIHtcbiAgICB2aWV3ZXIuYWRkTGlzdGVuZXIoJ2Vycm9yJywgdGhpcy5oYW5kbGVFcnJvcik7XG4gICAgdmlld2VyLmFkZExpc3RlbmVyKCdyZWFkeXN0YXRlY2hhbmdlJywgdGhpcy5oYW5kbGVSZWFkeVN0YXRlQ2hhbmdlKTtcbiAgICB2aWV3ZXIuYWRkTGlzdGVuZXIoJ2xvYWRlZCcsIHRoaXMuaGFuZGxlTG9hZGVkKTtcbiAgICB2aWV3ZXIuYWRkTGlzdGVuZXIoJ2h5cGVybGluaycsIHRoaXMuaGFuZGxlSHlwZXJsaW5rKTtcbiAgICB2aWV3ZXIuYWRkTGlzdGVuZXIoJ25hdicsIHRoaXMuaGFuZGxlTmF2aWdhdGlvbik7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUxpc3RlbmVycyh2aWV3ZXI6IENvcmVWaWV3ZXIpIHtcbiAgICB2aWV3ZXIucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgdGhpcy5oYW5kbGVFcnJvcik7XG4gICAgdmlld2VyLnJlbW92ZUxpc3RlbmVyKCdyZWFkeXN0YXRlY2hhbmdlJywgdGhpcy5oYW5kbGVSZWFkeVN0YXRlQ2hhbmdlKTtcbiAgICB2aWV3ZXIucmVtb3ZlTGlzdGVuZXIoJ2xvYWRlZCcsIHRoaXMuaGFuZGxlTG9hZGVkKTtcbiAgICB2aWV3ZXIucmVtb3ZlTGlzdGVuZXIoJ2h5cGVybGluaycsIHRoaXMuaGFuZGxlSHlwZXJsaW5rKTtcbiAgICB2aWV3ZXIucmVtb3ZlTGlzdGVuZXIoJ25hdicsIHRoaXMuaGFuZGxlTmF2aWdhdGlvbik7XG4gIH1cblxuICBwcml2YXRlIGdldFN0eWxlcyhpZGVudGlmaWVyU3RyOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3R5bGVzQXJyYXk6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgc3R5bGVFbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzdHlsZScpO1xuICAgIGNvbnN0IGxlbmd0aCA9IHN0eWxlRWxlbWVudHMubGVuZ3RoO1xuICAgIGxldCBpZGVudGlmaWVyczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpZGVudGlmaWVyU3RyKSkge1xuICAgICAgaWRlbnRpZmllcnMgPSBbLi4uaWRlbnRpZmllclN0cl07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlkZW50aWZpZXJzID0gW2lkZW50aWZpZXJTdHJdO1xuICAgIH1cbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBpZGVudGlmaWVycy5mb3JFYWNoKChzKSA9PiB7XG4gICAgICAgIGlmIChzdHlsZUVsZW1lbnRzW2luZGV4XS5vdXRlckhUTUwuaW5jbHVkZXMocykpIHtcbiAgICAgICAgICBjb25zdCBmb3JtYXRlU3RyID0gc3R5bGVFbGVtZW50c1tpbmRleF0ub3V0ZXJIVE1MLnJlcGxhY2UoXG4gICAgICAgICAgICAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nLFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApO1xuICAgICAgICAgIHN0eWxlc0FycmF5LnB1c2goZm9ybWF0ZVN0cik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc3R5bGVzQXJyYXkuam9pbignXFxyXFxuJyk7XG4gIH1cblxuICBwcml2YXRlIGdldFZpdlRlbXBsYXRlcyhkaXJlY3RpdmVzOiBOenhQcmludENvbnRlbnREaXJlY3RpdmVbXSkge1xuICAgIGNvbnN0IHRlbXBsYXRlczogc3RyaW5nW10gPSBbXTtcbiAgICBkaXJlY3RpdmVzLmZvckVhY2goKGQpID0+IHtcbiAgICAgIGxldCBzdHlsZXMgPSAnJztcbiAgICAgIGlmIChkLmlkZW50aWZpZXJTdHIgfHwgZC5pZGVudGlmaWVyU3RyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgc3R5bGVzID0gdGhpcy5nZXRTdHlsZXMoZC5pZGVudGlmaWVyU3RyKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGh0bWwgPSBgXG4gICAgICAgICAgPCFET0NUWVBFIGh0bWw+XG4gICAgICAgICAgPGh0bWw+XG4gICAgICAgICAgICA8aGVhZD5cbiAgICAgICAgICAgIDxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiIC8+XG4gICAgICAgICAgICA8dGl0bGU+JHt0aGlzLnByaW50VGl0bGV9PC90aXRsZT5cbiAgICAgICAgICAgIDxiYXNlIGhyZWY9XCIvXCIgLz5cbiAgICAgICAgICAgIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MVwiIC8+XG4gICAgICAgICAgICAgJHtkLmN1c3RvbVN0eWxlfVxuICAgICAgICAgICAgICR7c3R5bGVzfVxuICAgICAgICAgICAgPC9oZWFkPlxuICAgICAgICAgICAgPGJvZHk+XG4gICAgICAgICAgICAgICR7ZC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub3V0ZXJIVE1MfVxuICAgICAgICAgICAgPC9ib2R5PlxuICAgICAgICAgIDwvaHRtbD5cbiAgICAgICAgYDtcbiAgICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoLzwhLS0tLT4vZywgJyAnKTtcbiAgICAgIHRlbXBsYXRlcy5wdXNoKGh0bWwpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRlbXBsYXRlcztcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJWaWV3KCkge1xuICAgIGlmICh0aGlzLnZpZXdlcikge1xuICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnModGhpcy52aWV3ZXIpO1xuICAgIH1cbiAgICB0aGlzLnZpdlZpZXdSZWYubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSAnJztcbiAgICB0aGlzLnZpZXdlciA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9pc1JlbmRlckNvbXBsZXRlID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
301
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnp4LXByaW50LXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tcG9uZW50cy9wcmludC9uengtcHJpbnQtdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksR0FHYixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7OztBQUV6RTs7R0FFRztBQXNCSCxNQUFNLE9BQU8sa0JBQWtCO0lBdUI3QixZQUFvQixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQXRCaEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUM1Qjs7V0FFRztRQUNNLFVBQUssR0FBRyxHQUFHLENBQUM7UUFDWixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2Qsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDckIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNkLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHM0QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQU9OLFdBQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBRXhCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQXNIMUIsZ0JBQVcsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtZQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUM7UUFFTSwyQkFBc0IsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1lBQy9CLElBQUksQ0FB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QUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29yZVZpZXdlcixcbiAgTmF2aWdhdGlvbixcbiAgUGFnZVZpZXdNb2RlLFxuICBQYXlsb2FkLFxuICBTaW5nbGVEb2N1bWVudE9wdGlvbnMsXG59IGZyb20gJ0B2aXZsaW9zdHlsZS9jb3JlJztcbmltcG9ydCB7IE56eFByaW50Q29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4vbnp4LXByaW50LWNvbnRlbnQuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBWaXZsaW9zdHlsZSDmiZPljbBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnp4LXByaW50LXYnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltuenhQcmludEhlYWRlcl1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8ZGl2ICN2aXZWaWV3IFtuZ1N0eWxlXT1cInsgbWFyZ2luOiAnMTBweCAwJyB9XCI+PC9kaXY+XG5cbiAgICA8ZGl2IG56LXJvdyBuekp1c3RpZnk9XCJlbmRcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdG90YWxUZW1wbGF0ZSBsZXQtdG90YWw+5YWxIHt7IHRvdGFsIH19IOmhtTwvbmctdGVtcGxhdGU+XG4gICAgICA8bnotcGFnaW5hdGlvblxuICAgICAgICBbbnpQYWdlSW5kZXhdPVwiMVwiXG4gICAgICAgIFtuelRvdGFsXT1cInBhZ2VUb3RhbFwiXG4gICAgICAgIFtuelBhZ2VTaXplXT1cIjFcIlxuICAgICAgICBbbnpTaXplXT1cIidzbWFsbCdcIlxuICAgICAgICBbbnpTaG93VG90YWxdPVwidG90YWxUZW1wbGF0ZVwiXG4gICAgICAgIG56U2hvd1F1aWNrSnVtcGVyXG4gICAgICAgIChuelBhZ2VJbmRleENoYW5nZSk9XCJvblBhZ2VJbmRleENoYW5nZSgkZXZlbnQpXCJcbiAgICAgID48L256LXBhZ2luYXRpb24+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIE56eFByaW50VkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHByaW50VGl0bGUgPSAncGRmJztcbiAgLyoqXG4gICAqIGE0IDc5NHB4MTEyM3B4XG4gICAqL1xuICBASW5wdXQoKSB3aWR0aCA9IDgxNDtcbiAgQElucHV0KCkgaGVpZ2h0ID0gMTE0MztcbiAgQElucHV0KCkgZW5hYmxlUHJldmlldyA9IHRydWU7XG4gIEBJbnB1dCgpIHBpeGVsUmF0aW8gPSA4O1xuICBAT3V0cHV0KCkgcGFnZVJlbmRlckNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHZpZXdlcjogQ29yZVZpZXdlciB8IHVuZGVmaW5lZDtcbiAgcGFnZVRvdGFsID0gMDtcblxuICBAVmlld0NoaWxkKCd2aXZWaWV3JylcbiAgcHJpdmF0ZSB2aXZWaWV3UmVmITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihOenhQcmludENvbnRlbnREaXJlY3RpdmUpXG4gIHByaXZhdGUgX3ByaW50RWxRdWVyeUxpc3QhOiBRdWVyeUxpc3Q8Tnp4UHJpbnRDb250ZW50RGlyZWN0aXZlPjtcbiAgcHJpdmF0ZSBfdGl0bGUgPSBkb2N1bWVudC50aXRsZTtcbiAgcHJpdmF0ZSBpZnJhbWVFbCE6IEhUTUxJRnJhbWVFbGVtZW50O1xuICBwcml2YXRlIF9pc1JlbmRlckNvbXBsZXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jcmVhdGVJZnJhbWVXcmFwcGVyKCk7XG4gICAgfSwgMTAwMCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52aWV3ZXIpIHtcbiAgICAgIHRoaXMuY2xlYXJWaWV3KCk7XG4gICAgfVxuICB9XG5cbiAgb25QYWdlSW5kZXhDaGFuZ2UobnVtOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy52aWV3ZXIpIHtcbiAgICAgIHRoaXMudmlld2VyLm5hdmlnYXRlVG9QYWdlKE5hdmlnYXRpb24uRVBBR0UsIG51bSAtIDEpO1xuICAgIH1cbiAgfVxuXG4gIHByaW50KCkge1xuICAgIGlmICh0aGlzLl9pc1JlbmRlckNvbXBsZXRlKSB7XG4gICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3chLnByaW50KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybigncmVuZGluZy4uLicpO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNyZWF0ZUlmcmFtZVdyYXBwZXIoKTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJZnJhbWVXcmFwcGVyKCkge1xuICAgIGlmICh0aGlzLnZpdlZpZXdSZWYpIHtcbiAgICAgIHRoaXMuY2xlYXJWaWV3KCk7XG5cbiAgICAgIHRoaXMuaWZyYW1lRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgICAgIHRoaXMuaWZyYW1lRWwuaGVpZ2h0ID0gdGhpcy5oZWlnaHQgKyAnJztcbiAgICAgIHRoaXMuaWZyYW1lRWwud2lkdGggPSB0aGlzLndpZHRoICsgJyc7XG4gICAgICB0aGlzLmlmcmFtZUVsLnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgI2NjYyc7XG4gICAgICB0aGlzLmlmcmFtZUVsLnN0eWxlLmJhY2tncm91bmQgPSAnI2ZmZic7XG5cbiAgICAgIGNvbnN0IHRlbXBsYXRlID0gYFxuICAgICAgICA8IURPQ1RZUEUgaHRtbD5cbiAgICAgICAgPGh0bWwgZGF0YS12aXZsaW9zdHlsZS1wYWdpbmF0ZWQ9XCJ0cnVlXCI+XG4gICAgICAgICAgPGhlYWQ+XG4gICAgICAgICAgICA8bWV0YSBjaGFyc2V0PVwidXRmLThcIiAvPlxuICAgICAgICAgICAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjBcIiAvPlxuICAgICAgICAgICAgPGJhc2UgaHJlZj1cIi9cIiAvPlxuICAgICAgICAgICAgPHRpdGxlPiR7dGhpcy5wcmludFRpdGxlfTwvdGl0bGU+XG4gICAgICAgICAgICA8c3R5bGU+XG4gICAgICAgICAgICAgIGh0bWxbZGF0YS12aXZsaW9zdHlsZS1wYWdpbmF0ZWRdIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaHRtbFtkYXRhLXZpdmxpb3N0eWxlLXBhZ2luYXRlZF0gYm9keSxcbiAgICAgICAgICAgICAgaHRtbFtkYXRhLXZpdmxpb3N0eWxlLXBhZ2luYXRlZF0gW2RhdGEtdml2bGlvc3R5bGUtdmlld2VyLXZpZXdwb3J0XSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGh0bWxbZGF0YS12aXZsaW9zdHlsZS1wYWdpbmF0ZWRdLFxuICAgICAgICAgICAgICBodG1sW2RhdGEtdml2bGlvc3R5bGUtcGFnaW5hdGVkXSBib2R5IHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zdHlsZT5cbiAgICAgICAgICAgIDxzdHlsZSBpZD1cInZpdmxpb3N0eWxlLXBhZ2UtcnVsZXNcIj48L3N0eWxlPlxuICAgICAgICAgIDwvaGVhZD5cbiAgICAgICAgICA8Ym9keT5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJ2aXZsaW9zdHlsZS12aWV3ZXItdmlld3BvcnRcIj48L2Rpdj5cbiAgICAgICAgICA8L2JvZHk+XG4gICAgICAgIDwvaHRtbD5cbiAgICAgIGA7XG5cbiAgICAgIHRoaXMuaWZyYW1lRWwuc3JjZG9jID0gdGVtcGxhdGU7XG4gICAgICB0aGlzLnZpdlZpZXdSZWYubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmlmcmFtZUVsKTtcbiAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdyEub25iZWZvcmVwcmludCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93IS5wYXJlbnQuZG9jdW1lbnQudGl0bGUgPSB0aGlzLnByaW50VGl0bGU7XG4gICAgICB9O1xuICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93IS5vbmFmdGVycHJpbnQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdyEucGFyZW50LmRvY3VtZW50LnRpdGxlID0gdGhpcy5fdGl0bGU7XG4gICAgICB9O1xuICAgICAgdGhpcy5jcmVhdGVWaXZWaWV3ZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVZpdlZpZXdlcigpIHtcbiAgICB0aGlzLmlmcmFtZUVsLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGVsczogTnp4UHJpbnRDb250ZW50RGlyZWN0aXZlW10gPSB0aGlzLl9wcmludEVsUXVlcnlMaXN0LnRvQXJyYXkoKTtcbiAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IHRoaXMuZ2V0Vml2VGVtcGxhdGVzKGVscyk7XG4gICAgICBjb25zdCBvcHRpb25zOiBTaW5nbGVEb2N1bWVudE9wdGlvbnNbXSA9IFtdO1xuICAgICAgdGVtcGxhdGVzLmZvckVhY2goKHRlbXBsYXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IGRvY0Jsb2IgPSBuZXcgQmxvYihbdGVtcGxhdGVdLCB7XG4gICAgICAgICAgdHlwZTogJ3RleHQvaHRtbCcsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBkb2NVUkwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGRvY0Jsb2IpO1xuICAgICAgICBvcHRpb25zLnB1c2goeyB1cmw6IGRvY1VSTCB9KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy52aWV3ZXIgPSBuZXcgQ29yZVZpZXdlcihcbiAgICAgICAge1xuICAgICAgICAgIHZpZXdwb3J0RWxlbWVudDogdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93Py5kb2N1bWVudC5ib2R5XG4gICAgICAgICAgICAuZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwYWdlVmlld01vZGU6IFBhZ2VWaWV3TW9kZS5TSU5HTEVfUEFHRSxcbiAgICAgICAgICBwaXhlbFJhdGlvOiB0aGlzLnBpeGVsUmF0aW8sXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICB0aGlzLnZpZXdlci5sb2FkRG9jdW1lbnQob3B0aW9ucyk7XG4gICAgICB0aGlzLmNyZWF0ZUxpc3RlbmVyKHRoaXMudmlld2VyKTtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvciA9IChwYXlsb2FkOiBQYXlsb2FkKSA9PiB7XG4gICAgY29uc29sZS5sb2coJ2Vycm9yOjonLCBwYXlsb2FkKTtcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZVJlYWR5U3RhdGVDaGFuZ2UgPSAocGF5bG9hZDogUGF5bG9hZCkgPT4ge1xuICAgIHRoaXMuX2lzUmVuZGVyQ29tcGxldGUgPSBmYWxzZTtcbiAgICB0aGlzLnBhZ2VSZW5kZXJDb21wbGV0ZS5lbWl0KGZhbHNlKTtcbiAgICBpZiAodGhpcy52aWV3ZXIgJiYgdGhpcy52aWV3ZXIucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgY29uc3QgaW50ZXJ2YWxUYWcgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmlmcmFtZUVsICYmXG4gICAgICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93ICYmXG4gICAgICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93LmRvY3VtZW50XG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGltYWdlcyA9XG4gICAgICAgICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpO1xuXG4gICAgICAgICAgbGV0IGFsbEltYWdlc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbWFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICghaW1hZ2VzW2ldLmNvbXBsZXRlKSB7XG4gICAgICAgICAgICAgIGFsbEltYWdlc0xvYWRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGFsbEltYWdlc0xvYWRlZCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0FsbCBpbWFnZXMgaW4gaWZyYW1lIGxvYWRlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgICAgIHRoaXMucGFnZVJlbmRlckNvbXBsZXRlLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLl9pc1JlbmRlckNvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxUYWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwgMTAwMCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlSHlwZXJsaW5rID0gKHBheWxvYWQ6IFBheWxvYWQpID0+IHtcbiAgICBjb25zb2xlLmxvZygnaGFuZGxlSHlwZXJsaW5rOjonLCBwYXlsb2FkKTtcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZUxvYWRlZCA9IChwYXlsb2FkOiBQYXlsb2FkKSA9PiB7XG4gICAgY29uc29sZS5sb2coJ2hhbmRsZUxvYWRlZDo6JywgcGF5bG9hZCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBoYW5kbGVOYXZpZ2F0aW9uID0gKHBheWxvYWQ6IFBheWxvYWQpID0+IHtcbiAgICB0aGlzLnBhZ2VUb3RhbCA9IHBheWxvYWQuZXBhZ2VDb3VudDtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIHByaXZhdGUgY3JlYXRlTGlzdGVuZXIodmlld2VyOiBDb3JlVmlld2VyKSB7XG4gICAgdmlld2VyLmFkZExpc3RlbmVyKCdlcnJvcicsIHRoaXMuaGFuZGxlRXJyb3IpO1xuICAgIHZpZXdlci5hZGRMaXN0ZW5lcigncmVhZHlzdGF0ZWNoYW5nZScsIHRoaXMuaGFuZGxlUmVhZHlTdGF0ZUNoYW5nZSk7XG4gICAgdmlld2VyLmFkZExpc3RlbmVyKCdsb2FkZWQnLCB0aGlzLmhhbmRsZUxvYWRlZCk7XG4gICAgdmlld2VyLmFkZExpc3RlbmVyKCdoeXBlcmxpbmsnLCB0aGlzLmhhbmRsZUh5cGVybGluayk7XG4gICAgdmlld2VyLmFkZExpc3RlbmVyKCduYXYnLCB0aGlzLmhhbmRsZU5hdmlnYXRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVMaXN0ZW5lcnModmlld2VyOiBDb3JlVmlld2VyKSB7XG4gICAgdmlld2VyLnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIHRoaXMuaGFuZGxlRXJyb3IpO1xuICAgIHZpZXdlci5yZW1vdmVMaXN0ZW5lcigncmVhZHlzdGF0ZWNoYW5nZScsIHRoaXMuaGFuZGxlUmVhZHlTdGF0ZUNoYW5nZSk7XG4gICAgdmlld2VyLnJlbW92ZUxpc3RlbmVyKCdsb2FkZWQnLCB0aGlzLmhhbmRsZUxvYWRlZCk7XG4gICAgdmlld2VyLnJlbW92ZUxpc3RlbmVyKCdoeXBlcmxpbmsnLCB0aGlzLmhhbmRsZUh5cGVybGluayk7XG4gICAgdmlld2VyLnJlbW92ZUxpc3RlbmVyKCduYXYnLCB0aGlzLmhhbmRsZU5hdmlnYXRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdHlsZXMoaWRlbnRpZmllclN0cjogc3RyaW5nIHwgc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0eWxlc0FycmF5OiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHN0eWxlRWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3R5bGUnKTtcbiAgICBjb25zdCBsZW5ndGggPSBzdHlsZUVsZW1lbnRzLmxlbmd0aDtcbiAgICBsZXQgaWRlbnRpZmllcnM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaWRlbnRpZmllclN0cikpIHtcbiAgICAgIGlkZW50aWZpZXJzID0gWy4uLmlkZW50aWZpZXJTdHJdO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZGVudGlmaWVycyA9IFtpZGVudGlmaWVyU3RyXTtcbiAgICB9XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgaWRlbnRpZmllcnMuZm9yRWFjaCgocykgPT4ge1xuICAgICAgICBpZiAoc3R5bGVFbGVtZW50c1tpbmRleF0ub3V0ZXJIVE1MLmluY2x1ZGVzKHMpKSB7XG4gICAgICAgICAgY29uc3QgZm9ybWF0ZVN0ciA9IHN0eWxlRWxlbWVudHNbaW5kZXhdLm91dGVySFRNTC5yZXBsYWNlKFxuICAgICAgICAgICAgL1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vZyxcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKTtcbiAgICAgICAgICBzdHlsZXNBcnJheS5wdXNoKGZvcm1hdGVTdHIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHN0eWxlc0FycmF5LmpvaW4oJ1xcclxcbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWaXZUZW1wbGF0ZXMoZGlyZWN0aXZlczogTnp4UHJpbnRDb250ZW50RGlyZWN0aXZlW10pIHtcbiAgICBjb25zdCB0ZW1wbGF0ZXM6IHN0cmluZ1tdID0gW107XG4gICAgZGlyZWN0aXZlcy5mb3JFYWNoKChkKSA9PiB7XG4gICAgICBsZXQgc3R5bGVzID0gJyc7XG4gICAgICBpZiAoZC5pZGVudGlmaWVyU3RyIHx8IGQuaWRlbnRpZmllclN0ci5sZW5ndGggPiAwKSB7XG4gICAgICAgIHN0eWxlcyA9IHRoaXMuZ2V0U3R5bGVzKGQuaWRlbnRpZmllclN0cik7XG4gICAgICB9XG5cbiAgICAgIGxldCBodG1sID0gYFxuICAgICAgICAgIDwhRE9DVFlQRSBodG1sPlxuICAgICAgICAgIDxodG1sPlxuICAgICAgICAgICAgPGhlYWQ+XG4gICAgICAgICAgICA8bWV0YSBjaGFyc2V0PVwidXRmLThcIiAvPlxuICAgICAgICAgICAgPHRpdGxlPiR7dGhpcy5wcmludFRpdGxlfTwvdGl0bGU+XG4gICAgICAgICAgICA8YmFzZSBocmVmPVwiL1wiIC8+XG4gICAgICAgICAgICA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTFcIiAvPlxuICAgICAgICAgICAgICR7ZC5jdXN0b21TdHlsZX1cbiAgICAgICAgICAgICAke3N0eWxlc31cbiAgICAgICAgICAgIDwvaGVhZD5cbiAgICAgICAgICAgIDxib2R5PlxuICAgICAgICAgICAgICAke2QuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm91dGVySFRNTH1cbiAgICAgICAgICAgIDwvYm9keT5cbiAgICAgICAgICA8L2h0bWw+XG4gICAgICAgIGA7XG4gICAgICBodG1sID0gaHRtbC5yZXBsYWNlKC88IS0tLS0+L2csICcgJyk7XG4gICAgICB0ZW1wbGF0ZXMucHVzaChodG1sKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0ZW1wbGF0ZXM7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyVmlldygpIHtcbiAgICBpZiAodGhpcy52aWV3ZXIpIHtcbiAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzKHRoaXMudmlld2VyKTtcbiAgICB9XG4gICAgdGhpcy52aXZWaWV3UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgdGhpcy52aWV3ZXIgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5faXNSZW5kZXJDb21wbGV0ZSA9IGZhbHNlO1xuICB9XG59XG4iXX0=
|