@solidev/data 0.0.8 → 0.1.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 (158) hide show
  1. package/esm2022/lib/auth/auth-interceptor.service.mjs +92 -0
  2. package/{esm2020 → esm2022}/lib/auth/auth.service.mjs +1 -1
  3. package/esm2022/lib/data/data-backend.mjs +135 -0
  4. package/esm2022/lib/data/data-model.mjs +292 -0
  5. package/esm2022/lib/dispedit/choice.pipe.mjs +81 -0
  6. package/{esm2020 → esm2022}/lib/dispedit/dispedit/dispedit.component.mjs +10 -5
  7. package/esm2022/lib/dispedit/factor.pipe.mjs +83 -0
  8. package/esm2022/lib/dispedit/factorc.pipe.mjs +101 -0
  9. package/esm2022/lib/dispedit/fkselect/fkselect.component.mjs +143 -0
  10. package/esm2022/lib/dispedit/flags/flags.component.mjs +141 -0
  11. package/esm2022/lib/dispedit/m2mselect/m2mselect.component.mjs +319 -0
  12. package/esm2022/lib/dispedit/richedit/richedit.component.mjs +127 -0
  13. package/esm2022/lib/dispedit/sdelete/sdelete.component.mjs +94 -0
  14. package/esm2022/lib/messages/message-zone/message-zone.component.mjs +58 -0
  15. package/esm2022/lib/messages/message.service.mjs +152 -0
  16. package/esm2022/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +66 -0
  17. package/esm2022/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +65 -0
  18. package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +113 -0
  19. package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +30 -0
  20. package/esm2022/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +41 -0
  21. package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +41 -0
  22. package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +22 -0
  23. package/esm2022/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +50 -0
  24. package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +64 -0
  25. package/esm2022/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +47 -0
  26. package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +57 -0
  27. package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +52 -0
  28. package/esm2022/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +41 -0
  29. package/esm2022/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +175 -0
  30. package/esm2022/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +51 -0
  31. package/esm2022/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +31 -0
  32. package/esm2022/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +71 -0
  33. package/esm2022/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +50 -0
  34. package/esm2022/lib/modellist/model-list.service.mjs +158 -0
  35. package/esm2022/lib/routing/breadcrumb/breadcrumb.component.mjs +143 -0
  36. package/esm2022/lib/updates/update/update.component.mjs +18 -0
  37. package/esm2022/lib/updates/update.service.mjs +59 -0
  38. package/esm2022/lib/uploader/ng-file-drop.directive.mjs +82 -0
  39. package/esm2022/lib/uploader/ng-file-select.directive.mjs +52 -0
  40. package/esm2022/lib/uploader/ngx-uploader.module.mjs +18 -0
  41. package/esm2022/lib/utils/tab-memory.service.mjs +81 -0
  42. package/{fesm2020 → fesm2022}/solidev-data.mjs +153 -149
  43. package/fesm2022/solidev-data.mjs.map +1 -0
  44. package/lib/dispedit/dispedit/dispedit.component.d.ts +1 -1
  45. package/lib/dispedit/fkselect/fkselect.component.d.ts +1 -1
  46. package/lib/dispedit/flags/flags.component.d.ts +1 -1
  47. package/lib/dispedit/m2mselect/m2mselect.component.d.ts +1 -1
  48. package/lib/dispedit/richedit/richedit.component.d.ts +1 -1
  49. package/lib/dispedit/sdelete/sdelete.component.d.ts +1 -1
  50. package/lib/messages/message-zone/message-zone.component.d.ts +1 -1
  51. package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +1 -1
  52. package/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.d.ts +1 -1
  53. package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.d.ts +1 -1
  54. package/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.d.ts +1 -1
  55. package/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.d.ts +1 -1
  56. package/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.d.ts +1 -1
  57. package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.d.ts +1 -1
  58. package/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.d.ts +1 -1
  59. package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.d.ts +1 -1
  60. package/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.d.ts +1 -1
  61. package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.d.ts +1 -1
  62. package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.d.ts +1 -1
  63. package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.d.ts +1 -1
  64. package/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.d.ts +1 -1
  65. package/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.d.ts +1 -1
  66. package/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.d.ts +1 -1
  67. package/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.d.ts +1 -1
  68. package/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.d.ts +1 -1
  69. package/lib/routing/breadcrumb/breadcrumb.component.d.ts +1 -1
  70. package/lib/uploader/ng-file-drop.directive.d.ts +1 -1
  71. package/lib/uploader/ng-file-select.directive.d.ts +1 -1
  72. package/package.json +7 -13
  73. package/esm2020/lib/auth/auth-interceptor.service.mjs +0 -91
  74. package/esm2020/lib/data/data-backend.mjs +0 -134
  75. package/esm2020/lib/data/data-model.mjs +0 -291
  76. package/esm2020/lib/dispedit/choice.pipe.mjs +0 -79
  77. package/esm2020/lib/dispedit/factor.pipe.mjs +0 -81
  78. package/esm2020/lib/dispedit/factorc.pipe.mjs +0 -99
  79. package/esm2020/lib/dispedit/fkselect/fkselect.component.mjs +0 -142
  80. package/esm2020/lib/dispedit/flags/flags.component.mjs +0 -140
  81. package/esm2020/lib/dispedit/m2mselect/m2mselect.component.mjs +0 -318
  82. package/esm2020/lib/dispedit/richedit/richedit.component.mjs +0 -126
  83. package/esm2020/lib/dispedit/sdelete/sdelete.component.mjs +0 -93
  84. package/esm2020/lib/messages/message-zone/message-zone.component.mjs +0 -57
  85. package/esm2020/lib/messages/message.service.mjs +0 -151
  86. package/esm2020/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +0 -65
  87. package/esm2020/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +0 -64
  88. package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +0 -112
  89. package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +0 -29
  90. package/esm2020/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +0 -40
  91. package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +0 -40
  92. package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +0 -21
  93. package/esm2020/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +0 -49
  94. package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +0 -63
  95. package/esm2020/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +0 -46
  96. package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +0 -56
  97. package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +0 -51
  98. package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +0 -40
  99. package/esm2020/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +0 -174
  100. package/esm2020/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +0 -50
  101. package/esm2020/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +0 -30
  102. package/esm2020/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +0 -70
  103. package/esm2020/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +0 -49
  104. package/esm2020/lib/modellist/model-list.service.mjs +0 -157
  105. package/esm2020/lib/routing/breadcrumb/breadcrumb.component.mjs +0 -142
  106. package/esm2020/lib/updates/update/update.component.mjs +0 -17
  107. package/esm2020/lib/updates/update.service.mjs +0 -58
  108. package/esm2020/lib/uploader/ng-file-drop.directive.mjs +0 -81
  109. package/esm2020/lib/uploader/ng-file-select.directive.mjs +0 -51
  110. package/esm2020/lib/uploader/ngx-uploader.module.mjs +0 -17
  111. package/esm2020/lib/utils/tab-memory.service.mjs +0 -80
  112. package/fesm2015/solidev-data.mjs +0 -6224
  113. package/fesm2015/solidev-data.mjs.map +0 -1
  114. package/fesm2020/solidev-data.mjs.map +0 -1
  115. /package/{esm2020 → esm2022}/lib/auth/jwt.mjs +0 -0
  116. /package/{esm2020 → esm2022}/lib/data/data-collection.mjs +0 -0
  117. /package/{esm2020 → esm2022}/lib/data/data-collection.mock.mjs +0 -0
  118. /package/{esm2020 → esm2022}/lib/data/data-parameters.mjs +0 -0
  119. /package/{esm2020 → esm2022}/lib/data/data-query.mjs +0 -0
  120. /package/{esm2020 → esm2022}/lib/data/data-query.mock.mjs +0 -0
  121. /package/{esm2020 → esm2022}/lib/data/fields/base.mjs +0 -0
  122. /package/{esm2020 → esm2022}/lib/data/fields/boolean.mjs +0 -0
  123. /package/{esm2020 → esm2022}/lib/data/fields/computed.mjs +0 -0
  124. /package/{esm2020 → esm2022}/lib/data/fields/datetime.mjs +0 -0
  125. /package/{esm2020 → esm2022}/lib/data/fields/index.mjs +0 -0
  126. /package/{esm2020 → esm2022}/lib/data/fields/numbers.mjs +0 -0
  127. /package/{esm2020 → esm2022}/lib/data/fields/primaryfield.mjs +0 -0
  128. /package/{esm2020 → esm2022}/lib/data/fields/relations.mjs +0 -0
  129. /package/{esm2020 → esm2022}/lib/data/fields/stringfields.mjs +0 -0
  130. /package/{esm2020 → esm2022}/lib/dispedit/dispedit/dispedit.constants.mjs +0 -0
  131. /package/{esm2020 → esm2022}/lib/modellist/model-list-fields/model-list-field-header/messages.mjs +0 -0
  132. /package/{esm2020 → esm2022}/lib/modellist/model-list-fields/model-list-fields.mjs +0 -0
  133. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/filtertypes.mjs +0 -0
  134. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.mjs +0 -0
  135. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.mjs +0 -0
  136. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.mjs +0 -0
  137. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.mjs +0 -0
  138. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.mjs +0 -0
  139. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.mjs +0 -0
  140. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/adapters/ban.mjs +0 -0
  141. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.mjs +0 -0
  142. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.mjs +0 -0
  143. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.mjs +0 -0
  144. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.mjs +0 -0
  145. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.mjs +0 -0
  146. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.mjs +0 -0
  147. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/model-list-filter.mjs +0 -0
  148. /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/model-list-filters.mjs +0 -0
  149. /package/{esm2020 → esm2022}/lib/modellist/model-list-paginator/model-list-paginator.mjs +0 -0
  150. /package/{esm2020 → esm2022}/lib/modellist/model-list-sorter/model-list-sorter.mjs +0 -0
  151. /package/{esm2020 → esm2022}/lib/routing/routing.mjs +0 -0
  152. /package/{esm2020 → esm2022}/lib/uploader/index.mjs +0 -0
  153. /package/{esm2020 → esm2022}/lib/uploader/interfaces.mjs +0 -0
  154. /package/{esm2020 → esm2022}/lib/uploader/ngx-uploader.class.mjs +0 -0
  155. /package/{esm2020 → esm2022}/lib/utils/slugify.mjs +0 -0
  156. /package/{esm2020 → esm2022}/lib/utils/template.mjs +0 -0
  157. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  158. /package/{esm2020 → esm2022}/solidev-data.mjs +0 -0
@@ -0,0 +1,113 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { debounceTime, distinctUntilChanged, Subject, takeUntil, } from 'rxjs';
3
+ import { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';
4
+ import { switchMap } from 'rxjs/operators';
5
+ import { CommonModule } from '@angular/common';
6
+ import { NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@ng-bootstrap/ng-bootstrap";
10
+ import * as i3 from "@angular/forms";
11
+ class ModelListAutocompleteFilterComponent {
12
+ constructor() {
13
+ this.classes = '';
14
+ this.fc = new UntypedFormControl();
15
+ this.search = this._search.bind(this);
16
+ this.display = this._display.bind(this);
17
+ this._resetAfterSet = false;
18
+ this._subscription = new Subject();
19
+ }
20
+ ngOnInit() {
21
+ this._setDisplay();
22
+ this.fc.valueChanges.pipe(debounceTime(250)).subscribe((val) => {
23
+ if (val) {
24
+ console.log('value changed', val, this._display(val));
25
+ if (this.filter.set(val.id, this._display(val))) {
26
+ this.list.filters.update();
27
+ if (this._resetAfterSet) {
28
+ this.fc.setValue(null);
29
+ }
30
+ }
31
+ }
32
+ });
33
+ }
34
+ disable() {
35
+ this.filter.enabled = false;
36
+ this.list.filters.update();
37
+ }
38
+ ngOnDestroy() {
39
+ this._subscription.next();
40
+ this._subscription.complete();
41
+ }
42
+ scrollAction($event) {
43
+ if (!this.filter.scroll) {
44
+ return;
45
+ }
46
+ const elem = $event.currentTarget.nextElementSibling.getElementsByClassName('active')[0];
47
+ elem.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
48
+ }
49
+ _setDisplay() {
50
+ if (this.filter.display) {
51
+ if (this.filter.display && typeof this.filter.display === 'string') {
52
+ this._tpl = (model) => `${model[this.filter.display]}`;
53
+ }
54
+ else if (this.filter.display &&
55
+ typeof this.filter.display === 'function') {
56
+ this._tpl = this.filter.display.bind(this);
57
+ }
58
+ }
59
+ else {
60
+ this._tpl = (model) => {
61
+ if (model._display) {
62
+ return model._display;
63
+ }
64
+ else {
65
+ return `${model['name'] ||
66
+ model['title'] ||
67
+ model['id']}`;
68
+ }
69
+ };
70
+ }
71
+ }
72
+ /**
73
+ * Display function. Uses descfield or desc tpl (lodash template using model fields).
74
+ */
75
+ _display(x) {
76
+ if (x) {
77
+ return this._tpl(x);
78
+ }
79
+ return '';
80
+ }
81
+ _search(text$) {
82
+ return text$.pipe(debounceTime(750), distinctUntilChanged(), switchMap((term) => {
83
+ const f = {};
84
+ // Generate filter
85
+ for (const k of Object.keys(this.filter.filter)) {
86
+ if (this.filter.filter[k] !== null ||
87
+ this.filter.filter[k] !== undefined) {
88
+ f[k] = this.filter.filter[k];
89
+ }
90
+ }
91
+ // Add search param
92
+ f[this.filter.searchparam] = term;
93
+ // Update queryset filter
94
+ this.filter.queryset?.filter(f);
95
+ // Launch queryset
96
+ return this.filter.queryset.get();
97
+ }), takeUntil(this._subscription));
98
+ }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListAutocompleteFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
100
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ModelListAutocompleteFilterComponent, isStandalone: true, selector: "data-model-list-autocomplete-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\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: NgbTypeaheadModule }, { kind: "directive", type: i2.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
101
+ }
102
+ export { ModelListAutocompleteFilterComponent };
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListAutocompleteFilterComponent, decorators: [{
104
+ type: Component,
105
+ args: [{ selector: 'data-model-list-autocomplete-filter', standalone: true, imports: [CommonModule, NgbTypeaheadModule, 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\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\n</div>" }]
106
+ }], ctorParameters: function () { return []; }, propDecorators: { list: [{
107
+ type: Input
108
+ }], filter: [{
109
+ type: Input
110
+ }], classes: [{
111
+ type: Input
112
+ }] } });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1hdXRvY29tcGxldGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC1hdXRvY29tcGxldGUtZmlsdGVyL21vZGVsLWxpc3QtYXV0b2NvbXBsZXRlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtYXV0b2NvbXBsZXRlLWZpbHRlci9tb2RlbC1saXN0LWF1dG9jb21wbGV0ZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBS3BFLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBRXBCLE9BQU8sRUFDUCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQUVoRSxNQU9hLG9DQUFvQztJQWEvQztRQVJnQixZQUFPLEdBQXNCLEVBQUUsQ0FBQztRQUN6QyxPQUFFLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxZQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFekIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRTdCLENBQUM7SUFFVCxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUM3RCxJQUFJLEdBQUcsRUFBRTtnQkFDUCxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDM0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO3dCQUN2QixJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDeEI7aUJBQ0Y7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxZQUFZLENBQUMsTUFBVztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDdkIsT0FBTztTQUNSO1FBQ0QsTUFBTSxJQUFJLEdBQ1IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FDNUQsUUFBUSxDQUNULENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFRLEVBQUUsRUFBRSxDQUN2QixHQUFJLEtBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQWlCLENBQUMsRUFBRSxDQUFDO2FBQ3REO2lCQUFNLElBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO2dCQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFDekM7Z0JBQ0EsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDNUM7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQVEsRUFBRSxFQUFFO2dCQUN2QixJQUFLLEtBQWEsQ0FBQyxRQUFRLEVBQUU7b0JBQzNCLE9BQVEsS0FBYSxDQUFDLFFBQVEsQ0FBQztpQkFDaEM7cUJBQU07b0JBQ0wsT0FBTyxHQUNKLEtBQWEsQ0FBQyxNQUFNLENBQUM7d0JBQ3JCLEtBQWEsQ0FBQyxPQUFPLENBQUM7d0JBQ3RCLEtBQWEsQ0FBQyxJQUFJLENBQ3JCLEVBQUUsQ0FBQztpQkFDSjtZQUNILENBQUMsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssUUFBUSxDQUFDLENBQU07UUFDckIsSUFBSSxDQUFDLEVBQUU7WUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckI7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyxPQUFPLENBQUMsS0FBeUI7UUFDdkMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUNmLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDakIsTUFBTSxDQUFDLEdBQVEsRUFBRSxDQUFDO1lBQ2xCLGtCQUFrQjtZQUNsQixLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDL0MsSUFDRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJO29CQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLEVBQ25DO29CQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDOUI7YUFDRjtZQUNELG1CQUFtQjtZQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDbEMseUJBQXlCO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxrQkFBa0I7WUFDbEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUM5QixDQUFDO0lBQ0osQ0FBQzs4R0EvR1Usb0NBQW9DO2tHQUFwQyxvQ0FBb0MsK0pDeEJqRCxxakJBS00seUREaUJNLFlBQVksNEhBQUUsa0JBQWtCLGtXQUFFLG1CQUFtQjs7U0FFcEQsb0NBQW9DOzJGQUFwQyxvQ0FBb0M7a0JBUGhELFNBQVM7K0JBQ0UscUNBQXFDLGNBR25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQzswRUFLaEQsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kZWxMaXN0IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGVsTGlzdEF1dG9jb21wbGV0ZUZpbHRlciB9IGZyb20gJy4vbW9kZWwtbGlzdC1hdXRvY29tcGxldGUtZmlsdGVyJztcbmltcG9ydCB7IFRwbEZ1biB9IGZyb20gJy4uLy4uLy4uLy4uL2Rpc3BlZGl0L2Zrc2VsZWN0L2Zrc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9kYXRhL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHtcbiAgZGVib3VuY2VUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ2JUeXBlYWhlYWRNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdGEtbW9kZWwtbGlzdC1hdXRvY29tcGxldGUtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGVsLWxpc3QtYXV0b2NvbXBsZXRlLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGVsLWxpc3QtYXV0b2NvbXBsZXRlLWZpbHRlci5jb21wb25lbnQuc2FzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ2JUeXBlYWhlYWRNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RlbExpc3RBdXRvY29tcGxldGVGaWx0ZXJDb21wb25lbnQ8VCBleHRlbmRzIERhdGFNb2RlbD5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKSBwdWJsaWMgbGlzdCE6IE1vZGVsTGlzdDxhbnk+O1xuICBASW5wdXQoKSBwdWJsaWMgZmlsdGVyITogTW9kZWxMaXN0QXV0b2NvbXBsZXRlRmlsdGVyPFQ+O1xuICBASW5wdXQoKSBwdWJsaWMgY2xhc3Nlczogc3RyaW5nW10gfCBzdHJpbmcgPSAnJztcbiAgcHVibGljIGZjID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuICBwdWJsaWMgc2VhcmNoID0gdGhpcy5fc2VhcmNoLmJpbmQodGhpcyk7XG4gIHB1YmxpYyBkaXNwbGF5ID0gdGhpcy5fZGlzcGxheS5iaW5kKHRoaXMpO1xuICBwcm90ZWN0ZWQgX3Jlc2V0QWZ0ZXJTZXQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdHBsITogVHBsRnVuPFQ+O1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc2V0RGlzcGxheSgpO1xuICAgIHRoaXMuZmMudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDI1MCkpLnN1YnNjcmliZSgodmFsKSA9PiB7XG4gICAgICBpZiAodmFsKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCd2YWx1ZSBjaGFuZ2VkJywgdmFsLCB0aGlzLl9kaXNwbGF5KHZhbCkpO1xuICAgICAgICBpZiAodGhpcy5maWx0ZXIuc2V0KHZhbC5pZCwgdGhpcy5fZGlzcGxheSh2YWwpKSkge1xuICAgICAgICAgIHRoaXMubGlzdC5maWx0ZXJzLnVwZGF0ZSgpO1xuICAgICAgICAgIGlmICh0aGlzLl9yZXNldEFmdGVyU2V0KSB7XG4gICAgICAgICAgICB0aGlzLmZjLnNldFZhbHVlKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRpc2FibGUoKSB7XG4gICAgdGhpcy5maWx0ZXIuZW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMubGlzdC5maWx0ZXJzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5uZXh0KCk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsQWN0aW9uKCRldmVudDogYW55KSB7XG4gICAgaWYgKCF0aGlzLmZpbHRlci5zY3JvbGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZWxlbSA9XG4gICAgICAkZXZlbnQuY3VycmVudFRhcmdldC5uZXh0RWxlbWVudFNpYmxpbmcuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcbiAgICAgICAgJ2FjdGl2ZSdcbiAgICAgIClbMF07XG4gICAgZWxlbS5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICduZWFyZXN0JyB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldERpc3BsYXkoKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyLmRpc3BsYXkpIHtcbiAgICAgIGlmICh0aGlzLmZpbHRlci5kaXNwbGF5ICYmIHR5cGVvZiB0aGlzLmZpbHRlci5kaXNwbGF5ID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLl90cGwgPSAobW9kZWw6IFQpID0+XG4gICAgICAgICAgYCR7KG1vZGVsIGFzIGFueSlbdGhpcy5maWx0ZXIuZGlzcGxheSBhcyBzdHJpbmddfWA7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB0aGlzLmZpbHRlci5kaXNwbGF5ICYmXG4gICAgICAgIHR5cGVvZiB0aGlzLmZpbHRlci5kaXNwbGF5ID09PSAnZnVuY3Rpb24nXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdHBsID0gdGhpcy5maWx0ZXIuZGlzcGxheS5iaW5kKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl90cGwgPSAobW9kZWw6IFQpID0+IHtcbiAgICAgICAgaWYgKChtb2RlbCBhcyBhbnkpLl9kaXNwbGF5KSB7XG4gICAgICAgICAgcmV0dXJuIChtb2RlbCBhcyBhbnkpLl9kaXNwbGF5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBgJHtcbiAgICAgICAgICAgIChtb2RlbCBhcyBhbnkpWyduYW1lJ10gfHxcbiAgICAgICAgICAgIChtb2RlbCBhcyBhbnkpWyd0aXRsZSddIHx8XG4gICAgICAgICAgICAobW9kZWwgYXMgYW55KVsnaWQnXVxuICAgICAgICAgIH1gO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5IGZ1bmN0aW9uLiBVc2VzIGRlc2NmaWVsZCBvciBkZXNjIHRwbCAobG9kYXNoIHRlbXBsYXRlIHVzaW5nIG1vZGVsIGZpZWxkcykuXG4gICAqL1xuICBwcml2YXRlIF9kaXNwbGF5KHg6IGFueSk6IGFueSB7XG4gICAgaWYgKHgpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cGwoeCk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHByaXZhdGUgX3NlYXJjaCh0ZXh0JDogT2JzZXJ2YWJsZTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGV4dCQucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSg3NTApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcCgodGVybSkgPT4ge1xuICAgICAgICBjb25zdCBmOiBhbnkgPSB7fTtcbiAgICAgICAgLy8gR2VuZXJhdGUgZmlsdGVyXG4gICAgICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyh0aGlzLmZpbHRlci5maWx0ZXIpKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5maWx0ZXIuZmlsdGVyW2tdICE9PSBudWxsIHx8XG4gICAgICAgICAgICB0aGlzLmZpbHRlci5maWx0ZXJba10gIT09IHVuZGVmaW5lZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZltrXSA9IHRoaXMuZmlsdGVyLmZpbHRlcltrXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWRkIHNlYXJjaCBwYXJhbVxuICAgICAgICBmW3RoaXMuZmlsdGVyLnNlYXJjaHBhcmFtXSA9IHRlcm07XG4gICAgICAgIC8vIFVwZGF0ZSBxdWVyeXNldCBmaWx0ZXJcbiAgICAgICAgdGhpcy5maWx0ZXIucXVlcnlzZXQ/LmZpbHRlcihmKTtcbiAgICAgICAgLy8gTGF1bmNoIHF1ZXJ5c2V0XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlci5xdWVyeXNldC5nZXQoKTtcbiAgICAgIH0pLFxuICAgICAgdGFrZVVudGlsKHRoaXMuX3N1YnNjcmlwdGlvbilcbiAgICApO1xuICB9XG59XG4iLCJcbjxkaXYgY2xhc3M9XCJmaWx0ZXJpdGVtXCIgW25nQ2xhc3NdPVwiZmlsdGVyLmRpc3BsYXlDbGFzc2VzIHx8IGNsYXNzZXNcIj5cbiAgPGRpdiBjbGFzcz1cInRyYXNoIGZsb2F0LWVuZFwiIChjbGljayk9XCJkaXNhYmxlKClcIj48aSBjbGFzcz1cImJpIGJpLXRyYXNoXCI+PC9pPjwvZGl2PlxuICA8bGFiZWw+e3tmaWx0ZXIubGFiZWx9fTwvbGFiZWw+XG4gIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtmb3JtQ29udHJvbF09XCJmY1wiIFtuZ2JUeXBlYWhlYWRdPVwic2VhcmNoXCIgW2VkaXRhYmxlXT1cImZhbHNlXCIgW2ZvY3VzRmlyc3RdPVwidHJ1ZVwiIFtpbnB1dEZvcm1hdHRlcl09XCJkaXNwbGF5XCIgW3Jlc3VsdEZvcm1hdHRlcl09XCJkaXNwbGF5XCIgW3BsYWNlaG9sZGVyXT1cImZpbHRlci5oZWxwXCIgKGtleXVwLmFycm93RG93bik9XCJzY3JvbGxBY3Rpb24oJGV2ZW50KVwiIChrZXl1cC5hcnJvd1VwKT1cInNjcm9sbEFjdGlvbigkZXZlbnQpXCIgI3RoPVwibmdiVHlwZWFoZWFkXCIgW2NsYXNzLnRhc2Nyb2xsXT1cImZpbHRlci5zY3JvbGxcIj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { ModelListAutocompleteFilterComponent } from '../model-list-autocomplete-filter/model-list-autocomplete-filter.component';
3
+ import { CommonModule } from '@angular/common';
4
+ import { NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap';
5
+ import { ReactiveFormsModule } from '@angular/forms';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@ng-bootstrap/ng-bootstrap";
9
+ import * as i3 from "@angular/forms";
10
+ class ModelListAutocompleteMultiFilterComponent extends ModelListAutocompleteFilterComponent {
11
+ constructor() {
12
+ super(...arguments);
13
+ this._resetAfterSet = true;
14
+ }
15
+ unset(value, desc) {
16
+ this.filter.unset(value, desc);
17
+ this.list.filters.update();
18
+ this.fc.setValue(null);
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListAutocompleteMultiFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ModelListAutocompleteMultiFilterComponent, isStandalone: true, selector: "data-model-list-autocomplete-multi-filter", inputs: { filter: "filter" }, usesInheritance: true, 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\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\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: NgbTypeaheadModule }, { kind: "directive", type: i2.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
22
+ }
23
+ export { ModelListAutocompleteMultiFilterComponent };
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListAutocompleteMultiFilterComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'data-model-list-autocomplete-multi-filter', standalone: true, imports: [CommonModule, NgbTypeaheadModule, 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\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\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>" }]
27
+ }], propDecorators: { filter: [{
28
+ type: Input
29
+ }] } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1hdXRvY29tcGxldGUtbXVsdGktZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC1hdXRvY29tcGxldGUtbXVsdGktZmlsdGVyL21vZGVsLWxpc3QtYXV0b2NvbXBsZXRlLW11bHRpLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtYXV0b2NvbXBsZXRlLW11bHRpLWZpbHRlci9tb2RlbC1saXN0LWF1dG9jb21wbGV0ZS1tdWx0aS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDbEksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUVyRCxNQU9hLHlDQUVYLFNBQVEsb0NBQXVDO0lBVGpEOztRQVdxQixtQkFBYyxHQUFHLElBQUksQ0FBQztLQU8xQztJQUxRLEtBQUssQ0FBQyxLQUFVLEVBQUUsSUFBWTtRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FWVSx5Q0FBeUM7a0dBQXpDLHlDQUF5QywwSkNmdEQsMHZCQVFNLHlEREtNLFlBQVksOFNBQUUsa0JBQWtCLGtXQUFFLG1CQUFtQjs7U0FFcEQseUNBQXlDOzJGQUF6Qyx5Q0FBeUM7a0JBUHJELFNBQVM7K0JBQ0UsMkNBQTJDLGNBR3pDLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQzs4QkFLdkMsTUFBTTtzQkFBOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGVsTGlzdEF1dG9jb21wbGV0ZU11bHRpRmlsdGVyIH0gZnJvbSAnLi9tb2RlbC1saXN0LWF1dG9jb21wbGV0ZS1tdWx0aS1maWx0ZXInO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGF0YS9kYXRhLW1vZGVsJztcbmltcG9ydCB7IE1vZGVsTGlzdEF1dG9jb21wbGV0ZUZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL21vZGVsLWxpc3QtYXV0b2NvbXBsZXRlLWZpbHRlci9tb2RlbC1saXN0LWF1dG9jb21wbGV0ZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ2JUeXBlYWhlYWRNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLW1vZGVsLWxpc3QtYXV0b2NvbXBsZXRlLW11bHRpLWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC1saXN0LWF1dG9jb21wbGV0ZS1tdWx0aS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RlbC1saXN0LWF1dG9jb21wbGV0ZS1tdWx0aS1maWx0ZXIuY29tcG9uZW50LnNhc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdiVHlwZWFoZWFkTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxMaXN0QXV0b2NvbXBsZXRlTXVsdGlGaWx0ZXJDb21wb25lbnQ8XG4gIFQgZXh0ZW5kcyBEYXRhTW9kZWxcbj4gZXh0ZW5kcyBNb2RlbExpc3RBdXRvY29tcGxldGVGaWx0ZXJDb21wb25lbnQ8VD4ge1xuICBASW5wdXQoKSBwdWJsaWMgb3ZlcnJpZGUgZmlsdGVyITogTW9kZWxMaXN0QXV0b2NvbXBsZXRlTXVsdGlGaWx0ZXI8VD47XG4gIHByb3RlY3RlZCBvdmVycmlkZSBfcmVzZXRBZnRlclNldCA9IHRydWU7XG5cbiAgcHVibGljIHVuc2V0KHZhbHVlOiBhbnksIGRlc2M6IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVyLnVuc2V0KHZhbHVlLCBkZXNjKTtcbiAgICB0aGlzLmxpc3QuZmlsdGVycy51cGRhdGUoKTtcbiAgICB0aGlzLmZjLnNldFZhbHVlKG51bGwpO1xuICB9XG59XG4iLCJcbjxkaXYgY2xhc3M9XCJmaWx0ZXJpdGVtXCIgW25nQ2xhc3NdPVwiZmlsdGVyLmRpc3BsYXlDbGFzc2VzIHx8IGNsYXNzZXNcIj5cbiAgPGRpdiBjbGFzcz1cInRyYXNoIGZsb2F0LWVuZFwiIChjbGljayk9XCJkaXNhYmxlKClcIj48aSBjbGFzcz1cImJpIGJpLXRyYXNoXCI+PC9pPjwvZGl2PlxuICA8bGFiZWw+e3tmaWx0ZXIubGFiZWx9fTwvbGFiZWw+XG4gIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtmb3JtQ29udHJvbF09XCJmY1wiIFtuZ2JUeXBlYWhlYWRdPVwic2VhcmNoXCIgW2VkaXRhYmxlXT1cImZhbHNlXCIgW2ZvY3VzRmlyc3RdPVwidHJ1ZVwiIFtpbnB1dEZvcm1hdHRlcl09XCJkaXNwbGF5XCIgW3Jlc3VsdEZvcm1hdHRlcl09XCJkaXNwbGF5XCIgW3BsYWNlaG9sZGVyXT1cImZpbHRlci5oZWxwXCIgKGtleXVwLmFycm93RG93bik9XCJzY3JvbGxBY3Rpb24oJGV2ZW50KVwiIChrZXl1cC5hcnJvd1VwKT1cInNjcm9sbEFjdGlvbigkZXZlbnQpXCIgI3RoPVwibmdiVHlwZWFoZWFkXCIgW2NsYXNzLnRhc2Nyb2xsXT1cImZpbHRlci5zY3JvbGxcIj5cbiAgPGRpdiBjbGFzcz1cImVuYWJsZWQgbXQtMVwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGUgb2YgZmlsdGVyLm1jdXJyZW50JHxhc3luY1wiPjxpIGNsYXNzPVwiYmkgYmktdHJhc2ggbWUtMlwiIChjbGljayk9XCJ1bnNldChlLnZhbHVlLCBlLmRlc2MpXCIgcm9sZT1cImJ1dHRvblwiPjwvaT57e2UuZGVzY319PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -0,0 +1,41 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { debounceTime } from 'rxjs';
4
+ import { FormControl, ReactiveFormsModule } from '@angular/forms';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/forms";
8
+ class ModelListDateFilterComponent {
9
+ constructor() {
10
+ this.classes = '';
11
+ this.fc = new FormControl();
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListDateFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ModelListDateFilterComponent, isStandalone: true, selector: "data-model-list-date-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=\"date\" [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"] }] }); }
29
+ }
30
+ export { ModelListDateFilterComponent };
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListDateFilterComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: 'data-model-list-date-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=\"date\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n</div>" }]
34
+ }], ctorParameters: function () { return []; }, propDecorators: { list: [{
35
+ type: Input
36
+ }], filter: [{
37
+ type: Input
38
+ }], classes: [{
39
+ type: Input
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1kYXRlLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtZGF0ZS1maWx0ZXIvbW9kZWwtbGlzdC1kYXRlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtZGF0ZS1maWx0ZXIvbW9kZWwtbGlzdC1kYXRlLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFbEUsTUFPYSw0QkFBNEI7SUFNdkM7UUFIZ0IsWUFBTyxHQUFzQixFQUFFLENBQUM7UUFDekMsT0FBRSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFFZixDQUFDO0lBRVQsUUFBUTtRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFFLEdBQXVCLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDN0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQzVCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQXRCVSw0QkFBNEI7a0dBQTVCLDRCQUE0Qix1SkNmekMsdVRBS00seUREUU0sWUFBWSw0SEFBRSxtQkFBbUI7O1NBRWhDLDRCQUE0QjsyRkFBNUIsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNFLDZCQUE2QixjQUczQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUM7MEVBRzVCLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kZWxMaXN0IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGVsTGlzdERhdGVGaWx0ZXIgfSBmcm9tICcuL21vZGVsLWxpc3QtZGF0ZS1maWx0ZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElEaXNwRWRpdENob2ljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Rpc3BlZGl0L2Rpc3BlZGl0L2Rpc3BlZGl0LmNvbnN0YW50cyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLW1vZGVsLWxpc3QtZGF0ZS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtbGlzdC1kYXRlLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGVsLWxpc3QtZGF0ZS1maWx0ZXIuY29tcG9uZW50LnNhc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdERhdGVGaWx0ZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBwdWJsaWMgbGlzdCE6IE1vZGVsTGlzdDxhbnk+O1xuICBASW5wdXQoKSBwdWJsaWMgZmlsdGVyITogTW9kZWxMaXN0RGF0ZUZpbHRlcjtcbiAgQElucHV0KCkgcHVibGljIGNsYXNzZXM6IHN0cmluZ1tdIHwgc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBmYyA9IG5ldyBGb3JtQ29udHJvbCgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5maWx0ZXIudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsKSA9PiB7XG4gICAgICB0aGlzLmZjLnNldFZhbHVlKCh2YWwgYXMgSURpc3BFZGl0Q2hvaWNlKS52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuZmMudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDI1MCkpLnN1YnNjcmliZSgodmFsKSA9PiB7XG4gICAgICBpZiAodGhpcy5maWx0ZXIuc2V0KHZhbCwgdmFsKSkge1xuICAgICAgICB0aGlzLmxpc3QuZmlsdGVycy51cGRhdGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlKCkge1xuICAgIHRoaXMuZmlsdGVyLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmxpc3QuZmlsdGVycy51cGRhdGUoKTtcbiAgfVxufVxuIiwiXG48ZGl2IGNsYXNzPVwiZmlsdGVyaXRlbVwiIFtuZ0NsYXNzXT1cImZpbHRlci5kaXNwbGF5Q2xhc3NlcyB8fCBjbGFzc2VzXCI+XG4gIDxkaXYgY2xhc3M9XCJ0cmFzaCBmbG9hdC1lbmRcIiAoY2xpY2spPVwiZGlzYWJsZSgpXCI+PGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiPjwvaT48L2Rpdj5cbiAgPGxhYmVsPnt7ZmlsdGVyLmxhYmVsfX08L2xhYmVsPlxuICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiB0eXBlPVwiZGF0ZVwiIFtmb3JtQ29udHJvbF09XCJmY1wiIFtwbGFjZWhvbGRlcl09XCJmaWx0ZXIuaGVscFwiPlxuPC9kaXY+Il19
@@ -0,0 +1,41 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { debounceTime } from 'rxjs';
4
+ import { FormControl, ReactiveFormsModule } from '@angular/forms';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/forms";
8
+ class ModelListDatetimeFilterComponent {
9
+ constructor() {
10
+ this.classes = '';
11
+ this.fc = new FormControl();
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListDatetimeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ModelListDatetimeFilterComponent, isStandalone: true, selector: "data-model-list-datetime-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=\"datetime-local\" [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"] }] }); }
29
+ }
30
+ export { ModelListDatetimeFilterComponent };
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListDatetimeFilterComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: 'data-model-list-datetime-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=\"datetime-local\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n</div>" }]
34
+ }], ctorParameters: function () { return []; }, propDecorators: { list: [{
35
+ type: Input
36
+ }], filter: [{
37
+ type: Input
38
+ }], classes: [{
39
+ type: Input
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1kYXRldGltZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvZmlsdGVycy9tb2RlbC1saXN0LWRhdGV0aW1lLWZpbHRlci9tb2RlbC1saXN0LWRhdGV0aW1lLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtZGF0ZXRpbWUtZmlsdGVyL21vZGVsLWxpc3QtZGF0ZXRpbWUtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUVsRSxNQU9hLGdDQUFnQztJQU0zQztRQUhnQixZQUFPLEdBQXNCLEVBQUUsQ0FBQztRQUN6QyxPQUFFLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUVmLENBQUM7SUFFVCxRQUFRO1FBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUUsR0FBdUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUM3RCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDNUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBdEJVLGdDQUFnQztrR0FBaEMsZ0NBQWdDLDJKQ2Y3QyxpVUFLTSx5RERRTSxZQUFZLDRIQUFFLG1CQUFtQjs7U0FFaEMsZ0NBQWdDOzJGQUFoQyxnQ0FBZ0M7a0JBUDVDLFNBQVM7K0JBQ0UsaUNBQWlDLGNBRy9CLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQzswRUFHNUIsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RlbExpc3QgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9kZWxMaXN0RGF0ZXRpbWVGaWx0ZXIgfSBmcm9tICcuL21vZGVsLWxpc3QtZGF0ZXRpbWUtZmlsdGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJRGlzcEVkaXRDaG9pY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXNwZWRpdC9kaXNwZWRpdC9kaXNwZWRpdC5jb25zdGFudHMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0YS1tb2RlbC1saXN0LWRhdGV0aW1lLWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC1saXN0LWRhdGV0aW1lLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGVsLWxpc3QtZGF0ZXRpbWUtZmlsdGVyLmNvbXBvbmVudC5zYXNzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RlbExpc3REYXRldGltZUZpbHRlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBsaXN0ITogTW9kZWxMaXN0PGFueT47XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXIhOiBNb2RlbExpc3REYXRldGltZUZpbHRlcjtcbiAgQElucHV0KCkgcHVibGljIGNsYXNzZXM6IHN0cmluZ1tdIHwgc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBmYyA9IG5ldyBGb3JtQ29udHJvbCgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5maWx0ZXIudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsKSA9PiB7XG4gICAgICB0aGlzLmZjLnNldFZhbHVlKCh2YWwgYXMgSURpc3BFZGl0Q2hvaWNlKS52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuZmMudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDI1MCkpLnN1YnNjcmliZSgodmFsKSA9PiB7XG4gICAgICBpZiAodGhpcy5maWx0ZXIuc2V0KHZhbCwgdmFsKSkge1xuICAgICAgICB0aGlzLmxpc3QuZmlsdGVycy51cGRhdGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlKCkge1xuICAgIHRoaXMuZmlsdGVyLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmxpc3QuZmlsdGVycy51cGRhdGUoKTtcbiAgfVxufVxuIiwiXG48ZGl2IGNsYXNzPVwiZmlsdGVyaXRlbVwiIFtuZ0NsYXNzXT1cImZpbHRlci5kaXNwbGF5Q2xhc3NlcyB8fCBjbGFzc2VzXCI+XG4gIDxkaXYgY2xhc3M9XCJ0cmFzaCBmbG9hdC1lbmRcIiAoY2xpY2spPVwiZGlzYWJsZSgpXCI+PGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiPjwvaT48L2Rpdj5cbiAgPGxhYmVsPnt7ZmlsdGVyLmxhYmVsfX08L2xhYmVsPlxuICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbZm9ybUNvbnRyb2xdPVwiZmNcIiBbcGxhY2Vob2xkZXJdPVwiZmlsdGVyLmhlbHBcIj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ class ModelListDatetimeRangeFilterComponent {
5
+ constructor() {
6
+ this.classes = '';
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListDatetimeRangeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ModelListDatetimeRangeFilterComponent, isStandalone: true, selector: "data-model-list-datetime-range-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "<p>model-list-datetime-range-filter works!</p>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
10
+ }
11
+ export { ModelListDatetimeRangeFilterComponent };
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListDatetimeRangeFilterComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'data-model-list-datetime-range-filter', standalone: true, imports: [CommonModule], template: "<p>model-list-datetime-range-filter works!</p>" }]
15
+ }], ctorParameters: function () { return []; }, propDecorators: { list: [{
16
+ type: Input
17
+ }], filter: [{
18
+ type: Input
19
+ }], classes: [{
20
+ type: Input
21
+ }] } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1kYXRldGltZS1yYW5nZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvZmlsdGVycy9tb2RlbC1saXN0LWRhdGV0aW1lcmFuZ2UtZmlsdGVyL21vZGVsLWxpc3QtZGF0ZXRpbWUtcmFuZ2UtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC1kYXRldGltZXJhbmdlLWZpbHRlci9tb2RlbC1saXN0LWRhdGV0aW1lLXJhbmdlLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRS9DLE1BT2EscUNBQXFDO0lBS2hEO1FBRmdCLFlBQU8sR0FBc0IsRUFBRSxDQUFDO0lBRWpDLENBQUM7OEdBTEwscUNBQXFDO2tHQUFyQyxxQ0FBcUMsaUtDWmxELGdEQUE4Qyx5RERVbEMsWUFBWTs7U0FFWCxxQ0FBcUM7MkZBQXJDLHFDQUFxQztrQkFQakQsU0FBUzsrQkFDRSx1Q0FBdUMsY0FHckMsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzBFQUdQLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kZWxMaXN0IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGVsTGlzdERhdGV0aW1lcmFuZ2VGaWx0ZXIgfSBmcm9tICcuL21vZGVsLWxpc3QtZGF0ZXRpbWVyYW5nZS1maWx0ZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0YS1tb2RlbC1saXN0LWRhdGV0aW1lLXJhbmdlLWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC1saXN0LWRhdGV0aW1lLXJhbmdlLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGVsLWxpc3QtZGF0ZXRpbWUtcmFuZ2UtZmlsdGVyLmNvbXBvbmVudC5zYXNzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RlbExpc3REYXRldGltZVJhbmdlRmlsdGVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcHVibGljIGxpc3QhOiBNb2RlbExpc3Q8YW55PjtcbiAgQElucHV0KCkgcHVibGljIGZpbHRlciE6IE1vZGVsTGlzdERhdGV0aW1lcmFuZ2VGaWx0ZXI7XG4gIEBJbnB1dCgpIHB1YmxpYyBjbGFzc2VzOiBzdHJpbmdbXSB8IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiIsIjxwPm1vZGVsLWxpc3QtZGF0ZXRpbWUtcmFuZ2UtZmlsdGVyIHdvcmtzITwvcD4iXX0=
@@ -0,0 +1,50 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormControl, ReactiveFormsModule } from '@angular/forms';
4
+ import { 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
+ class ModelListFlagsFilterComponent {
9
+ constructor() {
10
+ this.classes = '';
11
+ this.fc = new FormControl(null);
12
+ }
13
+ ngOnInit() {
14
+ console.log(this.filter);
15
+ if (this.filter.collection && this.filter.action) {
16
+ this.flags$ = this.filter.collection.action(null, 'GET', this.filter.action);
17
+ this.fc.valueChanges.pipe(debounceTime(250)).subscribe((val) => {
18
+ if (val !== null) {
19
+ if (this.filter.set(val, val)) {
20
+ this.list.filters.update();
21
+ this.fc.setValue(null, { emitEvent: false });
22
+ }
23
+ }
24
+ });
25
+ }
26
+ }
27
+ unset(value, desc) {
28
+ this.fc.setValue(null);
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListFlagsFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ModelListFlagsFilterComponent, isStandalone: true, selector: "data-model-list-flags-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 flags$|async\" [ngValue]=\"c.flag\">{{c.flag}} ({{c.count}})</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"] }] }); }
38
+ }
39
+ export { ModelListFlagsFilterComponent };
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListFlagsFilterComponent, decorators: [{
41
+ type: Component,
42
+ args: [{ selector: 'data-model-list-flags-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 flags$|async\" [ngValue]=\"c.flag\">{{c.flag}} ({{c.count}})</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>" }]
43
+ }], ctorParameters: function () { return []; }, propDecorators: { list: [{
44
+ type: Input
45
+ }], filter: [{
46
+ type: Input
47
+ }], classes: [{
48
+ type: Input
49
+ }] } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1mbGFncy1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvZmlsdGVycy9tb2RlbC1saXN0LWZsYWdzLWZpbHRlci9tb2RlbC1saXN0LWZsYWdzLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtZmxhZ3MtZmlsdGVyL21vZGVsLWxpc3QtZmxhZ3MtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBTXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBYyxNQUFNLE1BQU0sQ0FBQzs7OztBQUVoRCxNQU9hLDZCQUE2QjtJQVN4QztRQUpnQixZQUFPLEdBQXNCLEVBQUUsQ0FBQztRQUN6QyxPQUFFLEdBQUcsSUFBSSxXQUFXLENBQWdCLElBQUksQ0FBQyxDQUFDO0lBR2xDLENBQUM7SUFFVCxRQUFRO1FBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNoRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDekMsSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDbkIsQ0FBQztZQUNGLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDN0QsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO29CQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRTt3QkFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQzNCLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO3FCQUM5QztpQkFDRjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQVUsRUFBRSxJQUFZO1FBQ25DLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQXZDVSw2QkFBNkI7a0dBQTdCLDZCQUE2Qix3SkNsQjFDLGlvQkFXTSx5RERLTSxZQUFZLDhTQUFFLG1CQUFtQjs7U0FFaEMsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBUHpDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQzswRUFLNUIsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGVsTGlzdCB9IGZyb20gJy4uLy4uLy4uL21vZGVsLWxpc3Quc2VydmljZSc7XG5pbXBvcnQge1xuICBHZXRGbGFnc1Jlc3VsdCxcbiAgTW9kZWxMaXN0RmxhZ3NGaWx0ZXIsXG59IGZyb20gJy4vbW9kZWwtbGlzdC1mbGFncy1maWx0ZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERhdGFNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2RhdGEvZGF0YS1tb2RlbCc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLW1vZGVsLWxpc3QtZmxhZ3MtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGVsLWxpc3QtZmxhZ3MtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kZWwtbGlzdC1mbGFncy1maWx0ZXIuY29tcG9uZW50LnNhc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdEZsYWdzRmlsdGVyQ29tcG9uZW50PFQgZXh0ZW5kcyBEYXRhTW9kZWw+XG4gIGltcGxlbWVudHMgT25Jbml0XG57XG4gIEBJbnB1dCgpIHB1YmxpYyBsaXN0ITogTW9kZWxMaXN0PGFueT47XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXIhOiBNb2RlbExpc3RGbGFnc0ZpbHRlcjxUPjtcbiAgQElucHV0KCkgcHVibGljIGNsYXNzZXM6IHN0cmluZ1tdIHwgc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBmYyA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHVibGljIGZsYWdzJCE6IE9ic2VydmFibGU8R2V0RmxhZ3NSZXN1bHQ+O1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgY29uc29sZS5sb2codGhpcy5maWx0ZXIpO1xuICAgIGlmICh0aGlzLmZpbHRlci5jb2xsZWN0aW9uICYmIHRoaXMuZmlsdGVyLmFjdGlvbikge1xuICAgICAgdGhpcy5mbGFncyQgPSB0aGlzLmZpbHRlci5jb2xsZWN0aW9uLmFjdGlvbjxHZXRGbGFnc1Jlc3VsdD4oXG4gICAgICAgIG51bGwsXG4gICAgICAgICdHRVQnLFxuICAgICAgICB0aGlzLmZpbHRlci5hY3Rpb25cbiAgICAgICk7XG4gICAgICB0aGlzLmZjLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgyNTApKS5zdWJzY3JpYmUoKHZhbCkgPT4ge1xuICAgICAgICBpZiAodmFsICE9PSBudWxsKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZmlsdGVyLnNldCh2YWwsIHZhbCkpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdC5maWx0ZXJzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5mYy5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdW5zZXQodmFsdWU6IGFueSwgZGVzYzogc3RyaW5nKSB7XG4gICAgdGhpcy5mYy5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmZpbHRlci51bnNldCh2YWx1ZSwgZGVzYyk7XG4gICAgdGhpcy5saXN0LmZpbHRlcnMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZGlzYWJsZSgpIHtcbiAgICB0aGlzLmZpbHRlci5lbmFibGVkID0gZmFsc2U7XG4gICAgdGhpcy5saXN0LmZpbHRlcnMudXBkYXRlKCk7XG4gIH1cbn1cbiIsIlxuPGRpdiBjbGFzcz1cImZpbHRlcml0ZW1cIiBbbmdDbGFzc109XCJmaWx0ZXIuZGlzcGxheUNsYXNzZXMgfHwgY2xhc3Nlc1wiPlxuICA8ZGl2IGNsYXNzPVwidHJhc2ggZmxvYXQtZW5kXCIgKGNsaWNrKT1cImRpc2FibGUoKVwiPjxpIGNsYXNzPVwiYmkgYmktdHJhc2hcIj48L2k+PC9kaXY+XG4gIDxsYWJlbD57e2ZpbHRlci5sYWJlbH19PC9sYWJlbD5cbiAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgW2Zvcm1Db250cm9sXT1cImZjXCI+XG4gICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJudWxsXCI+LS0ge3tmaWx0ZXIuaGVscH19IC0tPC9vcHRpb24+XG4gICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgYyBvZiBmbGFncyR8YXN5bmNcIiBbbmdWYWx1ZV09XCJjLmZsYWdcIj57e2MuZmxhZ319ICh7e2MuY291bnR9fSk8L29wdGlvbj5cbiAgPC9zZWxlY3Q+XG4gIDxkaXYgY2xhc3M9XCJlbmFibGVkIG10LTFcIj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlIG9mIGZpbHRlci5tY3VycmVudCR8YXN5bmNcIj48aSBjbGFzcz1cImJpIGJpLXRyYXNoIG1lLTJcIiAoY2xpY2spPVwidW5zZXQoZS52YWx1ZSwgZS5kZXNjKVwiIHJvbGU9XCJidXR0b25cIj48L2k+e3tlLmRlc2N9fTwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,64 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormControl, ReactiveFormsModule } from '@angular/forms';
4
+ import { combineLatest, debounceTime, distinctUntilChanged, Subject, } from 'rxjs';
5
+ import { filter, switchMap } from 'rxjs/operators';
6
+ import { NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@ng-bootstrap/ng-bootstrap";
10
+ import * as i3 from "@angular/forms";
11
+ class ModelListGeodistanceFilterComponent {
12
+ constructor() {
13
+ this.classes = '';
14
+ this.fc = new FormControl();
15
+ this.fd = new FormControl('');
16
+ this.search = this._search.bind(this);
17
+ this.display = this._display.bind(this);
18
+ this._subscription = new Subject();
19
+ }
20
+ ngOnInit() {
21
+ const address = this.fc.valueChanges.pipe(debounceTime(250), filter((val) => !!val));
22
+ const distance = this.fd.valueChanges.pipe(filter((d) => !!d));
23
+ combineLatest([address, distance]).subscribe(([val, dist]) => {
24
+ if (this.filter.set(`${dist},${val.lng},${val.lat}`, val.label)) {
25
+ this.list.filters.update();
26
+ }
27
+ });
28
+ }
29
+ disable() {
30
+ this.filter.enabled = false;
31
+ this.list.filters.update();
32
+ }
33
+ ngOnDestroy() {
34
+ this._subscription.next();
35
+ this._subscription.complete();
36
+ }
37
+ _display(x) {
38
+ return `${x.label}`;
39
+ }
40
+ _search(text$) {
41
+ return text$.pipe(debounceTime(750), distinctUntilChanged(), switchMap((term) => this.filter.geolocator(term)));
42
+ }
43
+ scrollAction($event) {
44
+ if (!this.filter.scroll) {
45
+ return;
46
+ }
47
+ const elem = $event.currentTarget.nextElementSibling.getElementsByClassName('active')[0];
48
+ elem.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
49
+ }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListGeodistanceFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ModelListGeodistanceFilterComponent, isStandalone: true, selector: "data-model-list-geodistance-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 <div class=\"row g-1\">\n <div class=\"col-4\">\n <select class=\"form-select\" [formControl]=\"fd\">\n <option value=\"\">Distance</option>\n <option value=\"lte,10\">< 10 km</option>\n <option value=\"lte,20\">< 20 km</option>\n <option value=\"lte,30\">< 30 km</option>\n <option value=\"lte,50\">< 50 km</option>\n <option value=\"lte,80\">< 80 km</option>\n <option value=\"lte,100\">< 100 km</option>\n <option value=\"lte,150\">< 150 km</option>\n <option value=\"lte,200\">< 200 km</option>\n <option value=\"lte,250\">< 250 km</option>\n <option value=\"lte,300\">< 300 km</option>\n <option value=\"lte,500\">< 500 km</option>\n <option value=\"lte,1000\">< 1000 km</option>\n </select>\n </div>\n <div class=\"col-8\">\n <input class=\"form-control\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: NgbTypeaheadModule }, { kind: "directive", type: i2.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.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: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
52
+ }
53
+ export { ModelListGeodistanceFilterComponent };
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListGeodistanceFilterComponent, decorators: [{
55
+ type: Component,
56
+ args: [{ selector: 'data-model-list-geodistance-filter', standalone: true, imports: [CommonModule, NgbTypeaheadModule, 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 <div class=\"row g-1\">\n <div class=\"col-4\">\n <select class=\"form-select\" [formControl]=\"fd\">\n <option value=\"\">Distance</option>\n <option value=\"lte,10\">< 10 km</option>\n <option value=\"lte,20\">< 20 km</option>\n <option value=\"lte,30\">< 30 km</option>\n <option value=\"lte,50\">< 50 km</option>\n <option value=\"lte,80\">< 80 km</option>\n <option value=\"lte,100\">< 100 km</option>\n <option value=\"lte,150\">< 150 km</option>\n <option value=\"lte,200\">< 200 km</option>\n <option value=\"lte,250\">< 250 km</option>\n <option value=\"lte,300\">< 300 km</option>\n <option value=\"lte,500\">< 500 km</option>\n <option value=\"lte,1000\">< 1000 km</option>\n </select>\n </div>\n <div class=\"col-8\">\n <input class=\"form-control\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\n </div>\n </div>\n</div>" }]
57
+ }], ctorParameters: function () { return []; }, propDecorators: { list: [{
58
+ type: Input
59
+ }], filter: [{
60
+ type: Input
61
+ }], classes: [{
62
+ type: Input
63
+ }] } });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1nZW9kaXN0YW5jZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvZmlsdGVycy9tb2RlbC1saXN0LWdlb2Rpc3RhbmNlLWZpbHRlci9tb2RlbC1saXN0LWdlb2Rpc3RhbmNlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtZ2VvZGlzdGFuY2UtZmlsdGVyL21vZGVsLWxpc3QtZ2VvZGlzdGFuY2UtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQU1wRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxhQUFhLEVBQ2IsWUFBWSxFQUNaLG9CQUFvQixFQUVwQixPQUFPLEdBQ1IsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQUVoRSxNQU9hLG1DQUFtQztJQVU5QztRQVBnQixZQUFPLEdBQXNCLEVBQUUsQ0FBQztRQUN6QyxPQUFFLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN2QixPQUFFLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsV0FB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ImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RlbExpc3QgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgR2VvU2VhcmNoUmVzdWx0LFxuICBNb2RlbExpc3RHZW9kaXN0YW5jZUZpbHRlcixcbn0gZnJvbSAnLi9tb2RlbC1saXN0LWdlb2Rpc3RhbmNlLWZpbHRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTmdiVHlwZWFoZWFkTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLW1vZGVsLWxpc3QtZ2VvZGlzdGFuY2UtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGVsLWxpc3QtZ2VvZGlzdGFuY2UtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kZWwtbGlzdC1nZW9kaXN0YW5jZS1maWx0ZXIuY29tcG9uZW50LnNhc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdiVHlwZWFoZWFkTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxMaXN0R2VvZGlzdGFuY2VGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBsaXN0ITogTW9kZWxMaXN0PGFueT47XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXIhOiBNb2RlbExpc3RHZW9kaXN0YW5jZUZpbHRlcjtcbiAgQElucHV0KCkgcHVibGljIGNsYXNzZXM6IHN0cmluZ1tdIHwgc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBmYyA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBwdWJsaWMgZmQgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuICBwdWJsaWMgc2VhcmNoID0gdGhpcy5fc2VhcmNoLmJpbmQodGhpcyk7XG4gIHB1YmxpYyBkaXNwbGF5ID0gdGhpcy5fZGlzcGxheS5iaW5kKHRoaXMpO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgYWRkcmVzcyA9IHRoaXMuZmMudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoMjUwKSxcbiAgICAgIGZpbHRlcigodmFsKSA9PiAhIXZhbClcbiAgICApO1xuICAgIGNvbnN0IGRpc3RhbmNlID0gdGhpcy5mZC52YWx1ZUNoYW5nZXMucGlwZShmaWx0ZXIoKGQpID0+ICEhZCkpO1xuICAgIGNvbWJpbmVMYXRlc3QoW2FkZHJlc3MsIGRpc3RhbmNlXSkuc3Vic2NyaWJlKChbdmFsLCBkaXN0XSkgPT4ge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyLnNldChgJHtkaXN0fSwke3ZhbC5sbmd9LCR7dmFsLmxhdH1gLCB2YWwubGFiZWwpKSB7XG4gICAgICAgIHRoaXMubGlzdC5maWx0ZXJzLnVwZGF0ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRpc2FibGUoKSB7XG4gICAgdGhpcy5maWx0ZXIuZW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMubGlzdC5maWx0ZXJzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5uZXh0KCk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNwbGF5KHg6IEdlb1NlYXJjaFJlc3VsdCk6IGFueSB7XG4gICAgcmV0dXJuIGAke3gubGFiZWx9YDtcbiAgfVxuXG4gIHByaXZhdGUgX3NlYXJjaCh0ZXh0JDogT2JzZXJ2YWJsZTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxHZW9TZWFyY2hSZXN1bHRbXT4ge1xuICAgIHJldHVybiB0ZXh0JC5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDc1MCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKCh0ZXJtKSA9PiB0aGlzLmZpbHRlci5nZW9sb2NhdG9yKHRlcm0pKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsQWN0aW9uKCRldmVudDogYW55KSB7XG4gICAgaWYgKCF0aGlzLmZpbHRlci5zY3JvbGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZWxlbSA9XG4gICAgICAkZXZlbnQuY3VycmVudFRhcmdldC5uZXh0RWxlbWVudFNpYmxpbmcuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcbiAgICAgICAgJ2FjdGl2ZSdcbiAgICAgIClbMF07XG4gICAgZWxlbS5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICduZWFyZXN0JyB9KTtcbiAgfVxufVxuIiwiXG48ZGl2IGNsYXNzPVwiZmlsdGVyaXRlbVwiIFtuZ0NsYXNzXT1cImZpbHRlci5kaXNwbGF5Q2xhc3NlcyB8fCBjbGFzc2VzXCI+XG4gIDxkaXYgY2xhc3M9XCJ0cmFzaCBmbG9hdC1lbmRcIiAoY2xpY2spPVwiZGlzYWJsZSgpXCI+PGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiPjwvaT48L2Rpdj5cbiAgPGxhYmVsPnt7ZmlsdGVyLmxhYmVsfX08L2xhYmVsPlxuICA8ZGl2IGNsYXNzPVwicm93IGctMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPlxuICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgW2Zvcm1Db250cm9sXT1cImZkXCI+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj5EaXN0YW5jZTwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwibHRlLDEwXCI+PCAxMCBrbTwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwibHRlLDIwXCI+PCAyMCBrbTwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwibHRlLDMwXCI+PCAzMCBrbTwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwibHRlLDUwXCI+PCA1MCBrbTwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwibHRlLDgwXCI+PCA4MCBrbTwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwibHRlLDEwMFwiPjwgMTAwIGttPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJsdGUsMTUwXCI+PCAxNTAga208L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImx0ZSwyMDBcIj48IDIwMCBrbTwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwibHRlLDI1MFwiPjwgMjUwIGttPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJsdGUsMzAwXCI+PCAzMDAga208L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImx0ZSw1MDBcIj48IDUwMCBrbTwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwibHRlLDEwMDBcIj48IDEwMDAga208L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtOFwiPlxuICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW2Zvcm1Db250cm9sXT1cImZjXCIgW25nYlR5cGVhaGVhZF09XCJzZWFyY2hcIiBbZWRpdGFibGVdPVwiZmFsc2VcIiBbZm9jdXNGaXJzdF09XCJ0cnVlXCIgW2lucHV0Rm9ybWF0dGVyXT1cImRpc3BsYXlcIiBbcmVzdWx0Rm9ybWF0dGVyXT1cImRpc3BsYXlcIiBbcGxhY2Vob2xkZXJdPVwiZmlsdGVyLmhlbHBcIiAoa2V5dXAuYXJyb3dEb3duKT1cInNjcm9sbEFjdGlvbigkZXZlbnQpXCIgKGtleXVwLmFycm93VXApPVwic2Nyb2xsQWN0aW9uKCRldmVudClcIiAjdGg9XCJuZ2JUeXBlYWhlYWRcIiBbY2xhc3MudGFzY3JvbGxdPVwiZmlsdGVyLnNjcm9sbFwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,47 @@
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
+ 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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListNumberFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", 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"] }] }); }
35
+ }
36
+ export { ModelListNumberFilterComponent };
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListNumberFilterComponent, decorators: [{
38
+ type: Component,
39
+ 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>" }]
40
+ }], ctorParameters: function () { return []; }, propDecorators: { list: [{
41
+ type: Input
42
+ }], filter: [{
43
+ type: Input
44
+ }], classes: [{
45
+ type: Input
46
+ }] } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1udW1iZXItZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC1udW1iZXItZmlsdGVyL21vZGVsLWxpc3QtbnVtYmVyLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtbnVtYmVyLWZpbHRlci9tb2RlbC1saXN0LW51bWJlci1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBRS9ELE1BT2EsOEJBQThCO0lBTXpDO1FBSGdCLFlBQU8sR0FBc0IsRUFBRSxDQUFDO1FBQ3pDLE9BQUUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFFdEIsQ0FBQztJQUVULFFBQVE7UUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN6QyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBRSxHQUFXLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDN0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQzVCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUSxDQUFDLEVBQVU7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0EzQlUsOEJBQThCO2tHQUE5Qiw4QkFBOEIseUpDZjNDLDJ4QkFjTSx5RERETSxZQUFZLHlQQUFFLG1CQUFtQiwydUJBQUUsaUJBQWlCOztTQUVuRCw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFQMUMsU0FBUzsrQkFDRSwrQkFBK0IsY0FHN0IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDOzBFQUcvQyxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kZWxMaXN0IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTW9kZWxMaXN0TnVtYmVyRmlsdGVyIH0gZnJvbSAnLi9tb2RlbC1saXN0LW51bWJlci1maWx0ZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLW1vZGVsLWxpc3QtbnVtYmVyLWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC1saXN0LW51bWJlci1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RlbC1saXN0LW51bWJlci1maWx0ZXIuY29tcG9uZW50LnNhc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RlbExpc3ROdW1iZXJGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwdWJsaWMgbGlzdCE6IE1vZGVsTGlzdDxhbnk+O1xuICBASW5wdXQoKSBwdWJsaWMgZmlsdGVyITogTW9kZWxMaXN0TnVtYmVyRmlsdGVyO1xuICBASW5wdXQoKSBwdWJsaWMgY2xhc3Nlczogc3RyaW5nW10gfCBzdHJpbmcgPSAnJztcbiAgcHVibGljIGZjID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5maWx0ZXIudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsKSA9PiB7XG4gICAgICB0aGlzLmZjLnNldFZhbHVlKCh2YWwgYXMgYW55KS52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuZmMudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDI1MCkpLnN1YnNjcmliZSgodmFsKSA9PiB7XG4gICAgICBpZiAodGhpcy5maWx0ZXIuc2V0KHZhbCwgdmFsKSkge1xuICAgICAgICB0aGlzLmxpc3QuZmlsdGVycy51cGRhdGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlKCkge1xuICAgIHRoaXMuZmlsdGVyLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmxpc3QuZmlsdGVycy51cGRhdGUoKTtcbiAgfVxuXG4gIHNlbGVjdE9wKGVxOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlci5zZXRPcGVyYXRvcihlcSk7XG4gICAgdGhpcy5saXN0LmZpbHRlcnMudXBkYXRlKCk7XG4gIH1cbn1cbiIsIlxuPGRpdiBjbGFzcz1cImZpbHRlcml0ZW1cIiBbbmdDbGFzc109XCJmaWx0ZXIuZGlzcGxheUNsYXNzZXMgfHwgY2xhc3Nlc1wiPlxuICA8ZGl2IGNsYXNzPVwidHJhc2ggZmxvYXQtZW5kXCIgKGNsaWNrKT1cImRpc2FibGUoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJiaSBiaS10cmFzaFwiPjwvZGl2PlxuICA8L2Rpdj5cbiAgPGxhYmVsPnt7ZmlsdGVyLmxhYmVsfX08L2xhYmVsPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiBuZ2JEcm9wZG93bj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiBuZ2JEcm9wZG93blRvZ2dsZT48c3BhbiBjbGFzcz1cIm1lLTJcIj57e2ZpbHRlci5vcGVyYXRvci5sYWJlbH19PC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiBuZ2JEcm9wZG93bk1lbnU+XG4gICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtICpuZ0Zvcj1cImxldCBvcCBvZiBmaWx0ZXIub3BlcmF0aW9uc1wiIChjbGljayk9XCJzZWxlY3RPcChvcC5vcGVyYXRvcilcIiBbY2xhc3MudGV4dC1wcmltYXJ5XT1cIm9wLm9wZXJhdG9yID09PSBmaWx0ZXIub3BlcmF0b3Iub3BlcmF0b3JcIj57e29wLmxhYmVsfX08L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIHR5cGU9XCJudW1iZXJcIiBbZm9ybUNvbnRyb2xdPVwiZmNcIiBbcGxhY2Vob2xkZXJdPVwiZmlsdGVyLmhlbHBcIj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=