@solidev/data 0.0.1-alpha.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 (167) hide show
  1. package/README.md +7 -0
  2. package/esm2020/lib/auth/auth-interceptor.service.mjs +90 -0
  3. package/esm2020/lib/auth/auth.service.mjs +125 -0
  4. package/esm2020/lib/auth/jwt.mjs +21 -0
  5. package/esm2020/lib/data/data-backend.mjs +106 -0
  6. package/esm2020/lib/data/data-collection.mjs +109 -0
  7. package/esm2020/lib/data/data-collection.mock.mjs +39 -0
  8. package/esm2020/lib/data/data-model.mjs +287 -0
  9. package/esm2020/lib/data/data-parameters.mjs +34 -0
  10. package/esm2020/lib/data/data-query.mjs +147 -0
  11. package/esm2020/lib/data/data-query.mock.mjs +46 -0
  12. package/esm2020/lib/data/fields/base.mjs +142 -0
  13. package/esm2020/lib/data/fields/boolean.mjs +38 -0
  14. package/esm2020/lib/data/fields/datetime.mjs +124 -0
  15. package/esm2020/lib/data/fields/index.mjs +7 -0
  16. package/esm2020/lib/data/fields/numbers.mjs +38 -0
  17. package/esm2020/lib/data/fields/primaryfield.mjs +9 -0
  18. package/esm2020/lib/data/fields/relations.mjs +53 -0
  19. package/esm2020/lib/data/fields/stringfields.mjs +71 -0
  20. package/esm2020/lib/dispedit/choice.pipe.mjs +39 -0
  21. package/esm2020/lib/dispedit/dispedit/dispedit.component.mjs +475 -0
  22. package/esm2020/lib/dispedit/dispedit/dispedit.constants.mjs +2 -0
  23. package/esm2020/lib/dispedit/factor.pipe.mjs +48 -0
  24. package/esm2020/lib/dispedit/factorc.pipe.mjs +50 -0
  25. package/esm2020/lib/dispedit/fkselect/fkselect.component.mjs +142 -0
  26. package/esm2020/lib/dispedit/flags/flags.component.mjs +140 -0
  27. package/esm2020/lib/dispedit/m2mselect/m2mselect.component.mjs +318 -0
  28. package/esm2020/lib/dispedit/richedit/richedit.component.mjs +94 -0
  29. package/esm2020/lib/dispedit/sdelete/sdelete.component.mjs +46 -0
  30. package/esm2020/lib/messages/message-zone/message-zone.component.mjs +57 -0
  31. package/esm2020/lib/messages/message.service.mjs +151 -0
  32. package/esm2020/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +34 -0
  33. package/esm2020/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +63 -0
  34. package/esm2020/lib/modellist/model-list-fields/model-list-fields.mjs +225 -0
  35. package/esm2020/lib/modellist/model-list-filters/filters/filtertypes.mjs +3 -0
  36. package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +108 -0
  37. package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.mjs +28 -0
  38. package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +24 -0
  39. package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.mjs +9 -0
  40. package/esm2020/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +40 -0
  41. package/esm2020/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.mjs +14 -0
  42. package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +40 -0
  43. package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.mjs +14 -0
  44. package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +21 -0
  45. package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.mjs +14 -0
  46. package/esm2020/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +21 -0
  47. package/esm2020/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.mjs +14 -0
  48. package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/adapters/ban.mjs +24 -0
  49. package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +63 -0
  50. package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.mjs +16 -0
  51. package/esm2020/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +46 -0
  52. package/esm2020/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.mjs +49 -0
  53. package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +57 -0
  54. package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.mjs +35 -0
  55. package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +49 -0
  56. package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.mjs +15 -0
  57. package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +40 -0
  58. package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.mjs +14 -0
  59. package/esm2020/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +21 -0
  60. package/esm2020/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.mjs +14 -0
  61. package/esm2020/lib/modellist/model-list-filters/model-list-filter.mjs +145 -0
  62. package/esm2020/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +50 -0
  63. package/esm2020/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +30 -0
  64. package/esm2020/lib/modellist/model-list-filters/model-list-filters.mjs +80 -0
  65. package/esm2020/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +70 -0
  66. package/esm2020/lib/modellist/model-list-paginator/model-list-paginator.mjs +47 -0
  67. package/esm2020/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +49 -0
  68. package/esm2020/lib/modellist/model-list-sorter/model-list-sorter.mjs +116 -0
  69. package/esm2020/lib/modellist/model-list.service.mjs +135 -0
  70. package/esm2020/lib/routing/breadcrumb/breadcrumb.component.mjs +142 -0
  71. package/esm2020/lib/routing/routing.mjs +57 -0
  72. package/esm2020/lib/uploader/index.mjs +6 -0
  73. package/esm2020/lib/uploader/interfaces.mjs +8 -0
  74. package/esm2020/lib/uploader/ng-file-drop.directive.mjs +81 -0
  75. package/esm2020/lib/uploader/ng-file-select.directive.mjs +51 -0
  76. package/esm2020/lib/uploader/ngx-uploader.class.mjs +308 -0
  77. package/esm2020/lib/uploader/ngx-uploader.module.mjs +17 -0
  78. package/esm2020/lib/utils/slugify.mjs +16 -0
  79. package/esm2020/lib/utils/tab-memory.service.mjs +71 -0
  80. package/esm2020/public-api.mjs +51 -0
  81. package/esm2020/solidev-data.mjs +5 -0
  82. package/fesm2015/solidev-data.mjs +5411 -0
  83. package/fesm2015/solidev-data.mjs.map +1 -0
  84. package/fesm2020/solidev-data.mjs +5358 -0
  85. package/fesm2020/solidev-data.mjs.map +1 -0
  86. package/index.d.ts +5 -0
  87. package/lib/auth/auth-interceptor.service.d.ts +17 -0
  88. package/lib/auth/auth.service.d.ts +43 -0
  89. package/lib/auth/jwt.d.ts +22 -0
  90. package/lib/data/data-backend.d.ts +47 -0
  91. package/lib/data/data-collection.d.ts +87 -0
  92. package/lib/data/data-collection.mock.d.ts +19 -0
  93. package/lib/data/data-model.d.ts +93 -0
  94. package/lib/data/data-parameters.d.ts +26 -0
  95. package/lib/data/data-query.d.ts +101 -0
  96. package/lib/data/data-query.mock.d.ts +25 -0
  97. package/lib/data/fields/base.d.ts +116 -0
  98. package/lib/data/fields/boolean.d.ts +9 -0
  99. package/lib/data/fields/datetime.d.ts +39 -0
  100. package/lib/data/fields/index.d.ts +6 -0
  101. package/lib/data/fields/numbers.d.ts +35 -0
  102. package/lib/data/fields/primaryfield.d.ts +8 -0
  103. package/lib/data/fields/relations.d.ts +45 -0
  104. package/lib/data/fields/stringfields.d.ts +50 -0
  105. package/lib/dispedit/choice.pipe.d.ts +8 -0
  106. package/lib/dispedit/dispedit/dispedit.component.d.ts +182 -0
  107. package/lib/dispedit/dispedit/dispedit.constants.d.ts +6 -0
  108. package/lib/dispedit/factor.pipe.d.ts +12 -0
  109. package/lib/dispedit/factorc.pipe.d.ts +11 -0
  110. package/lib/dispedit/fkselect/fkselect.component.d.ts +43 -0
  111. package/lib/dispedit/flags/flags.component.d.ts +40 -0
  112. package/lib/dispedit/m2mselect/m2mselect.component.d.ts +120 -0
  113. package/lib/dispedit/richedit/richedit.component.d.ts +31 -0
  114. package/lib/dispedit/sdelete/sdelete.component.d.ts +27 -0
  115. package/lib/messages/message-zone/message-zone.component.d.ts +14 -0
  116. package/lib/messages/message.service.d.ts +59 -0
  117. package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +15 -0
  118. package/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.d.ts +19 -0
  119. package/lib/modellist/model-list-fields/model-list-fields.d.ts +67 -0
  120. package/lib/modellist/model-list-filters/filters/filtertypes.d.ts +1 -0
  121. package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.d.ts +30 -0
  122. package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.d.ts +22 -0
  123. package/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.d.ts +10 -0
  124. package/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.d.ts +8 -0
  125. package/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.d.ts +15 -0
  126. package/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.d.ts +4 -0
  127. package/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.d.ts +15 -0
  128. package/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.d.ts +4 -0
  129. package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.d.ts +11 -0
  130. package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.d.ts +4 -0
  131. package/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.d.ts +11 -0
  132. package/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.d.ts +4 -0
  133. package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/adapters/ban.d.ts +35 -0
  134. package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.d.ts +25 -0
  135. package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.d.ts +18 -0
  136. package/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.d.ts +17 -0
  137. package/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.d.ts +19 -0
  138. package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.d.ts +17 -0
  139. package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.d.ts +16 -0
  140. package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.d.ts +17 -0
  141. package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.d.ts +6 -0
  142. package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.d.ts +16 -0
  143. package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.d.ts +4 -0
  144. package/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.d.ts +11 -0
  145. package/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.d.ts +4 -0
  146. package/lib/modellist/model-list-filters/model-list-filter.d.ts +52 -0
  147. package/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.d.ts +9 -0
  148. package/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.d.ts +13 -0
  149. package/lib/modellist/model-list-filters/model-list-filters.d.ts +15 -0
  150. package/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.d.ts +23 -0
  151. package/lib/modellist/model-list-paginator/model-list-paginator.d.ts +16 -0
  152. package/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.d.ts +22 -0
  153. package/lib/modellist/model-list-sorter/model-list-sorter.d.ts +61 -0
  154. package/lib/modellist/model-list.service.d.ts +83 -0
  155. package/lib/routing/breadcrumb/breadcrumb.component.d.ts +42 -0
  156. package/lib/routing/routing.d.ts +64 -0
  157. package/lib/uploader/index.d.ts +5 -0
  158. package/lib/uploader/interfaces.d.ts +67 -0
  159. package/lib/uploader/ng-file-drop.directive.d.ts +22 -0
  160. package/lib/uploader/ng-file-select.directive.d.ts +19 -0
  161. package/lib/uploader/ngx-uploader.class.d.ts +35 -0
  162. package/lib/uploader/ngx-uploader.module.d.ts +8 -0
  163. package/lib/utils/slugify.d.ts +1 -0
  164. package/lib/utils/tab-memory.service.d.ts +29 -0
  165. package/package.json +35 -0
  166. package/public-api.d.ts +47 -0
  167. package/src/lib/data/README.md +35 -0
@@ -0,0 +1,46 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';
3
+ import { debounceTime } from 'rxjs';
4
+ import { CommonModule } from '@angular/common';
5
+ import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "@ng-bootstrap/ng-bootstrap";
10
+ export class ModelListNumberFilterComponent {
11
+ constructor() {
12
+ this.classes = '';
13
+ this.fc = new UntypedFormControl();
14
+ }
15
+ ngOnInit() {
16
+ this.filter.valueChanges.subscribe((val) => {
17
+ this.fc.setValue(val.value, { emitEvent: false });
18
+ });
19
+ this.fc.valueChanges.pipe(debounceTime(250)).subscribe((val) => {
20
+ if (this.filter.set(val, val)) {
21
+ this.list.filters.update();
22
+ }
23
+ });
24
+ }
25
+ disable() {
26
+ this.filter.enabled = false;
27
+ this.list.filters.update();
28
+ }
29
+ selectOp(eq) {
30
+ this.filter.setOperator(eq);
31
+ this.list.filters.update();
32
+ }
33
+ }
34
+ ModelListNumberFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ModelListNumberFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
+ ModelListNumberFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.9", type: ModelListNumberFilterComponent, isStandalone: true, selector: "data-model-list-number-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\">\n <div class=\"bi bi-trash\"></div>\n </div>\n <label>{{filter.label}}</label>\n <div class=\"input-group\" ngbDropdown>\n <button class=\"btn btn-outline-secondary\" type=\"button\" ngbDropdownToggle><span class=\"me-2\">{{filter.operator.label}}</span>\n <div class=\"dropdown-menu\" ngbDropdownMenu>\n <button ngbDropdownItem *ngFor=\"let op of filter.operations\" (click)=\"selectOp(op.operator)\" [class.text-primary]=\"op.operator === filter.operator.operator\">{{op.label}}</button>\n </div>\n </button>\n <input class=\"form-control\" type=\"number\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgbDropdownModule }, { kind: "directive", type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i3.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i3.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }] });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ModelListNumberFilterComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'data-model-list-number-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule, NgbDropdownModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\">\n <div class=\"bi bi-trash\"></div>\n </div>\n <label>{{filter.label}}</label>\n <div class=\"input-group\" ngbDropdown>\n <button class=\"btn btn-outline-secondary\" type=\"button\" ngbDropdownToggle><span class=\"me-2\">{{filter.operator.label}}</span>\n <div class=\"dropdown-menu\" ngbDropdownMenu>\n <button ngbDropdownItem *ngFor=\"let op of filter.operations\" (click)=\"selectOp(op.operator)\" [class.text-primary]=\"op.operator === filter.operator.operator\">{{op.label}}</button>\n </div>\n </button>\n <input class=\"form-control\" type=\"number\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n </div>\n</div>" }]
39
+ }], ctorParameters: function () { return []; }, propDecorators: { list: [{
40
+ type: Input
41
+ }], filter: [{
42
+ type: Input
43
+ }], classes: [{
44
+ type: Input
45
+ }] } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1udW1iZXItZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC1udW1iZXItZmlsdGVyL21vZGVsLWxpc3QtbnVtYmVyLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtbnVtYmVyLWZpbHRlci9tb2RlbC1saXN0LW51bWJlci1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBUy9ELE1BQU0sT0FBTyw4QkFBOEI7SUFNekM7UUFIZ0IsWUFBTyxHQUFzQixFQUFFLENBQUM7UUFDekMsT0FBRSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUV0QixDQUFDO0lBRVQsUUFBUTtRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFFLEdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUM3RCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDNUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRLENBQUMsRUFBVTtRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDOzsySEEzQlUsOEJBQThCOytHQUE5Qiw4QkFBOEIseUpDZjNDLDJ4QkFjTSx5RERETSxZQUFZLHlQQUFFLG1CQUFtQiwydUJBQUUsaUJBQWlCOzJGQUVuRCw4QkFBOEI7a0JBUDFDLFNBQVM7K0JBQ0UsK0JBQStCLGNBRzdCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQzswRUFHL0MsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGVsTGlzdCB9IGZyb20gJy4uLy4uLy4uL21vZGVsLWxpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1vZGVsTGlzdE51bWJlckZpbHRlciB9IGZyb20gJy4vbW9kZWwtbGlzdC1udW1iZXItZmlsdGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ2JEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0YS1tb2RlbC1saXN0LW51bWJlci1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtbGlzdC1udW1iZXItZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kZWwtbGlzdC1udW1iZXItZmlsdGVyLmNvbXBvbmVudC5zYXNzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE5nYkRyb3Bkb3duTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxMaXN0TnVtYmVyRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIGxpc3QhOiBNb2RlbExpc3Q8YW55PjtcbiAgQElucHV0KCkgcHVibGljIGZpbHRlciE6IE1vZGVsTGlzdE51bWJlckZpbHRlcjtcbiAgQElucHV0KCkgcHVibGljIGNsYXNzZXM6IHN0cmluZ1tdIHwgc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBmYyA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZmlsdGVyLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCkgPT4ge1xuICAgICAgdGhpcy5mYy5zZXRWYWx1ZSgodmFsIGFzIGFueSkudmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9KTtcbiAgICB0aGlzLmZjLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgyNTApKS5zdWJzY3JpYmUoKHZhbCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyLnNldCh2YWwsIHZhbCkpIHtcbiAgICAgICAgdGhpcy5saXN0LmZpbHRlcnMudXBkYXRlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZGlzYWJsZSgpIHtcbiAgICB0aGlzLmZpbHRlci5lbmFibGVkID0gZmFsc2U7XG4gICAgdGhpcy5saXN0LmZpbHRlcnMudXBkYXRlKCk7XG4gIH1cblxuICBzZWxlY3RPcChlcTogc3RyaW5nKSB7XG4gICAgdGhpcy5maWx0ZXIuc2V0T3BlcmF0b3IoZXEpO1xuICAgIHRoaXMubGlzdC5maWx0ZXJzLnVwZGF0ZSgpO1xuICB9XG59XG4iLCJcbjxkaXYgY2xhc3M9XCJmaWx0ZXJpdGVtXCIgW25nQ2xhc3NdPVwiZmlsdGVyLmRpc3BsYXlDbGFzc2VzIHx8IGNsYXNzZXNcIj5cbiAgPGRpdiBjbGFzcz1cInRyYXNoIGZsb2F0LWVuZFwiIChjbGljayk9XCJkaXNhYmxlKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYmkgYmktdHJhc2hcIj48L2Rpdj5cbiAgPC9kaXY+XG4gIDxsYWJlbD57e2ZpbHRlci5sYWJlbH19PC9sYWJlbD5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgbmdiRHJvcGRvd24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgbmdiRHJvcGRvd25Ub2dnbGU+PHNwYW4gY2xhc3M9XCJtZS0yXCI+e3tmaWx0ZXIub3BlcmF0b3IubGFiZWx9fTwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgbmdiRHJvcGRvd25NZW51PlxuICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAqbmdGb3I9XCJsZXQgb3Agb2YgZmlsdGVyLm9wZXJhdGlvbnNcIiAoY2xpY2spPVwic2VsZWN0T3Aob3Aub3BlcmF0b3IpXCIgW2NsYXNzLnRleHQtcHJpbWFyeV09XCJvcC5vcGVyYXRvciA9PT0gZmlsdGVyLm9wZXJhdG9yLm9wZXJhdG9yXCI+e3tvcC5sYWJlbH19PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiB0eXBlPVwibnVtYmVyXCIgW2Zvcm1Db250cm9sXT1cImZjXCIgW3BsYWNlaG9sZGVyXT1cImZpbHRlci5oZWxwXCI+XG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -0,0 +1,49 @@
1
+ import { ModelListFilter, } from '../../model-list-filter';
2
+ export const ModelListNumberOperations = [
3
+ { name: 'eq', label: '= (égal)', operator: '' },
4
+ { name: 'lt', label: '< (inférieur)', operator: '_lt' },
5
+ { name: 'gt', label: '> (supérieur)', operator: '_gt' },
6
+ { name: 'lte', label: '<= (inférieur ou égal)', operator: '_lte' },
7
+ { name: 'gte', label: '>= (supérieur ou égal)', operator: '_gte' },
8
+ ];
9
+ export class ModelListNumberFilter extends ModelListFilter {
10
+ constructor(params) {
11
+ super(params);
12
+ this.operator = ModelListNumberOperations[0];
13
+ this.operations = ModelListNumberOperations;
14
+ this.type = 'number';
15
+ if (this.label == '') {
16
+ this.label = 'Recherche par valeur';
17
+ }
18
+ if (this.help == '') {
19
+ this.help = 'Valeur à rechercher';
20
+ }
21
+ const ops = [];
22
+ if (params.operations && params.operations.length > 0) {
23
+ for (const op of params.operations) {
24
+ for (const dop of this.operations) {
25
+ if (op === dop.name) {
26
+ ops.push(dop);
27
+ }
28
+ }
29
+ }
30
+ if (ops.length > 0) {
31
+ this.operations = ops;
32
+ this.operator = ops[0];
33
+ }
34
+ }
35
+ }
36
+ setOperator(op) {
37
+ for (let o of this.operations) {
38
+ if (op === o.operator) {
39
+ this.operator = o;
40
+ }
41
+ }
42
+ }
43
+ updateFilter(filter) {
44
+ if (this._value !== undefined && this._value !== null) {
45
+ filter[`${this.field}${this.operator.operator}`] = this.getValue();
46
+ }
47
+ }
48
+ }
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1udW1iZXItZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvZmlsdGVycy9tb2RlbC1saXN0LW51bWJlci1maWx0ZXIvbW9kZWwtbGlzdC1udW1iZXItZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEdBRWhCLE1BQU0seUJBQXlCLENBQUM7QUFTakMsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQTBCO0lBQzlELEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7SUFDL0MsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtJQUN2RCxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO0lBQ3ZELEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtJQUNsRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7Q0FDbkUsQ0FBQztBQU1GLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUFlO0lBSXhELFlBQVksTUFBbUM7UUFDN0MsS0FBSyxDQUFDLE1BQStCLENBQUMsQ0FBQztRQUpsQyxhQUFRLEdBQUcseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsZUFBVSxHQUFHLHlCQUF5QixDQUFDO1FBSTVDLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxzQkFBc0IsQ0FBQztTQUNyQztRQUNELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxxQkFBcUIsQ0FBQztTQUNuQztRQUNELE1BQU0sR0FBRyxHQUEwQixFQUFFLENBQUM7UUFDdEMsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyRCxLQUFLLE1BQU0sRUFBRSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUU7Z0JBQ2xDLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDakMsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRTt3QkFDbkIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDZjtpQkFDRjthQUNGO1lBQ0QsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3hCO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sV0FBVyxDQUFDLEVBQVU7UUFDM0IsS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzdCLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO2FBQ25CO1NBQ0Y7SUFDSCxDQUFDO0lBRWUsWUFBWSxDQUFDLE1BQWtCO1FBQzdDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDckQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3BFO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kZWxMaXN0RmlsdGVyLFxuICBNb2RlbExpc3RGaWx0ZXJQYXJhbXMsXG59IGZyb20gJy4uLy4uL21vZGVsLWxpc3QtZmlsdGVyJztcbmltcG9ydCB7IEZpbHRlckRhdGEgfSBmcm9tICcuLi8uLi8uLi8uLi9kYXRhL2RhdGEtcXVlcnknO1xuXG5pbnRlcmZhY2UgT3BlcmF0aW9uRGVzY3JpcHRvciB7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgb3BlcmF0b3I6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IE1vZGVsTGlzdE51bWJlck9wZXJhdGlvbnM6IE9wZXJhdGlvbkRlc2NyaXB0b3JbXSA9IFtcbiAgeyBuYW1lOiAnZXEnLCBsYWJlbDogJz0gKMOpZ2FsKScsIG9wZXJhdG9yOiAnJyB9LFxuICB7IG5hbWU6ICdsdCcsIGxhYmVsOiAnPCAoaW5mw6lyaWV1ciknLCBvcGVyYXRvcjogJ19sdCcgfSxcbiAgeyBuYW1lOiAnZ3QnLCBsYWJlbDogJz4gKHN1cMOpcmlldXIpJywgb3BlcmF0b3I6ICdfZ3QnIH0sXG4gIHsgbmFtZTogJ2x0ZScsIGxhYmVsOiAnPD0gKGluZsOpcmlldXIgb3Ugw6lnYWwpJywgb3BlcmF0b3I6ICdfbHRlJyB9LFxuICB7IG5hbWU6ICdndGUnLCBsYWJlbDogJz49IChzdXDDqXJpZXVyIG91IMOpZ2FsKScsIG9wZXJhdG9yOiAnX2d0ZScgfSxcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxMaXN0TnVtYmVyRmlsdGVyUGFyYW1zIGV4dGVuZHMgTW9kZWxMaXN0RmlsdGVyUGFyYW1zIHtcbiAgb3BlcmF0aW9ucz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgTW9kZWxMaXN0TnVtYmVyRmlsdGVyIGV4dGVuZHMgTW9kZWxMaXN0RmlsdGVyIHtcbiAgcHVibGljIG9wZXJhdG9yID0gTW9kZWxMaXN0TnVtYmVyT3BlcmF0aW9uc1swXTtcbiAgcHVibGljIG9wZXJhdGlvbnMgPSBNb2RlbExpc3ROdW1iZXJPcGVyYXRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKHBhcmFtczogTW9kZWxMaXN0TnVtYmVyRmlsdGVyUGFyYW1zKSB7XG4gICAgc3VwZXIocGFyYW1zIGFzIE1vZGVsTGlzdEZpbHRlclBhcmFtcyk7XG4gICAgdGhpcy50eXBlID0gJ251bWJlcic7XG4gICAgaWYgKHRoaXMubGFiZWwgPT0gJycpIHtcbiAgICAgIHRoaXMubGFiZWwgPSAnUmVjaGVyY2hlIHBhciB2YWxldXInO1xuICAgIH1cbiAgICBpZiAodGhpcy5oZWxwID09ICcnKSB7XG4gICAgICB0aGlzLmhlbHAgPSAnVmFsZXVyIMOgIHJlY2hlcmNoZXInO1xuICAgIH1cbiAgICBjb25zdCBvcHM6IE9wZXJhdGlvbkRlc2NyaXB0b3JbXSA9IFtdO1xuICAgIGlmIChwYXJhbXMub3BlcmF0aW9ucyAmJiBwYXJhbXMub3BlcmF0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IG9wIG9mIHBhcmFtcy5vcGVyYXRpb25zKSB7XG4gICAgICAgIGZvciAoY29uc3QgZG9wIG9mIHRoaXMub3BlcmF0aW9ucykge1xuICAgICAgICAgIGlmIChvcCA9PT0gZG9wLm5hbWUpIHtcbiAgICAgICAgICAgIG9wcy5wdXNoKGRvcCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAob3BzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5vcGVyYXRpb25zID0gb3BzO1xuICAgICAgICB0aGlzLm9wZXJhdG9yID0gb3BzWzBdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRPcGVyYXRvcihvcDogc3RyaW5nKSB7XG4gICAgZm9yIChsZXQgbyBvZiB0aGlzLm9wZXJhdGlvbnMpIHtcbiAgICAgIGlmIChvcCA9PT0gby5vcGVyYXRvcikge1xuICAgICAgICB0aGlzLm9wZXJhdG9yID0gbztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdXBkYXRlRmlsdGVyKGZpbHRlcjogRmlsdGVyRGF0YSk6IHZvaWQge1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX3ZhbHVlICE9PSBudWxsKSB7XG4gICAgICBmaWx0ZXJbYCR7dGhpcy5maWVsZH0ke3RoaXMub3BlcmF0b3Iub3BlcmF0b3J9YF0gPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,57 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { combineLatest, debounceTime } from 'rxjs';
3
+ import { FormControl, ReactiveFormsModule, } from '@angular/forms';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/forms";
8
+ export class ModelListSelectFilterComponent {
9
+ constructor() {
10
+ this.classes = '';
11
+ this.fc = new FormControl(null);
12
+ }
13
+ ngOnInit() {
14
+ this.filter.valueChanges.subscribe((val) => {
15
+ console.log('Changing value', val);
16
+ this.fc.setValue(val ? val.value : null, {
17
+ emitEvent: false,
18
+ });
19
+ });
20
+ combineLatest([
21
+ this.filter.choices,
22
+ this.fc.valueChanges.pipe(debounceTime(250)),
23
+ ]).subscribe(([choices, val]) => {
24
+ if (val === null) {
25
+ this.filter.clear();
26
+ this.list.filters.update();
27
+ }
28
+ else {
29
+ for (const ch of choices) {
30
+ if (ch.value === val) {
31
+ if (this.filter.set(ch.value, ch.desc)) {
32
+ this.list.filters.update();
33
+ break;
34
+ }
35
+ }
36
+ }
37
+ }
38
+ });
39
+ }
40
+ disable() {
41
+ this.filter.enabled = false;
42
+ this.list.filters.update();
43
+ }
44
+ }
45
+ ModelListSelectFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ModelListSelectFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
46
+ ModelListSelectFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.9", type: ModelListSelectFilterComponent, isStandalone: true, selector: "data-model-list-select-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <select class=\"form-select\" [formControl]=\"fc\">\n <option [ngValue]=\"null\">-- {{filter.help}} --</option>\n <option *ngFor=\"let c of filter.choices|async\" [ngValue]=\"c.value\">{{c.desc}}</option>\n </select>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ModelListSelectFilterComponent, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'data-model-list-select-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <select class=\"form-select\" [formControl]=\"fc\">\n <option [ngValue]=\"null\">-- {{filter.help}} --</option>\n <option *ngFor=\"let c of filter.choices|async\" [ngValue]=\"c.value\">{{c.desc}}</option>\n </select>\n</div>" }]
50
+ }], ctorParameters: function () { return []; }, propDecorators: { list: [{
51
+ type: Input
52
+ }], filter: [{
53
+ type: Input
54
+ }], classes: [{
55
+ type: Input
56
+ }] } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1zZWxlY3QtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC1zZWxlY3QtZmlsdGVyL21vZGVsLWxpc3Qtc2VsZWN0LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3Qtc2VsZWN0LWZpbHRlci9tb2RlbC1saXN0LXNlbGVjdC1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQWlCLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFDTCxXQUFXLEVBQ1gsbUJBQW1CLEdBRXBCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBVS9DLE1BQU0sT0FBTyw4QkFBOEI7SUFRekM7UUFIZ0IsWUFBTyxHQUFzQixFQUFFLENBQUM7UUFDekMsT0FBRSxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRW5CLENBQUM7SUFFVCxRQUFRO1FBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLEdBQXVCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7Z0JBQzVELFNBQVMsRUFBRSxLQUFLO2FBQ2pCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsYUFBYSxDQUFDO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDOUIsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO2dCQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUM1QjtpQkFBTTtnQkFDTCxLQUFLLE1BQU0sRUFBRSxJQUFJLE9BQU8sRUFBRTtvQkFDeEIsSUFBSSxFQUFFLENBQUMsS0FBSyxLQUFLLEdBQUcsRUFBRTt3QkFDcEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTs0QkFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQzNCLE1BQU07eUJBQ1A7cUJBQ0Y7aUJBQ0Y7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7MkhBekNVLDhCQUE4QjsrR0FBOUIsOEJBQThCLHlKQ3BCM0MsdWJBUU0seUREVU0sWUFBWSw4U0FBRSxtQkFBbUI7MkZBRWhDLDhCQUE4QjtrQkFQMUMsU0FBUzsrQkFDRSwrQkFBK0IsY0FHN0IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDOzBFQUs1QixJQUFJO3NCQUFuQixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kZWxMaXN0IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGVsTGlzdFNlbGVjdEZpbHRlciB9IGZyb20gJy4vbW9kZWwtbGlzdC1zZWxlY3QtZmlsdGVyJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgbGFzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgRm9ybUNvbnRyb2wsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGF0YS9kYXRhLW1vZGVsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJRGlzcEVkaXRDaG9pY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXNwZWRpdC9kaXNwZWRpdC9kaXNwZWRpdC5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLW1vZGVsLWxpc3Qtc2VsZWN0LWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC1saXN0LXNlbGVjdC1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RlbC1saXN0LXNlbGVjdC1maWx0ZXIuY29tcG9uZW50LnNhc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdFNlbGVjdEZpbHRlckNvbXBvbmVudDxUIGV4dGVuZHMgRGF0YU1vZGVsPlxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICBASW5wdXQoKSBwdWJsaWMgbGlzdCE6IE1vZGVsTGlzdDxUPjtcbiAgQElucHV0KCkgcHVibGljIGZpbHRlciE6IE1vZGVsTGlzdFNlbGVjdEZpbHRlcjxUPjtcbiAgQElucHV0KCkgcHVibGljIGNsYXNzZXM6IHN0cmluZ1tdIHwgc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBmYyA9IG5ldyBGb3JtQ29udHJvbChudWxsKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZmlsdGVyLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ0NoYW5naW5nIHZhbHVlJywgdmFsKTtcbiAgICAgIHRoaXMuZmMuc2V0VmFsdWUodmFsID8gKHZhbCBhcyBJRGlzcEVkaXRDaG9pY2UpLnZhbHVlIDogbnVsbCwge1xuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZmlsdGVyLmNob2ljZXMsXG4gICAgICB0aGlzLmZjLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgyNTApKSxcbiAgICBdKS5zdWJzY3JpYmUoKFtjaG9pY2VzLCB2YWxdKSA9PiB7XG4gICAgICBpZiAodmFsID09PSBudWxsKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyLmNsZWFyKCk7XG4gICAgICAgIHRoaXMubGlzdC5maWx0ZXJzLnVwZGF0ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBjaCBvZiBjaG9pY2VzKSB7XG4gICAgICAgICAgaWYgKGNoLnZhbHVlID09PSB2YWwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlci5zZXQoY2gudmFsdWUsIGNoLmRlc2MpKSB7XG4gICAgICAgICAgICAgIHRoaXMubGlzdC5maWx0ZXJzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlKCkge1xuICAgIHRoaXMuZmlsdGVyLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmxpc3QuZmlsdGVycy51cGRhdGUoKTtcbiAgfVxufVxuIiwiXG48ZGl2IGNsYXNzPVwiZmlsdGVyaXRlbVwiIFtuZ0NsYXNzXT1cImZpbHRlci5kaXNwbGF5Q2xhc3NlcyB8fCBjbGFzc2VzXCI+XG4gIDxkaXYgY2xhc3M9XCJ0cmFzaCBmbG9hdC1lbmRcIiAoY2xpY2spPVwiZGlzYWJsZSgpXCI+PGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiPjwvaT48L2Rpdj5cbiAgPGxhYmVsPnt7ZmlsdGVyLmxhYmVsfX08L2xhYmVsPlxuICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBbZm9ybUNvbnRyb2xdPVwiZmNcIj5cbiAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIj4tLSB7e2ZpbHRlci5oZWxwfX0gLS08L29wdGlvbj5cbiAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGZpbHRlci5jaG9pY2VzfGFzeW5jXCIgW25nVmFsdWVdPVwiYy52YWx1ZVwiPnt7Yy5kZXNjfX08L29wdGlvbj5cbiAgPC9zZWxlY3Q+XG48L2Rpdj4iXX0=
@@ -0,0 +1,35 @@
1
+ import { ModelListFilter, } from '../../model-list-filter';
2
+ import { isObservable, of } from 'rxjs';
3
+ export class ModelListSelectFilter extends ModelListFilter {
4
+ constructor(params) {
5
+ super(params);
6
+ this.type = 'select';
7
+ if (this.label == '') {
8
+ this.label = 'Sélectionnez un élément';
9
+ }
10
+ if (this.help == '') {
11
+ this.help = 'Choix par liste déroulante';
12
+ }
13
+ if (!params.choices && !params.model) {
14
+ throw 'Missing choices for select filter';
15
+ }
16
+ if (!params.choices && params.model) {
17
+ const m = new params.model();
18
+ const f = m.FM(params.mfield || params.field);
19
+ const ch = f.choices;
20
+ if (!ch) {
21
+ throw 'No choices found for model/field';
22
+ }
23
+ this.choices = of(ch);
24
+ }
25
+ else {
26
+ if (!isObservable(params.choices)) {
27
+ this.choices = of(params.choices);
28
+ }
29
+ else {
30
+ this.choices = params.choices;
31
+ }
32
+ }
33
+ }
34
+ }
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1zZWxlY3QtZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvZmlsdGVycy9tb2RlbC1saXN0LXNlbGVjdC1maWx0ZXIvbW9kZWwtbGlzdC1zZWxlY3QtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEdBRWhCLE1BQU0seUJBQXlCLENBQUM7QUFJakMsT0FBTyxFQUFFLFlBQVksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFTcEQsTUFBTSxPQUFPLHFCQUNYLFNBQVEsZUFBZTtJQU92QixZQUFZLE1BQXNDO1FBQ2hELEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyx5QkFBeUIsQ0FBQztTQUN4QztRQUNELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyw0QkFBNEIsQ0FBQztTQUMxQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNwQyxNQUFNLG1DQUFtQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNuQyxNQUFNLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlDLE1BQU0sRUFBRSxHQUFJLENBQVMsQ0FBQyxPQUFPLENBQUM7WUFDOUIsSUFBSSxDQUFDLEVBQUUsRUFBRTtnQkFDUCxNQUFNLGtDQUFrQyxDQUFDO2FBQzFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDdkI7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBNEIsQ0FBQyxDQUFDO2FBQ3hEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUMvQjtTQUNGO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kZWxMaXN0RmlsdGVyLFxuICBNb2RlbExpc3RGaWx0ZXJQYXJhbXMsXG59IGZyb20gJy4uLy4uL21vZGVsLWxpc3QtZmlsdGVyJztcbmltcG9ydCB7IElEaXNwRWRpdENob2ljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Rpc3BlZGl0L2Rpc3BlZGl0L2Rpc3BlZGl0LmNvbnN0YW50cyc7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9kYXRhL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHsgRGF0YU1vZGVsVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RhdGEvZGF0YS1jb2xsZWN0aW9uJztcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBNb2RlbExpc3RTZWxlY3RGaWx0ZXJQYXJhbXM8VCBleHRlbmRzIERhdGFNb2RlbD5cbiAgZXh0ZW5kcyBNb2RlbExpc3RGaWx0ZXJQYXJhbXMge1xuICBjaG9pY2VzPzogSURpc3BFZGl0Q2hvaWNlW10gfCBPYnNlcnZhYmxlPElEaXNwRWRpdENob2ljZVtdPjtcbiAgbW9kZWw/OiBEYXRhTW9kZWxUeXBlPFQ+O1xuICBtZmllbGQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNb2RlbExpc3RTZWxlY3RGaWx0ZXI8VCBleHRlbmRzIERhdGFNb2RlbD5cbiAgZXh0ZW5kcyBNb2RlbExpc3RGaWx0ZXJcbiAgaW1wbGVtZW50cyBNb2RlbExpc3RTZWxlY3RGaWx0ZXJQYXJhbXM8VD5cbntcbiAgcHVibGljIGNob2ljZXMhOiBPYnNlcnZhYmxlPElEaXNwRWRpdENob2ljZVtdPjtcbiAgcHVibGljIG1vZGVsPzogRGF0YU1vZGVsVHlwZTxUPjtcbiAgcHVibGljIG1maWVsZD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihwYXJhbXM6IE1vZGVsTGlzdFNlbGVjdEZpbHRlclBhcmFtczxUPikge1xuICAgIHN1cGVyKHBhcmFtcyk7XG4gICAgdGhpcy50eXBlID0gJ3NlbGVjdCc7XG4gICAgaWYgKHRoaXMubGFiZWwgPT0gJycpIHtcbiAgICAgIHRoaXMubGFiZWwgPSAnU8OpbGVjdGlvbm5leiB1biDDqWzDqW1lbnQnO1xuICAgIH1cbiAgICBpZiAodGhpcy5oZWxwID09ICcnKSB7XG4gICAgICB0aGlzLmhlbHAgPSAnQ2hvaXggcGFyIGxpc3RlIGTDqXJvdWxhbnRlJztcbiAgICB9XG4gICAgaWYgKCFwYXJhbXMuY2hvaWNlcyAmJiAhcGFyYW1zLm1vZGVsKSB7XG4gICAgICB0aHJvdyAnTWlzc2luZyBjaG9pY2VzIGZvciBzZWxlY3QgZmlsdGVyJztcbiAgICB9XG4gICAgaWYgKCFwYXJhbXMuY2hvaWNlcyAmJiBwYXJhbXMubW9kZWwpIHtcbiAgICAgIGNvbnN0IG0gPSBuZXcgcGFyYW1zLm1vZGVsKCk7XG4gICAgICBjb25zdCBmID0gbS5GTShwYXJhbXMubWZpZWxkIHx8IHBhcmFtcy5maWVsZCk7XG4gICAgICBjb25zdCBjaCA9IChmIGFzIGFueSkuY2hvaWNlcztcbiAgICAgIGlmICghY2gpIHtcbiAgICAgICAgdGhyb3cgJ05vIGNob2ljZXMgZm91bmQgZm9yIG1vZGVsL2ZpZWxkJztcbiAgICAgIH1cbiAgICAgIHRoaXMuY2hvaWNlcyA9IG9mKGNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFpc09ic2VydmFibGUocGFyYW1zLmNob2ljZXMpKSB7XG4gICAgICAgIHRoaXMuY2hvaWNlcyA9IG9mKHBhcmFtcy5jaG9pY2VzIGFzIElEaXNwRWRpdENob2ljZVtdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2hvaWNlcyA9IHBhcmFtcy5jaG9pY2VzO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,49 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormControl, ReactiveFormsModule } from '@angular/forms';
4
+ import { combineLatest, debounceTime } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/forms";
8
+ export class ModelListSelectMultiFilterComponent {
9
+ constructor() {
10
+ this.classes = '';
11
+ this.fc = new FormControl(null);
12
+ }
13
+ ngOnInit() {
14
+ combineLatest([
15
+ this.filter.choices,
16
+ this.fc.valueChanges.pipe(debounceTime(250)),
17
+ ]).subscribe(([choices, val]) => {
18
+ for (const ch of choices) {
19
+ if (ch.value === val) {
20
+ if (this.filter.set(ch.value, ch.desc)) {
21
+ this.list.filters.update();
22
+ break;
23
+ }
24
+ }
25
+ }
26
+ });
27
+ }
28
+ unset(value, desc) {
29
+ this.filter.unset(value, desc);
30
+ this.list.filters.update();
31
+ }
32
+ disable() {
33
+ this.filter.enabled = false;
34
+ this.list.filters.update();
35
+ }
36
+ }
37
+ ModelListSelectMultiFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ModelListSelectMultiFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
+ ModelListSelectMultiFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.9", type: ModelListSelectMultiFilterComponent, isStandalone: true, selector: "data-model-list-select-multi-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <select class=\"form-select\" [formControl]=\"fc\">\n <option [ngValue]=\"null\">-- {{filter.help}} --</option>\n <option *ngFor=\"let c of filter.choices|async\" [ngValue]=\"c.value\">{{c.desc}}</option>\n </select>\n <div class=\"enabled mt-1\">\n <div *ngFor=\"let e of filter.mcurrent$|async\"><i class=\"bi bi-trash me-2\" (click)=\"unset(e.value, e.desc)\" role=\"button\"></i>{{e.desc}}</div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ModelListSelectMultiFilterComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ selector: 'data-model-list-select-multi-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <select class=\"form-select\" [formControl]=\"fc\">\n <option [ngValue]=\"null\">-- {{filter.help}} --</option>\n <option *ngFor=\"let c of filter.choices|async\" [ngValue]=\"c.value\">{{c.desc}}</option>\n </select>\n <div class=\"enabled mt-1\">\n <div *ngFor=\"let e of filter.mcurrent$|async\"><i class=\"bi bi-trash me-2\" (click)=\"unset(e.value, e.desc)\" role=\"button\"></i>{{e.desc}}</div>\n </div>\n</div>" }]
42
+ }], ctorParameters: function () { return []; }, propDecorators: { list: [{
43
+ type: Input
44
+ }], filter: [{
45
+ type: Input
46
+ }], classes: [{
47
+ type: Input
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1zZWxlY3QtbXVsdGktZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC1zZWxlY3QtbXVsdGktZmlsdGVyL21vZGVsLWxpc3Qtc2VsZWN0LW11bHRpLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3Qtc2VsZWN0LW11bHRpLWZpbHRlci9tb2RlbC1saXN0LXNlbGVjdC1tdWx0aS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQVNuRCxNQUFNLE9BQU8sbUNBQW1DO0lBTTlDO1FBSGdCLFlBQU8sR0FBc0IsRUFBRSxDQUFDO1FBQ3pDLE9BQUUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVuQixDQUFDO0lBRVQsUUFBUTtRQUNiLGFBQWEsQ0FBQztZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztZQUNuQixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzdDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQzlCLEtBQUssTUFBTSxFQUFFLElBQUksT0FBTyxFQUFFO2dCQUN4QixJQUFJLEVBQUUsQ0FBQyxLQUFLLEtBQUssR0FBRyxFQUFFO29CQUNwQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDM0IsTUFBTTtxQkFDUDtpQkFDRjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQVUsRUFBRSxJQUFZO1FBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDOztnSUFoQ1UsbUNBQW1DO29IQUFuQyxtQ0FBbUMsK0pDZmhELDRuQkFXTSx5RERFTSxZQUFZLDhTQUFFLG1CQUFtQjsyRkFFaEMsbUNBQW1DO2tCQVAvQyxTQUFTOytCQUNFLHFDQUFxQyxjQUduQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUM7MEVBRzVCLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kZWxMaXN0IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGVsTGlzdFNlbGVjdE11bHRpRmlsdGVyIH0gZnJvbSAnLi9tb2RlbC1saXN0LXNlbGVjdC1tdWx0aS1maWx0ZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGF0YS9kYXRhLW1vZGVsJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLW1vZGVsLWxpc3Qtc2VsZWN0LW11bHRpLWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC1saXN0LXNlbGVjdC1tdWx0aS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RlbC1saXN0LXNlbGVjdC1tdWx0aS1maWx0ZXIuY29tcG9uZW50LnNhc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdFNlbGVjdE11bHRpRmlsdGVyQ29tcG9uZW50PFQgZXh0ZW5kcyBEYXRhTW9kZWw+IHtcbiAgQElucHV0KCkgcHVibGljIGxpc3QhOiBNb2RlbExpc3Q8VD47XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXIhOiBNb2RlbExpc3RTZWxlY3RNdWx0aUZpbHRlcjxUPjtcbiAgQElucHV0KCkgcHVibGljIGNsYXNzZXM6IHN0cmluZ1tdIHwgc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBmYyA9IG5ldyBGb3JtQ29udHJvbChudWxsKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5maWx0ZXIuY2hvaWNlcyxcbiAgICAgIHRoaXMuZmMudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDI1MCkpLFxuICAgIF0pLnN1YnNjcmliZSgoW2Nob2ljZXMsIHZhbF0pID0+IHtcbiAgICAgIGZvciAoY29uc3QgY2ggb2YgY2hvaWNlcykge1xuICAgICAgICBpZiAoY2gudmFsdWUgPT09IHZhbCkge1xuICAgICAgICAgIGlmICh0aGlzLmZpbHRlci5zZXQoY2gudmFsdWUsIGNoLmRlc2MpKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3QuZmlsdGVycy51cGRhdGUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVuc2V0KHZhbHVlOiBhbnksIGRlc2M6IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVyLnVuc2V0KHZhbHVlLCBkZXNjKTtcbiAgICB0aGlzLmxpc3QuZmlsdGVycy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlKCkge1xuICAgIHRoaXMuZmlsdGVyLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmxpc3QuZmlsdGVycy51cGRhdGUoKTtcbiAgfVxufVxuIiwiXG48ZGl2IGNsYXNzPVwiZmlsdGVyaXRlbVwiIFtuZ0NsYXNzXT1cImZpbHRlci5kaXNwbGF5Q2xhc3NlcyB8fCBjbGFzc2VzXCI+XG4gIDxkaXYgY2xhc3M9XCJ0cmFzaCBmbG9hdC1lbmRcIiAoY2xpY2spPVwiZGlzYWJsZSgpXCI+PGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiPjwvaT48L2Rpdj5cbiAgPGxhYmVsPnt7ZmlsdGVyLmxhYmVsfX08L2xhYmVsPlxuICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBbZm9ybUNvbnRyb2xdPVwiZmNcIj5cbiAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIj4tLSB7e2ZpbHRlci5oZWxwfX0gLS08L29wdGlvbj5cbiAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGZpbHRlci5jaG9pY2VzfGFzeW5jXCIgW25nVmFsdWVdPVwiYy52YWx1ZVwiPnt7Yy5kZXNjfX08L29wdGlvbj5cbiAgPC9zZWxlY3Q+XG4gIDxkaXYgY2xhc3M9XCJlbmFibGVkIG10LTFcIj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlIG9mIGZpbHRlci5tY3VycmVudCR8YXN5bmNcIj48aSBjbGFzcz1cImJpIGJpLXRyYXNoIG1lLTJcIiAoY2xpY2spPVwidW5zZXQoZS52YWx1ZSwgZS5kZXNjKVwiIHJvbGU9XCJidXR0b25cIj48L2k+e3tlLmRlc2N9fTwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { ModelListSelectFilter, } from '../model-list-select-filter/model-list-select-filter';
2
+ export class ModelListSelectMultiFilter extends ModelListSelectFilter {
3
+ constructor(params) {
4
+ super(params);
5
+ this.multi = true;
6
+ this.type = 'selectmulti';
7
+ if (this.label == '') {
8
+ this.label = 'Sélectionnez un élément';
9
+ }
10
+ if (this.help == '') {
11
+ this.help = 'Choix par liste déroulante (multiple)';
12
+ }
13
+ }
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1zZWxlY3QtbXVsdGktZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvZmlsdGVycy9tb2RlbC1saXN0LXNlbGVjdC1tdWx0aS1maWx0ZXIvbW9kZWwtbGlzdC1zZWxlY3QtbXVsdGktZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxxQkFBcUIsR0FFdEIsTUFBTSxzREFBc0QsQ0FBQztBQUc5RCxNQUFNLE9BQU8sMEJBRVgsU0FBUSxxQkFBd0I7SUFFaEMsWUFBWSxNQUFzQztRQUNoRCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFGQSxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBSTNCLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1FBQzFCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyx5QkFBeUIsQ0FBQztTQUN4QztRQUNELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyx1Q0FBdUMsQ0FBQztTQUNyRDtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1vZGVsTGlzdFNlbGVjdEZpbHRlcixcbiAgTW9kZWxMaXN0U2VsZWN0RmlsdGVyUGFyYW1zLFxufSBmcm9tICcuLi9tb2RlbC1saXN0LXNlbGVjdC1maWx0ZXIvbW9kZWwtbGlzdC1zZWxlY3QtZmlsdGVyJztcbmltcG9ydCB7IERhdGFNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2RhdGEvZGF0YS1tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBNb2RlbExpc3RTZWxlY3RNdWx0aUZpbHRlcjxcbiAgVCBleHRlbmRzIERhdGFNb2RlbFxuPiBleHRlbmRzIE1vZGVsTGlzdFNlbGVjdEZpbHRlcjxUPiB7XG4gIHB1YmxpYyBvdmVycmlkZSBtdWx0aSA9IHRydWU7XG4gIGNvbnN0cnVjdG9yKHBhcmFtczogTW9kZWxMaXN0U2VsZWN0RmlsdGVyUGFyYW1zPFQ+KSB7XG4gICAgc3VwZXIocGFyYW1zKTtcblxuICAgIHRoaXMudHlwZSA9ICdzZWxlY3RtdWx0aSc7XG4gICAgaWYgKHRoaXMubGFiZWwgPT0gJycpIHtcbiAgICAgIHRoaXMubGFiZWwgPSAnU8OpbGVjdGlvbm5leiB1biDDqWzDqW1lbnQnO1xuICAgIH1cbiAgICBpZiAodGhpcy5oZWxwID09ICcnKSB7XG4gICAgICB0aGlzLmhlbHAgPSAnQ2hvaXggcGFyIGxpc3RlIGTDqXJvdWxhbnRlIChtdWx0aXBsZSknO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,40 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';
3
+ import { debounceTime } from 'rxjs';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/forms";
8
+ export class ModelListTextFilterComponent {
9
+ constructor() {
10
+ this.classes = '';
11
+ this.fc = new UntypedFormControl();
12
+ }
13
+ ngOnInit() {
14
+ this.filter.valueChanges.subscribe((val) => {
15
+ this.fc.setValue(val.value, { emitEvent: false });
16
+ });
17
+ this.fc.valueChanges.pipe(debounceTime(250)).subscribe((val) => {
18
+ if (this.filter.set(val, val)) {
19
+ this.list.filters.update();
20
+ }
21
+ });
22
+ }
23
+ disable() {
24
+ this.filter.enabled = false;
25
+ this.list.filters.update();
26
+ }
27
+ }
28
+ ModelListTextFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ModelListTextFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
+ ModelListTextFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.9", type: ModelListTextFilterComponent, isStandalone: true, selector: "data-model-list-text-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" type=\"text\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ModelListTextFilterComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'data-model-list-text-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" type=\"text\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n</div>" }]
33
+ }], ctorParameters: function () { return []; }, propDecorators: { list: [{
34
+ type: Input
35
+ }], filter: [{
36
+ type: Input
37
+ }], classes: [{
38
+ type: Input
39
+ }] } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC10ZXh0LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtdGV4dC1maWx0ZXIvbW9kZWwtbGlzdC10ZXh0LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtdGV4dC1maWx0ZXIvbW9kZWwtbGlzdC10ZXh0LWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVUvQyxNQUFNLE9BQU8sNEJBQTRCO0lBTXZDO1FBSGdCLFlBQU8sR0FBc0IsRUFBRSxDQUFDO1FBQ3pDLE9BQUUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFFdEIsQ0FBQztJQUVULFFBQVE7UUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN6QyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBRSxHQUF1QixDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzdELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7eUhBdEJVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLHVKQ2Z6Qyx1VEFLTSx5RERRTSxZQUFZLDRIQUFFLG1CQUFtQjsyRkFFaEMsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNFLDZCQUE2QixjQUczQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUM7MEVBRzVCLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RlbExpc3QgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNb2RlbExpc3RUZXh0RmlsdGVyIH0gZnJvbSAnLi9tb2RlbC1saXN0LXRleHQtZmlsdGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJRGlzcEVkaXRDaG9pY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXNwZWRpdC9kaXNwZWRpdC9kaXNwZWRpdC5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLW1vZGVsLWxpc3QtdGV4dC1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtbGlzdC10ZXh0LWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGVsLWxpc3QtdGV4dC1maWx0ZXIuY29tcG9uZW50LnNhc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdFRleHRGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwdWJsaWMgbGlzdCE6IE1vZGVsTGlzdDxhbnk+O1xuICBASW5wdXQoKSBwdWJsaWMgZmlsdGVyITogTW9kZWxMaXN0VGV4dEZpbHRlcjtcbiAgQElucHV0KCkgcHVibGljIGNsYXNzZXM6IHN0cmluZ1tdIHwgc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBmYyA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZmlsdGVyLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCkgPT4ge1xuICAgICAgdGhpcy5mYy5zZXRWYWx1ZSgodmFsIGFzIElEaXNwRWRpdENob2ljZSkudmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9KTtcbiAgICB0aGlzLmZjLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgyNTApKS5zdWJzY3JpYmUoKHZhbCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyLnNldCh2YWwsIHZhbCkpIHtcbiAgICAgICAgdGhpcy5saXN0LmZpbHRlcnMudXBkYXRlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZGlzYWJsZSgpIHtcbiAgICB0aGlzLmZpbHRlci5lbmFibGVkID0gZmFsc2U7XG4gICAgdGhpcy5saXN0LmZpbHRlcnMudXBkYXRlKCk7XG4gIH1cbn1cbiIsIlxuPGRpdiBjbGFzcz1cImZpbHRlcml0ZW1cIiBbbmdDbGFzc109XCJmaWx0ZXIuZGlzcGxheUNsYXNzZXMgfHwgY2xhc3Nlc1wiPlxuICA8ZGl2IGNsYXNzPVwidHJhc2ggZmxvYXQtZW5kXCIgKGNsaWNrKT1cImRpc2FibGUoKVwiPjxpIGNsYXNzPVwiYmkgYmktdHJhc2hcIj48L2k+PC9kaXY+XG4gIDxsYWJlbD57e2ZpbHRlci5sYWJlbH19PC9sYWJlbD5cbiAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cInRleHRcIiBbZm9ybUNvbnRyb2xdPVwiZmNcIiBbcGxhY2Vob2xkZXJdPVwiZmlsdGVyLmhlbHBcIj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { ModelListFilter } from "../../model-list-filter";
2
+ export class ModelListTextFilter extends ModelListFilter {
3
+ constructor(params) {
4
+ super(params);
5
+ this.type = "text";
6
+ if (this.label == "") {
7
+ this.label = "Recherche par texte";
8
+ }
9
+ if (this.help == "") {
10
+ this.help = "Texte à rechercher";
11
+ }
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC10ZXh0LWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC10ZXh0LWZpbHRlci9tb2RlbC1saXN0LXRleHQtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQXdCLE1BQU0seUJBQXlCLENBQUM7QUFFL0UsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7SUFDdEQsWUFBWSxNQUE2QjtRQUN2QyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcscUJBQXFCLENBQUM7U0FDcEM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUM7U0FDbEM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vZGVsTGlzdEZpbHRlciwgTW9kZWxMaXN0RmlsdGVyUGFyYW1zfSBmcm9tIFwiLi4vLi4vbW9kZWwtbGlzdC1maWx0ZXJcIjtcblxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdFRleHRGaWx0ZXIgZXh0ZW5kcyBNb2RlbExpc3RGaWx0ZXIge1xuICBjb25zdHJ1Y3RvcihwYXJhbXM6IE1vZGVsTGlzdEZpbHRlclBhcmFtcykge1xuICAgIHN1cGVyKHBhcmFtcyk7XG4gICAgdGhpcy50eXBlID0gXCJ0ZXh0XCI7XG4gICAgaWYgKHRoaXMubGFiZWwgPT0gXCJcIikge1xuICAgICAgdGhpcy5sYWJlbCA9IFwiUmVjaGVyY2hlIHBhciB0ZXh0ZVwiO1xuICAgIH1cbiAgICBpZiAodGhpcy5oZWxwID09IFwiXCIpIHtcbiAgICAgIHRoaXMuaGVscCA9IFwiVGV4dGUgw6AgcmVjaGVyY2hlclwiO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ export class ModelListTreeFilterComponent {
5
+ constructor() {
6
+ this.classes = '';
7
+ }
8
+ }
9
+ ModelListTreeFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ModelListTreeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ ModelListTreeFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.9", type: ModelListTreeFilterComponent, isStandalone: true, selector: "data-model-list-tree-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "<p>model-list-tree-filter works!</p>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ModelListTreeFilterComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'data-model-list-tree-filter', standalone: true, imports: [CommonModule], template: "<p>model-list-tree-filter works!</p>" }]
14
+ }], ctorParameters: function () { return []; }, propDecorators: { list: [{
15
+ type: Input
16
+ }], filter: [{
17
+ type: Input
18
+ }], classes: [{
19
+ type: Input
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC10cmVlLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtdHJlZS1maWx0ZXIvbW9kZWwtbGlzdC10cmVlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtdHJlZS1maWx0ZXIvbW9kZWwtbGlzdC10cmVlLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBUy9DLE1BQU0sT0FBTyw0QkFBNEI7SUFLdkM7UUFGZ0IsWUFBTyxHQUFzQixFQUFFLENBQUM7SUFFakMsQ0FBQzs7eUhBTEwsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsdUpDWnpDLHNDQUFvQyx5RERVeEIsWUFBWTsyRkFFWCw0QkFBNEI7a0JBUHhDLFNBQVM7K0JBQ0UsNkJBQTZCLGNBRzNCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzswRUFHUCxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGVsTGlzdCB9IGZyb20gJy4uLy4uLy4uL21vZGVsLWxpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBNb2RlbExpc3RUcmVlRmlsdGVyIH0gZnJvbSAnLi9tb2RlbC1saXN0LXRyZWUtZmlsdGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdGEtbW9kZWwtbGlzdC10cmVlLWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC1saXN0LXRyZWUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kZWwtbGlzdC10cmVlLWZpbHRlci5jb21wb25lbnQuc2FzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxMaXN0VHJlZUZpbHRlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBsaXN0ITogTW9kZWxMaXN0PGFueT47XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXIhOiBNb2RlbExpc3RUcmVlRmlsdGVyO1xuICBASW5wdXQoKSBwdWJsaWMgY2xhc3Nlczogc3RyaW5nW10gfCBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iLCI8cD5tb2RlbC1saXN0LXRyZWUtZmlsdGVyIHdvcmtzITwvcD4iXX0=
@@ -0,0 +1,14 @@
1
+ import { ModelListFilter } from "../../model-list-filter";
2
+ export class ModelListTreeFilter extends ModelListFilter {
3
+ constructor(params) {
4
+ super(params);
5
+ this.type = "tree";
6
+ if (this.label == "") {
7
+ this.label = "Sélectionnez dans la hiérarchie";
8
+ }
9
+ if (this.help == "") {
10
+ this.help = "Texte à rechercher";
11
+ }
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC10cmVlLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC10cmVlLWZpbHRlci9tb2RlbC1saXN0LXRyZWUtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQXdCLE1BQU0seUJBQXlCLENBQUM7QUFFL0UsTUFBTSxPQUFPLG1CQUFxQixTQUFRLGVBQWU7SUFDdkQsWUFBWSxNQUE2QjtRQUN2QyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsaUNBQWlDLENBQUM7U0FDaEQ7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUM7U0FDbEM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vZGVsTGlzdEZpbHRlciwgTW9kZWxMaXN0RmlsdGVyUGFyYW1zfSBmcm9tIFwiLi4vLi4vbW9kZWwtbGlzdC1maWx0ZXJcIjtcblxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdFRyZWVGaWx0ZXIgIGV4dGVuZHMgTW9kZWxMaXN0RmlsdGVyIHtcbiAgY29uc3RydWN0b3IocGFyYW1zOiBNb2RlbExpc3RGaWx0ZXJQYXJhbXMpIHtcbiAgICBzdXBlcihwYXJhbXMpO1xuICAgIHRoaXMudHlwZSA9IFwidHJlZVwiO1xuICAgIGlmICh0aGlzLmxhYmVsID09IFwiXCIpIHtcbiAgICAgIHRoaXMubGFiZWwgPSBcIlPDqWxlY3Rpb25uZXogZGFucyBsYSBoacOpcmFyY2hpZVwiO1xuICAgIH1cbiAgICBpZiAodGhpcy5oZWxwID09IFwiXCIpIHtcbiAgICAgIHRoaXMuaGVscCA9IFwiVGV4dGUgw6AgcmVjaGVyY2hlclwiO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,145 @@
1
+ import { ReplaySubject } from 'rxjs';
2
+ export class ModelListFilter {
3
+ constructor(params) {
4
+ this.pristine = true;
5
+ this.multi = false;
6
+ /** Single current value */
7
+ this._value = null;
8
+ /** Multiple current value */
9
+ this._mvalue = new Map();
10
+ /** Single current value observable */
11
+ this._current = new ReplaySubject(1);
12
+ /** Multiple current value observable */
13
+ this._mcurrent = new ReplaySubject(1);
14
+ this.name = params.name;
15
+ this.field = params.field;
16
+ this.label = params.label || '';
17
+ this.help = params.help || '';
18
+ this.desc = params.desc;
19
+ this.displayClasses = params.displayClasses;
20
+ this.allowed = false;
21
+ this.enabled = false;
22
+ this.type = 'text';
23
+ // FIXME: add value init
24
+ }
25
+ get mcurrent$() {
26
+ return this._mcurrent.asObservable();
27
+ }
28
+ get current$() {
29
+ return this._current.asObservable();
30
+ }
31
+ get valueChanges() {
32
+ if (this.multi) {
33
+ return this._mcurrent.asObservable();
34
+ }
35
+ return this._current.asObservable();
36
+ }
37
+ updateFilter(filter) {
38
+ if (this.multi && this._mvalue.size > 0) {
39
+ filter[this.field] = this.getMultiValue();
40
+ }
41
+ else if (!this.multi &&
42
+ this._value !== undefined &&
43
+ this._value !== null) {
44
+ filter[this.field] = this.getValue();
45
+ }
46
+ }
47
+ clear(notify = true) {
48
+ if (this.multi) {
49
+ this._mvalue = new Map();
50
+ }
51
+ else {
52
+ this._value = null;
53
+ }
54
+ this.notify(notify);
55
+ }
56
+ set(value, desc, notify = true) {
57
+ if (this.multi) {
58
+ return this.mset(value, desc, notify);
59
+ }
60
+ return this.sset(value, desc, notify);
61
+ }
62
+ unset(value, desc, notify = true) {
63
+ if (this.multi) {
64
+ return this.munset(value, desc, notify);
65
+ }
66
+ return this.sunset(value, desc, notify);
67
+ }
68
+ toggle(value, desc, notify = true) {
69
+ if (this.multi) {
70
+ return this.mtoggle(value, desc, notify);
71
+ }
72
+ return this.stoggle(value, desc, notify);
73
+ }
74
+ getValue() {
75
+ return `${this._value?.value}`;
76
+ }
77
+ mtoggle(value, desc, notify = true) {
78
+ if (this._mvalue.has(`${value}`)) {
79
+ this._mvalue.delete(`${value}`);
80
+ }
81
+ else {
82
+ this._mvalue.set(`${value}`, desc);
83
+ }
84
+ this.notify(notify);
85
+ return true;
86
+ }
87
+ mset(value, desc, notify = true) {
88
+ if (!this._mvalue.has(`${value}`)) {
89
+ this._mvalue.set(`${value}`, desc);
90
+ this.notify(notify);
91
+ return true;
92
+ }
93
+ return false;
94
+ }
95
+ munset(value, desc, notify = true) {
96
+ if (this._mvalue.has(`${value}`)) {
97
+ this._mvalue.delete(`${value}`);
98
+ this.notify(notify);
99
+ return true;
100
+ }
101
+ return false;
102
+ }
103
+ stoggle(value, desc, notify = true) {
104
+ if (this._value !== null && this._value.value === value) {
105
+ this._value = null;
106
+ }
107
+ else {
108
+ this._value = { value, desc };
109
+ }
110
+ this.notify(notify);
111
+ return true;
112
+ }
113
+ sset(value, desc, notify = true) {
114
+ if (!(this._value !== null && this._value.value === value)) {
115
+ this._value = { value, desc };
116
+ this.notify(notify);
117
+ return true;
118
+ }
119
+ return false;
120
+ }
121
+ sunset(value, desc, notify = true) {
122
+ if (this._value !== null) {
123
+ this._value = null;
124
+ this.notify(notify);
125
+ return true;
126
+ }
127
+ return false;
128
+ }
129
+ getMultiValue() {
130
+ return Array.from(this._mvalue.keys()).join(',');
131
+ }
132
+ notify(notify = true) {
133
+ if (notify) {
134
+ if (this.multi) {
135
+ this._mcurrent.next(Array.from(this._mvalue.entries()).map(([k, v]) => {
136
+ return { desc: v, value: k };
137
+ }));
138
+ }
139
+ else {
140
+ this._current.next(this._value);
141
+ }
142
+ }
143
+ }
144
+ }
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9tb2RlbC1saXN0LWZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBY2pELE1BQU0sT0FBTyxlQUFlO0lBc0IxQixZQUFZLE1BQTZCO1FBWmxDLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVyQiwyQkFBMkI7UUFDakIsV0FBTSxHQUEyQixJQUFJLENBQUM7UUFDaEQsNkJBQTZCO1FBQ25CLFlBQU8sR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUM5QyxzQ0FBc0M7UUFDNUIsYUFBUSxHQUFHLElBQUksYUFBYSxDQUF5QixDQUFDLENBQUMsQ0FBQztRQUNsRSx3Q0FBd0M7UUFDOUIsY0FBUyxHQUFHLElBQUksYUFBYSxDQUFvQixDQUFDLENBQUMsQ0FBQztRQUc1RCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JC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LElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNoRCxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUNILENBQUM7YUFDSDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDakM7U0FDRjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbHRlckRhdGEgfSBmcm9tICcuLi8uLi9kYXRhL2RhdGEtcXVlcnknO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRklMVEVSX1RZUEUgfSBmcm9tICcuL2ZpbHRlcnMvZmlsdGVydHlwZXMnO1xuaW1wb3J0IHsgSURpc3BFZGl0Q2hvaWNlIH0gZnJvbSAnLi4vLi4vZGlzcGVkaXQvZGlzcGVkaXQvZGlzcGVkaXQuY29uc3RhbnRzJztcblxuZXhwb3J0IGludGVyZmFjZSBNb2RlbExpc3RGaWx0ZXJQYXJhbXMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBoZWxwPzogc3RyaW5nO1xuICB2YWx1ZT86IGFueTtcbiAgZGVzYz86IGFueTtcbiAgZGlzcGxheUNsYXNzZXM/OiBzdHJpbmdbXSB8IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdEZpbHRlciBpbXBsZW1lbnRzIE1vZGVsTGlzdEZpbHRlclBhcmFtcyB7XG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBmaWVsZDogc3RyaW5nO1xuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcbiAgcHVibGljIGhlbHA6IHN0cmluZztcbiAgcHVibGljIGRlc2M/OiBhbnk7XG4gIHB1YmxpYyB0eXBlOiBGSUxURVJfVFlQRTtcbiAgcHVibGljIGFsbG93ZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBlbmFibGVkOiBib29sZWFuO1xuICBwdWJsaWMgZGlzcGxheUNsYXNzZXM/OiBzdHJpbmdbXSB8IHN0cmluZztcbiAgcHVibGljIHByaXN0aW5lID0gdHJ1ZTtcbiAgcHVibGljIG11bHRpID0gZmFsc2U7XG5cbiAgLyoqIFNpbmdsZSBjdXJyZW50IHZhbHVlICovXG4gIHByb3RlY3RlZCBfdmFsdWU6IElEaXNwRWRpdENob2ljZSB8IG51bGwgPSBudWxsO1xuICAvKiogTXVsdGlwbGUgY3VycmVudCB2YWx1ZSAqL1xuICBwcm90ZWN0ZWQgX212YWx1ZSA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gIC8qKiBTaW5nbGUgY3VycmVudCB2YWx1ZSBvYnNlcnZhYmxlICovXG4gIHByb3RlY3RlZCBfY3VycmVudCA9IG5ldyBSZXBsYXlTdWJqZWN0PElEaXNwRWRpdENob2ljZSB8IG51bGw+KDEpO1xuICAvKiogTXVsdGlwbGUgY3VycmVudCB2YWx1ZSBvYnNlcnZhYmxlICovXG4gIHByb3RlY3RlZCBfbWN1cnJlbnQgPSBuZXcgUmVwbGF5U3ViamVjdDxJRGlzcEVkaXRDaG9pY2VbXT4oMSk7XG5cbiAgY29uc3RydWN0b3IocGFyYW1zOiBNb2RlbExpc3RGaWx0ZXJQYXJhbXMpIHtcbiAgICB0aGlzLm5hbWUgPSBwYXJhbXMubmFtZTtcbiAgICB0aGlzLmZpZWxkID0gcGFyYW1zLmZpZWxkO1xuICAgIHRoaXMubGFiZWwgPSBwYXJhbXMubGFiZWwgfHwgJyc7XG4gICAgdGhpcy5oZWxwID0gcGFyYW1zLmhlbHAgfHwgJyc7XG4gICAgdGhpcy5kZXNjID0gcGFyYW1zLmRlc2M7XG4gICAgdGhpcy5kaXNwbGF5Q2xhc3NlcyA9IHBhcmFtcy5kaXNwbGF5Q2xhc3NlcztcbiAgICB0aGlzLmFsbG93ZWQgPSBmYWxzZTtcbiAgICB0aGlzLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLnR5cGUgPSAndGV4dCc7XG4gICAgLy8gRklYTUU6IGFkZCB2YWx1ZSBpbml0XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1jdXJyZW50JCgpOiBPYnNlcnZhYmxlPElEaXNwRWRpdENob2ljZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX21jdXJyZW50LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50JCgpOiBPYnNlcnZhYmxlPElEaXNwRWRpdENob2ljZSB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWVDaGFuZ2VzKCk6IE9ic2VydmFibGU8XG4gICAgSURpc3BFZGl0Q2hvaWNlIHwgSURpc3BFZGl0Q2hvaWNlW10gfCBudWxsXG4gID4ge1xuICAgIGlmICh0aGlzLm11bHRpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbWN1cnJlbnQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZpbHRlcihmaWx0ZXI6IEZpbHRlckRhdGEpIHtcbiAgICBpZiAodGhpcy5tdWx0aSAmJiB0aGlzLl9tdmFsdWUuc2l6ZSA+IDApIHtcbiAgICAgIGZpbHRlclt0aGlzLmZpZWxkXSA9IHRoaXMuZ2V0TXVsdGlWYWx1ZSgpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAhdGhpcy5tdWx0aSAmJlxuICAgICAgdGhpcy5fdmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5fdmFsdWUgIT09IG51bGxcbiAgICApIHtcbiAgICAgIGZpbHRlclt0aGlzLmZpZWxkXSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xlYXIobm90aWZ5OiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGlmICh0aGlzLm11bHRpKSB7XG4gICAgICB0aGlzLl9tdmFsdWUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMubm90aWZ5KG5vdGlmeSk7XG4gIH1cblxuICBwdWJsaWMgc2V0KHZhbHVlOiBhbnksIGRlc2M6IHN0cmluZywgbm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm11bHRpKSB7XG4gICAgICByZXR1cm4gdGhpcy5tc2V0KHZhbHVlLCBkZXNjLCBub3RpZnkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zc2V0KHZhbHVlLCBkZXNjLCBub3RpZnkpO1xuICB9XG5cbiAgcHVibGljIHVuc2V0KHZhbHVlOiBhbnksIGRlc2M6IHN0cmluZywgbm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm11bHRpKSB7XG4gICAgICByZXR1cm4gdGhpcy5tdW5zZXQodmFsdWUsIGRlc2MsIG5vdGlmeSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN1bnNldCh2YWx1ZSwgZGVzYywgbm90aWZ5KTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGUodmFsdWU6IGFueSwgZGVzYzogc3RyaW5nLCBub3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMubXVsdGkpIHtcbiAgICAgIHJldHVybiB0aGlzLm10b2dnbGUodmFsdWUsIGRlc2MsIG5vdGlmeSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0b2dnbGUodmFsdWUsIGRlc2MsIG5vdGlmeSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gYCR7dGhpcy5fdmFsdWU/LnZhbHVlfWA7XG4gIH1cblxuICBwcml2YXRlIG10b2dnbGUodmFsdWU6IGFueSwgZGVzYzogc3RyaW5nLCBub3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX212YWx1ZS5oYXMoYCR7dmFsdWV9YCkpIHtcbiAgICAgIHRoaXMuX212YWx1ZS5kZWxldGUoYCR7dmFsdWV9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX212YWx1ZS5zZXQoYCR7dmFsdWV9YCwgZGVzYyk7XG4gICAgfVxuICAgIHRoaXMubm90aWZ5KG5vdGlmeSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIG1zZXQodmFsdWU6IGFueSwgZGVzYzogc3RyaW5nLCBub3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLl9tdmFsdWUuaGFzKGAke3ZhbHVlfWApKSB7XG4gICAgICB0aGlzLl9tdmFsdWUuc2V0KGAke3ZhbHVlfWAsIGRlc2MpO1xuICAgICAgdGhpcy5ub3RpZnkobm90aWZ5KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIG11bnNldCh2YWx1ZTogYW55LCBkZXNjOiBzdHJpbmcsIG5vdGlmeTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fbXZhbHVlLmhhcyhgJHt2YWx1ZX1gKSkge1xuICAgICAgdGhpcy5fbXZhbHVlLmRlbGV0ZShgJHt2YWx1ZX1gKTtcbiAgICAgIHRoaXMubm90aWZ5KG5vdGlmeSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdG9nZ2xlKHZhbHVlOiBhbnksIGRlc2M6IHN0cmluZywgbm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLl92YWx1ZS52YWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmFsdWUgPSB7IHZhbHVlLCBkZXNjIH07XG4gICAgfVxuICAgIHRoaXMubm90aWZ5KG5vdGlmeSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIHNzZXQodmFsdWU6IGFueSwgZGVzYzogc3RyaW5nLCBub3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XG4gICAgaWYgKCEodGhpcy5fdmFsdWUgIT09IG51bGwgJiYgdGhpcy5fdmFsdWUudmFsdWUgPT09IHZhbHVlKSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB7IHZhbHVlLCBkZXNjIH07XG4gICAgICB0aGlzLm5vdGlmeShub3RpZnkpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vuc2V0KHZhbHVlOiBhbnksIGRlc2M6IHN0cmluZywgbm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy5ub3RpZnkobm90aWZ5KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldE11bHRpVmFsdWUoKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9tdmFsdWUua2V5cygpKS5qb2luKCcsJyk7XG4gIH1cblxuICBwcml2YXRlIG5vdGlmeShub3RpZnk6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgaWYgKG5vdGlmeSkge1xuICAgICAgaWYgKHRoaXMubXVsdGkpIHtcbiAgICAgICAgdGhpcy5fbWN1cnJlbnQubmV4dChcbiAgICAgICAgICBBcnJheS5mcm9tKHRoaXMuX212YWx1ZS5lbnRyaWVzKCkpLm1hcCgoW2ssIHZdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBkZXNjOiB2LCB2YWx1ZTogayB9O1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9jdXJyZW50Lm5leHQodGhpcy5fdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19