@wlcm/angular 0.0.0

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 (150) hide show
  1. package/README.md +62 -0
  2. package/button/README.md +7 -0
  3. package/button/esm2022/index.mjs +3 -0
  4. package/button/esm2022/lib/button.module.mjs +16 -0
  5. package/button/esm2022/lib/components/button/button.component.mjs +37 -0
  6. package/button/esm2022/lib/models/button.models.mjs +2 -0
  7. package/button/esm2022/wlcm-angular-button.mjs +5 -0
  8. package/button/fesm2022/wlcm-angular-button.mjs +57 -0
  9. package/button/fesm2022/wlcm-angular-button.mjs.map +1 -0
  10. package/button/index.d.ts +2 -0
  11. package/button/lib/button.module.d.ts +7 -0
  12. package/button/lib/components/button/button.component.d.ts +13 -0
  13. package/button/lib/models/button.models.d.ts +1 -0
  14. package/core/README.md +7 -0
  15. package/core/esm2022/index.mjs +10 -0
  16. package/core/esm2022/lib/components/chevron-down-icon/chevron-down-icon.component.mjs +12 -0
  17. package/core/esm2022/lib/components/close-icon/close-icon.component.mjs +12 -0
  18. package/core/esm2022/lib/components/search-icon/search-icon.component.mjs +12 -0
  19. package/core/esm2022/lib/constants/http.constants.mjs +6 -0
  20. package/core/esm2022/lib/models/option.models.mjs +15 -0
  21. package/core/esm2022/lib/models/paginated-data.models.mjs +2 -0
  22. package/core/esm2022/lib/models/query-params.models.mjs +6 -0
  23. package/core/esm2022/lib/utils/stream.utils.mjs +28 -0
  24. package/core/esm2022/wlcm-angular-core.mjs +5 -0
  25. package/core/fesm2022/wlcm-angular-core.mjs +92 -0
  26. package/core/fesm2022/wlcm-angular-core.mjs.map +1 -0
  27. package/core/index.d.ts +8 -0
  28. package/core/lib/components/chevron-down-icon/chevron-down-icon.component.d.ts +5 -0
  29. package/core/lib/components/close-icon/close-icon.component.d.ts +5 -0
  30. package/core/lib/components/search-icon/search-icon.component.d.ts +5 -0
  31. package/core/lib/constants/http.constants.d.ts +2 -0
  32. package/core/lib/models/option.models.d.ts +11 -0
  33. package/core/lib/models/paginated-data.models.d.ts +6 -0
  34. package/core/lib/models/query-params.models.d.ts +26 -0
  35. package/core/lib/utils/stream.utils.d.ts +7 -0
  36. package/filters/README.md +7 -0
  37. package/filters/esm2022/index.mjs +8 -0
  38. package/filters/esm2022/lib/filters/components/filters/filters.component.mjs +21 -0
  39. package/filters/esm2022/lib/filters/components/filters-button/filters-button.component.mjs +25 -0
  40. package/filters/esm2022/lib/filters/components/filters-panel/filters-panel.component.mjs +86 -0
  41. package/filters/esm2022/lib/filters/components/filters-unit/filters-unit.component.mjs +55 -0
  42. package/filters/esm2022/lib/filters/directives/filters-content.directive.mjs +11 -0
  43. package/filters/esm2022/lib/filters/directives/filters-trigger.directive.mjs +69 -0
  44. package/filters/esm2022/lib/filters/filters.module.mjs +53 -0
  45. package/filters/esm2022/lib/filters/models/filters-default-selection-model.mjs +56 -0
  46. package/filters/esm2022/lib/filters/models/filters-trigger.base.mjs +56 -0
  47. package/filters/esm2022/lib/filters/models/filters.models.mjs +44 -0
  48. package/filters/esm2022/lib/filters/pipes/is-filters-param-checked.pipe.mjs +21 -0
  49. package/filters/esm2022/lib/filters/pipes/total-filters-applied.pipe.mjs +18 -0
  50. package/filters/esm2022/lib/filters/utils/filters.utils.mjs +13 -0
  51. package/filters/esm2022/wlcm-angular-filters.mjs +5 -0
  52. package/filters/fesm2022/wlcm-angular-filters.mjs +474 -0
  53. package/filters/fesm2022/wlcm-angular-filters.mjs.map +1 -0
  54. package/filters/index.d.ts +7 -0
  55. package/filters/lib/filters/components/filters/filters.component.d.ts +10 -0
  56. package/filters/lib/filters/components/filters-button/filters-button.component.d.ts +11 -0
  57. package/filters/lib/filters/components/filters-panel/filters-panel.component.d.ts +25 -0
  58. package/filters/lib/filters/components/filters-unit/filters-unit.component.d.ts +21 -0
  59. package/filters/lib/filters/directives/filters-content.directive.d.ts +5 -0
  60. package/filters/lib/filters/directives/filters-trigger.directive.d.ts +22 -0
  61. package/filters/lib/filters/filters.module.d.ts +20 -0
  62. package/filters/lib/filters/models/filters-default-selection-model.d.ts +18 -0
  63. package/filters/lib/filters/models/filters-trigger.base.d.ts +15 -0
  64. package/filters/lib/filters/models/filters.models.d.ts +42 -0
  65. package/filters/lib/filters/pipes/is-filters-param-checked.pipe.d.ts +10 -0
  66. package/filters/lib/filters/pipes/total-filters-applied.pipe.d.ts +8 -0
  67. package/filters/lib/filters/utils/filters.utils.d.ts +5 -0
  68. package/forms/README.md +7 -0
  69. package/forms/esm2022/index.mjs +10 -0
  70. package/forms/esm2022/lib/forms/components/autocomplete/autocomplete.component.mjs +164 -0
  71. package/forms/esm2022/lib/forms/components/error/error.component.mjs +12 -0
  72. package/forms/esm2022/lib/forms/components/form-field/form-field.component.mjs +118 -0
  73. package/forms/esm2022/lib/forms/components/index.mjs +6 -0
  74. package/forms/esm2022/lib/forms/components/label/label.component.mjs +23 -0
  75. package/forms/esm2022/lib/forms/components/select/select.component.mjs +107 -0
  76. package/forms/esm2022/lib/forms/constants/form-elements.constants.mjs +5 -0
  77. package/forms/esm2022/lib/forms/constants/form-errors.constants.mjs +7 -0
  78. package/forms/esm2022/lib/forms/constants/form-state-handlers.constants.mjs +13 -0
  79. package/forms/esm2022/lib/forms/constants/index.mjs +4 -0
  80. package/forms/esm2022/lib/forms/directives/ac-input-binder.directive.mjs +33 -0
  81. package/forms/esm2022/lib/forms/directives/autocomplete.directive.mjs +63 -0
  82. package/forms/esm2022/lib/forms/directives/form-field-custom-container.directive.mjs +17 -0
  83. package/forms/esm2022/lib/forms/directives/form-field-hint.directive.mjs +15 -0
  84. package/forms/esm2022/lib/forms/directives/form-field-suffix.directive.mjs +14 -0
  85. package/forms/esm2022/lib/forms/directives/input.directive.mjs +35 -0
  86. package/forms/esm2022/lib/forms/forms.module.mjs +51 -0
  87. package/forms/esm2022/lib/forms/models/_index.mjs +4 -0
  88. package/forms/esm2022/lib/forms/models/form-errors.models.mjs +2 -0
  89. package/forms/esm2022/lib/forms/models/form.models.mjs +2 -0
  90. package/forms/esm2022/lib/forms/models/input.models.mjs +2 -0
  91. package/forms/esm2022/lib/forms/pipes/errors-mapper.pipe.mjs +53 -0
  92. package/forms/esm2022/lib/forms/services/form-state-handler.service.mjs +19 -0
  93. package/forms/esm2022/lib/forms/services/index.mjs +2 -0
  94. package/forms/esm2022/wlcm-angular-forms.mjs +5 -0
  95. package/forms/fesm2022/wlcm-angular-forms.mjs +675 -0
  96. package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -0
  97. package/forms/index.d.ts +9 -0
  98. package/forms/lib/forms/components/autocomplete/autocomplete.component.d.ts +46 -0
  99. package/forms/lib/forms/components/error/error.component.d.ts +5 -0
  100. package/forms/lib/forms/components/form-field/form-field.component.d.ts +27 -0
  101. package/forms/lib/forms/components/index.d.ts +5 -0
  102. package/forms/lib/forms/components/label/label.component.d.ts +7 -0
  103. package/forms/lib/forms/components/select/select.component.d.ts +31 -0
  104. package/forms/lib/forms/constants/form-elements.constants.d.ts +6 -0
  105. package/forms/lib/forms/constants/form-errors.constants.d.ts +4 -0
  106. package/forms/lib/forms/constants/form-state-handlers.constants.d.ts +6 -0
  107. package/forms/lib/forms/constants/index.d.ts +3 -0
  108. package/forms/lib/forms/directives/ac-input-binder.directive.d.ts +5 -0
  109. package/forms/lib/forms/directives/autocomplete.directive.d.ts +16 -0
  110. package/forms/lib/forms/directives/form-field-custom-container.directive.d.ts +8 -0
  111. package/forms/lib/forms/directives/form-field-hint.directive.d.ts +5 -0
  112. package/forms/lib/forms/directives/form-field-suffix.directive.d.ts +5 -0
  113. package/forms/lib/forms/directives/input.directive.d.ts +5 -0
  114. package/forms/lib/forms/forms.module.d.ts +15 -0
  115. package/forms/lib/forms/models/_index.d.ts +3 -0
  116. package/forms/lib/forms/models/form-errors.models.d.ts +5 -0
  117. package/forms/lib/forms/models/form.models.d.ts +11 -0
  118. package/forms/lib/forms/models/input.models.d.ts +7 -0
  119. package/forms/lib/forms/pipes/errors-mapper.pipe.d.ts +17 -0
  120. package/forms/lib/forms/services/form-state-handler.service.d.ts +10 -0
  121. package/forms/lib/forms/services/index.d.ts +1 -0
  122. package/index.d.ts +1 -0
  123. package/index.mjs +4 -0
  124. package/package.json +109 -0
  125. package/search-field/README.md +7 -0
  126. package/search-field/esm2022/index.mjs +3 -0
  127. package/search-field/esm2022/lib/components/search-field/search-field.component.mjs +36 -0
  128. package/search-field/esm2022/lib/search-field.module.mjs +18 -0
  129. package/search-field/esm2022/wlcm-angular-search-field.mjs +5 -0
  130. package/search-field/fesm2022/wlcm-angular-search-field.mjs +57 -0
  131. package/search-field/fesm2022/wlcm-angular-search-field.mjs.map +1 -0
  132. package/search-field/index.d.ts +2 -0
  133. package/search-field/lib/components/search-field/search-field.component.d.ts +14 -0
  134. package/search-field/lib/search-field.module.d.ts +8 -0
  135. package/styles/components/button/index.scss +91 -0
  136. package/styles/components/common/index.scss +33 -0
  137. package/styles/components/filters/_filters-panel.scss +44 -0
  138. package/styles/components/filters/_filters-unit.scss +92 -0
  139. package/styles/components/filters/index.scss +7 -0
  140. package/styles/components/forms/_checkbox.scss +89 -0
  141. package/styles/components/forms/_error.scss +23 -0
  142. package/styles/components/forms/_form-field.scss +65 -0
  143. package/styles/components/forms/_label.scss +42 -0
  144. package/styles/components/forms/_select.scss +74 -0
  145. package/styles/components/forms/index.scss +13 -0
  146. package/styles/components/search-field/index.scss +31 -0
  147. package/styles/core/_all-theme.scss +15 -0
  148. package/styles/core/_core.scss +10 -0
  149. package/styles/core/_utils.scss +53 -0
  150. package/styles/wlcm.scss +3 -0
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SearchIconComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<SearchIconComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<SearchIconComponent, "wlcm-search-icon", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,2 @@
1
+ import { QueryParams } from '../models/query-params.models';
2
+ export declare const DEFAULT_QUERY_PARAMS: QueryParams;
@@ -0,0 +1,11 @@
1
+ export declare class WlcmOption {
2
+ value: string | boolean;
3
+ viewValue: string;
4
+ constructor(value: string | boolean, viewValue: string);
5
+ }
6
+ export declare class WlcmAutocompleteOption extends WlcmOption {
7
+ value: string;
8
+ viewValue: string;
9
+ searchValue: string;
10
+ constructor(value: string, viewValue: string, searchValue: string);
11
+ }
@@ -0,0 +1,6 @@
1
+ export interface PaginatedData<T> {
2
+ totalPages: number;
3
+ totalItems: number;
4
+ currPage: number;
5
+ data: T[];
6
+ }
@@ -0,0 +1,26 @@
1
+ export declare enum Order {
2
+ ASC = "asc",
3
+ DESC = "desc"
4
+ }
5
+ export interface QueryFilter {
6
+ equal?: string | boolean;
7
+ not?: string | boolean;
8
+ arrContains?: string[];
9
+ oneOf?: string[];
10
+ noneOf?: string[];
11
+ from?: Date;
12
+ to?: Date;
13
+ exist?: boolean;
14
+ }
15
+ export interface QueryFilters {
16
+ [key: string]: QueryFilter;
17
+ }
18
+ export interface QueryParams {
19
+ query: string;
20
+ page: number;
21
+ limit: number;
22
+ order?: Order;
23
+ filters?: QueryFilters;
24
+ sort?: string;
25
+ searchKeys?: string[];
26
+ }
@@ -0,0 +1,7 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { Subject, BehaviorSubject, Observable } from 'rxjs';
3
+ export declare class WlcmStreamUtils {
4
+ static loadingDetector(subject: Subject<boolean> | BehaviorSubject<boolean> | EventEmitter<boolean>): <T>(source: Observable<T>) => Observable<T>;
5
+ static loadingAudit(time?: number): (source: Observable<boolean>) => Observable<boolean>;
6
+ static get emptySource(): Observable<void>;
7
+ }
@@ -0,0 +1,7 @@
1
+ # filters
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Running unit tests
6
+
7
+ Run `nx test filters` to execute the unit tests.
@@ -0,0 +1,8 @@
1
+ export * from './lib/filters/filters.module';
2
+ export * from './lib/filters/models/filters.models';
3
+ export * from './lib/filters/directives/filters-content.directive';
4
+ export * from './lib/filters/components/filters/filters.component';
5
+ export * from './lib/filters/directives/filters-trigger.directive';
6
+ export * from './lib/filters/components/filters-unit/filters-unit.component';
7
+ export * from './lib/filters/components/filters-button/filters-button.component';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL2ZpbHRlcnMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsa0VBQWtFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9maWx0ZXJzL2ZpbHRlcnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbHRlcnMvbW9kZWxzL2ZpbHRlcnMubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbHRlcnMvZGlyZWN0aXZlcy9maWx0ZXJzLWNvbnRlbnQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbHRlcnMvY29tcG9uZW50cy9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbHRlcnMvZGlyZWN0aXZlcy9maWx0ZXJzLXRyaWdnZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbHRlcnMvY29tcG9uZW50cy9maWx0ZXJzLXVuaXQvZmlsdGVycy11bml0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWx0ZXJzL2NvbXBvbmVudHMvZmlsdGVycy1idXR0b24vZmlsdGVycy1idXR0b24uY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, ViewChild } from '@angular/core';
2
+ import { WlcmFiltersContentDirective } from '../../directives/filters-content.directive';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../filters-panel/filters-panel.component";
5
+ export class WlcmFiltersComponent {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmFiltersComponent, selector: "wlcm-filters", inputs: { countResults: "countResults" }, queries: [{ propertyName: "filtersContent", first: true, predicate: WlcmFiltersContentDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["filtersPanelTemplate"], descendants: true }], exportAs: ["wlcmFilters"], ngImport: i0, template: "<ng-template #filtersPanelTemplate>\n <wlcm-filters-panel\n [countResults]=\"countResults\"\n [filtersContent]=\"filtersContent\"\n >\n </wlcm-filters-panel>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i1.WlcmFiltersPanelComponent, selector: "wlcm-filters-panel", inputs: ["countResults", "filtersContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersComponent, decorators: [{
10
+ type: Component,
11
+ args: [{ selector: 'wlcm-filters', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'wlcmFilters', template: "<ng-template #filtersPanelTemplate>\n <wlcm-filters-panel\n [countResults]=\"countResults\"\n [filtersContent]=\"filtersContent\"\n >\n </wlcm-filters-panel>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
12
+ }], propDecorators: { countResults: [{
13
+ type: Input
14
+ }], templateRef: [{
15
+ type: ViewChild,
16
+ args: ['filtersPanelTemplate']
17
+ }], filtersContent: [{
18
+ type: ContentChild,
19
+ args: [WlcmFiltersContentDirective, { read: TemplateRef }]
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2ZpbHRlcnMvc3JjL2xpYi9maWx0ZXJzL2NvbXBvbmVudHMvZmlsdGVycy9maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL2ZpbHRlcnMvY29tcG9uZW50cy9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBUSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNENBQTRDLENBQUM7OztBQVV6RixNQUFNLE9BQU8sb0JBQW9COzhHQUFwQixvQkFBb0I7a0dBQXBCLG9CQUFvQiwwSUFLakIsMkJBQTJCLDJCQUFVLFdBQVcsNktDaEJoRSwwTEFPQTs7MkZESWEsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTSxZQUNyQyxhQUFhOzhCQUdkLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRW9DLFdBQVc7c0JBQXBELFNBQVM7dUJBQUMsc0JBQXNCO2dCQUUyQyxjQUFjO3NCQUF6RixZQUFZO3VCQUFDLDJCQUEyQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBUeXBlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdsY21GaWx0ZXJzQ29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZmlsdGVycy1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb3VudFJlc3VsdHNGbiB9IGZyb20gJy4uLy4uL21vZGVscy9maWx0ZXJzLm1vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tZmlsdGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVycy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZXhwb3J0QXM6ICd3bGNtRmlsdGVycycsXG59KVxuZXhwb3J0IGNsYXNzIFdsY21GaWx0ZXJzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY291bnRSZXN1bHRzPzogQ291bnRSZXN1bHRzRm47XG5cbiAgQFZpZXdDaGlsZCgnZmlsdGVyc1BhbmVsVGVtcGxhdGUnKSBwdWJsaWMgdGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICBAQ29udGVudENoaWxkKFdsY21GaWx0ZXJzQ29udGVudERpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBwcm90ZWN0ZWQgZmlsdGVyc0NvbnRlbnQhOiBUZW1wbGF0ZVJlZjx2b2lkPjtcbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZmlsdGVyc1BhbmVsVGVtcGxhdGU+XG4gIDx3bGNtLWZpbHRlcnMtcGFuZWxcbiAgICBbY291bnRSZXN1bHRzXT1cImNvdW50UmVzdWx0c1wiXG4gICAgW2ZpbHRlcnNDb250ZW50XT1cImZpbHRlcnNDb250ZW50XCJcbiAgPlxuICA8L3dsY20tZmlsdGVycy1wYW5lbD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { WlcmFiltersComponent } from '../filters/filters.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@rx-angular/template/let";
5
+ import * as i2 from "@wlcm/angular/button";
6
+ import * as i3 from "../../directives/filters-trigger.directive";
7
+ import * as i4 from "../../pipes/total-filters-applied.pipe";
8
+ export class WlcmFiltersButtonComponent {
9
+ constructor() {
10
+ this.filtersChange = new EventEmitter();
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: WlcmFiltersButtonComponent, selector: "wlcm-filters-button", inputs: { panel: "panel", filters: "filters" }, outputs: { filtersChange: "filtersChange" }, ngImport: i0, template: "<ng-container *rxLet=\"filters | totalFiltersApplied as filtersCount\">\n <wlcm-button\n [wlcmFiltersTrigger]=\"panel\"\n [wlcmFiltersTriggerData]=\"filters\"\n (wlcmFiltersTriggerDataChanges)=\"filtersChange.emit($event)\"\n [type]=\"filtersCount > 0 ? 'primary' : 'secondary'\"\n >\n Filters @if(filtersCount>0) {\n <div class=\"wlcm-entities-count\">{{ filtersCount }}</div>\n }\n </wlcm-button>\n</ng-container>\n", styles: [":host{display:block}:host .wlcm-entities-count{margin-left:8px}\n"], dependencies: [{ kind: "directive", type: i1.RxLet, selector: "[rxLet]", inputs: ["rxLet", "rxLetStrategy", "rxLetComplete", "rxLetError", "rxLetSuspense", "rxLetContextTrigger", "rxLetCompleteTrigger", "rxLetErrorTrigger", "rxLetSuspenseTrigger", "rxLetNextTrigger", "rxLetRenderCallback", "rxLetParent", "rxLetPatchZone"], outputs: ["rendered"] }, { kind: "component", type: i2.WlcmButtonComponent, selector: "wlcm-button", inputs: ["type", "size", "isDisabled", "isLoading"], outputs: ["clicked"] }, { kind: "directive", type: i3.WlcmFiltersTriggerDirective, selector: "[wlcmFiltersTrigger]", inputs: ["wlcmFiltersTrigger"] }, { kind: "pipe", type: i4.WlcmTotalFiltersAppliedPipe, name: "totalFiltersApplied" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersButtonComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'wlcm-filters-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *rxLet=\"filters | totalFiltersApplied as filtersCount\">\n <wlcm-button\n [wlcmFiltersTrigger]=\"panel\"\n [wlcmFiltersTriggerData]=\"filters\"\n (wlcmFiltersTriggerDataChanges)=\"filtersChange.emit($event)\"\n [type]=\"filtersCount > 0 ? 'primary' : 'secondary'\"\n >\n Filters @if(filtersCount>0) {\n <div class=\"wlcm-entities-count\">{{ filtersCount }}</div>\n }\n </wlcm-button>\n</ng-container>\n", styles: [":host{display:block}:host .wlcm-entities-count{margin-left:8px}\n"] }]
18
+ }], propDecorators: { panel: [{
19
+ type: Input
20
+ }], filters: [{
21
+ type: Input
22
+ }], filtersChange: [{
23
+ type: Output
24
+ }] } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9maWx0ZXJzL3NyYy9saWIvZmlsdGVycy9jb21wb25lbnRzL2ZpbHRlcnMtYnV0dG9uL2ZpbHRlcnMtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL2ZpbHRlcnMvY29tcG9uZW50cy9maWx0ZXJzLWJ1dHRvbi9maWx0ZXJzLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7QUFTcEUsTUFBTSxPQUFPLDBCQUEwQjtJQU52QztRQVdZLGtCQUFhLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7S0FDMUU7OEdBTlksMEJBQTBCO2tHQUExQiwwQkFBMEIsd0pDVnZDLDJiQVlBOzsyRkRGYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2xjbUZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXJ5RmlsdGVycyB9IGZyb20gJ0B3bGNtL2FuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tZmlsdGVycy1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVycy1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXJzLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbUZpbHRlcnNCdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKSBwYW5lbCE6IFdsY21GaWx0ZXJzQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIGZpbHRlcnMhOiBRdWVyeUZpbHRlcnM7XG5cbiAgQE91dHB1dCgpIGZpbHRlcnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxRdWVyeUZpbHRlcnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xufVxuIiwiPG5nLWNvbnRhaW5lciAqcnhMZXQ9XCJmaWx0ZXJzIHwgdG90YWxGaWx0ZXJzQXBwbGllZCBhcyBmaWx0ZXJzQ291bnRcIj5cbiAgPHdsY20tYnV0dG9uXG4gICAgW3dsY21GaWx0ZXJzVHJpZ2dlcl09XCJwYW5lbFwiXG4gICAgW3dsY21GaWx0ZXJzVHJpZ2dlckRhdGFdPVwiZmlsdGVyc1wiXG4gICAgKHdsY21GaWx0ZXJzVHJpZ2dlckRhdGFDaGFuZ2VzKT1cImZpbHRlcnNDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICBbdHlwZV09XCJmaWx0ZXJzQ291bnQgPiAwID8gJ3ByaW1hcnknIDogJ3NlY29uZGFyeSdcIlxuICA+XG4gICAgRmlsdGVycyBAaWYoZmlsdGVyc0NvdW50PjApIHtcbiAgICA8ZGl2IGNsYXNzPVwid2xjbS1lbnRpdGllcy1jb3VudFwiPnt7IGZpbHRlcnNDb3VudCB9fTwvZGl2PlxuICAgIH1cbiAgPC93bGNtLWJ1dHRvbj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,86 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { ChangeDetectionStrategy, Component, Injector, Input, SkipSelf, TemplateRef, inject, } from '@angular/core';
3
+ import { WlcmFiltersTriggerControl, WlcmFiltersSelectionModel, } from '../../models/filters.models';
4
+ import { BehaviorSubject, Subject, auditTime, filter, switchMap } from 'rxjs';
5
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
6
+ import { WlcmFiltersUtils } from '../../utils/filters.utils';
7
+ import { WlcmStreamUtils } from '@wlcm/angular/core';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../models/filters.models";
10
+ import * as i2 from "@rx-angular/template/let";
11
+ import * as i3 from "@angular/common";
12
+ import * as i4 from "@wlcm/angular/button";
13
+ import * as i5 from "@wlcm/angular/core";
14
+ let WlcmFiltersPanelComponent = class WlcmFiltersPanelComponent {
15
+ constructor(injector, panelControl, globalSelectionModel) {
16
+ this.injector = injector;
17
+ this.panelControl = panelControl;
18
+ this.globalSelectionModel = globalSelectionModel;
19
+ this.loading$ = new BehaviorSubject(false);
20
+ this.totalResults$ = new BehaviorSubject(null);
21
+ this._selectionModel = inject(WlcmFiltersSelectionModel);
22
+ this._countResults$ = new Subject();
23
+ this.handleCountResultsEvent();
24
+ this.handleSelectionChanges();
25
+ }
26
+ ngOnInit() {
27
+ this._countResults$.next(this._selectionModel.model);
28
+ }
29
+ apply() {
30
+ this.updateGlobalModel();
31
+ this.panelControl.close();
32
+ }
33
+ reset() {
34
+ this._selectionModel.reset();
35
+ }
36
+ close() {
37
+ this.panelControl.close();
38
+ }
39
+ updateGlobalModel() {
40
+ this.globalSelectionModel.updateSelection(this._selectionModel.model);
41
+ }
42
+ handleSelectionChanges() {
43
+ this._selectionModel.modelChanges$
44
+ .pipe(untilDestroyed(this))
45
+ .subscribe((model) => this._countResults$.next(model));
46
+ }
47
+ handleCountResultsEvent() {
48
+ this._countResults$
49
+ .pipe(filter(() => this.countResults instanceof Function))
50
+ .pipe(switchMap((model) => {
51
+ const filters = WlcmFiltersUtils.modelToQueryFilters(model);
52
+ return this.countResults(filters).pipe(auditTime(300), WlcmStreamUtils.loadingDetector(this.loading$));
53
+ }))
54
+ .subscribe((totalResults) => this.totalResults$.next(totalResults));
55
+ }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersPanelComponent, deps: [{ token: i0.Injector }, { token: i1.WlcmFiltersTriggerControl }, { token: i1.WlcmFiltersSelectionModel, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmFiltersPanelComponent, selector: "wlcm-filters-panel", inputs: { countResults: "countResults", filtersContent: "filtersContent" }, providers: [
58
+ {
59
+ provide: WlcmFiltersSelectionModel,
60
+ useFactory: () => inject(WlcmFiltersSelectionModel, { skipSelf: true }).clone(),
61
+ },
62
+ ], ngImport: i0, template: "<div class=\"wlcm-filters-panel\">\n <div class=\"wlcm-filters-panel-header\">\n <h4 class=\"filters-panel__title\">Filters</h4>\n\n <wlcm-close-icon\n (click)=\"close()\"\n class=\"wlcm-cursor-pointer\"\n ></wlcm-close-icon>\n </div>\n\n <div class=\"wlcm-filters-panel-units\">\n <ng-container\n *ngTemplateOutlet=\"filtersContent; injector: injector\"\n ></ng-container>\n </div>\n\n <div class=\"wlcm-filters-panel-actions\">\n <wlcm-button type=\"borderless\" (clicked)=\"reset()\">Reset All</wlcm-button>\n\n <wlcm-button\n (clicked)=\"apply()\"\n *rxLet=\"loading$ | async as isLoading\"\n [isLoading]=\"isLoading\"\n >\n Show\n\n <ng-container *rxLet=\"totalResults$ | async as totalResults\">\n <ng-container *ngIf=\"totalResults !== null && !isLoading\">\n ({{ totalResults }})\n </ng-container>\n </ng-container>\n </wlcm-button>\n </div>\n</div>\n", styles: [":host{width:100%;display:block}\n"], dependencies: [{ kind: "directive", type: i2.RxLet, selector: "[rxLet]", inputs: ["rxLet", "rxLetStrategy", "rxLetComplete", "rxLetError", "rxLetSuspense", "rxLetContextTrigger", "rxLetCompleteTrigger", "rxLetErrorTrigger", "rxLetSuspenseTrigger", "rxLetNextTrigger", "rxLetRenderCallback", "rxLetParent", "rxLetPatchZone"], outputs: ["rendered"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.WlcmButtonComponent, selector: "wlcm-button", inputs: ["type", "size", "isDisabled", "isLoading"], outputs: ["clicked"] }, { kind: "component", type: i5.CloseIconComponent, selector: "wlcm-close-icon" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
63
+ };
64
+ WlcmFiltersPanelComponent = __decorate([
65
+ UntilDestroy(),
66
+ __metadata("design:paramtypes", [Injector,
67
+ WlcmFiltersTriggerControl,
68
+ WlcmFiltersSelectionModel])
69
+ ], WlcmFiltersPanelComponent);
70
+ export { WlcmFiltersPanelComponent };
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersPanelComponent, decorators: [{
72
+ type: Component,
73
+ args: [{ selector: 'wlcm-filters-panel', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
74
+ {
75
+ provide: WlcmFiltersSelectionModel,
76
+ useFactory: () => inject(WlcmFiltersSelectionModel, { skipSelf: true }).clone(),
77
+ },
78
+ ], template: "<div class=\"wlcm-filters-panel\">\n <div class=\"wlcm-filters-panel-header\">\n <h4 class=\"filters-panel__title\">Filters</h4>\n\n <wlcm-close-icon\n (click)=\"close()\"\n class=\"wlcm-cursor-pointer\"\n ></wlcm-close-icon>\n </div>\n\n <div class=\"wlcm-filters-panel-units\">\n <ng-container\n *ngTemplateOutlet=\"filtersContent; injector: injector\"\n ></ng-container>\n </div>\n\n <div class=\"wlcm-filters-panel-actions\">\n <wlcm-button type=\"borderless\" (clicked)=\"reset()\">Reset All</wlcm-button>\n\n <wlcm-button\n (clicked)=\"apply()\"\n *rxLet=\"loading$ | async as isLoading\"\n [isLoading]=\"isLoading\"\n >\n Show\n\n <ng-container *rxLet=\"totalResults$ | async as totalResults\">\n <ng-container *ngIf=\"totalResults !== null && !isLoading\">\n ({{ totalResults }})\n </ng-container>\n </ng-container>\n </wlcm-button>\n </div>\n</div>\n", styles: [":host{width:100%;display:block}\n"] }]
79
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.WlcmFiltersTriggerControl }, { type: i1.WlcmFiltersSelectionModel, decorators: [{
80
+ type: SkipSelf
81
+ }] }], propDecorators: { countResults: [{
82
+ type: Input
83
+ }], filtersContent: [{
84
+ type: Input
85
+ }] } });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2ZpbHRlcnMvc3JjL2xpYi9maWx0ZXJzL2NvbXBvbmVudHMvZmlsdGVycy1wYW5lbC9maWx0ZXJzLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL2ZpbHRlcnMvY29tcG9uZW50cy9maWx0ZXJzLXBhbmVsL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixLQUFLLEVBRUwsUUFBUSxFQUNSLFdBQVcsRUFDWCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLHlCQUF5QixFQUN6Qix5QkFBeUIsR0FDMUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFlNUQsSUFBTSx5QkFBeUIsR0FBL0IsTUFBTSx5QkFBeUI7SUFhcEMsWUFDWSxRQUFrQixFQUNwQixZQUF1QyxFQUMzQixvQkFBK0M7UUFGekQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBMkI7UUFDM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEyQjtRQVg1RCxhQUFRLEdBQTZCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhFLGtCQUFhLEdBQW1DLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUUxRixvQkFBZSxHQUE4QixNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUUvRSxtQkFBYyxHQUE4QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBT2hFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYTthQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFCLFNBQVMsQ0FBQyxDQUFDLEtBQXVCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVPLHVCQUF1QjtRQUM3QixJQUFJLENBQUMsY0FBYzthQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLFlBQVksUUFBUSxDQUFDLENBQUM7YUFDekQsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFDLEtBQXVCLEVBQUUsRUFBRTtZQUNwQyxNQUFNLE9BQU8sR0FBaUIsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFMUUsT0FBUSxJQUFJLENBQUMsWUFBK0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3hELFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFDZCxlQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDL0MsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxDQUFDLENBQUMsWUFBb0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDOzhHQWhFVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qix5SEFQekI7WUFDVDtnQkFDRSxPQUFPLEVBQUUseUJBQXlCO2dCQUNsQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFO2FBQ2hGO1NBQ0YsMEJDaENILGs4QkFrQ0E7O0FEQWEseUJBQXlCO0lBYnJDLFlBQVksRUFBRTtxQ0EyQlMsUUFBUTtRQUNOLHlCQUF5QjtRQUNMLHlCQUF5QjtHQWhCMUQseUJBQXlCLENBaUVyQzs7MkZBakVZLHlCQUF5QjtrQkFackMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUseUJBQXlCOzRCQUNsQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFO3lCQUNoRjtxQkFDRjs7MEJBa0JFLFFBQVE7eUNBZkYsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvdW50UmVzdWx0c0ZuLFxuICBXbGNtRmlsdGVyc01vZGVsLFxuICBXbGNtRmlsdGVyc1RyaWdnZXJDb250cm9sLFxuICBXbGNtRmlsdGVyc1NlbGVjdGlvbk1vZGVsLFxufSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsdGVycy5tb2RlbHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBhdWRpdFRpbWUsIGZpbHRlciwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IFdsY21GaWx0ZXJzVXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy9maWx0ZXJzLnV0aWxzJztcbmltcG9ydCB7IFF1ZXJ5RmlsdGVycywgV2xjbVN0cmVhbVV0aWxzIH0gZnJvbSAnQHdsY20vYW5ndWxhci9jb3JlJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3bGNtLWZpbHRlcnMtcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVycy1wYW5lbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFdsY21GaWx0ZXJzU2VsZWN0aW9uTW9kZWwsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiBpbmplY3QoV2xjbUZpbHRlcnNTZWxlY3Rpb25Nb2RlbCwgeyBza2lwU2VsZjogdHJ1ZSB9KS5jbG9uZSgpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdsY21GaWx0ZXJzUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjb3VudFJlc3VsdHM/OiBDb3VudFJlc3VsdHNGbjtcblxuICBASW5wdXQoKSBmaWx0ZXJzQ29udGVudCE6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIHJlYWRvbmx5IGxvYWRpbmckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICByZWFkb25seSB0b3RhbFJlc3VsdHMkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgX3NlbGVjdGlvbk1vZGVsOiBXbGNtRmlsdGVyc1NlbGVjdGlvbk1vZGVsID0gaW5qZWN0KFdsY21GaWx0ZXJzU2VsZWN0aW9uTW9kZWwpO1xuXG4gIHByaXZhdGUgX2NvdW50UmVzdWx0cyQ6IFN1YmplY3Q8V2xjbUZpbHRlcnNNb2RlbD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBwYW5lbENvbnRyb2w6IFdsY21GaWx0ZXJzVHJpZ2dlckNvbnRyb2wsXG4gICAgQFNraXBTZWxmKCkgcHJpdmF0ZSBnbG9iYWxTZWxlY3Rpb25Nb2RlbDogV2xjbUZpbHRlcnNTZWxlY3Rpb25Nb2RlbFxuICApIHtcbiAgICB0aGlzLmhhbmRsZUNvdW50UmVzdWx0c0V2ZW50KCk7XG4gICAgdGhpcy5oYW5kbGVTZWxlY3Rpb25DaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb3VudFJlc3VsdHMkLm5leHQodGhpcy5fc2VsZWN0aW9uTW9kZWwubW9kZWwpO1xuICB9XG5cbiAgYXBwbHkoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVHbG9iYWxNb2RlbCgpO1xuXG4gICAgdGhpcy5wYW5lbENvbnRyb2wuY2xvc2UoKTtcbiAgfVxuXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnJlc2V0KCk7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBhbmVsQ29udHJvbC5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVHbG9iYWxNb2RlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmdsb2JhbFNlbGVjdGlvbk1vZGVsLnVwZGF0ZVNlbGVjdGlvbih0aGlzLl9zZWxlY3Rpb25Nb2RlbC5tb2RlbCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNlbGVjdGlvbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwubW9kZWxDaGFuZ2VzJFxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChtb2RlbDogV2xjbUZpbHRlcnNNb2RlbCkgPT4gdGhpcy5fY291bnRSZXN1bHRzJC5uZXh0KG1vZGVsKSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNvdW50UmVzdWx0c0V2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuX2NvdW50UmVzdWx0cyRcbiAgICAgIC5waXBlKGZpbHRlcigoKSA9PiB0aGlzLmNvdW50UmVzdWx0cyBpbnN0YW5jZW9mIEZ1bmN0aW9uKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKG1vZGVsOiBXbGNtRmlsdGVyc01vZGVsKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsdGVyczogUXVlcnlGaWx0ZXJzID0gV2xjbUZpbHRlcnNVdGlscy5tb2RlbFRvUXVlcnlGaWx0ZXJzKG1vZGVsKTtcblxuICAgICAgICAgIHJldHVybiAodGhpcy5jb3VudFJlc3VsdHMgYXMgQ291bnRSZXN1bHRzRm4pKGZpbHRlcnMpLnBpcGUoXG4gICAgICAgICAgICBhdWRpdFRpbWUoMzAwKSxcbiAgICAgICAgICAgIFdsY21TdHJlYW1VdGlscy5sb2FkaW5nRGV0ZWN0b3IodGhpcy5sb2FkaW5nJClcbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodG90YWxSZXN1bHRzOiBudW1iZXIpID0+IHRoaXMudG90YWxSZXN1bHRzJC5uZXh0KHRvdGFsUmVzdWx0cykpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwid2xjbS1maWx0ZXJzLXBhbmVsXCI+XG4gIDxkaXYgY2xhc3M9XCJ3bGNtLWZpbHRlcnMtcGFuZWwtaGVhZGVyXCI+XG4gICAgPGg0IGNsYXNzPVwiZmlsdGVycy1wYW5lbF9fdGl0bGVcIj5GaWx0ZXJzPC9oND5cblxuICAgIDx3bGNtLWNsb3NlLWljb25cbiAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgIGNsYXNzPVwid2xjbS1jdXJzb3ItcG9pbnRlclwiXG4gICAgPjwvd2xjbS1jbG9zZS1pY29uPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwid2xjbS1maWx0ZXJzLXBhbmVsLXVuaXRzXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWx0ZXJzQ29udGVudDsgaW5qZWN0b3I6IGluamVjdG9yXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ3bGNtLWZpbHRlcnMtcGFuZWwtYWN0aW9uc1wiPlxuICAgIDx3bGNtLWJ1dHRvbiB0eXBlPVwiYm9yZGVybGVzc1wiIChjbGlja2VkKT1cInJlc2V0KClcIj5SZXNldCBBbGw8L3dsY20tYnV0dG9uPlxuXG4gICAgPHdsY20tYnV0dG9uXG4gICAgICAoY2xpY2tlZCk9XCJhcHBseSgpXCJcbiAgICAgICpyeExldD1cImxvYWRpbmckIHwgYXN5bmMgYXMgaXNMb2FkaW5nXCJcbiAgICAgIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCJcbiAgICA+XG4gICAgICBTaG93XG5cbiAgICAgIDxuZy1jb250YWluZXIgKnJ4TGV0PVwidG90YWxSZXN1bHRzJCB8IGFzeW5jIGFzIHRvdGFsUmVzdWx0c1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG90YWxSZXN1bHRzICE9PSBudWxsICYmICFpc0xvYWRpbmdcIj5cbiAgICAgICAgICAoe3sgdG90YWxSZXN1bHRzIH19KVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvd2xjbS1idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,55 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { WlcmFiltersSelectionModel } from '../../models/filters.models';
3
+ import { map } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../models/filters.models";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/material/expansion";
8
+ import * as i4 from "@angular/material/checkbox";
9
+ import * as i5 from "@wlcm/angular/core";
10
+ import * as i6 from "../../pipes/is-filters-param-checked.pipe";
11
+ export class WlcmFiltersUnitComponent {
12
+ constructor(selectionModel) {
13
+ this.selectionModel = selectionModel;
14
+ this.label = '';
15
+ this.param = '';
16
+ this.options = [];
17
+ }
18
+ ngOnInit() {
19
+ this.initializeFiltersUnit();
20
+ }
21
+ reset() {
22
+ this.filtersUnit.reset();
23
+ }
24
+ change(event) {
25
+ if (event.checked) {
26
+ this.filtersUnit.add(event.source.value);
27
+ }
28
+ else {
29
+ this.filtersUnit.remove(event.source.value);
30
+ }
31
+ }
32
+ initializeFiltersUnit() {
33
+ if (this.selectionModel.has(this.param)) {
34
+ this.filtersUnit = this.selectionModel.get(this.param);
35
+ }
36
+ else {
37
+ this.filtersUnit = this.selectionModel.createUnit(this.param);
38
+ this.selectionModel.add(this.param, this.filtersUnit, false);
39
+ }
40
+ this.dataChanges$ = this.filtersUnit.dataChanges$.pipe(map((data) => new Set(data)));
41
+ }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersUnitComponent, deps: [{ token: i1.WlcmFiltersSelectionModel }], target: i0.ɵɵFactoryTarget.Component }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmFiltersUnitComponent, selector: "wlcm-filters-unit", inputs: { label: "label", param: "param", options: "options" }, ngImport: i0, template: "<mat-expansion-panel class=\"wlcm-filters-unit\" hideToggle>\n <mat-expansion-panel-header collapsedHeight=\"30px\" expandedHeight=\"30px\">\n <div class=\"wlcm-filters-unit-header\">\n <section>\n <span class=\"wlcm-filters-unit-header__label\">{{ label }}</span>\n\n <div\n class=\"wlcm-entities-count\"\n *ngIf=\"(dataChanges$ | async)!.size as size\"\n >\n {{ size }}\n </div>\n </section>\n\n <section>\n <button\n class=\"reset-btn cursor-pointer\"\n (click)=\"reset(); $event.stopPropagation()\"\n *ngIf=\"(dataChanges$ | async)!.size > 0\"\n >\n Reset\n </button>\n\n <wlcm-chevron-down-icon\n class=\"wlcm-filters-unit__chevron\"\n ></wlcm-chevron-down-icon>\n </section>\n </div>\n </mat-expansion-panel-header>\n\n <div class=\"wlcm-filters-unit-checkboxes\">\n <ng-container *ngFor=\"let option of options\">\n <mat-checkbox\n [value]=\"$any(option.value)\"\n [checked]=\"(dataChanges$ | async)! | isFiltersParamChecked\"\n (change)=\"change($event)\"\n >\n {{ option.viewValue }}\n </mat-checkbox>\n </ng-container>\n </div>\n</mat-expansion-panel>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5.ChevronDownIconComponent, selector: "wlcm-chevron-down-icon" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.IsFiltersParamCheckedPipe, name: "isFiltersParamChecked" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersUnitComponent, decorators: [{
46
+ type: Component,
47
+ args: [{ selector: 'wlcm-filters-unit', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-expansion-panel class=\"wlcm-filters-unit\" hideToggle>\n <mat-expansion-panel-header collapsedHeight=\"30px\" expandedHeight=\"30px\">\n <div class=\"wlcm-filters-unit-header\">\n <section>\n <span class=\"wlcm-filters-unit-header__label\">{{ label }}</span>\n\n <div\n class=\"wlcm-entities-count\"\n *ngIf=\"(dataChanges$ | async)!.size as size\"\n >\n {{ size }}\n </div>\n </section>\n\n <section>\n <button\n class=\"reset-btn cursor-pointer\"\n (click)=\"reset(); $event.stopPropagation()\"\n *ngIf=\"(dataChanges$ | async)!.size > 0\"\n >\n Reset\n </button>\n\n <wlcm-chevron-down-icon\n class=\"wlcm-filters-unit__chevron\"\n ></wlcm-chevron-down-icon>\n </section>\n </div>\n </mat-expansion-panel-header>\n\n <div class=\"wlcm-filters-unit-checkboxes\">\n <ng-container *ngFor=\"let option of options\">\n <mat-checkbox\n [value]=\"$any(option.value)\"\n [checked]=\"(dataChanges$ | async)! | isFiltersParamChecked\"\n (change)=\"change($event)\"\n >\n {{ option.viewValue }}\n </mat-checkbox>\n </ng-container>\n </div>\n</mat-expansion-panel>\n", styles: [":host{display:block}\n"] }]
48
+ }], ctorParameters: () => [{ type: i1.WlcmFiltersSelectionModel }], propDecorators: { label: [{
49
+ type: Input
50
+ }], param: [{
51
+ type: Input
52
+ }], options: [{
53
+ type: Input
54
+ }] } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy11bml0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL2ZpbHRlcnMvY29tcG9uZW50cy9maWx0ZXJzLXVuaXQvZmlsdGVycy11bml0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL2ZpbHRlcnMvY29tcG9uZW50cy9maWx0ZXJzLXVuaXQvZmlsdGVycy11bml0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx5QkFBeUIsRUFBbUIsTUFBTSw2QkFBNkIsQ0FBQztBQUd6RixPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVF2QyxNQUFNLE9BQU8sd0JBQXdCO0lBV25DLFlBQW9CLGNBQXlDO1FBQXpDLG1CQUFjLEdBQWQsY0FBYyxDQUEyQjtRQVZwRCxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5CLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFbkIsWUFBTyxHQUFpQixFQUFFLENBQUM7SUFNNEIsQ0FBQztJQUVqRSxRQUFRO1FBQ04sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBd0I7UUFDN0IsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTlELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakcsQ0FBQzs4R0F2Q1Usd0JBQXdCO2tHQUF4Qix3QkFBd0IseUhDWnJDLCt2Q0EwQ0E7OzJGRDlCYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU07OEZBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2xjbUZpbHRlcnNTZWxlY3Rpb25Nb2RlbCwgV2xjbUZpbHRlcnNVbml0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbHRlcnMubW9kZWxzJztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgV2xjbU9wdGlvbiB9IGZyb20gJ0B3bGNtL2FuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2xjbS1maWx0ZXJzLXVuaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVycy11bml0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVycy11bml0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtRmlsdGVyc1VuaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KCkgcGFyYW06IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFdsY21PcHRpb25bXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBmaWx0ZXJzVW5pdCE6IFdsY21GaWx0ZXJzVW5pdDtcblxuICBwcm90ZWN0ZWQgZGF0YUNoYW5nZXMkITogT2JzZXJ2YWJsZTxTZXQ8c3RyaW5nPj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZWxlY3Rpb25Nb2RlbDogV2xjbUZpbHRlcnNTZWxlY3Rpb25Nb2RlbCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVGaWx0ZXJzVW5pdCgpO1xuICB9XG5cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJzVW5pdC5yZXNldCgpO1xuICB9XG5cbiAgY2hhbmdlKGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSk6IHZvaWQge1xuICAgIGlmIChldmVudC5jaGVja2VkKSB7XG4gICAgICB0aGlzLmZpbHRlcnNVbml0LmFkZChldmVudC5zb3VyY2UudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcnNVbml0LnJlbW92ZShldmVudC5zb3VyY2UudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUZpbHRlcnNVbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLmhhcyh0aGlzLnBhcmFtKSkge1xuICAgICAgdGhpcy5maWx0ZXJzVW5pdCA9IHRoaXMuc2VsZWN0aW9uTW9kZWwuZ2V0KHRoaXMucGFyYW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcnNVbml0ID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5jcmVhdGVVbml0KHRoaXMucGFyYW0pO1xuXG4gICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmFkZCh0aGlzLnBhcmFtLCB0aGlzLmZpbHRlcnNVbml0LCBmYWxzZSk7XG4gICAgfVxuXG4gICAgdGhpcy5kYXRhQ2hhbmdlcyQgPSB0aGlzLmZpbHRlcnNVbml0LmRhdGFDaGFuZ2VzJC5waXBlKG1hcCgoZGF0YTogc3RyaW5nW10pID0+IG5ldyBTZXQoZGF0YSkpKTtcbiAgfVxufVxuIiwiPG1hdC1leHBhbnNpb24tcGFuZWwgY2xhc3M9XCJ3bGNtLWZpbHRlcnMtdW5pdFwiIGhpZGVUb2dnbGU+XG4gIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciBjb2xsYXBzZWRIZWlnaHQ9XCIzMHB4XCIgZXhwYW5kZWRIZWlnaHQ9XCIzMHB4XCI+XG4gICAgPGRpdiBjbGFzcz1cIndsY20tZmlsdGVycy11bml0LWhlYWRlclwiPlxuICAgICAgPHNlY3Rpb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2xjbS1maWx0ZXJzLXVuaXQtaGVhZGVyX19sYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIndsY20tZW50aXRpZXMtY291bnRcIlxuICAgICAgICAgICpuZ0lmPVwiKGRhdGFDaGFuZ2VzJCB8IGFzeW5jKSEuc2l6ZSBhcyBzaXplXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHNpemUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIDxzZWN0aW9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJyZXNldC1idG4gY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgIChjbGljayk9XCJyZXNldCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICpuZ0lmPVwiKGRhdGFDaGFuZ2VzJCB8IGFzeW5jKSEuc2l6ZSA+IDBcIlxuICAgICAgICA+XG4gICAgICAgICAgUmVzZXRcbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPHdsY20tY2hldnJvbi1kb3duLWljb25cbiAgICAgICAgICBjbGFzcz1cIndsY20tZmlsdGVycy11bml0X19jaGV2cm9uXCJcbiAgICAgICAgPjwvd2xjbS1jaGV2cm9uLWRvd24taWNvbj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cblxuICA8ZGl2IGNsYXNzPVwid2xjbS1maWx0ZXJzLXVuaXQtY2hlY2tib3hlc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCI+XG4gICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgIFt2YWx1ZV09XCIkYW55KG9wdGlvbi52YWx1ZSlcIlxuICAgICAgICBbY2hlY2tlZF09XCIoZGF0YUNoYW5nZXMkIHwgYXN5bmMpISB8IGlzRmlsdGVyc1BhcmFtQ2hlY2tlZFwiXG4gICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICB7eyBvcHRpb24udmlld1ZhbHVlIH19XG4gICAgICA8L21hdC1jaGVja2JveD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L21hdC1leHBhbnNpb24tcGFuZWw+XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class WlcmFiltersContentDirective {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: WlcmFiltersContentDirective, selector: "[wlcmFiltersContent]", ngImport: i0 }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersContentDirective, decorators: [{
8
+ type: Directive,
9
+ args: [{ selector: '[wlcmFiltersContent]' }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1jb250ZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL2ZpbHRlcnMvZGlyZWN0aXZlcy9maWx0ZXJzLWNvbnRlbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzFDLE1BQU0sT0FBTywyQkFBMkI7OEdBQTNCLDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUR2QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1t3bGNtRmlsdGVyc0NvbnRlbnRdJyB9KVxuZXhwb3J0IGNsYXNzIFdsY21GaWx0ZXJzQ29udGVudERpcmVjdGl2ZSB7fVxuIl19
@@ -0,0 +1,69 @@
1
+ import { Directive, ElementRef, HostListener, Injector, Input, ViewContainerRef } from '@angular/core';
2
+ import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';
3
+ import { FiltersDefaultSelectionModel } from '../models/filters-default-selection-model';
4
+ import { WlcmFiltersSelectionModel, WlcmFiltersTriggerControl } from '../models/filters.models';
5
+ import { WlcmFiltersComponent } from '../components/filters/filters.component';
6
+ import { FiltersTriggerBase } from '../models/filters-trigger.base';
7
+ import { TemplatePortal } from '@angular/cdk/portal';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/cdk/overlay";
10
+ import * as i2 from "../models/filters.models";
11
+ export class WlcmFiltersTriggerDirective extends FiltersTriggerBase {
12
+ openPanel() {
13
+ if (this.overlayRef instanceof OverlayRef)
14
+ return;
15
+ const config = this.createOverlayConfig();
16
+ const injector = this.createInjector();
17
+ this.overlayRef = this.overlay.create(config);
18
+ this.overlayRef.attach(new TemplatePortal(this.panel.templateRef, this.viewContainerRef, null, injector));
19
+ }
20
+ constructor(overlay, injector, elementRef, viewContainerRef, selectionModel) {
21
+ super(selectionModel);
22
+ this.overlay = overlay;
23
+ this.injector = injector;
24
+ this.elementRef = elementRef;
25
+ this.viewContainerRef = viewContainerRef;
26
+ this.selectionModel = selectionModel;
27
+ this.overlayRef = null;
28
+ this.handleModelChanges();
29
+ }
30
+ close() {
31
+ this.overlayRef?.dispose();
32
+ this.overlayRef = null;
33
+ }
34
+ createInjector() {
35
+ return Injector.create({
36
+ providers: [
37
+ { provide: WlcmFiltersSelectionModel, useValue: this.selectionModel },
38
+ { provide: WlcmFiltersTriggerControl, useValue: { close: this.close.bind(this) } },
39
+ ],
40
+ parent: this.injector,
41
+ });
42
+ }
43
+ createOverlayConfig() {
44
+ const strategy = this.overlay.position().flexibleConnectedTo(this.elementRef);
45
+ strategy.withPositions([{ originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' }]);
46
+ strategy.withDefaultOffsetY(5);
47
+ return new OverlayConfig({
48
+ width: '300px',
49
+ positionStrategy: strategy,
50
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
51
+ });
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersTriggerDirective, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i2.WlcmFiltersSelectionModel }], target: i0.ɵɵFactoryTarget.Directive }); }
54
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: WlcmFiltersTriggerDirective, selector: "[wlcmFiltersTrigger]", inputs: { panel: ["wlcmFiltersTrigger", "panel"] }, host: { listeners: { "click": "openPanel()" } }, providers: [{ provide: WlcmFiltersSelectionModel, useClass: FiltersDefaultSelectionModel }], usesInheritance: true, ngImport: i0 }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersTriggerDirective, decorators: [{
57
+ type: Directive,
58
+ args: [{
59
+ selector: '[wlcmFiltersTrigger]',
60
+ providers: [{ provide: WlcmFiltersSelectionModel, useClass: FiltersDefaultSelectionModel }],
61
+ }]
62
+ }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.Injector }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i2.WlcmFiltersSelectionModel }], propDecorators: { panel: [{
63
+ type: Input,
64
+ args: ['wlcmFiltersTrigger']
65
+ }], openPanel: [{
66
+ type: HostListener,
67
+ args: ['click']
68
+ }] } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL2ZpbHRlcnMvZGlyZWN0aXZlcy9maWx0ZXJzLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBcUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFNckQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGtCQUFrQjtJQUcxQyxTQUFTO1FBQzlCLElBQUksSUFBSSxDQUFDLFVBQVUsWUFBWSxVQUFVO1lBQUUsT0FBTztRQUVsRCxNQUFNLE1BQU0sR0FBa0IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFekQsTUFBTSxRQUFRLEdBQWEsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRWpELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFJRCxZQUNVLE9BQWdCLEVBQ2hCLFFBQWtCLEVBQ2xCLFVBQXNCLEVBQ3RCLGdCQUFrQyxFQUN2QixjQUF5QztRQUU1RCxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFOZCxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3ZCLG1CQUFjLEdBQWQsY0FBYyxDQUEyQjtRQVB0RCxlQUFVLEdBQXNCLElBQUksQ0FBQztRQVczQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3JCLFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDckUsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7YUFDbkY7WUFDRCxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixNQUFNLFFBQVEsR0FBc0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFakgsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVsRyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFL0IsT0FBTyxJQUFJLGFBQWEsQ0FBQztZQUN2QixLQUFLLEVBQUUsT0FBTztZQUNkLGdCQUFnQixFQUFFLFFBQVE7WUFDMUIsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFO1NBQzNELENBQUMsQ0FBQztJQUNMLENBQUM7OEdBekRVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLG9KQUYzQixDQUFDLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSw0QkFBNEIsRUFBRSxDQUFDOzsyRkFFaEYsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSw0QkFBNEIsRUFBRSxDQUFDO2lCQUM1RjttTUFFOEIsS0FBSztzQkFBakMsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBRUosU0FBUztzQkFBL0IsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yLCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LCBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgRmlsdGVyc0RlZmF1bHRTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9maWx0ZXJzLWRlZmF1bHQtc2VsZWN0aW9uLW1vZGVsJztcbmltcG9ydCB7IFdsY21GaWx0ZXJzU2VsZWN0aW9uTW9kZWwsIFdsY21GaWx0ZXJzVHJpZ2dlckNvbnRyb2wgfSBmcm9tICcuLi9tb2RlbHMvZmlsdGVycy5tb2RlbHMnO1xuaW1wb3J0IHsgV2xjbUZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsdGVyc1RyaWdnZXJCYXNlIH0gZnJvbSAnLi4vbW9kZWxzL2ZpbHRlcnMtdHJpZ2dlci5iYXNlJztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3bGNtRmlsdGVyc1RyaWdnZXJdJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBXbGNtRmlsdGVyc1NlbGVjdGlvbk1vZGVsLCB1c2VDbGFzczogRmlsdGVyc0RlZmF1bHRTZWxlY3Rpb25Nb2RlbCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbUZpbHRlcnNUcmlnZ2VyRGlyZWN0aXZlIGV4dGVuZHMgRmlsdGVyc1RyaWdnZXJCYXNlIHtcbiAgQElucHV0KCd3bGNtRmlsdGVyc1RyaWdnZXInKSBwYW5lbCE6IFdsY21GaWx0ZXJzQ29tcG9uZW50O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJykgb3BlblBhbmVsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYgaW5zdGFuY2VvZiBPdmVybGF5UmVmKSByZXR1cm47XG5cbiAgICBjb25zdCBjb25maWc6IE92ZXJsYXlDb25maWcgPSB0aGlzLmNyZWF0ZU92ZXJsYXlDb25maWcoKTtcblxuICAgIGNvbnN0IGluamVjdG9yOiBJbmplY3RvciA9IHRoaXMuY3JlYXRlSW5qZWN0b3IoKTtcblxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoY29uZmlnKTtcblxuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMucGFuZWwudGVtcGxhdGVSZWYsIHRoaXMudmlld0NvbnRhaW5lclJlZiwgbnVsbCwgaW5qZWN0b3IpKTtcbiAgfVxuXG4gIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzZWxlY3Rpb25Nb2RlbDogV2xjbUZpbHRlcnNTZWxlY3Rpb25Nb2RlbFxuICApIHtcbiAgICBzdXBlcihzZWxlY3Rpb25Nb2RlbCk7XG5cbiAgICB0aGlzLmhhbmRsZU1vZGVsQ2hhbmdlcygpO1xuICB9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbmplY3RvcigpOiBJbmplY3RvciB7XG4gICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBXbGNtRmlsdGVyc1NlbGVjdGlvbk1vZGVsLCB1c2VWYWx1ZTogdGhpcy5zZWxlY3Rpb25Nb2RlbCB9LFxuICAgICAgICB7IHByb3ZpZGU6IFdsY21GaWx0ZXJzVHJpZ2dlckNvbnRyb2wsIHVzZVZhbHVlOiB7IGNsb3NlOiB0aGlzLmNsb3NlLmJpbmQodGhpcykgfSB9LFxuICAgICAgXSxcbiAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheUNvbmZpZygpOiBPdmVybGF5Q29uZmlnIHtcbiAgICBjb25zdCBzdHJhdGVneTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsZW1lbnRSZWYpO1xuXG4gICAgc3RyYXRlZ3kud2l0aFBvc2l0aW9ucyhbeyBvcmlnaW5YOiAnZW5kJywgb3JpZ2luWTogJ2JvdHRvbScsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICd0b3AnIH1dKTtcblxuICAgIHN0cmF0ZWd5LndpdGhEZWZhdWx0T2Zmc2V0WSg1KTtcblxuICAgIHJldHVybiBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICB3aWR0aDogJzMwMHB4JyxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHN0cmF0ZWd5LFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,53 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { WlcmFiltersComponent } from './components/filters/filters.component';
4
+ import { WlcmFiltersTriggerDirective } from './directives/filters-trigger.directive';
5
+ import { WlcmFiltersUnitComponent } from './components/filters-unit/filters-unit.component';
6
+ import { WlcmFiltersPanelComponent } from './components/filters-panel/filters-panel.component';
7
+ import { WlcmFiltersContentDirective } from './directives/filters-content.directive';
8
+ import { MatExpansionModule } from '@angular/material/expansion';
9
+ import { MatCheckboxModule } from '@angular/material/checkbox';
10
+ import { IsFiltersParamCheckedPipe } from './pipes/is-filters-param-checked.pipe';
11
+ import { WlcmTotalFiltersAppliedPipe } from './pipes/total-filters-applied.pipe';
12
+ import { ChevronDownIconComponent, CloseIconComponent } from '@wlcm/angular/core';
13
+ import { WlcmButtonComponent } from '@wlcm/angular/button';
14
+ import { WlcmFiltersButtonComponent } from './components/filters-button/filters-button.component';
15
+ import { RxLet } from '@rx-angular/template/let';
16
+ import * as i0 from "@angular/core";
17
+ const publicComponents = [WlcmFiltersComponent, WlcmFiltersUnitComponent, WlcmFiltersButtonComponent];
18
+ const publicDirectives = [WlcmFiltersTriggerDirective, WlcmFiltersContentDirective];
19
+ export class WlcmFiltersModule {
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersModule, declarations: [WlcmFiltersComponent, WlcmFiltersUnitComponent, WlcmFiltersButtonComponent, WlcmFiltersTriggerDirective, WlcmFiltersContentDirective, WlcmFiltersPanelComponent, IsFiltersParamCheckedPipe], imports: [RxLet,
22
+ CommonModule,
23
+ MatExpansionModule,
24
+ MatCheckboxModule,
25
+ WlcmTotalFiltersAppliedPipe,
26
+ ChevronDownIconComponent,
27
+ WlcmButtonComponent,
28
+ CloseIconComponent], exports: [WlcmFiltersComponent, WlcmFiltersUnitComponent, WlcmFiltersButtonComponent, WlcmFiltersTriggerDirective, WlcmFiltersContentDirective] }); }
29
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersModule, imports: [CommonModule,
30
+ MatExpansionModule,
31
+ MatCheckboxModule,
32
+ ChevronDownIconComponent,
33
+ WlcmButtonComponent,
34
+ CloseIconComponent] }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFiltersModule, decorators: [{
37
+ type: NgModule,
38
+ args: [{
39
+ imports: [
40
+ RxLet,
41
+ CommonModule,
42
+ MatExpansionModule,
43
+ MatCheckboxModule,
44
+ WlcmTotalFiltersAppliedPipe,
45
+ ChevronDownIconComponent,
46
+ WlcmButtonComponent,
47
+ CloseIconComponent,
48
+ ],
49
+ declarations: [...publicComponents, ...publicDirectives, WlcmFiltersPanelComponent, IsFiltersParamCheckedPipe],
50
+ exports: [...publicComponents, ...publicDirectives],
51
+ }]
52
+ }] });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2ZpbHRlcnMvc3JjL2xpYi9maWx0ZXJzL2ZpbHRlcnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRS9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFakQsTUFBTSxnQkFBZ0IsR0FBb0IsQ0FBQyxvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0FBRXZILE1BQU0sZ0JBQWdCLEdBQW9CLENBQUMsMkJBQTJCLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztBQWdCckcsTUFBTSxPQUFPLGlCQUFpQjs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBbEJhLG9CQUFvQixFQUFFLHdCQUF3QixFQUFFLDBCQUEwQixFQUUxRSwyQkFBMkIsRUFBRSwyQkFBMkIsRUFheEMseUJBQXlCLEVBQUUseUJBQXlCLGFBVDNHLEtBQUs7WUFDTCxZQUFZO1lBQ1osa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUNqQiwyQkFBMkI7WUFDM0Isd0JBQXdCO1lBQ3hCLG1CQUFtQjtZQUNuQixrQkFBa0IsYUFicUIsb0JBQW9CLEVBQUUsd0JBQXdCLEVBQUUsMEJBQTBCLEVBRTFFLDJCQUEyQixFQUFFLDJCQUEyQjsrR0FnQnRGLGlCQUFpQixZQVgxQixZQUFZO1lBQ1osa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUVqQix3QkFBd0I7WUFDeEIsbUJBQW1CO1lBQ25CLGtCQUFrQjs7MkZBS1QsaUJBQWlCO2tCQWQ3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxLQUFLO3dCQUNMLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLDJCQUEyQjt3QkFDM0Isd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLGtCQUFrQjtxQkFDbkI7b0JBQ0QsWUFBWSxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxHQUFHLGdCQUFnQixFQUFFLHlCQUF5QixFQUFFLHlCQUF5QixDQUFDO29CQUM5RyxPQUFPLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixFQUFFLEdBQUcsZ0JBQWdCLENBQUM7aUJBQ3BEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBXbGNtRmlsdGVyc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IFdsY21GaWx0ZXJzVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9maWx0ZXJzLXRyaWdnZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFdsY21GaWx0ZXJzVW5pdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWx0ZXJzLXVuaXQvZmlsdGVycy11bml0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXbGNtRmlsdGVyc1BhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbHRlcnMtcGFuZWwvZmlsdGVycy1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2xjbUZpbHRlcnNDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2ZpbHRlcnMtY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuXG5pbXBvcnQgeyBJc0ZpbHRlcnNQYXJhbUNoZWNrZWRQaXBlIH0gZnJvbSAnLi9waXBlcy9pcy1maWx0ZXJzLXBhcmFtLWNoZWNrZWQucGlwZSc7XG5pbXBvcnQgeyBXbGNtVG90YWxGaWx0ZXJzQXBwbGllZFBpcGUgfSBmcm9tICcuL3BpcGVzL3RvdGFsLWZpbHRlcnMtYXBwbGllZC5waXBlJztcbmltcG9ydCB7IENoZXZyb25Eb3duSWNvbkNvbXBvbmVudCwgQ2xvc2VJY29uQ29tcG9uZW50IH0gZnJvbSAnQHdsY20vYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdsY21CdXR0b25Db21wb25lbnQgfSBmcm9tICdAd2xjbS9hbmd1bGFyL2J1dHRvbic7XG5pbXBvcnQgeyBXbGNtRmlsdGVyc0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWx0ZXJzLWJ1dHRvbi9maWx0ZXJzLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUnhMZXQgfSBmcm9tICdAcngtYW5ndWxhci90ZW1wbGF0ZS9sZXQnO1xuXG5jb25zdCBwdWJsaWNDb21wb25lbnRzOiBUeXBlPHVua25vd24+W10gPSBbV2xjbUZpbHRlcnNDb21wb25lbnQsIFdsY21GaWx0ZXJzVW5pdENvbXBvbmVudCwgV2xjbUZpbHRlcnNCdXR0b25Db21wb25lbnRdO1xuXG5jb25zdCBwdWJsaWNEaXJlY3RpdmVzOiBUeXBlPHVua25vd24+W10gPSBbV2xjbUZpbHRlcnNUcmlnZ2VyRGlyZWN0aXZlLCBXbGNtRmlsdGVyc0NvbnRlbnREaXJlY3RpdmVdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgUnhMZXQsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEV4cGFuc2lvbk1vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICBXbGNtVG90YWxGaWx0ZXJzQXBwbGllZFBpcGUsXG4gICAgQ2hldnJvbkRvd25JY29uQ29tcG9uZW50LFxuICAgIFdsY21CdXR0b25Db21wb25lbnQsXG4gICAgQ2xvc2VJY29uQ29tcG9uZW50LFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFsuLi5wdWJsaWNDb21wb25lbnRzLCAuLi5wdWJsaWNEaXJlY3RpdmVzLCBXbGNtRmlsdGVyc1BhbmVsQ29tcG9uZW50LCBJc0ZpbHRlcnNQYXJhbUNoZWNrZWRQaXBlXSxcbiAgZXhwb3J0czogWy4uLnB1YmxpY0NvbXBvbmVudHMsIC4uLnB1YmxpY0RpcmVjdGl2ZXNdLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtRmlsdGVyc01vZHVsZSB7fVxuIl19
@@ -0,0 +1,56 @@
1
+ import { BehaviorSubject } from 'rxjs';
2
+ import { WlcmFiltersSelectionModel, WlcmFiltersUnit } from './filters.models';
3
+ export class FiltersDefaultSelectionModel extends WlcmFiltersSelectionModel {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.model = {};
7
+ this._modelChanges$ = new BehaviorSubject({ ...this.model });
8
+ this.modelChanges$ = this._modelChanges$.asObservable();
9
+ }
10
+ add(param, unit, wlcmtChanges = true) {
11
+ this.model[param] = unit;
12
+ if (wlcmtChanges) {
13
+ this.notifyChanges();
14
+ }
15
+ }
16
+ has(param) {
17
+ return this.model[param] instanceof WlcmFiltersUnit;
18
+ }
19
+ get(param) {
20
+ return this.model[param];
21
+ }
22
+ createUnit(param) {
23
+ return new WlcmFiltersUnit(param, this);
24
+ }
25
+ updateSelection(model) {
26
+ this.model = this.cloneModel(model, this);
27
+ this.notifyChanges();
28
+ }
29
+ syncUnitChanges() {
30
+ this.notifyChanges();
31
+ }
32
+ clone() {
33
+ const clone = new FiltersDefaultSelectionModel();
34
+ clone.updateSelection({ ...this.model });
35
+ return clone;
36
+ }
37
+ reset() {
38
+ Object.values(this.model).forEach((unit) => unit.reset(true));
39
+ this.notifyChanges();
40
+ }
41
+ get isEmpty() {
42
+ return (Object.keys(this.model).length == 0 ||
43
+ Object.values(this.model).every((unit) => unit.data.length === 0));
44
+ }
45
+ cloneModel(model, parent) {
46
+ const _model = {};
47
+ Object.keys(model).forEach((param) => {
48
+ _model[param] = model[param].clone(parent);
49
+ });
50
+ return _model;
51
+ }
52
+ notifyChanges() {
53
+ this._modelChanges$.next({ ...this.model });
54
+ }
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1kZWZhdWx0LXNlbGVjdGlvbi1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL2ZpbHRlcnMvbW9kZWxzL2ZpbHRlcnMtZGVmYXVsdC1zZWxlY3Rpb24tbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQW9CLHlCQUF5QixFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhHLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSx5QkFBeUI7SUFBM0U7O1FBQ0UsVUFBSyxHQUFxQixFQUFFLENBQUM7UUFFWixtQkFBYyxHQUFzQyxJQUFJLGVBQWUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFbkcsa0JBQWEsR0FBaUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQWtFNUYsQ0FBQztJQWhFQyxHQUFHLENBQUMsS0FBYSxFQUFFLElBQXFCLEVBQUUsZUFBd0IsSUFBSTtRQUNwRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztRQUV6QixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLGVBQWUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLE9BQU8sSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBdUI7UUFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUs7UUFDSCxNQUFNLEtBQUssR0FBOEIsSUFBSSw0QkFBNEIsRUFBRSxDQUFDO1FBRTVFLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUs7UUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLENBQ0wsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUM7WUFDbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBcUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQ25GLENBQUM7SUFDSixDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQXVCLEVBQUUsTUFBaUM7UUFDM0UsTUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQztRQUVwQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQzNDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgV2xjbUZpbHRlcnNNb2RlbCwgV2xjbUZpbHRlcnNTZWxlY3Rpb25Nb2RlbCwgV2xjbUZpbHRlcnNVbml0IH0gZnJvbSAnLi9maWx0ZXJzLm1vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJzRGVmYXVsdFNlbGVjdGlvbk1vZGVsIGV4dGVuZHMgV2xjbUZpbHRlcnNTZWxlY3Rpb25Nb2RlbCB7XG4gIG1vZGVsOiBXbGNtRmlsdGVyc01vZGVsID0ge307XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbW9kZWxDaGFuZ2VzJDogQmVoYXZpb3JTdWJqZWN0PFdsY21GaWx0ZXJzTW9kZWw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7IC4uLnRoaXMubW9kZWwgfSk7XG5cbiAgcmVhZG9ubHkgbW9kZWxDaGFuZ2VzJDogT2JzZXJ2YWJsZTxXbGNtRmlsdGVyc01vZGVsPiA9IHRoaXMuX21vZGVsQ2hhbmdlcyQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgYWRkKHBhcmFtOiBzdHJpbmcsIHVuaXQ6IFdsY21GaWx0ZXJzVW5pdCwgd2xjbXRDaGFuZ2VzOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMubW9kZWxbcGFyYW1dID0gdW5pdDtcblxuICAgIGlmICh3bGNtdENoYW5nZXMpIHtcbiAgICAgIHRoaXMubm90aWZ5Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIGhhcyhwYXJhbTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxbcGFyYW1dIGluc3RhbmNlb2YgV2xjbUZpbHRlcnNVbml0O1xuICB9XG5cbiAgZ2V0KHBhcmFtOiBzdHJpbmcpOiBXbGNtRmlsdGVyc1VuaXQge1xuICAgIHJldHVybiB0aGlzLm1vZGVsW3BhcmFtXTtcbiAgfVxuXG4gIGNyZWF0ZVVuaXQocGFyYW06IHN0cmluZyk6IFdsY21GaWx0ZXJzVW5pdCB7XG4gICAgcmV0dXJuIG5ldyBXbGNtRmlsdGVyc1VuaXQocGFyYW0sIHRoaXMpO1xuICB9XG5cbiAgdXBkYXRlU2VsZWN0aW9uKG1vZGVsOiBXbGNtRmlsdGVyc01vZGVsKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbCA9IHRoaXMuY2xvbmVNb2RlbChtb2RlbCwgdGhpcyk7XG5cbiAgICB0aGlzLm5vdGlmeUNoYW5nZXMoKTtcbiAgfVxuXG4gIHN5bmNVbml0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmeUNoYW5nZXMoKTtcbiAgfVxuXG4gIGNsb25lKCk6IFdsY21GaWx0ZXJzU2VsZWN0aW9uTW9kZWwge1xuICAgIGNvbnN0IGNsb25lOiBXbGNtRmlsdGVyc1NlbGVjdGlvbk1vZGVsID0gbmV3IEZpbHRlcnNEZWZhdWx0U2VsZWN0aW9uTW9kZWwoKTtcblxuICAgIGNsb25lLnVwZGF0ZVNlbGVjdGlvbih7IC4uLnRoaXMubW9kZWwgfSk7XG5cbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cblxuICByZXNldCgpOiB2b2lkIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMubW9kZWwpLmZvckVhY2goKHVuaXQ6IFdsY21GaWx0ZXJzVW5pdCkgPT4gdW5pdC5yZXNldCh0cnVlKSk7XG5cbiAgICB0aGlzLm5vdGlmeUNoYW5nZXMoKTtcbiAgfVxuXG4gIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLm1vZGVsKS5sZW5ndGggPT0gMCB8fFxuICAgICAgT2JqZWN0LnZhbHVlcyh0aGlzLm1vZGVsKS5ldmVyeSgodW5pdDogV2xjbUZpbHRlcnNVbml0KSA9PiB1bml0LmRhdGEubGVuZ3RoID09PSAwKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNsb25lTW9kZWwobW9kZWw6IFdsY21GaWx0ZXJzTW9kZWwsIHBhcmVudDogV2xjbUZpbHRlcnNTZWxlY3Rpb25Nb2RlbCk6IFdsY21GaWx0ZXJzTW9kZWwge1xuICAgIGNvbnN0IF9tb2RlbDogV2xjbUZpbHRlcnNNb2RlbCA9IHt9O1xuXG4gICAgT2JqZWN0LmtleXMobW9kZWwpLmZvckVhY2goKHBhcmFtOiBzdHJpbmcpID0+IHtcbiAgICAgIF9tb2RlbFtwYXJhbV0gPSBtb2RlbFtwYXJhbV0uY2xvbmUocGFyZW50KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBfbW9kZWw7XG4gIH1cblxuICBwcml2YXRlIG5vdGlmeUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kZWxDaGFuZ2VzJC5uZXh0KHsgLi4udGhpcy5tb2RlbCB9KTtcbiAgfVxufVxuIl19