@dev-tcloud/tcloud-ui 0.0.63 → 0.0.65
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/README.md +1 -0
- package/esm2020/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.mjs +1 -1
- package/esm2020/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component.mjs +289 -0
- package/esm2020/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.module.mjs +31 -0
- package/esm2020/lib/tcloud-ui.module.mjs +8 -1
- package/esm2020/public-api.mjs +4 -1
- package/fesm2015/dev-tcloud-tcloud-ui.mjs +358 -39
- package/fesm2015/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/fesm2020/dev-tcloud-tcloud-ui.mjs +355 -39
- package/fesm2020/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component.d.ts +59 -0
- package/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.module.d.ts +9 -0
- package/lib/tcloud-ui.module.d.ts +4 -3
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
package/README.md
CHANGED
|
@@ -274,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
274
274
|
}], ngModelChange: [{
|
|
275
275
|
type: Output
|
|
276
276
|
}] } });
|
|
277
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGEtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0YS1saXN0L3RjbG91ZC11aS1kYXRhLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGEtbGlzdC90Y2xvdWQtdWktZGF0YS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFhLEtBQUssRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLGlCQUFpQixFQUFrQyxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFJaEcsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQVE7SUFDdEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO0lBQ3hELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtBQUNsQixDQUFDLENBQUM7QUFZRixNQUFNLE9BQU8seUJBQXlCO0lBNkRwQyxZQUNVLGVBQWdDLEVBQ2hDLFdBQXdCO1FBRHhCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQTdEbEMsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFDM0Isb0JBQWUsR0FBVyxDQUFDLENBQUM7UUFDNUIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixjQUFTLEdBQVcs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LENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUI7SUFDTCxDQUFDO0lBRUQscUJBQXFCO0lBQ3JCLE1BQU07UUFDRixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLFVBQVUsQ0FBQyxLQUFVO1FBQ2pCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLGlCQUFpQixDQUFDLEVBQU87UUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzt1SEE5UlEseUJBQXlCOzJHQUF6Qix5QkFBeUIseVFBTHpCO1FBQ1QsZUFBZTtRQUNmLG1DQUFtQztLQUNwQywwQkN2QkgsMGlFQWtEQTs0RkR6QmEseUJBQXlCO2tCQVRyQyxTQUFTOytCQUNFLHFCQUFxQixhQUdwQjt3QkFDVCxlQUFlO3dCQUNmLG1DQUFtQztxQkFDcEM7Z0lBVVEsV0FBVztzQkFBbkIsS0FBSztnQkFHTyxRQUFRO3NCQUFwQixLQUFLO2dCQVdPLE9BQU87c0JBQW5CLEtBQUs7Z0JBV0csTUFBTTtzQkFBZCxLQUFLO2dCQUdJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFHTSxPQUFPO3NCQUFuQixLQUFLO2dCQUlJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhTGlzdFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RhdGEtbGlzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIElucHV0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIE5nRm9ybSwgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJU2VsZWN0T3B0aW9ucyB9IGZyb20gJy4vdGNsb3VkLXVpLWRhdGEtbGlzdCc7XHJcblxyXG5leHBvcnQgY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaURhdGFMaXN0Q29tcG9uZW50KSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuY29uc3Qgbm9vcCA9ICgpID0+IHtcclxufTtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RjbG91ZC11aS1kYXRhLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90Y2xvdWQtdWktZGF0YS1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90Y2xvdWQtdWktZGF0YS1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBEYXRhTGlzdFNlcnZpY2UsIFxyXG4gICAgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlEYXRhTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcclxuXHJcbiAgdmlld3BvcnRfd2lkdGg6IG51bWJlciA9IDA7XHJcbiAgdmlld3BvcnRfaGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gIGJveF9oZWlnaHQ6IG51bWJlciA9IDA7XHJcbiAgYm94X3N0eWxlOiBzdHJpbmcgPSAnJztcclxuICBtZW51X29uX3RvcDogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodil7XHJcbiAgICBpZiggdiApe1xyXG4gICAgICB0aGlzLl9kaXNhYmxlZCA9IHY7ICAgIFxyXG4gICAgICB0aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uID0gJyc7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRfaXRlbSA9Jyc7XHJcbiAgICAgIHRoaXMudG9DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGRpc2FibGVkKCk6Ym9vbGVhbiB7IHJldHVybiB0aGlzLl9kaXNhYmxlZDsgfVxyXG5cclxuICBwcml2YXRlIF9sb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IGxvYWRpbmcodil7XHJcbiAgICBpZiggdiApe1xyXG4gICAgICB0aGlzLl9sb2FkaW5nID0gdjsgICAgXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24gPSAnJztcclxuICAgICAgdGhpcy5zZWxlY3RlZF9pdGVtID0nJztcclxuICAgICAgdGhpcy50b0NoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgbG9hZGluZygpOmJvb2xlYW4geyByZXR1cm4gdGhpcy5fbG9hZGluZzsgfVxyXG5cclxuXHJcbiAgQElucHV0KCkgc2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcclxuICBcclxuXHJcbiAgQE91dHB1dCgpIG9uSW5wdXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElTZWxlY3RPcHRpb25zPigpO1xyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SVNlbGVjdE9wdGlvbnM+KCk7XHJcblxyXG4gIHByaXZhdGUgX25nTW9kZWw6IGFueSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZXQgbmdNb2RlbCh2OiBhbnkpe1xyXG4gICAgdGhpcy5zZWxlY3RlZF9pdGVtID0gdjsgICAgXHJcbiAgICB0aGlzLnNlbGVjdERlc2NyaXB0aW9uKCk7ICAgXHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBuZ01vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGxpc3Rfc2VsZWN0ZWRfb3B0aW9ucyA9IG5ldyBBcnJheTxJU2VsZWN0T3B0aW9ucz4oKTtcclxuXHJcbiAgc2VsZWN0ZWRfaXRlbTogYW55IHwgdW5kZWZpbmVkO1xyXG4gIHNlbGVjdGVkX2Rlc2NyaXB0aW9uOiBhbnkgfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uX3ZhbHVlOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25fZGVzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbl9vcHRpb25zOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcblxyXG4gIG1lbnVfc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlYXJjaF90ZXh0OiBzdHJpbmcgPSAnJztcclxuICBpZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIGZvcm11bGFyaW86IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRhdGFMaXN0U2VydmljZTogRGF0YUxpc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcclxuICApe1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKXtcclxuICAgIHRoaXMuaWQgPSB0aGlzLmdlbmVyYXRlSUQoKTtcclxuXHJcbiAgICB0aGlzLmZvcm11bGFyaW8gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgXCJzZWxlY3RlZF9pdGVtXCI6IG5ldyBGb3JtQ29udHJvbCgnJyxbXSksXHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uX3ZhbHVlID0gdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc3RhdGVWYWx1ZSQuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkX2l0ZW0gPSB2OyAgICAgIFxyXG4gICAgICB0aGlzLnNlbGVjdERlc2NyaXB0aW9uKCk7XHJcbiAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRfaXRlbSk7XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uX2Rlc2NyaXB0aW9uID0gdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc3RhdGVEZXNjcmlwdGlvbiQuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uID0gdjsgICAgICBcclxuICAgIH0pXHJcblxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uX29wdGlvbnMgPSB0aGlzLmRhdGFMaXN0U2VydmljZS5zdGF0ZU9wdGlvbnMkLnN1YnNjcmliZSgodjphbnkpID0+IHtcclxuICAgICAgaWYoIHYgJiYgdi52YWx1ZSApe1xyXG4gICAgICAgICh0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9ucykucHVzaCh2KTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnRvUmVzaXplKCk7XHJcbiAgICB0aGlzLnRvQ2xpY2soKTtcclxuICB9XHJcblxyXG4gIHRfZmM6IGFueSB8IHVuZGVmaW5lZDtcclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRfZmMgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRfZmMgPSB0aGlzLmdldF9zZWxlY3RlZF9kZXNjcmlwdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0X3NlbGVjdGVkX2Rlc2NyaXB0aW9uKCk6IHZvaWR7XHJcbiAgICBpZiggdGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnMgJiYgKHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIGZvciggbGV0IGkgPSAwOyBpIDwgKHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9uc1tpXTtcclxuICAgICAgICBpZiggaXRlbS52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZF9pdGVtICl7ICAgICAgICAgXHJcbiAgICAgICAgICBpZiggdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiAhPT0gaXRlbS5kZXNjcmlwdGlvbiApe1xyXG4gICAgICAgICAgICBpZiggaXRlbS5kZXNjcmlwdGlvbiAmJiBpdGVtLmRlc2NyaXB0aW9uICE9PSB0aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uICl7XHJcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uID0gaXRlbS5kZXNjcmlwdGlvbjsgXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFMaXN0U2VydmljZS5zZXRBY3RpdmVJdGVtKHRoaXMuc2VsZWN0ZWRfaXRlbSk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gICAgICAgIFxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IFxyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVJRCgpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gYGRhdGEtbGlzdC0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpKX1gO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiggdGhpcy5zdWJzY3JpcHRpb25fdmFsdWUgKXsgdGhpcy5zdWJzY3JpcHRpb25fdmFsdWUudW5zdWJzY3JpYmUoKTsgfSAgICBcclxuICAgIGlmKCB0aGlzLnN1YnNjcmlwdGlvbl9kZXNjcmlwdGlvbiApeyB0aGlzLnN1YnNjcmlwdGlvbl9kZXNjcmlwdGlvbi51bnN1YnNjcmliZSgpOyB9IFxyXG4gICAgaWYoIHRoaXMuc3Vic2NyaXB0aW9uX29wdGlvbnMgKXsgdGhpcy5zdWJzY3JpcHRpb25fb3B0aW9ucy51bnN1YnNjcmliZSgpOyB9IFxyXG4gIH1cclxuXHJcbiAgdG9TZWFyY2goZTogYW55KSB7XHJcbiAgICBsZXQgaW5wdXQgPSAoZSAmJiBlLnRhcmdldCAmJiBlLnRhcmdldC52YWx1ZSkgPyBlLnRhcmdldC52YWx1ZSA6ICcnO1xyXG4gICAgXHJcbiAgICBsZXQgZmlsdGVyID0gKCAoIChpbnB1dCkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKSApLnRyaW0oKSApLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBsZXQgdWwgPSA8YW55PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLmlkfS1vcHRpb25zYCk7XHJcbiAgICBsZXQgbGkgPSB1bC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImJ1dHRvblwiKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBhID0gbGlbaV07XHJcbiAgICAgICAgY29uc3QgdHh0VmFsdWUgPSAoICggKCBhLnRleHRDb250ZW50IHx8IGEuaW5uZXJUZXh0ICkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKSApLnRyaW0oKSApLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgaWYgKHR4dFZhbHVlLmluZGV4T2YoZmlsdGVyKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGxpW2ldLnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxpW2ldLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3REZXNjcmlwdGlvbigpe1xyXG4gICAgaWYoIHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zICYmICh0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9ucykubGVuZ3RoID4gMCApe1xyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9ucykubGVuZ3RoOyBpKysgKXtcclxuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnNbaV07XHJcbiAgICAgICAgaWYoIGl0ZW0udmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRfaXRlbSApe1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9IGl0ZW0uZGVzY3JpcHRpb247XHJcbiAgICAgICAgICB0aGlzLnRvQ2hhbmdlKCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIHRoaXMuc2VsZWN0ZWRfaXRlbSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuc2VsZWN0ZWRfaXRlbSA9PT0gbnVsbCB8fCB0aGlzLnNlbGVjdGVkX2l0ZW0gPT09ICcnICl7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24gPSAnJztcclxuICAgICAgdGhpcy50b0NoYW5nZSgpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG5cclxuICBcclxuICB0b0lucHV0KGU6IGFueSl7XHJcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICB0b0NoYW5nZSgpe1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmKCB0aGlzLnNlbGVjdGVkX2l0ZW0gPT09IHVuZGVmaW5lZCB8fCB0aGlzLnNlbGVjdGVkX2l0ZW0gPT09IG51bGwgKXtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkX2l0ZW0gPSAnJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRvU2VhcmNoKCcnKTtcclxuICAgICAgdGhpcy5zZWFyY2hfdGV4dCA9ICcnO1xyXG4gICAgICB0aGlzLmRhdGFMaXN0U2VydmljZS5zZXRBY3RpdmVJdGVtKHRoaXMuc2VsZWN0ZWRfaXRlbSk7XHJcblxyXG4gICAgICB0aGlzLm9uSW5wdXRDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uKTtcclxuXHJcbiAgICAgIGlmKCB0aGlzLmZvcm11bGFyaW8gKXtcclxuICAgICAgICB0aGlzLmZvcm11bGFyaW8/LmdldCgnc2VsZWN0ZWRfaXRlbScpPy5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkX2l0ZW0pO1xyXG4gICAgICAgIC8vIGNvbnN0IGlucHV0X2hpZGRlbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke3RoaXMuaWR9LWhpZGRlbmApO1xyXG4gICAgICAgIHRoaXMudG9JbnB1dCh0aGlzLmZvcm11bGFyaW8uZ2V0KCdzZWxlY3RlZF9pdGVtJykpO1xyXG4gICAgICB9ICAgXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBjbGVhclRleHRTZWFyY2goKXtcclxuICAgIHRoaXMuc2VhcmNoX3RleHQgPSAnJztcclxuICAgIHRoaXMudG9TZWFyY2goJycpO1xyXG4gIH1cclxuXHJcbiAgdG9PcGVuKCl7XHJcbiAgICB0aGlzLm1lbnVfc2hvdyA9ICF0aGlzLm1lbnVfc2hvdztcclxuICAgIHRoaXMucmVzb2x2ZV9wb3NpdGlvbl9kcm9wZG93bih0aGlzLm1lbnVfc2hvdyk7XHJcbiAgfVxyXG5cclxuICByZXNvbHZlX3Bvc2l0aW9uX2Ryb3Bkb3duKG9wZW46IGJvb2xlYW4pe1xyXG4gICAgaWYoIG9wZW4gKXtcclxuICAgICAgdGhpcy5ib3hfc3R5bGUgPSAnJztcclxuICAgICAgdGhpcy5tZW51X29uX3RvcCA9ICcnOyAgIFxyXG4gICAgICBjb25zdCBpZCA9IGAke3RoaXMuaWR9YDsgXHJcbiAgICAgIGNvbnN0IGJveCA9IGBib3gtJHt0aGlzLmlkfWA7XHJcbiAgICAgIGlmKCB0aGlzLnZpZXdwb3J0X2hlaWdodCA9PT0gMCApe1xyXG4gICAgICAgIHRoaXMudmlld3BvcnRfaGVpZ2h0ID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcmVjdCAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCBib3hfcG9zaXRpb24gPSByZWN0Py5ib3R0b20gfHwgMDsgICAgICBcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ib3hfaGVpZ2h0ICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGJveCk/LmNsaWVudEhlaWdodCB8fCAwO1xyXG4gICAgICAgIGlmKCAoIHRoaXMudmlld3BvcnRfaGVpZ2h0IC0gYm94X3Bvc2l0aW9uKSA8IHRoaXMuYm94X2hlaWdodCApe1xyXG4gICAgICAgICAgdGhpcy5tZW51X29uX3RvcCA9ICdtZW51LW9uLXRvcCc7XHJcbiAgICAgICAgICB0aGlzLmJveF9zdHlsZSA9IGB0b3A6IC0keyAodGhpcy5ib3hfaGVpZ2h0KSB9cHg7IGhlaWdodDogJHt0aGlzLmJveF9oZWlnaHR9cHg7YDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pOyAgICBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvQ2xvc2UoKXtcclxuICAgIHRoaXMubWVudV9zaG93ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgdG9SZXNpemUoKXtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMudmlld3BvcnRfd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgdGhpcy52aWV3cG9ydF9oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgICAgIHRoaXMucmVzb2x2ZV9wb3NpdGlvbl9kcm9wZG93bih0aGlzLm1lbnVfc2hvdyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRvQ2xpY2soKXtcclxuICAgIGNvbnN0IGJveCA9IGBhcmVhLSR7dGhpcy5pZH1gO1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywoZTogYW55KSA9PiB7ICAgXHJcbiAgICAgIGlmKCB0aGlzLm1lbnVfc2hvdyApe1xyXG4gICAgICAgIGlmKCAhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGJveCk/LmNvbnRhaW5zKGUudGFyZ2V0KSkgKXsgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5tZW51X3Nob3cgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIFxyXG4gIC8vUGxhY2Vob2xkZXJzIGZvciB0aGUgY2FsbGJhY2tzIHdoaWNoIGFyZSBsYXRlciBwcm92aWRlc2RcclxuICAgIC8vYnkgdGhlIENvbnRyb2wgVmFsdWUgQWNjZXNzb3JcclxuICAgIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gICAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcclxuXHJcbiAgICAvL2dldCBhY2Nlc3NvclxyXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRfaXRlbTtcclxuICAgIH07XHJcblxyXG4gICAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXHJcbiAgICBzZXQgdmFsdWUodjogYW55KSB7XHJcbiAgICAgICAgaWYgKHYgIT09IHRoaXMuc2VsZWN0ZWRfaXRlbSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkX2l0ZW0gPSB2O1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vU2V0IHRvdWNoZWQgb24gYmx1clxyXG4gICAgb25CbHVyKCkge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcclxuICAgIH1cclxuXHJcbiAgICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMuc2VsZWN0ZWRfaXRlbSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkX2l0ZW0gPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbiIsIjxkaXYgKm5nSWY9XCJmb3JtdWxhcmlvXCIgaWQ9XCJhcmVhLXt7IGlkIH19XCIgY2xhc3M9XCJ0Yy1kcm9wZG93blwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsb2FkaW5nXCI+XHJcbiAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cImxvYWRpbmctYXJlYVwiPlxyXG4gICAgPGkgY2xhc3M9XCJmYXMgZmEtc3Bpbm5lciBmYS1zcGluXCI+PC9pPlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gW2F0dHIuZGF0YS1icy10b2dnbGVdPVwiJ2Ryb3Bkb3duJ1wiICAtLT5cclxuICA8YnV0dG9uIFxyXG4gICAgW2NsYXNzLmxvYWRpbmctYm94XT1cImxvYWRpbmdcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvYWRpbmdcIlxyXG4gICAgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUgYnV0dG9uLXNlbGVjdCBuby1tYXJnaW4tYm90dG9tXCIgXHJcbiAgICB0eXBlPVwiYnV0dG9uXCIgXHJcbiAgICBpZD1cInt7IGlkIH19XCIgXHJcbiAgICBcclxuICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiJ3RydWUnXCIgXHJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIidmYWxzZSdcIiBcclxuICAgIChjbGljayk9XCJ0b09wZW4oKVwiID5cclxuXHJcbiAgICA8aSAqbmdJZj1cIihzZWxlY3RlZF9kZXNjcmlwdGlvbiA9PT0gdW5kZWZpbmVkIHx8IHNlbGVjdGVkX2Rlc2NyaXB0aW9uID09PSBudWxsIHx8IHNlbGVjdGVkX2Rlc2NyaXB0aW9uID09PSAnJyApICYmICFsb2FkaW5nIFwiPnt7IHBsYWNlaG9sZGVyIH19PC9pPlxyXG4gICAge3sgc2VsZWN0ZWRfZGVzY3JpcHRpb24gfX1cclxuICAgIDxzcGFuPjxpIGNsYXNzPVwiZmFzIGZhLWFuZ2xlLWRvd25cIj48L2k+PC9zcGFuPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxkaXYgY2xhc3M9XCJ0Yy1kcm9wZG93bi1tZW51IHt7IG1lbnVfb25fdG9wIH19XCIgaWQ9XCJib3gte3sgaWQgfX1cIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaWRcIiBbY2xhc3MudG8taGlkZV09XCIhbWVudV9zaG93XCIgW3N0eWxlXT1cImJveF9zdHlsZVwiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJsaW5lLXNlYXJjaFwiICpuZ0lmPVwic2VhcmNoXCI+XHJcbiAgICAgIDx0YWJsZSBjbGFzcz1cImJveC1zZWFyY2hcIj5cclxuICAgICAgICA8dHI+XHJcblxyXG4gICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dFwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cInRjLWZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwic2VhcmNoX3RleHRcIiAoaW5wdXQpPVwidG9TZWFyY2goJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiQnVzY2FyLi4uXCIgPiAgICAgICAgICAgIFxyXG4gICAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWljb25cIj5cclxuICAgICAgICAgICAgPGkgKm5nSWY9XCJzZWFyY2hfdGV4dCA9PT0gJydcIiBjbGFzcz1cImZhcyBmYS1zZWFyY2ggaWNvbi1zZWFyY2hcIj48L2k+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwic2VhcmNoX3RleHQgIT09ICcnXCIgKGNsaWNrKT1cImNsZWFyVGV4dFNlYXJjaCgpXCI+PGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+PC9idXR0b24+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJlYS1vcHRpb25zXCIgaWQ9XCJ7eyBpZCB9fS1vcHRpb25zXCIgKGNsaWNrKT1cInRvQ2xvc2UoKVwiPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+ICAgICAgXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiZm9ybXVsYXJpb1wiPlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybXVsYXJpb1wiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiA+XHJcbiAgICA8aW5wdXQgaWQ9XCJ7eyBpZCB9fS1oaWRkZW5cIiBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RlZF9pdGVtXCIgdHlwZT1cImhpZGRlblwiPlxyXG4gIDwvZm9ybT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGEtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0YS1saXN0L3RjbG91ZC11aS1kYXRhLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGEtbGlzdC90Y2xvdWQtdWktZGF0YS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFhLEtBQUssRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLGlCQUFpQixFQUFrQyxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFJaEcsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQVE7SUFDdEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO0lBQ3hELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtBQUNsQixDQUFDLENBQUM7QUFZRixNQUFNLE9BQU8seUJBQXlCO0lBNkRwQyxZQUNVLGVBQWdDLEVBQ2hDLFdBQXdCO1FBRHhCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQTdEbEMsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFDM0Isb0JBQWUsR0FBVyxDQUFDLENBQUM7UUFDNUIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixjQUFTLEdBQVcs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LENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUI7SUFDTCxDQUFDO0lBRUQscUJBQXFCO0lBQ3JCLE1BQU07UUFDRixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLFVBQVUsQ0FBQyxLQUFVO1FBQ2pCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLGlCQUFpQixDQUFDLEVBQU87UUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzt1SEE5UlEseUJBQXlCOzJHQUF6Qix5QkFBeUIseVFBTHpCO1FBQ1QsZUFBZTtRQUNmLG1DQUFtQztLQUNwQywwQkN2QkgsMGlFQWtEQTs0RkR6QmEseUJBQXlCO2tCQVRyQyxTQUFTOytCQUNFLHFCQUFxQixhQUdwQjt3QkFDVCxlQUFlO3dCQUNmLG1DQUFtQztxQkFDcEM7Z0lBVVEsV0FBVztzQkFBbkIsS0FBSztnQkFHTyxRQUFRO3NCQUFwQixLQUFLO2dCQVdPLE9BQU87c0JBQW5CLEtBQUs7Z0JBV0csTUFBTTtzQkFBZCxLQUFLO2dCQUdJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFHTSxPQUFPO3NCQUFuQixLQUFLO2dCQUlJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhTGlzdFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RhdGEtbGlzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIElucHV0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIE5nRm9ybSwgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJU2VsZWN0T3B0aW9ucyB9IGZyb20gJy4vdGNsb3VkLXVpLWRhdGEtbGlzdCc7XHJcblxyXG5leHBvcnQgY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaURhdGFMaXN0Q29tcG9uZW50KSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuY29uc3Qgbm9vcCA9ICgpID0+IHtcclxufTtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RjbG91ZC11aS1kYXRhLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90Y2xvdWQtdWktZGF0YS1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90Y2xvdWQtdWktZGF0YS1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBEYXRhTGlzdFNlcnZpY2UsIFxyXG4gICAgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlEYXRhTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcclxuXHJcbiAgdmlld3BvcnRfd2lkdGg6IG51bWJlciA9IDA7XHJcbiAgdmlld3BvcnRfaGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gIGJveF9oZWlnaHQ6IG51bWJlciA9IDA7XHJcbiAgYm94X3N0eWxlOiBzdHJpbmcgPSAnJztcclxuICBtZW51X29uX3RvcDogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodil7XHJcbiAgICBpZiggdiApe1xyXG4gICAgICB0aGlzLl9kaXNhYmxlZCA9IHY7ICAgIFxyXG4gICAgICB0aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uID0gJyc7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRfaXRlbSA9Jyc7XHJcbiAgICAgIHRoaXMudG9DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGRpc2FibGVkKCk6Ym9vbGVhbiB7IHJldHVybiB0aGlzLl9kaXNhYmxlZDsgfVxyXG5cclxuICBwcml2YXRlIF9sb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IGxvYWRpbmcodil7XHJcbiAgICBpZiggdiApe1xyXG4gICAgICB0aGlzLl9sb2FkaW5nID0gdjsgICAgXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24gPSAnJztcclxuICAgICAgdGhpcy5zZWxlY3RlZF9pdGVtID0nJztcclxuICAgICAgdGhpcy50b0NoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgbG9hZGluZygpOmJvb2xlYW4geyByZXR1cm4gdGhpcy5fbG9hZGluZzsgfVxyXG5cclxuXHJcbiAgQElucHV0KCkgc2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcclxuICBcclxuXHJcbiAgQE91dHB1dCgpIG9uSW5wdXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElTZWxlY3RPcHRpb25zPigpO1xyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SVNlbGVjdE9wdGlvbnM+KCk7XHJcblxyXG4gIHByaXZhdGUgX25nTW9kZWw6IGFueSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZXQgbmdNb2RlbCh2OiBhbnkpe1xyXG4gICAgdGhpcy5zZWxlY3RlZF9pdGVtID0gdjsgICAgXHJcbiAgICB0aGlzLnNlbGVjdERlc2NyaXB0aW9uKCk7ICAgXHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBuZ01vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGxpc3Rfc2VsZWN0ZWRfb3B0aW9ucyA9IG5ldyBBcnJheTxJU2VsZWN0T3B0aW9ucz4oKTtcclxuXHJcbiAgc2VsZWN0ZWRfaXRlbTogYW55IHwgdW5kZWZpbmVkO1xyXG4gIHNlbGVjdGVkX2Rlc2NyaXB0aW9uOiBhbnkgfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uX3ZhbHVlOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25fZGVzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbl9vcHRpb25zOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcblxyXG4gIG1lbnVfc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlYXJjaF90ZXh0OiBzdHJpbmcgPSAnJztcclxuICBpZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIGZvcm11bGFyaW86IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRhdGFMaXN0U2VydmljZTogRGF0YUxpc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcclxuICApe1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKXtcclxuICAgIHRoaXMuaWQgPSB0aGlzLmdlbmVyYXRlSUQoKTtcclxuXHJcbiAgICB0aGlzLmZvcm11bGFyaW8gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgXCJzZWxlY3RlZF9pdGVtXCI6IG5ldyBGb3JtQ29udHJvbCgnJyxbXSksXHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uX3ZhbHVlID0gdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc3RhdGVWYWx1ZSQuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkX2l0ZW0gPSB2OyAgICAgIFxyXG4gICAgICB0aGlzLnNlbGVjdERlc2NyaXB0aW9uKCk7XHJcbiAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRfaXRlbSk7XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uX2Rlc2NyaXB0aW9uID0gdGhpcy5kYXRhTGlzdFNlcnZpY2Uuc3RhdGVEZXNjcmlwdGlvbiQuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uID0gdjsgICAgICBcclxuICAgIH0pXHJcblxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uX29wdGlvbnMgPSB0aGlzLmRhdGFMaXN0U2VydmljZS5zdGF0ZU9wdGlvbnMkLnN1YnNjcmliZSgodjphbnkpID0+IHtcclxuICAgICAgaWYoIHYgJiYgdi52YWx1ZSApe1xyXG4gICAgICAgICh0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9ucykucHVzaCh2KTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnRvUmVzaXplKCk7XHJcbiAgICB0aGlzLnRvQ2xpY2soKTtcclxuICB9XHJcblxyXG4gIHRfZmM6IGFueSB8IHVuZGVmaW5lZDtcclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRfZmMgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRfZmMgPSB0aGlzLmdldF9zZWxlY3RlZF9kZXNjcmlwdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0X3NlbGVjdGVkX2Rlc2NyaXB0aW9uKCk6IHZvaWR7XHJcbiAgICBpZiggdGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnMgJiYgKHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIGZvciggbGV0IGkgPSAwOyBpIDwgKHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9uc1tpXTtcclxuICAgICAgICBpZiggaXRlbS52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZF9pdGVtICl7ICAgICAgICAgXHJcbiAgICAgICAgICBpZiggdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiAhPT0gaXRlbS5kZXNjcmlwdGlvbiApe1xyXG4gICAgICAgICAgICBpZiggaXRlbS5kZXNjcmlwdGlvbiAmJiBpdGVtLmRlc2NyaXB0aW9uICE9PSB0aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uICl7XHJcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uID0gaXRlbS5kZXNjcmlwdGlvbjsgXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFMaXN0U2VydmljZS5zZXRBY3RpdmVJdGVtKHRoaXMuc2VsZWN0ZWRfaXRlbSk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gICAgICAgIFxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IFxyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVJRCgpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gYGRhdGEtbGlzdC0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpKX1gO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiggdGhpcy5zdWJzY3JpcHRpb25fdmFsdWUgKXsgdGhpcy5zdWJzY3JpcHRpb25fdmFsdWUudW5zdWJzY3JpYmUoKTsgfSAgICBcclxuICAgIGlmKCB0aGlzLnN1YnNjcmlwdGlvbl9kZXNjcmlwdGlvbiApeyB0aGlzLnN1YnNjcmlwdGlvbl9kZXNjcmlwdGlvbi51bnN1YnNjcmliZSgpOyB9IFxyXG4gICAgaWYoIHRoaXMuc3Vic2NyaXB0aW9uX29wdGlvbnMgKXsgdGhpcy5zdWJzY3JpcHRpb25fb3B0aW9ucy51bnN1YnNjcmliZSgpOyB9IFxyXG4gIH1cclxuXHJcbiAgdG9TZWFyY2goZTogYW55KSB7XHJcbiAgICBsZXQgaW5wdXQgPSAoZSAmJiBlLnRhcmdldCAmJiBlLnRhcmdldC52YWx1ZSkgPyBlLnRhcmdldC52YWx1ZSA6ICcnO1xyXG4gICAgXHJcbiAgICBsZXQgZmlsdGVyID0gKCAoIChpbnB1dCkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKSApLnRyaW0oKSApLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBsZXQgdWwgPSA8YW55PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLmlkfS1vcHRpb25zYCk7XHJcbiAgICBsZXQgbGkgPSB1bC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImJ1dHRvblwiKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBhID0gbGlbaV07XHJcbiAgICAgICAgY29uc3QgdHh0VmFsdWUgPSAoICggKCBhLnRleHRDb250ZW50IHx8IGEuaW5uZXJUZXh0ICkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKSApLnRyaW0oKSApLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgaWYgKHR4dFZhbHVlLmluZGV4T2YoZmlsdGVyKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGxpW2ldLnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxpW2ldLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3REZXNjcmlwdGlvbigpe1xyXG4gICAgaWYoIHRoaXMubGlzdF9zZWxlY3RlZF9vcHRpb25zICYmICh0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9ucykubGVuZ3RoID4gMCApe1xyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLmxpc3Rfc2VsZWN0ZWRfb3B0aW9ucykubGVuZ3RoOyBpKysgKXtcclxuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5saXN0X3NlbGVjdGVkX29wdGlvbnNbaV07XHJcbiAgICAgICAgaWYoIGl0ZW0udmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRfaXRlbSApe1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZF9kZXNjcmlwdGlvbiA9IGl0ZW0uZGVzY3JpcHRpb247XHJcbiAgICAgICAgICB0aGlzLnRvQ2hhbmdlKCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIHRoaXMuc2VsZWN0ZWRfaXRlbSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuc2VsZWN0ZWRfaXRlbSA9PT0gbnVsbCB8fCB0aGlzLnNlbGVjdGVkX2l0ZW0gPT09ICcnICl7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRfZGVzY3JpcHRpb24gPSAnJztcclxuICAgICAgdGhpcy50b0NoYW5nZSgpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG5cclxuICBcclxuICB0b0lucHV0KGU6IGFueSl7XHJcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICB0b0NoYW5nZSgpe1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmKCB0aGlzLnNlbGVjdGVkX2l0ZW0gPT09IHVuZGVmaW5lZCB8fCB0aGlzLnNlbGVjdGVkX2l0ZW0gPT09IG51bGwgKXtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkX2l0ZW0gPSAnJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRvU2VhcmNoKCcnKTtcclxuICAgICAgdGhpcy5zZWFyY2hfdGV4dCA9ICcnO1xyXG4gICAgICB0aGlzLmRhdGFMaXN0U2VydmljZS5zZXRBY3RpdmVJdGVtKHRoaXMuc2VsZWN0ZWRfaXRlbSk7XHJcblxyXG4gICAgICB0aGlzLm9uSW5wdXRDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkX2Rlc2NyaXB0aW9uKTtcclxuXHJcbiAgICAgIGlmKCB0aGlzLmZvcm11bGFyaW8gKXtcclxuICAgICAgICB0aGlzLmZvcm11bGFyaW8/LmdldCgnc2VsZWN0ZWRfaXRlbScpPy5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkX2l0ZW0pO1xyXG4gICAgICAgIC8vIGNvbnN0IGlucHV0X2hpZGRlbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke3RoaXMuaWR9LWhpZGRlbmApO1xyXG4gICAgICAgIHRoaXMudG9JbnB1dCh0aGlzLmZvcm11bGFyaW8uZ2V0KCdzZWxlY3RlZF9pdGVtJykpO1xyXG4gICAgICB9ICAgXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBjbGVhclRleHRTZWFyY2goKXtcclxuICAgIHRoaXMuc2VhcmNoX3RleHQgPSAnJztcclxuICAgIHRoaXMudG9TZWFyY2goJycpO1xyXG4gIH1cclxuXHJcbiAgdG9PcGVuKCl7XHJcbiAgICB0aGlzLm1lbnVfc2hvdyA9ICF0aGlzLm1lbnVfc2hvdzsgXHJcbiAgICB0aGlzLnJlc29sdmVfcG9zaXRpb25fZHJvcGRvd24odGhpcy5tZW51X3Nob3cpO1xyXG4gIH1cclxuXHJcbiAgcmVzb2x2ZV9wb3NpdGlvbl9kcm9wZG93bihvcGVuOiBib29sZWFuKXtcclxuICAgIGlmKCBvcGVuICl7XHJcbiAgICAgIHRoaXMuYm94X3N0eWxlID0gJyc7XHJcbiAgICAgIHRoaXMubWVudV9vbl90b3AgPSAnJzsgICBcclxuICAgICAgY29uc3QgaWQgPSBgJHt0aGlzLmlkfWA7IFxyXG4gICAgICBjb25zdCBib3ggPSBgYm94LSR7dGhpcy5pZH1gO1xyXG4gICAgICBpZiggdGhpcy52aWV3cG9ydF9oZWlnaHQgPT09IDAgKXtcclxuICAgICAgICB0aGlzLnZpZXdwb3J0X2hlaWdodCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHJlY3QgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgY29uc3QgYm94X3Bvc2l0aW9uID0gcmVjdD8uYm90dG9tIHx8IDA7ICAgICAgXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYm94X2hlaWdodCAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChib3gpPy5jbGllbnRIZWlnaHQgfHwgMDtcclxuICAgICAgICBpZiggKCB0aGlzLnZpZXdwb3J0X2hlaWdodCAtIGJveF9wb3NpdGlvbikgPCB0aGlzLmJveF9oZWlnaHQgKXtcclxuICAgICAgICAgIHRoaXMubWVudV9vbl90b3AgPSAnbWVudS1vbi10b3AnO1xyXG4gICAgICAgICAgdGhpcy5ib3hfc3R5bGUgPSBgdG9wOiAtJHsgKHRoaXMuYm94X2hlaWdodCkgfXB4OyBoZWlnaHQ6ICR7dGhpcy5ib3hfaGVpZ2h0fXB4O2A7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTsgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0b0Nsb3NlKCl7XHJcbiAgICB0aGlzLm1lbnVfc2hvdyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIHRvUmVzaXplKCl7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4ge1xyXG4gICAgICB0aGlzLnZpZXdwb3J0X3dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICAgIHRoaXMudmlld3BvcnRfaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgICB0aGlzLnJlc29sdmVfcG9zaXRpb25fZHJvcGRvd24odGhpcy5tZW51X3Nob3cpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0b0NsaWNrKCl7XHJcbiAgICBjb25zdCBib3ggPSBgYXJlYS0ke3RoaXMuaWR9YDtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKGU6IGFueSkgPT4geyAgIFxyXG4gICAgICBpZiggdGhpcy5tZW51X3Nob3cgKXtcclxuICAgICAgICBpZiggIShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChib3gpPy5jb250YWlucyhlLnRhcmdldCkpICl7ICAgICAgICBcclxuICAgICAgICAgIHRoaXMubWVudV9zaG93ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBcclxuICAvL1BsYWNlaG9sZGVycyBmb3IgdGhlIGNhbGxiYWNrcyB3aGljaCBhcmUgbGF0ZXIgcHJvdmlkZXNkXHJcbiAgICAvL2J5IHRoZSBDb250cm9sIFZhbHVlIEFjY2Vzc29yXHJcbiAgICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcclxuICAgIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gICAgLy9nZXQgYWNjZXNzb3JcclxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkX2l0ZW07XHJcbiAgICB9O1xyXG5cclxuICAgIC8vc2V0IGFjY2Vzc29yIGluY2x1ZGluZyBjYWxsIHRoZSBvbmNoYW5nZSBjYWxsYmFja1xyXG4gICAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG4gICAgICAgIGlmICh2ICE9PSB0aGlzLnNlbGVjdGVkX2l0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZF9pdGVtID0gdjtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL1NldCB0b3VjaGVkIG9uIGJsdXJcclxuICAgIG9uQmx1cigpIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnNlbGVjdGVkX2l0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZF9pdGVtID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4iLCI8ZGl2ICpuZ0lmPVwiZm9ybXVsYXJpb1wiIGlkPVwiYXJlYS17eyBpZCB9fVwiIGNsYXNzPVwidGMtZHJvcGRvd25cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbG9hZGluZ1wiPlxyXG4gIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJsb2FkaW5nLWFyZWFcIj5cclxuICAgIDxpIGNsYXNzPVwiZmFzIGZhLXNwaW5uZXIgZmEtc3BpblwiPjwvaT5cclxuICA8L2Rpdj5cclxuICA8IS0tIFthdHRyLmRhdGEtYnMtdG9nZ2xlXT1cIidkcm9wZG93bidcIiAgLS0+XHJcbiAgPGJ1dHRvbiBcclxuICAgIFtjbGFzcy5sb2FkaW5nLWJveF09XCJsb2FkaW5nXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsb2FkaW5nXCJcclxuICAgIGNsYXNzPVwiZHJvcGRvd24tdG9nZ2xlIGJ1dHRvbi1zZWxlY3Qgbm8tbWFyZ2luLWJvdHRvbVwiIFxyXG4gICAgdHlwZT1cImJ1dHRvblwiIFxyXG4gICAgaWQ9XCJ7eyBpZCB9fVwiIFxyXG4gICAgXHJcbiAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cIid0cnVlJ1wiIFxyXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCInZmFsc2UnXCIgXHJcbiAgICAoY2xpY2spPVwidG9PcGVuKClcIiA+XHJcblxyXG4gICAgPGkgKm5nSWY9XCIoc2VsZWN0ZWRfZGVzY3JpcHRpb24gPT09IHVuZGVmaW5lZCB8fCBzZWxlY3RlZF9kZXNjcmlwdGlvbiA9PT0gbnVsbCB8fCBzZWxlY3RlZF9kZXNjcmlwdGlvbiA9PT0gJycgKSAmJiAhbG9hZGluZyBcIj57eyBwbGFjZWhvbGRlciB9fTwvaT5cclxuICAgIHt7IHNlbGVjdGVkX2Rlc2NyaXB0aW9uIH19XHJcbiAgICA8c3Bhbj48aSBjbGFzcz1cImZhcyBmYS1hbmdsZS1kb3duXCI+PC9pPjwvc3Bhbj5cclxuICA8L2J1dHRvbj5cclxuICA8ZGl2IGNsYXNzPVwidGMtZHJvcGRvd24tbWVudSB7eyBtZW51X29uX3RvcCB9fVwiIGlkPVwiYm94LXt7IGlkIH19XCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImlkXCIgW2NsYXNzLnRvLWhpZGVdPVwiIW1lbnVfc2hvd1wiIFtzdHlsZV09XCJib3hfc3R5bGVcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibGluZS1zZWFyY2hcIiAqbmdJZj1cInNlYXJjaFwiPlxyXG4gICAgICA8dGFibGUgY2xhc3M9XCJib3gtc2VhcmNoXCI+XHJcbiAgICAgICAgPHRyPlxyXG5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtaW5wdXRcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJ0Yy1mb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInNlYXJjaF90ZXh0XCIgKGlucHV0KT1cInRvU2VhcmNoKCRldmVudClcIiBwbGFjZWhvbGRlcj1cIkJ1c2Nhci4uLlwiID4gICAgICAgICAgICBcclxuICAgICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pY29uXCI+XHJcbiAgICAgICAgICAgIDxpICpuZ0lmPVwic2VhcmNoX3RleHQgPT09ICcnXCIgY2xhc3M9XCJmYXMgZmEtc2VhcmNoIGljb24tc2VhcmNoXCI+PC9pPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cInNlYXJjaF90ZXh0ICE9PSAnJ1wiIChjbGljayk9XCJjbGVhclRleHRTZWFyY2goKVwiPjxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIFxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgIDwvdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cImFyZWEtb3B0aW9uc1wiIGlkPVwie3sgaWQgfX0tb3B0aW9uc1wiIChjbGljayk9XCJ0b0Nsb3NlKClcIj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiAgICAgIFxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cImZvcm11bGFyaW9cIj5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm11bGFyaW9cIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgPlxyXG4gICAgPGlucHV0IGlkPVwie3sgaWQgfX0taGlkZGVuXCIgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0ZWRfaXRlbVwiIHR5cGU9XCJoaWRkZW5cIj5cclxuICA8L2Zvcm0+XHJcbjwvZGl2PlxyXG4iXX0=
|
package/esm2020/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component.mjs
ADDED
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import { Component, Input, forwardRef } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
const CUSTOM_INPUT_VALIDATORS = {
|
|
7
|
+
provide: NG_VALIDATORS,
|
|
8
|
+
useExisting: forwardRef(() => TCloudUiMultiplesValuesComponent),
|
|
9
|
+
multi: true
|
|
10
|
+
};
|
|
11
|
+
const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
|
|
12
|
+
provide: NG_VALUE_ACCESSOR,
|
|
13
|
+
useExisting: forwardRef(() => TCloudUiMultiplesValuesComponent),
|
|
14
|
+
multi: true
|
|
15
|
+
};
|
|
16
|
+
const noop = () => {
|
|
17
|
+
};
|
|
18
|
+
export class TCloudUiMultiplesValuesComponent {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.viewport_width = 0;
|
|
21
|
+
this.viewport_height = 0;
|
|
22
|
+
this.box_height = 0;
|
|
23
|
+
this.box_style = '';
|
|
24
|
+
this.menu_on_top = '';
|
|
25
|
+
this.search_text = '';
|
|
26
|
+
this.id = '';
|
|
27
|
+
this.show_itens = false;
|
|
28
|
+
this.input_items = '';
|
|
29
|
+
this.items = [];
|
|
30
|
+
this.delimiter = ',';
|
|
31
|
+
this.placeholder = '';
|
|
32
|
+
this.disabled = false;
|
|
33
|
+
this.loading = false;
|
|
34
|
+
this.search = true;
|
|
35
|
+
this.uppercase = false;
|
|
36
|
+
this.lowercase = false;
|
|
37
|
+
this.use_validation_required = false;
|
|
38
|
+
this.placeholder_list = '';
|
|
39
|
+
//Placeholders for the callbacks which are later providesd
|
|
40
|
+
//by the Control Value Accessor
|
|
41
|
+
this.onTouchedCallback = noop;
|
|
42
|
+
this.onChangeCallback = noop;
|
|
43
|
+
}
|
|
44
|
+
ngOnInit() {
|
|
45
|
+
this.id = this.generateID();
|
|
46
|
+
this.toResize();
|
|
47
|
+
this.toClick();
|
|
48
|
+
this.set_placeholder_list();
|
|
49
|
+
}
|
|
50
|
+
check_is_valid() {
|
|
51
|
+
if (this.items) {
|
|
52
|
+
return ((this.items).length > 0) ? true : false;
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
generateID() {
|
|
57
|
+
return `multiple-values-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;
|
|
58
|
+
}
|
|
59
|
+
remove_duplicates(items) {
|
|
60
|
+
return [...new Set(items)];
|
|
61
|
+
}
|
|
62
|
+
item_width(text) {
|
|
63
|
+
const value = `${text}`;
|
|
64
|
+
const value_len = (value).length;
|
|
65
|
+
let max_width = 155;
|
|
66
|
+
if (value_len < 15) {
|
|
67
|
+
max_width = 138;
|
|
68
|
+
}
|
|
69
|
+
if (value_len < 10) {
|
|
70
|
+
max_width = 105;
|
|
71
|
+
}
|
|
72
|
+
if (value_len < 8) {
|
|
73
|
+
max_width = 85;
|
|
74
|
+
}
|
|
75
|
+
if (value_len < 5) {
|
|
76
|
+
max_width = 70;
|
|
77
|
+
}
|
|
78
|
+
return { 'max-width': max_width + 'px' };
|
|
79
|
+
}
|
|
80
|
+
add_items() {
|
|
81
|
+
if (this.disabled) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const input_items = this.input_items;
|
|
85
|
+
this.input_items = '';
|
|
86
|
+
let items = [];
|
|
87
|
+
if (input_items && input_items !== '') {
|
|
88
|
+
items = (input_items).split(this.delimiter);
|
|
89
|
+
}
|
|
90
|
+
if ((items).length === 0) {
|
|
91
|
+
let txt = `${(input_items).trim()}`;
|
|
92
|
+
items = [txt];
|
|
93
|
+
}
|
|
94
|
+
//items = [...new Set(items)];
|
|
95
|
+
for (let i = 0; i < (items).length; i++) {
|
|
96
|
+
let txt = `${(items[i]).trim()}`;
|
|
97
|
+
if (this.uppercase) {
|
|
98
|
+
txt = (txt).toLocaleUpperCase();
|
|
99
|
+
}
|
|
100
|
+
if (this.lowercase) {
|
|
101
|
+
txt = (txt).toLocaleLowerCase();
|
|
102
|
+
}
|
|
103
|
+
if (txt !== '') {
|
|
104
|
+
(this.items).push(txt);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
this.items = this.remove_duplicates(this.items);
|
|
108
|
+
this.set_placeholder_list();
|
|
109
|
+
}
|
|
110
|
+
set_placeholder_list() {
|
|
111
|
+
let placeholder_list = '';
|
|
112
|
+
let delimiter = '';
|
|
113
|
+
const items = this.items;
|
|
114
|
+
if (items && (items).length > 0) {
|
|
115
|
+
for (let i = 0; i < (items).length; i++) {
|
|
116
|
+
placeholder_list += delimiter + `${(items[i]).trim()}`;
|
|
117
|
+
delimiter = `${this.delimiter} `;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
this.placeholder_list = (placeholder_list !== '') ? placeholder_list : this.placeholder;
|
|
121
|
+
this.onChangeTouched();
|
|
122
|
+
this.onChangeCallback(this.items);
|
|
123
|
+
}
|
|
124
|
+
removeItem(item, index) {
|
|
125
|
+
if (this.disabled) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (this.items) {
|
|
129
|
+
for (let i = 0; i < (this.items).length; i++) {
|
|
130
|
+
const row = this.items[i];
|
|
131
|
+
if (item === row && i === index) {
|
|
132
|
+
(this.items).splice(index, 1);
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
this.set_placeholder_list();
|
|
138
|
+
}
|
|
139
|
+
remove_all() {
|
|
140
|
+
if (this.disabled) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
this.items = [];
|
|
144
|
+
this.set_placeholder_list();
|
|
145
|
+
}
|
|
146
|
+
toClick() {
|
|
147
|
+
const box = `area-${this.id}`;
|
|
148
|
+
window.addEventListener('click', (e) => {
|
|
149
|
+
if (this.show_itens) {
|
|
150
|
+
try {
|
|
151
|
+
if (!(document.getElementById(box)?.contains(e.target))) {
|
|
152
|
+
if ('box-action' !== e.target.parentElement.className) {
|
|
153
|
+
this.show_itens = false;
|
|
154
|
+
}
|
|
155
|
+
//console.log('toClick', e.target.parentElement.className);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
const boxsub = `${this.id}-options`;
|
|
163
|
+
}
|
|
164
|
+
toResize() {
|
|
165
|
+
window.addEventListener('resize', () => {
|
|
166
|
+
this.viewport_width = window.innerWidth;
|
|
167
|
+
this.viewport_height = window.innerHeight;
|
|
168
|
+
this.resolve_position_dropdown(this.show_itens);
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
toOpen() {
|
|
172
|
+
this.show_itens = !this.show_itens;
|
|
173
|
+
this.resolve_position_dropdown(this.show_itens);
|
|
174
|
+
}
|
|
175
|
+
toClose() {
|
|
176
|
+
this.show_itens = false;
|
|
177
|
+
}
|
|
178
|
+
resolve_position_dropdown(open) {
|
|
179
|
+
if (open) {
|
|
180
|
+
this.box_style = '';
|
|
181
|
+
this.menu_on_top = '';
|
|
182
|
+
const id = `${this.id}`;
|
|
183
|
+
const box = `box-${this.id}`;
|
|
184
|
+
if (this.viewport_height === 0) {
|
|
185
|
+
this.viewport_height = window.innerWidth;
|
|
186
|
+
}
|
|
187
|
+
const rect = document.getElementById(id)?.getBoundingClientRect();
|
|
188
|
+
const box_position = rect?.bottom || 0;
|
|
189
|
+
setTimeout(() => {
|
|
190
|
+
this.box_height = document.getElementById(box)?.clientHeight || 0;
|
|
191
|
+
if ((this.viewport_height - box_position) < this.box_height) {
|
|
192
|
+
this.menu_on_top = 'menu-on-top';
|
|
193
|
+
this.box_style = `top: -${(this.box_height)}px; height: ${this.box_height}px;`;
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
clearTextSearch() {
|
|
199
|
+
this.search_text = '';
|
|
200
|
+
this.toSearch('');
|
|
201
|
+
}
|
|
202
|
+
toSearch(e) {
|
|
203
|
+
let input = (e && e.target && e.target.value) ? e.target.value : '';
|
|
204
|
+
let filter = (((input).normalize('NFD').replace(/[\u0300-\u036f]/g, "")).trim()).toLowerCase();
|
|
205
|
+
let ul = document.getElementById(`${this.id}-options`);
|
|
206
|
+
let li = ul.getElementsByTagName("label");
|
|
207
|
+
for (let i = 0; i < li.length; i++) {
|
|
208
|
+
const a = li[i];
|
|
209
|
+
const txtValue = (((a.textContent || a.innerText).normalize('NFD').replace(/[\u0300-\u036f]/g, "")).trim()).toLowerCase();
|
|
210
|
+
if (txtValue.indexOf(filter) > -1) {
|
|
211
|
+
li[i].style.display = "";
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
li[i].style.display = "none";
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
onChangeTouched() {
|
|
219
|
+
this.onTouchedCallback();
|
|
220
|
+
}
|
|
221
|
+
toSetDefault(v) {
|
|
222
|
+
this.items = v;
|
|
223
|
+
this.add_items();
|
|
224
|
+
}
|
|
225
|
+
//get accessor
|
|
226
|
+
get value() {
|
|
227
|
+
return this.innerValue;
|
|
228
|
+
}
|
|
229
|
+
;
|
|
230
|
+
//set accessor including call the onchange callback
|
|
231
|
+
set value(v) {
|
|
232
|
+
if (v !== this.innerValue) {
|
|
233
|
+
this.innerValue = v;
|
|
234
|
+
this.toSetDefault(v);
|
|
235
|
+
this.onChangeCallback(v);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
//Set touched on blur
|
|
239
|
+
onBlur() {
|
|
240
|
+
this.onTouchedCallback();
|
|
241
|
+
}
|
|
242
|
+
//From ControlValueAccessor interface
|
|
243
|
+
writeValue(value) {
|
|
244
|
+
if (value !== this.innerValue) {
|
|
245
|
+
this.innerValue = value;
|
|
246
|
+
this.toSetDefault(value);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
//From ControlValueAccessor interface
|
|
250
|
+
registerOnChange(fn) {
|
|
251
|
+
this.onChangeCallback = fn;
|
|
252
|
+
}
|
|
253
|
+
//From ControlValueAccessor interface
|
|
254
|
+
registerOnTouched(fn) {
|
|
255
|
+
this.onTouchedCallback = fn;
|
|
256
|
+
}
|
|
257
|
+
validate(c) {
|
|
258
|
+
if (c && (typeof this.required !== 'undefined')) {
|
|
259
|
+
this.use_validation_required = true;
|
|
260
|
+
return (this.check_is_valid()) ? null : 'required';
|
|
261
|
+
}
|
|
262
|
+
return null;
|
|
263
|
+
}
|
|
264
|
+
ngOnDestroy() {
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
TCloudUiMultiplesValuesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiMultiplesValuesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
268
|
+
TCloudUiMultiplesValuesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiMultiplesValuesComponent, selector: "tcloud-ui-multiples-values", inputs: { delimiter: "delimiter", placeholder: "placeholder", disabled: "disabled", loading: "loading", required: "required", search: "search", uppercase: "uppercase", lowercase: "lowercase" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], ngImport: i0, template: "<div class=\"tc-dropdown\" id=\"area-{{ id }}\" [class.tc-parent-validation]=\"use_validation_required\">\n\n\n <form #_formulario=\"ngForm\">\n\n <!-- {{ input_items }} -->\n\n <div class=\"dropdown-toggle\" id=\"{{id}}\" [attr.aria-haspopup]=\"'true'\" [attr.aria-expanded]=\"'false'\">\n <table class=\"group-input-action\">\n <tr>\n <td class=\"box-input\">\n <div class=\"input\">\n <input \n (keydown.enter)=\"add_items();toOpen()\"\n [disabled]=\"disabled\"\n [class.text-lowercase]=\"lowercase\"\n [class.text-uppercase]=\"uppercase\"\n type=\"text\" name=\"items\" class=\"form-control tc-form-control\" [(ngModel)]=\"input_items\" [placeholder]=\"placeholder_list\" required [title]=\"placeholder_list\">\n </div>\n </td>\n <td class=\"count-list\" *ngIf=\"(items && items.length > 0)\">\n <div class=\"input\">\n <input type=\"text\" value=\"{{ items.length }} {{ (items.length > 1) ? 'registros' : 'registro' }}\" disabled readonly>\n \n </div>\n </td>\n <td class=\"action-input-arrow\">\n <button (click)=\"toOpen()\" title=\"Lista de valores\" [disabled]=\"disabled\">\n <i class=\"fas fa-angle-up\" *ngIf=\"show_itens\"></i>\n <i class=\"fas fa-angle-down\" *ngIf=\"!show_itens\"></i>\n </button>\n </td>\n <td class=\"action-input\" *ngIf=\"!disabled\">\n <button [disabled]=\"!_formulario.valid\" class=\"tc-btn tc-btn-primary btn-new-green\" (click)=\"add_items()\" title=\"Adicionar item\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </td>\n </tr>\n </table>\n </div>\n \n <!-- <pre>\n {{ items | json }}\n </pre> -->\n\n </form> \n\n <!-- box-itens-selected -->\n <div class=\"tc-dropdown-menu box-itens-selected {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!show_itens\" [style]=\"box_style\">\n \n\n <div class=\"line-search\" *ngIf=\"search\">\n <table class=\"box-search\">\n <tr>\n \n <td class=\"area-input\">\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \n </td>\n \n <td class=\"area-icon\">\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\n <button class=\"box-action\" type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\n </td>\n \n </tr>\n </table>\n </div>\n\n <div class=\"area-options\" id=\"{{ id }}-options\">\n <ng-container *ngFor=\"let item of items; let i = index\">\n \n <label class=\"box-label\" [ngStyle]=\"item_width(item)\">\n <div class=\"box-value\" [title]=\"item\" >\n {{ item }} \n </div>\n <div class=\"box-action\">\n <button\n class=\"box-action\"\n [disabled]=\"items === undefined || (items && items.length === 0) || disabled || loading\"\n title=\"Remover\"\n type=\"button\"\n (click)=\"removeItem(item, i)\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </label>\n\n </ng-container>\n </div>\n\n <div class=\"mt-5\" *ngIf=\"items && (items).length > 5\">\n <div class=\"btn-remove-all\">\n <button class=\"box-action\" type=\"button\" (click)=\"remove_all()\">\n Limpar toda a lista\n </button>\n </div>\n </div>\n\n </div>\n</div>", styles: ["table{border-collapse:collapse}td,th{padding:0;margin:0}::placeholder{font-style:italic;color:#999;text-transform:none!important}.box-input{border-radius:5px 0 0 5px}.box-input .input{background-color:#fff;border-left:1px solid #ccc;border-top:1px solid #ccc;border-bottom:1px solid #ccc;border-radius:5px 0 0 5px}.box-input .ng-invalid{border-color:#ccc!important}.group-input-action{width:100%}.group-input-action input{height:40px;border:none}.count-list{width:90px;text-align:center;background:#fff}.count-list .input{background-color:#fff;border-bottom:1px solid #ccc;border-top:1px solid #ccc}.count-list .input input{height:40px;border:none;text-align:center;width:100px}.action-input-arrow{width:30px;background-color:#fff;position:relative;z-index:0}.action-input-arrow button{cursor:pointer;background-color:transparent;text-align:center;font-size:15px;height:42px!important;border-top:1px solid #ccc;border-right:1px solid #ccc;border-bottom:1px solid #ccc;border-left:none;width:30px;border-radius:0 3px 3px 0}.action-input-arrow button i{position:relative;z-index:-1}.action-input{width:50px;padding-left:10px}.action-input .tc-btn{width:100%!important;padding:0;text-align:center;border-radius:3px;display:block;margin:0;height:40px}.action-input .tc-btn i{width:100%;text-align:center;padding:0!important;margin:0!important}.box-itens-selected{display:block;padding:9px;background-color:#ededed;border-radius:4px;width:100%}.box-itens-selected .box-label{position:relative;display:inline-block;height:35px;min-width:60px;background-color:var(--verde);color:#fff;padding:8px 15px 10px;border:none;border-radius:5px;margin:2px;width:100%}.box-itens-selected .box-label .box-value{width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.box-itens-selected .box-label div.box-action{position:absolute;right:4px;top:7px}.box-itens-selected .box-label div.box-action button{color:#d72020;background-color:transparent;border:none;font-weight:700;cursor:pointer}.box-itens-selected .box-label div.box-action button i{font-size:12px}.to-hide{display:none}.dropdown-toggle:after{display:none!important}.tc-dropdown{position:relative}.tc-dropdown .tc-dropdown-menu{width:100%;border:1px solid #ccc;background-color:#fff;position:absolute;z-index:1}.tc-dropdown .area-options{max-height:200px;overflow-y:scroll;overflow-x:hidden}.tc-dropdown .menu-on-top{position:absolute}.line-search{padding:3px}.line-search .box-search{width:100%;border-collapse:collapse}.line-search .box-search td.area-icon{padding:4px 0 2px 8px;width:35px}.line-search .box-search td.area-icon .icon-search{color:#666}.line-search .box-search td.area-icon button{border:none;background-color:transparent;color:#999;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-search .box-search td.area-input{border:none}.line-search .box-search td.area-input input{width:100%}.line-search .box-search input{width:100%;font-size:13px;height:33px;border:1px solid #ccc;padding:10px}.btn-remove-all{text-align:right}.btn-remove-all button{background-color:transparent;border:none;color:#dd5353;cursor:pointer}.btn-remove-all button:hover{color:red!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
|
|
269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiMultiplesValuesComponent, decorators: [{
|
|
270
|
+
type: Component,
|
|
271
|
+
args: [{ selector: 'tcloud-ui-multiples-values', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS], template: "<div class=\"tc-dropdown\" id=\"area-{{ id }}\" [class.tc-parent-validation]=\"use_validation_required\">\n\n\n <form #_formulario=\"ngForm\">\n\n <!-- {{ input_items }} -->\n\n <div class=\"dropdown-toggle\" id=\"{{id}}\" [attr.aria-haspopup]=\"'true'\" [attr.aria-expanded]=\"'false'\">\n <table class=\"group-input-action\">\n <tr>\n <td class=\"box-input\">\n <div class=\"input\">\n <input \n (keydown.enter)=\"add_items();toOpen()\"\n [disabled]=\"disabled\"\n [class.text-lowercase]=\"lowercase\"\n [class.text-uppercase]=\"uppercase\"\n type=\"text\" name=\"items\" class=\"form-control tc-form-control\" [(ngModel)]=\"input_items\" [placeholder]=\"placeholder_list\" required [title]=\"placeholder_list\">\n </div>\n </td>\n <td class=\"count-list\" *ngIf=\"(items && items.length > 0)\">\n <div class=\"input\">\n <input type=\"text\" value=\"{{ items.length }} {{ (items.length > 1) ? 'registros' : 'registro' }}\" disabled readonly>\n \n </div>\n </td>\n <td class=\"action-input-arrow\">\n <button (click)=\"toOpen()\" title=\"Lista de valores\" [disabled]=\"disabled\">\n <i class=\"fas fa-angle-up\" *ngIf=\"show_itens\"></i>\n <i class=\"fas fa-angle-down\" *ngIf=\"!show_itens\"></i>\n </button>\n </td>\n <td class=\"action-input\" *ngIf=\"!disabled\">\n <button [disabled]=\"!_formulario.valid\" class=\"tc-btn tc-btn-primary btn-new-green\" (click)=\"add_items()\" title=\"Adicionar item\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </td>\n </tr>\n </table>\n </div>\n \n <!-- <pre>\n {{ items | json }}\n </pre> -->\n\n </form> \n\n <!-- box-itens-selected -->\n <div class=\"tc-dropdown-menu box-itens-selected {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!show_itens\" [style]=\"box_style\">\n \n\n <div class=\"line-search\" *ngIf=\"search\">\n <table class=\"box-search\">\n <tr>\n \n <td class=\"area-input\">\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \n </td>\n \n <td class=\"area-icon\">\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\n <button class=\"box-action\" type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\n </td>\n \n </tr>\n </table>\n </div>\n\n <div class=\"area-options\" id=\"{{ id }}-options\">\n <ng-container *ngFor=\"let item of items; let i = index\">\n \n <label class=\"box-label\" [ngStyle]=\"item_width(item)\">\n <div class=\"box-value\" [title]=\"item\" >\n {{ item }} \n </div>\n <div class=\"box-action\">\n <button\n class=\"box-action\"\n [disabled]=\"items === undefined || (items && items.length === 0) || disabled || loading\"\n title=\"Remover\"\n type=\"button\"\n (click)=\"removeItem(item, i)\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </label>\n\n </ng-container>\n </div>\n\n <div class=\"mt-5\" *ngIf=\"items && (items).length > 5\">\n <div class=\"btn-remove-all\">\n <button class=\"box-action\" type=\"button\" (click)=\"remove_all()\">\n Limpar toda a lista\n </button>\n </div>\n </div>\n\n </div>\n</div>", styles: ["table{border-collapse:collapse}td,th{padding:0;margin:0}::placeholder{font-style:italic;color:#999;text-transform:none!important}.box-input{border-radius:5px 0 0 5px}.box-input .input{background-color:#fff;border-left:1px solid #ccc;border-top:1px solid #ccc;border-bottom:1px solid #ccc;border-radius:5px 0 0 5px}.box-input .ng-invalid{border-color:#ccc!important}.group-input-action{width:100%}.group-input-action input{height:40px;border:none}.count-list{width:90px;text-align:center;background:#fff}.count-list .input{background-color:#fff;border-bottom:1px solid #ccc;border-top:1px solid #ccc}.count-list .input input{height:40px;border:none;text-align:center;width:100px}.action-input-arrow{width:30px;background-color:#fff;position:relative;z-index:0}.action-input-arrow button{cursor:pointer;background-color:transparent;text-align:center;font-size:15px;height:42px!important;border-top:1px solid #ccc;border-right:1px solid #ccc;border-bottom:1px solid #ccc;border-left:none;width:30px;border-radius:0 3px 3px 0}.action-input-arrow button i{position:relative;z-index:-1}.action-input{width:50px;padding-left:10px}.action-input .tc-btn{width:100%!important;padding:0;text-align:center;border-radius:3px;display:block;margin:0;height:40px}.action-input .tc-btn i{width:100%;text-align:center;padding:0!important;margin:0!important}.box-itens-selected{display:block;padding:9px;background-color:#ededed;border-radius:4px;width:100%}.box-itens-selected .box-label{position:relative;display:inline-block;height:35px;min-width:60px;background-color:var(--verde);color:#fff;padding:8px 15px 10px;border:none;border-radius:5px;margin:2px;width:100%}.box-itens-selected .box-label .box-value{width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.box-itens-selected .box-label div.box-action{position:absolute;right:4px;top:7px}.box-itens-selected .box-label div.box-action button{color:#d72020;background-color:transparent;border:none;font-weight:700;cursor:pointer}.box-itens-selected .box-label div.box-action button i{font-size:12px}.to-hide{display:none}.dropdown-toggle:after{display:none!important}.tc-dropdown{position:relative}.tc-dropdown .tc-dropdown-menu{width:100%;border:1px solid #ccc;background-color:#fff;position:absolute;z-index:1}.tc-dropdown .area-options{max-height:200px;overflow-y:scroll;overflow-x:hidden}.tc-dropdown .menu-on-top{position:absolute}.line-search{padding:3px}.line-search .box-search{width:100%;border-collapse:collapse}.line-search .box-search td.area-icon{padding:4px 0 2px 8px;width:35px}.line-search .box-search td.area-icon .icon-search{color:#666}.line-search .box-search td.area-icon button{border:none;background-color:transparent;color:#999;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-search .box-search td.area-input{border:none}.line-search .box-search td.area-input input{width:100%}.line-search .box-search input{width:100%;font-size:13px;height:33px;border:1px solid #ccc;padding:10px}.btn-remove-all{text-align:right}.btn-remove-all button{background-color:transparent;border:none;color:#dd5353;cursor:pointer}.btn-remove-all button:hover{color:red!important}\n"] }]
|
|
272
|
+
}], ctorParameters: function () { return []; }, propDecorators: { delimiter: [{
|
|
273
|
+
type: Input
|
|
274
|
+
}], placeholder: [{
|
|
275
|
+
type: Input
|
|
276
|
+
}], disabled: [{
|
|
277
|
+
type: Input
|
|
278
|
+
}], loading: [{
|
|
279
|
+
type: Input
|
|
280
|
+
}], required: [{
|
|
281
|
+
type: Input
|
|
282
|
+
}], search: [{
|
|
283
|
+
type: Input
|
|
284
|
+
}], uppercase: [{
|
|
285
|
+
type: Input
|
|
286
|
+
}], lowercase: [{
|
|
287
|
+
type: Input
|
|
288
|
+
}] } });
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMvdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMvdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFVBQVUsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBMEIsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUUxRixNQUFPLHVCQUF1QixHQUFRO0lBQ3BDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7SUFDL0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFBO0FBRUQsTUFBTSxtQ0FBbUMsR0FBUTtJQUMvQyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7SUFDL0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FBQztBQVFGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFpQzNDO1FBL0JBLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBQzVCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIs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Q3hCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBSU0sUUFBUSxDQUFDLENBQWM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBRSxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztZQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1NBQ3BEO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBR0QsV0FBVztJQUVYLENBQUM7OzhIQTFUVSxnQ0FBZ0M7a0hBQWhDLGdDQUFnQyx1UEFGaEMsQ0FBQyxtQ0FBbUMsRUFBRSx1QkFBdUIsQ0FBQywwQkN0QjNFLG8vSUFtR007NEZEM0VPLGdDQUFnQztrQkFONUMsU0FBUzsrQkFDRSw0QkFBNEIsYUFHM0IsQ0FBQyxtQ0FBbUMsRUFBRSx1QkFBdUIsQ0FBQzswRUFzQmhFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgZm9yd2FyZFJlZiwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgTkdfVkFMSURBVE9SUywgRm9ybUNvbnRyb2wsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuY29uc3QgIENVU1RPTV9JTlBVVF9WQUxJREFUT1JTOiBhbnkgPSB7IFxuICBwcm92aWRlOiBOR19WQUxJREFUT1JTLCBcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlNdWx0aXBsZXNWYWx1ZXNDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZVxufVxuXG5jb25zdCBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlNdWx0aXBsZXNWYWx1ZXNDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZVxufTtcblxuY29uc3Qgbm9vcCA9ICgpID0+IHtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RjbG91ZC11aS1tdWx0aXBsZXMtdmFsdWVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1tdWx0aXBsZXMtdmFsdWVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1IsIENVU1RPTV9JTlBVVF9WQUxJREFUT1JTXVxufSlcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaU11bHRpcGxlc1ZhbHVlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBWYWxpZGF0b3IgIHtcblxuICB2aWV3cG9ydF93aWR0aDogbnVtYmVyID0gMDtcbiAgdmlld3BvcnRfaGVpZ2h0OiBudW1iZXIgPSAwO1xuICBib3hfaGVpZ2h0OiBudW1iZXIgPSAwO1xuICBib3hfc3R5bGU6IHN0cmluZyA9ICcnO1xuICBtZW51X29uX3RvcDogc3RyaW5nID0gJyc7XG4gIHNlYXJjaF90ZXh0OiBzdHJpbmcgPSAnJztcblxuICBpZDogc3RyaW5nID0gJyc7XG4gIHNob3dfaXRlbnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBcblxuICBpbnB1dF9pdGVtczogc3RyaW5nID0gJyc7XG5cbiAgaXRlbXMgPSBbXSBhcyBzdHJpbmdbXTtcblxuICBcbiBcbiAgQElucHV0KCkgZGVsaW1pdGVyOiBzdHJpbmcgPSAnLCc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZXF1aXJlZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzZWFyY2g6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSB1cHBlcmNhc2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbG93ZXJjYXNlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgdXNlX3ZhbGlkYXRpb25fcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwbGFjZWhvbGRlcl9saXN0OiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaWQgPSB0aGlzLmdlbmVyYXRlSUQoKTtcbiAgICB0aGlzLnRvUmVzaXplKCk7XG4gICAgdGhpcy50b0NsaWNrKCk7XG4gICAgdGhpcy5zZXRfcGxhY2Vob2xkZXJfbGlzdCgpO1xuICB9XG5cbiAgY2hlY2tfaXNfdmFsaWQoKTogYm9vbGVhbntcbiAgICBpZiggdGhpcy5pdGVtcyApe1xuICAgICAgcmV0dXJuICgodGhpcy5pdGVtcykubGVuZ3RoID4gMCkgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdlbmVyYXRlSUQoKTogc3RyaW5ne1xuICAgIHJldHVybiBgbXVsdGlwbGUtdmFsdWVzLSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRGF0ZS5ub3coKSkpfWA7XG4gIH1cblxuICByZW1vdmVfZHVwbGljYXRlcyhpdGVtczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi5uZXcgU2V0KGl0ZW1zKV07XG4gIH1cblxuICBpdGVtX3dpZHRoKHRleHQ6IGFueSkge1xuICAgIGNvbnN0IHZhbHVlID0gYCR7dGV4dH1gO1xuICAgIGNvbnN0IHZhbHVlX2xlbiA9ICh2YWx1ZSkubGVuZ3RoO1xuICAgIGxldCBtYXhfd2lkdGggPSAxNTU7XG4gICAgaWYoIHZhbHVlX2xlbiA8IDE1ICl7IG1heF93aWR0aCA9IDEzODsgfVxuICAgIGlmKCB2YWx1ZV9sZW4gPCAxMCApeyBtYXhfd2lkdGggPSAxMDU7IH1cbiAgICBpZiggdmFsdWVfbGVuIDwgOCApeyBtYXhfd2lkdGggPSA4NTsgfVxuICAgIGlmKCB2YWx1ZV9sZW4gPCA1ICl7IG1heF93aWR0aCA9IDcwOyB9XG4gICAgcmV0dXJuIHsgJ21heC13aWR0aCc6IG1heF93aWR0aCArICdweCd9O1xuICB9XG5cbiAgYWRkX2l0ZW1zKCl7XG5cbiAgICBpZiggdGhpcy5kaXNhYmxlZCApeyByZXR1cm47IH1cblxuICAgIGNvbnN0IGlucHV0X2l0ZW1zID0gdGhpcy5pbnB1dF9pdGVtcztcblxuICAgIHRoaXMuaW5wdXRfaXRlbXMgPSAnJztcbiAgICBcbiAgICBsZXQgaXRlbXMgPSBbXTtcbiAgICBpZiggaW5wdXRfaXRlbXMgJiYgaW5wdXRfaXRlbXMgIT09ICcnICl7XG5cbiAgICAgIGl0ZW1zID0gPGFueT4gKGlucHV0X2l0ZW1zKS5zcGxpdCh0aGlzLmRlbGltaXRlcik7XG5cbiAgICB9XG5cbiAgICBpZiggKGl0ZW1zKS5sZW5ndGggPT09IDAgKXtcbiAgICAgIGxldCB0eHQgPSBgJHsoaW5wdXRfaXRlbXMpLnRyaW0oKX1gO1xuICAgICAgaXRlbXMgPSBbdHh0XTtcbiAgICB9XG5cbiAgICAvL2l0ZW1zID0gWy4uLm5ldyBTZXQoaXRlbXMpXTtcblxuICAgIGZvciggbGV0IGkgPSAwOyBpIDwgKGl0ZW1zKS5sZW5ndGg7IGkrKyl7XG4gICAgICBsZXQgdHh0ID0gYCR7KGl0ZW1zW2ldKS50cmltKCl9YDtcblxuICAgICAgaWYoIHRoaXMudXBwZXJjYXNlICl7XG4gICAgICAgIHR4dCA9ICh0eHQpLnRvTG9jYWxlVXBwZXJDYXNlKCk7XG4gICAgICB9XG5cbiAgICAgIGlmKCB0aGlzLmxvd2VyY2FzZSApe1xuICAgICAgICB0eHQgPSAodHh0KS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiggdHh0ICE9PSAnJyApe1xuICAgICAgICAodGhpcy5pdGVtcykucHVzaCh0eHQpO1xuICAgICAgfVxuICAgICAgXG4gICAgfVxuXG4gICAgdGhpcy5pdGVtcyA9IHRoaXMucmVtb3ZlX2R1cGxpY2F0ZXModGhpcy5pdGVtcyk7XG4gICAgdGhpcy5zZXRfcGxhY2Vob2xkZXJfbGlzdCgpO1xuICB9XG5cbiAgc2V0X3BsYWNlaG9sZGVyX2xpc3QoKXtcbiAgICBsZXQgcGxhY2Vob2xkZXJfbGlzdCA9ICcnO1xuICAgIGxldCBkZWxpbWl0ZXIgPSAnJztcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXM7XG4gICAgaWYoIGl0ZW1zICYmIChpdGVtcykubGVuZ3RoID4gMCApe1xuICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAoaXRlbXMpLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgcGxhY2Vob2xkZXJfbGlzdCArPSAgZGVsaW1pdGVyICsgYCR7KGl0ZW1zW2ldKS50cmltKCl9YDtcbiAgICAgICAgZGVsaW1pdGVyID0gYCR7dGhpcy5kZWxpbWl0ZXJ9IGA7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucGxhY2Vob2xkZXJfbGlzdCA9IChwbGFjZWhvbGRlcl9saXN0ICE9PSAnJykgPyBwbGFjZWhvbGRlcl9saXN0IDogdGhpcy5wbGFjZWhvbGRlcjtcbiAgICB0aGlzLm9uQ2hhbmdlVG91Y2hlZCgpO1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLml0ZW1zKTtcbiAgfVxuXG5cbiAgcmVtb3ZlSXRlbShpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpOiB2b2lke1xuICAgIGlmKCB0aGlzLmRpc2FibGVkICl7IHJldHVybjsgfVxuICAgIGlmKCB0aGlzLml0ZW1zICl7XG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLml0ZW1zKS5sZW5ndGg7IGkrKyApe1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLml0ZW1zW2ldO1xuICAgICAgICBpZiggaXRlbSA9PT0gcm93ICYmIGkgPT09IGluZGV4ICl7XG4gICAgICAgICAgKHRoaXMuaXRlbXMpLnNwbGljZShpbmRleCwxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNldF9wbGFjZWhvbGRlcl9saXN0KCk7XG4gIH1cblxuICByZW1vdmVfYWxsKCl7XG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKXsgcmV0dXJuOyB9XG4gICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgIHRoaXMuc2V0X3BsYWNlaG9sZGVyX2xpc3QoKTtcbiAgfVxuXG4gIHRvQ2xpY2soKXtcbiAgICBjb25zdCBib3ggPSBgYXJlYS0ke3RoaXMuaWR9YDtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLChlOiBhbnkpID0+IHsgIFxuXG4gICAgICBpZiggdGhpcy5zaG93X2l0ZW5zICl7ICAgICAgICBcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiggIShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChib3gpPy5jb250YWlucyhlLnRhcmdldCkpICl7ICBcbiAgICAgICAgICAgIGlmKCAnYm94LWFjdGlvbicgIT09IGUudGFyZ2V0LnBhcmVudEVsZW1lbnQuY2xhc3NOYW1lICl7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd19pdGVucyA9IGZhbHNlO1xuICAgICAgICAgICAgfSAgXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKCd0b0NsaWNrJywgZS50YXJnZXQucGFyZW50RWxlbWVudC5jbGFzc05hbWUpOyAgICBcbiAgICAgICAgICAgIFxuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGJveHN1YiA9IGAke3RoaXMuaWR9LW9wdGlvbnNgO1xuICB9XG5cbiAgdG9SZXNpemUoKXtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4ge1xuICAgICAgdGhpcy52aWV3cG9ydF93aWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgdGhpcy52aWV3cG9ydF9oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgICB0aGlzLnJlc29sdmVfcG9zaXRpb25fZHJvcGRvd24odGhpcy5zaG93X2l0ZW5zKTtcbiAgICB9KTtcbiAgfVxuXG4gIHRvT3Blbigpe1xuICAgIHRoaXMuc2hvd19pdGVucyA9ICF0aGlzLnNob3dfaXRlbnM7XG4gICAgdGhpcy5yZXNvbHZlX3Bvc2l0aW9uX2Ryb3Bkb3duKHRoaXMuc2hvd19pdGVucyk7XG4gIH1cblxuICB0b0Nsb3NlKCl7XG4gICAgdGhpcy5zaG93X2l0ZW5zID0gZmFsc2U7XG4gIH1cblxuICByZXNvbHZlX3Bvc2l0aW9uX2Ryb3Bkb3duKG9wZW46IGJvb2xlYW4pe1xuICAgIGlmKCBvcGVuICl7XG4gICAgICB0aGlzLmJveF9zdHlsZSA9ICcnO1xuICAgICAgdGhpcy5tZW51X29uX3RvcCA9ICcnOyAgIFxuICAgICAgY29uc3QgaWQgPSBgJHt0aGlzLmlkfWA7IFxuICAgICAgY29uc3QgYm94ID0gYGJveC0ke3RoaXMuaWR9YDtcbiAgICAgIGlmKCB0aGlzLnZpZXdwb3J0X2hlaWdodCA9PT0gMCApe1xuICAgICAgICB0aGlzLnZpZXdwb3J0X2hlaWdodCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVjdCAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgYm94X3Bvc2l0aW9uID0gcmVjdD8uYm90dG9tIHx8IDA7ICAgICAgXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5ib3hfaGVpZ2h0ICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGJveCk/LmNsaWVudEhlaWdodCB8fCAwO1xuICAgICAgICBpZiggKCB0aGlzLnZpZXdwb3J0X2hlaWdodCAtIGJveF9wb3NpdGlvbikgPCB0aGlzLmJveF9oZWlnaHQgKXtcbiAgICAgICAgICB0aGlzLm1lbnVfb25fdG9wID0gJ21lbnUtb24tdG9wJztcbiAgICAgICAgICB0aGlzLmJveF9zdHlsZSA9IGB0b3A6IC0keyAodGhpcy5ib3hfaGVpZ2h0KSB9cHg7IGhlaWdodDogJHt0aGlzLmJveF9oZWlnaHR9cHg7YDtcbiAgICAgICAgfVxuICAgICAgfSk7ICAgIFxuICAgIH1cbiAgfVxuXG5cblxuICBjbGVhclRleHRTZWFyY2goKXtcbiAgICB0aGlzLnNlYXJjaF90ZXh0ID0gJyc7XG4gICAgdGhpcy50b1NlYXJjaCgnJyk7XG4gIH1cblxuICB0b1NlYXJjaChlOiBhbnkpIHtcbiAgICBsZXQgaW5wdXQgPSAoZSAmJiBlLnRhcmdldCAmJiBlLnRhcmdldC52YWx1ZSkgPyBlLnRhcmdldC52YWx1ZSA6ICcnO1xuICAgIFxuICAgIGxldCBmaWx0ZXIgPSAoICggKGlucHV0KS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpICkudHJpbSgpICkudG9Mb3dlckNhc2UoKTtcbiAgICBsZXQgdWwgPSA8YW55PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLmlkfS1vcHRpb25zYCk7XG4gICAgbGV0IGxpID0gdWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJsYWJlbFwiKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGEgPSBsaVtpXTtcbiAgICAgICAgY29uc3QgdHh0VmFsdWUgPSAoICggKCBhLnRleHRDb250ZW50IHx8IGEuaW5uZXJUZXh0ICkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKSApLnRyaW0oKSApLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICh0eHRWYWx1ZS5pbmRleE9mKGZpbHRlcikgPiAtMSkge1xuICAgICAgICAgICAgbGlbaV0uc3R5bGUuZGlzcGxheSA9IFwiXCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaVtpXS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gIG9uQ2hhbmdlVG91Y2hlZCgpeyAgXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpOyAgICAgXG4gIH1cblxuXG4gIHRvU2V0RGVmYXVsdCh2OmFueSl7XG4gICAgdGhpcy5pdGVtcyA9IHY7XG4gICAgdGhpcy5hZGRfaXRlbXMoKTtcbiAgfVxuXG4gIGlubmVyVmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcbiAgLy9QbGFjZWhvbGRlcnMgZm9yIHRoZSBjYWxsYmFja3Mgd2hpY2ggYXJlIGxhdGVyIHByb3ZpZGVzZFxuICAvL2J5IHRoZSBDb250cm9sIFZhbHVlIEFjY2Vzc29yXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuXG4gIC8vZ2V0IGFjY2Vzc29yXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgfTtcblxuICAvL3NldCBhY2Nlc3NvciBpbmNsdWRpbmcgY2FsbCB0aGUgb25jaGFuZ2UgY2FsbGJhY2tcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xuICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHY7IFxuICAgICAgdGhpcy50b1NldERlZmF1bHQodik7ICAgICBcbiAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcbiAgICB9XG4gIH1cblxuICAvL1NldCB0b3VjaGVkIG9uIGJsdXJcbiAgb25CbHVyKCkge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcbiAgfVxuXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy50b1NldERlZmF1bHQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gIH1cblxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gIH1cblxuXG5cbiAgcHVibGljIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKTogYW55IHtcbiAgICBpZiggYyAmJiAoIHR5cGVvZiB0aGlzLnJlcXVpcmVkICE9PSAndW5kZWZpbmVkJyApICl7XG4gICAgICB0aGlzLnVzZV92YWxpZGF0aW9uX3JlcXVpcmVkID0gdHJ1ZTtcbiAgICAgIHJldHVybiAodGhpcy5jaGVja19pc192YWxpZCgpKSA/IG51bGwgOiAncmVxdWlyZWQnO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgXG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInRjLWRyb3Bkb3duXCIgaWQ9XCJhcmVhLXt7IGlkIH19XCIgW2NsYXNzLnRjLXBhcmVudC12YWxpZGF0aW9uXT1cInVzZV92YWxpZGF0aW9uX3JlcXVpcmVkXCI+XG5cblxuICAgIDxmb3JtICNfZm9ybXVsYXJpbz1cIm5nRm9ybVwiPlxuXG4gICAgICAgIDwhLS0ge3sgaW5wdXRfaXRlbXMgfX0gLS0+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLXRvZ2dsZVwiIGlkPVwie3tpZH19XCIgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCIndHJ1ZSdcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIidmYWxzZSdcIj5cbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImdyb3VwLWlucHV0LWFjdGlvblwiPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYm94LWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImFkZF9pdGVtcygpO3RvT3BlbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnRleHQtbG93ZXJjYXNlXT1cImxvd2VyY2FzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50ZXh0LXVwcGVyY2FzZV09XCJ1cHBlcmNhc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiIG5hbWU9XCJpdGVtc1wiIGNsYXNzPVwiZm9ybS1jb250cm9sIHRjLWZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiaW5wdXRfaXRlbXNcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJfbGlzdFwiIHJlcXVpcmVkIFt0aXRsZV09XCJwbGFjZWhvbGRlcl9saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiY291bnQtbGlzdFwiICpuZ0lmPVwiKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA+IDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiB2YWx1ZT1cInt7IGl0ZW1zLmxlbmd0aCB9fSB7eyAoaXRlbXMubGVuZ3RoID4gMSkgPyAncmVnaXN0cm9zJyA6ICdyZWdpc3RybycgfX1cIiBkaXNhYmxlZCByZWFkb25seT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhY3Rpb24taW5wdXQtYXJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvT3BlbigpXCIgdGl0bGU9XCJMaXN0YSBkZSB2YWxvcmVzXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtYW5nbGUtdXBcIiAqbmdJZj1cInNob3dfaXRlbnNcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtYW5nbGUtZG93blwiICpuZ0lmPVwiIXNob3dfaXRlbnNcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWN0aW9uLWlucHV0XCIgKm5nSWY9XCIhZGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFfZm9ybXVsYXJpby52YWxpZFwiIGNsYXNzPVwidGMtYnRuIHRjLWJ0bi1wcmltYXJ5IGJ0bi1uZXctZ3JlZW5cIiAoY2xpY2spPVwiYWRkX2l0ZW1zKClcIiB0aXRsZT1cIkFkaWNpb25hciBpdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1c1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIDwhLS0gPHByZT5cbiAgICAgICAgICAgIHt7IGl0ZW1zIHwganNvbiB9fVxuICAgICAgICA8L3ByZT4gLS0+XG5cbiAgICA8L2Zvcm0+IFxuXG4gICAgPCEtLSBib3gtaXRlbnMtc2VsZWN0ZWQgIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJ0Yy1kcm9wZG93bi1tZW51IGJveC1pdGVucy1zZWxlY3RlZCAge3sgbWVudV9vbl90b3AgfX1cIiBpZD1cImJveC17eyBpZCB9fVwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZFwiIFtjbGFzcy50by1oaWRlXT1cIiFzaG93X2l0ZW5zXCIgW3N0eWxlXT1cImJveF9zdHlsZVwiPlxuICAgICAgICBcblxuICAgICAgICA8ZGl2IGNsYXNzPVwibGluZS1zZWFyY2hcIiAqbmdJZj1cInNlYXJjaFwiPlxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwiYm94LXNlYXJjaFwiPlxuICAgICAgICAgICAgICA8dHI+XG4gICAgICBcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cInRjLWZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwic2VhcmNoX3RleHRcIiAoaW5wdXQpPVwidG9TZWFyY2goJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiQnVzY2FyLi4uXCIgPiAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICBcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWljb25cIj5cbiAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwic2VhcmNoX3RleHQgPT09ICcnXCIgY2xhc3M9XCJmYXMgZmEtc2VhcmNoIGljb24tc2VhcmNoXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJveC1hY3Rpb25cIiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJzZWFyY2hfdGV4dCAhPT0gJydcIiAoY2xpY2spPVwiY2xlYXJUZXh0U2VhcmNoKClcIj48aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZWEtb3B0aW9uc1wiIGlkPVwie3sgaWQgfX0tb3B0aW9uc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYm94LWxhYmVsXCIgW25nU3R5bGVdPVwiaXRlbV93aWR0aChpdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LXZhbHVlXCIgW3RpdGxlXT1cIml0ZW1cIiAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtIH19ICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC1hY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJveC1hY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtcyA9PT0gdW5kZWZpbmVkIHx8IChpdGVtcyAmJiBpdGVtcy5sZW5ndGggPT09IDApIHx8IGRpc2FibGVkIHx8IGxvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiUmVtb3ZlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaXRlbSwgaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTVcIiAqbmdJZj1cIml0ZW1zICYmIChpdGVtcykubGVuZ3RoID4gNVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1yZW1vdmUtYWxsXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJveC1hY3Rpb25cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlbW92ZV9hbGwoKVwiPlxuICAgICAgICAgICAgICAgICAgICBMaW1wYXIgdG9kYSBhIGxpc3RhXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { TCloudUiMultiplesValuesComponent } from './tcloud-ui-multiples-values.component';
|
|
4
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class TCloudUiMultiplesValuesModule {
|
|
7
|
+
}
|
|
8
|
+
TCloudUiMultiplesValuesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiMultiplesValuesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
TCloudUiMultiplesValuesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiMultiplesValuesModule, declarations: [TCloudUiMultiplesValuesComponent], imports: [CommonModule,
|
|
10
|
+
FormsModule,
|
|
11
|
+
ReactiveFormsModule], exports: [TCloudUiMultiplesValuesComponent] });
|
|
12
|
+
TCloudUiMultiplesValuesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiMultiplesValuesModule, imports: [CommonModule,
|
|
13
|
+
FormsModule,
|
|
14
|
+
ReactiveFormsModule] });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiMultiplesValuesModule, decorators: [{
|
|
16
|
+
type: NgModule,
|
|
17
|
+
args: [{
|
|
18
|
+
declarations: [
|
|
19
|
+
TCloudUiMultiplesValuesComponent
|
|
20
|
+
],
|
|
21
|
+
exports: [
|
|
22
|
+
TCloudUiMultiplesValuesComponent
|
|
23
|
+
],
|
|
24
|
+
imports: [
|
|
25
|
+
CommonModule,
|
|
26
|
+
FormsModule,
|
|
27
|
+
ReactiveFormsModule
|
|
28
|
+
]
|
|
29
|
+
}]
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMvdGNsb3VkLXVpLW11bHRpcGxlcy12YWx1ZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFpQmxFLE1BQU0sT0FBTyw2QkFBNkI7OzJIQUE3Qiw2QkFBNkI7NEhBQTdCLDZCQUE2QixpQkFYdEMsZ0NBQWdDLGFBTWhDLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CLGFBTG5CLGdDQUFnQzs0SEFRdkIsNkJBQTZCLFlBTHRDLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1COzRGQUdWLDZCQUE2QjtrQkFiekMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZ0NBQWdDO3FCQUNqQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZ0NBQWdDO3FCQUNqQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRDbG91ZFVpTXVsdGlwbGVzVmFsdWVzQ29tcG9uZW50IH0gZnJvbSAnLi90Y2xvdWQtdWktbXVsdGlwbGVzLXZhbHVlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBUQ2xvdWRVaU11bHRpcGxlc1ZhbHVlc0NvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVENsb3VkVWlNdWx0aXBsZXNWYWx1ZXNDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVENsb3VkVWlNdWx0aXBsZXNWYWx1ZXNNb2R1bGUgeyB9XG4iXX0=
|