@gipisistemas/ng-core 1.1.2 → 1.1.4
Sign up to get free protection for your applications and to get access to all the features.
- package/assets/styles/colors.scss +5 -1
- package/bundles/gipisistemas-ng-core.umd.js +8416 -7886
- package/bundles/gipisistemas-ng-core.umd.js.map +1 -1
- package/bundles/gipisistemas-ng-core.umd.min.js +10 -9
- package/bundles/gipisistemas-ng-core.umd.min.js.map +1 -1
- package/core/gipi-components/models/sort.model.d.ts +3 -3
- package/core/utils/array.util.d.ts +2 -2
- package/core/utils/object.util.d.ts +3 -5
- package/esm2015/core/gipi-components/models/sort.model.js +1 -1
- package/esm2015/core/gipi-components/services/abstract-crud.service.js +18 -24
- package/esm2015/core/utils/array.util.js +4 -2
- package/esm2015/core/utils/object.util.js +5 -9
- package/esm2015/gipi-components.js +10 -1
- package/esm2015/shared/components/input/input.component.js +46 -23
- package/esm2015/shared/components/table/table.component.js +1 -1
- package/esm2015/shared/gipi-components/abstract-form/abstract-form.component.js +1 -1
- package/esm2015/shared/gipi-components/button/button.component.js +2 -2
- package/esm2015/shared/gipi-components/card/card.component.js +113 -0
- package/esm2015/shared/gipi-components/datepicker/datepicker/datepicker.component.js +8 -3
- package/esm2015/shared/gipi-components/empty-state/empty-state.component.js +30 -0
- package/esm2015/shared/gipi-components/input-select/input-select.component.js +7 -4
- package/esm2015/shared/gipi-components/layout-grid/col.directive.js +4 -4
- package/esm2015/shared/gipi-components/month-year-picker/month-year-picker.component.js +2 -2
- package/esm2015/shared/gipi-components/notification/notification.component.js +8 -3
- package/esm2015/shared/gipi-components/sidebar/sidenav/sidenav.component.js +35 -3
- package/esm2015/shared/gipi-components/slide-toggle/slide-toggle.component.js +113 -0
- package/esm2015/shared/gipi-components/tabs/shared/dynamic-tab.directive.js +18 -0
- package/esm2015/shared/gipi-components/tabs/shared/tab.model.js +8 -0
- package/esm2015/shared/gipi-components/tabs/tab/tab.component.js +66 -0
- package/esm2015/shared/gipi-components/tabs/tab-group/tab-group.component.js +123 -0
- package/esm2015/shared/gipi-components/textarea/textarea.component.js +298 -0
- package/esm2015/shared/shared.module.js +20 -16
- package/esm2015/shared.js +1 -5
- package/esm5/core/gipi-components/models/sort.model.js +1 -1
- package/esm5/core/gipi-components/services/abstract-crud.service.js +18 -24
- package/esm5/core/utils/array.util.js +4 -3
- package/esm5/core/utils/object.util.js +5 -9
- package/esm5/gipi-components.js +10 -1
- package/esm5/shared/components/input/input.component.js +46 -23
- package/esm5/shared/components/table/table.component.js +1 -1
- package/esm5/shared/gipi-components/abstract-form/abstract-form.component.js +1 -1
- package/esm5/shared/gipi-components/button/button.component.js +2 -2
- package/esm5/shared/gipi-components/card/card.component.js +135 -0
- package/esm5/shared/gipi-components/datepicker/datepicker/datepicker.component.js +8 -3
- package/esm5/shared/gipi-components/empty-state/empty-state.component.js +33 -0
- package/esm5/shared/gipi-components/input-select/input-select.component.js +11 -4
- package/esm5/shared/gipi-components/layout-grid/col.directive.js +4 -4
- package/esm5/shared/gipi-components/month-year-picker/month-year-picker.component.js +2 -2
- package/esm5/shared/gipi-components/notification/notification.component.js +8 -3
- package/esm5/shared/gipi-components/sidebar/sidenav/sidenav.component.js +35 -3
- package/esm5/shared/gipi-components/slide-toggle/slide-toggle.component.js +127 -0
- package/esm5/shared/gipi-components/tabs/shared/dynamic-tab.directive.js +19 -0
- package/esm5/shared/gipi-components/tabs/shared/tab.model.js +10 -0
- package/esm5/shared/gipi-components/tabs/tab/tab.component.js +67 -0
- package/esm5/shared/gipi-components/tabs/tab-group/tab-group.component.js +131 -0
- package/esm5/shared/gipi-components/textarea/textarea.component.js +352 -0
- package/esm5/shared/shared.module.js +20 -16
- package/esm5/shared.js +1 -5
- package/fesm2015/gipisistemas-ng-core.js +1746 -1305
- package/fesm2015/gipisistemas-ng-core.js.map +1 -1
- package/fesm5/gipisistemas-ng-core.js +8406 -7881
- package/fesm5/gipisistemas-ng-core.js.map +1 -1
- package/gipi-components.d.ts +8 -0
- package/gipisistemas-ng-core.metadata.json +1 -1
- package/package.json +1 -2
- package/shared/components/input/input.component.d.ts +13 -11
- package/shared/components/table/table.component.d.ts +3 -3
- package/shared/gipi-components/card/card.component.d.ts +23 -0
- package/shared/gipi-components/empty-state/empty-state.component.d.ts +5 -0
- package/shared/gipi-components/input-select/input-select.component.d.ts +1 -0
- package/shared/gipi-components/notification/notification.component.d.ts +1 -0
- package/shared/gipi-components/sidebar/sidenav/sidenav.component.d.ts +7 -0
- package/shared/gipi-components/slide-toggle/slide-toggle.component.d.ts +27 -0
- package/shared/{directives → gipi-components/tabs/shared}/dynamic-tab.directive.d.ts +1 -1
- package/shared/gipi-components/tabs/shared/tab.model.d.ts +12 -0
- package/shared/{components → gipi-components/tabs}/tab/tab.component.d.ts +4 -2
- package/shared/gipi-components/tabs/tab-group/tab-group.component.d.ts +22 -0
- package/shared/gipi-components/textarea/textarea.component.d.ts +68 -0
- package/shared.d.ts +0 -4
- package/esm2015/shared/components/select-button/select-button.component.js +0 -181
- package/esm2015/shared/components/tab/tab.component.js +0 -57
- package/esm2015/shared/components/tab-group/tab-group.component.js +0 -117
- package/esm2015/shared/directives/dynamic-tab.directive.js +0 -18
- package/esm5/shared/components/select-button/select-button.component.js +0 -195
- package/esm5/shared/components/tab/tab.component.js +0 -58
- package/esm5/shared/components/tab-group/tab-group.component.js +0 -125
- package/esm5/shared/directives/dynamic-tab.directive.js +0 -19
- package/shared/components/select-button/select-button.component.d.ts +0 -35
- package/shared/components/tab-group/tab-group.component.d.ts +0 -22
@@ -42,7 +42,7 @@ var GIPIColDirective = /** @class */ (function () {
|
|
42
42
|
};
|
43
43
|
GIPIColDirective.prototype._setHostClassMap = function () {
|
44
44
|
var _a;
|
45
|
-
var hostClassMap = __assign((_a = {}, _a['grid-col'] = true, _a["grid-col-" + this.GIPISpan] = ObjectUtil.
|
45
|
+
var hostClassMap = __assign((_a = {}, _a['grid-col'] = true, _a["grid-col-" + this.GIPISpan] = !ObjectUtil.isNull(this.GIPISpan), _a["grid-col-order-" + this.GIPIOrder] = !ObjectUtil.isNull(this.GIPIOrder), _a["grid-col-offset-" + this.GIPIOffset] = !ObjectUtil.isNull(this.GIPIOffset), _a["grid-col-pull-" + this.GIPIPull] = !ObjectUtil.isNull(this.GIPIPull), _a["grid-col-push-" + this.GIPIPush] = !ObjectUtil.isNull(this.GIPIPush), _a), this._generateClass());
|
46
46
|
for (var i in this._classMap) {
|
47
47
|
if (this._classMap.hasOwnProperty(i)) {
|
48
48
|
this.renderer.removeClass(this.elementRef.nativeElement, i);
|
@@ -75,7 +75,7 @@ var GIPIColDirective = /** @class */ (function () {
|
|
75
75
|
var listClassMap = {};
|
76
76
|
listOfSizeInputName.forEach(function (name) {
|
77
77
|
var sizeName = name.replace('GIPI', '').toLowerCase();
|
78
|
-
if (ObjectUtil.
|
78
|
+
if (!ObjectUtil.isNull(_this[name])) {
|
79
79
|
if (typeof _this[name] === 'number' || typeof _this[name] === 'string') {
|
80
80
|
listClassMap["grid-col-" + sizeName + "-" + _this[name]] = true;
|
81
81
|
}
|
@@ -84,7 +84,7 @@ var GIPIColDirective = /** @class */ (function () {
|
|
84
84
|
var prefixArray = ['span', 'pull', 'push', 'offset', 'order'];
|
85
85
|
prefixArray.forEach(function (prefix) {
|
86
86
|
var prefixClass = prefix === 'span' ? '-' : "-" + prefix + "-";
|
87
|
-
listClassMap["grid-col-" + sizeName + prefixClass + embedded_1[prefix]] = embedded_1 && ObjectUtil.
|
87
|
+
listClassMap["grid-col-" + sizeName + prefixClass + embedded_1[prefix]] = embedded_1 && !ObjectUtil.isNull(embedded_1[prefix]);
|
88
88
|
});
|
89
89
|
}
|
90
90
|
}
|
@@ -161,4 +161,4 @@ var GIPIColDirective = /** @class */ (function () {
|
|
161
161
|
return GIPIColDirective;
|
162
162
|
}());
|
163
163
|
export { GIPIColDirective };
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvbGF5b3V0LWdyaWQvY29sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEosT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFrQm5EO0lBZ0NJLDBCQUNZLFVBQXNCLEVBQ0gsZ0JBQWtDLEVBQ3RELFFBQW1CO1FBRmxCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDSCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3RELGFBQVEsR0FBUixRQUFRLENBQVc7UUFqQ3RCLGNBQVMsR0FBK0IsRUFBRSxDQUFDO1FBRTNDLGNBQVMsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVwRCxrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFFM0IsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsY0FBUyxHQUEyQixJQUFJLENBQUM7UUFFekMsZUFBVSxHQUEyQixJQUFJLENBQUM7UUFFMUMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsV0FBTSxHQUE4QyxJQUFJLENBQUM7UUFFekQsV0FBTSxHQUE4QyxJQUFJLENBQUM7UUFFekQsV0FBTSxHQUE4QyxJ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QyxDQUFDO2lCQUNOO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7O2dCQXhGdUIsVUFBVTtnQkFDZSxnQkFBZ0IsdUJBQTVELFFBQVEsWUFBSSxJQUFJO2dCQUNBLFNBQVM7O0lBM0JyQjtRQUFSLEtBQUssRUFBRTs7c0RBQXlDO0lBRXhDO1FBQVIsS0FBSyxFQUFFOztzREFBeUM7SUFFeEM7UUFBUixLQUFLLEVBQUU7O3VEQUEwQztJQUV6QztRQUFSLEtBQUssRUFBRTs7d0RBQTJDO0lBRTFDO1FBQVIsS0FBSyxFQUFFOztzREFBeUM7SUFFeEM7UUFBUixLQUFLLEVBQUU7O3NEQUF5QztJQUV4QztRQUFSLEtBQUssRUFBRTs7b0RBQTBEO0lBRXpEO1FBQVIsS0FBSyxFQUFFOztvREFBMEQ7SUFFekQ7UUFBUixLQUFLLEVBQUU7O29EQUEwRDtJQUV6RDtRQUFSLEtBQUssRUFBRTs7b0RBQTBEO0lBRXpEO1FBQVIsS0FBSyxFQUFFOztvREFBMEQ7SUFFekQ7UUFBUixLQUFLLEVBQUU7O3FEQUEyRDtJQTlCMUQsZ0JBQWdCO1FBUjVCLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSw2QkFBNkI7WUFDdkMsUUFBUSxFQUFFLFNBQVM7WUFDbkIsSUFBSSxFQUFFO2dCQUNGLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixjQUFjLEVBQUUsZUFBZTthQUNsQztTQUNKLENBQUM7UUFtQ08sV0FBQSxRQUFRLEVBQUUsQ0FBQSxFQUFFLFdBQUEsSUFBSSxFQUFFLENBQUE7eUNBREMsVUFBVTtZQUNlLGdCQUFnQjtZQUM1QyxTQUFTO09BbkNyQixnQkFBZ0IsQ0EySDVCO0lBQUQsdUJBQUM7Q0FBQSxBQTNIRCxJQTJIQztTQTNIWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3QsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEdJUElDbGFzc0ludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdHlwZXMvbmctY2xhc3MudHlwZSc7XG5pbXBvcnQgeyBPYmplY3RVdGlsIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscy9vYmplY3QudXRpbCc7XG5pbXBvcnQgeyBHSVBJUm93RGlyZWN0aXZlIH0gZnJvbSAnLi9yb3cuZGlyZWN0aXZlJztcblxuZXhwb3J0IGludGVyZmFjZSBFbWJlZGRlZFByb3BlcnR5IHtcbiAgICBzcGFuPzogbnVtYmVyO1xuICAgIHB1bGw/OiBudW1iZXI7XG4gICAgcHVzaD86IG51bWJlcjtcbiAgICBvZmZzZXQ/OiBudW1iZXI7XG4gICAgb3JkZXI/OiBudW1iZXI7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2dpcGktY29sXSxnaXBpLWNvbCxHSVBJQ29sJyxcbiAgICBleHBvcnRBczogJ2dpcGlDb2wnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dyaWQtY29sJyxcbiAgICAgICAgJ1tzdHlsZS5mbGV4XSc6ICdob3N0RmxleFN0eWxlJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgR0lQSUNvbERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgcHJpdmF0ZSBfY2xhc3NNYXA6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx1bmtub3duPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBob3N0RmxleFN0eWxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElGbGV4OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElTcGFuOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElPcmRlcjogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBHSVBJT2Zmc2V0OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElQdXNoOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElQdWxsOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElYczogc3RyaW5nIHwgbnVtYmVyIHwgRW1iZWRkZWRQcm9wZXJ0eSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSVNtOiBzdHJpbmcgfCBudW1iZXIgfCBFbWJlZGRlZFByb3BlcnR5IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBHSVBJTWQ6IHN0cmluZyB8IG51bWJlciB8IEVtYmVkZGVkUHJvcGVydHkgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElMZzogc3RyaW5nIHwgbnVtYmVyIHwgRW1iZWRkZWRQcm9wZXJ0eSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSVhsOiBzdHJpbmcgfCBudW1iZXIgfCBFbWJlZGRlZFByb3BlcnR5IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBHSVBJWFhsOiBzdHJpbmcgfCBudW1iZXIgfCBFbWJlZGRlZFByb3BlcnR5IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHB1YmxpYyBHSVBJUm93RGlyZWN0aXZlOiBHSVBJUm93RGlyZWN0aXZlLFxuICAgICAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0SG9zdENsYXNzTWFwKCk7XG4gICAgICAgIHRoaXMuX3NldEhvc3RGbGV4U3R5bGUoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldEhvc3RDbGFzc01hcCgpO1xuXG4gICAgICAgIGNvbnN0IHsgR0lQSUZsZXggfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmIChHSVBJRmxleCkge1xuICAgICAgICAgICAgdGhpcy5fc2V0SG9zdEZsZXhTdHlsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQgeyB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEhvc3RDbGFzc01hcCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdENsYXNzTWFwID0ge1xuICAgICAgICAgICAgWydncmlkLWNvbCddOiB0cnVlLFxuICAgICAgICAgICAgW2BncmlkLWNvbC0ke3RoaXMuR0lQSVNwYW59YF06IE9iamVjdFV0aWwuaXNOb3ROaWwodGhpcy5HSVBJU3BhbiksXG4gICAgICAgICAgICBbYGdyaWQtY29sLW9yZGVyLSR7dGhpcy5HSVBJT3JkZXJ9YF06IE9iamVjdFV0aWwuaXNOb3ROaWwodGhpcy5HSVBJT3JkZXIpLFxuICAgICAgICAgICAgW2BncmlkLWNvbC1vZmZzZXQtJHt0aGlzLkdJUElPZmZzZXR9YF06IE9iamVjdFV0aWwuaXNOb3ROaWwodGhpcy5HSVBJT2Zmc2V0KSxcbiAgICAgICAgICAgIFtgZ3JpZC1jb2wtcHVsbC0ke3RoaXMuR0lQSVB1bGx9YF06IE9iamVjdFV0aWwuaXNOb3ROaWwodGhpcy5HSVBJUHVsbCksXG4gICAgICAgICAgICBbYGdyaWQtY29sLXB1c2gtJHt0aGlzLkdJUElQdXNofWBdOiBPYmplY3RVdGlsLmlzTm90TmlsKHRoaXMuR0lQSVB1c2gpLFxuICAgICAgICAgICAgLi4udGhpcy5fZ2VuZXJhdGVDbGFzcygpXG4gICAgICAgIH07XG5cbiAgICAgICAgZm9yIChjb25zdCBpIGluIHRoaXMuX2NsYXNzTWFwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xhc3NNYXAuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NsYXNzTWFwID0geyAuLi5ob3N0Q2xhc3NNYXAgfTtcbiAgICAgICAgZm9yIChjb25zdCBpIGluIHRoaXMuX2NsYXNzTWFwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xhc3NNYXAuaGFzT3duUHJvcGVydHkoaSkgJiYgdGhpcy5fY2xhc3NNYXBbaV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEhvc3RGbGV4U3R5bGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG9zdEZsZXhTdHlsZSA9IHRoaXMuX3BhcnNlRmxleCh0aGlzLkdJUElGbGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9wYXJzZUZsZXgoZmxleDogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIGZsZXggPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7ZmxleH0gJHtmbGV4fSBhdXRvYDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmxleCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICgvXlxcZCsoXFwuXFxkKyk/KHB4fGVtfHJlbXwlKSQvLnRlc3QoZmxleCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYDAgMCAke2ZsZXh9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmxleDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZW5lcmF0ZUNsYXNzKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IGxpc3RPZlNpemVJbnB1dE5hbWU6IEFycmF5PGtleW9mIEdJUElDb2xEaXJlY3RpdmU+ID0gWydHSVBJWHMnLCAnR0lQSVNtJywgJ0dJUElNZCcsICdHSVBJTGcnLCAnR0lQSVhsJywgJ0dJUElYWGwnXTtcbiAgICAgICAgY29uc3QgbGlzdENsYXNzTWFwOiBHSVBJQ2xhc3NJbnRlcmZhY2UgPSB7fTtcblxuICAgICAgICBsaXN0T2ZTaXplSW5wdXROYW1lLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzaXplTmFtZTogc3RyaW5nID0gbmFtZS5yZXBsYWNlKCdHSVBJJywgJycpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICAgIGlmIChPYmplY3RVdGlsLmlzTm90TmlsKHRoaXNbbmFtZV0pKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzW25hbWVdID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdGhpc1tuYW1lXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdENsYXNzTWFwW2BncmlkLWNvbC0ke3NpemVOYW1lfS0ke3RoaXNbbmFtZV19YF0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVtYmVkZGVkID0gdGhpc1tuYW1lXSBhcyBFbWJlZGRlZFByb3BlcnR5O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmVmaXhBcnJheTogQXJyYXk8a2V5b2YgRW1iZWRkZWRQcm9wZXJ0eT4gPSBbJ3NwYW4nLCAncHVsbCcsICdwdXNoJywgJ29mZnNldCcsICdvcmRlciddO1xuXG4gICAgICAgICAgICAgICAgICAgIHByZWZpeEFycmF5LmZvckVhY2gocHJlZml4ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZWZpeENsYXNzOiBzdHJpbmcgPSBwcmVmaXggPT09ICdzcGFuJyA/ICctJyA6IGAtJHtwcmVmaXh9LWA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0Q2xhc3NNYXBbYGdyaWQtY29sLSR7c2l6ZU5hbWV9JHtwcmVmaXhDbGFzc30ke2VtYmVkZGVkW3ByZWZpeF19YF0gPSBlbWJlZGRlZCAmJiBPYmplY3RVdGlsLmlzTm90TmlsKGVtYmVkZGVkW3ByZWZpeF0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbGlzdENsYXNzTWFwO1xuICAgIH1cblxufVxuIl19
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvbGF5b3V0LWdyaWQvY29sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEosT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFrQm5EO0lBZ0NJLDBCQUNZLFVBQXNCLEVBQ0gsZ0JBQWtDLEVBQ3RELFFBQW1CO1FBRmxCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDSCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3RELGFBQVEsR0FBUixRQUFRLENBQVc7UUFqQ3RCLGNBQVMsR0FBK0IsRUFBRSxDQUFDO1FBRTNDLGNBQVMsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVwRCxrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFFM0IsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsY0FBUyxHQUEyQixJQUFJLENBQUM7UUFFekMsZUFBVSxHQUEyQixJQUFJLENBQUM7UUFFMUMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsV0FBTSxHQUE4QyxJQUFJLENBQUM7UUFFekQsV0FBTSxHQUE4QyxJQUFJLENBQUM7UUFFekQsV0FBTSxHQUE4QyxJ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TUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDN0gsQ0FBQyxDQUFDLENBQUM7aUJBQ047YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQzs7Z0JBeEZ1QixVQUFVO2dCQUNlLGdCQUFnQix1QkFBNUQsUUFBUSxZQUFJLElBQUk7Z0JBQ0EsU0FBUzs7SUEzQnJCO1FBQVIsS0FBSyxFQUFFOztzREFBeUM7SUFFeEM7UUFBUixLQUFLLEVBQUU7O3NEQUF5QztJQUV4QztRQUFSLEtBQUssRUFBRTs7dURBQTBDO0lBRXpDO1FBQVIsS0FBSyxFQUFFOzt3REFBMkM7SUFFMUM7UUFBUixLQUFLLEVBQUU7O3NEQUF5QztJQUV4QztRQUFSLEtBQUssRUFBRTs7c0RBQXlDO0lBRXhDO1FBQVIsS0FBSyxFQUFFOztvREFBMEQ7SUFFekQ7UUFBUixLQUFLLEVBQUU7O29EQUEwRDtJQUV6RDtRQUFSLEtBQUssRUFBRTs7b0RBQTBEO0lBRXpEO1FBQVIsS0FBSyxFQUFFOztvREFBMEQ7SUFFekQ7UUFBUixLQUFLLEVBQUU7O29EQUEwRDtJQUV6RDtRQUFSLEtBQUssRUFBRTs7cURBQTJEO0lBOUIxRCxnQkFBZ0I7UUFSNUIsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLDZCQUE2QjtZQUN2QyxRQUFRLEVBQUUsU0FBUztZQUNuQixJQUFJLEVBQUU7Z0JBQ0YsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLGNBQWMsRUFBRSxlQUFlO2FBQ2xDO1NBQ0osQ0FBQztRQW1DTyxXQUFBLFFBQVEsRUFBRSxDQUFBLEVBQUUsV0FBQSxJQUFJLEVBQUUsQ0FBQTt5Q0FEQyxVQUFVO1lBQ2UsZ0JBQWdCO1lBQzVDLFNBQVM7T0FuQ3JCLGdCQUFnQixDQTJINUI7SUFBRCx1QkFBQztDQUFBLEFBM0hELElBMkhDO1NBM0hZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgR0lQSUNsYXNzSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS90eXBlcy9uZy1jbGFzcy50eXBlJztcbmltcG9ydCB7IE9iamVjdFV0aWwgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL29iamVjdC51dGlsJztcbmltcG9ydCB7IEdJUElSb3dEaXJlY3RpdmUgfSBmcm9tICcuL3Jvdy5kaXJlY3RpdmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVtYmVkZGVkUHJvcGVydHkge1xuICAgIHNwYW4/OiBudW1iZXI7XG4gICAgcHVsbD86IG51bWJlcjtcbiAgICBwdXNoPzogbnVtYmVyO1xuICAgIG9mZnNldD86IG51bWJlcjtcbiAgICBvcmRlcj86IG51bWJlcjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZ2lwaS1jb2xdLGdpcGktY29sLEdJUElDb2wnLFxuICAgIGV4cG9ydEFzOiAnZ2lwaUNvbCcsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnZ3JpZC1jb2wnLFxuICAgICAgICAnW3N0eWxlLmZsZXhdJzogJ2hvc3RGbGV4U3R5bGUnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBHSVBJQ29sRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwcml2YXRlIF9jbGFzc01hcDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICAgIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHVua25vd24+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGhvc3RGbGV4U3R5bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSUZsZXg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSVNwYW46IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSU9yZGVyOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElPZmZzZXQ6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSVB1c2g6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSVB1bGw6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSVhzOiBzdHJpbmcgfCBudW1iZXIgfCBFbWJlZGRlZFByb3BlcnR5IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBHSVBJU206IHN0cmluZyB8IG51bWJlciB8IEVtYmVkZGVkUHJvcGVydHkgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElNZDogc3RyaW5nIHwgbnVtYmVyIHwgRW1iZWRkZWRQcm9wZXJ0eSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSUxnOiBzdHJpbmcgfCBudW1iZXIgfCBFbWJlZGRlZFByb3BlcnR5IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBHSVBJWGw6IHN0cmluZyB8IG51bWJlciB8IEVtYmVkZGVkUHJvcGVydHkgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElYWGw6IHN0cmluZyB8IG51bWJlciB8IEVtYmVkZGVkUHJvcGVydHkgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgcHVibGljIEdJUElSb3dEaXJlY3RpdmU6IEdJUElSb3dEaXJlY3RpdmUsXG4gICAgICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRIb3N0Q2xhc3NNYXAoKTtcbiAgICAgICAgdGhpcy5fc2V0SG9zdEZsZXhTdHlsZSgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0SG9zdENsYXNzTWFwKCk7XG5cbiAgICAgICAgY29uc3QgeyBHSVBJRmxleCB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKEdJUElGbGV4KSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRIb3N0RmxleFN0eWxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7IH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0SG9zdENsYXNzTWFwKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBob3N0Q2xhc3NNYXAgPSB7XG4gICAgICAgICAgICBbJ2dyaWQtY29sJ106IHRydWUsXG4gICAgICAgICAgICBbYGdyaWQtY29sLSR7dGhpcy5HSVBJU3Bhbn1gXTogIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuR0lQSVNwYW4pLFxuICAgICAgICAgICAgW2BncmlkLWNvbC1vcmRlci0ke3RoaXMuR0lQSU9yZGVyfWBdOiAhT2JqZWN0VXRpbC5pc051bGwodGhpcy5HSVBJT3JkZXIpLFxuICAgICAgICAgICAgW2BncmlkLWNvbC1vZmZzZXQtJHt0aGlzLkdJUElPZmZzZXR9YF06ICFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLkdJUElPZmZzZXQpLFxuICAgICAgICAgICAgW2BncmlkLWNvbC1wdWxsLSR7dGhpcy5HSVBJUHVsbH1gXTogIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuR0lQSVB1bGwpLFxuICAgICAgICAgICAgW2BncmlkLWNvbC1wdXNoLSR7dGhpcy5HSVBJUHVzaH1gXTogIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuR0lQSVB1c2gpLFxuICAgICAgICAgICAgLi4udGhpcy5fZ2VuZXJhdGVDbGFzcygpXG4gICAgICAgIH07XG5cbiAgICAgICAgZm9yIChjb25zdCBpIGluIHRoaXMuX2NsYXNzTWFwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xhc3NNYXAuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NsYXNzTWFwID0geyAuLi5ob3N0Q2xhc3NNYXAgfTtcbiAgICAgICAgZm9yIChjb25zdCBpIGluIHRoaXMuX2NsYXNzTWFwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xhc3NNYXAuaGFzT3duUHJvcGVydHkoaSkgJiYgdGhpcy5fY2xhc3NNYXBbaV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEhvc3RGbGV4U3R5bGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG9zdEZsZXhTdHlsZSA9IHRoaXMuX3BhcnNlRmxleCh0aGlzLkdJUElGbGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9wYXJzZUZsZXgoZmxleDogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIGZsZXggPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7ZmxleH0gJHtmbGV4fSBhdXRvYDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmxleCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICgvXlxcZCsoXFwuXFxkKyk/KHB4fGVtfHJlbXwlKSQvLnRlc3QoZmxleCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYDAgMCAke2ZsZXh9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmxleDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZW5lcmF0ZUNsYXNzKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IGxpc3RPZlNpemVJbnB1dE5hbWU6IEFycmF5PGtleW9mIEdJUElDb2xEaXJlY3RpdmU+ID0gWydHSVBJWHMnLCAnR0lQSVNtJywgJ0dJUElNZCcsICdHSVBJTGcnLCAnR0lQSVhsJywgJ0dJUElYWGwnXTtcbiAgICAgICAgY29uc3QgbGlzdENsYXNzTWFwOiBHSVBJQ2xhc3NJbnRlcmZhY2UgPSB7fTtcblxuICAgICAgICBsaXN0T2ZTaXplSW5wdXROYW1lLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzaXplTmFtZTogc3RyaW5nID0gbmFtZS5yZXBsYWNlKCdHSVBJJywgJycpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpc1tuYW1lXSkpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXNbbmFtZV0gPT09ICdudW1iZXInIHx8IHR5cGVvZiB0aGlzW25hbWVdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICBsaXN0Q2xhc3NNYXBbYGdyaWQtY29sLSR7c2l6ZU5hbWV9LSR7dGhpc1tuYW1lXX1gXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW1iZWRkZWQgPSB0aGlzW25hbWVdIGFzIEVtYmVkZGVkUHJvcGVydHk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZWZpeEFycmF5OiBBcnJheTxrZXlvZiBFbWJlZGRlZFByb3BlcnR5PiA9IFsnc3BhbicsICdwdWxsJywgJ3B1c2gnLCAnb2Zmc2V0JywgJ29yZGVyJ107XG5cbiAgICAgICAgICAgICAgICAgICAgcHJlZml4QXJyYXkuZm9yRWFjaChwcmVmaXggPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJlZml4Q2xhc3M6IHN0cmluZyA9IHByZWZpeCA9PT0gJ3NwYW4nID8gJy0nIDogYC0ke3ByZWZpeH0tYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RDbGFzc01hcFtgZ3JpZC1jb2wtJHtzaXplTmFtZX0ke3ByZWZpeENsYXNzfSR7ZW1iZWRkZWRbcHJlZml4XX1gXSA9IGVtYmVkZGVkICYmICFPYmplY3RVdGlsLmlzTnVsbChlbWJlZGRlZFtwcmVmaXhdKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGxpc3RDbGFzc01hcDtcbiAgICB9XG5cbn1cbiJdfQ==
|
@@ -60,7 +60,7 @@ var MonthPickerModel = /** @class */ (function () {
|
|
60
60
|
this.selectedYearMoment = moment();
|
61
61
|
this.updateYearText();
|
62
62
|
this.selectedMonthMoment = moment();
|
63
|
-
this.months =
|
63
|
+
this.months = ['Jan.', 'Fev.', 'Mar.', 'Abr.', 'Mai.', 'Jun.', 'Jul.', 'Ago.', 'Set.', 'Out.', 'Nov.', 'Dez.'];
|
64
64
|
this.selectedMonthIndex = this.selectedMonthMoment.month();
|
65
65
|
this.selectedMonthYear = this.selectedYearMoment.year();
|
66
66
|
}
|
@@ -502,4 +502,4 @@ var MonthYearPickerComponent = /** @class */ (function () {
|
|
502
502
|
return MonthYearPickerComponent;
|
503
503
|
}());
|
504
504
|
export { MonthYearPickerComponent };
|
505
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgteWVhci1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2dpcGktY29tcG9uZW50cy9tb250aC15ZWFyLXBpY2tlci9tb250aC15ZWFyLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN1EsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMs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LFFBQVEsRUFBRSxDQUFBLEVBQUUsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7eUNBUFYsVUFBVTtZQUNELGlCQUFpQjtZQUMzQixPQUFPO1lBQ1IsTUFBTTtZQUNJLGdCQUFnQixVQUVqQixjQUFjO09BckluQyx3QkFBd0IsQ0FzVnBDO0lBQUQsK0JBQUM7Q0FBQSxBQXRWRCxJQXNWQztTQXRWWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBFU0NBUEUsIFVQX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiwgU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE5nWm9uZSwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbCB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS91dGlscy9vYmplY3QudXRpbCc7XG5cbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5cbmltcG9ydCB7IENhbGVuZGFyTW9udGhZZWFyQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci1tb250aC15ZWFyL2NhbGVuZGFyLW1vbnRoLXllYXIuY29tcG9uZW50JztcblxuXG5leHBvcnQgY29uc3QgR0lQSV9NT05USF9ZRUFSX1NDUk9MTF9TVFJBVEVHWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjwoKSA9PiBTY3JvbGxTdHJhdGVneT4oJ2dpcGktbW9udGgteWVhci1zY3JvbGwtc3RyYXRlZ3knKTtcblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBHSVBJX01PTlRIX1lFQVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUlkob3ZlcmxheTogT3ZlcmxheSk6ICgpID0+IFNjcm9sbFN0cmF0ZWd5IHtcbiAgICByZXR1cm4gKCkgPT4gb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKTtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBHSVBJX01PTlRIX1lFQVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUllfUFJPVklERVIgPSB7XG4gICAgcHJvdmlkZTogR0lQSV9NT05USF9ZRUFSX1NDUk9MTF9TVFJBVEVHWSxcbiAgICBkZXBzOiBbT3ZlcmxheV0sXG4gICAgdXNlRmFjdG9yeTogR0lQSV9NT05USF9ZRUFSX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZLFxufTtcblxuXG5leHBvcnQgY2xhc3MgTW9udGhZZWFyIHtcbiAgICBwcml2YXRlIF9tb250aDogbnVtYmVyO1xuICAgIHByaXZhdGUgX3llYXI6IG51bWJlcjtcblxuICAgIHB1YmxpYyBnZXQgZGF0ZSgpOiBEYXRlIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudCgpLmRheSgxKS5tb250aCh0aGlzLm1vbnRoKS55ZWFyKHRoaXMueWVhcikuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbW9udGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgeWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5feWVhcjtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihtb250aD86IG51bWJlciwgeWVhcj86IG51bWJlcikge1xuICAgICAgICB0aGlzLl9tb250aCA9IG1vbnRoO1xuICAgICAgICB0aGlzLl95ZWFyID0geWVhcjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb250aFBpY2tlck1vZGVsIHtcbiAgICBzZWxlY3RlZFllYXJNb21lbnQ6IG1vbWVudC5Nb21lbnQ7XG4gICAgc2VsZWN0ZWRZZWFyVGV4dDogc3RyaW5nO1xuXG4gICAgc2VsZWN0ZWRNb250aE1vbWVudDogbW9tZW50Lk1vbWVudDtcbiAgICBzZWxlY3RlZE1vbnRoSW5kZXg6IG51bWJlcjtcbiAgICBzZWxlY3RlZE1vbnRoWWVhcjogbnVtYmVyO1xuXG4gICAgbW9udGhzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFllYXJNb21lbnQgPSBtb21lbnQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVZZWFyVGV4dCgpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aE1vbWVudCA9IG1vbWVudCgpO1xuXG4gICAgICAgIHRoaXMubW9udGhzID0gbW9tZW50Lm1vbnRoc1Nob3J0KCkubWFwKG1vbnRoID0+IGAke21vbnRofS5gKTtcblxuICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGhJbmRleCA9IHRoaXMuc2VsZWN0ZWRNb250aE1vbWVudC5tb250aCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGhZZWFyID0gdGhpcy5zZWxlY3RlZFllYXJNb21lbnQueWVhcigpO1xuICAgIH1cblxuICAgIHVwZGF0ZVllYXJUZXh0KCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkWWVhclRleHQgPSAhT2JqZWN0VXRpbC5pc051bGwobW9tZW50KSA/IG1vbWVudCh0aGlzLnNlbGVjdGVkWWVhck1vbWVudCkuZm9ybWF0KCdZWVlZJykgOiAnJztcbiAgICB9XG5cbiAgICBzZWxlY3RNb250aChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aE1vbWVudCA9IG1vbWVudCgpLm1vbnRoKGluZGV4KTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoSW5kZXggPSB0aGlzLnNlbGVjdGVkTW9udGhNb21lbnQubW9udGgoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoWWVhciA9IHRoaXMuc2VsZWN0ZWRZZWFyTW9tZW50LnllYXIoKTtcbiAgICB9XG5cbiAgICBpbmNyZW1lbnRZZWFyKCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkWWVhck1vbWVudCA9IHRoaXMuc2VsZWN0ZWRZZWFyTW9tZW50LmFkZCgxLCBcInllYXJcIilcbiAgICAgICAgdGhpcy51cGRhdGVZZWFyVGV4dCgpO1xuICAgIH1cblxuICAgIGRlY3JlbWVudFllYXIoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRZZWFyTW9tZW50ID0gdGhpcy5zZWxlY3RlZFllYXJNb21lbnQuc3VidHJhY3QoMSwgXCJ5ZWFyXCIpXG4gICAgICAgIHRoaXMudXBkYXRlWWVhclRleHQoKTtcbiAgICB9XG59XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2dpcGktbW9udGgteWVhci1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb250aC15ZWFyLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbW9udGgteWVhci1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKTogdHlwZW9mIE1vbnRoWWVhclBpY2tlckNvbXBvbmVudCA9PiBNb250aFllYXJQaWNrZXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dpcGktbW9udGgteWVhci1waWNrZXInLFxuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1vbnRoWWVhclBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0TW9udGhZZWFyQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSwgfSkgaW5wdXRNb250aFllYXJDb250ZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nID0gYGdpcGktZGF0ZS1yYW5nZS0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgICBwcml2YXRlIF9zY3JvbGxTdHJhdGVneTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3k7XG5cbiAgICBwcml2YXRlIF9wb3B1cFJlZjogT3ZlcmxheVJlZiB8IG51bGw7XG4gICAgcHJpdmF0ZSBfcG9wdXBDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxDYWxlbmRhck1vbnRoWWVhckNvbXBvbmVudD4gfCBudWxsO1xuICAgIHByaXZhdGUgX2ZvY3VzZWRFbGVtZW50QmVmb3JlT3BlbjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9iYWNrZHJvcEhhcm5lc3NDbGFzcyA9IGAke3RoaXMuX25hbWV9LWJhY2tkcm9wYDtcblxuICAgIHJlYWRvbmx5IF9zdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHVibGljIHZhbHVlTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgcHVibGljIG1vZGVsOiBNb250aFBpY2tlck1vZGVsO1xuXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZyA9IGAke3RoaXMuX25hbWV9LWRhdGVgO1xuXG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nID0gYCR7dGhpcy5fbmFtZX0tZGF0ZWA7XG5cbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSBoZWxwOiBzdHJpbmcgPSAnJztcblxuICAgIEBJbnB1dCgpIGxvY2FsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHllYXI6IG51bWJlcjtcbiAgICBASW5wdXQoKSBtb250aDogbnVtYmVyO1xuXG4gICAgLy8gQElucHV0KCkgZW5hYmxlZE1vbnRoczogQXJyYXk8bnVtYmVyPiA9IFtdO1xuICAgIC8vIEBJbnB1dCgpIGRpc2FibGVkTW9udGhzOiBBcnJheTxudW1iZXI+ID0gW107XG5cbiAgICAvLyBASW5wdXQoKSBlbmFibGVkWWVhcnM6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgICAvLyBASW5wdXQoKSBkaXNhYmxlZFllYXJzOiBBcnJheTxudW1iZXI+ID0gW107XG5cbiAgICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIHhQb3NpdGlvbjogJ3N0YXJ0JyB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICAgIEBJbnB1dCgpIHlQb3NpdGlvbjogJ2Fib3ZlJyB8ICdiZWxvdycgPSAnYmVsb3cnO1xuXG4gICAgQElucHV0KCkgY2FsZW5kYXJWaWV3OiAnYm90aCcgfCAneWVhcicgPSAnYm90aCc7XG5cbiAgICBwcml2YXRlIF9vcGVuZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBnZXQgb3BlbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3BlbmVkO1xuICAgIH1cbiAgICBzZXQgb3BlbmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSkgPyB0aGlzLm9wZW4oKSA6IHRoaXMuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICAgIH1cbiAgICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbWluOiBNb250aFllYXIgPSBudWxsO1xuICAgIEBJbnB1dCgpIGdldCBtaW4oKTogTW9udGhZZWFyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgICB9XG4gICAgc2V0IG1pbih2YWx1ZTogTW9udGhZZWFyKSB7XG4gICAgICAgIHRoaXMuX21pbiA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX21heDogTW9udGhZZWFyID0gbnVsbDtcbiAgICBASW5wdXQoKSBnZXQgbWF4KCk6IE1vbnRoWWVhciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXg7XG4gICAgfVxuICAgIHNldCBtYXgodmFsdWU6IE1vbnRoWWVhcikge1xuICAgICAgICB0aGlzLl9tYXggPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWx1ZTogTW9udGhZZWFyO1xuICAgIEBJbnB1dCgpIGdldCB2YWx1ZSgpOiBNb250aFllYXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogTW9udGhZZWFyKSB7XG4gICAgICAgIGxldCB2YWx1ZUF1eDogTW9udGhZZWFyID0gdmFsdWU7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlQXV4ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWVBdXgpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jYWxlbmRhclZpZXcpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdib3RoJzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlTGFiZWwgPSBtb21lbnQodmFsdWVBdXguZGF0ZSkuZm9ybWF0KCdNTS9ZWVlZJyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICd5ZWFyJzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlTGFiZWwgPSBtb21lbnQodmFsdWVBdXguZGF0ZSkuZm9ybWF0KCdZWVlZJyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVMYWJlbCA9IG1vbWVudCh2YWx1ZUF1eC5kYXRlKS5mb3JtYXQoJ01NL1lZWVknKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZUF1eDtcblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIEBPdXRwdXQoJ29wZW5lZCcpIG9wZW5lZFN0cmVhbTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoJ2Nsb3NlZCcpIGNsb3NlZFN0cmVhbTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xuXG4gICAgb25Ub3VjaGVkOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgQEluamVjdChHSVBJX01PTlRIX1lFQVJfU0NST0xMX1NUUkFURUdZKSBzY3JvbGxTdHJhdGVneTogYW55LFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kaXI6IERpcmVjdGlvbmFsaXR5LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogYW55LFxuICAgICkge1xuICAgICAgICB0aGlzLl9zY3JvbGxTdHJhdGVneSA9IHNjcm9sbFN0cmF0ZWd5O1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGVsID0gbmV3IE1vbnRoUGlja2VyTW9kZWwoKTtcblxuICAgICAgICBpZiAodGhpcy55ZWFyKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNlbGVjdGVkWWVhck1vbWVudCA9IG1vbWVudCgpLnllYXIodGhpcy55ZWFyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vbnRoKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNlbGVjdGVkTW9udGhJbmRleCA9IHRoaXMubW9udGg7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNlbGVjdGVkTW9udGhNb21lbnQgPSBtb21lbnQoKS5tb250aCh0aGlzLm1vbnRoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMueWVhcikge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuc2VsZWN0ZWRNb250aFllYXIgPSB0aGlzLnllYXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1vZGVsLnVwZGF0ZVllYXJUZXh0KCk7XG4gICAgICAgIGlmIChPYmplY3RVdGlsLmlzTnVsbCh0aGlzLm1vbnRoKSAmJiBPYmplY3RVdGlsLmlzTnVsbCh0aGlzLnllYXIpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZSh0aGlzLm1vZGVsLnNlbGVjdGVkTW9udGhJbmRleCwgdGhpcy5tb2RlbC5zZWxlY3RlZE1vbnRoWWVhcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uQ2hhbmdlID0gY2hhbmdlc1sneFBvc2l0aW9uJ10gfHwgY2hhbmdlc1sneVBvc2l0aW9uJ107XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uQ2hhbmdlICYmICFwb3NpdGlvbkNoYW5nZS5maXJzdENoYW5nZSAmJiB0aGlzLl9wb3B1cFJlZikge1xuICAgICAgICAgICAgdGhpcy5fc2V0Q29ubmVjdGVkUG9zaXRpb25zKHRoaXMuX3BvcHVwUmVmLmdldENvbmZpZygpLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMub3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdXBSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3N0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3lQb3B1cCgpO1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuX3N0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IE1vbnRoWWVhcik6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVmFsdWVDaGFuZ2UobW9udGg6IG51bWJlciwgeWVhcjogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IG1vbnRoWWVhcjogTW9udGhZZWFyID0gbmV3IE1vbnRoWWVhcihtb250aCwgeWVhcik7XG4gICAgICAgIHRoaXMudmFsdWUgPSBtb250aFllYXI7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX29wZW5lZCB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlucHV0TW9udGhZZWFyQ29udGVudFJlZikge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ0F0dGVtcHRlZCB0byBvcGVuIGFuIE1vbnRoWWVhclBpY2tlciB3aXRoIG5vIGFzc29jaWF0ZWQgaW5wdXQuJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2RvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c2VkRWxlbWVudEJlZm9yZU9wZW4gPSB0aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fb3BlbkFzUG9wdXAoKTtcbiAgICAgICAgdGhpcy5fb3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcGVuZWRTdHJlYW0uZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9vcGVuZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fcG9wdXBDb21wb25lbnRSZWYgJiYgdGhpcy5fcG9wdXBSZWYpIHtcbiAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5fcG9wdXBDb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICAgICAgICBpbnN0YW5jZS5fc3RhcnRFeGl0QW5pbWF0aW9uKCk7XG4gICAgICAgICAgICBpbnN0YW5jZS5fYW5pbWF0aW9uRG9uZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9kZXN0cm95UG9wdXAoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb21wbGV0ZUNsb3NlID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX29wZW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wZW5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VkU3RyZWFtLmVtaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c2VkRWxlbWVudEJlZm9yZU9wZW4gPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0aGlzLl9mb2N1c2VkRWxlbWVudEJlZm9yZU9wZW4gJiZcbiAgICAgICAgICAgIHR5cGVvZiB0aGlzLl9mb2N1c2VkRWxlbWVudEJlZm9yZU9wZW4uZm9jdXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzZWRFbGVtZW50QmVmb3JlT3Blbi5mb2N1cygpO1xuICAgICAgICAgICAgc2V0VGltZW91dChjb21wbGV0ZUNsb3NlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbXBsZXRlQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX29wZW5Bc1BvcHVwKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwb3J0YWw6IENvbXBvbmVudFBvcnRhbDxDYWxlbmRhck1vbnRoWWVhckNvbXBvbmVudD4gPSBuZXcgQ29tcG9uZW50UG9ydGFsPENhbGVuZGFyTW9udGhZZWFyQ29tcG9uZW50PihDYWxlbmRhck1vbnRoWWVhckNvbXBvbmVudCwgdGhpcy5fdmlld0NvbnRhaW5lclJlZik7XG5cbiAgICAgICAgdGhpcy5fZGVzdHJveVBvcHVwKCk7XG4gICAgICAgIHRoaXMuX2NyZWF0ZVBvcHVwKCk7XG4gICAgICAgIHRoaXMuX3BvcHVwQ29tcG9uZW50UmVmID0gdGhpcy5fcG9wdXBSZWYhLmF0dGFjaChwb3J0YWwpO1xuICAgICAgICB0aGlzLl9wb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZS5tb250aFllYXJQaWNrZXIgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9wb3B1cFJlZiEudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpOiBFbGVtZW50UmVmIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRNb250aFllYXJDb250ZW50UmVmID8gdGhpcy5pbnB1dE1vbnRoWWVhckNvbnRlbnRSZWYgOiB0aGlzLmVsZW1lbnRSZWY7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlUG9wdXAoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKClcbiAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX2dldENvbm5lY3RlZE92ZXJsYXlPcmlnaW4oKSlcbiAgICAgICAgICAgIC53aXRoVHJhbnNmb3JtT3JpZ2luT24oJy5tYXQtZGF0ZXBpY2tlci1jb250ZW50JylcbiAgICAgICAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKGZhbHNlKVxuICAgICAgICAgICAgLndpdGhWaWV3cG9ydE1hcmdpbig4KVxuICAgICAgICAgICAgLndpdGhMb2NrZWRQb3NpdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9zZXRDb25uZWN0ZWRQb3NpdGlvbnMocG9zaXRpb25TdHJhdGVneSksXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6IFsnbWF0LW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLCB0aGlzLl9iYWNrZHJvcEhhcm5lc3NDbGFzc10sXG4gICAgICAgICAgICBkaXJlY3Rpb246IHRoaXMuX2RpciB8fCAnbHRyJyxcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9zY3JvbGxTdHJhdGVneSgpLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogJ21hdC1tb250aC15ZWFyLXBpY2tlci1wb3B1cCcsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3BvcHVwUmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG4gICAgICAgIHRoaXMuX3BvcHVwUmVmLm92ZXJsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgncm9sZScsICdkaWFsb2cnKTtcblxuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwUmVmLmJhY2tkcm9wQ2xpY2soKSxcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwUmVmLmRldGFjaG1lbnRzKCksXG4gICAgICAgICAgICB0aGlzLl9wb3B1cFJlZi5rZXlkb3duRXZlbnRzKCkucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFIHx8ICh0aGlzLmlucHV0TW9udGhZZWFyQ29udGVudFJlZiAmJiBldmVudC5hbHRLZXkgJiYgZXZlbnQua2V5Q29kZSA9PT0gVVBfQVJST1cpKSlcbiAgICAgICAgKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kZXN0cm95UG9wdXAoKSB7XG4gICAgICAgIGlmICh0aGlzLl9wb3B1cFJlZikge1xuICAgICAgICAgICAgdGhpcy5fcG9wdXBSZWYuZGlzcG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5fcG9wdXBSZWYgPSB0aGlzLl9wb3B1cENvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRDb25uZWN0ZWRQb3NpdGlvbnMoc3RyYXRlZ3k6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSkge1xuICAgICAgICBjb25zdCBwcmltYXJ5WCA9IHRoaXMueFBvc2l0aW9uID09PSAnZW5kJyA/ICdlbmQnIDogJ3N0YXJ0JztcbiAgICAgICAgY29uc3Qgc2Vjb25kYXJ5WCA9IHByaW1hcnlYID09PSAnc3RhcnQnID8gJ2VuZCcgOiAnc3RhcnQnO1xuICAgICAgICBjb25zdCBwcmltYXJ5WSA9IHRoaXMueVBvc2l0aW9uID09PSAnYWJvdmUnID8gJ2JvdHRvbScgOiAndG9wJztcbiAgICAgICAgY29uc3Qgc2Vjb25kYXJ5WSA9IHByaW1hcnlZID09PSAndG9wJyA/ICdib3R0b20nIDogJ3RvcCc7XG5cbiAgICAgICAgcmV0dXJuIHN0cmF0ZWd5LndpdGhQb3NpdGlvbnMoW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6IHByaW1hcnlYLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6IHNlY29uZGFyeVksXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6IHByaW1hcnlYLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiBwcmltYXJ5WVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5YOiBwcmltYXJ5WCxcbiAgICAgICAgICAgICAgICBvcmlnaW5ZOiBwcmltYXJ5WSxcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogcHJpbWFyeVgsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6IHNlY29uZGFyeVlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3JpZ2luWDogc2Vjb25kYXJ5WCxcbiAgICAgICAgICAgICAgICBvcmlnaW5ZOiBzZWNvbmRhcnlZLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiBzZWNvbmRhcnlYLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiBwcmltYXJ5WVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5YOiBzZWNvbmRhcnlYLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6IHByaW1hcnlZLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiBzZWNvbmRhcnlYLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiBzZWNvbmRhcnlZXG4gICAgICAgICAgICB9XG4gICAgICAgIF0pO1xuICAgIH1cblxufVxuIl19
|
505
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgteWVhci1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2dpcGktY29tcG9uZW50cy9tb250aC15ZWFyLXBpY2tlci9tb250aC15ZWFyLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN1EsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMs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Q0FBQyxDQUFBO1FBQ3ZDLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLFFBQVEsRUFBRSxDQUFBLEVBQUUsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7eUNBUFYsVUFBVTtZQUNELGlCQUFpQjtZQUMzQixPQUFPO1lBQ1IsTUFBTTtZQUNJLGdCQUFnQixVQUVqQixjQUFjO09BckluQyx3QkFBd0IsQ0FzVnBDO0lBQUQsK0JBQUM7Q0FBQSxBQXRWRCxJQXNWQztTQXRWWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBFU0NBUEUsIFVQX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiwgU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE5nWm9uZSwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbCB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS91dGlscy9vYmplY3QudXRpbCc7XG5cbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5cbmltcG9ydCB7IENhbGVuZGFyTW9udGhZZWFyQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci1tb250aC15ZWFyL2NhbGVuZGFyLW1vbnRoLXllYXIuY29tcG9uZW50JztcblxuXG5leHBvcnQgY29uc3QgR0lQSV9NT05USF9ZRUFSX1NDUk9MTF9TVFJBVEVHWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjwoKSA9PiBTY3JvbGxTdHJhdGVneT4oJ2dpcGktbW9udGgteWVhci1zY3JvbGwtc3RyYXRlZ3knKTtcblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBHSVBJX01PTlRIX1lFQVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUlkob3ZlcmxheTogT3ZlcmxheSk6ICgpID0+IFNjcm9sbFN0cmF0ZWd5IHtcbiAgICByZXR1cm4gKCkgPT4gb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKTtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBHSVBJX01PTlRIX1lFQVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUllfUFJPVklERVIgPSB7XG4gICAgcHJvdmlkZTogR0lQSV9NT05USF9ZRUFSX1NDUk9MTF9TVFJBVEVHWSxcbiAgICBkZXBzOiBbT3ZlcmxheV0sXG4gICAgdXNlRmFjdG9yeTogR0lQSV9NT05USF9ZRUFSX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZLFxufTtcblxuXG5leHBvcnQgY2xhc3MgTW9udGhZZWFyIHtcbiAgICBwcml2YXRlIF9tb250aDogbnVtYmVyO1xuICAgIHByaXZhdGUgX3llYXI6IG51bWJlcjtcblxuICAgIHB1YmxpYyBnZXQgZGF0ZSgpOiBEYXRlIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudCgpLmRheSgxKS5tb250aCh0aGlzLm1vbnRoKS55ZWFyKHRoaXMueWVhcikuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbW9udGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgeWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5feWVhcjtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihtb250aD86IG51bWJlciwgeWVhcj86IG51bWJlcikge1xuICAgICAgICB0aGlzLl9tb250aCA9IG1vbnRoO1xuICAgICAgICB0aGlzLl95ZWFyID0geWVhcjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb250aFBpY2tlck1vZGVsIHtcbiAgICBzZWxlY3RlZFllYXJNb21lbnQ6IG1vbWVudC5Nb21lbnQ7XG4gICAgc2VsZWN0ZWRZZWFyVGV4dDogc3RyaW5nO1xuXG4gICAgc2VsZWN0ZWRNb250aE1vbWVudDogbW9tZW50Lk1vbWVudDtcbiAgICBzZWxlY3RlZE1vbnRoSW5kZXg6IG51bWJlcjtcbiAgICBzZWxlY3RlZE1vbnRoWWVhcjogbnVtYmVyO1xuXG4gICAgbW9udGhzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFllYXJNb21lbnQgPSBtb21lbnQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVZZWFyVGV4dCgpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aE1vbWVudCA9IG1vbWVudCgpO1xuXG4gICAgICAgIHRoaXMubW9udGhzID0gWydKYW4uJywgJ0Zldi4nLCAnTWFyLicsICdBYnIuJywgJ01haS4nLCAnSnVuLicsICdKdWwuJywgJ0Fnby4nLCAnU2V0LicsICdPdXQuJywgJ05vdi4nLCAnRGV6LiddO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aEluZGV4ID0gdGhpcy5zZWxlY3RlZE1vbnRoTW9tZW50Lm1vbnRoKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aFllYXIgPSB0aGlzLnNlbGVjdGVkWWVhck1vbWVudC55ZWFyKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlWWVhclRleHQoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRZZWFyVGV4dCA9ICFPYmplY3RVdGlsLmlzTnVsbChtb21lbnQpID8gbW9tZW50KHRoaXMuc2VsZWN0ZWRZZWFyTW9tZW50KS5mb3JtYXQoJ1lZWVknKSA6ICcnO1xuICAgIH1cblxuICAgIHNlbGVjdE1vbnRoKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoTW9tZW50ID0gbW9tZW50KCkubW9udGgoaW5kZXgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGhJbmRleCA9IHRoaXMuc2VsZWN0ZWRNb250aE1vbWVudC5tb250aCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGhZZWFyID0gdGhpcy5zZWxlY3RlZFllYXJNb21lbnQueWVhcigpO1xuICAgIH1cblxuICAgIGluY3JlbWVudFllYXIoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRZZWFyTW9tZW50ID0gdGhpcy5zZWxlY3RlZFllYXJNb21lbnQuYWRkKDEsIFwieWVhclwiKVxuICAgICAgICB0aGlzLnVwZGF0ZVllYXJUZXh0KCk7XG4gICAgfVxuXG4gICAgZGVjcmVtZW50WWVhcigpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFllYXJNb21lbnQgPSB0aGlzLnNlbGVjdGVkWWVhck1vbWVudC5zdWJ0cmFjdCgxLCBcInllYXJcIilcbiAgICAgICAgdGhpcy51cGRhdGVZZWFyVGV4dCgpO1xuICAgIH1cbn1cblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2lwaS1tb250aC15ZWFyLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vbnRoLXllYXItcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tb250aC15ZWFyLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpOiB0eXBlb2YgTW9udGhZZWFyUGlja2VyQ29tcG9uZW50ID0+IE1vbnRoWWVhclBpY2tlckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnZ2lwaS1tb250aC15ZWFyLXBpY2tlcicsXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTW9udGhZZWFyUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRNb250aFllYXJDb250ZW50JywgeyBzdGF0aWM6IGZhbHNlLCB9KSBpbnB1dE1vbnRoWWVhckNvbnRlbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgICBwcml2YXRlIF9uYW1lOiBzdHJpbmcgPSBgZ2lwaS1kYXRlLXJhbmdlLSR7bmV4dFVuaXF1ZUlkKyt9YDtcblxuICAgIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5OiAoKSA9PiBTY3JvbGxTdHJhdGVneTtcblxuICAgIHByaXZhdGUgX3BvcHVwUmVmOiBPdmVybGF5UmVmIHwgbnVsbDtcbiAgICBwcml2YXRlIF9wb3B1cENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPENhbGVuZGFyTW9udGhZZWFyQ29tcG9uZW50PiB8IG51bGw7XG4gICAgcHJpdmF0ZSBfZm9jdXNlZEVsZW1lbnRCZWZvcmVPcGVuOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2JhY2tkcm9wSGFybmVzc0NsYXNzID0gYCR7dGhpcy5fbmFtZX0tYmFja2Ryb3BgO1xuXG4gICAgcmVhZG9ubHkgX3N0YXRlQ2hhbmdlczogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwdWJsaWMgdmFsdWVMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICBwdWJsaWMgbW9kZWw6IE1vbnRoUGlja2VyTW9kZWw7XG5cbiAgICBASW5wdXQoKSBpZDogc3RyaW5nID0gYCR7dGhpcy5fbmFtZX0tZGF0ZWA7XG5cbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSBgJHt0aGlzLl9uYW1lfS1kYXRlYDtcblxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuICAgIEBJbnB1dCgpIGhlbHA6IHN0cmluZyA9ICcnO1xuXG4gICAgQElucHV0KCkgbG9jYWxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgeWVhcjogbnVtYmVyO1xuICAgIEBJbnB1dCgpIG1vbnRoOiBudW1iZXI7XG5cbiAgICAvLyBASW5wdXQoKSBlbmFibGVkTW9udGhzOiBBcnJheTxudW1iZXI+ID0gW107XG4gICAgLy8gQElucHV0KCkgZGlzYWJsZWRNb250aHM6IEFycmF5PG51bWJlcj4gPSBbXTtcblxuICAgIC8vIEBJbnB1dCgpIGVuYWJsZWRZZWFyczogQXJyYXk8bnVtYmVyPiA9IFtdO1xuICAgIC8vIEBJbnB1dCgpIGRpc2FibGVkWWVhcnM6IEFycmF5PG51bWJlcj4gPSBbXTtcblxuICAgIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgeFBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgPSAnc3RhcnQnO1xuXG4gICAgQElucHV0KCkgeVBvc2l0aW9uOiAnYWJvdmUnIHwgJ2JlbG93JyA9ICdiZWxvdyc7XG5cbiAgICBASW5wdXQoKSBjYWxlbmRhclZpZXc6ICdib3RoJyB8ICd5ZWFyJyA9ICdib3RoJztcblxuICAgIHByaXZhdGUgX29wZW5lZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGdldCBvcGVuZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcGVuZWQ7XG4gICAgfVxuICAgIHNldCBvcGVuZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKSA/IHRoaXMub3BlbigpIDogdGhpcy5jbG9zZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gICAgfVxuICAgIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9taW46IE1vbnRoWWVhciA9IG51bGw7XG4gICAgQElucHV0KCkgZ2V0IG1pbigpOiBNb250aFllYXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWluO1xuICAgIH1cbiAgICBzZXQgbWluKHZhbHVlOiBNb250aFllYXIpIHtcbiAgICAgICAgdGhpcy5fbWluID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbWF4OiBNb250aFllYXIgPSBudWxsO1xuICAgIEBJbnB1dCgpIGdldCBtYXgoKTogTW9udGhZZWFyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heDtcbiAgICB9XG4gICAgc2V0IG1heCh2YWx1ZTogTW9udGhZZWFyKSB7XG4gICAgICAgIHRoaXMuX21heCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ZhbHVlOiBNb250aFllYXI7XG4gICAgQElucHV0KCkgZ2V0IHZhbHVlKCk6IE1vbnRoWWVhciB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG4gICAgc2V0IHZhbHVlKHZhbHVlOiBNb250aFllYXIpIHtcbiAgICAgICAgbGV0IHZhbHVlQXV4OiBNb250aFllYXIgPSB2YWx1ZTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWVBdXggPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZUF1eCkge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmNhbGVuZGFyVmlldykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JvdGgnOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVMYWJlbCA9IG1vbWVudCh2YWx1ZUF1eC5kYXRlKS5mb3JtYXQoJ01NL1lZWVknKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ3llYXInOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVMYWJlbCA9IG1vbWVudCh2YWx1ZUF1eC5kYXRlKS5mb3JtYXQoJ1lZWVknKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZUxhYmVsID0gbW9tZW50KHZhbHVlQXV4LmRhdGUpLmZvcm1hdCgnTU0vWVlZWScpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlQXV4O1xuXG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5fdmFsdWUpO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgnb3BlbmVkJykgb3BlbmVkU3RyZWFtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgnY2xvc2VkJykgY2xvc2VkU3RyZWFtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBvbkNoYW5nZTogRnVuY3Rpb24gPSAoKSA9PiB7IH07XG5cbiAgICBvblRvdWNoZWQ6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBASW5qZWN0KEdJUElfTU9OVEhfWUVBUl9TQ1JPTExfU1RSQVRFR1kpIHNjcm9sbFN0cmF0ZWd5OiBhbnksXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2RpcjogRGlyZWN0aW9uYWxpdHksXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBhbnksXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX3Njcm9sbFN0cmF0ZWd5ID0gc2Nyb2xsU3RyYXRlZ3k7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kZWwgPSBuZXcgTW9udGhQaWNrZXJNb2RlbCgpO1xuXG4gICAgICAgIGlmICh0aGlzLnllYXIpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuc2VsZWN0ZWRZZWFyTW9tZW50ID0gbW9tZW50KCkueWVhcih0aGlzLnllYXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9udGgpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuc2VsZWN0ZWRNb250aEluZGV4ID0gdGhpcy5tb250aDtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuc2VsZWN0ZWRNb250aE1vbWVudCA9IG1vbWVudCgpLm1vbnRoKHRoaXMubW9udGgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy55ZWFyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5zZWxlY3RlZE1vbnRoWWVhciA9IHRoaXMueWVhcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubW9kZWwudXBkYXRlWWVhclRleHQoKTtcbiAgICAgICAgaWYgKE9iamVjdFV0aWwuaXNOdWxsKHRoaXMubW9udGgpICYmIE9iamVjdFV0aWwuaXNOdWxsKHRoaXMueWVhcikpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlKHRoaXMubW9kZWwuc2VsZWN0ZWRNb250aEluZGV4LCB0aGlzLm1vZGVsLnNlbGVjdGVkTW9udGhZZWFyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb25DaGFuZ2UgPSBjaGFuZ2VzWyd4UG9zaXRpb24nXSB8fCBjaGFuZ2VzWyd5UG9zaXRpb24nXTtcblxuICAgICAgICBpZiAocG9zaXRpb25DaGFuZ2UgJiYgIXBvc2l0aW9uQ2hhbmdlLmZpcnN0Q2hhbmdlICYmIHRoaXMuX3BvcHVwUmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRDb25uZWN0ZWRQb3NpdGlvbnModGhpcy5fcG9wdXBSZWYuZ2V0Q29uZmlnKCkucG9zaXRpb25TdHJhdGVneSBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5vcGVuZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cFJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveVBvcHVwKCk7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5fc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogTW9udGhZZWFyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25WYWx1ZUNoYW5nZShtb250aDogbnVtYmVyLCB5ZWFyOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbW9udGhZZWFyOiBNb250aFllYXIgPSBuZXcgTW9udGhZZWFyKG1vbnRoLCB5ZWFyKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IG1vbnRoWWVhcjtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fb3BlbmVkIHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuaW5wdXRNb250aFllYXJDb250ZW50UmVmKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignQXR0ZW1wdGVkIHRvIG9wZW4gYW4gTW9udGhZZWFyUGlja2VyIHdpdGggbm8gYXNzb2NpYXRlZCBpbnB1dC4nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fZG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzZWRFbGVtZW50QmVmb3JlT3BlbiA9IHRoaXMuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9vcGVuQXNQb3B1cCgpO1xuICAgICAgICB0aGlzLl9vcGVuZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wZW5lZFN0cmVhbS5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX29wZW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9wb3B1cENvbXBvbmVudFJlZiAmJiB0aGlzLl9wb3B1cFJlZikge1xuICAgICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLl9wb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgICAgICAgIGluc3RhbmNlLl9zdGFydEV4aXRBbmltYXRpb24oKTtcbiAgICAgICAgICAgIGluc3RhbmNlLl9hbmltYXRpb25Eb25lLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2Rlc3Ryb3lQb3B1cCgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbXBsZXRlQ2xvc2UgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fb3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZWRTdHJlYW0uZW1pdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzZWRFbGVtZW50QmVmb3JlT3BlbiA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRoaXMuX2ZvY3VzZWRFbGVtZW50QmVmb3JlT3BlbiAmJlxuICAgICAgICAgICAgdHlwZW9mIHRoaXMuX2ZvY3VzZWRFbGVtZW50QmVmb3JlT3Blbi5mb2N1cyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNlZEVsZW1lbnRCZWZvcmVPcGVuLmZvY3VzKCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNvbXBsZXRlQ2xvc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29tcGxldGVDbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb3BlbkFzUG9wdXAoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPENhbGVuZGFyTW9udGhZZWFyQ29tcG9uZW50PiA9IG5ldyBDb21wb25lbnRQb3J0YWw8Q2FsZW5kYXJNb250aFllYXJDb21wb25lbnQ+KENhbGVuZGFyTW9udGhZZWFyQ29tcG9uZW50LCB0aGlzLl92aWV3Q29udGFpbmVyUmVmKTtcblxuICAgICAgICB0aGlzLl9kZXN0cm95UG9wdXAoKTtcbiAgICAgICAgdGhpcy5fY3JlYXRlUG9wdXAoKTtcbiAgICAgICAgdGhpcy5fcG9wdXBDb21wb25lbnRSZWYgPSB0aGlzLl9wb3B1cFJlZiEuYXR0YWNoKHBvcnRhbCk7XG4gICAgICAgIHRoaXMuX3BvcHVwQ29tcG9uZW50UmVmLmluc3RhbmNlLm1vbnRoWWVhclBpY2tlciA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwUmVmIS51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dE1vbnRoWWVhckNvbnRlbnRSZWYgPyB0aGlzLmlucHV0TW9udGhZZWFyQ29udGVudFJlZiA6IHRoaXMuZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVQb3B1cCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5fZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpKVxuICAgICAgICAgICAgLndpdGhUcmFuc2Zvcm1PcmlnaW5PbignLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQnKVxuICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoZmFsc2UpXG4gICAgICAgICAgICAud2l0aFZpZXdwb3J0TWFyZ2luKDgpXG4gICAgICAgICAgICAud2l0aExvY2tlZFBvc2l0aW9uKCk7XG5cbiAgICAgICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX3NldENvbm5lY3RlZFBvc2l0aW9ucyhwb3NpdGlvblN0cmF0ZWd5KSxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogWydtYXQtb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsIHRoaXMuX2JhY2tkcm9wSGFybmVzc0NsYXNzXSxcbiAgICAgICAgICAgIGRpcmVjdGlvbjogdGhpcy5fZGlyIHx8ICdsdHInLFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX3Njcm9sbFN0cmF0ZWd5KCksXG4gICAgICAgICAgICBwYW5lbENsYXNzOiAnbWF0LW1vbnRoLXllYXItcGlja2VyLXBvcHVwJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fcG9wdXBSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgICAgICAgdGhpcy5fcG9wdXBSZWYub3ZlcmxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCdyb2xlJywgJ2RpYWxvZycpO1xuXG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgdGhpcy5fcG9wdXBSZWYuYmFja2Ryb3BDbGljaygpLFxuICAgICAgICAgICAgdGhpcy5fcG9wdXBSZWYuZGV0YWNobWVudHMoKSxcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwUmVmLmtleWRvd25FdmVudHMoKS5waXBlKGZpbHRlcihldmVudCA9PiBldmVudC5rZXlDb2RlID09PSBFU0NBUEUgfHwgKHRoaXMuaW5wdXRNb250aFllYXJDb250ZW50UmVmICYmIGV2ZW50LmFsdEtleSAmJiBldmVudC5rZXlDb2RlID09PSBVUF9BUlJPVykpKVxuICAgICAgICApLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rlc3Ryb3lQb3B1cCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3BvcHVwUmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9wb3B1cFJlZi5kaXNwb3NlKCk7XG4gICAgICAgICAgICB0aGlzLl9wb3B1cFJlZiA9IHRoaXMuX3BvcHVwQ29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldENvbm5lY3RlZFBvc2l0aW9ucyhzdHJhdGVneTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5KSB7XG4gICAgICAgIGNvbnN0IHByaW1hcnlYID0gdGhpcy54UG9zaXRpb24gPT09ICdlbmQnID8gJ2VuZCcgOiAnc3RhcnQnO1xuICAgICAgICBjb25zdCBzZWNvbmRhcnlYID0gcHJpbWFyeVggPT09ICdzdGFydCcgPyAnZW5kJyA6ICdzdGFydCc7XG4gICAgICAgIGNvbnN0IHByaW1hcnlZID0gdGhpcy55UG9zaXRpb24gPT09ICdhYm92ZScgPyAnYm90dG9tJyA6ICd0b3AnO1xuICAgICAgICBjb25zdCBzZWNvbmRhcnlZID0gcHJpbWFyeVkgPT09ICd0b3AnID8gJ2JvdHRvbScgOiAndG9wJztcblxuICAgICAgICByZXR1cm4gc3RyYXRlZ3kud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3JpZ2luWDogcHJpbWFyeVgsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogc2Vjb25kYXJ5WSxcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogcHJpbWFyeVgsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6IHByaW1hcnlZXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6IHByaW1hcnlYLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6IHByaW1hcnlZLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiBwcmltYXJ5WCxcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogc2Vjb25kYXJ5WVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5YOiBzZWNvbmRhcnlYLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6IHNlY29uZGFyeVksXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6IHNlY29uZGFyeVgsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6IHByaW1hcnlZXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6IHNlY29uZGFyeVgsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogcHJpbWFyeVksXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6IHNlY29uZGFyeVgsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6IHNlY29uZGFyeVlcbiAgICAgICAgICAgIH1cbiAgICAgICAgXSk7XG4gICAgfVxuXG59XG4iXX0=
|
@@ -8,6 +8,7 @@ var GIPINotificationComponent = /** @class */ (function () {
|
|
8
8
|
this.iconHeight = 24;
|
9
9
|
this.icon = null;
|
10
10
|
this.svgIcon = null;
|
11
|
+
this.notification = false;
|
11
12
|
this.onShowOverlay = new EventEmitter();
|
12
13
|
this.onClick = new EventEmitter();
|
13
14
|
this.onFocus = new EventEmitter();
|
@@ -64,6 +65,10 @@ var GIPINotificationComponent = /** @class */ (function () {
|
|
64
65
|
Input(),
|
65
66
|
__metadata("design:type", String)
|
66
67
|
], GIPINotificationComponent.prototype, "tooltip", void 0);
|
68
|
+
__decorate([
|
69
|
+
Input(),
|
70
|
+
__metadata("design:type", Boolean)
|
71
|
+
], GIPINotificationComponent.prototype, "notification", void 0);
|
67
72
|
__decorate([
|
68
73
|
Output(),
|
69
74
|
__metadata("design:type", EventEmitter)
|
@@ -84,7 +89,7 @@ var GIPINotificationComponent = /** @class */ (function () {
|
|
84
89
|
Component({
|
85
90
|
selector: "gipi-notification",
|
86
91
|
exportAs: 'gipiNotification',
|
87
|
-
template: "<gipi-button gipi-icon\n [id]=\"id\"\n [name]=\"name\"\n [ariaLabel]=\"ariaLabel\"\n [buttonPadding]=\"buttonPadding\"\n [iconWidth]=\"iconWidth\"\n [iconHeight]=\"iconHeight\"\n [icon]=\"icon\"\n [svgIcon]=\"svgIcon\"\n [disabled]=\"disabled\"\n [loading]=\"loading\"\n [tooltip]=\"tooltip\"\n [popover]=\"true\"\n [overlay]=\"false\"\n (onShowOverlay)=\"onShowOverlay.emit()\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"onFocus.emit($event)\"\n (blur)=\"onBlur.emit($event)\">\n <
|
92
|
+
template: "<gipi-button gipi-icon\n [id]=\"id\"\n [name]=\"name\"\n [ariaLabel]=\"ariaLabel\"\n [buttonPadding]=\"buttonPadding\"\n [iconWidth]=\"iconWidth\"\n [iconHeight]=\"iconHeight\"\n [icon]=\"icon\"\n [svgIcon]=\"svgIcon\"\n [disabled]=\"disabled\"\n [loading]=\"loading\"\n [tooltip]=\"tooltip\"\n [popover]=\"true\"\n [overlay]=\"false\"\n [notification]=\"notification\"\n (onShowOverlay)=\"onShowOverlay.emit()\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"onFocus.emit($event)\"\n (blur)=\"onBlur.emit($event)\">\n <ng-content> </ng-content>\n</gipi-button>\n",
|
88
93
|
providers: [
|
89
94
|
{
|
90
95
|
provide: NG_VALUE_ACCESSOR,
|
@@ -96,11 +101,11 @@ var GIPINotificationComponent = /** @class */ (function () {
|
|
96
101
|
'class': 'gipi-notification',
|
97
102
|
},
|
98
103
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
99
|
-
styles: [".button-only-icon{padding:4px!important}.button-only-icon .button-content>mat-icon{width:24px!important;height:24px!important}
|
104
|
+
styles: [".button-only-icon{padding:4px!important}.button-only-icon .button-content>mat-icon{width:24px!important;height:24px!important}"]
|
100
105
|
}),
|
101
106
|
__metadata("design:paramtypes", [])
|
102
107
|
], GIPINotificationComponent);
|
103
108
|
return GIPINotificationComponent;
|
104
109
|
}());
|
105
110
|
export { GIPINotificationComponent };
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBbUJuRDtJQWdDSTtRQXRCUyxrQkFBYSxHQUFvQixDQUFDLENBQUM7UUFFbkMsY0FBUyxHQUFvQixFQUFFLENBQUM7UUFDaEMsZUFBVSxHQUFvQixFQUFFLENBQUM7UUFFakMsU0FBSSxHQUFXLElBQUksQ0FBQztRQUVwQixZQUFPLEdBQVcsSUFBSSxDQUFDO1FBUXZCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTdCLGtCQUFhLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdEQsWUFBTyxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBQ25FLFlBQU8sR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUNwRSxXQUFNLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7SUFFbEUsQ0FBQztrQ0FoQ1IseUJBQXlCO0lBa0NsQyw0Q0FBUSxHQUFSLGNBQW1CLENBQUM7O0lBaENYO1FBQVIsS0FBSyxFQUFFOzt5REFBWTtJQUVYO1FBQVIsS0FBSyxFQUFFOzsyREFBYztJQUViO1FBQVIsS0FBSyxFQUFFOztnRUFBbUI7SUFFbEI7UUFBUixLQUFLLEVBQUU7OzREQUFlO0lBRWQ7UUFBUixLQUFLLEVBQUU7O29FQUFvQztJQUVuQztRQUFSLEtBQUssRUFBRTs7Z0VBQWlDO0lBQ2hDO1FBQVIsS0FBSyxFQUFFOztpRUFBa0M7SUFFakM7UUFBUixLQUFLLEVBQUU7OzJEQUFxQjtJQUVwQjtRQUFSLEtBQUssRUFBRTs7OERBQXdCO0lBRXZCO1FBQVIsS0FBSyxFQUFFOzsrREFBa0I7SUFFakI7UUFBUixLQUFLLEVBQUU7OzhEQUFpQjtJQUVoQjtRQUFSLEtBQUssRUFBRTs7OERBQWlCO0lBRWhCO1FBQVIsS0FBSyxFQUFFOzttRUFBK0I7SUFFN0I7UUFBVCxNQUFNLEVBQUU7a0NBQWdCLFlBQVk7b0VBQWtDO0lBQ3REO1FBQWhCLE1BQU0sQ0FBQyxPQUFPLENBQUM7a0NBQVUsWUFBWTs4REFBOEM7SUFDbkU7UUFBaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQztrQ0FBVSxZQUFZOzhEQUE4QztJQUNwRTtRQUFmLE1BQU0sQ0FBQyxNQUFNLENBQUM7a0NBQVMsWUFBWTs2REFBOEM7SUE5QnpFLHlCQUF5QjtRQWpCckMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLG1CQUFtQjtZQUM3QixRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLDB4QkFBNEM7WUFFNUMsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBd0MsT0FBQSwyQkFBeUIsRUFBekIsQ0FBeUIsQ0FBQztvQkFDMUYsS0FBSyxFQUFFLElBQUk7aUJBQ2Q7YUFDSjtZQUNELElBQUksRUFBRTtnQkFDRixPQUFPLEVBQUUsbUJBQW1CO2FBQy9CO1lBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O1NBQ2xELENBQUM7O09BQ1cseUJBQXlCLENBb0NyQztJQUFELGdDQUFDO0NBQUEsQUFwQ0QsSUFvQ0M7U0FwQ1kseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYGdpcGktbm90aWZpY2F0aW9uYCxcbiAgICBleHBvcnRBczogJ2dpcGlOb3RpZmljYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpOiB0eXBlb2YgR0lQSU5vdGlmaWNhdGlvbkNvbXBvbmVudCA9PiBHSVBJTm90aWZpY2F0aW9uQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dpcGktbm90aWZpY2F0aW9uJyxcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEdJUElOb3RpZmljYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGJ1dHRvblBhZGRpbmc6IG51bWJlciB8IHN0cmluZyA9IDQ7XG5cbiAgICBASW5wdXQoKSBpY29uV2lkdGg6IG51bWJlciB8IHN0cmluZyA9IDI0O1xuICAgIEBJbnB1dCgpIGljb25IZWlnaHQ6IG51bWJlciB8IHN0cmluZyA9IDI0O1xuXG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIHN2Z0ljb246IHN0cmluZyA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBkaXNhYmxlZDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgbG9hZGluZzogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgdG9vbHRpcDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgbm90aWZpY2F0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgb25TaG93T3ZlcmxheTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoJ2NsaWNrJykgb25DbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuICAgIEBPdXRwdXQoJ2ZvY3VzJykgb25Gb2N1czogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuICAgIEBPdXRwdXQoJ2JsdXInKSBvbkJsdXI6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHsgfVxuXG59XG4iXX0=
|
@@ -21,8 +21,12 @@ var GIPISidenavComponent = /** @class */ (function () {
|
|
21
21
|
this._mouseEnter = false;
|
22
22
|
this.menuItems = [];
|
23
23
|
this.labelToggle = 'Retrair menu';
|
24
|
+
this.showTagNewIntegration = false;
|
25
|
+
this.showIntegration = false;
|
24
26
|
this.showConfiguration = false;
|
25
27
|
this.onClickMenuItem = new EventEmitter();
|
28
|
+
this.onClickMenuIntegration = new EventEmitter();
|
29
|
+
this.onClickMenuConfiguration = new EventEmitter();
|
26
30
|
}
|
27
31
|
GIPISidenavComponent_1 = GIPISidenavComponent;
|
28
32
|
GIPISidenavComponent.prototype.ngOnInit = function () { };
|
@@ -212,6 +216,26 @@ var GIPISidenavComponent = /** @class */ (function () {
|
|
212
216
|
Input(),
|
213
217
|
__metadata("design:type", String)
|
214
218
|
], GIPISidenavComponent.prototype, "labelToggle", void 0);
|
219
|
+
__decorate([
|
220
|
+
Input(),
|
221
|
+
__metadata("design:type", Boolean)
|
222
|
+
], GIPISidenavComponent.prototype, "showTagNewIntegration", void 0);
|
223
|
+
__decorate([
|
224
|
+
Input(),
|
225
|
+
__metadata("design:type", String)
|
226
|
+
], GIPISidenavComponent.prototype, "iconIntegration", void 0);
|
227
|
+
__decorate([
|
228
|
+
Input(),
|
229
|
+
__metadata("design:type", String)
|
230
|
+
], GIPISidenavComponent.prototype, "svgIconIntegration", void 0);
|
231
|
+
__decorate([
|
232
|
+
Input(),
|
233
|
+
__metadata("design:type", String)
|
234
|
+
], GIPISidenavComponent.prototype, "labelIntegration", void 0);
|
235
|
+
__decorate([
|
236
|
+
Input(),
|
237
|
+
__metadata("design:type", Boolean)
|
238
|
+
], GIPISidenavComponent.prototype, "showIntegration", void 0);
|
215
239
|
__decorate([
|
216
240
|
Input(),
|
217
241
|
__metadata("design:type", String)
|
@@ -232,11 +256,19 @@ var GIPISidenavComponent = /** @class */ (function () {
|
|
232
256
|
Output(),
|
233
257
|
__metadata("design:type", EventEmitter)
|
234
258
|
], GIPISidenavComponent.prototype, "onClickMenuItem", void 0);
|
259
|
+
__decorate([
|
260
|
+
Output(),
|
261
|
+
__metadata("design:type", EventEmitter)
|
262
|
+
], GIPISidenavComponent.prototype, "onClickMenuIntegration", void 0);
|
263
|
+
__decorate([
|
264
|
+
Output(),
|
265
|
+
__metadata("design:type", EventEmitter)
|
266
|
+
], GIPISidenavComponent.prototype, "onClickMenuConfiguration", void 0);
|
235
267
|
GIPISidenavComponent = GIPISidenavComponent_1 = __decorate([
|
236
268
|
Component({
|
237
269
|
selector: "gipi-sidenav",
|
238
270
|
exportAs: 'gipiSidenav',
|
239
|
-
template: "<mat-sidenav #sidenav\n [mode]=\"(isScreenLarge | async) ? 'side' : 'over'\"\n class=\"sidenav\"\n [class.large-sidenav]=\"(isOpened | async)\"\n [class.small-sidenav]=\"!(isOpened | async)\"\n [disableClose]=\"(isScreenLarge | async)\"\n opened=\"true\">\n\n <div [ngClass]=\"{'sidenav-content-menu': true,\n 'show-
|
271
|
+
template: "<mat-sidenav #sidenav\n [mode]=\"(isScreenLarge | async) ? 'side' : 'over'\"\n class=\"sidenav\"\n [class.large-sidenav]=\"(isOpened | async)\"\n [class.small-sidenav]=\"!(isOpened | async)\"\n [disableClose]=\"(isScreenLarge | async)\"\n opened=\"true\">\n\n <div [ngClass]=\"{'sidenav-content-menu': true,\n 'show-bottom': (showConfiguration || showIntegration)}\">\n\n <!-- Bot\u00E3o expandir e retrair o menu -->\n <button id=\"buttonToogleSidenav\"\n name=\"toggleSidenav\"\n class=\"toggle-sidenav\"\n (click)=\"toggleSidenav(); _mouseEnter = false;\">\n <mat-icon [@indicatorRotate]=\"(isOpened | async) ? 'opened': 'closed'\">\n chevron_right\n </mat-icon>\n\n {{ ((labelToggle) && (isOpened | async)) ? labelToggle : '' }}\n </button>\n\n <!-- Bot\u00E3o voltar do submenu -->\n <div class=\"sidenav-action-menu sidenav-menu-collapsable\">\n <a *ngIf=\"(isOpened | async) && (_levelOneMenuCollapsableSelected || _levelTwoMenuCollapsableSelected)\"\n (click)=\"onMenuCollapsableGoBack()\"\n (mouseenter)=\"!_mouseEnter && onMouseEnter()\"\n (mouseleave)=\"_mouseEnter && onMouseLeave()\">\n <mat-icon>\n arrow_back\n </mat-icon>\n <span>\n {{ (submenuBackButtonName | async) }}\n </span>\n </a>\n </div>\n\n <!-- Se o menu item for do tipo submenu -->\n <mat-nav-list class=\"sidenav-menu-list\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\">\n <div *ngFor=\"let menu of (levelMenuCollapsableSelected | async)\"\n class=\"sidenav-action-menu\">\n\n <a *ngIf=\"menu.type === 'ITEM'\"\n [routerLink]=\"menu.route\"\n [class.menu-active]=\"isMenuActive(menu)\"\n (click)=\"onMenuItemSelected(menu)\">\n <mat-icon *ngIf=\"menu.icon\">\n {{ menu.icon }}\n </mat-icon>\n <mat-icon *ngIf=\"menu.svgIcon\"\n [svgIcon]=\"menu.svgIcon\">\n </mat-icon>\n <span *ngIf=\"(isOpened | async)\">\n {{ getMenuName(menu.name) }}\n </span>\n </a>\n\n <a *ngIf=\"menu.type === 'COLLAPSABLE'\"\n [class.menu-active]=\"isMenuCollapsableActive(menu)\"\n (click)=\"onMenuCollapsableSelected(menu); onMenuItemSelected(menu, false)\">\n <mat-icon *ngIf=\"menu.icon\">\n {{ menu.icon }}\n </mat-icon>\n <mat-icon *ngIf=\"menu.svgIcon\"\n [svgIcon]=\"menu.svgIcon\">\n </mat-icon>\n <span *ngIf=\"(isOpened | async)\">\n {{ getMenuName(menu.name) }}\n </span>\n <mat-icon *ngIf=\"(isOpened | async)\">\n chevron_right\n </mat-icon>\n </a>\n\n </div>\n </mat-nav-list>\n </div>\n\n <div class=\"sidenav-action-menu sidenav-bottom-menu\">\n <a *ngIf=\"showIntegration\"\n (click)=\"onMenuItemSelected(null); onClickMenuIntegration.emit()\">\n <mat-icon *ngIf=\"iconIntegration\">\n {{ iconIntegration }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIconIntegration\"\n [svgIcon]=\"svgIconIntegration\">\n </mat-icon>\n <span *ngIf=\"(labelIntegration) && (isOpened | async)\">\n {{ labelIntegration }}\n </span>\n <div class=\"tag-new\"\n *ngIf=\"showTagNewIntegration\">\n Novo\n </div>\n </a>\n\n <a *ngIf=\"showConfiguration\"\n (click)=\"onMenuItemSelected(null); onClickMenuConfiguration.emit()\">\n <mat-icon *ngIf=\"iconConfiguration\">\n {{ iconConfiguration }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIconConfiguration\"\n [svgIcon]=\"svgIconConfiguration\">\n </mat-icon>\n <span *ngIf=\"(labelConfiguration) && (isOpened | async)\">\n {{ labelConfiguration }}\n </span>\n </a>\n </div>\n</mat-sidenav>\n",
|
240
272
|
encapsulation: ViewEncapsulation.None,
|
241
273
|
providers: [
|
242
274
|
{
|
@@ -255,7 +287,7 @@ var GIPISidenavComponent = /** @class */ (function () {
|
|
255
287
|
transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4,0.0,0.2,1)')),
|
256
288
|
])
|
257
289
|
],
|
258
|
-
styles: [".sidenav{padding:.8rem 1.2rem;border-radius:5px;background-color:#fff;position:fixed!important;top:66px!important;bottom:8px!important;border:0!important}.sidenav.small-sidenav{overflow-y:auto;width:76px}.sidenav.small-sidenav .sidenav-
|
290
|
+
styles: [".sidenav{padding:.8rem 1.2rem;border-radius:5px;background-color:#fff;position:fixed!important;top:66px!important;bottom:8px!important;border:0!important}.sidenav.small-sidenav{overflow-y:auto;width:76px}.sidenav.small-sidenav .sidenav-bottom-menu,.sidenav.small-sidenav .sidenav-content-menu .sidenav-menu-list .action-sidenav,.sidenav.small-sidenav .sidenav-content-menu .toggle-sidenav{text-align:center!important}.sidenav.large-sidenav{overflow-y:auto;width:248px}.sidenav .sidenav-content-menu{width:100%;background-color:#f5f5f6;border-radius:4px;display:flex;flex-direction:column;align-items:stretch;height:100%}.sidenav .sidenav-content-menu.show-bottom{height:calc(100% - 18px - 52px)!important}.sidenav .sidenav-content-menu .toggle-sidenav{all:unset;border-radius:4px;border:none;text-align:left;cursor:pointer;background-color:#e0313e;color:#fff;display:flex;align-items:center;gap:8px;padding:10px 16px}.sidenav .sidenav-content-menu .toggle-sidenav>mat-icon{width:2rem;height:2rem;font-size:2rem}.sidenav .sidenav-content-menu .toggle-sidenav:hover{background-color:#cc2d38}.sidenav .sidenav-content-menu .sidenav-menu-list{overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.sidenav .sidenav-content-menu .sidenav-menu-list::-webkit-scrollbar{display:none}.menu-active{color:#e0313e!important;background-color:#e0e1e2!important}.menu-active>mat-icon,.menu-active>mat-icon svg,.menu-active>mat-icon svg path{color:#e0313e!important;fill:#e0313e!important}.sidenav-action-menu{cursor:pointer;display:flex}.sidenav-action-menu.sidenav-bottom-menu{flex-direction:column;gap:1rem;margin-top:1rem}.sidenav-action-menu a{flex:1;padding:16px;background-color:#f5f5f6;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:1.4rem;font-weight:600}.sidenav-action-menu a:hover{background-color:#e0e1e2}.sidenav-action-menu a>span{flex:1;line-height:2rem}.sidenav-action-menu a>mat-icon{width:2rem;height:2rem;font-size:2rem;line-height:2rem;color:#595959;fill:#595959}.sidenav-action-menu a>mat-icon svg,.sidenav-action-menu a>mat-icon svg path{color:#595959;fill:#595959}.sidenav-bottom-menu a{border-radius:4px}.sidenav-menu-collapsable a{background-color:#e0e1e2}.sidenav-menu-collapsable a:hover{background-color:#d1d2d4}.mat-list-base{padding-top:0!important}.mat-drawer-inner-container{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;overflow:hidden!important}.mat-drawer:not(.mat-drawer-side){box-shadow:none!important}.tag-new{display:flex;align-items:center;justify-content:center;background-color:#e0313e;color:#fff;padding:.2rem .6rem;font-size:1rem;line-height:1.2rem;border-radius:.4rem}"]
|
259
291
|
}),
|
260
292
|
__metadata("design:paramtypes", [NavService,
|
261
293
|
BreakpointObserverService,
|
@@ -264,4 +296,4 @@ var GIPISidenavComponent = /** @class */ (function () {
|
|
264
296
|
return GIPISidenavComponent;
|
265
297
|
}());
|
266
298
|
export { GIPISidenavComponent };
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2lwaXNpc3RlbWFzL25nLWNvcmUvIiwic291cmNlcyI6WyJzaGFyZWQvZ2lwaS1jb21wb25lbnRzL3NpZGViYXIvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDbEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBMEJoRTtJQXVCSSw4QkFDWSxXQUF1QixFQUN2QiwwQkFBcUQsRUFDckQsT0FBZTtRQUZmLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLCtCQUEwQixHQUExQiwwQkFB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VTtZQUNLLHlCQUF5QjtZQUM1QyxNQUFNO09BMUJsQixvQkFBb0IsQ0FrTWhDO0lBQUQsMkJBQUM7Q0FBQSxBQWxNRCxJQWtNQztTQWxNWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE1lbnVEVE8gfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVscy9kdG8vbWVudS5kdG8nO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc2VydmljZXMvYnJlYWtwb2ludC1vYnNlcnZlci5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzL25hdi5zZXJ2aWNlJztcbmltcG9ydCB7IEFycmF5VXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvdXRpbHMvYXJyYXkudXRpbCc7XG5pbXBvcnQgeyBPYmplY3RVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS91dGlscy9vYmplY3QudXRpbCc7XG5pbXBvcnQgeyBTdHJpbmdVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS91dGlscy9zdHJpbmcudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgZ2lwaS1zaWRlbmF2YCxcbiAgICBleHBvcnRBczogJ2dpcGlTaWRlbmF2JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2lkZW5hdi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2lkZW5hdi5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCk6IHR5cGVvZiBHSVBJU2lkZW5hdkNvbXBvbmVudCA9PiBHSVBJU2lkZW5hdkNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdnaXBpLXNpZGVuYXYnLFxuICAgIH0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdpbmRpY2F0b3JSb3RhdGUnLCBbXG4gICAgICAgICAgICBzdGF0ZSgnY2xvc2VkJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdyb3RhdGUoMGRlZyknIH0pKSxcbiAgICAgICAgICAgIHN0YXRlKCdvcGVuZWQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3JvdGF0ZSgxODBkZWcpJyB9KSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdleHBhbmRlZCA8PT4gY29sbGFwc2VkJywgYW5pbWF0ZSgnMjI1bXMgY3ViaWMtYmV6aWVyKDAuNCwwLjAsMC4yLDEpJykpLFxuICAgICAgICBdKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgR0lQSVNpZGVuYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gICAgQFZpZXdDaGlsZCgnc2lkZW5hdicsIHsgc3RhdGljOiBmYWxzZSB9KSBzaWRlbmF2OiBNYXRTaWRlbmF2O1xuXG4gICAgcHVibGljIF9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkOiBNZW51RFRPID0gbnVsbDtcbiAgICBwdWJsaWMgX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQ6IE1lbnVEVE8gPSBudWxsO1xuXG4gICAgcHVibGljIF9tb3VzZUVudGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBtZW51SXRlbXM6IE1lbnVEVE9bXSA9IFtdO1xuXG4gICAgQElucHV0KCkgbGFiZWxUb2dnbGU6IHN0cmluZyA9ICdSZXRyYWlyIG1lbnUnO1xuXG4gICAgQElucHV0KCkgaWNvbkNvbmZpZ3VyYXRpb246IHN0cmluZztcblxuICAgIEBJbnB1dCgpIHN2Z0ljb25Db25maWd1cmF0aW9uOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBsYWJlbENvbmZpZ3VyYXRpb246IHN0cmluZztcblxuICAgIEBJbnB1dCgpIHNob3dDb25maWd1cmF0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgb25DbGlja01lbnVJdGVtOiBFdmVudEVtaXR0ZXI8TWVudURUTyB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxNZW51RFRPIHwgbnVsbD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9uYXZTZXJ2aWNlOiBOYXZTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9icmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlOiBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgICApIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbmF2U2VydmljZS5zaWRlbmF2ID0gdGhpcy5zaWRlbmF2O1xuICAgICAgICB0aGlzLl9uYXZTZXJ2aWNlLm1lbnVJdGVtcyA9IHRoaXMubWVudUl0ZW1zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNPcGVuZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiBvZih0aGlzLl9uYXZTZXJ2aWNlLmlzT3BlbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzU2NyZWVuTGFyZ2UoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9icmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLnNpemUkLnBpcGUoXG4gICAgICAgICAgICBtYXAoc2l6ZSA9PiAoc2l6ZSAhPT0gJ3hzJykgJiYgKHNpemUgIT09ICdzbScpICYmIChzaXplICE9PSAnbWQnKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHN1Ym1lbnVCYWNrQnV0dG9uTmFtZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBpZiAoT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCkgJiYgT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBvZignVm9sdGFyJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpICYmIE9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZC5uYW1lKTtcbiAgICAgICAgfSBlbHNlIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCkgJiYgIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoYCR7dGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZC5uYW1lfSAvICR7dGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZC5uYW1lfWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsZXZlbE1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKCk6IE9ic2VydmFibGU8TWVudURUT1tdPiB7XG4gICAgICAgIGlmIChPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSAmJiBPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMubWVudUl0ZW1zKTtcbiAgICAgICAgfSBlbHNlIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCkgJiYgT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkLm1lbnVMaXN0KTtcbiAgICAgICAgfSBlbHNlIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCkgJiYgIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZC5tZW51TGlzdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlU2lkZW5hdigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQgPSBudWxsO1xuICAgICAgICB0aGlzLm9uTWVudUNvbGxhcHNhYmxlUmVzZXQodGhpcy5tZW51SXRlbXMpO1xuXG4gICAgICAgIHRoaXMuX25hdlNlcnZpY2UudG9nZ2xlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQobWVudTogTWVudURUTyk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5fbmF2U2VydmljZS5pc09wZW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX25hdlNlcnZpY2Uub3BlbigpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5fbmF2U2VydmljZS5pc09wZW5lZCkge1xuICAgICAgICAgICAgICAgIG1lbnUuZXhwYW5kZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogU2UgbyBtZW51TGlzdCBlc3TDoSBjYXJyZWdhZG8gZSBvICh0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID09PSBudWxsKSBzaWduaWZpY2EgcXVlIHBvc3N1aSBtYWlzIG5pdmVpcywgcG9ydGFudG8gZXN0ZSDDqSBvIG5pdmVsIDEuXG4gICAgICAgICAgICAgICAgICogU2UgbyBtZW51TGlzdCBlc3TDoSBjYXJyZWdhZG8gZSBvICh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID09PSBudWxsKSBzaWduaWZpY2EgcXVlIGVzdGUgw6kgbyDDunRpbW8gbsOtdmVsLCBwb3J0YW50byBlc3RlIMOpIG8gbml2ZWwgMi5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAoIUFycmF5VXRpbC5pc0VtcHR5KG1lbnUubWVudUxpc3QpICYmIE9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQgPSBPYmplY3RVdGlsLmNsb25lKG1lbnUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIUFycmF5VXRpbC5pc0VtcHR5KG1lbnUubWVudUxpc3QpICYmIE9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQgPSBPYmplY3RVdGlsLmNsb25lKG1lbnUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTWVudUNvbGxhcHNhYmxlUmVzZXQobWVudUxpc3Q6IE1lbnVEVE9bXSk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBtZW51TGlzdFtpXS5leHBhbmRlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFBcnJheVV0aWwuaXNFbXB0eShtZW51TGlzdFtpXS5tZW51TGlzdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk1lbnVDb2xsYXBzYWJsZVJlc2V0KG1lbnVMaXN0W2ldLm1lbnVMaXN0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk1lbnVDb2xsYXBzYWJsZUdvQmFjaygpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZCA9IG51bGw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQgPSBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTWVudUNvbGxhcHNhYmxlUmVzZXQodGhpcy5tZW51SXRlbXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNNZW51QWN0aXZlKG1lbnU6IE1lbnVEVE8pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdXRlci51cmwuc3RhcnRzV2l0aChtZW51LnJvdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNNZW51Q29sbGFwc2FibGVBY3RpdmUobWVudTogTWVudURUTyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoU3RyaW5nVXRpbC5pc0VtcHR5KG1lbnUucm91dGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBleGlzdEluUm91dGU6IGJvb2xlYW4gPSB0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKG1lbnUucm91dGUpO1xuXG4gICAgICAgIGxldCBtZW51TGlzdDogTWVudURUT1tdID0gQXJyYXlVdGlsLmNsb25lKHRoaXMubWVudUl0ZW1zKTtcbiAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSAmJiBPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgbWVudUxpc3QgPSBBcnJheVV0aWwuY2xvbmUodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZC5tZW51TGlzdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICBtZW51TGlzdCA9IEFycmF5VXRpbC5jbG9uZSh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkLm1lbnVMaXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxldmVsWmVyb0FjdGl2ZTogTWVudURUTyA9IG1lbnVMaXN0XG4gICAgICAgICAgICAuZmlsdGVyKG1pID0+ICFBcnJheVV0aWwuaXNFbXB0eShtaS5tZW51TGlzdCkpXG4gICAgICAgICAgICAuZmluZChtaSA9PiAoKG1pLnJvdXRlID09PSBtZW51LnJvdXRlKSAmJiAobWkuaW5kZXggPT09IG1lbnUuaW5kZXgpICYmIChtaS50eXBlICYmIG1lbnUudHlwZSkpKTtcblxuICAgICAgICBpZiAoZXhpc3RJblJvdXRlICYmICFPYmplY3RVdGlsLmlzTnVsbChsZXZlbFplcm9BY3RpdmUpICYmICFBcnJheVV0aWwuaXNFbXB0eShsZXZlbFplcm9BY3RpdmUubWVudUxpc3QpKSB7XG4gICAgICAgICAgICBjb25zdCBsZXZlbE9uZUFjdGl2ZTogTWVudURUTyA9IGxldmVsWmVyb0FjdGl2ZS5tZW51TGlzdC5maW5kKG1pID0+IHRoaXMuX3JvdXRlci51cmwuaW5jbHVkZXMobWkucm91dGUpKTtcbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwobGV2ZWxPbmVBY3RpdmUpICYmICFBcnJheVV0aWwuaXNFbXB0eShsZXZlbE9uZUFjdGl2ZS5tZW51TGlzdCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsZXZlbFR3b0FjdGl2ZTogTWVudURUTyA9IGxldmVsT25lQWN0aXZlLm1lbnVMaXN0LmZpbmQobWkgPT4gdGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcyhtaS5yb3V0ZSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiAhT2JqZWN0VXRpbC5pc051bGwobGV2ZWxUd29BY3RpdmUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIU9iamVjdFV0aWwuaXNOdWxsKGxldmVsT25lQWN0aXZlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25NZW51SXRlbVNlbGVjdGVkKG1lbnU6IE1lbnVEVE8gPSBudWxsLCBjbG9zZU5hdjogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNsb3NlTmF2KSB7XG4gICAgICAgICAgICB0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQgPSBudWxsO1xuXG4gICAgICAgICAgICB0aGlzLm9uTWVudUNvbGxhcHNhYmxlUmVzZXQodGhpcy5tZW51SXRlbXMpO1xuXG4gICAgICAgICAgICB0aGlzLmlzU2NyZWVuTGFyZ2Uuc3Vic2NyaWJlKGlzU2NyZWVuTGFyZ2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghaXNTY3JlZW5MYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9uYXZTZXJ2aWNlLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uQ2xpY2tNZW51SXRlbS5lbWl0KG1lbnUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRNZW51TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKG5hbWUubGVuZ3RoIDw9IDM1KSA/IG5hbWUgOiAobmFtZS5zbGljZSgwLCAzNSkgKyAnLi4uJyk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc09wZW5lZC50b1Byb21pc2UoKS50aGVuKGlzT3BlbmVkID0+IHtcbiAgICAgICAgICAgIGlmICghaXNPcGVuZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb3VzZUVudGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZVNpZGVuYXYoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc09wZW5lZC50b1Byb21pc2UoKS50aGVuKGlzT3BlbmVkID0+IHtcbiAgICAgICAgICAgIGlmIChpc09wZW5lZCAmJiB0aGlzLl9tb3VzZUVudGVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW91c2VFbnRlciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlU2lkZW5hdigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxufVxuIl19
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2lwaXNpc3RlbWFzL25nLWNvcmUvIiwic291cmNlcyI6WyJzaGFyZWQvZ2lwaS1jb21wb25lbnRzL3NpZGViYXIvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDbEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBMEJoRTtJQTZCSSw4QkFDWSxXQUF1QixFQUN2QiwwQkFBcUQsRUFDckQsT0FBZTtRQUZmLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLCtCQUEwQixHQUExQiwwQkFB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QkFDaEYsS0FBSyxFQUFFLElBQUk7aUJBQ2Q7YUFDSjtZQUNELElBQUksRUFBRTtnQkFDRixPQUFPLEVBQUUsY0FBYzthQUMxQjtZQUNELFVBQVUsRUFBRTtnQkFDUixPQUFPLENBQUMsaUJBQWlCLEVBQUU7b0JBQ3ZCLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7b0JBQ3JELEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztvQkFDdkQsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO2lCQUNyRixDQUFDO2FBQ0w7O1NBQ0osQ0FBQzt5Q0ErQjJCLFVBQVU7WUFDSyx5QkFBeUI7WUFDNUMsTUFBTTtPQWhDbEIsb0JBQW9CLENBd01oQztJQUFELDJCQUFDO0NBQUEsQUF4TUQsSUF3TUM7U0F4TVksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFNpZGVuYXYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBNZW51RFRPIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbHMvZHRvL21lbnUuZHRvJztcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2JyZWFrcG9pbnQtb2JzZXJ2ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9uYXYuc2VydmljZSc7XG5pbXBvcnQgeyBBcnJheVV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3V0aWxzL2FycmF5LnV0aWwnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvdXRpbHMvb2JqZWN0LnV0aWwnO1xuaW1wb3J0IHsgU3RyaW5nVXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvdXRpbHMvc3RyaW5nLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYGdpcGktc2lkZW5hdmAsXG4gICAgZXhwb3J0QXM6ICdnaXBpU2lkZW5hdicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpZGVuYXYuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NpZGVuYXYuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpOiB0eXBlb2YgR0lQSVNpZGVuYXZDb21wb25lbnQgPT4gR0lQSVNpZGVuYXZDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnZ2lwaS1zaWRlbmF2JyxcbiAgICB9LFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignaW5kaWNhdG9yUm90YXRlJywgW1xuICAgICAgICAgICAgc3RhdGUoJ2Nsb3NlZCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlKDBkZWcpJyB9KSksXG4gICAgICAgICAgICBzdGF0ZSgnb3BlbmVkJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdyb3RhdGUoMTgwZGVnKScgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignZXhwYW5kZWQgPD0+IGNvbGxhcHNlZCcsIGFuaW1hdGUoJzIyNW1zIGN1YmljLWJlemllcigwLjQsMC4wLDAuMiwxKScpKSxcbiAgICAgICAgXSlcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEdJUElTaWRlbmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICAgIEBWaWV3Q2hpbGQoJ3NpZGVuYXYnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2lkZW5hdjogTWF0U2lkZW5hdjtcblxuICAgIHB1YmxpYyBfbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZDogTWVudURUTyA9IG51bGw7XG4gICAgcHVibGljIF9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkOiBNZW51RFRPID0gbnVsbDtcblxuICAgIHB1YmxpYyBfbW91c2VFbnRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgbWVudUl0ZW1zOiBNZW51RFRPW10gPSBbXTtcblxuICAgIEBJbnB1dCgpIGxhYmVsVG9nZ2xlOiBzdHJpbmcgPSAnUmV0cmFpciBtZW51JztcblxuICAgIEBJbnB1dCgpIHNob3dUYWdOZXdJbnRlZ3JhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgaWNvbkludGVncmF0aW9uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3ZnSWNvbkludGVncmF0aW9uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGFiZWxJbnRlZ3JhdGlvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNob3dJbnRlZ3JhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgaWNvbkNvbmZpZ3VyYXRpb246IHN0cmluZztcbiAgICBASW5wdXQoKSBzdmdJY29uQ29uZmlndXJhdGlvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxhYmVsQ29uZmlndXJhdGlvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNob3dDb25maWd1cmF0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgb25DbGlja01lbnVJdGVtOiBFdmVudEVtaXR0ZXI8TWVudURUTyB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxNZW51RFRPIHwgbnVsbD4oKTtcbiAgICBAT3V0cHV0KCkgb25DbGlja01lbnVJbnRlZ3JhdGlvbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBvbkNsaWNrTWVudUNvbmZpZ3VyYXRpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9uYXZTZXJ2aWNlOiBOYXZTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9icmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlOiBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgICApIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbmF2U2VydmljZS5zaWRlbmF2ID0gdGhpcy5zaWRlbmF2O1xuICAgICAgICB0aGlzLl9uYXZTZXJ2aWNlLm1lbnVJdGVtcyA9IHRoaXMubWVudUl0ZW1zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNPcGVuZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiBvZih0aGlzLl9uYXZTZXJ2aWNlLmlzT3BlbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzU2NyZWVuTGFyZ2UoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9icmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLnNpemUkLnBpcGUoXG4gICAgICAgICAgICBtYXAoc2l6ZSA9PiAoc2l6ZSAhPT0gJ3hzJykgJiYgKHNpemUgIT09ICdzbScpICYmIChzaXplICE9PSAnbWQnKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHN1Ym1lbnVCYWNrQnV0dG9uTmFtZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBpZiAoT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCkgJiYgT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBvZignVm9sdGFyJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpICYmIE9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZC5uYW1lKTtcbiAgICAgICAgfSBlbHNlIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCkgJiYgIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoYCR7dGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZC5uYW1lfSAvICR7dGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZC5uYW1lfWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsZXZlbE1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKCk6IE9ic2VydmFibGU8TWVudURUT1tdPiB7XG4gICAgICAgIGlmIChPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSAmJiBPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMubWVudUl0ZW1zKTtcbiAgICAgICAgfSBlbHNlIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCkgJiYgT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkLm1lbnVMaXN0KTtcbiAgICAgICAgfSBlbHNlIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCkgJiYgIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZC5tZW51TGlzdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlU2lkZW5hdigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQgPSBudWxsO1xuICAgICAgICB0aGlzLm9uTWVudUNvbGxhcHNhYmxlUmVzZXQodGhpcy5tZW51SXRlbXMpO1xuXG4gICAgICAgIHRoaXMuX25hdlNlcnZpY2UudG9nZ2xlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQobWVudTogTWVudURUTyk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5fbmF2U2VydmljZS5pc09wZW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX25hdlNlcnZpY2Uub3BlbigpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5fbmF2U2VydmljZS5pc09wZW5lZCkge1xuICAgICAgICAgICAgICAgIG1lbnUuZXhwYW5kZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogU2UgbyBtZW51TGlzdCBlc3TDoSBjYXJyZWdhZG8gZSBvICh0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID09PSBudWxsKSBzaWduaWZpY2EgcXVlIHBvc3N1aSBtYWlzIG5pdmVpcywgcG9ydGFudG8gZXN0ZSDDqSBvIG5pdmVsIDEuXG4gICAgICAgICAgICAgICAgICogU2UgbyBtZW51TGlzdCBlc3TDoSBjYXJyZWdhZG8gZSBvICh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID09PSBudWxsKSBzaWduaWZpY2EgcXVlIGVzdGUgw6kgbyDDunRpbW8gbsOtdmVsLCBwb3J0YW50byBlc3RlIMOpIG8gbml2ZWwgMi5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAoIUFycmF5VXRpbC5pc0VtcHR5KG1lbnUubWVudUxpc3QpICYmIE9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQgPSBPYmplY3RVdGlsLmNsb25lKG1lbnUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIUFycmF5VXRpbC5pc0VtcHR5KG1lbnUubWVudUxpc3QpICYmIE9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQgPSBPYmplY3RVdGlsLmNsb25lKG1lbnUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTWVudUNvbGxhcHNhYmxlUmVzZXQobWVudUxpc3Q6IE1lbnVEVE9bXSk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBtZW51TGlzdFtpXS5leHBhbmRlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFBcnJheVV0aWwuaXNFbXB0eShtZW51TGlzdFtpXS5tZW51TGlzdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk1lbnVDb2xsYXBzYWJsZVJlc2V0KG1lbnVMaXN0W2ldLm1lbnVMaXN0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk1lbnVDb2xsYXBzYWJsZUdvQmFjaygpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZCA9IG51bGw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQgPSBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTWVudUNvbGxhcHNhYmxlUmVzZXQodGhpcy5tZW51SXRlbXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNNZW51QWN0aXZlKG1lbnU6IE1lbnVEVE8pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdXRlci51cmwuc3RhcnRzV2l0aChtZW51LnJvdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNNZW51Q29sbGFwc2FibGVBY3RpdmUobWVudTogTWVudURUTyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoU3RyaW5nVXRpbC5pc0VtcHR5KG1lbnUucm91dGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBleGlzdEluUm91dGU6IGJvb2xlYW4gPSB0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKG1lbnUucm91dGUpO1xuXG4gICAgICAgIGxldCBtZW51TGlzdDogTWVudURUT1tdID0gQXJyYXlVdGlsLmNsb25lKHRoaXMubWVudUl0ZW1zKTtcbiAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSAmJiBPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgbWVudUxpc3QgPSBBcnJheVV0aWwuY2xvbmUodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZC5tZW51TGlzdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICBtZW51TGlzdCA9IEFycmF5VXRpbC5jbG9uZSh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkLm1lbnVMaXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxldmVsWmVyb0FjdGl2ZTogTWVudURUTyA9IG1lbnVMaXN0XG4gICAgICAgICAgICAuZmlsdGVyKG1pID0+ICFBcnJheVV0aWwuaXNFbXB0eShtaS5tZW51TGlzdCkpXG4gICAgICAgICAgICAuZmluZChtaSA9PiAoKG1pLnJvdXRlID09PSBtZW51LnJvdXRlKSAmJiAobWkuaW5kZXggPT09IG1lbnUuaW5kZXgpICYmIChtaS50eXBlICYmIG1lbnUudHlwZSkpKTtcblxuICAgICAgICBpZiAoZXhpc3RJblJvdXRlICYmICFPYmplY3RVdGlsLmlzTnVsbChsZXZlbFplcm9BY3RpdmUpICYmICFBcnJheVV0aWwuaXNFbXB0eShsZXZlbFplcm9BY3RpdmUubWVudUxpc3QpKSB7XG4gICAgICAgICAgICBjb25zdCBsZXZlbE9uZUFjdGl2ZTogTWVudURUTyA9IGxldmVsWmVyb0FjdGl2ZS5tZW51TGlzdC5maW5kKG1pID0+IHRoaXMuX3JvdXRlci51cmwuaW5jbHVkZXMobWkucm91dGUpKTtcbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwobGV2ZWxPbmVBY3RpdmUpICYmICFBcnJheVV0aWwuaXNFbXB0eShsZXZlbE9uZUFjdGl2ZS5tZW51TGlzdCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsZXZlbFR3b0FjdGl2ZTogTWVudURUTyA9IGxldmVsT25lQWN0aXZlLm1lbnVMaXN0LmZpbmQobWkgPT4gdGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcyhtaS5yb3V0ZSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiAhT2JqZWN0VXRpbC5pc051bGwobGV2ZWxUd29BY3RpdmUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIU9iamVjdFV0aWwuaXNOdWxsKGxldmVsT25lQWN0aXZlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25NZW51SXRlbVNlbGVjdGVkKG1lbnU6IE1lbnVEVE8gPSBudWxsLCBjbG9zZU5hdjogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNsb3NlTmF2KSB7XG4gICAgICAgICAgICB0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQgPSBudWxsO1xuXG4gICAgICAgICAgICB0aGlzLm9uTWVudUNvbGxhcHNhYmxlUmVzZXQodGhpcy5tZW51SXRlbXMpO1xuXG4gICAgICAgICAgICB0aGlzLmlzU2NyZWVuTGFyZ2Uuc3Vic2NyaWJlKGlzU2NyZWVuTGFyZ2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghaXNTY3JlZW5MYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9uYXZTZXJ2aWNlLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uQ2xpY2tNZW51SXRlbS5lbWl0KG1lbnUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRNZW51TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKG5hbWUubGVuZ3RoIDw9IDM1KSA/IG5hbWUgOiAobmFtZS5zbGljZSgwLCAzNSkgKyAnLi4uJyk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc09wZW5lZC50b1Byb21pc2UoKS50aGVuKGlzT3BlbmVkID0+IHtcbiAgICAgICAgICAgIGlmICghaXNPcGVuZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb3VzZUVudGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZVNpZGVuYXYoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc09wZW5lZC50b1Byb21pc2UoKS50aGVuKGlzT3BlbmVkID0+IHtcbiAgICAgICAgICAgIGlmIChpc09wZW5lZCAmJiB0aGlzLl9tb3VzZUVudGVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW91c2VFbnRlciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlU2lkZW5hdigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxufVxuIl19
|