@wlcm/angular 18.2.6 → 18.2.8

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.
Files changed (27) hide show
  1. package/core/esm2022/lib/constants/http.constants.mjs +1 -1
  2. package/core/esm2022/lib/models/_index.mjs +1 -3
  3. package/core/esm2022/lib/utils/paginated-data-emulator.utils.mjs +1 -1
  4. package/core/fesm2022/wlcm-angular-core.mjs +1 -7
  5. package/core/fesm2022/wlcm-angular-core.mjs.map +1 -1
  6. package/core/lib/constants/http.constants.d.ts +2 -2
  7. package/core/lib/models/_index.d.ts +0 -2
  8. package/core/lib/utils/paginated-data-emulator.utils.d.ts +2 -3
  9. package/filters/esm2022/lib/models/filter.models.mjs +2 -4
  10. package/filters/fesm2022/wlcm-angular-filters.mjs +1 -3
  11. package/filters/fesm2022/wlcm-angular-filters.mjs.map +1 -1
  12. package/filters/lib/models/filter.models.d.ts +1 -1
  13. package/forms/esm2022/lib/forms/components/autocomplete/autocomplete.component.mjs +2 -2
  14. package/forms/esm2022/lib/forms/components/select/select.component.mjs +1 -1
  15. package/forms/esm2022/lib/forms/services/places.api.mjs +1 -1
  16. package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -1
  17. package/forms/lib/forms/components/autocomplete/autocomplete.component.d.ts +3 -2
  18. package/forms/lib/forms/components/select/select.component.d.ts +4 -3
  19. package/forms/lib/forms/services/places.api.d.ts +3 -2
  20. package/package.json +2 -1
  21. package/search-field/esm2022/lib/components/search-field/search-field.component.mjs +2 -2
  22. package/search-field/fesm2022/wlcm-angular-search-field.mjs.map +1 -1
  23. package/search-field/lib/components/search-field/search-field.component.d.ts +4 -3
  24. package/core/esm2022/lib/models/paginated-data.models.mjs +0 -2
  25. package/core/esm2022/lib/models/query-params.models.mjs +0 -6
  26. package/core/lib/models/paginated-data.models.d.ts +0 -6
  27. package/core/lib/models/query-params.models.d.ts +0 -26
@@ -3,4 +3,4 @@ export const DEFAULT_QUERY_PARAMS = {
3
3
  page: 1,
4
4
  limit: 10,
5
5
  };
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb3JlL3NyYy9saWIvY29uc3RhbnRzL2h0dHAuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFnQjtJQUMvQyxLQUFLLEVBQUUsRUFBRTtJQUNULElBQUksRUFBRSxDQUFDO0lBQ1AsS0FBSyxFQUFFLEVBQUU7Q0FDVixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlQYXJhbXMgfSBmcm9tICcuLi9tb2RlbHMvcXVlcnktcGFyYW1zLm1vZGVscyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1FVRVJZX1BBUkFNUzogUXVlcnlQYXJhbXMgPSB7XG4gIHF1ZXJ5OiAnJyxcbiAgcGFnZTogMSxcbiAgbGltaXQ6IDEwLFxufTtcbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb3JlL3NyYy9saWIvY29uc3RhbnRzL2h0dHAuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFvQjtJQUNuRCxLQUFLLEVBQUUsRUFBRTtJQUNULElBQUksRUFBRSxDQUFDO0lBQ1AsS0FBSyxFQUFFLEVBQUU7Q0FDVixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2xjbVF1ZXJ5UGFyYW1zIH0gZnJvbSAnQHdsY20vY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUVVFUllfUEFSQU1TOiBXbGNtUXVlcnlQYXJhbXMgPSB7XG4gIHF1ZXJ5OiAnJyxcbiAgcGFnZTogMSxcbiAgbGltaXQ6IDEwLFxufTtcbiJdfQ==
@@ -1,5 +1,3 @@
1
1
  export * from './icon.models';
2
- export * from './paginated-data.models';
3
2
  export * from './option.models';
4
- export * from './query-params.models';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2luZGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29yZS9zcmMvbGliL21vZGVscy9faW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ljb24ubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGVkLWRhdGEubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vb3B0aW9uLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJ5LXBhcmFtcy5tb2RlbHMnO1xuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2luZGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29yZS9zcmMvbGliL21vZGVscy9faW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaWNvbi5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9vcHRpb24ubW9kZWxzJztcbiJdfQ==
@@ -17,4 +17,4 @@ export class WlcmPaginatedDataEmulator {
17
17
  this.data = Array.from(new Int8Array(count).fill(0)).map((_, index) => this.handler(index));
18
18
  }
19
19
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGVkLWRhdGEtZW11bGF0b3IudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb3JlL3NyYy9saWIvdXRpbHMvcGFnaW5hdGVkLWRhdGEtZW11bGF0b3IudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl0QyxNQUFNLE9BQU8seUJBQXlCO0lBR3BDLFlBQVksS0FBYSxFQUFTLE9BQTZCO1FBQTdCLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBRnZELFNBQUksR0FBYSxFQUFFLENBQUM7UUFHMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQW1CO1FBQ3RCLE9BQU8sRUFBRSxDQUFDO1lBQ1IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ3JCLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDdEQsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ3BGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQYWdpbmF0ZWREYXRhIH0gZnJvbSAnLi4vbW9kZWxzL3BhZ2luYXRlZC1kYXRhLm1vZGVscyc7XG5pbXBvcnQgeyBRdWVyeVBhcmFtcyB9IGZyb20gJy4uL21vZGVscy9xdWVyeS1wYXJhbXMubW9kZWxzJztcblxuZXhwb3J0IGNsYXNzIFdsY21QYWdpbmF0ZWREYXRhRW11bGF0b3I8VD4ge1xuICBwcml2YXRlIGRhdGE6IEFycmF5PFQ+ID0gW107XG5cbiAgY29uc3RydWN0b3IoY291bnQ6IG51bWJlciwgcHVibGljIGhhbmRsZXI6IChpbmRleDogbnVtYmVyKSA9PiBUKSB7XG4gICAgdGhpcy5wb3B1bGF0ZURhdGEoY291bnQpO1xuICB9XG5cbiAgbG9hZChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQYWdpbmF0ZWREYXRhPFQ+PiB7XG4gICAgcmV0dXJuIG9mKHtcbiAgICAgIGN1cnJQYWdlOiBwYXJhbXMucGFnZSxcbiAgICAgIHRvdGFsUGFnZXM6IE1hdGguY2VpbCh0aGlzLmRhdGEubGVuZ3RoIC8gcGFyYW1zLmxpbWl0KSxcbiAgICAgIHRvdGFsSXRlbXM6IHRoaXMuZGF0YS5sZW5ndGgsXG4gICAgICBkYXRhOiB0aGlzLmRhdGEuc2xpY2UoKHBhcmFtcy5wYWdlIC0gMSkgKiBwYXJhbXMubGltaXQsIHBhcmFtcy5wYWdlICogcGFyYW1zLmxpbWl0KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcG9wdWxhdGVEYXRhKGNvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEgPSBBcnJheS5mcm9tKG5ldyBJbnQ4QXJyYXkoY291bnQpLmZpbGwoMCkpLm1hcCgoXywgaW5kZXgpID0+IHRoaXMuaGFuZGxlcihpbmRleCkpO1xuICB9XG59XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGVkLWRhdGEtZW11bGF0b3IudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb3JlL3NyYy9saWIvdXRpbHMvcGFnaW5hdGVkLWRhdGEtZW11bGF0b3IudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0QyxNQUFNLE9BQU8seUJBQXlCO0lBR3BDLFlBQ0UsS0FBYSxFQUNOLE9BQTZCO1FBQTdCLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBSjlCLFNBQUksR0FBYSxFQUFFLENBQUM7UUFNMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQXVCO1FBQzFCLE9BQU8sRUFBRSxDQUFDO1lBQ1IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ3JCLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDdEQsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ3BGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXbGNtUGFnaW5hdGVkRGF0YSwgV2xjbVF1ZXJ5UGFyYW1zIH0gZnJvbSAnQHdsY20vY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIFdsY21QYWdpbmF0ZWREYXRhRW11bGF0b3I8VD4ge1xuICBwcml2YXRlIGRhdGE6IEFycmF5PFQ+ID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY291bnQ6IG51bWJlcixcbiAgICBwdWJsaWMgaGFuZGxlcjogKGluZGV4OiBudW1iZXIpID0+IFQsXG4gICkge1xuICAgIHRoaXMucG9wdWxhdGVEYXRhKGNvdW50KTtcbiAgfVxuXG4gIGxvYWQocGFyYW1zOiBXbGNtUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFdsY21QYWdpbmF0ZWREYXRhPFQ+PiB7XG4gICAgcmV0dXJuIG9mKHtcbiAgICAgIGN1cnJQYWdlOiBwYXJhbXMucGFnZSxcbiAgICAgIHRvdGFsUGFnZXM6IE1hdGguY2VpbCh0aGlzLmRhdGEubGVuZ3RoIC8gcGFyYW1zLmxpbWl0KSxcbiAgICAgIHRvdGFsSXRlbXM6IHRoaXMuZGF0YS5sZW5ndGgsXG4gICAgICBkYXRhOiB0aGlzLmRhdGEuc2xpY2UoKHBhcmFtcy5wYWdlIC0gMSkgKiBwYXJhbXMubGltaXQsIHBhcmFtcy5wYWdlICogcGFyYW1zLmxpbWl0KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcG9wdWxhdGVEYXRhKGNvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEgPSBBcnJheS5mcm9tKG5ldyBJbnQ4QXJyYXkoY291bnQpLmZpbGwoMCkpLm1hcCgoXywgaW5kZXgpID0+IHRoaXMuaGFuZGxlcihpbmRleCkpO1xuICB9XG59XG4iXX0=
@@ -63,12 +63,6 @@ class WlcmAutocompleteOption extends WlcmOption {
63
63
  }
64
64
  }
65
65
 
66
- var Order;
67
- (function (Order) {
68
- Order["ASC"] = "asc";
69
- Order["DESC"] = "desc";
70
- })(Order || (Order = {}));
71
-
72
66
  const DEFAULT_QUERY_PARAMS = {
73
67
  query: '',
74
68
  page: 1,
@@ -233,5 +227,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
233
227
  * Generated bundle index. Do not edit.
234
228
  */
235
229
 
236
- export { CalendarIconComponent, ChevronDownIconComponent, CloseIconComponent, DEFAULT_QUERY_PARAMS, DEFAULT_WLCM_ICONS, Order, ScrollDetectionApi, SearchIconComponent, WLCM_ICONS, WlcmAutocompleteOption, WlcmIconDirective, WlcmIconName, WlcmLoaderComponent, WlcmOption, WlcmPaginatedDataEmulator, WlcmStreamUtils };
230
+ export { CalendarIconComponent, ChevronDownIconComponent, CloseIconComponent, DEFAULT_QUERY_PARAMS, DEFAULT_WLCM_ICONS, ScrollDetectionApi, SearchIconComponent, WLCM_ICONS, WlcmAutocompleteOption, WlcmIconDirective, WlcmIconName, WlcmLoaderComponent, WlcmOption, WlcmPaginatedDataEmulator, WlcmStreamUtils };
237
231
  //# sourceMappingURL=wlcm-angular-core.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"wlcm-angular-core.mjs","sources":["../../../core/src/lib/utils/stream.utils.ts","../../../core/src/lib/utils/paginated-data-emulator.utils.ts","../../../core/src/lib/models/icon.models.ts","../../../core/src/lib/models/option.models.ts","../../../core/src/lib/models/query-params.models.ts","../../../core/src/lib/constants/http.constants.ts","../../../core/src/lib/components/icons/chevron-down-icon/chevron-down-icon.component.ts","../../../core/src/lib/components/icons/chevron-down-icon/chevron-down-icon.component.html","../../../core/src/lib/components/icons/calendar-icon/calendar-icon.component.ts","../../../core/src/lib/components/icons/calendar-icon/calendar-icon.component.html","../../../core/src/lib/components/icons/search-icon/search-icon.component.ts","../../../core/src/lib/components/icons/search-icon/search-icon.component.html","../../../core/src/lib/constants/icon.contants.ts","../../../core/src/lib/services/scroll-detection.api.ts","../../../core/src/lib/directives/icon.directive.ts","../../../core/src/lib/components/icons/close-icon/close-icon.component.ts","../../../core/src/lib/components/icons/close-icon/close-icon.component.html","../../../core/src/lib/components/default-loader/default-loader.component.ts","../../../core/src/lib/components/default-loader/default-loader.component.html","../../../core/src/lib/constants/loader.constants.ts","../../../core/src/lib/components/loader/loader.component.ts","../../../core/src/lib/components/loader/loader.component.html","../../../core/src/wlcm-angular-core.ts"],"sourcesContent":["import { EventEmitter } from '@angular/core';\nimport { Subject, BehaviorSubject, Observable, finalize, Subscriber } from 'rxjs';\n\nexport class WlcmStreamUtils {\n static loadingDetector(\n subject: Subject<boolean> | BehaviorSubject<boolean> | EventEmitter<boolean>,\n ): <T>(source: Observable<T>) => Observable<T> {\n subject.next(true);\n return function <T>(source: Observable<T>): Observable<T> {\n return source.pipe(finalize(() => subject.next(false)));\n };\n }\n\n static get emptySource(): Observable<void> {\n return new Observable((subscriber: Subscriber<void>) => {\n subscriber.next();\n subscriber.complete();\n });\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { PaginatedData } from '../models/paginated-data.models';\nimport { QueryParams } from '../models/query-params.models';\n\nexport class WlcmPaginatedDataEmulator<T> {\n private data: Array<T> = [];\n\n constructor(count: number, public handler: (index: number) => T) {\n this.populateData(count);\n }\n\n load(params: QueryParams): Observable<PaginatedData<T>> {\n return of({\n currPage: params.page,\n totalPages: Math.ceil(this.data.length / params.limit),\n totalItems: this.data.length,\n data: this.data.slice((params.page - 1) * params.limit, params.page * params.limit),\n });\n }\n\n private populateData(count: number): void {\n this.data = Array.from(new Int8Array(count).fill(0)).map((_, index) => this.handler(index));\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\n\nexport enum WlcmIconName {\n SEARCH = 'SEARCH',\n CALENDAR = 'CALENDAR',\n CHEVRON_DOWN = 'CHEVRON_DOWN',\n}\n\nexport type WlcmIcons = {\n [key in WlcmIconName]: ComponentType<unknown>;\n};\n","export class WlcmOption<D = unknown> {\n constructor(\n public value: string | boolean,\n public viewValue: string,\n public data?: D,\n ) {}\n}\n\nexport class WlcmAutocompleteOption<D = unknown> extends WlcmOption<D> {\n constructor(\n public override value: string,\n public override viewValue: string,\n public searchValue: string,\n public override data?: D,\n ) {\n super(value, viewValue, data);\n }\n}\n\nexport type WlcmSelectOptionFormat = 'CompleteOption' | 'ValueOnly';\n","export enum Order {\n ASC = 'asc',\n DESC = 'desc',\n}\n\nexport interface QueryFilter {\n equal?: string | boolean;\n\n not?: string | boolean;\n\n arrContains?: string[];\n\n oneOf?: string[];\n\n noneOf?: string[];\n\n // ISO date format\n from?: string;\n\n // ISO date format\n to?: string;\n\n exist?: boolean;\n}\n\nexport interface QueryFilters {\n [key: string]: QueryFilter;\n}\n\nexport interface QueryParams {\n query: string;\n\n page: number;\n\n limit: number;\n\n order?: Order;\n\n filters?: QueryFilters;\n\n sort?: string;\n\n searchKeys?: string[];\n}\n","import { QueryParams } from '../models/query-params.models';\n\nexport const DEFAULT_QUERY_PARAMS: QueryParams = {\n query: '',\n page: 1,\n limit: 10,\n};\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-chevron-down-icon',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './chevron-down-icon.component.html',\n styleUrl: './chevron-down-icon.component.scss',\n})\nexport class ChevronDownIconComponent {}\n","<svg\n width=\"12px\"\n height=\"7px\"\n viewBox=\"0 0 12 7\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n>\n <g\n id=\"4-Media-Library\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n >\n <g id=\"4.1.0-Filter-by-type\" transform=\"translate(-303.000000, -73.000000)\">\n <g id=\"Group-7\" transform=\"translate(45.000000, 64.000000)\">\n <g id=\"Group\" transform=\"translate(258.000000, 6.000000)\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"12\" height=\"12\"></rect>\n <polyline\n id=\"Path\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n points=\"1 4 6 9 11 4\"\n ></polyline>\n </g>\n </g>\n </g>\n </g>\n</svg>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-calendar-icon',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './calendar-icon.component.html',\n styleUrl: './calendar-icon.component.scss',\n})\nexport class CalendarIconComponent {}\n","<svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n>\n <g\n id=\"icon/date-grey\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n >\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"16\" height=\"16\"></rect>\n <path\n d=\"M11,0 C11.5522847,0 12,0.44771525 12,1 L14,1 C15.1045695,1 16,1.8954305 16,3 L16,14 C16,15.1045695 15.1045695,16 14,16 L2,16 C0.8954305,16 0,15.1045695 0,14 L0,3 C0,1.8954305 0.8954305,1 2,1 L4,1 C4,0.44771525 4.44771525,0 5,0 C5.55228475,0 6,0.44771525 6,1 L10,1 C10,0.44771525 10.4477153,0 11,0 Z M14,7 L2,7 L2,14 L14,14 L14,7 Z M4,3 L2,3 L2,5 L14,5 L14,3 L12,3 C12,3.55228475 11.5522847,4 11,4 C10.4477153,4 10,3.55228475 10,3 L6,3 C6,3.55228475 5.55228475,4 5,4 C4.44771525,4 4,3.55228475 4,3 Z\"\n id=\"Combined-Shape\"\n fill=\"#8E9498\"\n fill-rule=\"nonzero\"\n ></path>\n <rect\n id=\"Rectangle\"\n fill=\"#8E9498\"\n x=\"9\"\n y=\"9\"\n width=\"3\"\n height=\"3\"\n rx=\"1\"\n ></rect>\n </g>\n</svg>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-search-icon',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './search-icon.component.html',\n styleUrls: ['./search-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SearchIconComponent {}\n","<svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n style=\"display: block\"\n>\n <g\n id=\"icons/search\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n >\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"16\" height=\"16\"></rect>\n <path\n d=\"M7,0 C10.8659932,0 14,3.13400675 14,7 C14,8.57234957 13.4815869,10.0236173 12.6063605,11.1922034 L15.1213203,13.7071068 C15.5118446,14.0976311 15.5118446,14.7307961 15.1213203,15.1213203 C14.7307961,15.5118446 14.0976311,15.5118446 13.7071068,15.1213203 L11.1922034,12.6063605 C10.0236173,13.4815869 8.57234957,14 7,14 C3.13400675,14 0,10.8659932 0,7 C0,3.13400675 3.13400675,0 7,0 Z M7,2 C4.23857625,2 2,4.23857625 2,7 C2,9.76142375 4.23857625,12 7,12 C9.76142375,12 12,9.76142375 12,7 C12,4.23857625 9.76142375,2 7,2 Z\"\n id=\"Combined-Shape\"\n fill=\"currentColor\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n</svg>\n","import { InjectionToken } from '@angular/core';\nimport { WlcmIconName, WlcmIcons } from '../models/icon.models';\nimport { ChevronDownIconComponent } from '../components/icons/chevron-down-icon/chevron-down-icon.component';\nimport { CalendarIconComponent } from '../components/icons/calendar-icon/calendar-icon.component';\nimport { SearchIconComponent } from '../components/icons/search-icon/search-icon.component';\n\nexport const DEFAULT_WLCM_ICONS: WlcmIcons = {\n [WlcmIconName.SEARCH]: SearchIconComponent,\n [WlcmIconName.CALENDAR]: CalendarIconComponent,\n [WlcmIconName.CHEVRON_DOWN]: ChevronDownIconComponent,\n};\n\nexport const WLCM_ICONS: InjectionToken<WlcmIcons> = new InjectionToken('WLCM_ICONS', {\n providedIn: 'root',\n factory: () => DEFAULT_WLCM_ICONS,\n});\n","import { Injectable } from '@angular/core';\nimport { Observable, filter, fromEvent } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ScrollDetectionApi {\n onScrolledDown(element: HTMLElement): Observable<Event> {\n let scrollHeight: number = 0;\n\n let scrollHeightChanged: boolean = false;\n\n return fromEvent(element, 'scroll').pipe(\n filter(() => {\n if (scrollHeight !== element.scrollHeight) {\n scrollHeight = element.scrollHeight;\n\n scrollHeightChanged = true;\n }\n\n if (element.scrollHeight * 0.8 <= element.scrollTop + element.clientHeight && scrollHeightChanged) {\n scrollHeightChanged = false;\n\n return true;\n }\n\n return false;\n }),\n );\n }\n}\n","import {\n ComponentRef,\n Directive,\n Inject,\n InputSignal,\n OnInit,\n OutputEmitterRef,\n ViewContainerRef,\n input,\n output,\n} from '@angular/core';\nimport { WlcmIconName, WlcmIcons } from '../models/icon.models';\nimport { WLCM_ICONS } from '../constants/icon.contants';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { fromEvent } from 'rxjs';\n\n@UntilDestroy()\n@Directive({\n selector: '[wlcmIcon]',\n standalone: true,\n})\nexport class WlcmIconDirective implements OnInit {\n name: InputSignal<WlcmIconName> = input.required({ alias: 'wlcmIcon' });\n\n stopPropagation: InputSignal<boolean> = input(false, { alias: 'wlcmIconStopPropagation' });\n\n clicked: OutputEmitterRef<MouseEvent> = output({ alias: 'wlcmIconClicked' });\n\n constructor(@Inject(WLCM_ICONS) private icons: WlcmIcons, private viewContainer: ViewContainerRef) {}\n\n ngOnInit(): void {\n const component: ComponentType<unknown> = this.icons[this.name()];\n\n if (component) {\n const ref: ComponentRef<unknown> = this.viewContainer.createComponent(component);\n\n this.handleClick(ref);\n }\n }\n\n private handleClick = (ref: ComponentRef<unknown>) => {\n fromEvent(ref.location.nativeElement, 'click', (event: MouseEvent) => event)\n .pipe(untilDestroyed(this))\n .subscribe((event: MouseEvent) => {\n if (this.stopPropagation()) event.stopPropagation();\n\n this.clicked.emit(event);\n });\n };\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-close-icon',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './close-icon.component.html',\n styleUrl: './close-icon.component.scss',\n})\nexport class CloseIconComponent {}\n","<svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n>\n <g\n id=\"2-User-Management\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n >\n <g\n id=\"2.0.1-Export-users-two-filters\"\n transform=\"translate(-310.000000, -54.000000)\"\n >\n <g id=\"icons/close\" transform=\"translate(310.000000, 54.000000)\">\n <rect\n id=\"Rectangle\"\n fill=\"#EDF0F3\"\n x=\"0\"\n y=\"0\"\n width=\"16\"\n height=\"16\"\n rx=\"4\"\n ></rect>\n <path\n d=\"M12,4 L4,12 M4,4 L12,12\"\n id=\"Combined-Shape\"\n stroke=\"#4A5056\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n ></path>\n </g>\n </g>\n </g>\n</svg>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-default-loader',\n host: { class: 'wlcm-default-loader' },\n standalone: true,\n imports: [CommonModule],\n templateUrl: './default-loader.component.html',\n styleUrl: './default-loader.component.scss',\n})\nexport class WlcmDefaultLoaderComponent {}\n","<div class=\"spinner center\">\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n</div>\n","import { InjectionToken, Type } from '@angular/core';\nimport { WlcmDefaultLoaderComponent } from '../components/default-loader/default-loader.component';\n\nexport const WLCM_LOADER_COMPONENT: InjectionToken<Type<unknown>> = new InjectionToken('WLCM_LOADER_COMPONENT', {\n providedIn: 'root',\n factory: () => WlcmDefaultLoaderComponent,\n});\n","import {\n Component,\n HostBinding,\n Inject,\n InputSignal,\n Signal,\n Type,\n ViewContainerRef,\n effect,\n input,\n viewChild,\n} from '@angular/core';\nimport { WLCM_LOADER_COMPONENT } from '../../constants/loader.constants';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-loader',\n host: { class: 'wlcm-loader' },\n standalone: true,\n imports: [CommonModule],\n templateUrl: './loader.component.html',\n styleUrl: './loader.component.scss',\n})\nexport class WlcmLoaderComponent {\n hidden: InputSignal<boolean> = input(false);\n\n container: Signal<ViewContainerRef | undefined> = viewChild('container', { read: ViewContainerRef });\n\n @HostBinding('class.wlcm-loader-hidden') get isHidden() {\n return this.hidden();\n }\n\n constructor(@Inject(WLCM_LOADER_COMPONENT) private loaderComponent: Type<unknown>) {\n effect(() => {\n if (!this.container()) return;\n\n this.container()!.createComponent(this.loaderComponent);\n });\n }\n}\n","<div class=\"wlcm-loader-container\">\n <ng-container #container></ng-container>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wlcm-angular-core.mjs","sources":["../../../core/src/lib/utils/stream.utils.ts","../../../core/src/lib/utils/paginated-data-emulator.utils.ts","../../../core/src/lib/models/icon.models.ts","../../../core/src/lib/models/option.models.ts","../../../core/src/lib/constants/http.constants.ts","../../../core/src/lib/components/icons/chevron-down-icon/chevron-down-icon.component.ts","../../../core/src/lib/components/icons/chevron-down-icon/chevron-down-icon.component.html","../../../core/src/lib/components/icons/calendar-icon/calendar-icon.component.ts","../../../core/src/lib/components/icons/calendar-icon/calendar-icon.component.html","../../../core/src/lib/components/icons/search-icon/search-icon.component.ts","../../../core/src/lib/components/icons/search-icon/search-icon.component.html","../../../core/src/lib/constants/icon.contants.ts","../../../core/src/lib/services/scroll-detection.api.ts","../../../core/src/lib/directives/icon.directive.ts","../../../core/src/lib/components/icons/close-icon/close-icon.component.ts","../../../core/src/lib/components/icons/close-icon/close-icon.component.html","../../../core/src/lib/components/default-loader/default-loader.component.ts","../../../core/src/lib/components/default-loader/default-loader.component.html","../../../core/src/lib/constants/loader.constants.ts","../../../core/src/lib/components/loader/loader.component.ts","../../../core/src/lib/components/loader/loader.component.html","../../../core/src/wlcm-angular-core.ts"],"sourcesContent":["import { EventEmitter } from '@angular/core';\nimport { Subject, BehaviorSubject, Observable, finalize, Subscriber } from 'rxjs';\n\nexport class WlcmStreamUtils {\n static loadingDetector(\n subject: Subject<boolean> | BehaviorSubject<boolean> | EventEmitter<boolean>,\n ): <T>(source: Observable<T>) => Observable<T> {\n subject.next(true);\n return function <T>(source: Observable<T>): Observable<T> {\n return source.pipe(finalize(() => subject.next(false)));\n };\n }\n\n static get emptySource(): Observable<void> {\n return new Observable((subscriber: Subscriber<void>) => {\n subscriber.next();\n subscriber.complete();\n });\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { WlcmPaginatedData, WlcmQueryParams } from '@wlcm/common';\n\nexport class WlcmPaginatedDataEmulator<T> {\n private data: Array<T> = [];\n\n constructor(\n count: number,\n public handler: (index: number) => T,\n ) {\n this.populateData(count);\n }\n\n load(params: WlcmQueryParams): Observable<WlcmPaginatedData<T>> {\n return of({\n currPage: params.page,\n totalPages: Math.ceil(this.data.length / params.limit),\n totalItems: this.data.length,\n data: this.data.slice((params.page - 1) * params.limit, params.page * params.limit),\n });\n }\n\n private populateData(count: number): void {\n this.data = Array.from(new Int8Array(count).fill(0)).map((_, index) => this.handler(index));\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\n\nexport enum WlcmIconName {\n SEARCH = 'SEARCH',\n CALENDAR = 'CALENDAR',\n CHEVRON_DOWN = 'CHEVRON_DOWN',\n}\n\nexport type WlcmIcons = {\n [key in WlcmIconName]: ComponentType<unknown>;\n};\n","export class WlcmOption<D = unknown> {\n constructor(\n public value: string | boolean,\n public viewValue: string,\n public data?: D,\n ) {}\n}\n\nexport class WlcmAutocompleteOption<D = unknown> extends WlcmOption<D> {\n constructor(\n public override value: string,\n public override viewValue: string,\n public searchValue: string,\n public override data?: D,\n ) {\n super(value, viewValue, data);\n }\n}\n\nexport type WlcmSelectOptionFormat = 'CompleteOption' | 'ValueOnly';\n","import { WlcmQueryParams } from '@wlcm/common';\n\nexport const DEFAULT_QUERY_PARAMS: WlcmQueryParams = {\n query: '',\n page: 1,\n limit: 10,\n};\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-chevron-down-icon',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './chevron-down-icon.component.html',\n styleUrl: './chevron-down-icon.component.scss',\n})\nexport class ChevronDownIconComponent {}\n","<svg\n width=\"12px\"\n height=\"7px\"\n viewBox=\"0 0 12 7\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n>\n <g\n id=\"4-Media-Library\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n >\n <g id=\"4.1.0-Filter-by-type\" transform=\"translate(-303.000000, -73.000000)\">\n <g id=\"Group-7\" transform=\"translate(45.000000, 64.000000)\">\n <g id=\"Group\" transform=\"translate(258.000000, 6.000000)\">\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"12\" height=\"12\"></rect>\n <polyline\n id=\"Path\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n points=\"1 4 6 9 11 4\"\n ></polyline>\n </g>\n </g>\n </g>\n </g>\n</svg>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-calendar-icon',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './calendar-icon.component.html',\n styleUrl: './calendar-icon.component.scss',\n})\nexport class CalendarIconComponent {}\n","<svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n>\n <g\n id=\"icon/date-grey\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n >\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"16\" height=\"16\"></rect>\n <path\n d=\"M11,0 C11.5522847,0 12,0.44771525 12,1 L14,1 C15.1045695,1 16,1.8954305 16,3 L16,14 C16,15.1045695 15.1045695,16 14,16 L2,16 C0.8954305,16 0,15.1045695 0,14 L0,3 C0,1.8954305 0.8954305,1 2,1 L4,1 C4,0.44771525 4.44771525,0 5,0 C5.55228475,0 6,0.44771525 6,1 L10,1 C10,0.44771525 10.4477153,0 11,0 Z M14,7 L2,7 L2,14 L14,14 L14,7 Z M4,3 L2,3 L2,5 L14,5 L14,3 L12,3 C12,3.55228475 11.5522847,4 11,4 C10.4477153,4 10,3.55228475 10,3 L6,3 C6,3.55228475 5.55228475,4 5,4 C4.44771525,4 4,3.55228475 4,3 Z\"\n id=\"Combined-Shape\"\n fill=\"#8E9498\"\n fill-rule=\"nonzero\"\n ></path>\n <rect\n id=\"Rectangle\"\n fill=\"#8E9498\"\n x=\"9\"\n y=\"9\"\n width=\"3\"\n height=\"3\"\n rx=\"1\"\n ></rect>\n </g>\n</svg>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-search-icon',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './search-icon.component.html',\n styleUrls: ['./search-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SearchIconComponent {}\n","<svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n style=\"display: block\"\n>\n <g\n id=\"icons/search\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n >\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"16\" height=\"16\"></rect>\n <path\n d=\"M7,0 C10.8659932,0 14,3.13400675 14,7 C14,8.57234957 13.4815869,10.0236173 12.6063605,11.1922034 L15.1213203,13.7071068 C15.5118446,14.0976311 15.5118446,14.7307961 15.1213203,15.1213203 C14.7307961,15.5118446 14.0976311,15.5118446 13.7071068,15.1213203 L11.1922034,12.6063605 C10.0236173,13.4815869 8.57234957,14 7,14 C3.13400675,14 0,10.8659932 0,7 C0,3.13400675 3.13400675,0 7,0 Z M7,2 C4.23857625,2 2,4.23857625 2,7 C2,9.76142375 4.23857625,12 7,12 C9.76142375,12 12,9.76142375 12,7 C12,4.23857625 9.76142375,2 7,2 Z\"\n id=\"Combined-Shape\"\n fill=\"currentColor\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n</svg>\n","import { InjectionToken } from '@angular/core';\nimport { WlcmIconName, WlcmIcons } from '../models/icon.models';\nimport { ChevronDownIconComponent } from '../components/icons/chevron-down-icon/chevron-down-icon.component';\nimport { CalendarIconComponent } from '../components/icons/calendar-icon/calendar-icon.component';\nimport { SearchIconComponent } from '../components/icons/search-icon/search-icon.component';\n\nexport const DEFAULT_WLCM_ICONS: WlcmIcons = {\n [WlcmIconName.SEARCH]: SearchIconComponent,\n [WlcmIconName.CALENDAR]: CalendarIconComponent,\n [WlcmIconName.CHEVRON_DOWN]: ChevronDownIconComponent,\n};\n\nexport const WLCM_ICONS: InjectionToken<WlcmIcons> = new InjectionToken('WLCM_ICONS', {\n providedIn: 'root',\n factory: () => DEFAULT_WLCM_ICONS,\n});\n","import { Injectable } from '@angular/core';\nimport { Observable, filter, fromEvent } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ScrollDetectionApi {\n onScrolledDown(element: HTMLElement): Observable<Event> {\n let scrollHeight: number = 0;\n\n let scrollHeightChanged: boolean = false;\n\n return fromEvent(element, 'scroll').pipe(\n filter(() => {\n if (scrollHeight !== element.scrollHeight) {\n scrollHeight = element.scrollHeight;\n\n scrollHeightChanged = true;\n }\n\n if (element.scrollHeight * 0.8 <= element.scrollTop + element.clientHeight && scrollHeightChanged) {\n scrollHeightChanged = false;\n\n return true;\n }\n\n return false;\n }),\n );\n }\n}\n","import {\n ComponentRef,\n Directive,\n Inject,\n InputSignal,\n OnInit,\n OutputEmitterRef,\n ViewContainerRef,\n input,\n output,\n} from '@angular/core';\nimport { WlcmIconName, WlcmIcons } from '../models/icon.models';\nimport { WLCM_ICONS } from '../constants/icon.contants';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { fromEvent } from 'rxjs';\n\n@UntilDestroy()\n@Directive({\n selector: '[wlcmIcon]',\n standalone: true,\n})\nexport class WlcmIconDirective implements OnInit {\n name: InputSignal<WlcmIconName> = input.required({ alias: 'wlcmIcon' });\n\n stopPropagation: InputSignal<boolean> = input(false, { alias: 'wlcmIconStopPropagation' });\n\n clicked: OutputEmitterRef<MouseEvent> = output({ alias: 'wlcmIconClicked' });\n\n constructor(@Inject(WLCM_ICONS) private icons: WlcmIcons, private viewContainer: ViewContainerRef) {}\n\n ngOnInit(): void {\n const component: ComponentType<unknown> = this.icons[this.name()];\n\n if (component) {\n const ref: ComponentRef<unknown> = this.viewContainer.createComponent(component);\n\n this.handleClick(ref);\n }\n }\n\n private handleClick = (ref: ComponentRef<unknown>) => {\n fromEvent(ref.location.nativeElement, 'click', (event: MouseEvent) => event)\n .pipe(untilDestroyed(this))\n .subscribe((event: MouseEvent) => {\n if (this.stopPropagation()) event.stopPropagation();\n\n this.clicked.emit(event);\n });\n };\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-close-icon',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './close-icon.component.html',\n styleUrl: './close-icon.component.scss',\n})\nexport class CloseIconComponent {}\n","<svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n>\n <g\n id=\"2-User-Management\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n >\n <g\n id=\"2.0.1-Export-users-two-filters\"\n transform=\"translate(-310.000000, -54.000000)\"\n >\n <g id=\"icons/close\" transform=\"translate(310.000000, 54.000000)\">\n <rect\n id=\"Rectangle\"\n fill=\"#EDF0F3\"\n x=\"0\"\n y=\"0\"\n width=\"16\"\n height=\"16\"\n rx=\"4\"\n ></rect>\n <path\n d=\"M12,4 L4,12 M4,4 L12,12\"\n id=\"Combined-Shape\"\n stroke=\"#4A5056\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n ></path>\n </g>\n </g>\n </g>\n</svg>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-default-loader',\n host: { class: 'wlcm-default-loader' },\n standalone: true,\n imports: [CommonModule],\n templateUrl: './default-loader.component.html',\n styleUrl: './default-loader.component.scss',\n})\nexport class WlcmDefaultLoaderComponent {}\n","<div class=\"spinner center\">\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n <div class=\"spinner-blade\"></div>\n</div>\n","import { InjectionToken, Type } from '@angular/core';\nimport { WlcmDefaultLoaderComponent } from '../components/default-loader/default-loader.component';\n\nexport const WLCM_LOADER_COMPONENT: InjectionToken<Type<unknown>> = new InjectionToken('WLCM_LOADER_COMPONENT', {\n providedIn: 'root',\n factory: () => WlcmDefaultLoaderComponent,\n});\n","import {\n Component,\n HostBinding,\n Inject,\n InputSignal,\n Signal,\n Type,\n ViewContainerRef,\n effect,\n input,\n viewChild,\n} from '@angular/core';\nimport { WLCM_LOADER_COMPONENT } from '../../constants/loader.constants';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-loader',\n host: { class: 'wlcm-loader' },\n standalone: true,\n imports: [CommonModule],\n templateUrl: './loader.component.html',\n styleUrl: './loader.component.scss',\n})\nexport class WlcmLoaderComponent {\n hidden: InputSignal<boolean> = input(false);\n\n container: Signal<ViewContainerRef | undefined> = viewChild('container', { read: ViewContainerRef });\n\n @HostBinding('class.wlcm-loader-hidden') get isHidden() {\n return this.hidden();\n }\n\n constructor(@Inject(WLCM_LOADER_COMPONENT) private loaderComponent: Type<unknown>) {\n effect(() => {\n if (!this.container()) return;\n\n this.container()!.createComponent(this.loaderComponent);\n });\n }\n}\n","<div class=\"wlcm-loader-container\">\n <ng-container #container></ng-container>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAGa,eAAe,CAAA;IAC1B,OAAO,eAAe,CACpB,OAA4E,EAAA;AAE5E,QAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,QAAA,OAAO,UAAa,MAAqB,EAAA;AACvC,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1D,SAAC,CAAC;KACH;AAED,IAAA,WAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,UAA4B,KAAI;YACrD,UAAU,CAAC,IAAI,EAAE,CAAC;YAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,SAAC,CAAC,CAAC;KACJ;AACF;;MChBY,yBAAyB,CAAA;IAGpC,WACE,CAAA,KAAa,EACN,OAA6B,EAAA;QAA7B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAsB;QAJ9B,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;AAM1B,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC1B;AAED,IAAA,IAAI,CAAC,MAAuB,EAAA;AAC1B,QAAA,OAAO,EAAE,CAAC;YACR,QAAQ,EAAE,MAAM,CAAC,IAAI;AACrB,YAAA,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AACtD,YAAA,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;AACpF,SAAA,CAAC,CAAC;KACJ;AAEO,IAAA,YAAY,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;KAC7F;AACF;;ICvBW,aAIX;AAJD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC/B,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA;;MCNY,UAAU,CAAA;AACrB,IAAA,WAAA,CACS,KAAuB,EACvB,SAAiB,EACjB,IAAQ,EAAA;QAFR,IAAK,CAAA,KAAA,GAAL,KAAK,CAAkB;QACvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAQ;QACjB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAI;KACb;AACL,CAAA;AAEK,MAAO,sBAAoC,SAAQ,UAAa,CAAA;AACpE,IAAA,WAAA,CACkB,KAAa,EACb,SAAiB,EAC1B,WAAmB,EACV,IAAQ,EAAA;AAExB,QAAA,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QALd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;QACb,IAAS,CAAA,SAAA,GAAT,SAAS,CAAQ;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QACV,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAI;KAGzB;AACF;;ACfY,MAAA,oBAAoB,GAAoB;AACnD,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,KAAK,EAAE,EAAE;;;MCKE,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVrC,g6BAgCA,EAAA,MAAA,EAAA,CAAA,gDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED1BY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EACtB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,g6BAAA,EAAA,MAAA,EAAA,CAAA,gDAAA,CAAA,EAAA,CAAA;;;MEIZ,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVlC,6pCAiCA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3BY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAClB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,6pCAAA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA,CAAA;;;MEKZ,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXhC,ojCAyBA,EAAA,MAAA,EAAA,CAAA,sCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnBY,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAKX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAChB,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ojCAAA,EAAA,MAAA,EAAA,CAAA,sCAAA,CAAA,EAAA,CAAA;;;AEHpC,MAAA,kBAAkB,GAAc;AAC3C,IAAA,CAAC,YAAY,CAAC,MAAM,GAAG,mBAAmB;AAC1C,IAAA,CAAC,YAAY,CAAC,QAAQ,GAAG,qBAAqB;AAC9C,IAAA,CAAC,YAAY,CAAC,YAAY,GAAG,wBAAwB;EACrD;MAEW,UAAU,GAA8B,IAAI,cAAc,CAAC,YAAY,EAAE;AACpF,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,kBAAkB;AAClC,CAAA;;MCXY,kBAAkB,CAAA;AAC7B,IAAA,cAAc,CAAC,OAAoB,EAAA;QACjC,IAAI,YAAY,GAAW,CAAC,CAAC;QAE7B,IAAI,mBAAmB,GAAY,KAAK,CAAC;AAEzC,QAAA,OAAO,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,CACtC,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,YAAY,KAAK,OAAO,CAAC,YAAY,EAAE;AACzC,gBAAA,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;gBAEpC,mBAAmB,GAAG,IAAI,CAAC;aAC5B;AAED,YAAA,IAAI,OAAO,CAAC,YAAY,GAAG,GAAG,IAAI,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,IAAI,mBAAmB,EAAE;gBACjG,mBAAmB,GAAG,KAAK,CAAC;AAE5B,gBAAA,OAAO,IAAI,CAAC;aACb;AAED,YAAA,OAAO,KAAK,CAAC;SACd,CAAC,CACH,CAAC;KACH;8GAvBU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADL,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACmBrB,IAAA,iBAAiB,GAAvB,MAAM,iBAAiB,CAAA;IAO5B,WAAwC,CAAA,KAAgB,EAAU,aAA+B,EAAA;QAAzD,IAAK,CAAA,KAAA,GAAL,KAAK,CAAW;QAAU,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QANjG,IAAI,CAAA,IAAA,GAA8B,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAExE,IAAe,CAAA,eAAA,GAAyB,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC;QAE3F,IAAO,CAAA,OAAA,GAAiC,MAAM,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAcrE,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,GAA0B,KAAI;AACnD,YAAA,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,KAAiB,KAAK,KAAK,CAAC;AACzE,iBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1B,iBAAA,SAAS,CAAC,CAAC,KAAiB,KAAI;gBAC/B,IAAI,IAAI,CAAC,eAAe,EAAE;oBAAE,KAAK,CAAC,eAAe,EAAE,CAAC;AAEpD,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,aAAC,CAAC,CAAC;AACP,SAAC,CAAC;KApBmG;IAErG,QAAQ,GAAA;QACN,MAAM,SAAS,GAA2B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAElE,IAAI,SAAS,EAAE;YACb,MAAM,GAAG,GAA0B,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAEjF,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SACvB;KACF;AAjBU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAOR,UAAU,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAPnB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;AAAjB,iBAAiB,GAAA,UAAA,CAAA;AAL7B,IAAA,YAAY,EAAE;6CAYoE,gBAAgB,CAAA,CAAA;AAPtF,CAAA,EAAA,iBAAiB,CA4B7B,CAAA;2FA5BY,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;0BAQc,MAAM;2BAAC,UAAU,CAAA;;;MCnBnB,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV/B,86BAwCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlCY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EACf,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,86BAAA,EAAA,CAAA;;;MEKZ,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXvC,8fAcA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDPY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;+BACE,qBAAqB,EAAA,IAAA,EACzB,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAA,UAAA,EAC1B,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,8fAAA,EAAA,CAAA;;;AEJlB,MAAM,qBAAqB,GAAkC,IAAI,cAAc,CAAC,uBAAuB,EAAE;AAC9G,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,0BAA0B;AAC1C,CAAA,CAAC;;MCiBW,mBAAmB,CAAA;AAK9B,IAAA,IAA6C,QAAQ,GAAA;AACnD,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;KACtB;AAED,IAAA,WAAA,CAAmD,eAA8B,EAAA;QAA9B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAe;AARjF,QAAA,IAAA,CAAA,MAAM,GAAyB,KAAK,CAAC,KAAK,CAAC,CAAC;QAE5C,IAAS,CAAA,SAAA,GAAyC,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAOnG,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBAAE,OAAO;YAE9B,IAAI,CAAC,SAAS,EAAG,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC1D,SAAC,CAAC,CAAC;KACJ;AAfU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBASV,qBAAqB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAT9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAGmD,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAgB,EC1BnG,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6FAGA,yDDgBY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;+BACE,aAAa,EAAA,IAAA,EACjB,EAAE,KAAK,EAAE,aAAa,EAAE,EAAA,UAAA,EAClB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,6FAAA,EAAA,CAAA;;0BAaV,MAAM;2BAAC,qBAAqB,CAAA;yCAJI,QAAQ,EAAA,CAAA;sBAApD,WAAW;uBAAC,0BAA0B,CAAA;;;AE5BzC;;AAEG;;;;"}
@@ -1,2 +1,2 @@
1
- import { QueryParams } from '../models/query-params.models';
2
- export declare const DEFAULT_QUERY_PARAMS: QueryParams;
1
+ import { WlcmQueryParams } from '@wlcm/common';
2
+ export declare const DEFAULT_QUERY_PARAMS: WlcmQueryParams;
@@ -1,4 +1,2 @@
1
1
  export * from './icon.models';
2
- export * from './paginated-data.models';
3
2
  export * from './option.models';
4
- export * from './query-params.models';
@@ -1,10 +1,9 @@
1
1
  import { Observable } from 'rxjs';
2
- import { PaginatedData } from '../models/paginated-data.models';
3
- import { QueryParams } from '../models/query-params.models';
2
+ import { WlcmPaginatedData, WlcmQueryParams } from '@wlcm/common';
4
3
  export declare class WlcmPaginatedDataEmulator<T> {
5
4
  handler: (index: number) => T;
6
5
  private data;
7
6
  constructor(count: number, handler: (index: number) => T);
8
- load(params: QueryParams): Observable<PaginatedData<T>>;
7
+ load(params: WlcmQueryParams): Observable<WlcmPaginatedData<T>>;
9
8
  private populateData;
10
9
  }
@@ -33,9 +33,7 @@ export class WlcmFilter {
33
33
  }
34
34
  set value(data) {
35
35
  this._value$.next(data);
36
- if (data !== null) {
37
- this._size$.next(this.computeSize(data));
38
- }
36
+ this._size$.next(this.computeSize(data));
39
37
  }
40
38
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL21vZGVscy9maWx0ZXIubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkQsTUFBTSxPQUFnQixVQUFVO0lBQWhDO1FBQ1UsaUJBQVksR0FBYSxJQUFJLENBQUM7UUFFckIsV0FBTSxHQUE0QixJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVqRSxVQUFLLEdBQXVCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFL0MsWUFBTyxHQUE4QixJQUFJLGVBQWUsQ0FBVyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFOUYsV0FBTSxHQUF5QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBNkN0RSxDQUFDO0lBdkNDLEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDakMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDakMsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQWU7UUFDbEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxJQUFjO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhCLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBXbGNtRmlsdGVyPFQgPSB1bmtub3duLCBPID0gVD4ge1xuICBwcml2YXRlIF9jYWNoZWRWYWx1ZTogVCB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NpemUkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG5cbiAgcmVhZG9ubHkgc2l6ZSQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMuX3NpemUkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZhbHVlJDogQmVoYXZpb3JTdWJqZWN0PFQgfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VCB8IG51bGw+KHRoaXMuaW5pdGlhbFZhbHVlKTtcblxuICByZWFkb25seSB2YWx1ZSQ6IE9ic2VydmFibGU8VCB8IG51bGw+ID0gdGhpcy5fdmFsdWUkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGFic3RyYWN0IGdldCBrZXkoKTogc3RyaW5nO1xuXG4gIGFic3RyYWN0IGNvbXB1dGVTaXplKHZhbHVlOiBUKTogbnVtYmVyO1xuXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLmluaXRpYWxWYWx1ZTtcbiAgfVxuXG4gIGNhY2hlVmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5fY2FjaGVkVmFsdWUgPSB0aGlzLnByZXBhcmVWYWx1ZUZvckNhY2hlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcmVzdG9yZUNhY2hlZFZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLl9jYWNoZWRWYWx1ZTtcbiAgfVxuXG4gIHByZXBhcmVWYWx1ZUZvckNhY2hlKHZhbHVlOiBUIHwgbnVsbCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBnZXRBcHBsaWVkRmlsdGVycygpOiBPIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBPO1xuICB9XG5cbiAgZ2V0IGluaXRpYWxWYWx1ZSgpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXQgc2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zaXplJC52YWx1ZTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlJC52YWx1ZTtcbiAgfVxuXG4gIHNldCB2YWx1ZShkYXRhOiBUIHwgbnVsbCkge1xuICAgIHRoaXMuX3ZhbHVlJC5uZXh0KGRhdGEpO1xuXG4gICAgaWYgKGRhdGEgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuX3NpemUkLm5leHQodGhpcy5jb21wdXRlU2l6ZShkYXRhKSk7XG4gICAgfVxuICB9XG59XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL21vZGVscy9maWx0ZXIubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkQsTUFBTSxPQUFnQixVQUFVO0lBQWhDO1FBQ1UsaUJBQVksR0FBYSxJQUFJLENBQUM7UUFFckIsV0FBTSxHQUE0QixJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVqRSxVQUFLLEdBQXVCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFL0MsWUFBTyxHQUE4QixJQUFJLGVBQWUsQ0FBVyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFOUYsV0FBTSxHQUF5QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBMkN0RSxDQUFDO0lBckNDLEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDakMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDakMsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQWU7UUFDbEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxJQUFjO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFdsY21GaWx0ZXI8VCA9IHVua25vd24sIE8gPSBUPiB7XG4gIHByaXZhdGUgX2NhY2hlZFZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc2l6ZSQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgwKTtcblxuICByZWFkb25seSBzaXplJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy5fc2l6ZSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdmFsdWUkOiBCZWhhdmlvclN1YmplY3Q8VCB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUIHwgbnVsbD4odGhpcy5pbml0aWFsVmFsdWUpO1xuXG4gIHJlYWRvbmx5IHZhbHVlJDogT2JzZXJ2YWJsZTxUIHwgbnVsbD4gPSB0aGlzLl92YWx1ZSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgYWJzdHJhY3QgZ2V0IGtleSgpOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgY29tcHV0ZVNpemUodmFsdWU6IFQgfCBudWxsKTogbnVtYmVyO1xuXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLmluaXRpYWxWYWx1ZTtcbiAgfVxuXG4gIGNhY2hlVmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5fY2FjaGVkVmFsdWUgPSB0aGlzLnByZXBhcmVWYWx1ZUZvckNhY2hlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcmVzdG9yZUNhY2hlZFZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLl9jYWNoZWRWYWx1ZTtcbiAgfVxuXG4gIHByZXBhcmVWYWx1ZUZvckNhY2hlKHZhbHVlOiBUIHwgbnVsbCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBnZXRBcHBsaWVkRmlsdGVycygpOiBPIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBPO1xuICB9XG5cbiAgZ2V0IGluaXRpYWxWYWx1ZSgpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXQgc2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zaXplJC52YWx1ZTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlJC52YWx1ZTtcbiAgfVxuXG4gIHNldCB2YWx1ZShkYXRhOiBUIHwgbnVsbCkge1xuICAgIHRoaXMuX3ZhbHVlJC5uZXh0KGRhdGEpO1xuXG4gICAgdGhpcy5fc2l6ZSQubmV4dCh0aGlzLmNvbXB1dGVTaXplKGRhdGEpKTtcbiAgfVxufVxuIl19
@@ -39,9 +39,7 @@ class WlcmFilter {
39
39
  }
40
40
  set value(data) {
41
41
  this._value$.next(data);
42
- if (data !== null) {
43
- this._size$.next(this.computeSize(data));
44
- }
42
+ this._size$.next(this.computeSize(data));
45
43
  }
46
44
  }
47
45
 
@@ -1 +1 @@
1
- {"version":3,"file":"wlcm-angular-filters.mjs","sources":["../../../../modules/filters/src/lib/models/filter.models.ts","../../../../modules/filters/src/lib/models/array-filter.models.ts","../../../../modules/filters/src/lib/constants/filter.constants.ts","../../../../modules/filters/src/lib/models/filters-group.models.ts","../../../../modules/filters/src/lib/directives/filter.directive.ts","../../../../modules/filters/src/lib/components/filters-group/filters-group.component.ts","../../../../modules/filters/src/lib/components/filters-group/filters-group.component.html","../../../../modules/filters/src/lib/filters.module.ts","../../../../modules/filters/src/wlcm-angular-filters.ts"],"sourcesContent":["import { BehaviorSubject, Observable } from 'rxjs';\n\nexport abstract class WlcmFilter<T = unknown, O = T> {\n private _cachedValue: T | null = null;\n\n private readonly _size$: BehaviorSubject<number> = new BehaviorSubject(0);\n\n readonly size$: Observable<number> = this._size$.asObservable();\n\n private readonly _value$: BehaviorSubject<T | null> = new BehaviorSubject<T | null>(this.initialValue);\n\n readonly value$: Observable<T | null> = this._value$.asObservable();\n\n abstract get key(): string;\n\n abstract computeSize(value: T): number;\n\n reset(): void {\n this.value = this.initialValue;\n }\n\n cacheValue(): void {\n this._cachedValue = this.prepareValueForCache(this.value);\n }\n\n restoreCachedValue(): void {\n this.value = this._cachedValue;\n }\n\n prepareValueForCache(value: T | null): T | null {\n return value;\n }\n\n getAppliedFilters(): O {\n return this.value as O;\n }\n\n get initialValue(): T | null {\n return null;\n }\n\n get size(): number {\n return this._size$.value;\n }\n\n get value(): T | null {\n return this._value$.value;\n }\n\n set value(data: T | null) {\n this._value$.next(data);\n\n if (data !== null) {\n this._size$.next(this.computeSize(data));\n }\n }\n}\n","import { WlcmFilter } from './filter.models';\n\ntype ArrayFilterValue<T> = Map<unknown, T>;\n\nexport abstract class WlcmArrayFilter<T, O = T[]> extends WlcmFilter<ArrayFilterValue<T>, O> {\n constructor() {\n super();\n\n this.prepareValue();\n }\n\n override get initialValue(): ArrayFilterValue<T> {\n return new Map();\n }\n\n override getAppliedFilters(): O {\n if (!this.value) return [] as O;\n\n return Array.from(this.value.values()) as O;\n }\n\n override prepareValueForCache(value: ArrayFilterValue<T> | null): ArrayFilterValue<T> | null {\n if (!value) return null;\n\n return new Map(value);\n }\n\n override computeSize(value: ArrayFilterValue<T>): number {\n return value.size;\n }\n\n selectId(value: T): unknown {\n return value;\n }\n\n contains(value: T): boolean {\n if (!this.value) return false;\n\n return this.value.has(this.selectId(value));\n }\n\n addOne(value: T): void {\n this.prepareValue();\n\n this.value = (this.value as ArrayFilterValue<T>).set(this.selectId(value), value);\n }\n\n addMany(values: T[]): void {\n this.prepareValue();\n\n const currentValue: ArrayFilterValue<T> = this.value as ArrayFilterValue<T>;\n\n values.forEach((value: T) => currentValue.set(this.selectId(value), value));\n\n this.value = currentValue;\n }\n\n setAll(values: T[]): void {\n const newValue: ArrayFilterValue<T> = new Map();\n\n values.forEach((value: T) => newValue.set(this.selectId(value), value));\n\n this.value = newValue;\n }\n\n removeOne(value: T): void {\n this.prepareValue();\n\n const currentValue: ArrayFilterValue<T> = this.value as ArrayFilterValue<T>;\n\n currentValue.delete(this.selectId(value));\n\n this.value = currentValue;\n }\n\n removeAll(): void {\n this.value = new Map();\n }\n\n toggle(value: T): void {\n this.prepareValue();\n\n const currentValue: ArrayFilterValue<T> = this.value as ArrayFilterValue<T>;\n\n const id: unknown = this.selectId(value);\n\n if (currentValue.has(id)) {\n currentValue.delete(id);\n } else {\n currentValue.set(id, value);\n }\n\n this.value = currentValue;\n }\n\n private prepareValue(): void {\n if (this.value instanceof Map) return;\n\n this.value = new Map();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { WlcmFilter } from '../models/filter.models';\n\nexport const WLCM_FILTER: InjectionToken<WlcmFilter> = new InjectionToken('WLCM_FILTER');\n","import { AfterContentInit, ContentChildren, Directive, QueryList } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable, startWith, switchMap } from 'rxjs';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { WLCM_FILTER } from '../constants/filter.constants';\nimport { WlcmFilter } from './filter.models';\n\nexport type WlcmAppliedFilters = { [key: string]: unknown };\n\n@UntilDestroy()\n@Directive()\nexport abstract class WlcmFiltersGroup implements AfterContentInit {\n private readonly _size$: BehaviorSubject<number> = new BehaviorSubject(0);\n\n readonly size$: Observable<number> = this._size$.asObservable();\n\n @ContentChildren(WLCM_FILTER, { descendants: true }) protected filters!: QueryList<WlcmFilter>;\n\n ngAfterContentInit(): void {\n this.handleFiltersListChange();\n }\n\n resetAll(): void {\n this.filters.forEach((filter: WlcmFilter) => filter.reset());\n }\n\n getAppliedFilters(): WlcmAppliedFilters {\n const appliedFilters: WlcmAppliedFilters = {};\n\n this.filters.forEach((filter: WlcmFilter) => {\n appliedFilters[filter.key] = filter.getAppliedFilters();\n });\n\n return appliedFilters;\n }\n\n cacheValues(): void {\n this.filters.forEach((filter: WlcmFilter) => filter.cacheValue());\n }\n\n restoreCachedValues(): void {\n this.filters.forEach((filter: WlcmFilter) => filter.restoreCachedValue());\n }\n\n get size(): number {\n return this._size$.value;\n }\n\n private handleFiltersListChange(): void {\n this.filters.changes\n .pipe(untilDestroyed(this))\n .pipe(startWith(this.filters))\n .pipe(switchMap((filters: QueryList<WlcmFilter>) => this.handleSizeChange(filters.toArray())))\n .subscribe();\n }\n\n private handleSizeChange(list: WlcmFilter[]): Observable<WlcmFilter[]> {\n return combineLatest(list.map((filter: WlcmFilter) => filter.size$)).pipe(\n map((sizes: number[]) => {\n this._size$.next(sizes.reduce((a, b) => a + b, 0));\n\n return list;\n }),\n );\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({ selector: '[wlcmFilter]', standalone: true })\nexport class FilterDirective {}\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WlcmFiltersGroup } from '../../models/filters-group.models';\n\n@Component({\n selector: 'wlcm-filters-group',\n standalone: true,\n imports: [CommonModule],\n host: { class: 'wlcm-filters-group' },\n templateUrl: './filters-group.component.html',\n styleUrl: './filters-group.component.scss',\n providers: [{ provide: WlcmFiltersGroup, useExisting: forwardRef(() => FiltersGroupComponent) }],\n})\nexport class FiltersGroupComponent extends WlcmFiltersGroup {}\n","<ng-content select=\"[wlcmFilter]\"></ng-content>\n","import { NgModule, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FiltersGroupComponent } from './components/filters-group/filters-group.component';\nimport { FilterDirective } from './directives/filter.directive';\n\nconst publicComponents: Type<unknown>[] = [FiltersGroupComponent];\n\nconst publicDirectives: Type<unknown>[] = [FilterDirective];\n\n@NgModule({\n imports: [CommonModule, ...publicComponents, ...publicDirectives],\n exports: [...publicComponents, ...publicDirectives],\n})\nexport class WlcmFiltersModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wlcm-angular-filters.mjs","sources":["../../../../modules/filters/src/lib/models/filter.models.ts","../../../../modules/filters/src/lib/models/array-filter.models.ts","../../../../modules/filters/src/lib/constants/filter.constants.ts","../../../../modules/filters/src/lib/models/filters-group.models.ts","../../../../modules/filters/src/lib/directives/filter.directive.ts","../../../../modules/filters/src/lib/components/filters-group/filters-group.component.ts","../../../../modules/filters/src/lib/components/filters-group/filters-group.component.html","../../../../modules/filters/src/lib/filters.module.ts","../../../../modules/filters/src/wlcm-angular-filters.ts"],"sourcesContent":["import { BehaviorSubject, Observable } from 'rxjs';\n\nexport abstract class WlcmFilter<T = unknown, O = T> {\n private _cachedValue: T | null = null;\n\n private readonly _size$: BehaviorSubject<number> = new BehaviorSubject(0);\n\n readonly size$: Observable<number> = this._size$.asObservable();\n\n private readonly _value$: BehaviorSubject<T | null> = new BehaviorSubject<T | null>(this.initialValue);\n\n readonly value$: Observable<T | null> = this._value$.asObservable();\n\n abstract get key(): string;\n\n abstract computeSize(value: T | null): number;\n\n reset(): void {\n this.value = this.initialValue;\n }\n\n cacheValue(): void {\n this._cachedValue = this.prepareValueForCache(this.value);\n }\n\n restoreCachedValue(): void {\n this.value = this._cachedValue;\n }\n\n prepareValueForCache(value: T | null): T | null {\n return value;\n }\n\n getAppliedFilters(): O {\n return this.value as O;\n }\n\n get initialValue(): T | null {\n return null;\n }\n\n get size(): number {\n return this._size$.value;\n }\n\n get value(): T | null {\n return this._value$.value;\n }\n\n set value(data: T | null) {\n this._value$.next(data);\n\n this._size$.next(this.computeSize(data));\n }\n}\n","import { WlcmFilter } from './filter.models';\n\ntype ArrayFilterValue<T> = Map<unknown, T>;\n\nexport abstract class WlcmArrayFilter<T, O = T[]> extends WlcmFilter<ArrayFilterValue<T>, O> {\n constructor() {\n super();\n\n this.prepareValue();\n }\n\n override get initialValue(): ArrayFilterValue<T> {\n return new Map();\n }\n\n override getAppliedFilters(): O {\n if (!this.value) return [] as O;\n\n return Array.from(this.value.values()) as O;\n }\n\n override prepareValueForCache(value: ArrayFilterValue<T> | null): ArrayFilterValue<T> | null {\n if (!value) return null;\n\n return new Map(value);\n }\n\n override computeSize(value: ArrayFilterValue<T>): number {\n return value.size;\n }\n\n selectId(value: T): unknown {\n return value;\n }\n\n contains(value: T): boolean {\n if (!this.value) return false;\n\n return this.value.has(this.selectId(value));\n }\n\n addOne(value: T): void {\n this.prepareValue();\n\n this.value = (this.value as ArrayFilterValue<T>).set(this.selectId(value), value);\n }\n\n addMany(values: T[]): void {\n this.prepareValue();\n\n const currentValue: ArrayFilterValue<T> = this.value as ArrayFilterValue<T>;\n\n values.forEach((value: T) => currentValue.set(this.selectId(value), value));\n\n this.value = currentValue;\n }\n\n setAll(values: T[]): void {\n const newValue: ArrayFilterValue<T> = new Map();\n\n values.forEach((value: T) => newValue.set(this.selectId(value), value));\n\n this.value = newValue;\n }\n\n removeOne(value: T): void {\n this.prepareValue();\n\n const currentValue: ArrayFilterValue<T> = this.value as ArrayFilterValue<T>;\n\n currentValue.delete(this.selectId(value));\n\n this.value = currentValue;\n }\n\n removeAll(): void {\n this.value = new Map();\n }\n\n toggle(value: T): void {\n this.prepareValue();\n\n const currentValue: ArrayFilterValue<T> = this.value as ArrayFilterValue<T>;\n\n const id: unknown = this.selectId(value);\n\n if (currentValue.has(id)) {\n currentValue.delete(id);\n } else {\n currentValue.set(id, value);\n }\n\n this.value = currentValue;\n }\n\n private prepareValue(): void {\n if (this.value instanceof Map) return;\n\n this.value = new Map();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { WlcmFilter } from '../models/filter.models';\n\nexport const WLCM_FILTER: InjectionToken<WlcmFilter> = new InjectionToken('WLCM_FILTER');\n","import { AfterContentInit, ContentChildren, Directive, QueryList } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable, startWith, switchMap } from 'rxjs';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { WLCM_FILTER } from '../constants/filter.constants';\nimport { WlcmFilter } from './filter.models';\n\nexport type WlcmAppliedFilters = { [key: string]: unknown };\n\n@UntilDestroy()\n@Directive()\nexport abstract class WlcmFiltersGroup implements AfterContentInit {\n private readonly _size$: BehaviorSubject<number> = new BehaviorSubject(0);\n\n readonly size$: Observable<number> = this._size$.asObservable();\n\n @ContentChildren(WLCM_FILTER, { descendants: true }) protected filters!: QueryList<WlcmFilter>;\n\n ngAfterContentInit(): void {\n this.handleFiltersListChange();\n }\n\n resetAll(): void {\n this.filters.forEach((filter: WlcmFilter) => filter.reset());\n }\n\n getAppliedFilters(): WlcmAppliedFilters {\n const appliedFilters: WlcmAppliedFilters = {};\n\n this.filters.forEach((filter: WlcmFilter) => {\n appliedFilters[filter.key] = filter.getAppliedFilters();\n });\n\n return appliedFilters;\n }\n\n cacheValues(): void {\n this.filters.forEach((filter: WlcmFilter) => filter.cacheValue());\n }\n\n restoreCachedValues(): void {\n this.filters.forEach((filter: WlcmFilter) => filter.restoreCachedValue());\n }\n\n get size(): number {\n return this._size$.value;\n }\n\n private handleFiltersListChange(): void {\n this.filters.changes\n .pipe(untilDestroyed(this))\n .pipe(startWith(this.filters))\n .pipe(switchMap((filters: QueryList<WlcmFilter>) => this.handleSizeChange(filters.toArray())))\n .subscribe();\n }\n\n private handleSizeChange(list: WlcmFilter[]): Observable<WlcmFilter[]> {\n return combineLatest(list.map((filter: WlcmFilter) => filter.size$)).pipe(\n map((sizes: number[]) => {\n this._size$.next(sizes.reduce((a, b) => a + b, 0));\n\n return list;\n }),\n );\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({ selector: '[wlcmFilter]', standalone: true })\nexport class FilterDirective {}\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WlcmFiltersGroup } from '../../models/filters-group.models';\n\n@Component({\n selector: 'wlcm-filters-group',\n standalone: true,\n imports: [CommonModule],\n host: { class: 'wlcm-filters-group' },\n templateUrl: './filters-group.component.html',\n styleUrl: './filters-group.component.scss',\n providers: [{ provide: WlcmFiltersGroup, useExisting: forwardRef(() => FiltersGroupComponent) }],\n})\nexport class FiltersGroupComponent extends WlcmFiltersGroup {}\n","<ng-content select=\"[wlcmFilter]\"></ng-content>\n","import { NgModule, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FiltersGroupComponent } from './components/filters-group/filters-group.component';\nimport { FilterDirective } from './directives/filter.directive';\n\nconst publicComponents: Type<unknown>[] = [FiltersGroupComponent];\n\nconst publicDirectives: Type<unknown>[] = [FilterDirective];\n\n@NgModule({\n imports: [CommonModule, ...publicComponents, ...publicDirectives],\n exports: [...publicComponents, ...publicDirectives],\n})\nexport class WlcmFiltersModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export declare abstract class WlcmFilter<T = unknown, O = T> {
6
6
  private readonly _value$;
7
7
  readonly value$: Observable<T | null>;
8
8
  abstract get key(): string;
9
- abstract computeSize(value: T): number;
9
+ abstract computeSize(value: T | null): number;
10
10
  reset(): void;
11
11
  cacheValue(): void;
12
12
  restoreCachedValue(): void;
@@ -9,7 +9,7 @@ import { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocomplete, MatAutocompleteModul
9
9
  import { BehaviorSubject, EMPTY, Subject, concatMap, filter, fromEvent, map, merge, switchMap, take, tap, timer, } from 'rxjs';
10
10
  import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
11
11
  import { AutocompleteDirective } from '../../directives/autocomplete.directive';
12
- import { DEFAULT_QUERY_PARAMS, } from '@wlcm/angular/core';
12
+ import { DEFAULT_QUERY_PARAMS } from '@wlcm/angular/core';
13
13
  import { WLCM_FORM_FIELD, WLCM_INPUT, WLCM_INPUT_BINDER } from '../../constants';
14
14
  import { WlcmAutocomplete } from '../../models/autocomplete.models';
15
15
  import { RxLet } from '@rx-angular/template/let';
@@ -216,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
216
216
  type: ViewChild,
217
217
  args: [MatAutocomplete]
218
218
  }] } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZm9ybXMvc3JjL2xpYi9mb3Jtcy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBSUwsV0FBVyxFQUNYLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUdwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLGVBQWUsRUFDZixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUN2QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsS0FBSyxFQUVMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsTUFBTSxFQUVOLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNM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MUIscUJBQXFCO3NCQUE3QixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkEwQzhDLFlBQVk7c0JBQS9ELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFFQSxtQkFBbUI7c0JBQTdELFNBQVM7dUJBQUMsc0JBQXNCO2dCQUVHLFlBQVk7c0JBQS9DLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIElucHV0U2lnbmFsLFxuICBPbkluaXQsXG4gIE91dHB1dEVtaXR0ZXJSZWYsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFdsY21Gb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFdsY21MYWJlbENvbXBvbmVudCB9IGZyb20gJy4uL2xhYmVsL2xhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXbGNtSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2lucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICBNQVRfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OUyxcbiAgTWF0QXV0b2NvbXBsZXRlLFxuICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gIE1hdEF1dG9jb21wbGV0ZU9yaWdpbixcbiAgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcixcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgRU1QVFksXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIGNvbmNhdE1hcCxcbiAgZmlsdGVyLFxuICBmaW5hbGl6ZSxcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIG1lcmdlLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRhcCxcbiAgdGltZXIsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2F1dG9jb21wbGV0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9RVUVSWV9QQVJBTVMsXG4gIFBhZ2luYXRlZERhdGEsXG4gIFF1ZXJ5UGFyYW1zLFxuICBXbGNtQXV0b2NvbXBsZXRlT3B0aW9uLFxuICBXbGNtU2VsZWN0T3B0aW9uRm9ybWF0LFxufSBmcm9tICdAd2xjbS9hbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV0xDTV9GT1JNX0ZJRUxELCBXTENNX0lOUFVULCBXTENNX0lOUFVUX0JJTkRFUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBXbGNtQXV0b2NvbXBsZXRlLCBXbGNtQXV0b2NvbXBsZXRlVmFsdWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXV0b2NvbXBsZXRlLm1vZGVscyc7XG5pbXBvcnQgeyBXbGNtRm9ybUZpZWxkSW5wdXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5wdXQubW9kZWxzJztcbmltcG9ydCB7IFdsY21Gb3JtRmllbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS5tb2RlbHMnO1xuaW1wb3J0IHsgUnhMZXQgfSBmcm9tICdAcngtYW5ndWxhci90ZW1wbGF0ZS9sZXQnO1xuXG50eXBlIE9wdGlvbiA9IFdsY21BdXRvY29tcGxldGVPcHRpb247XG5cbmNvbnN0IFBBTkVMX0NMQVNTOiBzdHJpbmcgPSAnd2xjbS1hdXRvY29tcGxldGUtcGFuZWwnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tYXV0b2NvbXBsZXRlJyxcbiAgZXhwb3J0QXM6ICd3bGNtQXV0b2NvbXBsZXRlJyxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tYXV0b2NvbXBsZXRlJyB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBBdXRvY29tcGxldGVEaXJlY3RpdmUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBXbGNtRm9ybUZpZWxkQ29tcG9uZW50LFxuICAgIFdsY21MYWJlbENvbXBvbmVudCxcbiAgICBXbGNtSW5wdXREaXJlY3RpdmUsXG4gICAgUnhMZXQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTUFUX0FVVE9DT01QTEVURV9ERUZBVUxUX09QVElPTlMsIHVzZVZhbHVlOiB7IG92ZXJsYXlQYW5lbENsYXNzOiBQQU5FTF9DTEFTUyB9IH0sXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbUF1dG9jb21wbGV0ZUNvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gICAgeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXbGNtQXV0b2NvbXBsZXRlQ29tcG9uZW50KSwgbXVsdGk6IHRydWUgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBXTENNX0lOUFVUX0JJTkRFUixcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgYXV0b2NvbXBsZXRlID0gaW5qZWN0KFdsY21BdXRvY29tcGxldGVDb21wb25lbnQsIHsgc2VsZjogdHJ1ZSB9KTtcblxuICAgICAgICByZXR1cm4geyBiaW5kOiAoKSA9PiBhdXRvY29tcGxldGUgfTtcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbUF1dG9jb21wbGV0ZUNvbXBvbmVudFxuICBleHRlbmRzIFdsY21BdXRvY29tcGxldGVcbiAgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIEFmdGVyVmlld0luaXQsIFdsY21Gb3JtRmllbGRJbnB1dFxue1xuICBASW5wdXQoKSBmZXRjaFBhZ2luYXRlZE9wdGlvbnMhOiAocGFyYW1zOiBRdWVyeVBhcmFtcykgPT4gT2JzZXJ2YWJsZTxQYWdpbmF0ZWREYXRhPE9wdGlvbj4+O1xuXG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpIG9wdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFdsY21BdXRvY29tcGxldGVPcHRpb24gfT47XG5cbiAgc2VsZWN0T3B0aW9uRm9ybWF0OiBJbnB1dFNpZ25hbDxXbGNtU2VsZWN0T3B0aW9uRm9ybWF0PiA9IGlucHV0PFdsY21TZWxlY3RPcHRpb25Gb3JtYXQ+KCdWYWx1ZU9ubHknKTtcblxuICBub1Jlc3VsdHNUZW1wbGF0ZTogSW5wdXRTaWduYWw8VGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFdsY21BdXRvY29tcGxldGVWYWx1ZSB9PiB8IHVuZGVmaW5lZD4gPSBpbnB1dCgpO1xuXG4gIHNlbGVjdGVkOiBPdXRwdXRFbWl0dGVyUmVmPFdsY21BdXRvY29tcGxldGVWYWx1ZT4gPSBvdXRwdXQoKTtcblxuICByZWFkb25seSBjb250cm9sOiBGb3JtQ29udHJvbDxXbGNtQXV0b2NvbXBsZXRlVmFsdWU+ID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2FkTW9yZSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX29wdGlvbnMkOiBCZWhhdmlvclN1YmplY3Q8T3B0aW9uW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPcHRpb25bXT4oW10pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zJDogT2JzZXJ2YWJsZTxPcHRpb25bXT4gPSB0aGlzLl9vcHRpb25zJC5hc09ic2VydmFibGUoKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2xvc2VkJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNTdHJlYW0kOiBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTx2b2lkPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KEVNUFRZIGFzIE9ic2VydmFibGU8dm9pZD4pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2JsdXJTdHJlYW0kOiBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTx2b2lkPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KEVNUFRZIGFzIE9ic2VydmFibGU8dm9pZD4pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRpbmckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBmb2N1cyQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLl9mb2N1c1N0cmVhbSQucGlwZShzd2l0Y2hNYXAoKHN0cmVhbTogT2JzZXJ2YWJsZTx1bmtub3duPikgPT4gc3RyZWFtKSk7XG5cbiAgYmx1ciQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLl9ibHVyU3RyZWFtJC5waXBlKHN3aXRjaE1hcCgoc3RyZWFtOiBPYnNlcnZhYmxlPHVua25vd24+KSA9PiBzdHJlYW0pKTtcblxuICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2xvYWRpbmckLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgcXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1zID0geyAuLi5ERUZBVUxUX1FVRVJZX1BBUkFNUywgbGltaXQ6IDE1IH07XG5cbiAgcHJpdmF0ZSBfY2hhbmdlZD86ICh2YWx1ZTogV2xjbUF1dG9jb21wbGV0ZU9wdGlvbiB8IHN0cmluZykgPT4gdm9pZDtcblxuICBwcml2YXRlIF90b3VjaGVkPzogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIF9vblZhbGlkYXRvckNoYW5nZT86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfcGFnaW5hdGVkRGF0YTogUGFnaW5hdGVkRGF0YTxPcHRpb24+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfcmVsb2FkT3B0aW9ucyQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIEBWaWV3Q2hpbGQoV0xDTV9JTlBVVCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIHB1YmxpYyBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcikgcHJpdmF0ZSBhdXRvY29tcGxldGVUcmlnZ2VyITogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcblxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZSkgcHJpdmF0ZSBhdXRvY29tcGxldGUhOiBNYXRBdXRvY29tcGxldGU7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChXTENNX0ZPUk1fRklFTEQpIHByaXZhdGUgZm9ybUZpZWxkOiBXbGNtRm9ybUZpZWxkKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuaGFuZGxlTG9hZE1vcmVFdmVudCgpO1xuXG4gICAgdGhpcy5oYW5kbGVDb250cm9sVmFsdWVDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRPcHRpb25zKHRoaXMucXVlcnlQYXJhbXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lcjogRWxlbWVudFJlZiA9IHRoaXMuZm9ybUZpZWxkLmlucHV0Q29udGFpbmVyO1xuXG4gICAgY29uc3Qgb3JpZ2luOiBNYXRBdXRvY29tcGxldGVPcmlnaW4gPSBuZXcgTWF0QXV0b2NvbXBsZXRlT3JpZ2luKGNvbnRhaW5lcik7XG5cbiAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIuY29ubmVjdGVkVG8gPSBvcmlnaW47XG5cbiAgICB0aGlzLmF0dGFjaEZvY3VzQmx1ckxpc3RlbmVycygpO1xuICB9XG5cbiAgZGlzcGxheVdpdGgodmFsdWU6IE9wdGlvbiB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICByZXR1cm4gdmFsdWUudmlld1ZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGlzRm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgfHwgdGhpcy5hdXRvY29tcGxldGU/LmlzT3BlbjtcbiAgfVxuXG4gIGxvYWRNb3JlKCk6IHZvaWQge1xuICAgIHRoaXMuX2xvYWRNb3JlJC5uZXh0KCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBXbGNtQXV0b2NvbXBsZXRlVmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShjYWxsYmFjazogKHZhbHVlOiBXbGNtQXV0b2NvbXBsZXRlT3B0aW9uIHwgc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fY2hhbmdlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl90b3VjaGVkID0gY2FsbGJhY2s7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC5kaXNhYmxlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jb250cm9sLmVuYWJsZSgpO1xuICB9XG5cbiAgcmVsb2FkT3B0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2UgPSAxO1xuXG4gICAgdGhpcy5fcmVsb2FkT3B0aW9ucyQubmV4dCgpO1xuICB9XG5cbiAgYmx1cmVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5hdXRvY29tcGxldGUuaXNPcGVuKSB0aGlzLl90b3VjaGVkPy4oKTtcblxuICAgIHRoaXMuYXV0b2NvbXBsZXRlLmNsb3NlZC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl90b3VjaGVkPy4oKSk7XG4gIH1cblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKCEhdGhpcy5jb250cm9sLnZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5jb250cm9sLnZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSByZXR1cm4gbnVsbDtcblxuICAgICAgcmV0dXJuIHsgLi4uY29udHJvbC5lcnJvcnMsIHVuc2VsZWN0ZWQ6IHRydWUsIHJlcXVpcmVkOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uVmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cblxuICBwcml2YXRlIGxvYWRPcHRpb25zKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFBhZ2luYXRlZERhdGE8T3B0aW9uPj4ge1xuICAgIHRoaXMuX2xvYWRpbmckLm5leHQodHJ1ZSk7XG5cbiAgICByZXR1cm4gdGhpcy5mZXRjaFBhZ2luYXRlZE9wdGlvbnMoeyAuLi5wYXJhbXMsIHBhZ2U6IDEgfSkucGlwZShcbiAgICAgIHRhcCgocGFnaW5hdGVkRGF0YTogUGFnaW5hdGVkRGF0YTxPcHRpb24+KSA9PiB7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRlZERhdGEgPSBwYWdpbmF0ZWREYXRhO1xuXG4gICAgICAgIHRoaXMuX29wdGlvbnMkLm5leHQocGFnaW5hdGVkRGF0YS5kYXRhKTtcblxuICAgICAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUxvYWRNb3JlRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5fbG9hZE1vcmUkXG4gICAgICAucGlwZShcbiAgICAgICAgY29uY2F0TWFwKCgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5fcGFnaW5hdGVkRGF0YSAmJiB0aGlzLl9wYWdpbmF0ZWREYXRhLmN1cnJQYWdlICsgMSA8PSB0aGlzLl9wYWdpbmF0ZWREYXRhLnRvdGFsUGFnZXMpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZSsrO1xuXG4gICAgICAgICAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KHRydWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFBhZ2luYXRlZE9wdGlvbnModGhpcy5xdWVyeVBhcmFtcykucGlwZShcbiAgICAgICAgICAgICAgdGFwKChwYWdpbmF0ZWREYXRhOiBQYWdpbmF0ZWREYXRhPE9wdGlvbj4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9wYWdpbmF0ZWREYXRhID0gcGFnaW5hdGVkRGF0YTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMkLm5leHQoWy4uLnRoaXMuX29wdGlvbnMkLnZhbHVlLCAuLi5wYWdpbmF0ZWREYXRhLmRhdGFdKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2xvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ29udHJvbFZhbHVlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBtZXJnZSh0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLCB0aGlzLl9yZWxvYWRPcHRpb25zJC5waXBlKG1hcCgoKSA9PiB0aGlzLmNvbnRyb2wudmFsdWUpKSlcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWU6IFdsY21BdXRvY29tcGxldGVWYWx1ZSkgPT4ge1xuICAgICAgICAgIGxldCBfdmFsdWU6IFdsY21BdXRvY29tcGxldGVWYWx1ZSA9IHZhbHVlID8/ICcnO1xuXG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmIHRoaXMuc2VsZWN0T3B0aW9uRm9ybWF0KCkgPT09ICdWYWx1ZU9ubHknKSBfdmFsdWUgPSB2YWx1ZS52YWx1ZTtcblxuICAgICAgICAgIHRoaXMuX2NoYW5nZWQ/LihfdmFsdWUpO1xuXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KF92YWx1ZSk7XG5cbiAgICAgICAgICByZXR1cm4gISh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgodmFsdWU6IFdsY21BdXRvY29tcGxldGVWYWx1ZSkgPT5cbiAgICAgICAgICB0aW1lcigyMDApLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMubG9hZE9wdGlvbnMoeyAuLi50aGlzLnF1ZXJ5UGFyYW1zLCBxdWVyeTogdmFsdWUgYXMgc3RyaW5nIH0pKSksXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaEZvY3VzQmx1ckxpc3RlbmVycygpOiB2b2lkIHtcbiAgICBjb25zdCB2b2lkRm4gPSAoKSA9PiB7fTtcblxuICAgIGNvbnN0IGlucHV0Rm9jdXM6IE9ic2VydmFibGU8RXZlbnQ+ID0gZnJvbUV2ZW50KHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdmb2N1cycpO1xuXG4gICAgY29uc3QgaW5wdXRCbHVyOiBPYnNlcnZhYmxlPEV2ZW50PiA9IGZyb21FdmVudCh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnYmx1cicpO1xuXG4gICAgY29uc3QgZm9jdXNPYnNlcnZhYmxlczogT2JzZXJ2YWJsZTx1bmtub3duPltdID0gW2lucHV0Rm9jdXMsIHRoaXMuYXV0b2NvbXBsZXRlLm9wZW5lZF07XG5cbiAgICBjb25zdCBibHVyT2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8dW5rbm93bj5bXSA9IFtpbnB1dEJsdXIsIHRoaXMuYXV0b2NvbXBsZXRlLmNsb3NlZF07XG5cbiAgICB0aGlzLl9mb2N1c1N0cmVhbSQubmV4dChtZXJnZSguLi5mb2N1c09ic2VydmFibGVzKS5waXBlKG1hcCh2b2lkRm4pKSk7XG5cbiAgICB0aGlzLl9ibHVyU3RyZWFtJC5uZXh0KG1lcmdlKC4uLmJsdXJPYnNlcnZhYmxlcykucGlwZShtYXAoKCkgPT4gdGhpcy5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCkpKSk7XG4gIH1cbn1cbiIsIjxpbnB1dFxuICB3bGNtSW5wdXRcbiAgdHlwZT1cInRleHRcIlxuICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgKGJsdXIpPVwiYmx1cmVkKClcIlxuLz5cblxuPG1hdC1hdXRvY29tcGxldGVcbiAgI2F1dG9jb21wbGV0ZT1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gIHdsY21BdXRvY29tcGxldGVcbiAgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiXG4gIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5V2l0aFwiXG4gIFtoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yXT1cInRydWVcIlxuICAocGFuZWxTY3JvbGxlZCk9XCJsb2FkTW9yZSgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqcnhMZXQ9XCIkYW55KG9wdGlvbnMkIHwgYXN5bmMpOyBsZXQgb3B0aW9uc1wiPlxuICAgIDxtYXQtb3B0aW9uXG4gICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnd2xjbS1jdXN0b20tb3B0aW9uLWNvbnRlbnQnOiBvcHRpb25UZW1wbGF0ZSB9XCJcbiAgICAgIFt2YWx1ZV09XCJvcHRpb25cIlxuICAgID5cbiAgICAgIEBpZiAob3B0aW9uVGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwib3B0aW9uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBvcHRpb24gfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB7eyBvcHRpb24udmlld1ZhbHVlIH19XG4gICAgICB9XG4gICAgPC9tYXQtb3B0aW9uPlxuXG4gICAgPG1hdC1vcHRpb24gW2Rpc2FibGVkXT1cInRydWVcIiAqbmdJZj1cIm9wdGlvbnMubGVuZ3RoID09PSAwXCI+XG4gICAgICBAaWYgKG5vUmVzdWx0c1RlbXBsYXRlKCkpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBub1Jlc3VsdHNUZW1wbGF0ZSgpITtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb250cm9sLnZhbHVlIH1cbiAgICAgICAgICBcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgTm8gcmVzdWx0cyBmb3VuZFxuICAgICAgfVxuICAgIDwvbWF0LW9wdGlvbj5cbiAgPC9uZy1jb250YWluZXI+XG48L21hdC1hdXRvY29tcGxldGU+XG4iXX0=
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZm9ybXMvc3JjL2xpYi9mb3Jtcy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBSUwsV0FBVyxFQUNYLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUdwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLGVBQWUsRUFDZixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUN2QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsS0FBSyxFQUVMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNM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MUIscUJBQXFCO3NCQUE3QixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkEwQzhDLFlBQVk7c0JBQS9ELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFFQSxtQkFBbUI7c0JBQTdELFNBQVM7dUJBQUMsc0JBQXNCO2dCQUVHLFlBQVk7c0JBQS9DLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIElucHV0U2lnbmFsLFxuICBPbkluaXQsXG4gIE91dHB1dEVtaXR0ZXJSZWYsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFdsY21Gb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFdsY21MYWJlbENvbXBvbmVudCB9IGZyb20gJy4uL2xhYmVsL2xhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXbGNtSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2lucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICBNQVRfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OUyxcbiAgTWF0QXV0b2NvbXBsZXRlLFxuICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gIE1hdEF1dG9jb21wbGV0ZU9yaWdpbixcbiAgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcixcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgRU1QVFksXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIGNvbmNhdE1hcCxcbiAgZmlsdGVyLFxuICBmcm9tRXZlbnQsXG4gIG1hcCxcbiAgbWVyZ2UsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxuICB0aW1lcixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBERUZBVUxUX1FVRVJZX1BBUkFNUywgV2xjbUF1dG9jb21wbGV0ZU9wdGlvbiwgV2xjbVNlbGVjdE9wdGlvbkZvcm1hdCB9IGZyb20gJ0B3bGNtL2FuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXTENNX0ZPUk1fRklFTEQsIFdMQ01fSU5QVVQsIFdMQ01fSU5QVVRfQklOREVSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFdsY21BdXRvY29tcGxldGUsIFdsY21BdXRvY29tcGxldGVWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVscy9hdXRvY29tcGxldGUubW9kZWxzJztcbmltcG9ydCB7IFdsY21RdWVyeVBhcmFtcywgV2xjbVBhZ2luYXRlZERhdGEgfSBmcm9tICdAd2xjbS9jb21tb24nO1xuaW1wb3J0IHsgV2xjbUZvcm1GaWVsZElucHV0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2lucHV0Lm1vZGVscyc7XG5pbXBvcnQgeyBXbGNtRm9ybUZpZWxkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWxzJztcbmltcG9ydCB7IFJ4TGV0IH0gZnJvbSAnQHJ4LWFuZ3VsYXIvdGVtcGxhdGUvbGV0JztcblxudHlwZSBPcHRpb24gPSBXbGNtQXV0b2NvbXBsZXRlT3B0aW9uO1xuXG5jb25zdCBQQU5FTF9DTEFTUzogc3RyaW5nID0gJ3dsY20tYXV0b2NvbXBsZXRlLXBhbmVsJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3bGNtLWF1dG9jb21wbGV0ZScsXG4gIGV4cG9ydEFzOiAnd2xjbUF1dG9jb21wbGV0ZScsXG4gIGhvc3Q6IHsgY2xhc3M6ICd3bGNtLWF1dG9jb21wbGV0ZScgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgQXV0b2NvbXBsZXRlRGlyZWN0aXZlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgV2xjbUZvcm1GaWVsZENvbXBvbmVudCxcbiAgICBXbGNtTGFiZWxDb21wb25lbnQsXG4gICAgV2xjbUlucHV0RGlyZWN0aXZlLFxuICAgIFJ4TGV0LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE1BVF9BVVRPQ09NUExFVEVfREVGQVVMVF9PUFRJT05TLCB1c2VWYWx1ZTogeyBvdmVybGF5UGFuZWxDbGFzczogUEFORUxfQ0xBU1MgfSB9LFxuICAgIHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdsY21BdXRvY29tcGxldGVDb21wb25lbnQpLCBtdWx0aTogdHJ1ZSB9LFxuICAgIHsgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbUF1dG9jb21wbGV0ZUNvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogV0xDTV9JTlBVVF9CSU5ERVIsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGF1dG9jb21wbGV0ZSA9IGluamVjdChXbGNtQXV0b2NvbXBsZXRlQ29tcG9uZW50LCB7IHNlbGY6IHRydWUgfSk7XG5cbiAgICAgICAgcmV0dXJuIHsgYmluZDogKCkgPT4gYXV0b2NvbXBsZXRlIH07XG4gICAgICB9LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdsY21BdXRvY29tcGxldGVDb21wb25lbnRcbiAgZXh0ZW5kcyBXbGNtQXV0b2NvbXBsZXRlXG4gIGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBBZnRlclZpZXdJbml0LCBXbGNtRm9ybUZpZWxkSW5wdXRcbntcbiAgQElucHV0KCkgZmV0Y2hQYWdpbmF0ZWRPcHRpb25zITogKHBhcmFtczogV2xjbVF1ZXJ5UGFyYW1zKSA9PiBPYnNlcnZhYmxlPFdsY21QYWdpbmF0ZWREYXRhPE9wdGlvbj4+O1xuXG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpIG9wdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFdsY21BdXRvY29tcGxldGVPcHRpb24gfT47XG5cbiAgc2VsZWN0T3B0aW9uRm9ybWF0OiBJbnB1dFNpZ25hbDxXbGNtU2VsZWN0T3B0aW9uRm9ybWF0PiA9IGlucHV0PFdsY21TZWxlY3RPcHRpb25Gb3JtYXQ+KCdWYWx1ZU9ubHknKTtcblxuICBub1Jlc3VsdHNUZW1wbGF0ZTogSW5wdXRTaWduYWw8VGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFdsY21BdXRvY29tcGxldGVWYWx1ZSB9PiB8IHVuZGVmaW5lZD4gPSBpbnB1dCgpO1xuXG4gIHNlbGVjdGVkOiBPdXRwdXRFbWl0dGVyUmVmPFdsY21BdXRvY29tcGxldGVWYWx1ZT4gPSBvdXRwdXQoKTtcblxuICByZWFkb25seSBjb250cm9sOiBGb3JtQ29udHJvbDxXbGNtQXV0b2NvbXBsZXRlVmFsdWU+ID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2FkTW9yZSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX29wdGlvbnMkOiBCZWhhdmlvclN1YmplY3Q8T3B0aW9uW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPcHRpb25bXT4oW10pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zJDogT2JzZXJ2YWJsZTxPcHRpb25bXT4gPSB0aGlzLl9vcHRpb25zJC5hc09ic2VydmFibGUoKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2xvc2VkJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNTdHJlYW0kOiBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTx2b2lkPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KEVNUFRZIGFzIE9ic2VydmFibGU8dm9pZD4pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2JsdXJTdHJlYW0kOiBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTx2b2lkPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KEVNUFRZIGFzIE9ic2VydmFibGU8dm9pZD4pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRpbmckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBmb2N1cyQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLl9mb2N1c1N0cmVhbSQucGlwZShzd2l0Y2hNYXAoKHN0cmVhbTogT2JzZXJ2YWJsZTx1bmtub3duPikgPT4gc3RyZWFtKSk7XG5cbiAgYmx1ciQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLl9ibHVyU3RyZWFtJC5waXBlKHN3aXRjaE1hcCgoc3RyZWFtOiBPYnNlcnZhYmxlPHVua25vd24+KSA9PiBzdHJlYW0pKTtcblxuICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2xvYWRpbmckLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgcXVlcnlQYXJhbXM6IFdsY21RdWVyeVBhcmFtcyA9IHsgLi4uREVGQVVMVF9RVUVSWV9QQVJBTVMsIGxpbWl0OiAxNSB9O1xuXG4gIHByaXZhdGUgX2NoYW5nZWQ/OiAodmFsdWU6IFdsY21BdXRvY29tcGxldGVPcHRpb24gfCBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfdG91Y2hlZD86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfb25WYWxpZGF0b3JDaGFuZ2U/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgX3BhZ2luYXRlZERhdGE6IFdsY21QYWdpbmF0ZWREYXRhPE9wdGlvbj4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9yZWxvYWRPcHRpb25zJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgQFZpZXdDaGlsZChXTENNX0lOUFVULCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgcHVibGljIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZChNYXRBdXRvY29tcGxldGVUcmlnZ2VyKSBwcml2YXRlIGF1dG9jb21wbGV0ZVRyaWdnZXIhOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xuXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlKSBwcml2YXRlIGF1dG9jb21wbGV0ZSE6IE1hdEF1dG9jb21wbGV0ZTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFdMQ01fRk9STV9GSUVMRCkgcHJpdmF0ZSBmb3JtRmllbGQ6IFdsY21Gb3JtRmllbGQpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5oYW5kbGVMb2FkTW9yZUV2ZW50KCk7XG5cbiAgICB0aGlzLmhhbmRsZUNvbnRyb2xWYWx1ZUNoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZE9wdGlvbnModGhpcy5xdWVyeVBhcmFtcykuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyOiBFbGVtZW50UmVmID0gdGhpcy5mb3JtRmllbGQuaW5wdXRDb250YWluZXI7XG5cbiAgICBjb25zdCBvcmlnaW46IE1hdEF1dG9jb21wbGV0ZU9yaWdpbiA9IG5ldyBNYXRBdXRvY29tcGxldGVPcmlnaW4oY29udGFpbmVyKTtcblxuICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlci5jb25uZWN0ZWRUbyA9IG9yaWdpbjtcblxuICAgIHRoaXMuYXR0YWNoRm9jdXNCbHVyTGlzdGVuZXJzKCk7XG4gIH1cblxuICBkaXNwbGF5V2l0aCh2YWx1ZTogT3B0aW9uIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgIHJldHVybiB2YWx1ZS52aWV3VmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgaXNGb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlucHV0RWxlbWVudD8ubmF0aXZlRWxlbWVudCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCB8fCB0aGlzLmF1dG9jb21wbGV0ZT8uaXNPcGVuO1xuICB9XG5cbiAgbG9hZE1vcmUoKTogdm9pZCB7XG4gICAgdGhpcy5fbG9hZE1vcmUkLm5leHQoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFdsY21BdXRvY29tcGxldGVWYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGNhbGxiYWNrOiAodmFsdWU6IFdsY21BdXRvY29tcGxldGVPcHRpb24gfCBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGFuZ2VkID0gY2FsbGJhY2s7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChjYWxsYmFjazogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX3RvdWNoZWQgPSBjYWxsYmFjaztcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb250cm9sLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XG4gIH1cblxuICByZWxvYWRPcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZSA9IDE7XG5cbiAgICB0aGlzLl9yZWxvYWRPcHRpb25zJC5uZXh0KCk7XG4gIH1cblxuICBibHVyZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmF1dG9jb21wbGV0ZS5pc09wZW4pIHRoaXMuX3RvdWNoZWQ/LigpO1xuXG4gICAgdGhpcy5hdXRvY29tcGxldGUuY2xvc2VkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3RvdWNoZWQ/LigpKTtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoISF0aGlzLmNvbnRyb2wudmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWUgaW5zdGFuY2VvZiBPYmplY3QpIHJldHVybiBudWxsO1xuXG4gICAgICByZXR1cm4geyAuLi5jb250cm9sLmVycm9ycywgdW5zZWxlY3RlZDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZE9wdGlvbnMocGFyYW1zOiBXbGNtUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFdsY21QYWdpbmF0ZWREYXRhPE9wdGlvbj4+IHtcbiAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KHRydWUpO1xuXG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hQYWdpbmF0ZWRPcHRpb25zKHsgLi4ucGFyYW1zLCBwYWdlOiAxIH0pLnBpcGUoXG4gICAgICB0YXAoKHBhZ2luYXRlZERhdGE6IFdsY21QYWdpbmF0ZWREYXRhPE9wdGlvbj4pID0+IHtcbiAgICAgICAgdGhpcy5fcGFnaW5hdGVkRGF0YSA9IHBhZ2luYXRlZERhdGE7XG5cbiAgICAgICAgdGhpcy5fb3B0aW9ucyQubmV4dChwYWdpbmF0ZWREYXRhLmRhdGEpO1xuXG4gICAgICAgIHRoaXMuX2xvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTG9hZE1vcmVFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2FkTW9yZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBjb25jYXRNYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9wYWdpbmF0ZWREYXRhICYmIHRoaXMuX3BhZ2luYXRlZERhdGEuY3VyclBhZ2UgKyAxIDw9IHRoaXMuX3BhZ2luYXRlZERhdGEudG90YWxQYWdlcykge1xuICAgICAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5wYWdlKys7XG5cbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmckLm5leHQodHJ1ZSk7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZldGNoUGFnaW5hdGVkT3B0aW9ucyh0aGlzLnF1ZXJ5UGFyYW1zKS5waXBlKFxuICAgICAgICAgICAgICB0YXAoKHBhZ2luYXRlZERhdGE6IFdsY21QYWdpbmF0ZWREYXRhPE9wdGlvbj4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9wYWdpbmF0ZWREYXRhID0gcGFnaW5hdGVkRGF0YTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMkLm5leHQoWy4uLnRoaXMuX29wdGlvbnMkLnZhbHVlLCAuLi5wYWdpbmF0ZWREYXRhLmRhdGFdKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2xvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ29udHJvbFZhbHVlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBtZXJnZSh0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLCB0aGlzLl9yZWxvYWRPcHRpb25zJC5waXBlKG1hcCgoKSA9PiB0aGlzLmNvbnRyb2wudmFsdWUpKSlcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWU6IFdsY21BdXRvY29tcGxldGVWYWx1ZSkgPT4ge1xuICAgICAgICAgIGxldCBfdmFsdWU6IFdsY21BdXRvY29tcGxldGVWYWx1ZSA9IHZhbHVlID8/ICcnO1xuXG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmIHRoaXMuc2VsZWN0T3B0aW9uRm9ybWF0KCkgPT09ICdWYWx1ZU9ubHknKSBfdmFsdWUgPSB2YWx1ZS52YWx1ZTtcblxuICAgICAgICAgIHRoaXMuX2NoYW5nZWQ/LihfdmFsdWUpO1xuXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KF92YWx1ZSk7XG5cbiAgICAgICAgICByZXR1cm4gISh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgodmFsdWU6IFdsY21BdXRvY29tcGxldGVWYWx1ZSkgPT5cbiAgICAgICAgICB0aW1lcigyMDApLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMubG9hZE9wdGlvbnMoeyAuLi50aGlzLnF1ZXJ5UGFyYW1zLCBxdWVyeTogdmFsdWUgYXMgc3RyaW5nIH0pKSksXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaEZvY3VzQmx1ckxpc3RlbmVycygpOiB2b2lkIHtcbiAgICBjb25zdCB2b2lkRm4gPSAoKSA9PiB7fTtcblxuICAgIGNvbnN0IGlucHV0Rm9jdXM6IE9ic2VydmFibGU8RXZlbnQ+ID0gZnJvbUV2ZW50KHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdmb2N1cycpO1xuXG4gICAgY29uc3QgaW5wdXRCbHVyOiBPYnNlcnZhYmxlPEV2ZW50PiA9IGZyb21FdmVudCh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnYmx1cicpO1xuXG4gICAgY29uc3QgZm9jdXNPYnNlcnZhYmxlczogT2JzZXJ2YWJsZTx1bmtub3duPltdID0gW2lucHV0Rm9jdXMsIHRoaXMuYXV0b2NvbXBsZXRlLm9wZW5lZF07XG5cbiAgICBjb25zdCBibHVyT2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8dW5rbm93bj5bXSA9IFtpbnB1dEJsdXIsIHRoaXMuYXV0b2NvbXBsZXRlLmNsb3NlZF07XG5cbiAgICB0aGlzLl9mb2N1c1N0cmVhbSQubmV4dChtZXJnZSguLi5mb2N1c09ic2VydmFibGVzKS5waXBlKG1hcCh2b2lkRm4pKSk7XG5cbiAgICB0aGlzLl9ibHVyU3RyZWFtJC5uZXh0KG1lcmdlKC4uLmJsdXJPYnNlcnZhYmxlcykucGlwZShtYXAoKCkgPT4gdGhpcy5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCkpKSk7XG4gIH1cbn1cbiIsIjxpbnB1dFxuICB3bGNtSW5wdXRcbiAgdHlwZT1cInRleHRcIlxuICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgKGJsdXIpPVwiYmx1cmVkKClcIlxuLz5cblxuPG1hdC1hdXRvY29tcGxldGVcbiAgI2F1dG9jb21wbGV0ZT1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gIHdsY21BdXRvY29tcGxldGVcbiAgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiXG4gIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5V2l0aFwiXG4gIFtoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yXT1cInRydWVcIlxuICAocGFuZWxTY3JvbGxlZCk9XCJsb2FkTW9yZSgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqcnhMZXQ9XCIkYW55KG9wdGlvbnMkIHwgYXN5bmMpOyBsZXQgb3B0aW9uc1wiPlxuICAgIDxtYXQtb3B0aW9uXG4gICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnd2xjbS1jdXN0b20tb3B0aW9uLWNvbnRlbnQnOiBvcHRpb25UZW1wbGF0ZSB9XCJcbiAgICAgIFt2YWx1ZV09XCJvcHRpb25cIlxuICAgID5cbiAgICAgIEBpZiAob3B0aW9uVGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwib3B0aW9uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBvcHRpb24gfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB7eyBvcHRpb24udmlld1ZhbHVlIH19XG4gICAgICB9XG4gICAgPC9tYXQtb3B0aW9uPlxuXG4gICAgPG1hdC1vcHRpb24gW2Rpc2FibGVkXT1cInRydWVcIiAqbmdJZj1cIm9wdGlvbnMubGVuZ3RoID09PSAwXCI+XG4gICAgICBAaWYgKG5vUmVzdWx0c1RlbXBsYXRlKCkpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBub1Jlc3VsdHNUZW1wbGF0ZSgpITtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb250cm9sLnZhbHVlIH1cbiAgICAgICAgICBcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgTm8gcmVzdWx0cyBmb3VuZFxuICAgICAgfVxuICAgIDwvbWF0LW9wdGlvbj5cbiAgPC9uZy1jb250YWluZXI+XG48L21hdC1hdXRvY29tcGxldGU+XG4iXX0=