@jooler/inputs 0.0.52 → 0.0.54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/choose-enum/choose-enum.component.mjs +2 -2
- package/esm2022/lib/choose-general-item/choose-general-item.component.mjs +222 -45
- package/esm2022/lib/choose-general-item/choose-general-item.service.mjs +24 -3
- package/esm2022/lib/choose-general-item/choose-object-basic-template-label-field.enum.mjs +7 -0
- package/esm2022/lib/choose-general-item/choose-object-basic-template.model.mjs +67 -0
- package/esm2022/lib/choose-general-item/choose-object-template-type.enum.mjs +7 -0
- package/esm2022/lib/choose-general-item-renderer/choose-general-item-renderer.component.mjs +3 -3
- package/esm2022/lib/custom-colors/bom-production-type.enum.mjs +11 -0
- package/esm2022/lib/custom-colors/enum-custom-color-mapping.mjs +32 -0
- package/esm2022/lib/custom-colors/enum-custom-colors.mjs +21 -0
- package/esm2022/lib/custom-colors/sales-order-status.enum.mjs +27 -0
- package/esm2022/lib/custom-theme.mjs +104 -0
- package/esm2022/lib/dictionary-to-params-converter.mjs +15 -0
- package/esm2022/lib/enum-custom-label-mapping.mjs +32 -0
- package/esm2022/lib/enum-helper-functions.mjs +85 -0
- package/esm2022/lib/enum-models/bill-status.model.mjs +25 -0
- package/esm2022/lib/enum-models/charge-level.enum.mjs +6 -0
- package/esm2022/lib/enum-models/custom-order-request-status.enum.mjs +29 -0
- package/esm2022/lib/enum-models/invitation-status.model.mjs +15 -0
- package/esm2022/lib/enum-models/invoice-status.model.mjs +15 -0
- package/esm2022/lib/enum-models/locker-transfer-status.enum.mjs +11 -0
- package/esm2022/lib/enum-models/priority.model.mjs +13 -0
- package/esm2022/lib/enum-models/quotation-status.model.mjs +19 -0
- package/esm2022/lib/enum-models/request-status.model.mjs +15 -0
- package/esm2022/lib/enum-string-class-map.mjs +26 -0
- package/esm2022/lib/json/enum-custom-label-mappings.json +10 -0
- package/esm2022/lib/models/choose-item-full-object-control-config.enum.mjs +6 -0
- package/esm2022/lib/primary-colors.mjs +9 -1
- package/fesm2022/inputs.mjs +844 -137
- package/fesm2022/inputs.mjs.map +1 -1
- package/lib/choose-general-item/choose-general-item.component.d.ts +44 -15
- package/lib/choose-general-item/choose-general-item.service.d.ts +5 -1
- package/lib/choose-general-item/choose-object-basic-template-label-field.enum.d.ts +5 -0
- package/lib/choose-general-item/choose-object-basic-template.model.d.ts +15 -0
- package/lib/choose-general-item/choose-object-template-type.enum.d.ts +5 -0
- package/lib/custom-colors/bom-production-type.enum.d.ts +5 -0
- package/lib/custom-colors/enum-custom-color-mapping.d.ts +11 -0
- package/lib/custom-colors/enum-custom-colors.d.ts +2 -0
- package/lib/custom-colors/sales-order-status.enum.d.ts +13 -0
- package/lib/custom-theme.d.ts +8 -0
- package/lib/dictionary-to-params-converter.d.ts +4 -0
- package/lib/enum-custom-label-mapping.d.ts +7 -0
- package/lib/enum-helper-functions.d.ts +7 -0
- package/lib/enum-models/bill-status.model.d.ts +12 -0
- package/lib/enum-models/charge-level.enum.d.ts +4 -0
- package/lib/enum-models/custom-order-request-status.enum.d.ts +14 -0
- package/lib/enum-models/invitation-status.model.d.ts +7 -0
- package/lib/enum-models/invoice-status.model.d.ts +13 -0
- package/lib/enum-models/locker-transfer-status.enum.d.ts +5 -0
- package/lib/enum-models/priority.model.d.ts +6 -0
- package/lib/enum-models/quotation-status.model.d.ts +9 -0
- package/lib/enum-models/request-status.model.d.ts +7 -0
- package/lib/enum-string-class-map.d.ts +3 -0
- package/lib/models/choose-item-full-object-control-config.enum.d.ts +4 -0
- package/lib/primary-colors.d.ts +8 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, EventEmitter, forwardRef, Input, Output, } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { EnumHelperBaseClass } from '
|
|
3
|
+
import { EnumHelperBaseClass } from '../enum-helper-functions';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/common";
|
|
6
6
|
import * as i2 from "@ng-select/ng-select";
|
|
@@ -202,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
202
202
|
}], close: [{
|
|
203
203
|
type: Output
|
|
204
204
|
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvb3NlLWVudW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvY2hvb3NlLWVudW0vY2hvb3NlLWVudW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvY2hvb3NlLWVudW0vY2hvb3NlLWVudW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFleEUsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixLQUFLLENBQWU7SUFDWCxRQUFRLEdBQVcsTUFBTSxDQUFDO0lBQzFCLGtCQUFrQixHQUFZLEtBQUssQ0FBQztJQUNwQyxTQUFTLEdBQVksSUFBSSxDQUFDO0lBQzFCLFlBQVksQ0FBVztJQUN2QixXQUFXLENBQU07SUFDakIsc0JBQXNCLEdBQWEsbUJBQW1CLENBQUMsMkJBQTJCLENBQUM7SUFDbkYsZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUMvQixZQUFZLEdBQWEsRUFBRSxDQUFDO0lBQzVCLE1BQU0sR0FBWSxJQUFJLENBQUM7SUFDdkIsa0JBQWtCLEdBQVksS0FBSyxDQUFDO0lBQ3BDLFVBQVUsQ0FBVTtJQUNwQixLQUFLLEdBQVcsT0FBTyxDQUFDO0lBQ3hCLGNBQWMsR0FBVyxNQUFNLENBQUM7SUFDaEMsbUJBQW1CLENBQVM7SUFDNUIsaUJBQWlCLENBQVM7SUFDMUIsVUFBVSxDQUFTO0lBQ25CLFdBQVcsQ0FBUztJQUNwQixZQUFZLEdBQVksS0FBSyxDQUFDO0lBQzlCLFlB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QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFbnVtSGVscGVyQmFzZUNsYXNzIH0gZnJvbSAnQGpvb2xlci9zaGFyZWQtZ2VuZXJhbC1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgRW51bU9wdGlvbiB9IGZyb20gJy4uL2VudW0taGVscGVyLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY2hvb3NlLWVudW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaG9vc2UtZW51bS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hvb3NlLWVudW0uY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENob29zZUVudW1Db21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENob29zZUVudW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIGl0ZW1zOiBFbnVtT3B0aW9uW107XHJcbiAgQElucHV0KCkgYXBwZW5kVG86IHN0cmluZyA9ICdib2R5JztcclxuICBASW5wdXQoKSBhbGxvd0FsbENhcHNWYWx1ZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBjbGVhcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNvbG9yczogc3RyaW5nW107XHJcbiAgQElucHV0KCkgZW51bUNob2ljZXM6IGFueTtcclxuICBASW5wdXQoKSBnZXRWYWx1ZXNBcnJheUZyb21FbnVtOiBGdW5jdGlvbiA9IEVudW1IZWxwZXJCYXNlQ2xhc3MuZ2V0RW51bU9wdGlvbnNGcm9tRW51bUNsYXNzO1xyXG4gIEBJbnB1dCgpIHZhbHVlc1RvRGlzYWJsZTogbnVtYmVyW10gPSBbXTtcclxuICBASW5wdXQoKSB2YWx1ZXNUb0hpZGU6IG51bWJlcltdID0gW107XHJcbiAgQElucHV0KCkgaXNDaGlwOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpc0Ryb3Bkb3duRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc011bHRpcGxlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnbGFiZWwnO1xyXG4gIEBJbnB1dCgpIGxhYmVsVGV4dEFsaWduOiBzdHJpbmcgPSAnbGVmdCc7XHJcbiAgQElucHV0KCkgbGFiZWxUZXh0Rm9udFdlaWdodDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhYmVsVGV4dEZvbnRTaXplOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGFkZGluZ1RvcDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGVyY2VudFdpZHRoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtOiBhbnk7XHJcbiAgQElucHV0KCkgd2lkdGg6IG51bWJlcjtcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmlydHVhbFNjcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmdldFZhbHVlc0FycmF5RnJvbUVudW0gIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLml0ZW1zID0gdGhpcy5nZXRWYWx1ZXNBcnJheUZyb21FbnVtKFxyXG4gICAgICAgIHRoaXMuZW51bUNob2ljZXMsXHJcbiAgICAgICAgdGhpcy5jdXN0b21Db2xvcnMsXHJcbiAgICAgICAgdGhpcy5hbGxvd0FsbENhcHNWYWx1ZXNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnZhbHVlc1RvRGlzYWJsZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWRJdGVtcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudmFsdWVzVG9IaWRlLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5oaWRlSXRlbXMoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc29ydEFuZFJlb3JkZXJJdGVtcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICBpZiAodGhpcy5nZXRWYWx1ZXNBcnJheUZyb21FbnVtICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuZ2V0VmFsdWVzQXJyYXlGcm9tRW51bShcclxuICAgICAgICB0aGlzLmVudW1DaG9pY2VzLFxyXG4gICAgICAgIHRoaXMuY3VzdG9tQ29sb3JzLFxyXG4gICAgICAgIHRoaXMuYWxsb3dBbGxDYXBzVmFsdWVzXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy52YWx1ZXNUb0Rpc2FibGUubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmRpc2FibGVkSXRlbXMoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnZhbHVlc1RvSGlkZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuaGlkZUl0ZW1zKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNvcnRBbmRSZW9yZGVySXRlbXMoKTtcclxuICB9XHJcblxyXG4gIGRpc2FibGVkSXRlbXMoKSB7XHJcbiAgICBmb3IgKGxldCB2YWx1ZSBvZiB0aGlzLnZhbHVlc1RvRGlzYWJsZSkge1xyXG4gICAgICBsZXQgaW5kZXg6IG51bWJlciA9IHRoaXMuaXRlbXMuZmluZEluZGV4KGVudW1PcHRpb24gPT4gZW51bU9wdGlvbi52YWx1ZSA9PSB2YWx1ZSk7XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtc1tpbmRleF0uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRocm93IEVycm9yKFxyXG4gICAgICAgICAgJ0luZGV4IHdhcyBub3QgZm91bmQgZm9yIGFuIGVudW0gZWxlbWVudCBpbiB0aGUgdmFsdWVzVG9EaXNhYmxlIGFycmF5IHByb3ZpZGVkLidcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoaWRlSXRlbXMoKSB7XHJcbiAgICBmb3IgKGxldCB2YWx1ZSBvZiB0aGlzLnZhbHVlc1RvSGlkZSkge1xyXG4gICAgICBsZXQgaW5kZXg6IG51bWJlciA9IHRoaXMuaXRlbXMuZmluZEluZGV4KGVudW1PcHRpb24gPT4gZW51bU9wdGlvbi52YWx1ZSA9PSB2YWx1ZSk7XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRocm93IEVycm9yKCdJbmRleCB3YXMgbm90IGZvdW5kIGZvciBhbiBlbnVtIGVsZW1lbnQgaW4gdGhlIHZhbHVlc1RvSGlkZSBhcnJheSBwcm92aWRlZC4nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc29ydEFuZFJlb3JkZXJJdGVtcygpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5vbkRpc2FibGVkSXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+ICFpdGVtLmRpc2FibGVkKTtcclxuICAgIGNvbnN0IGRpc2FibGVkSXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0uZGlzYWJsZWQpO1xyXG4gICAgbm9uRGlzYWJsZWRJdGVtcy5zb3J0KChhLCBiKSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkpO1xyXG4gICAgdGhpcy5pdGVtcyA9IFsuLi5ub25EaXNhYmxlZEl0ZW1zLCAuLi5kaXNhYmxlZEl0ZW1zXTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodHlwZTogbnVtYmVyKSB7XHJcbiAgICBpZiAodHlwZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0eXBlO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09IG51bGwpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0eXBlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICB0aGlzLnByb3BvZ2F0ZVRvdWNoID0gZm47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuICBwcml2YXRlIHByb3BvZ2F0ZVRvdWNoID0gKCkgPT4geyB9O1xyXG5cclxuICB1cGRhdGVCbHVyKCkge1xyXG4gICAgdGhpcy5wcm9wb2dhdGVUb3VjaCgpO1xyXG4gICAgdGhpcy5jbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGVkSXRlbUNoYW5nZWQoKSB7XHJcbiAgICB0aGlzLnByb3BvZ2F0ZVRvdWNoKCk7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkSXRlbSk7XHJcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtKTtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc0Ryb3Bkb3duRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IG51bGw7XHJcbiAgICB0aGlzLnByb3BvZ2F0ZVRvdWNoKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdHlsZXMoKSB7XHJcbiAgICBsZXQgc3R5bGUgPSB7XHJcbiAgICAgIHBhZGRpbmdUb3A6IHRoaXMucGFkZGluZ1RvcCArICdyZW0nLFxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLndpZHRoKSB7XHJcbiAgICAgIHN0eWxlWyd3aWR0aCddID0gdGhpcy53aWR0aCArICdyZW0nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0eWxlO1xyXG4gIH1cclxuXHJcbiAgc2V0TGFiZWxTdHlsZSgpIHtcclxuICAgIGxldCBzdHlsZSA9IHtcclxuICAgICAgdGV4dEFsaWduOiB0aGlzLmxhYmVsVGV4dEFsaWduLFxyXG4gICAgICBmb250V2VpZ2h0OiB0aGlzLmxhYmVsVGV4dEZvbnRXZWlnaHQsXHJcbiAgICAgIGZvbnRTaXplOiB0aGlzLmxhYmVsVGV4dEZvbnRTaXplICsgJ3JlbScsXHJcbiAgICAgIHBhZGRpbmc6ICcwLjRyZW0nLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBzdHlsZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdj5cclxuICA8bmctc2VsZWN0IFtuZ1N0eWxlXT1cInNldFN0eWxlcygpXCIgKGJsdXIpPVwidXBkYXRlQmx1cigpXCIgYmluZExhYmVsPVwibGFiZWxcIiBiaW5kVmFsdWU9XCJ2YWx1ZVwiIFtpdGVtc109XCJpdGVtc1wiXHJcbiAgICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgKGNoYW5nZSk9XCJvblNlbGVjdGVkSXRlbUNoYW5nZWQoKVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkSXRlbVwiIFttdWx0aXBsZV09XCJpc011bHRpcGxlXCIgW2Rpc2FibGVkXT1cImlzRHJvcGRvd25EaXNhYmxlZFwiIFtyZWFkb25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlXCIgKGNsZWFyKT1cImNsZWFyKClcIiBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIiBkcm9wZG93blBvc2l0aW9uPVwiYm90dG9tXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgbmctbGFiZWwtdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1jbGVhcj1cImNsZWFyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0NoaXBcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoaXBcIlxyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaXRlbTogaXRlbSwgc2hvd0Nyb3NzOiBjbGVhcmFibGUsIGNsZWFyOiBjbGVhciB9XCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldExhYmVsU3R5bGUoKVwiICpuZ0lmPVwiIWlzQ2hpcFwiPnt7IGl0ZW0ubGFiZWwgfX08L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgbmctb3B0aW9uLXRtcCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaW5kZXg9XCJpbmRleFwiIGxldC1zZWFyY2g9XCJzZWFyY2hUZXJtXCIgbGV0LWNsZWFyPVwiY2xlYXJcIj5cclxuICAgICAgPGRpdiBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH1cIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNDaGlwXCIgY2xhc3M9XCJjaGlwXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoaXBcIlxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtLCBzaG93Q3Jvc3M6IGZhbHNlLCBjbGVhcjogY2xlYXIgfVwiPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRMYWJlbFN0eWxlKClcIiAqbmdJZj1cIiFpc0NoaXBcIj57eyBpdGVtLmxhYmVsIH19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L25nLXNlbGVjdD5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2NoaXAgbGV0LXNob3dDcm9zcz1cInNob3dDcm9zc1wiIGxldC1pdGVtPVwiaXRlbVwiIGxldC1jbGVhcj1cImNsZWFyXCI+XHJcbiAgPG5nLWNoaXAgW2VudW1DbGFzc109XCJlbnVtQ2hvaWNlc1wiIFt3aXRoQ3Jvc3NdPVwic2hvd0Nyb3NzXCIgW2VudW1WYWx1ZV09XCJpdGVtLnZhbHVlXCIgW2N1c3RvbUNvbG9yc109XCJjdXN0b21Db2xvcnNcIlxyXG4gICAgW2l0ZW1dPVwiaXRlbVwiIFtjbGVhcl09XCJjbGVhclwiPlxyXG4gIDwvbmctY2hpcD5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvb3NlLWVudW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvY2hvb3NlLWVudW0vY2hvb3NlLWVudW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvY2hvb3NlLWVudW0vY2hvb3NlLWVudW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFjL0QsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixLQUFLLENBQWU7SUFDWCxRQUFRLEdBQVcsTUFBTSxDQUFDO0lBQzFCLGtCQUFrQixHQUFZLEtBQUssQ0FBQztJQUNwQyxTQUFTLEdBQVksSUFBSSxDQUFDO0lBQzFCLFlBQVksQ0FBVztJQUN2QixXQUFXLENBQU07SUFDakIsc0JBQXNCLEdBQWEsbUJBQW1CLENBQUMsMkJBQTJCLENBQUM7SUFDbkYsZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUMvQixZQUFZLEdBQWEsRUFBRSxDQUFDO0lBQzVCLE1BQU0sR0FBWSxJQUFJLENBQUM7SUFDdkIsa0JBQWtCLEdBQVksS0FBSyxDQUFDO0lBQ3BDLFVBQVUsQ0FBVTtJQUNwQixLQUFLLEdBQVcsT0FBTyxDQUFDO0lBQ3hCLGNBQWMsR0FBVyxNQUFNLENBQUM7SUFDaEMsbUJBQW1CLENBQVM7SUFDNUIsaUJBQWlCLENBQVM7SUFDMUIsVUFBVSxDQUFTO0lBQ25CLFdBQVcsQ0FBUztJQUNwQixZQUFZLEdBQVksS0FBSyxDQUFDO0lBQzlCLFlB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QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFbnVtT3B0aW9uIH0gZnJvbSAnLi4vZW51bS1oZWxwZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBFbnVtSGVscGVyQmFzZUNsYXNzIH0gZnJvbSAnLi4vZW51bS1oZWxwZXItZnVuY3Rpb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY2hvb3NlLWVudW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaG9vc2UtZW51bS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hvb3NlLWVudW0uY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENob29zZUVudW1Db21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENob29zZUVudW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIGl0ZW1zOiBFbnVtT3B0aW9uW107XHJcbiAgQElucHV0KCkgYXBwZW5kVG86IHN0cmluZyA9ICdib2R5JztcclxuICBASW5wdXQoKSBhbGxvd0FsbENhcHNWYWx1ZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBjbGVhcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNvbG9yczogc3RyaW5nW107XHJcbiAgQElucHV0KCkgZW51bUNob2ljZXM6IGFueTtcclxuICBASW5wdXQoKSBnZXRWYWx1ZXNBcnJheUZyb21FbnVtOiBGdW5jdGlvbiA9IEVudW1IZWxwZXJCYXNlQ2xhc3MuZ2V0RW51bU9wdGlvbnNGcm9tRW51bUNsYXNzO1xyXG4gIEBJbnB1dCgpIHZhbHVlc1RvRGlzYWJsZTogbnVtYmVyW10gPSBbXTtcclxuICBASW5wdXQoKSB2YWx1ZXNUb0hpZGU6IG51bWJlcltdID0gW107XHJcbiAgQElucHV0KCkgaXNDaGlwOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpc0Ryb3Bkb3duRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc011bHRpcGxlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnbGFiZWwnO1xyXG4gIEBJbnB1dCgpIGxhYmVsVGV4dEFsaWduOiBzdHJpbmcgPSAnbGVmdCc7XHJcbiAgQElucHV0KCkgbGFiZWxUZXh0Rm9udFdlaWdodDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhYmVsVGV4dEZvbnRTaXplOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGFkZGluZ1RvcDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGVyY2VudFdpZHRoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtOiBhbnk7XHJcbiAgQElucHV0KCkgd2lkdGg6IG51bWJlcjtcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmlydHVhbFNjcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmdldFZhbHVlc0FycmF5RnJvbUVudW0gIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLml0ZW1zID0gdGhpcy5nZXRWYWx1ZXNBcnJheUZyb21FbnVtKFxyXG4gICAgICAgIHRoaXMuZW51bUNob2ljZXMsXHJcbiAgICAgICAgdGhpcy5jdXN0b21Db2xvcnMsXHJcbiAgICAgICAgdGhpcy5hbGxvd0FsbENhcHNWYWx1ZXNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnZhbHVlc1RvRGlzYWJsZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWRJdGVtcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudmFsdWVzVG9IaWRlLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5oaWRlSXRlbXMoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc29ydEFuZFJlb3JkZXJJdGVtcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICBpZiAodGhpcy5nZXRWYWx1ZXNBcnJheUZyb21FbnVtICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuZ2V0VmFsdWVzQXJyYXlGcm9tRW51bShcclxuICAgICAgICB0aGlzLmVudW1DaG9pY2VzLFxyXG4gICAgICAgIHRoaXMuY3VzdG9tQ29sb3JzLFxyXG4gICAgICAgIHRoaXMuYWxsb3dBbGxDYXBzVmFsdWVzXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy52YWx1ZXNUb0Rpc2FibGUubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmRpc2FibGVkSXRlbXMoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnZhbHVlc1RvSGlkZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuaGlkZUl0ZW1zKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNvcnRBbmRSZW9yZGVySXRlbXMoKTtcclxuICB9XHJcblxyXG4gIGRpc2FibGVkSXRlbXMoKSB7XHJcbiAgICBmb3IgKGxldCB2YWx1ZSBvZiB0aGlzLnZhbHVlc1RvRGlzYWJsZSkge1xyXG4gICAgICBsZXQgaW5kZXg6IG51bWJlciA9IHRoaXMuaXRlbXMuZmluZEluZGV4KGVudW1PcHRpb24gPT4gZW51bU9wdGlvbi52YWx1ZSA9PSB2YWx1ZSk7XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtc1tpbmRleF0uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRocm93IEVycm9yKFxyXG4gICAgICAgICAgJ0luZGV4IHdhcyBub3QgZm91bmQgZm9yIGFuIGVudW0gZWxlbWVudCBpbiB0aGUgdmFsdWVzVG9EaXNhYmxlIGFycmF5IHByb3ZpZGVkLidcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoaWRlSXRlbXMoKSB7XHJcbiAgICBmb3IgKGxldCB2YWx1ZSBvZiB0aGlzLnZhbHVlc1RvSGlkZSkge1xyXG4gICAgICBsZXQgaW5kZXg6IG51bWJlciA9IHRoaXMuaXRlbXMuZmluZEluZGV4KGVudW1PcHRpb24gPT4gZW51bU9wdGlvbi52YWx1ZSA9PSB2YWx1ZSk7XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRocm93IEVycm9yKCdJbmRleCB3YXMgbm90IGZvdW5kIGZvciBhbiBlbnVtIGVsZW1lbnQgaW4gdGhlIHZhbHVlc1RvSGlkZSBhcnJheSBwcm92aWRlZC4nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc29ydEFuZFJlb3JkZXJJdGVtcygpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5vbkRpc2FibGVkSXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+ICFpdGVtLmRpc2FibGVkKTtcclxuICAgIGNvbnN0IGRpc2FibGVkSXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0uZGlzYWJsZWQpO1xyXG4gICAgbm9uRGlzYWJsZWRJdGVtcy5zb3J0KChhLCBiKSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkpO1xyXG4gICAgdGhpcy5pdGVtcyA9IFsuLi5ub25EaXNhYmxlZEl0ZW1zLCAuLi5kaXNhYmxlZEl0ZW1zXTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodHlwZTogbnVtYmVyKSB7XHJcbiAgICBpZiAodHlwZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0eXBlO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09IG51bGwpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0eXBlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICB0aGlzLnByb3BvZ2F0ZVRvdWNoID0gZm47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuICBwcml2YXRlIHByb3BvZ2F0ZVRvdWNoID0gKCkgPT4geyB9O1xyXG5cclxuICB1cGRhdGVCbHVyKCkge1xyXG4gICAgdGhpcy5wcm9wb2dhdGVUb3VjaCgpO1xyXG4gICAgdGhpcy5jbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGVkSXRlbUNoYW5nZWQoKSB7XHJcbiAgICB0aGlzLnByb3BvZ2F0ZVRvdWNoKCk7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkSXRlbSk7XHJcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtKTtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc0Ryb3Bkb3duRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IG51bGw7XHJcbiAgICB0aGlzLnByb3BvZ2F0ZVRvdWNoKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdHlsZXMoKSB7XHJcbiAgICBsZXQgc3R5bGUgPSB7XHJcbiAgICAgIHBhZGRpbmdUb3A6IHRoaXMucGFkZGluZ1RvcCArICdyZW0nLFxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLndpZHRoKSB7XHJcbiAgICAgIHN0eWxlWyd3aWR0aCddID0gdGhpcy53aWR0aCArICdyZW0nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0eWxlO1xyXG4gIH1cclxuXHJcbiAgc2V0TGFiZWxTdHlsZSgpIHtcclxuICAgIGxldCBzdHlsZSA9IHtcclxuICAgICAgdGV4dEFsaWduOiB0aGlzLmxhYmVsVGV4dEFsaWduLFxyXG4gICAgICBmb250V2VpZ2h0OiB0aGlzLmxhYmVsVGV4dEZvbnRXZWlnaHQsXHJcbiAgICAgIGZvbnRTaXplOiB0aGlzLmxhYmVsVGV4dEZvbnRTaXplICsgJ3JlbScsXHJcbiAgICAgIHBhZGRpbmc6ICcwLjRyZW0nLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBzdHlsZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdj5cclxuICA8bmctc2VsZWN0IFtuZ1N0eWxlXT1cInNldFN0eWxlcygpXCIgKGJsdXIpPVwidXBkYXRlQmx1cigpXCIgYmluZExhYmVsPVwibGFiZWxcIiBiaW5kVmFsdWU9XCJ2YWx1ZVwiIFtpdGVtc109XCJpdGVtc1wiXHJcbiAgICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgKGNoYW5nZSk9XCJvblNlbGVjdGVkSXRlbUNoYW5nZWQoKVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkSXRlbVwiIFttdWx0aXBsZV09XCJpc011bHRpcGxlXCIgW2Rpc2FibGVkXT1cImlzRHJvcGRvd25EaXNhYmxlZFwiIFtyZWFkb25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlXCIgKGNsZWFyKT1cImNsZWFyKClcIiBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIiBkcm9wZG93blBvc2l0aW9uPVwiYm90dG9tXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgbmctbGFiZWwtdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1jbGVhcj1cImNsZWFyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0NoaXBcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoaXBcIlxyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaXRlbTogaXRlbSwgc2hvd0Nyb3NzOiBjbGVhcmFibGUsIGNsZWFyOiBjbGVhciB9XCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldExhYmVsU3R5bGUoKVwiICpuZ0lmPVwiIWlzQ2hpcFwiPnt7IGl0ZW0ubGFiZWwgfX08L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgbmctb3B0aW9uLXRtcCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaW5kZXg9XCJpbmRleFwiIGxldC1zZWFyY2g9XCJzZWFyY2hUZXJtXCIgbGV0LWNsZWFyPVwiY2xlYXJcIj5cclxuICAgICAgPGRpdiBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH1cIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNDaGlwXCIgY2xhc3M9XCJjaGlwXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoaXBcIlxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtLCBzaG93Q3Jvc3M6IGZhbHNlLCBjbGVhcjogY2xlYXIgfVwiPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRMYWJlbFN0eWxlKClcIiAqbmdJZj1cIiFpc0NoaXBcIj57eyBpdGVtLmxhYmVsIH19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L25nLXNlbGVjdD5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2NoaXAgbGV0LXNob3dDcm9zcz1cInNob3dDcm9zc1wiIGxldC1pdGVtPVwiaXRlbVwiIGxldC1jbGVhcj1cImNsZWFyXCI+XHJcbiAgPG5nLWNoaXAgW2VudW1DbGFzc109XCJlbnVtQ2hvaWNlc1wiIFt3aXRoQ3Jvc3NdPVwic2hvd0Nyb3NzXCIgW2VudW1WYWx1ZV09XCJpdGVtLnZhbHVlXCIgW2N1c3RvbUNvbG9yc109XCJjdXN0b21Db2xvcnNcIlxyXG4gICAgW2l0ZW1dPVwiaXRlbVwiIFtjbGVhcl09XCJjbGVhclwiPlxyXG4gIDwvbmctY2hpcD5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
@@ -1,27 +1,35 @@
|
|
|
1
|
-
import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
1
|
+
import { Component, ContentChild, EventEmitter, forwardRef, Input, Output, } from '@angular/core';
|
|
2
|
+
import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
|
|
3
|
+
import { PrimaryColors } from '../primary-colors';
|
|
4
|
+
import { ChooseObjectTemplateType } from './choose-object-template-type.enum';
|
|
5
|
+
import { ChooseItemFullObjectControlConfig } from '../models/choose-item-full-object-control-config.enum';
|
|
6
|
+
import { ChipInputType } from '@jooler/shared-general-components';
|
|
3
7
|
import * as i0 from "@angular/core";
|
|
4
8
|
import * as i1 from "./choose-general-item.service";
|
|
5
|
-
import * as i2 from "@angular/
|
|
6
|
-
import * as i3 from "@
|
|
7
|
-
import * as i4 from "@
|
|
8
|
-
import * as i5 from "@
|
|
9
|
+
import * as i2 from "@angular/material/dialog";
|
|
10
|
+
import * as i3 from "@angular/common";
|
|
11
|
+
import * as i4 from "@ng-select/ng-select";
|
|
12
|
+
import * as i5 from "@angular/forms";
|
|
13
|
+
import * as i6 from "@angular/material/card";
|
|
14
|
+
import * as i7 from "@jooler/shared-general-components";
|
|
15
|
+
import * as i8 from "../dropdown-actions/dropdown-actions.component";
|
|
9
16
|
export class ChooseGeneralItemComponent {
|
|
10
17
|
_ChooseGeneralItemService;
|
|
11
|
-
|
|
18
|
+
dialog;
|
|
19
|
+
_cdr;
|
|
20
|
+
primaryRed = PrimaryColors.$primaryRedColor;
|
|
21
|
+
isLoading = false;
|
|
12
22
|
items;
|
|
13
|
-
label;
|
|
14
|
-
appendTo;
|
|
23
|
+
label = 'label';
|
|
24
|
+
appendTo = 'body';
|
|
15
25
|
placeholder;
|
|
16
26
|
apiPath;
|
|
17
|
-
isMultiple;
|
|
27
|
+
isMultiple = false;
|
|
18
28
|
hideSelectedItem;
|
|
19
29
|
objects;
|
|
20
|
-
showLabel;
|
|
30
|
+
showLabel = false;
|
|
21
31
|
separator;
|
|
22
|
-
width
|
|
23
|
-
fontWeight;
|
|
24
|
-
fontSize;
|
|
32
|
+
width;
|
|
25
33
|
isChip = false;
|
|
26
34
|
isTypeDate;
|
|
27
35
|
chipColor = 'black';
|
|
@@ -29,20 +37,81 @@ export class ChooseGeneralItemComponent {
|
|
|
29
37
|
chipWidth = 11;
|
|
30
38
|
selectedItemId;
|
|
31
39
|
disabled;
|
|
40
|
+
readOnly;
|
|
32
41
|
useFullObject = false;
|
|
33
|
-
|
|
42
|
+
showAdd = false;
|
|
43
|
+
dialogComponentClass;
|
|
44
|
+
showDialogDefaultButtons = false;
|
|
45
|
+
dialogComponentInputs = {
|
|
46
|
+
isDialog: true,
|
|
47
|
+
};
|
|
48
|
+
bindValueKey = 'id'; // or null for full object
|
|
49
|
+
addRoute;
|
|
50
|
+
canActionsRoute;
|
|
51
|
+
dialogTitle;
|
|
52
|
+
clearable = true;
|
|
53
|
+
filterParams;
|
|
54
|
+
templateType = ChooseObjectTemplateType.DEFAULT;
|
|
55
|
+
basicTemplateData;
|
|
56
|
+
contentProjectionLabelKey;
|
|
57
|
+
fullObjectControlConfig = ChooseItemFullObjectControlConfig.ID;
|
|
58
|
+
change = new EventEmitter();
|
|
59
|
+
blur = new EventEmitter();
|
|
60
|
+
customOptionTemplate;
|
|
61
|
+
ChooseObjectTemplateType = ChooseObjectTemplateType;
|
|
62
|
+
chipInputTypes = ChipInputType;
|
|
63
|
+
constructor(_ChooseGeneralItemService, dialog, _cdr) {
|
|
34
64
|
this._ChooseGeneralItemService = _ChooseGeneralItemService;
|
|
65
|
+
this.dialog = dialog;
|
|
66
|
+
this._cdr = _cdr;
|
|
35
67
|
}
|
|
36
68
|
ngOnInit() {
|
|
37
|
-
if (
|
|
69
|
+
if (this.templateType == ChooseObjectTemplateType.BASIC) {
|
|
70
|
+
this.setupBasicTemplate();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
setupBasicTemplate() { }
|
|
74
|
+
ngOnChanges(changes) {
|
|
75
|
+
if (changes['items'] && !changes.items) {
|
|
76
|
+
this.items = undefined;
|
|
77
|
+
}
|
|
78
|
+
if (changes['apiPath'] && !changes.apiPath) {
|
|
79
|
+
this.apiPath = undefined;
|
|
80
|
+
}
|
|
81
|
+
this.validateInputs(changes);
|
|
82
|
+
if (this.showAdd) {
|
|
83
|
+
this.validateAddConfiguration();
|
|
84
|
+
}
|
|
85
|
+
if (!changes['items'] || !changes['items'].currentValue) {
|
|
86
|
+
this.isLoading = true;
|
|
38
87
|
this.getData();
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
this.isLoading = false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
validateAddConfiguration() {
|
|
94
|
+
if ((this.addRoute == '' || this.addRoute == null || this.addRoute == undefined) &&
|
|
95
|
+
(this.dialogComponentClass == null || this.dialogComponentClass == undefined)) {
|
|
96
|
+
throw Error('Showing the add button requires either a route for the add button to route to, or a component class for a dialog to open up with that component.');
|
|
97
|
+
}
|
|
39
98
|
}
|
|
40
99
|
writeValue(item) {
|
|
41
|
-
if (item != undefined) {
|
|
42
|
-
this.
|
|
100
|
+
if (item != undefined || item != null) {
|
|
101
|
+
if (!this.useFullObject) {
|
|
102
|
+
this.selectedItemId = item;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
if (Array.isArray(item)) {
|
|
106
|
+
this.selectedItemId = item.map(item => item.id);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.selectedItemId = item.id;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
43
112
|
}
|
|
44
|
-
else
|
|
45
|
-
this.selectedItemId =
|
|
113
|
+
else {
|
|
114
|
+
this.selectedItemId = null;
|
|
46
115
|
}
|
|
47
116
|
}
|
|
48
117
|
registerOnChange(fn) {
|
|
@@ -53,44 +122,116 @@ export class ChooseGeneralItemComponent {
|
|
|
53
122
|
}
|
|
54
123
|
propagateChange = (_) => { };
|
|
55
124
|
propogateTouch = () => { };
|
|
125
|
+
onValidationChange = () => { };
|
|
56
126
|
updateBlur() {
|
|
57
127
|
this.propogateTouch();
|
|
128
|
+
this.blur.emit();
|
|
58
129
|
}
|
|
59
130
|
onSelectedItemChanged($event) {
|
|
60
|
-
|
|
61
|
-
|
|
131
|
+
let valueToPropagate;
|
|
132
|
+
if (this.fullObjectControlConfig == ChooseItemFullObjectControlConfig.ID) {
|
|
133
|
+
valueToPropagate = this.selectedItemId;
|
|
134
|
+
}
|
|
135
|
+
else if (this.fullObjectControlConfig == ChooseItemFullObjectControlConfig.OBJECT) {
|
|
136
|
+
valueToPropagate = $event;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
throw Error('ChooseItemFullObjectControlConfig is not recognized.');
|
|
140
|
+
}
|
|
141
|
+
this.propagateChange(valueToPropagate);
|
|
142
|
+
this.change.emit($event);
|
|
143
|
+
this.onValidationChange();
|
|
144
|
+
}
|
|
145
|
+
validateInputs(changes) {
|
|
146
|
+
if (changes.apiPath &&
|
|
147
|
+
changes.apiPath.currentValue &&
|
|
148
|
+
changes.items &&
|
|
149
|
+
changes.items.currentValue) {
|
|
150
|
+
throw Error('Both an API path and an items list was provided.');
|
|
151
|
+
}
|
|
62
152
|
}
|
|
63
153
|
getData() {
|
|
64
154
|
if (this.apiPath) {
|
|
65
|
-
this._ChooseGeneralItemService.getData(this.apiPath).subscribe({
|
|
155
|
+
this._ChooseGeneralItemService.getData(this.apiPath, this.filterParams).subscribe({
|
|
66
156
|
next: (response) => {
|
|
67
157
|
this.items = response;
|
|
158
|
+
this.isLoading = false;
|
|
159
|
+
this._cdr.markForCheck();
|
|
160
|
+
console.log("response: items from '", this.apiPath, "' found: ", this.items);
|
|
68
161
|
},
|
|
69
|
-
error:
|
|
162
|
+
error: error => console.error('error', error),
|
|
70
163
|
});
|
|
71
164
|
}
|
|
72
165
|
}
|
|
73
166
|
setWidth() {
|
|
74
|
-
let style = {
|
|
75
|
-
|
|
76
|
-
|
|
167
|
+
let style = {};
|
|
168
|
+
if (this.width) {
|
|
169
|
+
style = {
|
|
170
|
+
width: this.width + 'rem',
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
style = {
|
|
175
|
+
width: '100%',
|
|
176
|
+
};
|
|
177
|
+
}
|
|
77
178
|
return style;
|
|
78
179
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
180
|
+
onClickAddNew() {
|
|
181
|
+
console.log('DYNAMIC DIALOG NOT IMPLEMENTED IN LIBRARY YET');
|
|
182
|
+
// Add dynamic dialog later
|
|
183
|
+
// let dialogRef = this.dialog.open(DynamicDialogComponent, {
|
|
184
|
+
// panelClass: 'custom-dialog-padding',
|
|
185
|
+
// width: '90%',
|
|
186
|
+
// minWidth: '90%',
|
|
187
|
+
// maxHeight: '90vh',
|
|
188
|
+
// data: {
|
|
189
|
+
// component: this.dialogComponentClass,
|
|
190
|
+
// showDefaultButtons: this.showDialogDefaultButtons,
|
|
191
|
+
// title: this.dialogTitle,
|
|
192
|
+
// inputs: this.dialogComponentInputs,
|
|
193
|
+
// },
|
|
194
|
+
// });
|
|
195
|
+
// dialogRef.afterClosed().subscribe((data: any) => {
|
|
196
|
+
// if (data) {
|
|
197
|
+
// console.log('New item Added: ', data);
|
|
198
|
+
// this.items.push(data);
|
|
199
|
+
// this.items = [...this.items];
|
|
200
|
+
// }
|
|
201
|
+
// });
|
|
85
202
|
}
|
|
86
|
-
|
|
87
|
-
|
|
203
|
+
setDisabledState(isDisabled) {
|
|
204
|
+
this.disabled = isDisabled;
|
|
205
|
+
}
|
|
206
|
+
registerOnValidatorChange(fn) {
|
|
207
|
+
this.onValidationChange = fn;
|
|
208
|
+
}
|
|
209
|
+
validate(control) {
|
|
210
|
+
return null;
|
|
211
|
+
if (control) {
|
|
212
|
+
const errors = control.errors;
|
|
213
|
+
if (errors) {
|
|
214
|
+
console.log('errorssss: ', errors);
|
|
215
|
+
return errors;
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChooseGeneralItemComponent, deps: [{ token: i1.ChooseGeneralItemService }, { token: i2.MatDialog }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
223
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChooseGeneralItemComponent, selector: "choose-general-item", inputs: { items: "items", label: "label", appendTo: "appendTo", placeholder: "placeholder", apiPath: "apiPath", isMultiple: "isMultiple", hideSelectedItem: "hideSelectedItem", objects: "objects", showLabel: "showLabel", separator: "separator", width: "width", isChip: "isChip", isTypeDate: "isTypeDate", chipColor: "chipColor", chipTextColor: "chipTextColor", chipWidth: "chipWidth", selectedItemId: "selectedItemId", disabled: "disabled", readOnly: "readOnly", useFullObject: "useFullObject", showAdd: "showAdd", dialogComponentClass: "dialogComponentClass", showDialogDefaultButtons: "showDialogDefaultButtons", dialogComponentInputs: "dialogComponentInputs", bindValueKey: "bindValueKey", addRoute: "addRoute", canActionsRoute: "canActionsRoute", dialogTitle: "dialogTitle", clearable: "clearable", filterParams: "filterParams", templateType: "templateType", basicTemplateData: "basicTemplateData", contentProjectionLabelKey: "contentProjectionLabelKey", fullObjectControlConfig: "fullObjectControlConfig" }, outputs: { change: "change", blur: "blur" }, providers: [
|
|
88
224
|
{
|
|
89
225
|
provide: NG_VALUE_ACCESSOR,
|
|
90
226
|
useExisting: forwardRef(() => ChooseGeneralItemComponent),
|
|
91
227
|
multi: true,
|
|
92
228
|
},
|
|
93
|
-
|
|
229
|
+
{
|
|
230
|
+
provide: NG_VALIDATORS,
|
|
231
|
+
useExisting: ChooseGeneralItemComponent,
|
|
232
|
+
multi: true,
|
|
233
|
+
},
|
|
234
|
+
], queries: [{ propertyName: "customOptionTemplate", first: true, predicate: ["customOption"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"select\">\r\n <ng-select [readonly]=\"readOnly\" [loading]=\"isLoading\" [hideSelected]=\"hideSelectedItem\"\r\n [closeOnSelect]=\"!isMultiple\" [ngStyle]=\"setWidth()\" class=\"component\" [disabled]=\"disabled\"\r\n [appendTo]=\"appendTo\" dropdownPosition=\"bottom\" (blur)=\"updateBlur()\" [bindLabel]=\"label\"\r\n [bindValue]=\"bindValueKey\" [compareWith]=\"\" [items]=\"items\" [placeholder]=\"placeholder\"\r\n (change)=\"onSelectedItemChanged($event)\" [(ngModel)]=\"selectedItemId\" [clearable]=\"clearable\"\r\n [multiple]=\"isMultiple\">\r\n <ng-container *ngIf=\"templateType == ChooseObjectTemplateType.DEFAULT\">\r\n <ng-template *ngIf=\"isLoading\" ng-label-tmp let-item=\"item\" let-clear=\"clear\"> </ng-template>\r\n\r\n <ng-template ng-label-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container *ngIf=\"objects; else nonObjectLabelTemplate\">\r\n <span class=\"template\" *ngFor=\"let object of objects; let isLast = last\">\r\n <span class=\"template-item\">\r\n {{ showLabel ? object.label + ': ' : ''\r\n }}{{\r\n isTypeDate ? (item[object.field] | date: 'mediumDate') : item[object.field]\r\n }}</span>\r\n </span>\r\n </ng-container>\r\n <ng-template #nonObjectLabelTemplate>{{ item }} </ng-template>\r\n </ng-template>\r\n\r\n <!-- Option Template -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container *ngIf=\"objects; else nonObjectOptionTemplate\">\r\n <span *ngFor=\"let object of objects; let isLast = last\">\r\n {{ showLabel ? object.label + ': ' : ''\r\n }}{{ isTypeDate ? (item[object.field] | date: 'mediumDate') : item[object.field] }}\r\n </span>\r\n </ng-container>\r\n <ng-template #nonObjectOptionTemplate>{{ item }} </ng-template>\r\n </ng-template>\r\n\r\n <ng-template *ngIf=\"isChip && !isLoading\" ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <ng-chip (mousedown)=\"$event.stopPropagation()\" [clear]=\"clear\" [withCross]=\"isMultiple\"\r\n [inputType]=\"chipInputTypes.CUSTOM\"\r\n [backgroundColor]=\"item.disabled == true ? primaryRed : chipColor\" [label]=\"item[objects[0].field]\"\r\n [item]=\"item\">\r\n </ng-chip>\r\n </ng-template>\r\n <ng-template *ngIf=\"isChip && !isLoading\" ng-option-tmp let-clear=\"clear\" let-item=\"item\">\r\n <ng-chip (mousedown)=\"$event.stopPropagation()\" [withCross]=\"false\" [inputType]=\"chipInputTypes.CUSTOM\"\r\n [backgroundColor]=\"item.disabled == true ? primaryRed : chipColor\" [label]=\"item[objects[0].field]\">\r\n </ng-chip>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"templateType == ChooseObjectTemplateType.BASIC\">\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n {{ item[basicTemplateData.label] }}\r\n </ng-template>\r\n <ng-template ng-option-tmp let-clear=\"clear\" let-item=\"item\">\r\n <mat-card class=\"basic-template-card\" [ngClass]=\"{\r\n 'with-image': basicTemplateData.hasImage,\r\n 'without-image': !basicTemplateData.hasImage,\r\n }\">\r\n <div class=\"image-cont\" *ngIf=\"basicTemplateData.hasImage\">\r\n <img class=\"main-image\" [src]=\"item[basicTemplateData.image]\"\r\n onerror=\"this.src='../../../assets/images/defaultImage.jpg';\" />\r\n </div>\r\n\r\n <div class=\"info\">\r\n <div class=\"title\">\r\n {{ item[basicTemplateData.title] }}\r\n </div>\r\n <div class=\"subtitle-style\" *ngIf=\"basicTemplateData.hasSubtitleOne\">\r\n <span>{{ item[basicTemplateData.subtitleOne] }}</span>\r\n <ng-container *ngIf=\"basicTemplateData.hasSubtitleTwo\">\r\n <span class=\"col-divider\"> | </span>\r\n <span>{{ item[basicTemplateData.subtitleTwo] }}</span>\r\n </ng-container>\r\n </div>\r\n <div class=\"description\" *ngIf=\"basicTemplateData.hasDescription\">\r\n {{ item[basicTemplateData.description] }}\r\n </div>\r\n </div>\r\n </mat-card>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"templateType == ChooseObjectTemplateType.CONTENT_PROJECTION\">\r\n <ng-template *ngIf=\"isLoading\" ng-label-tmp let-item=\"item\" let-clear=\"clear\"> </ng-template>\r\n\r\n <ng-template ng-label-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <span class=\"template\">\r\n <span class=\"template-item\"> {{ item[contentProjectionLabelKey] }} </span>\r\n </span>\r\n </ng-template>\r\n\r\n <!-- Option Template -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container [ngTemplateOutlet]=\"customOptionTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-select>\r\n <dropdown-actions *ngIf=\"showAdd\" [canRoute]=\"canActionsRoute\" [route]=\"addRoute\"\r\n (addClicked)=\"onClickAddNew()\"></dropdown-actions>\r\n</div>\r\n ", styles: [".template{background-color:#f0f2f4;border-radius:1.6rem;height:2.6rem;line-height:2.6rem;display:inline-block}.template-item{padding:.8rem 1.2rem}.basic-template-card{display:grid;row-gap:.4rem}.basic-template-card .image-cont,.basic-template-card .image-cont .main-image{max-width:100%;max-height:100%}.basic-template-card .info{display:flex;flex-direction:column;row-gap:.4rem;padding:.6rem;white-space:normal}.basic-template-card .info .title{font-weight:600;color:#155ed4}.basic-template-card .info .subtitle-style{font-weight:400}.basic-template-card .info .description{color:#676767;font-style:italic;font-size:1.1rem}.basic-template-card .info .col-divider{color:#12957e}.with-image{grid-template-columns:8rem auto}.without-image{grid-template-columns:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i4.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i4.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i7.NgChipComponent, selector: "ng-chip", inputs: ["backgroundColor", "size", "clear", "customColors", "enumClass", "enumValue", "inputType", "item", "isClickable", "label", "width", "withCross"] }, { kind: "component", type: i8.DropdownActionsComponent, selector: "dropdown-actions", inputs: ["canRoute", "disabled", "labelsAndRoutes", "route", "dropdownActionType"], outputs: ["addClicked"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] });
|
|
94
235
|
}
|
|
95
236
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChooseGeneralItemComponent, decorators: [{
|
|
96
237
|
type: Component,
|
|
@@ -100,10 +241,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
100
241
|
useExisting: forwardRef(() => ChooseGeneralItemComponent),
|
|
101
242
|
multi: true,
|
|
102
243
|
},
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
244
|
+
{
|
|
245
|
+
provide: NG_VALIDATORS,
|
|
246
|
+
useExisting: ChooseGeneralItemComponent,
|
|
247
|
+
multi: true,
|
|
248
|
+
},
|
|
249
|
+
], template: "<div class=\"select\">\r\n <ng-select [readonly]=\"readOnly\" [loading]=\"isLoading\" [hideSelected]=\"hideSelectedItem\"\r\n [closeOnSelect]=\"!isMultiple\" [ngStyle]=\"setWidth()\" class=\"component\" [disabled]=\"disabled\"\r\n [appendTo]=\"appendTo\" dropdownPosition=\"bottom\" (blur)=\"updateBlur()\" [bindLabel]=\"label\"\r\n [bindValue]=\"bindValueKey\" [compareWith]=\"\" [items]=\"items\" [placeholder]=\"placeholder\"\r\n (change)=\"onSelectedItemChanged($event)\" [(ngModel)]=\"selectedItemId\" [clearable]=\"clearable\"\r\n [multiple]=\"isMultiple\">\r\n <ng-container *ngIf=\"templateType == ChooseObjectTemplateType.DEFAULT\">\r\n <ng-template *ngIf=\"isLoading\" ng-label-tmp let-item=\"item\" let-clear=\"clear\"> </ng-template>\r\n\r\n <ng-template ng-label-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container *ngIf=\"objects; else nonObjectLabelTemplate\">\r\n <span class=\"template\" *ngFor=\"let object of objects; let isLast = last\">\r\n <span class=\"template-item\">\r\n {{ showLabel ? object.label + ': ' : ''\r\n }}{{\r\n isTypeDate ? (item[object.field] | date: 'mediumDate') : item[object.field]\r\n }}</span>\r\n </span>\r\n </ng-container>\r\n <ng-template #nonObjectLabelTemplate>{{ item }} </ng-template>\r\n </ng-template>\r\n\r\n <!-- Option Template -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container *ngIf=\"objects; else nonObjectOptionTemplate\">\r\n <span *ngFor=\"let object of objects; let isLast = last\">\r\n {{ showLabel ? object.label + ': ' : ''\r\n }}{{ isTypeDate ? (item[object.field] | date: 'mediumDate') : item[object.field] }}\r\n </span>\r\n </ng-container>\r\n <ng-template #nonObjectOptionTemplate>{{ item }} </ng-template>\r\n </ng-template>\r\n\r\n <ng-template *ngIf=\"isChip && !isLoading\" ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <ng-chip (mousedown)=\"$event.stopPropagation()\" [clear]=\"clear\" [withCross]=\"isMultiple\"\r\n [inputType]=\"chipInputTypes.CUSTOM\"\r\n [backgroundColor]=\"item.disabled == true ? primaryRed : chipColor\" [label]=\"item[objects[0].field]\"\r\n [item]=\"item\">\r\n </ng-chip>\r\n </ng-template>\r\n <ng-template *ngIf=\"isChip && !isLoading\" ng-option-tmp let-clear=\"clear\" let-item=\"item\">\r\n <ng-chip (mousedown)=\"$event.stopPropagation()\" [withCross]=\"false\" [inputType]=\"chipInputTypes.CUSTOM\"\r\n [backgroundColor]=\"item.disabled == true ? primaryRed : chipColor\" [label]=\"item[objects[0].field]\">\r\n </ng-chip>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"templateType == ChooseObjectTemplateType.BASIC\">\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n {{ item[basicTemplateData.label] }}\r\n </ng-template>\r\n <ng-template ng-option-tmp let-clear=\"clear\" let-item=\"item\">\r\n <mat-card class=\"basic-template-card\" [ngClass]=\"{\r\n 'with-image': basicTemplateData.hasImage,\r\n 'without-image': !basicTemplateData.hasImage,\r\n }\">\r\n <div class=\"image-cont\" *ngIf=\"basicTemplateData.hasImage\">\r\n <img class=\"main-image\" [src]=\"item[basicTemplateData.image]\"\r\n onerror=\"this.src='../../../assets/images/defaultImage.jpg';\" />\r\n </div>\r\n\r\n <div class=\"info\">\r\n <div class=\"title\">\r\n {{ item[basicTemplateData.title] }}\r\n </div>\r\n <div class=\"subtitle-style\" *ngIf=\"basicTemplateData.hasSubtitleOne\">\r\n <span>{{ item[basicTemplateData.subtitleOne] }}</span>\r\n <ng-container *ngIf=\"basicTemplateData.hasSubtitleTwo\">\r\n <span class=\"col-divider\"> | </span>\r\n <span>{{ item[basicTemplateData.subtitleTwo] }}</span>\r\n </ng-container>\r\n </div>\r\n <div class=\"description\" *ngIf=\"basicTemplateData.hasDescription\">\r\n {{ item[basicTemplateData.description] }}\r\n </div>\r\n </div>\r\n </mat-card>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"templateType == ChooseObjectTemplateType.CONTENT_PROJECTION\">\r\n <ng-template *ngIf=\"isLoading\" ng-label-tmp let-item=\"item\" let-clear=\"clear\"> </ng-template>\r\n\r\n <ng-template ng-label-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <span class=\"template\">\r\n <span class=\"template-item\"> {{ item[contentProjectionLabelKey] }} </span>\r\n </span>\r\n </ng-template>\r\n\r\n <!-- Option Template -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container [ngTemplateOutlet]=\"customOptionTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-select>\r\n <dropdown-actions *ngIf=\"showAdd\" [canRoute]=\"canActionsRoute\" [route]=\"addRoute\"\r\n (addClicked)=\"onClickAddNew()\"></dropdown-actions>\r\n</div>\r\n ", styles: [".template{background-color:#f0f2f4;border-radius:1.6rem;height:2.6rem;line-height:2.6rem;display:inline-block}.template-item{padding:.8rem 1.2rem}.basic-template-card{display:grid;row-gap:.4rem}.basic-template-card .image-cont,.basic-template-card .image-cont .main-image{max-width:100%;max-height:100%}.basic-template-card .info{display:flex;flex-direction:column;row-gap:.4rem;padding:.6rem;white-space:normal}.basic-template-card .info .title{font-weight:600;color:#155ed4}.basic-template-card .info .subtitle-style{font-weight:400}.basic-template-card .info .description{color:#676767;font-style:italic;font-size:1.1rem}.basic-template-card .info .col-divider{color:#12957e}.with-image{grid-template-columns:8rem auto}.without-image{grid-template-columns:auto}\n"] }]
|
|
250
|
+
}], ctorParameters: function () { return [{ type: i1.ChooseGeneralItemService }, { type: i2.MatDialog }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
|
|
107
251
|
type: Input
|
|
108
252
|
}], label: [{
|
|
109
253
|
type: Input
|
|
@@ -125,10 +269,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
125
269
|
type: Input
|
|
126
270
|
}], width: [{
|
|
127
271
|
type: Input
|
|
128
|
-
}], fontWeight: [{
|
|
129
|
-
type: Input
|
|
130
|
-
}], fontSize: [{
|
|
131
|
-
type: Input
|
|
132
272
|
}], isChip: [{
|
|
133
273
|
type: Input
|
|
134
274
|
}], isTypeDate: [{
|
|
@@ -143,7 +283,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
143
283
|
type: Input
|
|
144
284
|
}], disabled: [{
|
|
145
285
|
type: Input
|
|
286
|
+
}], readOnly: [{
|
|
287
|
+
type: Input
|
|
146
288
|
}], useFullObject: [{
|
|
147
289
|
type: Input
|
|
290
|
+
}], showAdd: [{
|
|
291
|
+
type: Input
|
|
292
|
+
}], dialogComponentClass: [{
|
|
293
|
+
type: Input
|
|
294
|
+
}], showDialogDefaultButtons: [{
|
|
295
|
+
type: Input
|
|
296
|
+
}], dialogComponentInputs: [{
|
|
297
|
+
type: Input
|
|
298
|
+
}], bindValueKey: [{
|
|
299
|
+
type: Input
|
|
300
|
+
}], addRoute: [{
|
|
301
|
+
type: Input
|
|
302
|
+
}], canActionsRoute: [{
|
|
303
|
+
type: Input
|
|
304
|
+
}], dialogTitle: [{
|
|
305
|
+
type: Input
|
|
306
|
+
}], clearable: [{
|
|
307
|
+
type: Input
|
|
308
|
+
}], filterParams: [{
|
|
309
|
+
type: Input
|
|
310
|
+
}], templateType: [{
|
|
311
|
+
type: Input
|
|
312
|
+
}], basicTemplateData: [{
|
|
313
|
+
type: Input
|
|
314
|
+
}], contentProjectionLabelKey: [{
|
|
315
|
+
type: Input
|
|
316
|
+
}], fullObjectControlConfig: [{
|
|
317
|
+
type: Input
|
|
318
|
+
}], change: [{
|
|
319
|
+
type: Output
|
|
320
|
+
}], blur: [{
|
|
321
|
+
type: Output
|
|
322
|
+
}], customOptionTemplate: [{
|
|
323
|
+
type: ContentChild,
|
|
324
|
+
args: ['customOption']
|
|
148
325
|
}] } });
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvb3NlLWdlbmVyYWwtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2xpYi9jaG9vc2UtZ2VuZXJhbC1pdGVtL2Nob29zZS1nZW5lcmFsLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvY2hvb3NlLWdlbmVyYWwtaXRlbS9jaG9vc2UtZ2VuZXJhbC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQWdCekUsTUFBTSxPQUFPLDBCQUEwQjtJQXlCM0I7SUF4QkEsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDN0IsS0FBSyxDQUFRO0lBQ2IsS0FBSyxDQUFTO0lBQ2QsUUFBUSxDQUFTO0lBQ2pCLFdBQVcsQ0FBUztJQUNwQixPQUFPLENBQVM7SUFDaEIsVUFBVSxDQUFVO0lBQ3BCLGdCQUFnQixDQUFVO0lBQzFCLE9BQU8sQ0FBa0I7SUFDekIsU0FBUyxDQUFVO0lBQ25CLFNBQVMsQ0FBUztJQUNsQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFVBQVUsQ0FBUztJQUNuQixRQUFRLENBQVM7SUFDakIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixVQUFVLENBQVU7SUFDcEIsU0FBUyxHQUFXLE9BQU8sQ0FBQztJQUM1QixhQUFhLEdBQVcsT0FBTyxDQUFDO0lBQ2hDLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFDdkIsY0FBYyxDQUFvQjtJQUNsQyxRQUFRLENBQVU7SUFDbEIsYUFBYSxHQUFZLEtBQUssQ0FBQztJQUV4QyxZ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c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExhYmVsQW5kRmllbGQgfSBmcm9tICcuLi9tb2RlbHMvbGFiZWwtYW5kLWZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgQ2hvb3NlR2VuZXJhbEl0ZW1TZXJ2aWNlIH0gZnJvbSAnLi9jaG9vc2UtZ2VuZXJhbC1pdGVtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjaG9vc2UtZ2VuZXJhbC1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hvb3NlLWdlbmVyYWwtaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hvb3NlLWdlbmVyYWwtaXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2hvb3NlR2VuZXJhbEl0ZW1Db21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENob29zZUdlbmVyYWxJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBpdGVtczogYW55W107XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBhcHBlbmRUbzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYXBpUGF0aDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlzTXVsdGlwbGU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaGlkZVNlbGVjdGVkSXRlbTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBvYmplY3RzOiBMYWJlbEFuZEZpZWxkW107XHJcbiAgQElucHV0KCkgc2hvd0xhYmVsOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNlcGFyYXRvcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXIgPSAyMDtcclxuICBASW5wdXQoKSBmb250V2VpZ2h0OiBudW1iZXI7XHJcbiAgQElucHV0KCkgZm9udFNpemU6IG51bWJlcjtcclxuICBASW5wdXQoKSBpc0NoaXA6IEJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1R5cGVEYXRlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGNoaXBDb2xvcjogc3RyaW5nID0gJ2JsYWNrJztcclxuICBASW5wdXQoKSBjaGlwVGV4dENvbG9yOiBzdHJpbmcgPSAnd2hpdGUnO1xyXG4gIEBJbnB1dCgpIGNoaXBXaWR0aDogbnVtYmVyID0gMTE7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtSWQ6IG51bWJlciB8IG51bWJlcltdO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHVzZUZ1bGxPYmplY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9DaG9vc2VHZW5lcmFsSXRlbVNlcnZpY2U6IENob29zZUdlbmVyYWxJdGVtU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLml0ZW1zKVxyXG4gICAgICB0aGlzLmdldERhdGEoKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUoaXRlbTogYW55KSB7XHJcbiAgICBpZiAoaXRlbSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1JZCA9IGl0ZW07XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpdGVtID09IG51bGwpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1JZCA9IGl0ZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgIHRoaXMucHJvcG9nYXRlVG91Y2ggPSBmbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG4gIHByaXZhdGUgcHJvcG9nYXRlVG91Y2ggPSAoKSA9PiB7IH07XHJcblxyXG4gIHVwZGF0ZUJsdXIoKSB7XHJcbiAgICB0aGlzLnByb3BvZ2F0ZVRvdWNoKCk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGVkSXRlbUNoYW5nZWQoJGV2ZW50KSB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnVzZUZ1bGxPYmplY3QgPyAkZXZlbnQgOiB0aGlzLnNlbGVjdGVkSXRlbUlkKTtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy51c2VGdWxsT2JqZWN0ID8gJGV2ZW50IDogdGhpcy5zZWxlY3RlZEl0ZW1JZCk7XHJcbiAgfVxyXG5cclxuICBnZXREYXRhKCkge1xyXG4gICAgaWYgKHRoaXMuYXBpUGF0aCkge1xyXG4gICAgICB0aGlzLl9DaG9vc2VHZW5lcmFsSXRlbVNlcnZpY2UuZ2V0RGF0YSh0aGlzLmFwaVBhdGgpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnlbXSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pdGVtcyA9IHJlc3BvbnNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gY29uc29sZS5lcnJvcihcImVycm9yXCIsIGVycm9yKVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0V2lkdGgoKSB7XHJcbiAgICBsZXQgc3R5bGUgPSB7XHJcbiAgICAgIHdpZHRoOiB0aGlzLndpZHRoICsgXCJyZW1cIlxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0eWxlO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9udFN0eWxlcygpIHtcclxuICAgIGxldCBmb250U3R5bGUgPSB7XHJcbiAgICAgIGZvbnRXZWlnaHQ6IHRoaXMuZm9udFdlaWdodCxcclxuICAgICAgZm9udFNpemU6IHRoaXMuZm9udFNpemUgKyBcInJlbVwiLFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvbnRTdHlsZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNlbGVjdFwiPlxyXG4gICAgPG5nLXNlbGVjdCBbaGlkZVNlbGVjdGVkXT1cImhpZGVTZWxlY3RlZEl0ZW1cIiBbY2xvc2VPblNlbGVjdF09XCIhaXNNdWx0aXBsZVwiIFtuZ1N0eWxlXT1cInNldFdpZHRoKClcIiBjbGFzcz1cImNvbXBvbmVudFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW2FwcGVuZFRvXT1cImFwcGVuZFRvXCIgZHJvcGRvd25Qb3NpdGlvbj1cImJvdHRvbVwiIChibHVyKT1cInVwZGF0ZUJsdXIoKVwiIFtiaW5kTGFiZWxdPVwibGFiZWxcIlxyXG4gICAgICAgIGJpbmRWYWx1ZT1cImlkXCIgW2NvbXBhcmVXaXRoXT1cIlwiIFtpdGVtc109XCJpdGVtc1wiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvblNlbGVjdGVkSXRlbUNoYW5nZWQoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRJdGVtSWRcIiBbbXVsdGlwbGVdPVwiaXNNdWx0aXBsZVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIiFpc0NoaXBcIiBjbGFzcz1cInRlbXBsYXRlXCIgbmctb3B0aW9uLXRtcCBuZy1sYWJlbC10bXAgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWluZGV4PVwiaW5kZXhcIlxyXG4gICAgICAgICAgICBsZXQtc2VhcmNoPVwic2VhcmNoVGVybVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBbbmdTdHlsZV09XCJzZXRGb250U3R5bGVzKClcIiAqbmdGb3I9XCJsZXQgb2JqZWN0IG9mIG9iamVjdHMgbGV0IGlzTGFzdCA9IGxhc3RcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2hvd0xhYmVsICYmICFpc1R5cGVEYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tvYmplY3QubGFiZWx9fToge3tpdGVtW29iamVjdC5maWVsZF19fSB7e2lzTGFzdCA/IFwiXCIgOiBzZXBhcmF0b3J9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93TGFiZWwgJiYgaXNUeXBlRGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7b2JqZWN0LmxhYmVsfX06IHt7aXRlbVtvYmplY3QuZmllbGRdfCBkYXRlOiAnbWVkaXVtRGF0ZSd9fSB7e2lzTGFzdCA/IFwiXCIgOiBzZXBhcmF0b3J9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhc2hvd0xhYmVsICYmIGlzVHlwZURhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2l0ZW1bb2JqZWN0LmZpZWxkXXwgZGF0ZTogJ21lZGl1bURhdGUnfX0ge3tpc0xhc3QgPyBcIlwiIDogc2VwYXJhdG9yfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIXNob3dMYWJlbCAmJiAhaXNUeXBlRGF0ZVwiPnt7aXRlbVtvYmplY3QuZmllbGRdfX17e2lzTGFzdCA/IFwiXCIgOiBzZXBhcmF0b3J9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpc0NoaXBcIiBuZy1sYWJlbC10bXAgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWNsZWFyPVwiY2xlYXJcIj5cclxuICAgICAgICAgICAgPG5nLWNoaXAgKG1vdXNlZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbY2xlYXJdPVwiY2xlYXJcIiBbd2l0aENyb3NzXT1cImlzTXVsdGlwbGVcIiBbaXRlbV09XCJpdGVtXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcFwiIFtiYWNrZ3JvdW5kQ29sb3JdPVwiY2hpcENvbG9yXCIgW2xhYmVsXT1cIml0ZW1bb2JqZWN0c1swXS5maWVsZF1cIlxyXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cImNoaXBXaWR0aFwiPlxyXG4gICAgICAgICAgICA8L25nLWNoaXA+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpc0NoaXBcIiBuZy1vcHRpb24tdG1wIGxldC1jbGVhcj1cImNsZWFyXCIgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDxuZy1jaGlwIChtb3VzZWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgW2NsZWFyXT1cImNsZWFyXCIgW3dpdGhDcm9zc109XCJmYWxzZVwiIFtpdGVtXT1cIml0ZW1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwXCIgW2JhY2tncm91bmRDb2xvcl09XCJjaGlwQ29sb3JcIiBbbGFiZWxdPVwiaXRlbVtvYmplY3RzWzBdLmZpZWxkXVwiXHJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwiY2hpcFdpZHRoXCI+XHJcbiAgICAgICAgICAgIDwvbmctY2hpcD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZy1zZWxlY3Q+XHJcbjwvZGl2PiJdfQ==
|
|
326
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvb3NlLWdlbmVyYWwtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2xpYi9jaG9vc2UtZ2VuZXJhbC1pdGVtL2Nob29zZS1nZW5lcmFsLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvY2hvb3NlLWdlbmVyYWwtaXRlbS9jaG9vc2UtZ2VuZXJhbC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUdMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBSXhCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7QUFtQmxFLE1BQU0sT0FBTywwQkFBMEI7SUFrRDNCO0lBQ0E7SUFDQTtJQWpEVixVQUFVLEdBQVcsYUFBYSxDQUFDLGdCQUFnQixDQUFDO0lBQ3BELFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDbEIsS0FBSyxDQUFRO0lBQ2IsS0FBSyxHQUFXLE9BQU8sQ0FBQztJQUN4QixRQUFRLEdBQVcsTUFBTSxDQUFDO0lBQzFCLFdBQVcsQ0FBUztJQUNwQixPQUFPLENBQVM7SUFDaEIsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUM1QixnQkFBZ0IsQ0FBVTtJQUMxQixPQUFPLENBQWtCO0lBQ3pCLFNB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VTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ3VCLG9CQUFvQjtzQkFBakQsWUFBWTt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIE5HX1ZBTElEQVRPUlMsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgVmFsaWRhdGlvbkVycm9ycyxcclxuICBWYWxpZGF0b3IsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBMYWJlbEFuZEZpZWxkIH0gZnJvbSAnLi4vbW9kZWxzL2xhYmVsLWFuZC1maWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IENob29zZUdlbmVyYWxJdGVtU2VydmljZSB9IGZyb20gJy4vY2hvb3NlLWdlbmVyYWwtaXRlbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJpbWFyeUNvbG9ycyB9IGZyb20gJy4uL3ByaW1hcnktY29sb3JzJztcclxuaW1wb3J0IHsgQ2hvb3NlT2JqZWN0VGVtcGxhdGVUeXBlIH0gZnJvbSAnLi9jaG9vc2Utb2JqZWN0LXRlbXBsYXRlLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IENob29zZU9iamVjdEJhc2ljVGVtcGxhdGUgfSBmcm9tICcuL2Nob29zZS1vYmplY3QtYmFzaWMtdGVtcGxhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBDaG9vc2VJdGVtRnVsbE9iamVjdENvbnRyb2xDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY2hvb3NlLWl0ZW0tZnVsbC1vYmplY3QtY29udHJvbC1jb25maWcuZW51bSc7XHJcbmltcG9ydCB7IENoaXBJbnB1dFR5cGUgfSBmcm9tICdAam9vbGVyL3NoYXJlZC1nZW5lcmFsLWNvbXBvbmVudHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjaG9vc2UtZ2VuZXJhbC1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hvb3NlLWdlbmVyYWwtaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hvb3NlLWdlbmVyYWwtaXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2hvb3NlR2VuZXJhbEl0ZW1Db21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDaG9vc2VHZW5lcmFsSXRlbUNvbXBvbmVudCxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaG9vc2VHZW5lcmFsSXRlbUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIFZhbGlkYXRvciwgQ29udHJvbFZhbHVlQWNjZXNzb3Jcclxue1xyXG4gIHByaW1hcnlSZWQ6IHN0cmluZyA9IFByaW1hcnlDb2xvcnMuJHByaW1hcnlSZWRDb2xvcjtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpdGVtczogYW55W107XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICdsYWJlbCc7XHJcbiAgQElucHV0KCkgYXBwZW5kVG86IHN0cmluZyA9ICdib2R5JztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFwaVBhdGg6IHN0cmluZztcclxuICBASW5wdXQoKSBpc011bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaGlkZVNlbGVjdGVkSXRlbTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBvYmplY3RzOiBMYWJlbEFuZEZpZWxkW107XHJcbiAgQElucHV0KCkgc2hvd0xhYmVsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VwYXJhdG9yOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgd2lkdGg6IG51bWJlcjtcclxuICBASW5wdXQoKSBpc0NoaXA6IEJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1R5cGVEYXRlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGNoaXBDb2xvcjogc3RyaW5nID0gJ2JsYWNrJztcclxuICBASW5wdXQoKSBjaGlwVGV4dENvbG9yOiBzdHJpbmcgPSAnd2hpdGUnO1xyXG4gIEBJbnB1dCgpIGNoaXBXaWR0aDogbnVtYmVyID0gMTE7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtSWQ6IG51bWJlciB8IG51bWJlcltdO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHJlYWRPbmx5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHVzZUZ1bGxPYmplY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93QWRkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlhbG9nQ29tcG9uZW50Q2xhc3M6IGFueTtcclxuICBASW5wdXQoKSBzaG93RGlhbG9nRGVmYXVsdEJ1dHRvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkaWFsb2dDb21wb25lbnRJbnB1dHM6IGFueSA9IHtcclxuICAgIGlzRGlhbG9nOiB0cnVlLFxyXG4gIH07XHJcbiAgQElucHV0KCkgYmluZFZhbHVlS2V5OiBzdHJpbmcgfCBudWxsID0gJ2lkJzsgLy8gb3IgbnVsbCBmb3IgZnVsbCBvYmplY3RcclxuICBASW5wdXQoKSBhZGRSb3V0ZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNhbkFjdGlvbnNSb3V0ZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkaWFsb2dUaXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNsZWFyYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgZmlsdGVyUGFyYW1zOiBhbnk7XHJcbiAgQElucHV0KCkgdGVtcGxhdGVUeXBlOiBDaG9vc2VPYmplY3RUZW1wbGF0ZVR5cGUgPSBDaG9vc2VPYmplY3RUZW1wbGF0ZVR5cGUuREVGQVVMVDtcclxuICBASW5wdXQoKSBiYXNpY1RlbXBsYXRlRGF0YTogQ2hvb3NlT2JqZWN0QmFzaWNUZW1wbGF0ZTtcclxuICBASW5wdXQoKSBjb250ZW50UHJvamVjdGlvbkxhYmVsS2V5OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZnVsbE9iamVjdENvbnRyb2xDb25maWc6IENob29zZUl0ZW1GdWxsT2JqZWN0Q29udHJvbENvbmZpZyA9XHJcbiAgICBDaG9vc2VJdGVtRnVsbE9iamVjdENvbnRyb2xDb25maWcuSUQ7XHJcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAQ29udGVudENoaWxkKCdjdXN0b21PcHRpb24nKSBjdXN0b21PcHRpb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQ2hvb3NlT2JqZWN0VGVtcGxhdGVUeXBlID0gQ2hvb3NlT2JqZWN0VGVtcGxhdGVUeXBlO1xyXG4gIGNoaXBJbnB1dFR5cGVzID0gQ2hpcElucHV0VHlwZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9DaG9vc2VHZW5lcmFsSXRlbVNlcnZpY2U6IENob29zZUdlbmVyYWxJdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRlbXBsYXRlVHlwZSA9PSBDaG9vc2VPYmplY3RUZW1wbGF0ZVR5cGUuQkFTSUMpIHtcclxuICAgICAgdGhpcy5zZXR1cEJhc2ljVGVtcGxhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldHVwQmFzaWNUZW1wbGF0ZSgpIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydpdGVtcyddICYmICFjaGFuZ2VzLml0ZW1zKSB7XHJcbiAgICAgIHRoaXMuaXRlbXMgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snYXBpUGF0aCddICYmICFjaGFuZ2VzLmFwaVBhdGgpIHtcclxuICAgICAgdGhpcy5hcGlQYXRoID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWxpZGF0ZUlucHV0cyhjaGFuZ2VzKTtcclxuXHJcbiAgICBpZiAodGhpcy5zaG93QWRkKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGVBZGRDb25maWd1cmF0aW9uKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWNoYW5nZXNbJ2l0ZW1zJ10gfHwgIWNoYW5nZXNbJ2l0ZW1zJ10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVBZGRDb25maWd1cmF0aW9uKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICAodGhpcy5hZGRSb3V0ZSA9PSAnJyB8fCB0aGlzLmFkZFJvdXRlID09IG51bGwgfHwgdGhpcy5hZGRSb3V0ZSA9PSB1bmRlZmluZWQpICYmXHJcbiAgICAgICh0aGlzLmRpYWxvZ0NvbXBvbmVudENsYXNzID09IG51bGwgfHwgdGhpcy5kaWFsb2dDb21wb25lbnRDbGFzcyA9PSB1bmRlZmluZWQpXHJcbiAgICApIHtcclxuICAgICAgdGhyb3cgRXJyb3IoXHJcbiAgICAgICAgJ1Nob3dpbmcgdGhlIGFkZCBidXR0b24gcmVxdWlyZXMgZWl0aGVyIGEgcm91dGUgZm9yIHRoZSBhZGQgYnV0dG9uIHRvIHJvdXRlIHRvLCBvciBhIGNvbXBvbmVudCBjbGFzcyBmb3IgYSBkaWFsb2cgdG8gb3BlbiB1cCB3aXRoIHRoYXQgY29tcG9uZW50LidcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUoaXRlbTogYW55KSB7XHJcbiAgICBpZiAoaXRlbSAhPSB1bmRlZmluZWQgfHwgaXRlbSAhPSBudWxsKSB7XHJcbiAgICAgIGlmICghdGhpcy51c2VGdWxsT2JqZWN0KSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1JZCA9IGl0ZW07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtSWQgPSBpdGVtLm1hcChpdGVtID0+IGl0ZW0uaWQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbUlkID0gaXRlbS5pZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtSWQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICB0aGlzLnByb3BvZ2F0ZVRvdWNoID0gZm47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xyXG4gIHByaXZhdGUgcHJvcG9nYXRlVG91Y2ggPSAoKSA9PiB7fTtcclxuICBwcml2YXRlIG9uVmFsaWRhdGlvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XHJcblxyXG4gIHVwZGF0ZUJsdXIoKSB7XHJcbiAgICB0aGlzLnByb3BvZ2F0ZVRvdWNoKCk7XHJcbiAgICB0aGlzLmJsdXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RlZEl0ZW1DaGFuZ2VkKCRldmVudCkge1xyXG4gICAgbGV0IHZhbHVlVG9Qcm9wYWdhdGU6IGFueTtcclxuICAgIGlmICh0aGlzLmZ1bGxPYmplY3RDb250cm9sQ29uZmlnID09IENob29zZUl0ZW1GdWxsT2JqZWN0Q29udHJvbENvbmZpZy5JRCkge1xyXG4gICAgICB2YWx1ZVRvUHJvcGFnYXRlID0gdGhpcy5zZWxlY3RlZEl0ZW1JZDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5mdWxsT2JqZWN0Q29udHJvbENvbmZpZyA9PSBDaG9vc2VJdGVtRnVsbE9iamVjdENvbnRyb2xDb25maWcuT0JKRUNUKSB7XHJcbiAgICAgIHZhbHVlVG9Qcm9wYWdhdGUgPSAkZXZlbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBFcnJvcignQ2hvb3NlSXRlbUZ1bGxPYmplY3RDb250cm9sQ29uZmlnIGlzIG5vdCByZWNvZ25pemVkLicpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodmFsdWVUb1Byb3BhZ2F0ZSk7XHJcbiAgICB0aGlzLmNoYW5nZS5lbWl0KCRldmVudCk7XHJcbiAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVJbnB1dHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKFxyXG4gICAgICBjaGFuZ2VzLmFwaVBhdGggJiZcclxuICAgICAgY2hhbmdlcy5hcGlQYXRoLmN1cnJlbnRWYWx1ZSAmJlxyXG4gICAgICBjaGFuZ2VzLml0ZW1zICYmXHJcbiAgICAgIGNoYW5nZXMuaXRlbXMuY3VycmVudFZhbHVlXHJcbiAgICApIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ0JvdGggYW4gQVBJIHBhdGggYW5kIGFuIGl0ZW1zIGxpc3Qgd2FzIHByb3ZpZGVkLicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YSgpIHtcclxuICAgIGlmICh0aGlzLmFwaVBhdGgpIHtcclxuICAgICAgdGhpcy5fQ2hvb3NlR2VuZXJhbEl0ZW1TZXJ2aWNlLmdldERhdGEodGhpcy5hcGlQYXRoLCB0aGlzLmZpbHRlclBhcmFtcykuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2U6IGFueVtdKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLml0ZW1zID0gcmVzcG9uc2U7XHJcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJyZXNwb25zZTogaXRlbXMgZnJvbSAnXCIsIHRoaXMuYXBpUGF0aCwgXCInIGZvdW5kOiBcIiwgdGhpcy5pdGVtcyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogZXJyb3IgPT4gY29uc29sZS5lcnJvcignZXJyb3InLCBlcnJvciksXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0V2lkdGgoKSB7XHJcbiAgICBsZXQgc3R5bGUgPSB7fTtcclxuICAgIGlmICh0aGlzLndpZHRoKSB7XHJcbiAgICAgIHN0eWxlID0ge1xyXG4gICAgICAgIHdpZHRoOiB0aGlzLndpZHRoICsgJ3JlbScsXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzdHlsZSA9IHtcclxuICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0eWxlO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0FkZE5ldygpIHtcclxuICAgIGNvbnNvbGUubG9nKCdEWU5BTUlDIERJQUxPRyBOT1QgSU1QTEVNRU5URUQgSU4gTElCUkFSWSBZRVQnKTtcclxuICAgIFxyXG4gICAgLy8gQWRkIGR5bmFtaWMgZGlhbG9nIGxhdGVyXHJcbiAgICAvLyBsZXQgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihEeW5hbWljRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAvLyAgIHBhbmVsQ2xhc3M6ICdjdXN0b20tZGlhbG9nLXBhZGRpbmcnLFxyXG4gICAgLy8gICB3aWR0aDogJzkwJScsXHJcbiAgICAvLyAgIG1pbldpZHRoOiAnOTAlJyxcclxuICAgIC8vICAgbWF4SGVpZ2h0OiAnOTB2aCcsXHJcbiAgICAvLyAgIGRhdGE6IHtcclxuICAgIC8vICAgICBjb21wb25lbnQ6IHRoaXMuZGlhbG9nQ29tcG9uZW50Q2xhc3MsXHJcbiAgICAvLyAgICAgc2hvd0RlZmF1bHRCdXR0b25zOiB0aGlzLnNob3dEaWFsb2dEZWZhdWx0QnV0dG9ucyxcclxuICAgIC8vICAgICB0aXRsZTogdGhpcy5kaWFsb2dUaXRsZSxcclxuICAgIC8vICAgICBpbnB1dHM6IHRoaXMuZGlhbG9nQ29tcG9uZW50SW5wdXRzLFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gfSk7XHJcblxyXG4gICAgLy8gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgIC8vICAgaWYgKGRhdGEpIHtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZygnTmV3IGl0ZW0gQWRkZWQ6ICcsIGRhdGEpO1xyXG4gICAgLy8gICAgIHRoaXMuaXRlbXMucHVzaChkYXRhKTtcclxuICAgIC8vICAgICB0aGlzLml0ZW1zID0gWy4uLnRoaXMuaXRlbXNdO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlPyhmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgY29uc3QgZXJyb3JzID0gY29udHJvbC5lcnJvcnM7XHJcbiAgICAgIGlmIChlcnJvcnMpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnZXJyb3Jzc3NzOiAnLCBlcnJvcnMpO1xyXG4gICAgICAgIHJldHVybiBlcnJvcnM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNlbGVjdFwiPlxyXG4gICAgPG5nLXNlbGVjdCBbcmVhZG9ubHldPVwicmVhZE9ubHlcIiBbbG9hZGluZ109XCJpc0xvYWRpbmdcIiBbaGlkZVNlbGVjdGVkXT1cImhpZGVTZWxlY3RlZEl0ZW1cIlxyXG4gICAgICAgIFtjbG9zZU9uU2VsZWN0XT1cIiFpc011bHRpcGxlXCIgW25nU3R5bGVdPVwic2V0V2lkdGgoKVwiIGNsYXNzPVwiY29tcG9uZW50XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIiBkcm9wZG93blBvc2l0aW9uPVwiYm90dG9tXCIgKGJsdXIpPVwidXBkYXRlQmx1cigpXCIgW2JpbmRMYWJlbF09XCJsYWJlbFwiXHJcbiAgICAgICAgW2JpbmRWYWx1ZV09XCJiaW5kVmFsdWVLZXlcIiBbY29tcGFyZVdpdGhdPVwiXCIgW2l0ZW1zXT1cIml0ZW1zXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0ZWRJdGVtQ2hhbmdlZCgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEl0ZW1JZFwiIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlXCJcclxuICAgICAgICBbbXVsdGlwbGVdPVwiaXNNdWx0aXBsZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZVR5cGUgPT0gQ2hvb3NlT2JqZWN0VGVtcGxhdGVUeXBlLkRFRkFVTFRcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNMb2FkaW5nXCIgbmctbGFiZWwtdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1jbGVhcj1cImNsZWFyXCI+IDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmctbGFiZWwtdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCIgbGV0LXNlYXJjaD1cInNlYXJjaFRlcm1cIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvYmplY3RzOyBlbHNlIG5vbk9iamVjdExhYmVsVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRlbXBsYXRlXCIgKm5nRm9yPVwibGV0IG9iamVjdCBvZiBvYmplY3RzOyBsZXQgaXNMYXN0ID0gbGFzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRlbXBsYXRlLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNob3dMYWJlbCA/IG9iamVjdC5sYWJlbCArICc6ICcgOiAnJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNUeXBlRGF0ZSA/IChpdGVtW29iamVjdC5maWVsZF0gfCBkYXRlOiAnbWVkaXVtRGF0ZScpIDogaXRlbVtvYmplY3QuZmllbGRdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9uT2JqZWN0TGFiZWxUZW1wbGF0ZT57eyBpdGVtIH19IDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8IS0tIE9wdGlvbiBUZW1wbGF0ZSAtLT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nLW9wdGlvbi10bXAgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWluZGV4PVwiaW5kZXhcIiBsZXQtc2VhcmNoPVwic2VhcmNoVGVybVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9iamVjdHM7IGVsc2Ugbm9uT2JqZWN0T3B0aW9uVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgb2JqZWN0IG9mIG9iamVjdHM7IGxldCBpc0xhc3QgPSBsYXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNob3dMYWJlbCA/IG9iamVjdC5sYWJlbCArICc6ICcgOiAnJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fXt7IGlzVHlwZURhdGUgPyAoaXRlbVtvYmplY3QuZmllbGRdIHwgZGF0ZTogJ21lZGl1bURhdGUnKSA6IGl0ZW1bb2JqZWN0LmZpZWxkXSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub25PYmplY3RPcHRpb25UZW1wbGF0ZT57eyBpdGVtIH19IDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpc0NoaXAgJiYgIWlzTG9hZGluZ1wiIG5nLWxhYmVsLXRtcCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtY2xlYXI9XCJjbGVhclwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNoaXAgKG1vdXNlZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbY2xlYXJdPVwiY2xlYXJcIiBbd2l0aENyb3NzXT1cImlzTXVsdGlwbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dFR5cGVdPVwiY2hpcElucHV0VHlwZXMuQ1VTVE9NXCJcclxuICAgICAgICAgICAgICAgICAgICBbYmFja2dyb3VuZENvbG9yXT1cIml0ZW0uZGlzYWJsZWQgPT0gdHJ1ZSA/IHByaW1hcnlSZWQgOiBjaGlwQ29sb3JcIiBbbGFiZWxdPVwiaXRlbVtvYmplY3RzWzBdLmZpZWxkXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jaGlwPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpc0NoaXAgJiYgIWlzTG9hZGluZ1wiIG5nLW9wdGlvbi10bXAgbGV0LWNsZWFyPVwiY2xlYXJcIiBsZXQtaXRlbT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jaGlwIChtb3VzZWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgW3dpdGhDcm9zc109XCJmYWxzZVwiIFtpbnB1dFR5cGVdPVwiY2hpcElucHV0VHlwZXMuQ1VTVE9NXCJcclxuICAgICAgICAgICAgICAgICAgICBbYmFja2dyb3VuZENvbG9yXT1cIml0ZW0uZGlzYWJsZWQgPT0gdHJ1ZSA/IHByaW1hcnlSZWQgOiBjaGlwQ29sb3JcIiBbbGFiZWxdPVwiaXRlbVtvYmplY3RzWzBdLmZpZWxkXVwiPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jaGlwPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGVtcGxhdGVUeXBlID09IENob29zZU9iamVjdFRlbXBsYXRlVHlwZS5CQVNJQ1wiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmctbGFiZWwtdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1jbGVhcj1cImNsZWFyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBpdGVtW2Jhc2ljVGVtcGxhdGVEYXRhLmxhYmVsXSB9fVxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmctb3B0aW9uLXRtcCBsZXQtY2xlYXI9XCJjbGVhclwiIGxldC1pdGVtPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkIGNsYXNzPVwiYmFzaWMtdGVtcGxhdGUtY2FyZFwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAnd2l0aC1pbWFnZSc6IGJhc2ljVGVtcGxhdGVEYXRhLmhhc0ltYWdlLFxyXG4gICAgICAgICAgICAgICd3aXRob3V0LWltYWdlJzogIWJhc2ljVGVtcGxhdGVEYXRhLmhhc0ltYWdlLFxyXG4gICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRcIiAqbmdJZj1cImJhc2ljVGVtcGxhdGVEYXRhLmhhc0ltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtYWluLWltYWdlXCIgW3NyY109XCJpdGVtW2Jhc2ljVGVtcGxhdGVEYXRhLmltYWdlXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmVycm9yPVwidGhpcy5zcmM9Jy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvZGVmYXVsdEltYWdlLmpwZyc7XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtW2Jhc2ljVGVtcGxhdGVEYXRhLnRpdGxlXSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YnRpdGxlLXN0eWxlXCIgKm5nSWY9XCJiYXNpY1RlbXBsYXRlRGF0YS5oYXNTdWJ0aXRsZU9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgaXRlbVtiYXNpY1RlbXBsYXRlRGF0YS5zdWJ0aXRsZU9uZV0gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYmFzaWNUZW1wbGF0ZURhdGEuaGFzU3VidGl0bGVUd29cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbC1kaXZpZGVyXCI+IHwgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW1bYmFzaWNUZW1wbGF0ZURhdGEuc3VidGl0bGVUd29dIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIiAqbmdJZj1cImJhc2ljVGVtcGxhdGVEYXRhLmhhc0Rlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtW2Jhc2ljVGVtcGxhdGVEYXRhLmRlc2NyaXB0aW9uXSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlVHlwZSA9PSBDaG9vc2VPYmplY3RUZW1wbGF0ZVR5cGUuQ09OVEVOVF9QUk9KRUNUSU9OXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImlzTG9hZGluZ1wiIG5nLWxhYmVsLXRtcCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtY2xlYXI9XCJjbGVhclwiPiA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nLWxhYmVsLXRtcCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaW5kZXg9XCJpbmRleFwiIGxldC1zZWFyY2g9XCJzZWFyY2hUZXJtXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZW1wbGF0ZS1pdGVtXCI+IHt7IGl0ZW1bY29udGVudFByb2plY3Rpb25MYWJlbEtleV0gfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBPcHRpb24gVGVtcGxhdGUgLS0+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCIgbGV0LXNlYXJjaD1cInNlYXJjaFRlcm1cIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tT3B0aW9uVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXNlbGVjdD5cclxuICAgIDxkcm9wZG93bi1hY3Rpb25zICpuZ0lmPVwic2hvd0FkZFwiIFtjYW5Sb3V0ZV09XCJjYW5BY3Rpb25zUm91dGVcIiBbcm91dGVdPVwiYWRkUm91dGVcIlxyXG4gICAgICAgIChhZGRDbGlja2VkKT1cIm9uQ2xpY2tBZGROZXcoKVwiPjwvZHJvcGRvd24tYWN0aW9ucz5cclxuPC9kaXY+XHJcbiAgIl19
|