@ecodev/natural 62.1.2 → 63.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/fesm2022/ecodev-natural-vanilla.mjs +1193 -0
  2. package/fesm2022/ecodev-natural-vanilla.mjs.map +1 -0
  3. package/fesm2022/ecodev-natural.mjs +436 -425
  4. package/fesm2022/ecodev-natural.mjs.map +1 -1
  5. package/lib/classes/network-activity.service.d.ts +54 -0
  6. package/lib/classes/validators.d.ts +1 -1
  7. package/lib/modules/columns-picker/columns-picker.component.d.ts +2 -2
  8. package/lib/modules/common/services/seo.provider.d.ts +2 -2
  9. package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +1 -1
  10. package/lib/modules/file/abstract-file.d.ts +6 -3
  11. package/lib/modules/file/component/file.component.d.ts +2 -2
  12. package/lib/modules/file/file-drop.directive.d.ts +2 -3
  13. package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +2 -3
  14. package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +3 -3
  15. package/lib/modules/icon/icon.module.d.ts +2 -2
  16. package/lib/modules/panels/panels.service.d.ts +1 -2
  17. package/lib/modules/relations/relations.component.d.ts +3 -3
  18. package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +2 -3
  19. package/lib/modules/search/group/group.component.d.ts +2 -3
  20. package/lib/modules/search/input/input.component.d.ts +5 -5
  21. package/lib/modules/search/search/search.component.d.ts +2 -2
  22. package/lib/modules/select/abstract-select.component.d.ts +3 -3
  23. package/lib/modules/select/select/select.component.d.ts +1 -1
  24. package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +1 -1
  25. package/lib/modules/table-button/table-button.component.d.ts +4 -2
  26. package/package.json +16 -14
  27. package/public-api.d.ts +1 -0
  28. package/src/lib/_natural.theme.scss +1 -2
  29. package/vanilla/index.d.ts +5 -0
  30. package/vanilla/package.json +3 -0
  31. package/vanilla/public-api.d.ts +11 -0
  32. package/vanilla/src/lib/classes/crypto.d.ts +8 -0
  33. package/vanilla/src/lib/classes/data-source.d.ts +32 -0
  34. package/vanilla/src/lib/classes/query-variable-manager-utils.d.ts +2 -0
  35. package/vanilla/src/lib/classes/query-variable-manager.d.ts +91 -0
  36. package/vanilla/src/lib/classes/signing.d.ts +7 -0
  37. package/vanilla/src/lib/classes/utility.d.ts +77 -0
  38. package/vanilla/src/lib/modules/search/classes/graphql-doctrine.types.d.ts +83 -0
  39. package/vanilla/src/lib/modules/search/classes/utils.d.ts +17 -0
  40. package/vanilla/src/lib/modules/search/types/dropdown-component.d.ts +20 -0
  41. package/vanilla/src/lib/modules/search/types/facet.d.ts +75 -0
  42. package/vanilla/src/lib/modules/search/types/values.d.ts +32 -0
  43. package/vanilla/src/lib/services/abstract-model.service.d.ts +244 -0
  44. package/vanilla/src/lib/services/debounce.service.d.ts +52 -0
  45. package/vanilla/src/lib/types/types.d.ts +100 -0
  46. package/esm2022/ecodev-natural.mjs +0 -5
  47. package/esm2022/lib/classes/abstract-detail.mjs +0 -229
  48. package/esm2022/lib/classes/abstract-editable-list.mjs +0 -99
  49. package/esm2022/lib/classes/abstract-list.mjs +0 -461
  50. package/esm2022/lib/classes/abstract-navigable-list.mjs +0 -133
  51. package/esm2022/lib/classes/apollo-utils.mjs +0 -59
  52. package/esm2022/lib/classes/crypto.mjs +0 -23
  53. package/esm2022/lib/classes/cumulative-changes.mjs +0 -50
  54. package/esm2022/lib/classes/data-source.mjs +0 -71
  55. package/esm2022/lib/classes/providers.mjs +0 -13
  56. package/esm2022/lib/classes/query-variable-manager-utils.mjs +0 -14
  57. package/esm2022/lib/classes/query-variable-manager.mjs +0 -172
  58. package/esm2022/lib/classes/rxjs.mjs +0 -54
  59. package/esm2022/lib/classes/signing.mjs +0 -38
  60. package/esm2022/lib/classes/tld.mjs +0 -1476
  61. package/esm2022/lib/classes/utility.mjs +0 -234
  62. package/esm2022/lib/classes/validators.mjs +0 -179
  63. package/esm2022/lib/directives/http-prefix.directive.mjs +0 -47
  64. package/esm2022/lib/modules/alert/alert.service.mjs +0 -53
  65. package/esm2022/lib/modules/alert/confirm.component.mjs +0 -16
  66. package/esm2022/lib/modules/alert/public-api.mjs +0 -6
  67. package/esm2022/lib/modules/avatar/component/avatar.component.mjs +0 -203
  68. package/esm2022/lib/modules/avatar/public-api.mjs +0 -6
  69. package/esm2022/lib/modules/avatar/service/avatar.service.mjs +0 -63
  70. package/esm2022/lib/modules/avatar/sources/gravatar.mjs +0 -29
  71. package/esm2022/lib/modules/avatar/sources/image.mjs +0 -13
  72. package/esm2022/lib/modules/avatar/sources/initials.mjs +0 -39
  73. package/esm2022/lib/modules/avatar/sources/source.mjs +0 -16
  74. package/esm2022/lib/modules/columns-picker/columns-picker.component.mjs +0 -145
  75. package/esm2022/lib/modules/columns-picker/public-api.mjs +0 -5
  76. package/esm2022/lib/modules/columns-picker/types.mjs +0 -2
  77. package/esm2022/lib/modules/common/directives/background-density.directive.mjs +0 -63
  78. package/esm2022/lib/modules/common/directives/linkable-tab.directive.mjs +0 -93
  79. package/esm2022/lib/modules/common/directives/src-density.directive.mjs +0 -72
  80. package/esm2022/lib/modules/common/pipes/capitalize.pipe.mjs +0 -24
  81. package/esm2022/lib/modules/common/pipes/ellipsis.pipe.mjs +0 -17
  82. package/esm2022/lib/modules/common/pipes/enum.pipe.mjs +0 -24
  83. package/esm2022/lib/modules/common/pipes/time-ago.pipe.mjs +0 -140
  84. package/esm2022/lib/modules/common/public-api.mjs +0 -14
  85. package/esm2022/lib/modules/common/services/memory-storage.mjs +0 -110
  86. package/esm2022/lib/modules/common/services/seo.provider.mjs +0 -23
  87. package/esm2022/lib/modules/common/services/seo.service.mjs +0 -235
  88. package/esm2022/lib/modules/detail-header/detail-header.component.mjs +0 -84
  89. package/esm2022/lib/modules/detail-header/public-api.mjs +0 -5
  90. package/esm2022/lib/modules/dialog-trigger/dialog-trigger.component.mjs +0 -72
  91. package/esm2022/lib/modules/dialog-trigger/public-api.mjs +0 -5
  92. package/esm2022/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +0 -100
  93. package/esm2022/lib/modules/dropdown-components/public-api.mjs +0 -14
  94. package/esm2022/lib/modules/dropdown-components/type-boolean/type-boolean.component.mjs +0 -39
  95. package/esm2022/lib/modules/dropdown-components/type-date/type-date.component.mjs +0 -173
  96. package/esm2022/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +0 -134
  97. package/esm2022/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +0 -80
  98. package/esm2022/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +0 -48
  99. package/esm2022/lib/modules/dropdown-components/type-number/type-number.component.mjs +0 -110
  100. package/esm2022/lib/modules/dropdown-components/type-options/type-options.component.mjs +0 -64
  101. package/esm2022/lib/modules/dropdown-components/type-select/type-select.component.mjs +0 -175
  102. package/esm2022/lib/modules/dropdown-components/type-text/type-text.component.mjs +0 -62
  103. package/esm2022/lib/modules/dropdown-components/types.mjs +0 -41
  104. package/esm2022/lib/modules/dropdown-components/utils.mjs +0 -35
  105. package/esm2022/lib/modules/file/abstract-file.mjs +0 -230
  106. package/esm2022/lib/modules/file/component/file.component.mjs +0 -172
  107. package/esm2022/lib/modules/file/file-drop.directive.mjs +0 -111
  108. package/esm2022/lib/modules/file/file-select.directive.mjs +0 -26
  109. package/esm2022/lib/modules/file/file.service.mjs +0 -43
  110. package/esm2022/lib/modules/file/public-api.mjs +0 -9
  111. package/esm2022/lib/modules/file/types.mjs +0 -2
  112. package/esm2022/lib/modules/file/utils.mjs +0 -129
  113. package/esm2022/lib/modules/fixed-button/fixed-button.component.mjs +0 -30
  114. package/esm2022/lib/modules/fixed-button/public-api.mjs +0 -5
  115. package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +0 -56
  116. package/esm2022/lib/modules/fixed-button-detail/public-api.mjs +0 -5
  117. package/esm2022/lib/modules/hierarchic-selector/classes/flat-node.mjs +0 -18
  118. package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-configuration.mjs +0 -2
  119. package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.mjs +0 -2
  120. package/esm2022/lib/modules/hierarchic-selector/classes/model-node.mjs +0 -14
  121. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +0 -398
  122. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +0 -243
  123. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +0 -38
  124. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +0 -22
  125. package/esm2022/lib/modules/hierarchic-selector/public-api.mjs +0 -10
  126. package/esm2022/lib/modules/icon/icon.directive.mjs +0 -96
  127. package/esm2022/lib/modules/icon/icon.module.mjs +0 -33
  128. package/esm2022/lib/modules/icon/public-api.mjs +0 -6
  129. package/esm2022/lib/modules/logger/error-handler.mjs +0 -87
  130. package/esm2022/lib/modules/logger/error.module.mjs +0 -22
  131. package/esm2022/lib/modules/logger/public-api.mjs +0 -6
  132. package/esm2022/lib/modules/matomo/matomo.service.mjs +0 -96
  133. package/esm2022/lib/modules/matomo/public-api.mjs +0 -5
  134. package/esm2022/lib/modules/panels/abstract-panel.mjs +0 -76
  135. package/esm2022/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.mjs +0 -12
  136. package/esm2022/lib/modules/panels/panels.component.mjs +0 -27
  137. package/esm2022/lib/modules/panels/panels.module.mjs +0 -10
  138. package/esm2022/lib/modules/panels/panels.service.mjs +0 -329
  139. package/esm2022/lib/modules/panels/panels.urlmatcher.mjs +0 -75
  140. package/esm2022/lib/modules/panels/public-api.mjs +0 -11
  141. package/esm2022/lib/modules/panels/types.mjs +0 -3
  142. package/esm2022/lib/modules/relations/public-api.mjs +0 -5
  143. package/esm2022/lib/modules/relations/relations.component.mjs +0 -254
  144. package/esm2022/lib/modules/search/classes/graphql-doctrine.mjs +0 -111
  145. package/esm2022/lib/modules/search/classes/graphql-doctrine.types.mjs +0 -14
  146. package/esm2022/lib/modules/search/classes/transformers.mjs +0 -142
  147. package/esm2022/lib/modules/search/classes/url.mjs +0 -53
  148. package/esm2022/lib/modules/search/classes/utils.mjs +0 -25
  149. package/esm2022/lib/modules/search/dropdown-container/dropdown-container-animations.mjs +0 -44
  150. package/esm2022/lib/modules/search/dropdown-container/dropdown-container.component.mjs +0 -87
  151. package/esm2022/lib/modules/search/dropdown-container/dropdown-ref.mjs +0 -24
  152. package/esm2022/lib/modules/search/dropdown-container/dropdown.service.mjs +0 -90
  153. package/esm2022/lib/modules/search/facet-selector/facet-selector.component.mjs +0 -45
  154. package/esm2022/lib/modules/search/group/group.component.mjs +0 -53
  155. package/esm2022/lib/modules/search/input/input.component.mjs +0 -365
  156. package/esm2022/lib/modules/search/public-api.mjs +0 -7
  157. package/esm2022/lib/modules/search/search/search.component.mjs +0 -102
  158. package/esm2022/lib/modules/search/types/dropdown-component.mjs +0 -2
  159. package/esm2022/lib/modules/search/types/facet.mjs +0 -2
  160. package/esm2022/lib/modules/search/types/values.mjs +0 -2
  161. package/esm2022/lib/modules/select/abstract-select.component.mjs +0 -232
  162. package/esm2022/lib/modules/select/public-api.mjs +0 -7
  163. package/esm2022/lib/modules/select/select/select.component.mjs +0 -310
  164. package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +0 -57
  165. package/esm2022/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +0 -155
  166. package/esm2022/lib/modules/sidenav/public-api.mjs +0 -9
  167. package/esm2022/lib/modules/sidenav/sidenav/sidenav.component.mjs +0 -15
  168. package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +0 -90
  169. package/esm2022/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +0 -11
  170. package/esm2022/lib/modules/sidenav/sidenav-stack.service.mjs +0 -50
  171. package/esm2022/lib/modules/sidenav/sidenav.service.mjs +0 -196
  172. package/esm2022/lib/modules/stamp/public-api.mjs +0 -5
  173. package/esm2022/lib/modules/stamp/stamp.component.mjs +0 -23
  174. package/esm2022/lib/modules/table-button/public-api.mjs +0 -5
  175. package/esm2022/lib/modules/table-button/table-button.component.mjs +0 -78
  176. package/esm2022/lib/services/abstract-model.service.mjs +0 -526
  177. package/esm2022/lib/services/debounce.service.mjs +0 -149
  178. package/esm2022/lib/services/enum.service.mjs +0 -64
  179. package/esm2022/lib/services/link-mutation.service.mjs +0 -154
  180. package/esm2022/lib/services/persistence.service.mjs +0 -115
  181. package/esm2022/lib/services/swiss-parsing-date-adapter.service.mjs +0 -63
  182. package/esm2022/lib/types/types.mjs +0 -2
  183. package/esm2022/public-api.mjs +0 -46
@@ -1,134 +0,0 @@
1
- import { Component, inject } from '@angular/core';
2
- import { FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators, } from '@angular/forms';
3
- import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
4
- import { BehaviorSubject, merge } from 'rxjs';
5
- import { NATURAL_DROPDOWN_DATA } from '../../search/dropdown-container/dropdown.service';
6
- import { dateMax, dateMin, serialize } from '../utils';
7
- import { MatDatepickerModule } from '@angular/material/datepicker';
8
- import { MatInputModule } from '@angular/material/input';
9
- import { MatFormFieldModule } from '@angular/material/form-field';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/forms";
12
- import * as i2 from "@angular/material/form-field";
13
- import * as i3 from "@angular/material/input";
14
- import * as i4 from "@angular/material/datepicker";
15
- class InvalidWithValueStateMatcher {
16
- isErrorState(control, form) {
17
- return (form && form.invalid && (form.value.to || form.value.from)) || control?.invalid;
18
- }
19
- }
20
- function parseFromControl(control, key) {
21
- const c = control.get(key);
22
- if (!c) {
23
- return null;
24
- }
25
- return c.value;
26
- }
27
- /**
28
- * From >= To
29
- */
30
- function toGreaterThanFrom(dateAdapter) {
31
- return (control) => {
32
- const from = parseFromControl(control, 'from');
33
- const to = parseFromControl(control, 'to');
34
- if (from && to && dateAdapter.compareDate(from, to) > 0) {
35
- return { toGreaterThanFrom: true };
36
- }
37
- return null;
38
- };
39
- }
40
- /**
41
- * Date range with mandatory bounding dates.
42
- *
43
- * If you need optional bounding date, then use `TypeDateComponent` instead.
44
- */
45
- export class TypeDateRangeComponent {
46
- dateAdapter = inject(DateAdapter);
47
- dateFormats = inject(MAT_DATE_FORMATS);
48
- renderedValue = new BehaviorSubject('');
49
- configuration;
50
- matcher = new InvalidWithValueStateMatcher();
51
- fromCtrl = new FormControl(null);
52
- toCtrl = new FormControl(null);
53
- form = new FormGroup({
54
- from: this.fromCtrl,
55
- to: this.toCtrl,
56
- });
57
- defaults = {
58
- min: null,
59
- max: null,
60
- };
61
- constructor() {
62
- const data = inject(NATURAL_DROPDOWN_DATA);
63
- this.configuration = { ...this.defaults, ...data.configuration };
64
- merge(this.fromCtrl.valueChanges, this.toCtrl.valueChanges).subscribe(() => {
65
- this.renderedValue.next(this.getRenderedValue());
66
- });
67
- this.initValidators();
68
- this.reloadCondition(data.condition);
69
- }
70
- getCondition() {
71
- const from = serialize(this.dateAdapter, this.fromCtrl.value);
72
- const to = serialize(this.dateAdapter, this.toCtrl.value);
73
- if (from && to) {
74
- return { between: { from, to } };
75
- }
76
- else {
77
- return {};
78
- }
79
- }
80
- isValid() {
81
- return this.form.valid;
82
- }
83
- isDirty() {
84
- return this.form.dirty;
85
- }
86
- reloadCondition(condition) {
87
- if (!condition) {
88
- return;
89
- }
90
- const value = {
91
- from: null,
92
- to: null,
93
- };
94
- if (condition.between) {
95
- value.from = this.dateAdapter.parse(condition.between.from, null);
96
- value.to = this.dateAdapter.parse(condition.between.to, null);
97
- }
98
- this.form.setValue(value);
99
- }
100
- initValidators() {
101
- const validators = [Validators.required];
102
- if (this.configuration.min) {
103
- validators.push(dateMin(this.dateAdapter, this.configuration.min));
104
- }
105
- if (this.configuration.max) {
106
- validators.push(dateMax(this.dateAdapter, this.configuration.max));
107
- }
108
- this.fromCtrl.setValidators(validators);
109
- this.toCtrl.setValidators(validators);
110
- this.form.setValidators([
111
- toGreaterThanFrom(this.dateAdapter), // From < To
112
- ]);
113
- }
114
- render(value) {
115
- return value ? this.dateAdapter.format(value, this.dateFormats.display.dateInput) : '';
116
- }
117
- getRenderedValue() {
118
- const from = this.render(this.fromCtrl.value);
119
- const to = this.render(this.toCtrl.value);
120
- if (from && to) {
121
- return from + ' - ' + to;
122
- }
123
- else {
124
- return '';
125
- }
126
- }
127
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: TypeDateRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
128
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: TypeDateRangeComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"from\"\n placeholder=\"De\"\n i18n-placeholder\n [formControl]=\"fromCtrl\"\n [errorStateMatcher]=\"matcher\"\n [min]=\"configuration.min\"\n [max]=\"configuration.max\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"from\" />\n <mat-datepicker #from />\n @if (form.hasError('toGreaterThanFrom')) {\n <mat-error>{{ render(fromCtrl.value) }} > {{ render(toCtrl.value) }}</mat-error>\n }\n @if (fromCtrl.hasError('min') && !form.hasError('toGreaterThanFrom')) {\n <mat-error>< {{ configuration.min }}</mat-error>\n }\n @if (fromCtrl.hasError('max') && !form.hasError('toGreaterThanFrom')) {\n <mat-error>> {{ configuration.max }}</mat-error>\n }\n @if (fromCtrl.hasError('required')) {\n <mat-error>*</mat-error>\n }\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"to\"\n placeholder=\"\u00E0\"\n i18n-placeholder\n [formControl]=\"toCtrl\"\n [errorStateMatcher]=\"matcher\"\n [min]=\"configuration.min\"\n [max]=\"configuration.max\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"to\" />\n <mat-datepicker #to />\n @if (toCtrl.hasError('min') && !form.hasError('toGreaterThanFrom')) {\n <mat-error> < {{ configuration.min }}</mat-error>\n }\n @if (toCtrl.hasError('max') && !form.hasError('toGreaterThanFrom')) {\n <mat-error> > {{ configuration.max }}</mat-error>\n }\n @if (toCtrl.hasError('required')) {\n <mat-error>*</mat-error>\n }\n </mat-form-field>\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }] });
129
- }
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: TypeDateRangeComponent, decorators: [{
131
- type: Component,
132
- args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatDatepickerModule], template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"from\"\n placeholder=\"De\"\n i18n-placeholder\n [formControl]=\"fromCtrl\"\n [errorStateMatcher]=\"matcher\"\n [min]=\"configuration.min\"\n [max]=\"configuration.max\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"from\" />\n <mat-datepicker #from />\n @if (form.hasError('toGreaterThanFrom')) {\n <mat-error>{{ render(fromCtrl.value) }} > {{ render(toCtrl.value) }}</mat-error>\n }\n @if (fromCtrl.hasError('min') && !form.hasError('toGreaterThanFrom')) {\n <mat-error>< {{ configuration.min }}</mat-error>\n }\n @if (fromCtrl.hasError('max') && !form.hasError('toGreaterThanFrom')) {\n <mat-error>> {{ configuration.max }}</mat-error>\n }\n @if (fromCtrl.hasError('required')) {\n <mat-error>*</mat-error>\n }\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"to\"\n placeholder=\"\u00E0\"\n i18n-placeholder\n [formControl]=\"toCtrl\"\n [errorStateMatcher]=\"matcher\"\n [min]=\"configuration.min\"\n [max]=\"configuration.max\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"to\" />\n <mat-datepicker #to />\n @if (toCtrl.hasError('min') && !form.hasError('toGreaterThanFrom')) {\n <mat-error> < {{ configuration.min }}</mat-error>\n }\n @if (toCtrl.hasError('max') && !form.hasError('toGreaterThanFrom')) {\n <mat-error> > {{ configuration.max }}</mat-error>\n }\n @if (toCtrl.hasError('required')) {\n <mat-error>*</mat-error>\n }\n </mat-form-field>\n</form>\n" }]
133
- }], ctorParameters: () => [] });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1kYXRlLXJhbmdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2Ryb3Bkb3duLWNvbXBvbmVudHMvdHlwZS1kYXRlLXJhbmdlL3R5cGUtZGF0ZS1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtZGF0ZS1yYW5nZS90eXBlLWRhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUVILFdBQVcsRUFDWCxTQUFTLEVBRVQsV0FBVyxFQUVYLG1CQUFtQixFQUduQixVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsV0FBVyxFQUFxQixnQkFBZ0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3hGLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTVDLE9BQU8sRUFBQyxxQkFBcUIsRUFBc0IsTUFBTSxrREFBa0QsQ0FBQztBQUU1RyxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDckQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7QUFPaEUsTUFBTSw0QkFBNEI7SUFDdkIsWUFBWSxDQUFDLE9BQW9DLEVBQUUsSUFBd0M7UUFDOUYsT0FBTyxDQUFD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c0I7MkZBQXRCLHNCQUFzQix3RUNyRW5DLCszREFvREEsMkNEZWMsV0FBVywycEJBQUUsbUJBQW1CLGtXQUFFLGtCQUFrQix1Y0FBRSxjQUFjLDBXQUFFLG1CQUFtQjs7MkZBRTFGLHNCQUFzQjtrQkFMbEMsU0FBUztpQ0FFTSxJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtR3JvdXAsXG4gICAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5nRm9ybSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yRm4sXG4gICAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtEYXRlQWRhcHRlciwgRXJyb3JTdGF0ZU1hdGNoZXIsIE1BVF9EQVRFX0ZPUk1BVFN9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG1lcmdlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7RHJvcGRvd25Db21wb25lbnR9IGZyb20gJy4uLy4uL3NlYXJjaC90eXBlcy9kcm9wZG93bi1jb21wb25lbnQnO1xuaW1wb3J0IHtOQVRVUkFMX0RST1BET1dOX0RBVEEsIE5hdHVyYWxEcm9wZG93bkRhdGF9IGZyb20gJy4uLy4uL3NlYXJjaC9kcm9wZG93bi1jb250YWluZXIvZHJvcGRvd24uc2VydmljZSc7XG5pbXBvcnQge0ZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGR9IGZyb20gJy4uLy4uL3NlYXJjaC9jbGFzc2VzL2dyYXBocWwtZG9jdHJpbmUudHlwZXMnO1xuaW1wb3J0IHtkYXRlTWF4LCBkYXRlTWluLCBzZXJpYWxpemV9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7TWF0RGF0ZXBpY2tlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge01hdEZvcm1GaWVsZE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5cbmV4cG9ydCB0eXBlIFR5cGVEYXRlUmFuZ2VDb25maWd1cmF0aW9uPEQgPSBhbnk+ID0ge1xuICAgIG1pbj86IEQgfCBudWxsO1xuICAgIG1heD86IEQgfCBudWxsO1xufTtcblxuY2xhc3MgSW52YWxpZFdpdGhWYWx1ZVN0YXRlTWF0Y2hlciBpbXBsZW1lbnRzIEVycm9yU3RhdGVNYXRjaGVyIHtcbiAgICBwdWJsaWMgaXNFcnJvclN0YXRlKGNvbnRyb2w6IEZvcm1Db250cm9sPHVua25vd24+IHwgbnVsbCwgZm9ybTogRm9ybUdyb3VwRGlyZWN0aXZlIHwgTmdGb3JtIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKGZvcm0gJiYgZm9ybS5pbnZhbGlkICYmIChmb3JtLnZhbHVlLnRvIHx8IGZvcm0udmFsdWUuZnJvbSkpIHx8IGNvbnRyb2w/LmludmFsaWQ7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUZyb21Db250cm9sPEQ+KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwga2V5OiBzdHJpbmcpOiBEIHwgbnVsbCB7XG4gICAgY29uc3QgYyA9IGNvbnRyb2wuZ2V0KGtleSk7XG4gICAgaWYgKCFjKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBjLnZhbHVlO1xufVxuXG4vKipcbiAqIEZyb20gPj0gVG9cbiAqL1xuZnVuY3Rpb24gdG9HcmVhdGVyVGhhbkZyb208RD4oZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPEQ+KTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICBjb25zdCBmcm9tID0gcGFyc2VGcm9tQ29udHJvbDxEPihjb250cm9sLCAnZnJvbScpO1xuICAgICAgICBjb25zdCB0byA9IHBhcnNlRnJvbUNvbnRyb2w8RD4oY29udHJvbCwgJ3RvJyk7XG5cbiAgICAgICAgaWYgKGZyb20gJiYgdG8gJiYgZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUoZnJvbSwgdG8pID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHt0b0dyZWF0ZXJUaGFuRnJvbTogdHJ1ZX07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xufVxuXG4vKipcbiAqIERhdGUgcmFuZ2Ugd2l0aCBtYW5kYXRvcnkgYm91bmRpbmcgZGF0ZXMuXG4gKlxuICogSWYgeW91IG5lZWQgb3B0aW9uYWwgYm91bmRpbmcgZGF0ZSwgdGhlbiB1c2UgYFR5cGVEYXRlQ29tcG9uZW50YCBpbnN0ZWFkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vdHlwZS1kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgTWF0RGF0ZXBpY2tlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFR5cGVEYXRlUmFuZ2VDb21wb25lbnQ8RCA9IGFueT4gaW1wbGVtZW50cyBEcm9wZG93bkNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBkYXRlQWRhcHRlciA9IGluamVjdDxEYXRlQWRhcHRlcjxEPj4oRGF0ZUFkYXB0ZXIpO1xuICAgIHByaXZhdGUgZGF0ZUZvcm1hdHMgPSBpbmplY3QoTUFUX0RBVEVfRk9STUFUUyk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVuZGVyZWRWYWx1ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb246IFJlcXVpcmVkPFR5cGVEYXRlUmFuZ2VDb25maWd1cmF0aW9uPEQ+PjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbWF0Y2hlciA9IG5ldyBJbnZhbGlkV2l0aFZhbHVlU3RhdGVNYXRjaGVyKCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGZyb21DdHJsID0gbmV3IEZvcm1Db250cm9sPEQgfCBudWxsPihudWxsKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9DdHJsID0gbmV3IEZvcm1Db250cm9sPEQgfCBudWxsPihudWxsKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBmcm9tOiB0aGlzLmZyb21DdHJsLFxuICAgICAgICB0bzogdGhpcy50b0N0cmwsXG4gICAgfSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRzOiBSZXF1aXJlZDxUeXBlRGF0ZVJhbmdlQ29uZmlndXJhdGlvbjxEPj4gPSB7XG4gICAgICAgIG1pbjogbnVsbCxcbiAgICAgICAgbWF4OiBudWxsLFxuICAgIH07XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBpbmplY3Q8TmF0dXJhbERyb3Bkb3duRGF0YTxUeXBlRGF0ZVJhbmdlQ29uZmlndXJhdGlvbjxEPj4+KE5BVFVSQUxfRFJPUERPV05fREFUQSk7XG5cbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gey4uLnRoaXMuZGVmYXVsdHMsIC4uLmRhdGEuY29uZmlndXJhdGlvbn07XG5cbiAgICAgICAgbWVyZ2UodGhpcy5mcm9tQ3RybC52YWx1ZUNoYW5nZXMsIHRoaXMudG9DdHJsLnZhbHVlQ2hhbmdlcykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZWRWYWx1ZS5uZXh0KHRoaXMuZ2V0UmVuZGVyZWRWYWx1ZSgpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5pbml0VmFsaWRhdG9ycygpO1xuICAgICAgICB0aGlzLnJlbG9hZENvbmRpdGlvbihkYXRhLmNvbmRpdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbmRpdGlvbigpOiBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkIHtcbiAgICAgICAgY29uc3QgZnJvbSA9IHNlcmlhbGl6ZTxEPih0aGlzLmRhdGVBZGFwdGVyLCB0aGlzLmZyb21DdHJsLnZhbHVlKTtcbiAgICAgICAgY29uc3QgdG8gPSBzZXJpYWxpemU8RD4odGhpcy5kYXRlQWRhcHRlciwgdGhpcy50b0N0cmwudmFsdWUpO1xuXG4gICAgICAgIGlmIChmcm9tICYmIHRvKSB7XG4gICAgICAgICAgICByZXR1cm4ge2JldHdlZW46IHtmcm9tLCB0b319O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0udmFsaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRGlydHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZGlydHk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWxvYWRDb25kaXRpb24oY29uZGl0aW9uOiBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAoIWNvbmRpdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSB7XG4gICAgICAgICAgICBmcm9tOiBudWxsIGFzIEQgfCBudWxsLFxuICAgICAgICAgICAgdG86IG51bGwgYXMgRCB8IG51bGwsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGNvbmRpdGlvbi5iZXR3ZWVuKSB7XG4gICAgICAgICAgICB2YWx1ZS5mcm9tID0gdGhpcy5kYXRlQWRhcHRlci5wYXJzZShjb25kaXRpb24uYmV0d2Vlbi5mcm9tLCBudWxsKTtcbiAgICAgICAgICAgIHZhbHVlLnRvID0gdGhpcy5kYXRlQWRhcHRlci5wYXJzZShjb25kaXRpb24uYmV0d2Vlbi50bywgbnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm0uc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFZhbGlkYXRvcnMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbVmFsaWRhdG9ycy5yZXF1aXJlZF07XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24ubWluKSB7XG4gICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goZGF0ZU1pbjxEPih0aGlzLmRhdGVBZGFwdGVyLCB0aGlzLmNvbmZpZ3VyYXRpb24ubWluKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLm1heCkge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKGRhdGVNYXg8RD4odGhpcy5kYXRlQWRhcHRlciwgdGhpcy5jb25maWd1cmF0aW9uLm1heCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mcm9tQ3RybC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgICAgICB0aGlzLnRvQ3RybC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5zZXRWYWxpZGF0b3JzKFtcbiAgICAgICAgICAgIHRvR3JlYXRlclRoYW5Gcm9tPEQ+KHRoaXMuZGF0ZUFkYXB0ZXIpLCAvLyBGcm9tIDwgVG9cbiAgICAgICAgXSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlcih2YWx1ZTogRCB8IG51bGwpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdmFsdWUgPyB0aGlzLmRhdGVBZGFwdGVyLmZvcm1hdCh2YWx1ZSwgdGhpcy5kYXRlRm9ybWF0cy5kaXNwbGF5LmRhdGVJbnB1dCkgOiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlbmRlcmVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZnJvbSA9IHRoaXMucmVuZGVyKHRoaXMuZnJvbUN0cmwudmFsdWUpO1xuICAgICAgICBjb25zdCB0byA9IHRoaXMucmVuZGVyKHRoaXMudG9DdHJsLnZhbHVlKTtcblxuICAgICAgICBpZiAoZnJvbSAmJiB0bykge1xuICAgICAgICAgICAgcmV0dXJuIGZyb20gKyAnIC0gJyArIHRvO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJmcm9tXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRGVcIlxuICAgICAgICAgICAgaTE4bi1wbGFjZWhvbGRlclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZyb21DdHJsXCJcbiAgICAgICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJtYXRjaGVyXCJcbiAgICAgICAgICAgIFttaW5dPVwiY29uZmlndXJhdGlvbi5taW5cIlxuICAgICAgICAgICAgW21heF09XCJjb25maWd1cmF0aW9uLm1heFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0SWNvblN1ZmZpeCBbZm9yXT1cImZyb21cIiAvPlxuICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2Zyb20gLz5cbiAgICAgICAgQGlmIChmb3JtLmhhc0Vycm9yKCd0b0dyZWF0ZXJUaGFuRnJvbScpKSB7XG4gICAgICAgICAgICA8bWF0LWVycm9yPnt7IHJlbmRlcihmcm9tQ3RybC52YWx1ZSkgfX0gPiB7eyByZW5kZXIodG9DdHJsLnZhbHVlKSB9fTwvbWF0LWVycm9yPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoZnJvbUN0cmwuaGFzRXJyb3IoJ21pbicpICYmICFmb3JtLmhhc0Vycm9yKCd0b0dyZWF0ZXJUaGFuRnJvbScpKSB7XG4gICAgICAgICAgICA8bWF0LWVycm9yPjwge3sgY29uZmlndXJhdGlvbi5taW4gfX08L21hdC1lcnJvcj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGZyb21DdHJsLmhhc0Vycm9yKCdtYXgnKSAmJiAhZm9ybS5oYXNFcnJvcigndG9HcmVhdGVyVGhhbkZyb20nKSkge1xuICAgICAgICAgICAgPG1hdC1lcnJvcj4+IHt7IGNvbmZpZ3VyYXRpb24ubWF4IH19PC9tYXQtZXJyb3I+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChmcm9tQ3RybC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgICAgICAgPG1hdC1lcnJvcj4qPC9tYXQtZXJyb3I+XG4gICAgICAgIH1cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJ0b1wiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIsOgXCJcbiAgICAgICAgICAgIGkxOG4tcGxhY2Vob2xkZXJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ0b0N0cmxcIlxuICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cIm1hdGNoZXJcIlxuICAgICAgICAgICAgW21pbl09XCJjb25maWd1cmF0aW9uLm1pblwiXG4gICAgICAgICAgICBbbWF4XT1cImNvbmZpZ3VyYXRpb24ubWF4XCJcbiAgICAgICAgLz5cbiAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRJY29uU3VmZml4IFtmb3JdPVwidG9cIiAvPlxuICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3RvIC8+XG4gICAgICAgIEBpZiAodG9DdHJsLmhhc0Vycm9yKCdtaW4nKSAmJiAhZm9ybS5oYXNFcnJvcigndG9HcmVhdGVyVGhhbkZyb20nKSkge1xuICAgICAgICAgICAgPG1hdC1lcnJvcj4gPCB7eyBjb25maWd1cmF0aW9uLm1pbiB9fTwvbWF0LWVycm9yPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAodG9DdHJsLmhhc0Vycm9yKCdtYXgnKSAmJiAhZm9ybS5oYXNFcnJvcigndG9HcmVhdGVyVGhhbkZyb20nKSkge1xuICAgICAgICAgICAgPG1hdC1lcnJvcj4gPiB7eyBjb25maWd1cmF0aW9uLm1heCB9fTwvbWF0LWVycm9yPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAodG9DdHJsLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgICAgICA8bWF0LWVycm9yPio8L21hdC1lcnJvcj5cbiAgICAgICAgfVxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Zvcm0+XG4iXX0=
@@ -1,80 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { NaturalQueryVariablesManager } from '../../../classes/query-variable-manager';
3
- import { AbstractAssociationSelectComponent } from '../abstract-association-select-component.directive';
4
- import { EMPTY } from 'rxjs';
5
- import { map } from 'rxjs/operators';
6
- import { NaturalHierarchicSelectorComponent } from '../../hierarchic-selector/hierarchic-selector/hierarchic-selector.component';
7
- import { MatOptionModule } from '@angular/material/core';
8
- import { MatSelectModule } from '@angular/material/select';
9
- import { MatFormFieldModule } from '@angular/material/form-field';
10
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@angular/forms";
13
- import * as i2 from "@angular/material/form-field";
14
- import * as i3 from "@angular/material/select";
15
- import * as i4 from "@angular/material/core";
16
- export class TypeHierarchicSelectorComponent extends AbstractAssociationSelectComponent {
17
- getCondition() {
18
- if (!this.isValid()) {
19
- return {};
20
- }
21
- const ids = this.valueCtrl.value?.[this.configuration.key].map((item) => {
22
- return item.id;
23
- }) ?? [];
24
- return this.operatorKeyToCondition(this.operatorCtrl.value, ids);
25
- }
26
- // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
27
- reloadValue(condition) {
28
- if (!condition.have) {
29
- return EMPTY;
30
- }
31
- const ids = condition.have.values;
32
- const qvm = new NaturalQueryVariablesManager();
33
- qvm.set('a', {
34
- filter: {
35
- groups: [{ conditions: [{ id: { in: { values: ids } } }] }],
36
- },
37
- });
38
- return this.configuration.service.getAll(qvm).pipe(map(v => {
39
- const selection = {};
40
- selection[this.configuration.key] = v.items;
41
- return this.noEmptySelection(selection);
42
- }));
43
- }
44
- renderValueWithoutOperator() {
45
- const items = this.valueCtrl.value?.[this.configuration.key];
46
- if (!items) {
47
- return '';
48
- }
49
- return items
50
- .map((item) => {
51
- return item.fullName || item.name;
52
- })
53
- .join(', ');
54
- }
55
- selectionChange(selection) {
56
- this.valueCtrl.setValue(this.noEmptySelection(selection));
57
- this.valueCtrl.markAsDirty();
58
- }
59
- /**
60
- * We need to keep `null` in our valueCtrl so the required validator works properly, so
61
- * filter here
62
- */
63
- noEmptySelection(selection) {
64
- return selection[this.configuration.key].length ? selection : null;
65
- }
66
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: TypeHierarchicSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
67
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: TypeHierarchicSelectorComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (requireValueCtrl) {\n <natural-hierarchic-selector\n (selectionChange)=\"selectionChange($event)\"\n [config]=\"configuration.config\"\n [filters]=\"configuration.filters\"\n [multiple]=\"true\"\n [selected]=\"valueCtrl.value || {}\"\n style=\"margin-right: 20px\"\n />\n }\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: NaturalHierarchicSelectorComponent, selector: "natural-hierarchic-selector", inputs: ["displayWith", "config", "multiple", "selected", "allowUnselect", "filters", "searchFacets", "searchSelections"], outputs: ["searchSelectionChange", "selectionChange"] }] });
68
- }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: TypeHierarchicSelectorComponent, decorators: [{
70
- type: Component,
71
- args: [{ standalone: true, imports: [
72
- FormsModule,
73
- ReactiveFormsModule,
74
- MatFormFieldModule,
75
- MatSelectModule,
76
- MatOptionModule,
77
- NaturalHierarchicSelectorComponent,
78
- ], template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (requireValueCtrl) {\n <natural-hierarchic-selector\n (selectionChange)=\"selectionChange($event)\"\n [config]=\"configuration.config\"\n [filters]=\"configuration.filters\"\n [multiple]=\"true\"\n [selected]=\"valueCtrl.value || {}\"\n style=\"margin-right: 20px\"\n />\n }\n</form>\n" }]
79
- }] });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1oaWVyYXJjaGljLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2Ryb3Bkb3duLWNvbXBvbmVudHMvdHlwZS1oaWVyYXJjaGljLXNlbGVjdG9yL3R5cGUtaGllcmFyY2hpYy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtaGllcmFyY2hpYy1zZWxlY3Rvci90eXBlLWhpZXJhcmNoaWMtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUtyRixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUN0RyxPQUFPLEVBQUMsS0FBSyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSw2RUFBNkUsQ0FBQztBQUMvSCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBNEJoRSxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsa0NBQXVFO0lBQ2pILFlBQVk7UUFDZixJQUFJLENB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O3dCQUNMLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQ0FBa0M7cUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXR1cmFsUXVlcnlWYXJpYWJsZXNNYW5hZ2VyfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3F1ZXJ5LXZhcmlhYmxlLW1hbmFnZXInO1xuaW1wb3J0IHtMaXRlcmFsLCBVbnR5cGVkTW9kZWxTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi90eXBlcy90eXBlcyc7XG5pbXBvcnQge05hdHVyYWxIaWVyYXJjaGljQ29uZmlndXJhdGlvbn0gZnJvbSAnLi4vLi4vaGllcmFyY2hpYy1zZWxlY3Rvci9jbGFzc2VzL2hpZXJhcmNoaWMtY29uZmlndXJhdGlvbic7XG5pbXBvcnQge09yZ2FuaXplZE1vZGVsU2VsZWN0aW9ufSBmcm9tICcuLi8uLi9oaWVyYXJjaGljLXNlbGVjdG9yL2hpZXJhcmNoaWMtc2VsZWN0b3IvaGllcmFyY2hpYy1zZWxlY3Rvci5zZXJ2aWNlJztcbmltcG9ydCB7RmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZH0gZnJvbSAnLi4vLi4vc2VhcmNoL2NsYXNzZXMvZ3JhcGhxbC1kb2N0cmluZS50eXBlcyc7XG5pbXBvcnQge0Fic3RyYWN0QXNzb2NpYXRpb25TZWxlY3RDb21wb25lbnR9IGZyb20gJy4uL2Fic3RyYWN0LWFzc29jaWF0aW9uLXNlbGVjdC1jb21wb25lbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7RU1QVFksIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TmF0dXJhbEhpZXJhcmNoaWNTZWxlY3RvckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vaGllcmFyY2hpYy1zZWxlY3Rvci9oaWVyYXJjaGljLXNlbGVjdG9yL2hpZXJhcmNoaWMtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7TWF0T3B0aW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7TWF0U2VsZWN0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHtNYXRGb3JtRmllbGRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgdHlwZSBIaWVyYXJjaGljRmlsdGVyQ29uZmlndXJhdGlvbjxUID0gTGl0ZXJhbD4gPSB7XG4gICAgc2VydmljZTogTmF0dXJhbEhpZXJhcmNoaWNDb25maWd1cmF0aW9uWydzZXJ2aWNlJ107XG4gICAgZmlsdGVyOiBUO1xufTtcblxuZXhwb3J0IHR5cGUgSGllcmFyY2hpY0ZpbHRlcnNDb25maWd1cmF0aW9uPFQgPSBMaXRlcmFsPiA9IEhpZXJhcmNoaWNGaWx0ZXJDb25maWd1cmF0aW9uPFQ+W107XG5cbmV4cG9ydCB0eXBlIFR5cGVIaWVyYXJjaGljU2VsZWN0b3JDb25maWd1cmF0aW9uID0ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNlcnZpY2U6IFVudHlwZWRNb2RlbFNlcnZpY2U7XG4gICAgY29uZmlnOiBOYXR1cmFsSGllcmFyY2hpY0NvbmZpZ3VyYXRpb25bXTtcbiAgICBmaWx0ZXJzPzogSGllcmFyY2hpY0ZpbHRlcnNDb25maWd1cmF0aW9uO1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL3R5cGUtaGllcmFyY2hpYy1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICAgICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgICAgICBOYXR1cmFsSGllcmFyY2hpY1NlbGVjdG9yQ29tcG9uZW50LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR5cGVIaWVyYXJjaGljU2VsZWN0b3JDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEFzc29jaWF0aW9uU2VsZWN0Q29tcG9uZW50PFR5cGVIaWVyYXJjaGljU2VsZWN0b3JDb25maWd1cmF0aW9uPiB7XG4gICAgcHVibGljIGdldENvbmRpdGlvbigpOiBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaWRzOiBzdHJpbmdbXSA9XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ3RybC52YWx1ZT8uW3RoaXMuY29uZmlndXJhdGlvbi5rZXldLm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7XG4gICAgICAgICAgICB9KSA/PyBbXTtcblxuICAgICAgICByZXR1cm4gdGhpcy5vcGVyYXRvcktleVRvQ29uZGl0aW9uKHRoaXMub3BlcmF0b3JDdHJsLnZhbHVlLCBpZHMpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVkdW5kYW50LXR5cGUtY29uc3RpdHVlbnRzXG4gICAgcHJvdGVjdGVkIHJlbG9hZFZhbHVlKGNvbmRpdGlvbjogRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZCk6IE9ic2VydmFibGU8dW5rbm93biB8IG51bGw+IHtcbiAgICAgICAgaWYgKCFjb25kaXRpb24uaGF2ZSkge1xuICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaWRzID0gY29uZGl0aW9uLmhhdmUudmFsdWVzO1xuICAgICAgICBjb25zdCBxdm0gPSBuZXcgTmF0dXJhbFF1ZXJ5VmFyaWFibGVzTWFuYWdlcigpO1xuICAgICAgICBxdm0uc2V0KCdhJywge1xuICAgICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICAgICAgZ3JvdXBzOiBbe2NvbmRpdGlvbnM6IFt7aWQ6IHtpbjoge3ZhbHVlczogaWRzfX19XX1dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbi5zZXJ2aWNlLmdldEFsbChxdm0pLnBpcGUoXG4gICAgICAgICAgICBtYXAodiA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uOiBPcmdhbml6ZWRNb2RlbFNlbGVjdGlvbiA9IHt9O1xuXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uW3RoaXMuY29uZmlndXJhdGlvbi5rZXldID0gdi5pdGVtcztcblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm5vRW1wdHlTZWxlY3Rpb24oc2VsZWN0aW9uKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZW5kZXJWYWx1ZVdpdGhvdXRPcGVyYXRvcigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMudmFsdWVDdHJsLnZhbHVlPy5bdGhpcy5jb25maWd1cmF0aW9uLmtleV07XG4gICAgICAgIGlmICghaXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtc1xuICAgICAgICAgICAgLm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZnVsbE5hbWUgfHwgaXRlbS5uYW1lO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKCcsICcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0aW9uOiBPcmdhbml6ZWRNb2RlbFNlbGVjdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlQ3RybC5zZXRWYWx1ZSh0aGlzLm5vRW1wdHlTZWxlY3Rpb24oc2VsZWN0aW9uKSk7XG4gICAgICAgIHRoaXMudmFsdWVDdHJsLm1hcmtBc0RpcnR5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2UgbmVlZCB0byBrZWVwIGBudWxsYCBpbiBvdXIgdmFsdWVDdHJsIHNvIHRoZSByZXF1aXJlZCB2YWxpZGF0b3Igd29ya3MgcHJvcGVybHksIHNvXG4gICAgICogZmlsdGVyIGhlcmVcbiAgICAgKi9cbiAgICBwcml2YXRlIG5vRW1wdHlTZWxlY3Rpb24oc2VsZWN0aW9uOiBPcmdhbml6ZWRNb2RlbFNlbGVjdGlvbik6IE9yZ2FuaXplZE1vZGVsU2VsZWN0aW9uIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25bdGhpcy5jb25maWd1cmF0aW9uLmtleV0ubGVuZ3RoID8gc2VsZWN0aW9uIDogbnVsbDtcbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJtYXgtd2lkdGg6IDdlbTsgbWFyZ2luLXJpZ2h0OiAxZW1cIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPVwiTWF0aGVtYXRpY2FsIG9wZXJhdG9yIDwgPiA9XCI+T3DDqXJhdGV1cjwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwib3BlcmF0b3JDdHJsXCIgW3JlcXVpcmVkXT1cInRydWVcIiBwYW5lbFdpZHRoPVwiXCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIG9wZXJhdG9yczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmtleVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIEBpZiAocmVxdWlyZVZhbHVlQ3RybCkge1xuICAgICAgICA8bmF0dXJhbC1oaWVyYXJjaGljLXNlbGVjdG9yXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtjb25maWddPVwiY29uZmlndXJhdGlvbi5jb25maWdcIlxuICAgICAgICAgICAgW2ZpbHRlcnNdPVwiY29uZmlndXJhdGlvbi5maWx0ZXJzXCJcbiAgICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZF09XCJ2YWx1ZUN0cmwudmFsdWUgfHwge31cIlxuICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDIwcHhcIlxuICAgICAgICAvPlxuICAgIH1cbjwvZm9ybT5cbiJdfQ==
@@ -1,48 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { AbstractAssociationSelectComponent } from '../abstract-association-select-component.directive';
3
- import { EMPTY } from 'rxjs';
4
- import { NaturalSelectComponent } from '../../select/select/select.component';
5
- import { MatOptionModule } from '@angular/material/core';
6
- import { MatSelectModule } from '@angular/material/select';
7
- import { MatFormFieldModule } from '@angular/material/form-field';
8
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/forms";
11
- import * as i2 from "@angular/material/form-field";
12
- import * as i3 from "@angular/material/select";
13
- import * as i4 from "@angular/material/core";
14
- export class TypeNaturalSelectComponent extends AbstractAssociationSelectComponent {
15
- getCondition() {
16
- if (!this.isValid()) {
17
- return {};
18
- }
19
- const id = this.valueCtrl.value?.id;
20
- const values = id ? [id] : [];
21
- return this.operatorKeyToCondition(this.operatorCtrl.value, values);
22
- }
23
- reloadValue(condition) {
24
- if (!condition.have) {
25
- return EMPTY;
26
- }
27
- return this.configuration.service.getOne(condition.have.values[0]);
28
- }
29
- renderValueWithoutOperator() {
30
- const selected = this.valueCtrl.value;
31
- const selectedName = selected?.fullName || selected?.name || '';
32
- return selectedName;
33
- }
34
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: TypeNaturalSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
35
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: TypeNaturalSelectComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (configuration && requireValueCtrl) {\n <natural-select\n style=\"display: inline\"\n [formControl]=\"valueCtrl\"\n [placeholder]=\"configuration.placeholder\"\n [service]=\"configuration.service\"\n [filter]=\"configuration.filter\"\n />\n }\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: NaturalSelectComponent, selector: "natural-select", inputs: ["service", "optionRequired", "searchField", "searchOperator", "filter", "disabled"] }] });
36
- }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: TypeNaturalSelectComponent, decorators: [{
38
- type: Component,
39
- args: [{ standalone: true, imports: [
40
- FormsModule,
41
- ReactiveFormsModule,
42
- MatFormFieldModule,
43
- MatSelectModule,
44
- MatOptionModule,
45
- NaturalSelectComponent,
46
- ], template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (configuration && requireValueCtrl) {\n <natural-select\n style=\"display: inline\"\n [formControl]=\"valueCtrl\"\n [placeholder]=\"configuration.placeholder\"\n [service]=\"configuration.service\"\n [filter]=\"configuration.filter\"\n />\n }\n</form>\n" }]
47
- }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1uYXR1cmFsLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtbmF0dXJhbC1zZWxlY3QvdHlwZS1uYXR1cmFsLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtbmF0dXJhbC1zZWxlY3QvdHlwZS1uYXR1cmFsLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3hDLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQW9CaEUsTUFBTSxPQUFPLDBCQUVYLFNBQVEsa0NBQTRFO0lBQzNFLFlBQVk7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDbEIsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRTlCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFUyxXQUFXLENBQUMsU0FBb0M7UUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRVMsMEJBQTBCO1FBQ2hDLE1BQU0sUUFBUSxHQUEwRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUM3RixNQUFNLFlBQVksR0FBRyxRQUFRLEVBQUUsUUFBUSxJQUFJLFFBQVEsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1FBRWhFLE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7dUdBM0JRLDBCQUEwQjsyRkFBMUIsMEJBQTBCLCtGQzdCdkMsczBCQXNCQSwyQ0REUSxXQUFXLHdtQkFDWCxtQkFBbUIsa1dBQ25CLGtCQUFrQiwwU0FDbEIsZUFBZSxtckJBQ2YsZUFBZSwrQkFDZixzQkFBc0I7OzJGQUdqQiwwQkFBMEI7a0JBWnRDLFNBQVM7aUNBRU0sSUFBSSxXQUNQO3dCQUNMLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixzQkFBc0I7cUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkfSBmcm9tICcuLi8uLi9zZWFyY2gvY2xhc3Nlcy9ncmFwaHFsLWRvY3RyaW5lLnR5cGVzJztcbmltcG9ydCB7RXh0cmFjdFRvbmUsIEV4dHJhY3RWYWxsLCBVbnR5cGVkTW9kZWxTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi90eXBlcy90eXBlcyc7XG5pbXBvcnQge0Fic3RyYWN0QXNzb2NpYXRpb25TZWxlY3RDb21wb25lbnR9IGZyb20gJy4uL2Fic3RyYWN0LWFzc29jaWF0aW9uLXNlbGVjdC1jb21wb25lbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7RU1QVFksIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtOYXR1cmFsU2VsZWN0Q29tcG9uZW50fSBmcm9tICcuLi8uLi9zZWxlY3Qvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRPcHRpb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtNYXRTZWxlY3RNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQge01hdEZvcm1GaWVsZE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCB0eXBlIFR5cGVTZWxlY3ROYXR1cmFsQ29uZmlndXJhdGlvbjxUU2VydmljZSBleHRlbmRzIFVudHlwZWRNb2RlbFNlcnZpY2U+ID0ge1xuICAgIHNlcnZpY2U6IFRTZXJ2aWNlO1xuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgZmlsdGVyPzogRXh0cmFjdFZhbGw8VFNlcnZpY2U+WydmaWx0ZXInXTtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi90eXBlLW5hdHVyYWwtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgICAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgICAgIE5hdHVyYWxTZWxlY3RDb21wb25lbnQsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHlwZU5hdHVyYWxTZWxlY3RDb21wb25lbnQ8XG4gICAgVFNlcnZpY2UgZXh0ZW5kcyBVbnR5cGVkTW9kZWxTZXJ2aWNlLFxuPiBleHRlbmRzIEFic3RyYWN0QXNzb2NpYXRpb25TZWxlY3RDb21wb25lbnQ8VHlwZVNlbGVjdE5hdHVyYWxDb25maWd1cmF0aW9uPFRTZXJ2aWNlPj4ge1xuICAgIHB1YmxpYyBnZXRDb25kaXRpb24oKTogRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZCB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy52YWx1ZUN0cmwudmFsdWU/LmlkO1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBpZCA/IFtpZF0gOiBbXTtcblxuICAgICAgICByZXR1cm4gdGhpcy5vcGVyYXRvcktleVRvQ29uZGl0aW9uKHRoaXMub3BlcmF0b3JDdHJsLnZhbHVlLCB2YWx1ZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZWxvYWRWYWx1ZShjb25kaXRpb246IEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQpOiBPYnNlcnZhYmxlPEV4dHJhY3RUb25lPFRTZXJ2aWNlPj4ge1xuICAgICAgICBpZiAoIWNvbmRpdGlvbi5oYXZlKSB7XG4gICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uLnNlcnZpY2UuZ2V0T25lKGNvbmRpdGlvbi5oYXZlLnZhbHVlc1swXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlbmRlclZhbHVlV2l0aG91dE9wZXJhdG9yKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkOiB7aWQ6IHN0cmluZzsgbmFtZT86IHN0cmluZzsgZnVsbE5hbWU/OiBzdHJpbmd9IHwgbnVsbCA9IHRoaXMudmFsdWVDdHJsLnZhbHVlO1xuICAgICAgICBjb25zdCBzZWxlY3RlZE5hbWUgPSBzZWxlY3RlZD8uZnVsbE5hbWUgfHwgc2VsZWN0ZWQ/Lm5hbWUgfHwgJyc7XG5cbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkTmFtZTtcbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJtYXgtd2lkdGg6IDdlbTsgbWFyZ2luLXJpZ2h0OiAxZW1cIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPVwiTWF0aGVtYXRpY2FsIG9wZXJhdG9yIDwgPiA9XCI+T3DDqXJhdGV1cjwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwib3BlcmF0b3JDdHJsXCIgW3JlcXVpcmVkXT1cInRydWVcIiBwYW5lbFdpZHRoPVwiXCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIG9wZXJhdG9yczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmtleVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIEBpZiAoY29uZmlndXJhdGlvbiAmJiByZXF1aXJlVmFsdWVDdHJsKSB7XG4gICAgICAgIDxuYXR1cmFsLXNlbGVjdFxuICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmVcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInZhbHVlQ3RybFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlndXJhdGlvbi5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICBbc2VydmljZV09XCJjb25maWd1cmF0aW9uLnNlcnZpY2VcIlxuICAgICAgICAgICAgW2ZpbHRlcl09XCJjb25maWd1cmF0aW9uLmZpbHRlclwiXG4gICAgICAgIC8+XG4gICAgfVxuPC9mb3JtPlxuIl19
@@ -1,110 +0,0 @@
1
- import { Component, inject } from '@angular/core';
2
- import { FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
3
- import { BehaviorSubject, merge } from 'rxjs';
4
- import { NaturalDropdownRef } from '../../search/dropdown-container/dropdown-ref';
5
- import { NATURAL_DROPDOWN_DATA } from '../../search/dropdown-container/dropdown.service';
6
- import { possibleComparableOperators } from '../types';
7
- import { InvalidWithValueStateMatcher } from '../type-text/type-text.component';
8
- import { decimal } from '../../../classes/validators';
9
- import { MatInputModule } from '@angular/material/input';
10
- import { MatOptionModule } from '@angular/material/core';
11
- import { MatSelectModule } from '@angular/material/select';
12
- import { MatFormFieldModule } from '@angular/material/form-field';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@angular/forms";
15
- import * as i2 from "@angular/material/form-field";
16
- import * as i3 from "@angular/material/select";
17
- import * as i4 from "@angular/material/core";
18
- import * as i5 from "@angular/material/input";
19
- export class TypeNumberComponent {
20
- dropdownRef = inject(NaturalDropdownRef);
21
- renderedValue = new BehaviorSubject('');
22
- configuration;
23
- operatorCtrl = new FormControl('equal', { nonNullable: true });
24
- valueCtrl = new FormControl();
25
- matcher = new InvalidWithValueStateMatcher();
26
- form = new FormGroup({
27
- operator: this.operatorCtrl,
28
- value: this.valueCtrl,
29
- });
30
- operators = possibleComparableOperators;
31
- defaults = {
32
- min: null,
33
- max: null,
34
- step: null,
35
- };
36
- constructor() {
37
- const data = inject(NATURAL_DROPDOWN_DATA);
38
- this.configuration = { ...this.defaults, ...data.configuration };
39
- merge(this.operatorCtrl.valueChanges, this.valueCtrl.valueChanges).subscribe(() => {
40
- const rendered = this.getRenderedValue();
41
- this.renderedValue.next(rendered);
42
- });
43
- this.initValidators();
44
- this.reloadCondition(data.condition);
45
- }
46
- getCondition() {
47
- const condition = {};
48
- condition[this.operatorCtrl.value] = {
49
- value: this.valueCtrl.value,
50
- };
51
- return condition;
52
- }
53
- isValid() {
54
- return this.form.valid;
55
- }
56
- isDirty() {
57
- return this.form.dirty;
58
- }
59
- close() {
60
- if (this.isValid()) {
61
- this.dropdownRef.close({ condition: this.getCondition() });
62
- }
63
- else {
64
- this.dropdownRef.close(); // undefined value, discard changes / prevent to add a condition (on new fields
65
- }
66
- }
67
- initValidators() {
68
- const validators = [Validators.required];
69
- if (typeof this.configuration.min === 'number') {
70
- validators.push(Validators.min(this.configuration.min));
71
- }
72
- if (typeof this.configuration.max === 'number') {
73
- validators.push(Validators.max(this.configuration.max));
74
- }
75
- if (this.configuration.step) {
76
- const decimals = /\.(\d+)$/.exec('' + this.configuration.step)?.[1] ?? '';
77
- const decimalCount = decimals.length;
78
- validators.push(decimal(decimalCount));
79
- }
80
- this.valueCtrl.setValidators(validators);
81
- }
82
- reloadCondition(condition) {
83
- if (!condition) {
84
- return;
85
- }
86
- for (const operator of this.operators) {
87
- const reloadedCondition = condition[operator.key];
88
- if (reloadedCondition) {
89
- this.operatorCtrl.setValue(operator.key);
90
- this.valueCtrl.setValue(reloadedCondition.value);
91
- }
92
- }
93
- }
94
- getRenderedValue() {
95
- const operator = this.operators.find(v => v.key === this.operatorCtrl.value);
96
- if (this.valueCtrl.value === null || !operator) {
97
- return '';
98
- }
99
- else {
100
- return operator.label + ' ' + this.valueCtrl.value;
101
- }
102
- }
103
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: TypeNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
104
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: TypeNumberComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 4em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label i18n>Valeur</mat-label>\n <input\n (keydown.enter)=\"close()\"\n [errorStateMatcher]=\"matcher\"\n [formControl]=\"valueCtrl\"\n [attr.max]=\"configuration.max\"\n [attr.min]=\"configuration.min\"\n [required]=\"true\"\n [step]=\"configuration.step\"\n matInput\n type=\"number\"\n />\n @if (valueCtrl.hasError('min')) {\n <mat-error>< {{ configuration.min }}</mat-error>\n }\n @if (valueCtrl.hasError('max')) {\n <mat-error>> {{ configuration.max }}</mat-error>\n }\n </mat-form-field>\n</form>\n", styles: [":host input::-webkit-outer-spin-button,:host input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
105
- }
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: TypeNumberComponent, decorators: [{
107
- type: Component,
108
- args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, MatFormFieldModule, MatSelectModule, MatOptionModule, MatInputModule], template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 4em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label i18n>Valeur</mat-label>\n <input\n (keydown.enter)=\"close()\"\n [errorStateMatcher]=\"matcher\"\n [formControl]=\"valueCtrl\"\n [attr.max]=\"configuration.max\"\n [attr.min]=\"configuration.min\"\n [required]=\"true\"\n [step]=\"configuration.step\"\n matInput\n type=\"number\"\n />\n @if (valueCtrl.hasError('min')) {\n <mat-error>< {{ configuration.min }}</mat-error>\n }\n @if (valueCtrl.hasError('max')) {\n <mat-error>> {{ configuration.max }}</mat-error>\n }\n </mat-form-field>\n</form>\n", styles: [":host input::-webkit-outer-spin-button,:host input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
109
- }], ctorParameters: () => [] });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1udW1iZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZHJvcGRvd24tY29tcG9uZW50cy90eXBlLW51bWJlci90eXBlLW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtbnVtYmVyL3R5cGUtbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBZSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqSCxPQUFPLEVBQUMsZUFBZSxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUMscUJBQXFCLEVBQXNCLE1BQU0sa0RBQWtELENBQUM7QUFFNUcsT0FBTyxFQUFDLDJCQUEyQixFQUFnQyxNQUFNLFVBQVUsQ0FBQztBQUNwRixPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJB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QUMsQ0FBQztRQUM3RSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdDLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLFFBQVEsQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQ3ZELENBQUM7SUFDTCxDQUFDO3VHQW5HUSxtQkFBbUI7MkZBQW5CLG1CQUFtQix3RUMzQmhDLHlyQ0FpQ0EsMEtEUmMsV0FBVywwaENBQUUsbUJBQW1CLGtXQUFFLGtCQUFrQix1WUFBRSxlQUFlLG1yQkFBRSxlQUFlLDhCQUFFLGNBQWM7OzJGQUV2RyxtQkFBbUI7a0JBTi9CLFNBQVM7aUNBR00sSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG1lcmdlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7RmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZH0gZnJvbSAnLi4vLi4vc2VhcmNoL2NsYXNzZXMvZ3JhcGhxbC1kb2N0cmluZS50eXBlcyc7XG5pbXBvcnQge05hdHVyYWxEcm9wZG93blJlZn0gZnJvbSAnLi4vLi4vc2VhcmNoL2Ryb3Bkb3duLWNvbnRhaW5lci9kcm9wZG93bi1yZWYnO1xuaW1wb3J0IHtOQVRVUkFMX0RST1BET1dOX0RBVEEsIE5hdHVyYWxEcm9wZG93bkRhdGF9IGZyb20gJy4uLy4uL3NlYXJjaC9kcm9wZG93bi1jb250YWluZXIvZHJvcGRvd24uc2VydmljZSc7XG5pbXBvcnQge0Ryb3Bkb3duQ29tcG9uZW50fSBmcm9tICcuLi8uLi9zZWFyY2gvdHlwZXMvZHJvcGRvd24tY29tcG9uZW50JztcbmltcG9ydCB7cG9zc2libGVDb21wYXJhYmxlT3BlcmF0b3JzLCBQb3NzaWJsZUNvbXBhcmFibGVPcGVydG9yS2V5c30gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtJbnZhbGlkV2l0aFZhbHVlU3RhdGVNYXRjaGVyfSBmcm9tICcuLi90eXBlLXRleHQvdHlwZS10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQge2RlY2ltYWx9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvdmFsaWRhdG9ycyc7XG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge01hdE9wdGlvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge01hdFNlbGVjdE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcblxuZXhwb3J0IHR5cGUgVHlwZU51bWJlckNvbmZpZ3VyYXRpb24gPSB7XG4gICAgbWluPzogbnVtYmVyIHwgbnVsbDtcbiAgICBtYXg/OiBudW1iZXIgfCBudWxsO1xuICAgIHN0ZXA/OiBudW1iZXIgfCBudWxsO1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL3R5cGUtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vdHlwZS1udW1iZXIuY29tcG9uZW50LnNjc3MnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdFNlbGVjdE1vZHVsZSwgTWF0T3B0aW9uTW9kdWxlLCBNYXRJbnB1dE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFR5cGVOdW1iZXJDb21wb25lbnQgaW1wbGVtZW50cyBEcm9wZG93bkNvbXBvbmVudCB7XG4gICAgcHJvdGVjdGVkIGRyb3Bkb3duUmVmID0gaW5qZWN0KE5hdHVyYWxEcm9wZG93blJlZik7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVuZGVyZWRWYWx1ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb246IFJlcXVpcmVkPFR5cGVOdW1iZXJDb25maWd1cmF0aW9uPjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JDdHJsID0gbmV3IEZvcm1Db250cm9sPFBvc3NpYmxlQ29tcGFyYWJsZU9wZXJ0b3JLZXlzPignZXF1YWwnLCB7bm9uTnVsbGFibGU6IHRydWV9KTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVDdHJsID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgcHVibGljIHJlYWRvbmx5IG1hdGNoZXIgPSBuZXcgSW52YWxpZFdpdGhWYWx1ZVN0YXRlTWF0Y2hlcigpO1xuICAgIHB1YmxpYyByZWFkb25seSBmb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIG9wZXJhdG9yOiB0aGlzLm9wZXJhdG9yQ3RybCxcbiAgICAgICAgdmFsdWU6IHRoaXMudmFsdWVDdHJsLFxuICAgIH0pO1xuICAgIHB1YmxpYyByZWFkb25seSBvcGVyYXRvcnMgPSBwb3NzaWJsZUNvbXBhcmFibGVPcGVyYXRvcnM7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRzOiBSZXF1aXJlZDxUeXBlTnVtYmVyQ29uZmlndXJhdGlvbj4gPSB7XG4gICAgICAgIG1pbjogbnVsbCxcbiAgICAgICAgbWF4OiBudWxsLFxuICAgICAgICBzdGVwOiBudWxsLFxuICAgIH07XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBpbmplY3Q8TmF0dXJhbERyb3Bkb3duRGF0YTxUeXBlTnVtYmVyQ29uZmlndXJhdGlvbj4+KE5BVFVSQUxfRFJPUERPV05fREFUQSk7XG5cbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gey4uLnRoaXMuZGVmYXVsdHMsIC4uLmRhdGEuY29uZmlndXJhdGlvbn07XG5cbiAgICAgICAgbWVyZ2UodGhpcy5vcGVyYXRvckN0cmwudmFsdWVDaGFuZ2VzLCB0aGlzLnZhbHVlQ3RybC52YWx1ZUNoYW5nZXMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZW5kZXJlZCA9IHRoaXMuZ2V0UmVuZGVyZWRWYWx1ZSgpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlZFZhbHVlLm5leHQocmVuZGVyZWQpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmluaXRWYWxpZGF0b3JzKCk7XG4gICAgICAgIHRoaXMucmVsb2FkQ29uZGl0aW9uKGRhdGEuY29uZGl0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29uZGl0aW9uKCk6IEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQge1xuICAgICAgICBjb25zdCBjb25kaXRpb246IEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQgPSB7fTtcbiAgICAgICAgY29uZGl0aW9uW3RoaXMub3BlcmF0b3JDdHJsLnZhbHVlXSA9IHtcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlQ3RybC52YWx1ZSxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gY29uZGl0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLnZhbGlkO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0RpcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmRpcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duUmVmLmNsb3NlKHtjb25kaXRpb246IHRoaXMuZ2V0Q29uZGl0aW9uKCl9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25SZWYuY2xvc2UoKTsgLy8gdW5kZWZpbmVkIHZhbHVlLCBkaXNjYXJkIGNoYW5nZXMgLyBwcmV2ZW50IHRvIGFkZCBhIGNvbmRpdGlvbiAob24gbmV3IGZpZWxkc1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0VmFsaWRhdG9ycygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtWYWxpZGF0b3JzLnJlcXVpcmVkXTtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZ3VyYXRpb24ubWluID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKHRoaXMuY29uZmlndXJhdGlvbi5taW4pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWd1cmF0aW9uLm1heCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heCh0aGlzLmNvbmZpZ3VyYXRpb24ubWF4KSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLnN0ZXApIHtcbiAgICAgICAgICAgIGNvbnN0IGRlY2ltYWxzID0gL1xcLihcXGQrKSQvLmV4ZWMoJycgKyB0aGlzLmNvbmZpZ3VyYXRpb24uc3RlcCk/LlsxXSA/PyAnJztcbiAgICAgICAgICAgIGNvbnN0IGRlY2ltYWxDb3VudCA9IGRlY2ltYWxzLmxlbmd0aDtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChkZWNpbWFsKGRlY2ltYWxDb3VudCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZUN0cmwuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbG9hZENvbmRpdGlvbihjb25kaXRpb246IEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGlmICghY29uZGl0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IG9wZXJhdG9yIG9mIHRoaXMub3BlcmF0b3JzKSB7XG4gICAgICAgICAgICBjb25zdCByZWxvYWRlZENvbmRpdGlvbiA9IGNvbmRpdGlvbltvcGVyYXRvci5rZXldO1xuICAgICAgICAgICAgaWYgKHJlbG9hZGVkQ29uZGl0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVyYXRvckN0cmwuc2V0VmFsdWUob3BlcmF0b3Iua2V5KTtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlQ3RybC5zZXRWYWx1ZShyZWxvYWRlZENvbmRpdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlbmRlcmVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgb3BlcmF0b3IgPSB0aGlzLm9wZXJhdG9ycy5maW5kKHYgPT4gdi5rZXkgPT09IHRoaXMub3BlcmF0b3JDdHJsLnZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVDdHJsLnZhbHVlID09PSBudWxsIHx8ICFvcGVyYXRvcikge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG9wZXJhdG9yLmxhYmVsICsgJyAnICsgdGhpcy52YWx1ZUN0cmwudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJtYXgtd2lkdGg6IDRlbTsgbWFyZ2luLXJpZ2h0OiAxZW1cIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPVwiTWF0aGVtYXRpY2FsIG9wZXJhdG9yIDwgPiA9XCI+T3DDqXJhdGV1cjwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwib3BlcmF0b3JDdHJsXCIgW3JlcXVpcmVkXT1cInRydWVcIiBwYW5lbFdpZHRoPVwiXCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIG9wZXJhdG9yczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmtleVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPlZhbGV1cjwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImNsb3NlKClcIlxuICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cIm1hdGNoZXJcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInZhbHVlQ3RybFwiXG4gICAgICAgICAgICBbYXR0ci5tYXhdPVwiY29uZmlndXJhdGlvbi5tYXhcIlxuICAgICAgICAgICAgW2F0dHIubWluXT1cImNvbmZpZ3VyYXRpb24ubWluXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzdGVwXT1cImNvbmZpZ3VyYXRpb24uc3RlcFwiXG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIC8+XG4gICAgICAgIEBpZiAodmFsdWVDdHJsLmhhc0Vycm9yKCdtaW4nKSkge1xuICAgICAgICAgICAgPG1hdC1lcnJvcj48IHt7IGNvbmZpZ3VyYXRpb24ubWluIH19PC9tYXQtZXJyb3I+XG4gICAgICAgIH1cbiAgICAgICAgQGlmICh2YWx1ZUN0cmwuaGFzRXJyb3IoJ21heCcpKSB7XG4gICAgICAgICAgICA8bWF0LWVycm9yPj4ge3sgY29uZmlndXJhdGlvbi5tYXggfX08L21hdC1lcnJvcj5cbiAgICAgICAgfVxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Zvcm0+XG4iXX0=
@@ -1,64 +0,0 @@
1
- import { Component, inject, Inject } from '@angular/core';
2
- import { FormControl, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
3
- import { MatButtonToggleModule } from '@angular/material/button-toggle';
4
- import { BehaviorSubject } from 'rxjs';
5
- import { NaturalDropdownRef } from '../../search/dropdown-container/dropdown-ref';
6
- import { NATURAL_DROPDOWN_DATA } from '../../search/dropdown-container/dropdown.service';
7
- import { isEqual } from 'lodash-es';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/forms";
10
- import * as i2 from "@angular/material/button-toggle";
11
- export class TypeOptionsComponent {
12
- data;
13
- renderedValue = new BehaviorSubject('');
14
- formControl = new FormControl({}, { nonNullable: true });
15
- configuration;
16
- defaults = {
17
- options: [],
18
- };
19
- dropdownRef = inject(NaturalDropdownRef);
20
- constructor(data) {
21
- this.data = data;
22
- this.configuration = { ...this.defaults, ...data.configuration };
23
- if (!this.configuration.options.length) {
24
- throw new Error('TypeOptions need options, empty array or null given');
25
- }
26
- this.formControl.setValidators([Validators.required]);
27
- if (data.condition) {
28
- const option = this.configuration.options.find(option => isEqual(option.condition, data.condition));
29
- if (option) {
30
- this.formControl.setValue(option);
31
- this.renderedValue.next(option.display);
32
- }
33
- }
34
- // Update rendered value
35
- this.formControl.valueChanges.subscribe(option => {
36
- if (option) {
37
- this.renderedValue.next(option.display);
38
- this.dropdownRef.close(option);
39
- }
40
- });
41
- }
42
- getCondition() {
43
- if (!this.isValid()) {
44
- return {};
45
- }
46
- return this.formControl.value.condition;
47
- }
48
- isValid() {
49
- return this.formControl.valid && !!this.formControl.value?.condition;
50
- }
51
- isDirty() {
52
- return this.formControl.dirty;
53
- }
54
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: TypeOptionsComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }], target: i0.ɵɵFactoryTarget.Component });
55
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: TypeOptionsComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<mat-button-toggle-group [formControl]=\"formControl\">\n @for (option of configuration.options; track option) {\n <mat-button-toggle [value]=\"option\">{{ option.display }}</mat-button-toggle>\n }\n</mat-button-toggle-group>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }] });
56
- }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: TypeOptionsComponent, decorators: [{
58
- type: Component,
59
- args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, MatButtonToggleModule], template: "<mat-button-toggle-group [formControl]=\"formControl\">\n @for (option of configuration.options; track option) {\n <mat-button-toggle [value]=\"option\">{{ option.display }}</mat-button-toggle>\n }\n</mat-button-toggle-group>\n" }]
60
- }], ctorParameters: () => [{ type: undefined, decorators: [{
61
- type: Inject,
62
- args: [NATURAL_DROPDOWN_DATA]
63
- }] }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1vcHRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2Ryb3Bkb3duLWNvbXBvbmVudHMvdHlwZS1vcHRpb25zL3R5cGUtb3B0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtb3B0aW9ucy90eXBlLW9wdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHckMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHFCQUFxQixFQUFzQixNQUFNLGtEQUFrRCxDQUFDO0FBRTVHLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7Ozs7QUFnQmxDLE1BQU0sT0FBTyxvQkFBb0I7SUFhc0I7SUFabkMsYUFBYSxHQUE0QixJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUV6RSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQWEsRUFBZ0IsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBRWpGLGFBQWEsQ0FBcUM7SUFFakQsUUFBUSxHQUF1QztRQUM1RCxPQUFPLEVBQUUsRUFBRTtLQUNkLENBQUM7SUFDaUIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRTVELFlBQ21ELElBQW1EO1FBQW5ELFNBQUksR0FBSixJQUFJLENBQStDO1FBRWxHLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFDLENBQUM7UUFFL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUV0RCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUVwRyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUMsQ0FBQztRQUNMLENBQUM7UUFFRCx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzdDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sWUFBWTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNsQixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sT0FBTztRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sT0FBTztRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDbEMsQ0FBQzt1R0F2RFEsb0JBQW9CLGtCQWFqQixxQkFBcUI7MkZBYnhCLG9CQUFvQix3RUN6QmpDLGtQQUtBLDJDRGtCYyxXQUFXLHNJQUFFLG1CQUFtQixpTkFBRSxxQkFBcUI7OzJGQUV4RCxvQkFBb0I7a0JBTGhDLFNBQVM7aUNBRU0sSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixDQUFDOzswQkFlN0QsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgaW5qZWN0LCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0QnV0dG9uVG9nZ2xlTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7TGl0ZXJhbH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHtGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkfSBmcm9tICcuLi8uLi9zZWFyY2gvY2xhc3Nlcy9ncmFwaHFsLWRvY3RyaW5lLnR5cGVzJztcbmltcG9ydCB7TmF0dXJhbERyb3Bkb3duUmVmfSBmcm9tICcuLi8uLi9zZWFyY2gvZHJvcGRvd24tY29udGFpbmVyL2Ryb3Bkb3duLXJlZic7XG5pbXBvcnQge05BVFVSQUxfRFJPUERPV05fREFUQSwgTmF0dXJhbERyb3Bkb3duRGF0YX0gZnJvbSAnLi4vLi4vc2VhcmNoL2Ryb3Bkb3duLWNvbnRhaW5lci9kcm9wZG93bi5zZXJ2aWNlJztcbmltcG9ydCB7RHJvcGRvd25Db21wb25lbnR9IGZyb20gJy4uLy4uL3NlYXJjaC90eXBlcy9kcm9wZG93bi1jb21wb25lbnQnO1xuaW1wb3J0IHtpc0VxdWFsfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgdHlwZSBUeXBlT3B0aW9uID0ge1xuICAgIGRpc3BsYXk6IHN0cmluZztcbiAgICBjb25kaXRpb246IExpdGVyYWw7XG59O1xuXG5leHBvcnQgdHlwZSBUeXBlT3B0aW9uc0NvbmZpZ3VyYXRpb24gPSB7XG4gICAgb3B0aW9uczogVHlwZU9wdGlvbltdO1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL3R5cGUtb3B0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFR5cGVPcHRpb25zQ29tcG9uZW50IGltcGxlbWVudHMgRHJvcGRvd25Db21wb25lbnQge1xuICAgIHB1YmxpYyByZWFkb25seSByZW5kZXJlZFZhbHVlOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8VHlwZU9wdGlvbj4oe30gYXMgVHlwZU9wdGlvbiwge25vbk51bGxhYmxlOiB0cnVlfSk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY29uZmlndXJhdGlvbjogUmVxdWlyZWQ8VHlwZU9wdGlvbnNDb25maWd1cmF0aW9uPjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdHM6IFJlcXVpcmVkPFR5cGVPcHRpb25zQ29uZmlndXJhdGlvbj4gPSB7XG4gICAgICAgIG9wdGlvbnM6IFtdLFxuICAgIH07XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyb3Bkb3duUmVmID0gaW5qZWN0KE5hdHVyYWxEcm9wZG93blJlZik7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTkFUVVJBTF9EUk9QRE9XTl9EQVRBKSBwdWJsaWMgcmVhZG9ubHkgZGF0YTogTmF0dXJhbERyb3Bkb3duRGF0YTxUeXBlT3B0aW9uc0NvbmZpZ3VyYXRpb24+LFxuICAgICkge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSB7Li4udGhpcy5kZWZhdWx0cywgLi4uZGF0YS5jb25maWd1cmF0aW9ufTtcblxuICAgICAgICBpZiAoIXRoaXMuY29uZmlndXJhdGlvbi5vcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUeXBlT3B0aW9ucyBuZWVkIG9wdGlvbnMsIGVtcHR5IGFycmF5IG9yIG51bGwgZ2l2ZW4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuXG4gICAgICAgIGlmIChkYXRhLmNvbmRpdGlvbikge1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gdGhpcy5jb25maWd1cmF0aW9uLm9wdGlvbnMuZmluZChvcHRpb24gPT4gaXNFcXVhbChvcHRpb24uY29uZGl0aW9uLCBkYXRhLmNvbmRpdGlvbikpO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShvcHRpb24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZWRWYWx1ZS5uZXh0KG9wdGlvbi5kaXNwbGF5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVwZGF0ZSByZW5kZXJlZCB2YWx1ZVxuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUob3B0aW9uID0+IHtcbiAgICAgICAgICAgIGlmIChvcHRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVkVmFsdWUubmV4dChvcHRpb24uZGlzcGxheSk7XG4gICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93blJlZi5jbG9zZShvcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29uZGl0aW9uKCk6IEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtQ29udHJvbC52YWx1ZS5jb25kaXRpb247XG4gICAgfVxuXG4gICAgcHVibGljIGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Db250cm9sLnZhbGlkICYmICEhdGhpcy5mb3JtQ29udHJvbC52YWx1ZT8uY29uZGl0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0RpcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtQ29udHJvbC5kaXJ0eTtcbiAgICB9XG59XG4iLCI8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCI+XG4gICAgQGZvciAob3B0aW9uIG9mIGNvbmZpZ3VyYXRpb24ub3B0aW9uczsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwib3B0aW9uXCI+e3sgb3B0aW9uLmRpc3BsYXkgfX08L21hdC1idXR0b24tdG9nZ2xlPlxuICAgIH1cbjwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4iXX0=