nira-falcon 0.1.39 → 0.1.41
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/core-input/core-input.component.mjs +1 -2
- package/esm2022/lib/core-select/core-select.component.mjs +55 -12
- package/fesm2022/nira-falcon.mjs +54 -12
- package/fesm2022/nira-falcon.mjs.map +1 -1
- package/lib/core-select/core-select.component.d.ts +10 -4
- package/package.json +1 -1
- package/styles.css +0 -1
|
@@ -127,7 +127,6 @@ export class CoreInputComponent {
|
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
get errorMassage() {
|
|
130
|
-
console.log(this.inputFormControl.errors);
|
|
131
130
|
if (this.inputFormControl.errors) {
|
|
132
131
|
if (Object.keys(this.inputFormControl.errors).length != 0) {
|
|
133
132
|
let errorMessage;
|
|
@@ -192,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
192
191
|
}], errorMessages: [{
|
|
193
192
|
type: Input
|
|
194
193
|
}] } });
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbGliL3NyYy9saWIvY29yZS1pbnB1dC9jb3JlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLWlucHV0L2NvcmUtaW5wdXQtZmFsY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUFZN0QsTUFBTSxPQUFPLGtCQUFrQjtJQUwvQjtRQU9FLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUlOLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDL0IsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YscUJBQWdCLEdBQWdCLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQVN4RCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNoQixhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDcEQsZUFBVSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBSWhFLG1CQUFjLEdBQW1CO1lBQy9CLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUU7WUFDbEQsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFF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dUI7Z0NBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxjQUFjO2dDQUMzRCxZQUFZLENBQUM7cUJBQ2hCO3lCQUFNLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTt3QkFDNUIsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNyQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ1IsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHOzRCQUNsQixLQUFLLENBQUMsT0FBTztnQ0FDWCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsZUFBZSxDQUNoRSxDQUFDO3FCQUNIO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sWUFBWSxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNMLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQzsrR0EzSlUsa0JBQWtCO21HQUFsQixrQkFBa0IsK1pDZC9CLHdxREF1REE7OzRGRHpDYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsWUFBWTs4QkFRVCxJQUFJO3NCQUFoQixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ08sT0FBTztzQkFBbkIsS0FBSztnQkFRRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDTSxhQUFhO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcclxudHlwZSBJbnB1dFR5cGUgPSAnbnVtYmVyJyB8ICdwYXNzd29yZCcgfCAndGV4dCcgfCAnY29sb3InO1xyXG5pbnRlcmZhY2UgRXJyb3JNYXNzYWdlIHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIHBhdHRlcm4/OiBzdHJpbmc7XHJcbn1cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1pbnB1dCcgKyBlbnZpcm9ubWVudC50ZW1wTmFtZSxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWlucHV0JyArIGVudmlyb25tZW50LnN0eWxlTmFtZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlSW5wdXRDb21wb25lbnQge1xyXG4gIGlucHV0VHlwZSE6IElucHV0VHlwZTtcclxuICBpc0Rpc2FibGUgPSBmYWxzZTtcclxuICBsYXN0VmFsdWUgPSAnJztcclxuICBASW5wdXQoKSBzZXQgdHlwZSh2YWx1ZTogSW5wdXRUeXBlKSB7XHJcbiAgICB0aGlzLmlucHV0VHlwZSA9IHZhbHVlO1xyXG4gIH1cclxuICBASW5wdXQoKSBjYW5TaG93V29yZGlmeUZhID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY2FuU3BsaXROdW1iZXIgPSBmYWxzZTtcclxuICBASW5wdXQoKSBjYW5IaWdobGlnaHRCYWNrZ3JvdW5kID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbWF4TGVuZ3RoID0gMjAwMDtcclxuICBASW5wdXQoKSBzaXplID0gJyc7XHJcbiAgQElucHV0KCkgaW5wdXRGb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIFtdKTtcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc0Rpc2FibGUgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnB1dEZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uQmx1ckVtaXQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIHNldCBlcnJvck1lc3NhZ2VzKHZhbHVlOiBFcnJvck1hc3NhZ2VbXSkge1xyXG4gICAgdGhpcy5fZXJyb3JNZXNzYWdlcyA9IHRoaXMuX2Vycm9yTWVzc2FnZXMuY29uY2F0KHZhbHVlKTtcclxuICB9XHJcbiAgX2Vycm9yTWVzc2FnZXM6IEVycm9yTWFzc2FnZVtdID0gW1xyXG4gICAgeyB0eXBlOiAncmVxdWlyZWQnLCBtZXNzYWdlOiAn2KfbjNmGINmB24zZhNivINiu2KfZhNuMINin2LPYqicgfSxcclxuICAgIHsgdHlwZTogJ3ByZVBheW1lbnQnLCBtZXNzYWdlOiAn2YXYqNmE2Log2LXYrduM2K0g2YbbjNiz2KonIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6ICdtaW5sZW5ndGgnLFxyXG4gICAgICBtZXNzYWdlOiAnJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6ICdtYXhsZW5ndGgnLFxyXG4gICAgICBtZXNzYWdlOiAnJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6ICdlbWFpbCcsXHJcbiAgICAgIG1lc3NhZ2U6ICfYp9uM2YXbjNmEINix2Kcg2KjZhyDYr9ix2LPYqiDZiNin2LHYryDZhtmF2KfbjNuM2K8nLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogJ21vYmlsZVBob25lJyxcclxuICAgICAgbWVzc2FnZTogJ9i02YXYp9ix2Ycg2YfZhdix2KfZhyDYp9i02KrYqNin2Ycg2YfYs9iqJyxcclxuICAgIH0sXHJcbiAgXTtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcclxuICAgICAgaWYgKHRoaXMubGFzdFZhbHVlICE9PSBjaGFuZ2UpIHtcclxuICAgICAgICB0aGlzLmZvcm1hdFByaWNlKGNoYW5nZS50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmZvcm1hdFByaWNlKGV2ZW50LnNyY0VsZW1lbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25QYXN0ZShldmVudDogYW55KSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgdmFsdWUgPSBldmVudC5zcmNFbGVtZW50LnZhbHVlO1xyXG4gICAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICBpZiAodGhpcy5pbnB1dFR5cGUgPT09ICdudW1iZXInICYmIHRoaXMuY2FuU3BsaXROdW1iZXIpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodmFsdWUucmVwbGFjZUFsbCgnLCcsICcnKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlucHV0Rm9ybUNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwgMTApO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKCkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRUeXBlID09PSAnbnVtYmVyJyAmJiB0aGlzLmNhblNwbGl0TnVtYmVyKSB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLmlucHV0Rm9ybUNvbnRyb2wudmFsdWUucmVwbGFjZUFsbCgnLCcsICcnKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoIXRoaXMuaW5wdXRGb3JtQ29udHJvbC5lcnJvcnMpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy5pbnB1dEZvcm1Db250cm9sLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5vbkJsdXJFbWl0LmVtaXQodGhpcy5pbnB1dEZvcm1Db250cm9sLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uS2V5UHJlc3MoKSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dEZvcm1Db250cm9sLnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoID09IHRoaXMubWF4TGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9ybWF0UHJpY2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRUeXBlID09PSAnbnVtYmVyJyAmJiB0aGlzLmNhblNwbGl0TnVtYmVyKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IGV2ZW50O1xyXG4gICAgICAgIHZhbHVlID0gTnVtYmVyKHZhbHVlLnJlcGxhY2VBbGwoJywnLCAnJykpO1xyXG4gICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHtcclxuICAgICAgICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5zZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgICB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBmb3JtYXRWYWx1ZSA9IHZhbHVlXHJcbiAgICAgICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCAnLCcpO1xyXG4gICAgICAgICAgdGhpcy5pbnB1dEZvcm1Db250cm9sLnNldFZhbHVlKGZvcm1hdFZhbHVlKTtcclxuICAgICAgICAgIHRoaXMubGFzdFZhbHVlID0gZm9ybWF0VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5pbnB1dEZvcm1Db250cm9sLmVycm9ycykge1xyXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5wdXRGb3JtQ29udHJvbC52YWx1ZS5yZXBsYWNlQWxsKCcsJywgJycpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghdGhpcy5pbnB1dEZvcm1Db250cm9sLmVycm9ycykge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLmlucHV0Rm9ybUNvbnRyb2wudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZXJyb3JNYXNzYWdlKCk6IEVycm9yTWFzc2FnZSB8IHVuZGVmaW5lZCB7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmlucHV0Rm9ybUNvbnRyb2wuZXJyb3JzKTtcclxuICAgIGlmICh0aGlzLmlucHV0Rm9ybUNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLmlucHV0Rm9ybUNvbnRyb2wuZXJyb3JzKS5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgIGxldCBlcnJvck1lc3NhZ2U7XHJcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5pbnB1dEZvcm1Db250cm9sLmVycm9ycykuZmlsdGVyKChrZXkpID0+IHtcclxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IHRoaXMuX2Vycm9yTWVzc2FnZXMuZmluZChcclxuICAgICAgICAgICAgKGVycm9yKSA9PiBlcnJvci50eXBlID09PSBrZXlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgaWYgKGVycm9yTWVzc2FnZSAmJiBrZXkgPT09ICdtaW5sZW5ndGgnKSB7XHJcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZS5tZXNzYWdlID1cclxuICAgICAgICAgICAgICAnINit2K/Yp9mC2YQg2qnYp9ix2qnYqtixINmF2KzYp9iyICcgK1xyXG4gICAgICAgICAgICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbD8uZXJyb3JzPy5bJ21pbmxlbmd0aCddLnJlcXVpcmVkTGVuZ3RoICtcclxuICAgICAgICAgICAgICAnINmF24wg2KjYp9i02K8gICc7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGVycm9yTWVzc2FnZSAmJiBrZXkgPT09ICdtYXhsZW5ndGgnKSB7XHJcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZS5tZXNzYWdlID1cclxuICAgICAgICAgICAgICAnINit2K/Yp9qp2KvYsSDaqdin2LHaqdiq2LEg2YXYrNin2LIgICcgK1xyXG4gICAgICAgICAgICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbD8uZXJyb3JzPy5bJ21heGxlbmd0aCddLnJlcXVpcmVkTGVuZ3RoICtcclxuICAgICAgICAgICAgICAnINmF24wg2KjYp9i02K8gICc7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3BhdHRlcm4nKSB7XHJcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IHRoaXMuX2Vycm9yTWVzc2FnZXMuZmluZChcclxuICAgICAgICAgICAgICAoZXJyb3IpID0+XHJcbiAgICAgICAgICAgICAgICBlcnJvci50eXBlID09PSBrZXkgJiZcclxuICAgICAgICAgICAgICAgIGVycm9yLnBhdHRlcm4gPT09XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbD8uZXJyb3JzPy5bJ3BhdHRlcm4nXT8ucmVxdWlyZWRQYXR0ZXJuXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGVycm9yTWVzc2FnZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiY29udGFpbmVyLWlucHV0XCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgZXJyb3I6XHJcbiAgICAgICAgKGlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCB8fCBpbnB1dEZvcm1Db250cm9sLmRpcnR5KSAmJlxyXG4gICAgICAgIGlucHV0Rm9ybUNvbnRyb2wuZXJyb3JzXHJcbiAgICB9XCJcclxuICA+XHJcbiAgICA8aW5wdXRcclxuICAgICAgW3R5cGVdPVwiaW5wdXRUeXBlXCJcclxuICAgICAgY2xhc3M9XCJhLWlucHV0LXN0eWxlXCJcclxuICAgICAgW2Zvcm1Db250cm9sXT1cImlucHV0Rm9ybUNvbnRyb2xcIlxyXG4gICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgIChrZXl1cCk9XCJjaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChwYXN0ZSk9XCJvblBhc3RlKCRldmVudClcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgJ2hhdmUtdmFsdWUnOiBpbnB1dEZvcm1Db250cm9sLnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoID4gMCxcclxuICAgICAgICAnaGlnaGxpZ2h0LWJhY2tncm91bmQnOlxyXG4gICAgICAgICAgY2FuSGlnaGxpZ2h0QmFja2dyb3VuZCAmJlxyXG4gICAgICAgICAgaW5wdXRGb3JtQ29udHJvbC52YWx1ZS50b1N0cmluZygpLmxlbmd0aCA9PT0gMCAmJlxyXG4gICAgICAgICAgIShcclxuICAgICAgICAgICAgKGlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCB8fCBpbnB1dEZvcm1Db250cm9sLmRpcnR5KSAmJlxyXG4gICAgICAgICAgICBpbnB1dEZvcm1Db250cm9sLmVycm9yc1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICAnZGlzYWJsZS1pbnB1dCc6IGlzRGlzYWJsZVxyXG4gICAgICB9XCJcclxuICAgICAgKGtleXByZXNzKT1cIm9uS2V5UHJlc3MoKVwiXHJcbiAgICAvPlxyXG4gICAgPGxhYmVsICpuZ0lmPVwicGxhY2Vob2xkZXIubGVuZ3RoID4gMFwiPnt7IHBsYWNlaG9sZGVyIH19IDwvbGFiZWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGFiZWwtZXJyb3Igb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICAgIDxzcGFuXHJcbiAgICAgICAgY2xhc3M9XCJsYWJlbC1udW1iZXJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBjYW5TaG93V29yZGlmeUZhICYmXHJcbiAgICAgICAgICBpbnB1dEZvcm1Db250cm9sLnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgaW5wdXRUeXBlID09PSAnbnVtYmVyJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgICAgPjxhcHAtY29yZS1udW1iZXJcclxuICAgICAgICAgIFtjYW5TaG93V29yZEluVG9vbFRpcF09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbdHlwZV09XCInd29yZCdcIlxyXG4gICAgICAgICAgW251bWJlcl09XCJpbnB1dEZvcm1Db250cm9sLnZhbHVlXCJcclxuICAgICAgICA+PC9hcHAtY29yZS1udW1iZXJcclxuICAgICAgPjwvc3Bhbj5cclxuICAgICAgPHNwYW5cclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgKGlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCB8fCBpbnB1dEZvcm1Db250cm9sLmRpcnR5KSAmJlxyXG4gICAgICAgICAgaW5wdXRGb3JtQ29udHJvbC5lcnJvcnNcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgZXJyb3JNYXNzYWdlPy5tZXNzYWdlIH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbGliL3NyYy9saWIvY29yZS1pbnB1dC9jb3JlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLWlucHV0L2NvcmUtaW5wdXQtZmFsY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUFZN0QsTUFBTSxPQUFPLGtCQUFrQjtJQUwvQjtRQU9FLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUlOLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDL0IsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YscUJBQWdCLEdBQWdCLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQVN4RCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNoQixhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDcEQsZUFBVSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBSWhFLG1CQUFjLEdBQW1CO1lBQy9CLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUU7WUFDbEQsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRTtZQUNqRDtnQkFDRSxJQUFJLEVBQUUsV0FBVztnQkFDakIsT0FBTyxFQUFFLEVBQUU7YUFDWjtZQUNEO2dCQUNFLElBQUksRUFBRSxXQUFXO2dCQUNqQixPQUFPLEVBQUUsRUFBRTthQUNaO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsT0FBTyxFQUFFLDhCQUE4QjthQUN4QztZQUNEO2dCQUNFLElBQUksRUFBRSxhQUFhO2dCQUNuQixPQUFPLEVBQUUsd0JBQXdCO2FBQ2xDO1NBQ0YsQ0FBQztLQTZHSDtJQXZKQyxJQUFhLElBQUksQ0FBQyxLQUFnQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBT0QsSUFBYSxPQUFPLENBQUMsS0FBYztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUlELElBQWEsYUFBYSxDQUFDLEtBQXFCO1FBQzlDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQXFCRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN0RCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFO2dCQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQ3JDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFDLEtBQVU7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDL0M7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUMzQjthQUNGO1FBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckU7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDakQ7U0FDRjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuRSxPQUFPLEtBQUssQ0FBQztTQUNkO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN0RCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztnQkFDbEIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDaEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7aUJBQ3hCO3FCQUFNO29CQUNMLE1BQU0sV0FBVyxHQUFHLEtBQUs7eUJBQ3RCLFFBQVEsRUFBRTt5QkFDVixPQUFPLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO2lCQUM5QjtnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtvQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ3JFO1lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDakQ7U0FDRjtJQUNILENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDaEMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUN6RCxJQUFJLFlBQVksQ0FBQztnQkFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ3ZELFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDckMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUM5QixDQUFDO29CQUVGLElBQUksWUFBWSxJQUFJLEdBQUcsS0FBSyxXQUFXLEVBQUU7d0JBQ3ZDLFlBQVksQ0FBQyxPQUFPOzRCQUNsQixxQkFBcUI7Z0NBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxjQUFjO2dDQUMzRCxZQUFZLENBQUM7cUJBQ2hCO3lCQUFNLElBQUksWUFBWSxJQUFJLEdBQUcsS0FBSyxXQUFXLEVBQUU7d0JBQzlDLFlBQVksQ0FBQyxPQUFPOzRCQUNsQix1QkFBdUI7Z0NBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxjQUFjO2dDQUMzRCxZQUFZLENBQUM7cUJBQ2hCO3lCQUFNLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTt3QkFDNUIsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNyQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ1IsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHOzRCQUNsQixLQUFLLENBQUMsT0FBTztnQ0FDWCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsZUFBZSxDQUNoRSxDQUFDO3FCQUNIO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sWUFBWSxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNMLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQzsrR0ExSlUsa0JBQWtCO21HQUFsQixrQkFBa0IsK1pDZC9CLHdxREF1REE7OzRGRHpDYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsWUFBWTs4QkFRVCxJQUFJO3NCQUFoQixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ08sT0FBTztzQkFBbkIsS0FBSztnQkFRRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDTSxhQUFhO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcclxudHlwZSBJbnB1dFR5cGUgPSAnbnVtYmVyJyB8ICdwYXNzd29yZCcgfCAndGV4dCcgfCAnY29sb3InO1xyXG5pbnRlcmZhY2UgRXJyb3JNYXNzYWdlIHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIHBhdHRlcm4/OiBzdHJpbmc7XHJcbn1cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1pbnB1dCcgKyBlbnZpcm9ubWVudC50ZW1wTmFtZSxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWlucHV0JyArIGVudmlyb25tZW50LnN0eWxlTmFtZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlSW5wdXRDb21wb25lbnQge1xyXG4gIGlucHV0VHlwZSE6IElucHV0VHlwZTtcclxuICBpc0Rpc2FibGUgPSBmYWxzZTtcclxuICBsYXN0VmFsdWUgPSAnJztcclxuICBASW5wdXQoKSBzZXQgdHlwZSh2YWx1ZTogSW5wdXRUeXBlKSB7XHJcbiAgICB0aGlzLmlucHV0VHlwZSA9IHZhbHVlO1xyXG4gIH1cclxuICBASW5wdXQoKSBjYW5TaG93V29yZGlmeUZhID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY2FuU3BsaXROdW1iZXIgPSBmYWxzZTtcclxuICBASW5wdXQoKSBjYW5IaWdobGlnaHRCYWNrZ3JvdW5kID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbWF4TGVuZ3RoID0gMjAwMDtcclxuICBASW5wdXQoKSBzaXplID0gJyc7XHJcbiAgQElucHV0KCkgaW5wdXRGb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIFtdKTtcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc0Rpc2FibGUgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnB1dEZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uQmx1ckVtaXQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIHNldCBlcnJvck1lc3NhZ2VzKHZhbHVlOiBFcnJvck1hc3NhZ2VbXSkge1xyXG4gICAgdGhpcy5fZXJyb3JNZXNzYWdlcyA9IHRoaXMuX2Vycm9yTWVzc2FnZXMuY29uY2F0KHZhbHVlKTtcclxuICB9XHJcbiAgX2Vycm9yTWVzc2FnZXM6IEVycm9yTWFzc2FnZVtdID0gW1xyXG4gICAgeyB0eXBlOiAncmVxdWlyZWQnLCBtZXNzYWdlOiAn2KfbjNmGINmB24zZhNivINiu2KfZhNuMINin2LPYqicgfSxcclxuICAgIHsgdHlwZTogJ3ByZVBheW1lbnQnLCBtZXNzYWdlOiAn2YXYqNmE2Log2LXYrduM2K0g2YbbjNiz2KonIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6ICdtaW5sZW5ndGgnLFxyXG4gICAgICBtZXNzYWdlOiAnJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6ICdtYXhsZW5ndGgnLFxyXG4gICAgICBtZXNzYWdlOiAnJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6ICdlbWFpbCcsXHJcbiAgICAgIG1lc3NhZ2U6ICfYp9uM2YXbjNmEINix2Kcg2KjZhyDYr9ix2LPYqiDZiNin2LHYryDZhtmF2KfbjNuM2K8nLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogJ21vYmlsZVBob25lJyxcclxuICAgICAgbWVzc2FnZTogJ9i02YXYp9ix2Ycg2YfZhdix2KfZhyDYp9i02KrYqNin2Ycg2YfYs9iqJyxcclxuICAgIH0sXHJcbiAgXTtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcclxuICAgICAgaWYgKHRoaXMubGFzdFZhbHVlICE9PSBjaGFuZ2UpIHtcclxuICAgICAgICB0aGlzLmZvcm1hdFByaWNlKGNoYW5nZS50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmZvcm1hdFByaWNlKGV2ZW50LnNyY0VsZW1lbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25QYXN0ZShldmVudDogYW55KSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgdmFsdWUgPSBldmVudC5zcmNFbGVtZW50LnZhbHVlO1xyXG4gICAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICBpZiAodGhpcy5pbnB1dFR5cGUgPT09ICdudW1iZXInICYmIHRoaXMuY2FuU3BsaXROdW1iZXIpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodmFsdWUucmVwbGFjZUFsbCgnLCcsICcnKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlucHV0Rm9ybUNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwgMTApO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKCkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRUeXBlID09PSAnbnVtYmVyJyAmJiB0aGlzLmNhblNwbGl0TnVtYmVyKSB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLmlucHV0Rm9ybUNvbnRyb2wudmFsdWUucmVwbGFjZUFsbCgnLCcsICcnKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoIXRoaXMuaW5wdXRGb3JtQ29udHJvbC5lcnJvcnMpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy5pbnB1dEZvcm1Db250cm9sLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5vbkJsdXJFbWl0LmVtaXQodGhpcy5pbnB1dEZvcm1Db250cm9sLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uS2V5UHJlc3MoKSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dEZvcm1Db250cm9sLnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoID09IHRoaXMubWF4TGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9ybWF0UHJpY2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRUeXBlID09PSAnbnVtYmVyJyAmJiB0aGlzLmNhblNwbGl0TnVtYmVyKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IGV2ZW50O1xyXG4gICAgICAgIHZhbHVlID0gTnVtYmVyKHZhbHVlLnJlcGxhY2VBbGwoJywnLCAnJykpO1xyXG4gICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHtcclxuICAgICAgICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5zZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgICB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBmb3JtYXRWYWx1ZSA9IHZhbHVlXHJcbiAgICAgICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCAnLCcpO1xyXG4gICAgICAgICAgdGhpcy5pbnB1dEZvcm1Db250cm9sLnNldFZhbHVlKGZvcm1hdFZhbHVlKTtcclxuICAgICAgICAgIHRoaXMubGFzdFZhbHVlID0gZm9ybWF0VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5pbnB1dEZvcm1Db250cm9sLmVycm9ycykge1xyXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5wdXRGb3JtQ29udHJvbC52YWx1ZS5yZXBsYWNlQWxsKCcsJywgJycpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghdGhpcy5pbnB1dEZvcm1Db250cm9sLmVycm9ycykge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLmlucHV0Rm9ybUNvbnRyb2wudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZXJyb3JNYXNzYWdlKCk6IEVycm9yTWFzc2FnZSB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAodGhpcy5pbnB1dEZvcm1Db250cm9sLmVycm9ycykge1xyXG4gICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5pbnB1dEZvcm1Db250cm9sLmVycm9ycykubGVuZ3RoICE9IDApIHtcclxuICAgICAgICBsZXQgZXJyb3JNZXNzYWdlO1xyXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuaW5wdXRGb3JtQ29udHJvbC5lcnJvcnMpLmZpbHRlcigoa2V5KSA9PiB7XHJcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSB0aGlzLl9lcnJvck1lc3NhZ2VzLmZpbmQoXHJcbiAgICAgICAgICAgIChlcnJvcikgPT4gZXJyb3IudHlwZSA9PT0ga2V5XHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIGlmIChlcnJvck1lc3NhZ2UgJiYga2V5ID09PSAnbWlubGVuZ3RoJykge1xyXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UubWVzc2FnZSA9XHJcbiAgICAgICAgICAgICAgJyDYrdiv2KfZgtmEINqp2KfYsdqp2KrYsSDZhdis2KfYsiAnICtcclxuICAgICAgICAgICAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2w/LmVycm9ycz8uWydtaW5sZW5ndGgnXS5yZXF1aXJlZExlbmd0aCArXHJcbiAgICAgICAgICAgICAgJyDZhduMINio2KfYtNivICAnO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChlcnJvck1lc3NhZ2UgJiYga2V5ID09PSAnbWF4bGVuZ3RoJykge1xyXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UubWVzc2FnZSA9XHJcbiAgICAgICAgICAgICAgJyDYrdiv2Kfaqdir2LEg2qnYp9ix2qnYqtixINmF2KzYp9iyICAnICtcclxuICAgICAgICAgICAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2w/LmVycm9ycz8uWydtYXhsZW5ndGgnXS5yZXF1aXJlZExlbmd0aCArXHJcbiAgICAgICAgICAgICAgJyDZhduMINio2KfYtNivICAnO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdwYXR0ZXJuJykge1xyXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSB0aGlzLl9lcnJvck1lc3NhZ2VzLmZpbmQoXHJcbiAgICAgICAgICAgICAgKGVycm9yKSA9PlxyXG4gICAgICAgICAgICAgICAgZXJyb3IudHlwZSA9PT0ga2V5ICYmXHJcbiAgICAgICAgICAgICAgICBlcnJvci5wYXR0ZXJuID09PVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2w/LmVycm9ycz8uWydwYXR0ZXJuJ10/LnJlcXVpcmVkUGF0dGVyblxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBlcnJvck1lc3NhZ2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImNvbnRhaW5lci1pbnB1dFwiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgIGVycm9yOlxyXG4gICAgICAgIChpbnB1dEZvcm1Db250cm9sLnRvdWNoZWQgfHwgaW5wdXRGb3JtQ29udHJvbC5kaXJ0eSkgJiZcclxuICAgICAgICBpbnB1dEZvcm1Db250cm9sLmVycm9yc1xyXG4gICAgfVwiXHJcbiAgPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIFt0eXBlXT1cImlucHV0VHlwZVwiXHJcbiAgICAgIGNsYXNzPVwiYS1pbnB1dC1zdHlsZVwiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJpbnB1dEZvcm1Db250cm9sXCJcclxuICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgICAoa2V5dXApPVwiY2hhbmdlKCRldmVudClcIlxyXG4gICAgICAocGFzdGUpPVwib25QYXN0ZSgkZXZlbnQpXCJcclxuICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICdoYXZlLXZhbHVlJzogaW5wdXRGb3JtQ29udHJvbC52YWx1ZS50b1N0cmluZygpLmxlbmd0aCA+IDAsXHJcbiAgICAgICAgJ2hpZ2hsaWdodC1iYWNrZ3JvdW5kJzpcclxuICAgICAgICAgIGNhbkhpZ2hsaWdodEJhY2tncm91bmQgJiZcclxuICAgICAgICAgIGlucHV0Rm9ybUNvbnRyb2wudmFsdWUudG9TdHJpbmcoKS5sZW5ndGggPT09IDAgJiZcclxuICAgICAgICAgICEoXHJcbiAgICAgICAgICAgIChpbnB1dEZvcm1Db250cm9sLnRvdWNoZWQgfHwgaW5wdXRGb3JtQ29udHJvbC5kaXJ0eSkgJiZcclxuICAgICAgICAgICAgaW5wdXRGb3JtQ29udHJvbC5lcnJvcnNcclxuICAgICAgICAgICksXHJcbiAgICAgICAgJ2Rpc2FibGUtaW5wdXQnOiBpc0Rpc2FibGVcclxuICAgICAgfVwiXHJcbiAgICAgIChrZXlwcmVzcyk9XCJvbktleVByZXNzKClcIlxyXG4gICAgLz5cclxuICAgIDxsYWJlbCAqbmdJZj1cInBsYWNlaG9sZGVyLmxlbmd0aCA+IDBcIj57eyBwbGFjZWhvbGRlciB9fSA8L2xhYmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cImxhYmVsLWVycm9yIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICA8c3BhblxyXG4gICAgICAgIGNsYXNzPVwibGFiZWwtbnVtYmVyXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgY2FuU2hvd1dvcmRpZnlGYSAmJlxyXG4gICAgICAgICAgaW5wdXRGb3JtQ29udHJvbC52YWx1ZS50b1N0cmluZygpLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgIGlucHV0VHlwZSA9PT0gJ251bWJlcidcclxuICAgICAgICBcIlxyXG4gICAgICAgID48YXBwLWNvcmUtbnVtYmVyXHJcbiAgICAgICAgICBbY2FuU2hvd1dvcmRJblRvb2xUaXBdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW3R5cGVdPVwiJ3dvcmQnXCJcclxuICAgICAgICAgIFtudW1iZXJdPVwiaW5wdXRGb3JtQ29udHJvbC52YWx1ZVwiXHJcbiAgICAgICAgPjwvYXBwLWNvcmUtbnVtYmVyXHJcbiAgICAgID48L3NwYW4+XHJcbiAgICAgIDxzcGFuXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIChpbnB1dEZvcm1Db250cm9sLnRvdWNoZWQgfHwgaW5wdXRGb3JtQ29udHJvbC5kaXJ0eSkgJiZcclxuICAgICAgICAgIGlucHV0Rm9ybUNvbnRyb2wuZXJyb3JzXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGVycm9yTWFzc2FnZT8ubWVzc2FnZSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChildren, } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
3
|
import { environment } from '../../environments/environment';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -13,8 +13,9 @@ export class CoreSelectComponent {
|
|
|
13
13
|
this._defaultValue = data;
|
|
14
14
|
this.init();
|
|
15
15
|
}
|
|
16
|
-
constructor(cdr) {
|
|
16
|
+
constructor(cdr, elRef) {
|
|
17
17
|
this.cdr = cdr;
|
|
18
|
+
this.elRef = elRef;
|
|
18
19
|
this.selectedItem = {};
|
|
19
20
|
this.newItems = [];
|
|
20
21
|
this.isOpenMenu = false;
|
|
@@ -25,6 +26,7 @@ export class CoreSelectComponent {
|
|
|
25
26
|
this.disabled = false;
|
|
26
27
|
this.onItemSelected = new EventEmitter();
|
|
27
28
|
this.inputFormControl = new FormControl('', []);
|
|
29
|
+
this.currentIndex = 0;
|
|
28
30
|
}
|
|
29
31
|
init() {
|
|
30
32
|
this.titleKeyObject = this.titleKey;
|
|
@@ -44,17 +46,42 @@ export class CoreSelectComponent {
|
|
|
44
46
|
};
|
|
45
47
|
});
|
|
46
48
|
}
|
|
47
|
-
openMenuClick() {
|
|
49
|
+
openMenuClick(canFocus) {
|
|
48
50
|
if (this.disabled)
|
|
49
51
|
return;
|
|
50
52
|
this.isOpenMenu = !this.isOpenMenu;
|
|
53
|
+
if (this.isOpenMenu && canFocus) {
|
|
54
|
+
setTimeout(() => {
|
|
55
|
+
const element = this.focusableElements.toArray();
|
|
56
|
+
element[0].nativeElement.focus();
|
|
57
|
+
}, 50);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
handleKey(event) {
|
|
61
|
+
const elements = this.focusableElements.toArray();
|
|
62
|
+
if (event.key === 'ArrowDown') {
|
|
63
|
+
this.currentIndex = (this.currentIndex + 1) % elements.length;
|
|
64
|
+
elements[this.currentIndex].nativeElement.focus();
|
|
65
|
+
}
|
|
66
|
+
if (event.key === 'ArrowUp') {
|
|
67
|
+
this.currentIndex =
|
|
68
|
+
(this.currentIndex - 1 + elements.length) % elements.length;
|
|
69
|
+
elements[this.currentIndex].nativeElement.focus();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
dropdownItemKeypress(event, item) {
|
|
73
|
+
if (event.key === 'Enter') {
|
|
74
|
+
this.onItemSelect(item, true);
|
|
75
|
+
}
|
|
76
|
+
else if (event.key === 'Escape') {
|
|
77
|
+
this.isOpenMenu = false;
|
|
78
|
+
}
|
|
51
79
|
}
|
|
52
80
|
onItemSelect(selectedItem, isFromUi) {
|
|
53
81
|
if (isFromUi)
|
|
54
82
|
this.inputFormControl.markAsTouched();
|
|
55
83
|
this.isOpenMenu = false;
|
|
56
84
|
if (!selectedItem) {
|
|
57
|
-
this.selectedItem = {};
|
|
58
85
|
return;
|
|
59
86
|
}
|
|
60
87
|
this.selectedItem = selectedItem;
|
|
@@ -62,17 +89,30 @@ export class CoreSelectComponent {
|
|
|
62
89
|
this.inputFormControl.setValue(selectedItem.value);
|
|
63
90
|
this.onItemSelected.emit(mainItem);
|
|
64
91
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
92
|
+
onEnterPress(e) {
|
|
93
|
+
if (e.key === 'Enter') {
|
|
94
|
+
this.openMenuClick(true);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
focusOut(event) {
|
|
98
|
+
const nextFocusedElement = event.relatedTarget;
|
|
99
|
+
if (!nextFocusedElement ||
|
|
100
|
+
!this.elRef.nativeElement.contains(nextFocusedElement)) {
|
|
101
|
+
console.log('Focus has left the component!');
|
|
102
|
+
this.isOpenMenu = false;
|
|
103
|
+
this.inputFormControl.markAsTouched();
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
console.log('Focus moved within the component.');
|
|
107
|
+
}
|
|
68
108
|
}
|
|
69
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSelectComponent, selector: "core-select", inputs: { titleKey: "titleKey", valueKey: "valueKey", size: "size", canHighlightBackground: "canHighlightBackground", items: "items", defaultValue: "defaultValue", label: "label", disabled: "disabled", inputFormControl: "inputFormControl" }, outputs: { onItemSelected: "onItemSelected" }, ngImport: i0, template: "<div
|
|
109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSelectComponent, selector: "core-select", inputs: { titleKey: "titleKey", valueKey: "valueKey", size: "size", canHighlightBackground: "canHighlightBackground", items: "items", defaultValue: "defaultValue", label: "label", disabled: "disabled", inputFormControl: "inputFormControl" }, outputs: { onItemSelected: "onItemSelected" }, viewQueries: [{ propertyName: "focusableElements", predicate: ["focusable"], descendants: true }], ngImport: i0, template: "<div class=\"dropdown\" (focusout)=\"focusOut($event)\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n\r\n }\"\r\n tabindex=\"0\"\r\n (keypress)=\"onEnterPress($event)\"\r\n (click)=\"openMenuClick(false)\"\r\n >\r\n <span\r\n class=\"placeholder-top\"\r\n *ngIf=\"(selectedItem | json) != ({} | json)\"\r\n >{{ label }}</span\r\n >\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n >\r\n </div>\r\n <ul\r\n class=\"menu dropdown\"\r\n (keydown)=\"handleKey($event)\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n >\r\n <li\r\n *ngFor=\"let item of newItems\"\r\n class=\"dropdown-item\"\r\n #focusable\r\n [ngClass]=\"{ active: item == selectedItem }\"\r\n (click)=\"onItemSelect(item, true)\"\r\n (keypress)=\"dropdownItemKeypress($event, item)\"\r\n tabindex=\"0\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;height:42px;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:1px solid blue!important;outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6}.dropdown .menu li:focus{border:1px solid blue!important;outline:none}.dropdown .menu .active{background:#ced4da}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ArrowDownIconComponent, selector: "arrow-down-icon" }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
|
|
71
111
|
}
|
|
72
112
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectComponent, decorators: [{
|
|
73
113
|
type: Component,
|
|
74
|
-
args: [{ selector: 'core-select', template: "<div
|
|
75
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { titleKey: [{
|
|
114
|
+
args: [{ selector: 'core-select', template: "<div class=\"dropdown\" (focusout)=\"focusOut($event)\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n\r\n }\"\r\n tabindex=\"0\"\r\n (keypress)=\"onEnterPress($event)\"\r\n (click)=\"openMenuClick(false)\"\r\n >\r\n <span\r\n class=\"placeholder-top\"\r\n *ngIf=\"(selectedItem | json) != ({} | json)\"\r\n >{{ label }}</span\r\n >\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n >\r\n </div>\r\n <ul\r\n class=\"menu dropdown\"\r\n (keydown)=\"handleKey($event)\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n >\r\n <li\r\n *ngFor=\"let item of newItems\"\r\n class=\"dropdown-item\"\r\n #focusable\r\n [ngClass]=\"{ active: item == selectedItem }\"\r\n (click)=\"onItemSelect(item, true)\"\r\n (keypress)=\"dropdownItemKeypress($event, item)\"\r\n tabindex=\"0\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;height:42px;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:1px solid blue!important;outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6}.dropdown .menu li:focus{border:1px solid blue!important;outline:none}.dropdown .menu .active{background:#ced4da}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}\n"] }]
|
|
115
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { titleKey: [{
|
|
76
116
|
type: Input
|
|
77
117
|
}], valueKey: [{
|
|
78
118
|
type: Input
|
|
@@ -92,5 +132,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
92
132
|
type: Output
|
|
93
133
|
}], inputFormControl: [{
|
|
94
134
|
type: Input
|
|
135
|
+
}], focusableElements: [{
|
|
136
|
+
type: ViewChildren,
|
|
137
|
+
args: ['focusable']
|
|
95
138
|
}] } });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtc2VsZWN0L2NvcmUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXNlbGVjdC9jb3JlLXNlbGVjdC1mYWxjb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBVTdELE1BQU0sT0FBTyxtQkFBbUI7SUFZOUIsSUFBYSxLQUFLLENBQUMsSUFBUztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBYSxZQUFZLENBQUMsSUFBTztRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBTUQsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF4QjFDLGlCQUFZLEdBQWdCLEVBQWlCLENBQUM7UUFHOUMsYUFBUSxHQUFrQixFQUFFLENBQUM7UUFDN0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixXQUFNLEdBQVEsRUFBRSxDQUFDO1FBSVIsU0FBSSxHQUFTLE9BQU8sQ0FBQztRQUNyQiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFTL0IsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixhQUFR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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XHJcbnR5cGUgTWVudUl0ZW08VD4gPSB7XHJcbiAgdGl0bGU6IFQ7XHJcbiAgdmFsdWU6IFQ7XHJcbn07XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXNlbGVjdCcgKyBlbnZpcm9ubWVudC50ZW1wTmFtZSxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLXNlbGVjdCcgKyBlbnZpcm9ubWVudC5zdHlsZU5hbWVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVNlbGVjdENvbXBvbmVudDxUPiB7XHJcbiAgc2VsZWN0ZWRJdGVtOiBNZW51SXRlbTxUPiA9IHt9IGFzIE1lbnVJdGVtPFQ+O1xyXG4gIHRpdGxlS2V5T2JqZWN0IToga2V5b2Ygc3RyaW5nIHwgbnVtYmVyO1xyXG4gIHZhbHVlS2V5T2JqZWN0IToga2V5b2Ygc3RyaW5nIHwgbnVtYmVyO1xyXG4gIG5ld0l0ZW1zOiBNZW51SXRlbTxUPltdID0gW107XHJcbiAgaXNPcGVuTWVudSA9IGZhbHNlO1xyXG4gIF9pdGVtczogYW55ID0gW107XHJcbiAgX2RlZmF1bHRWYWx1ZSE6IFQ7XHJcbiAgQElucHV0KCkgdGl0bGVLZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmFsdWVLZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2l6ZTogc3RyaW5nPSdzbWFsbCc7XHJcbiAgQElucHV0KCkgY2FuSGlnaGxpZ2h0QmFja2dyb3VuZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuX2l0ZW1zID0gZGF0YTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgZGVmYXVsdFZhbHVlKGRhdGE6IFQpIHtcclxuICAgIHRoaXMuX2RlZmF1bHRWYWx1ZSA9IGRhdGE7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIG9uSXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KCkgaW5wdXRGb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIFtdKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG4gIGluaXQoKSB7XHJcbiAgICB0eXBlIE9iamVjdEtleSA9ICh0eXBlb2YgdGhpcy5faXRlbXMpWzBdO1xyXG4gICAgdGhpcy50aXRsZUtleU9iamVjdCA9IHRoaXMudGl0bGVLZXkgYXMgT2JqZWN0S2V5O1xyXG4gICAgdGhpcy52YWx1ZUtleU9iamVjdCA9IHRoaXMudmFsdWVLZXkgYXMgT2JqZWN0S2V5O1xyXG4gICAgdGhpcy5uZXdJdGVtcyA9IHRoaXMuY2hhbmdlSXRlbXNUeXBlKHRoaXMuX2l0ZW1zKTtcclxuICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLl9kZWZhdWx0VmFsdWUpO1xyXG4gICAgdGhpcy5vbkl0ZW1TZWxlY3QoXHJcbiAgICAgIHRoaXMubmV3SXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PSB0aGlzLl9kZWZhdWx0VmFsdWUpLFxyXG4gICAgICBmYWxzZVxyXG4gICAgKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZUl0ZW1zVHlwZShpdGVtczogYW55W10pOiBNZW51SXRlbTxUPltdIHtcclxuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB0aXRsZTogaXRlbVt0aGlzLnRpdGxlS2V5T2JqZWN0XSxcclxuICAgICAgICB2YWx1ZTogaXRlbVt0aGlzLnZhbHVlS2V5T2JqZWN0XSxcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3Blbk1lbnVDbGljaygpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmlzT3Blbk1lbnUgPSAhdGhpcy5pc09wZW5NZW51O1xyXG4gIH1cclxuXHJcbiAgb25JdGVtU2VsZWN0KHNlbGVjdGVkSXRlbTogTWVudUl0ZW08VD4gfCB1bmRlZmluZWQsIGlzRnJvbVVpOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoaXNGcm9tVWkpIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB0aGlzLmlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICAgIGlmICghc2VsZWN0ZWRJdGVtKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0ge30gYXMgTWVudUl0ZW08VD47XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gc2VsZWN0ZWRJdGVtO1xyXG4gICAgY29uc3QgbWFpbkl0ZW0gPSB0aGlzLl9pdGVtcy5maW5kKFxyXG4gICAgICAoaXRlbTogYW55KSA9PiBpdGVtW3RoaXMudmFsdWVLZXlPYmplY3RdID09PSBzZWxlY3RlZEl0ZW0udmFsdWVcclxuICAgICk7XHJcbiAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wuc2V0VmFsdWUoc2VsZWN0ZWRJdGVtLnZhbHVlKTtcclxuICAgIHRoaXMub25JdGVtU2VsZWN0ZWQuZW1pdChtYWluSXRlbSk7XHJcbiAgfVxyXG4gIGZvY3VzT3V0KCkge1xyXG4gICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IHRhYmluZGV4PVwiLTFcIiBjbGFzcz1cImRyb3Bkb3duXCIgKGZvY3Vzb3V0KT1cImZvY3VzT3V0KClcIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICdzZWxlY3QtY2xpY2tlZCc6IGlzT3Blbk1lbnUsXHJcbiAgICAgICdoaWdobGlnaHQtYmFja2dyb3VuZCc6XHJcbiAgICAgICAgY2FuSGlnaGxpZ2h0QmFja2dyb3VuZCAmJlxyXG4gICAgICAgIChzZWxlY3RlZEl0ZW0gfCBqc29uKSA9PT0gKHt9IHwganNvbikgJiZcclxuICAgICAgICAhKGlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCAmJiBpbnB1dEZvcm1Db250cm9sLmVycm9ycyksXHJcbiAgICAgIHNlbGVjdEVycm9yOiBpbnB1dEZvcm1Db250cm9sLnRvdWNoZWQgJiYgaW5wdXRGb3JtQ29udHJvbC5lcnJvcnMgLFxyXG4gICAgICAnZGlzYWJsZS1zZWxlY3Rvcic6IGRpc2FibGVkLFxyXG5cclxuICAgIH1cIlxyXG4gICAgKGNsaWNrKT1cIm9wZW5NZW51Q2xpY2soKVwiXHJcbiAgPlxyXG4gICAgPHNwYW5cclxuICAgICAgY2xhc3M9XCJwbGFjZWhvbGRlci10b3BcIlxyXG4gICAgICAqbmdJZj1cIihzZWxlY3RlZEl0ZW0gfCBqc29uKSAhPSAoe30gfCBqc29uKVwiXHJcbiAgICAgID57eyBsYWJlbCB9fTwvc3BhblxyXG4gICAgPlxyXG4gICAgPGFycm93LWRvd24taWNvblxyXG4gICAgICBjbGFzcz1cImNhcmV0IGZpbGwtc2Vjb25kYXJ5LXRleHQtY29sb3IgaC02XCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAnY2FyZXQtcm90YXRlJzogaXNPcGVuTWVudSB9XCJcclxuICAgID48L2Fycm93LWRvd24taWNvbj5cclxuXHJcbiAgICA8c3BhblxyXG4gICAgICBbbmdDbGFzc109XCJbXHJcbiAgICAgICAgbGFiZWwubGVuZ3RoID4gMCAmJiAoc2VsZWN0ZWRJdGVtIHwganNvbikgPT0gKHt9IHwganNvbilcclxuICAgICAgICAgID8gJ3BsYWNlaG9sZGVyJ1xyXG4gICAgICAgICAgOiAnc2VsZWN0ZWQnXHJcbiAgICAgIF1cIlxyXG4gICAgICA+e3tcclxuICAgICAgICBsYWJlbC5sZW5ndGggPiAwICYmIChzZWxlY3RlZEl0ZW0gfCBqc29uKSA9PSAoe30gfCBqc29uKVxyXG4gICAgICAgICAgPyBsYWJlbFxyXG4gICAgICAgICAgOiBzZWxlY3RlZEl0ZW0udGl0bGVcclxuICAgICAgfX08L3NwYW5cclxuICAgID5cclxuICA8L2Rpdj5cclxuICA8dWwgY2xhc3M9XCJtZW51XCIgW25nQ2xhc3NdPVwieyAnbWVudS1vcGVuJzogaXNPcGVuTWVudSB9XCI+XHJcbiAgICA8bGlcclxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbmV3SXRlbXNcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaXRlbSA9PSBzZWxlY3RlZEl0ZW0gfVwiXHJcbiAgICAgIChjbGljayk9XCJvbkl0ZW1TZWxlY3QoaXRlbSwgdHJ1ZSlcIlxyXG4gICAgPlxyXG4gICAgICB7eyBpdGVtLnRpdGxlIH19XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcbiAgPGRpdiBjbGFzcz1cImxhYmVsLWVycm9yIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgPHNwYW5cclxuICAgICAgKm5nSWY9XCJcclxuICAgICAgIGlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCAgJiZcclxuICAgICAgaW5wdXRGb3JtQ29udHJvbC5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgID7Yp9uM2YYg2YHbjNmE2K8g2K7Yp9mE24wg2KfYs9iqPC9zcGFuXHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtc2VsZWN0L2NvcmUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXNlbGVjdC9jb3JlLXNlbGVjdC1mYWxjb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQVU3RCxNQUFNLE9BQU8sbUJBQW1CO0lBWTlCLElBQWEsS0FBSyxDQUFDLElBQVM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQWEsWUFBWSxDQUFDLElBQU87UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQVFELFlBQW9CLEdBQXNCLEVBQVUsS0FBaUI7UUFBakQsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBMUJyRSxpQkFBWSxHQUFnQixFQUFpQixDQUFDO1FBRzlDLGFBQVEsR0FBa0IsRUFBRSxDQUFDO1FBQzdCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUlSLFNBQUksR0FBVyxPQUFPLENBQUM7UUFDdkIsMkJBQXNCLEdBQUcs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QUM3QyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdkM7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQztTQUNsRDtJQUNILENBQUM7K0dBcEhVLG1CQUFtQjttR0FBbkIsbUJBQW1CLHViQ3RCaEMsMCtEQWtFQTs7NEZENUNhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhO2lJQVlkLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sWUFBWTtzQkFBeEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDcUIsaUJBQWlCO3NCQUEzQyxZQUFZO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XHJcbnR5cGUgTWVudUl0ZW08VD4gPSB7XHJcbiAgdGl0bGU6IFQ7XHJcbiAgdmFsdWU6IFQ7XHJcbn07XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXNlbGVjdCcgKyBlbnZpcm9ubWVudC50ZW1wTmFtZSxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLXNlbGVjdCcgKyBlbnZpcm9ubWVudC5zdHlsZU5hbWVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVNlbGVjdENvbXBvbmVudDxUPiB7XHJcbiAgc2VsZWN0ZWRJdGVtOiBNZW51SXRlbTxUPiA9IHt9IGFzIE1lbnVJdGVtPFQ+O1xyXG4gIHRpdGxlS2V5T2JqZWN0IToga2V5b2Ygc3RyaW5nIHwgbnVtYmVyO1xyXG4gIHZhbHVlS2V5T2JqZWN0IToga2V5b2Ygc3RyaW5nIHwgbnVtYmVyO1xyXG4gIG5ld0l0ZW1zOiBNZW51SXRlbTxUPltdID0gW107XHJcbiAgaXNPcGVuTWVudSA9IGZhbHNlO1xyXG4gIF9pdGVtczogYW55ID0gW107XHJcbiAgX2RlZmF1bHRWYWx1ZSE6IFQ7XHJcbiAgQElucHV0KCkgdGl0bGVLZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmFsdWVLZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2l6ZTogc3RyaW5nID0gJ3NtYWxsJztcclxuICBASW5wdXQoKSBjYW5IaWdobGlnaHRCYWNrZ3JvdW5kID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IGl0ZW1zKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5faXRlbXMgPSBkYXRhO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCBkZWZhdWx0VmFsdWUoZGF0YTogVCkge1xyXG4gICAgdGhpcy5fZGVmYXVsdFZhbHVlID0gZGF0YTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgb25JdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBASW5wdXQoKSBpbnB1dEZvcm1Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgW10pO1xyXG4gIEBWaWV3Q2hpbGRyZW4oJ2ZvY3VzYWJsZScpIGZvY3VzYWJsZUVsZW1lbnRzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG4gIGN1cnJlbnRJbmRleCA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZikge31cclxuICBpbml0KCkge1xyXG4gICAgdHlwZSBPYmplY3RLZXkgPSAodHlwZW9mIHRoaXMuX2l0ZW1zKVswXTtcclxuICAgIHRoaXMudGl0bGVLZXlPYmplY3QgPSB0aGlzLnRpdGxlS2V5IGFzIE9iamVjdEtleTtcclxuICAgIHRoaXMudmFsdWVLZXlPYmplY3QgPSB0aGlzLnZhbHVlS2V5IGFzIE9iamVjdEtleTtcclxuICAgIHRoaXMubmV3SXRlbXMgPSB0aGlzLmNoYW5nZUl0ZW1zVHlwZSh0aGlzLl9pdGVtcyk7XHJcbiAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5fZGVmYXVsdFZhbHVlKTtcclxuICAgIHRoaXMub25JdGVtU2VsZWN0KFxyXG4gICAgICB0aGlzLm5ld0l0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT0gdGhpcy5fZGVmYXVsdFZhbHVlKSxcclxuICAgICAgZmFsc2VcclxuICAgICk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VJdGVtc1R5cGUoaXRlbXM6IGFueVtdKTogTWVudUl0ZW08VD5bXSB7XHJcbiAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdGl0bGU6IGl0ZW1bdGhpcy50aXRsZUtleU9iamVjdF0sXHJcbiAgICAgICAgdmFsdWU6IGl0ZW1bdGhpcy52YWx1ZUtleU9iamVjdF0sXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5NZW51Q2xpY2soY2FuRm9jdXM6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmlzT3Blbk1lbnUgPSAhdGhpcy5pc09wZW5NZW51O1xyXG4gICAgaWYgKHRoaXMuaXNPcGVuTWVudSAmJiBjYW5Gb2N1cykge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5mb2N1c2FibGVFbGVtZW50cy50b0FycmF5KCk7XHJcbiAgICAgICAgZWxlbWVudFswXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIH0sIDUwKTtcclxuICAgIH1cclxuICB9XHJcbiAgaGFuZGxlS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZm9jdXNhYmxlRWxlbWVudHMudG9BcnJheSgpO1xyXG5cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gKHRoaXMuY3VycmVudEluZGV4ICsgMSkgJSBlbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgIGVsZW1lbnRzW3RoaXMuY3VycmVudEluZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudEluZGV4ID1cclxuICAgICAgICAodGhpcy5jdXJyZW50SW5kZXggLSAxICsgZWxlbWVudHMubGVuZ3RoKSAlIGVsZW1lbnRzLmxlbmd0aDtcclxuICAgICAgZWxlbWVudHNbdGhpcy5jdXJyZW50SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRyb3Bkb3duSXRlbUtleXByZXNzKGV2ZW50OiBhbnksIGl0ZW06IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICB0aGlzLm9uSXRlbVNlbGVjdChpdGVtLCB0cnVlKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xyXG4gICAgICB0aGlzLmlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSXRlbVNlbGVjdChzZWxlY3RlZEl0ZW06IE1lbnVJdGVtPFQ+IHwgdW5kZWZpbmVkLCBpc0Zyb21VaTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKGlzRnJvbVVpKSB0aGlzLmlucHV0Rm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICBpZiAoIXNlbGVjdGVkSXRlbSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHNlbGVjdGVkSXRlbTtcclxuICAgIGNvbnN0IG1haW5JdGVtID0gdGhpcy5faXRlbXMuZmluZChcclxuICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLnZhbHVlS2V5T2JqZWN0XSA9PT0gc2VsZWN0ZWRJdGVtLnZhbHVlXHJcbiAgICApO1xyXG4gICAgdGhpcy5pbnB1dEZvcm1Db250cm9sLnNldFZhbHVlKHNlbGVjdGVkSXRlbS52YWx1ZSk7XHJcbiAgICB0aGlzLm9uSXRlbVNlbGVjdGVkLmVtaXQobWFpbkl0ZW0pO1xyXG4gIH1cclxuICBvbkVudGVyUHJlc3MoZTogYW55KSB7XHJcbiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5vcGVuTWVudUNsaWNrKHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuICBmb2N1c091dChldmVudDogRm9jdXNFdmVudCkge1xyXG4gICAgY29uc3QgbmV4dEZvY3VzZWRFbGVtZW50ID0gZXZlbnQucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgICFuZXh0Rm9jdXNlZEVsZW1lbnQgfHxcclxuICAgICAgIXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhuZXh0Rm9jdXNlZEVsZW1lbnQpXHJcbiAgICApIHtcclxuICAgICAgY29uc29sZS5sb2coJ0ZvY3VzIGhhcyBsZWZ0IHRoZSBjb21wb25lbnQhJyk7XHJcbiAgICAgIHRoaXMuaXNPcGVuTWVudSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5sb2coJ0ZvY3VzIG1vdmVkIHdpdGhpbiB0aGUgY29tcG9uZW50LicpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZHJvcGRvd25cIiAoZm9jdXNvdXQpPVwiZm9jdXNPdXQoJGV2ZW50KVwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwic2VsZWN0XCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgJ3NlbGVjdC1jbGlja2VkJzogaXNPcGVuTWVudSxcclxuICAgICAgJ2hpZ2hsaWdodC1iYWNrZ3JvdW5kJzpcclxuICAgICAgICBjYW5IaWdobGlnaHRCYWNrZ3JvdW5kICYmXHJcbiAgICAgICAgKHNlbGVjdGVkSXRlbSB8IGpzb24pID09PSAoe30gfCBqc29uKSAmJlxyXG4gICAgICAgICEoaW5wdXRGb3JtQ29udHJvbC50b3VjaGVkICYmIGlucHV0Rm9ybUNvbnRyb2wuZXJyb3JzKSxcclxuICAgICAgc2VsZWN0RXJyb3I6IGlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCAmJiBpbnB1dEZvcm1Db250cm9sLmVycm9ycyAsXHJcbiAgICAgICdkaXNhYmxlLXNlbGVjdG9yJzogZGlzYWJsZWQsXHJcblxyXG4gICAgfVwiXHJcbiAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgKGtleXByZXNzKT1cIm9uRW50ZXJQcmVzcygkZXZlbnQpXCJcclxuICAgIChjbGljayk9XCJvcGVuTWVudUNsaWNrKGZhbHNlKVwiXHJcbiAgPlxyXG4gICAgPHNwYW5cclxuICAgICAgY2xhc3M9XCJwbGFjZWhvbGRlci10b3BcIlxyXG4gICAgICAqbmdJZj1cIihzZWxlY3RlZEl0ZW0gfCBqc29uKSAhPSAoe30gfCBqc29uKVwiXHJcbiAgICAgID57eyBsYWJlbCB9fTwvc3BhblxyXG4gICAgPlxyXG4gICAgPGFycm93LWRvd24taWNvblxyXG4gICAgICBjbGFzcz1cImNhcmV0IGZpbGwtc2Vjb25kYXJ5LXRleHQtY29sb3IgaC02XCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAnY2FyZXQtcm90YXRlJzogaXNPcGVuTWVudSB9XCJcclxuICAgID48L2Fycm93LWRvd24taWNvbj5cclxuXHJcbiAgICA8c3BhblxyXG4gICAgICBbbmdDbGFzc109XCJbXHJcbiAgICAgICAgbGFiZWwubGVuZ3RoID4gMCAmJiAoc2VsZWN0ZWRJdGVtIHwganNvbikgPT0gKHt9IHwganNvbilcclxuICAgICAgICAgID8gJ3BsYWNlaG9sZGVyJ1xyXG4gICAgICAgICAgOiAnc2VsZWN0ZWQnXHJcbiAgICAgIF1cIlxyXG4gICAgICA+e3tcclxuICAgICAgICBsYWJlbC5sZW5ndGggPiAwICYmIChzZWxlY3RlZEl0ZW0gfCBqc29uKSA9PSAoe30gfCBqc29uKVxyXG4gICAgICAgICAgPyBsYWJlbFxyXG4gICAgICAgICAgOiBzZWxlY3RlZEl0ZW0udGl0bGVcclxuICAgICAgfX08L3NwYW5cclxuICAgID5cclxuICA8L2Rpdj5cclxuICA8dWxcclxuICAgIGNsYXNzPVwibWVudSBkcm9wZG93blwiXHJcbiAgICAoa2V5ZG93bik9XCJoYW5kbGVLZXkoJGV2ZW50KVwiXHJcbiAgICBbbmdDbGFzc109XCJ7ICdtZW51LW9wZW4nOiBpc09wZW5NZW51IH1cIlxyXG4gID5cclxuICAgIDxsaVxyXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBuZXdJdGVtc1wiXHJcbiAgICAgIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiXHJcbiAgICAgICNmb2N1c2FibGVcclxuICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGl0ZW0gPT0gc2VsZWN0ZWRJdGVtIH1cIlxyXG4gICAgICAoY2xpY2spPVwib25JdGVtU2VsZWN0KGl0ZW0sIHRydWUpXCJcclxuICAgICAgKGtleXByZXNzKT1cImRyb3Bkb3duSXRlbUtleXByZXNzKCRldmVudCwgaXRlbSlcIlxyXG4gICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgPlxyXG4gICAgICB7eyBpdGVtLnRpdGxlIH19XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcbiAgPGRpdiBjbGFzcz1cImxhYmVsLWVycm9yIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgPHNwYW5cclxuICAgICAgKm5nSWY9XCJcclxuICAgICAgIGlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCAgJiZcclxuICAgICAgaW5wdXRGb3JtQ29udHJvbC5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgID7Yp9uM2YYg2YHbjNmE2K8g2K7Yp9mE24wg2KfYs9iqPC9zcGFuXHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
package/fesm2022/nira-falcon.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, Input, EventEmitter, Output, Pipe, Directive, HostListener, NgModule } from '@angular/core';
|
|
2
|
+
import { Component, Input, EventEmitter, Output, Pipe, ViewChildren, Directive, HostListener, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1$1 from 'nira-modal';
|
|
4
4
|
import * as i1 from '@angular/common';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
@@ -589,7 +589,6 @@ class CoreInputComponent {
|
|
|
589
589
|
}
|
|
590
590
|
}
|
|
591
591
|
get errorMassage() {
|
|
592
|
-
console.log(this.inputFormControl.errors);
|
|
593
592
|
if (this.inputFormControl.errors) {
|
|
594
593
|
if (Object.keys(this.inputFormControl.errors).length != 0) {
|
|
595
594
|
let errorMessage;
|
|
@@ -836,8 +835,9 @@ class CoreSelectComponent {
|
|
|
836
835
|
this._defaultValue = data;
|
|
837
836
|
this.init();
|
|
838
837
|
}
|
|
839
|
-
constructor(cdr) {
|
|
838
|
+
constructor(cdr, elRef) {
|
|
840
839
|
this.cdr = cdr;
|
|
840
|
+
this.elRef = elRef;
|
|
841
841
|
this.selectedItem = {};
|
|
842
842
|
this.newItems = [];
|
|
843
843
|
this.isOpenMenu = false;
|
|
@@ -848,6 +848,7 @@ class CoreSelectComponent {
|
|
|
848
848
|
this.disabled = false;
|
|
849
849
|
this.onItemSelected = new EventEmitter();
|
|
850
850
|
this.inputFormControl = new FormControl('', []);
|
|
851
|
+
this.currentIndex = 0;
|
|
851
852
|
}
|
|
852
853
|
init() {
|
|
853
854
|
this.titleKeyObject = this.titleKey;
|
|
@@ -867,17 +868,42 @@ class CoreSelectComponent {
|
|
|
867
868
|
};
|
|
868
869
|
});
|
|
869
870
|
}
|
|
870
|
-
openMenuClick() {
|
|
871
|
+
openMenuClick(canFocus) {
|
|
871
872
|
if (this.disabled)
|
|
872
873
|
return;
|
|
873
874
|
this.isOpenMenu = !this.isOpenMenu;
|
|
875
|
+
if (this.isOpenMenu && canFocus) {
|
|
876
|
+
setTimeout(() => {
|
|
877
|
+
const element = this.focusableElements.toArray();
|
|
878
|
+
element[0].nativeElement.focus();
|
|
879
|
+
}, 50);
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
handleKey(event) {
|
|
883
|
+
const elements = this.focusableElements.toArray();
|
|
884
|
+
if (event.key === 'ArrowDown') {
|
|
885
|
+
this.currentIndex = (this.currentIndex + 1) % elements.length;
|
|
886
|
+
elements[this.currentIndex].nativeElement.focus();
|
|
887
|
+
}
|
|
888
|
+
if (event.key === 'ArrowUp') {
|
|
889
|
+
this.currentIndex =
|
|
890
|
+
(this.currentIndex - 1 + elements.length) % elements.length;
|
|
891
|
+
elements[this.currentIndex].nativeElement.focus();
|
|
892
|
+
}
|
|
893
|
+
}
|
|
894
|
+
dropdownItemKeypress(event, item) {
|
|
895
|
+
if (event.key === 'Enter') {
|
|
896
|
+
this.onItemSelect(item, true);
|
|
897
|
+
}
|
|
898
|
+
else if (event.key === 'Escape') {
|
|
899
|
+
this.isOpenMenu = false;
|
|
900
|
+
}
|
|
874
901
|
}
|
|
875
902
|
onItemSelect(selectedItem, isFromUi) {
|
|
876
903
|
if (isFromUi)
|
|
877
904
|
this.inputFormControl.markAsTouched();
|
|
878
905
|
this.isOpenMenu = false;
|
|
879
906
|
if (!selectedItem) {
|
|
880
|
-
this.selectedItem = {};
|
|
881
907
|
return;
|
|
882
908
|
}
|
|
883
909
|
this.selectedItem = selectedItem;
|
|
@@ -885,17 +911,30 @@ class CoreSelectComponent {
|
|
|
885
911
|
this.inputFormControl.setValue(selectedItem.value);
|
|
886
912
|
this.onItemSelected.emit(mainItem);
|
|
887
913
|
}
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
914
|
+
onEnterPress(e) {
|
|
915
|
+
if (e.key === 'Enter') {
|
|
916
|
+
this.openMenuClick(true);
|
|
917
|
+
}
|
|
918
|
+
}
|
|
919
|
+
focusOut(event) {
|
|
920
|
+
const nextFocusedElement = event.relatedTarget;
|
|
921
|
+
if (!nextFocusedElement ||
|
|
922
|
+
!this.elRef.nativeElement.contains(nextFocusedElement)) {
|
|
923
|
+
console.log('Focus has left the component!');
|
|
924
|
+
this.isOpenMenu = false;
|
|
925
|
+
this.inputFormControl.markAsTouched();
|
|
926
|
+
}
|
|
927
|
+
else {
|
|
928
|
+
console.log('Focus moved within the component.');
|
|
929
|
+
}
|
|
891
930
|
}
|
|
892
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
893
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSelectComponent, selector: "core-select", inputs: { titleKey: "titleKey", valueKey: "valueKey", size: "size", canHighlightBackground: "canHighlightBackground", items: "items", defaultValue: "defaultValue", label: "label", disabled: "disabled", inputFormControl: "inputFormControl" }, outputs: { onItemSelected: "onItemSelected" }, ngImport: i0, template: "<div
|
|
931
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
932
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSelectComponent, selector: "core-select", inputs: { titleKey: "titleKey", valueKey: "valueKey", size: "size", canHighlightBackground: "canHighlightBackground", items: "items", defaultValue: "defaultValue", label: "label", disabled: "disabled", inputFormControl: "inputFormControl" }, outputs: { onItemSelected: "onItemSelected" }, viewQueries: [{ propertyName: "focusableElements", predicate: ["focusable"], descendants: true }], ngImport: i0, template: "<div class=\"dropdown\" (focusout)=\"focusOut($event)\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n\r\n }\"\r\n tabindex=\"0\"\r\n (keypress)=\"onEnterPress($event)\"\r\n (click)=\"openMenuClick(false)\"\r\n >\r\n <span\r\n class=\"placeholder-top\"\r\n *ngIf=\"(selectedItem | json) != ({} | json)\"\r\n >{{ label }}</span\r\n >\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n >\r\n </div>\r\n <ul\r\n class=\"menu dropdown\"\r\n (keydown)=\"handleKey($event)\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n >\r\n <li\r\n *ngFor=\"let item of newItems\"\r\n class=\"dropdown-item\"\r\n #focusable\r\n [ngClass]=\"{ active: item == selectedItem }\"\r\n (click)=\"onItemSelect(item, true)\"\r\n (keypress)=\"dropdownItemKeypress($event, item)\"\r\n tabindex=\"0\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;height:42px;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:1px solid blue!important;outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6}.dropdown .menu li:focus{border:1px solid blue!important;outline:none}.dropdown .menu .active{background:#ced4da}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ArrowDownIconComponent, selector: "arrow-down-icon" }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
|
|
894
933
|
}
|
|
895
934
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectComponent, decorators: [{
|
|
896
935
|
type: Component,
|
|
897
|
-
args: [{ selector: 'core-select', template: "<div
|
|
898
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { titleKey: [{
|
|
936
|
+
args: [{ selector: 'core-select', template: "<div class=\"dropdown\" (focusout)=\"focusOut($event)\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n\r\n }\"\r\n tabindex=\"0\"\r\n (keypress)=\"onEnterPress($event)\"\r\n (click)=\"openMenuClick(false)\"\r\n >\r\n <span\r\n class=\"placeholder-top\"\r\n *ngIf=\"(selectedItem | json) != ({} | json)\"\r\n >{{ label }}</span\r\n >\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n >\r\n </div>\r\n <ul\r\n class=\"menu dropdown\"\r\n (keydown)=\"handleKey($event)\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n >\r\n <li\r\n *ngFor=\"let item of newItems\"\r\n class=\"dropdown-item\"\r\n #focusable\r\n [ngClass]=\"{ active: item == selectedItem }\"\r\n (click)=\"onItemSelect(item, true)\"\r\n (keypress)=\"dropdownItemKeypress($event, item)\"\r\n tabindex=\"0\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;height:42px;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:1px solid blue!important;outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6}.dropdown .menu li:focus{border:1px solid blue!important;outline:none}.dropdown .menu .active{background:#ced4da}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}\n"] }]
|
|
937
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { titleKey: [{
|
|
899
938
|
type: Input
|
|
900
939
|
}], valueKey: [{
|
|
901
940
|
type: Input
|
|
@@ -915,6 +954,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
915
954
|
type: Output
|
|
916
955
|
}], inputFormControl: [{
|
|
917
956
|
type: Input
|
|
957
|
+
}], focusableElements: [{
|
|
958
|
+
type: ViewChildren,
|
|
959
|
+
args: ['focusable']
|
|
918
960
|
}] } });
|
|
919
961
|
|
|
920
962
|
class CoreSwitchComponent {
|