@mediusinc/mng-commons 5.3.0-rc.0 → 5.3.0-rc.2

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 (101) hide show
  1. package/core/components/pages/error/error.page.component.d.ts +3 -0
  2. package/core/components/pages/not-found/not-found.page.component.d.ts +3 -0
  3. package/core/data-list/filter-metadata.model.d.ts +20 -0
  4. package/core/enum/enum-helpers.d.ts +5 -0
  5. package/core/helpers/number.d.ts +5 -0
  6. package/core/helpers/type-helpers.d.ts +1 -0
  7. package/core/index.d.ts +3 -1
  8. package/core/provide.d.ts +3 -2
  9. package/core/services/{local-storage-config.service.d.ts → commons-storage.service.d.ts} +4 -3
  10. package/core/services/commons.service.d.ts +24 -0
  11. package/core/services/tokens/module-config.token.d.ts +30 -8
  12. package/esm2022/core/components/pages/error/error.page.component.mjs +4 -1
  13. package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +4 -1
  14. package/esm2022/core/data-list/data-list-params-helpers.mjs +3 -1
  15. package/esm2022/core/data-list/filter-metadata.model.mjs +2 -0
  16. package/esm2022/core/enum/enum-helpers.mjs +10 -1
  17. package/esm2022/core/helpers/date.mjs +2 -2
  18. package/esm2022/core/helpers/number.mjs +19 -0
  19. package/esm2022/core/helpers/type-helpers.mjs +1 -1
  20. package/esm2022/core/index.mjs +4 -2
  21. package/esm2022/core/pipes/boolean.pipe.mjs +7 -1
  22. package/esm2022/core/pipes/enum.pipe.mjs +16 -5
  23. package/esm2022/core/provide.mjs +6 -5
  24. package/esm2022/core/router/route-builder.mjs +8 -1
  25. package/esm2022/core/security/permission.guard.mjs +2 -2
  26. package/esm2022/core/security/permission.service.mjs +2 -2
  27. package/esm2022/core/services/commons-storage.service.mjs +31 -0
  28. package/esm2022/core/services/commons.service.mjs +25 -1
  29. package/esm2022/core/services/tokens/module-config.token.mjs +1 -1
  30. package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +2 -3
  31. package/esm2022/filter/descriptors/filter.descriptor.mjs +76 -31
  32. package/esm2022/filter/models/filter.model.mjs +6 -1
  33. package/esm2022/form/components/date-range/date-range.component.mjs +45 -14
  34. package/esm2022/form/components/dropdown/dropdown.component.mjs +77 -93
  35. package/esm2022/form/components/number-range/number-range.component.mjs +29 -12
  36. package/esm2022/table/api/descriptors/column.descriptor.mjs +2 -1
  37. package/esm2022/table/api/descriptors/table.descriptor.mjs +11 -20
  38. package/esm2022/table/api/models/table-columns.model.mjs +1 -1
  39. package/esm2022/table/api/models/table.model.mjs +1 -1
  40. package/esm2022/table/components/column-filter/column-filter.component.mjs +396 -0
  41. package/esm2022/table/components/filter/filter-active-tag/filter-active-tag.component.mjs +52 -0
  42. package/esm2022/table/components/filter/filter-form/filter-form.component.mjs +197 -0
  43. package/esm2022/table/components/filter/filter-overlay-with-tag/filter-overlay-with-tag.component.mjs +135 -0
  44. package/esm2022/table/components/table/table.component.mjs +39 -30
  45. package/esm2022/table/helpers/filters.mjs +297 -0
  46. package/esm2022/table/index.mjs +13 -2
  47. package/esm2022/table/models/filter.model.mjs +2 -0
  48. package/esm2022/table/pipes/filter-value.pipe.mjs +77 -0
  49. package/esm2022/table/provide.mjs +19 -0
  50. package/esm2022/table/services/data-list.service.mjs +1 -1
  51. package/esm2022/table/services/table-feature-config.token.mjs +3 -0
  52. package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +2 -2
  53. package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +2 -2
  54. package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +1 -1
  55. package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +1 -1
  56. package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +11 -13
  57. package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +2 -2
  58. package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +3 -4
  59. package/fesm2022/mediusinc-mng-commons-core.mjs +103 -17
  60. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  61. package/fesm2022/mediusinc-mng-commons-filter.mjs +81 -32
  62. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  63. package/fesm2022/mediusinc-mng-commons-form.mjs +149 -117
  64. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  65. package/fesm2022/mediusinc-mng-commons-table-api.mjs +11 -19
  66. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  67. package/fesm2022/mediusinc-mng-commons-table.mjs +836 -363
  68. package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
  69. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +10 -12
  70. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  71. package/fesm2022/mediusinc-mng-commons-tableview.mjs +5 -5
  72. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  73. package/filter/descriptors/filter.descriptor.d.ts +60 -16
  74. package/filter/models/filter.model.d.ts +4 -0
  75. package/form/components/date-range/date-range.component.d.ts +9 -3
  76. package/form/components/dropdown/dropdown.component.d.ts +6 -7
  77. package/form/components/number-range/number-range.component.d.ts +8 -4
  78. package/i18n/en.json +40 -0
  79. package/i18n/sl.json +40 -0
  80. package/package.json +7 -7
  81. package/table/api/descriptors/table.descriptor.d.ts +7 -7
  82. package/table/api/models/table-columns.model.d.ts +3 -3
  83. package/table/api/models/table.model.d.ts +0 -12
  84. package/table/components/{column-filter-full/column-filter-full.component.d.ts → column-filter/column-filter.component.d.ts} +23 -38
  85. package/table/components/filter/filter-active-tag/filter-active-tag.component.d.ts +20 -0
  86. package/table/components/filter/filter-form/filter-form.component.d.ts +53 -0
  87. package/table/components/filter/filter-overlay-with-tag/filter-overlay-with-tag.component.d.ts +35 -0
  88. package/table/components/table/table.component.d.ts +11 -8
  89. package/table/helpers/filters.d.ts +31 -0
  90. package/table/index.d.ts +10 -1
  91. package/table/models/filter.model.d.ts +24 -0
  92. package/table/pipes/filter-value.pipe.d.ts +19 -0
  93. package/table/provide.d.ts +8 -0
  94. package/table/services/data-list.service.d.ts +3 -2
  95. package/table/services/table-feature-config.token.d.ts +6 -0
  96. package/tableview/api/editor/descriptors/field.descriptor.d.ts +3 -3
  97. package/tableview/api/editor/models/editor-fields.model.d.ts +4 -4
  98. package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +8 -6
  99. package/version-info.json +5 -5
  100. package/esm2022/core/services/local-storage-config.service.mjs +0 -29
  101. package/esm2022/table/components/column-filter-full/column-filter-full.component.mjs +0 -655
@@ -0,0 +1,297 @@
1
+ import { FilterMatchMode, angularDateFormatHasSeconds, angularDateFormatHasTime, dateToIsoString, fromAngularDateFormatToPrime, fromAngularNumberFormatToFractions } from '@mediusinc/mng-commons/core';
2
+ import { FilterLookupDescriptor, FilterTypeEnum } from '@mediusinc/mng-commons/filter';
3
+ export function generateMatchModeOptions(primeConfig, descriptor, cmpSerCfg) {
4
+ let options = undefined;
5
+ if (descriptor == null || descriptor.filterType === FilterTypeEnum.String) {
6
+ options = [
7
+ { value: FilterMatchMode.Contains, label: primeConfig.getTranslation(FilterMatchMode.Contains) },
8
+ { value: FilterMatchMode.NotContains, label: primeConfig.getTranslation(FilterMatchMode.NotContains) },
9
+ { value: FilterMatchMode.Equals, label: primeConfig.getTranslation(FilterMatchMode.Equals) },
10
+ { value: FilterMatchMode.NotEquals, label: primeConfig.getTranslation(FilterMatchMode.NotEquals) },
11
+ { value: FilterMatchMode.StartsWith, label: primeConfig.getTranslation(FilterMatchMode.StartsWith) },
12
+ { value: FilterMatchMode.EndsWith, label: primeConfig.getTranslation(FilterMatchMode.EndsWith) }
13
+ ];
14
+ }
15
+ else if (descriptor.filterType === FilterTypeEnum.Boolean) {
16
+ options = [{ value: FilterMatchMode.Equals, label: primeConfig.getTranslation(FilterMatchMode.Equals) }];
17
+ }
18
+ else if (descriptor.filterType === FilterTypeEnum.Number) {
19
+ options = [
20
+ { value: FilterMatchMode.Equals, label: primeConfig.getTranslation(FilterMatchMode.Equals) },
21
+ { value: FilterMatchMode.NotEquals, label: primeConfig.getTranslation(FilterMatchMode.NotEquals) },
22
+ { value: FilterMatchMode.LessThan, label: primeConfig.getTranslation(FilterMatchMode.LessThan) },
23
+ { value: FilterMatchMode.LessThanOrEqualTo, label: primeConfig.getTranslation(FilterMatchMode.LessThanOrEqualTo) },
24
+ { value: FilterMatchMode.GreaterThan, label: primeConfig.getTranslation(FilterMatchMode.GreaterThan) },
25
+ { value: FilterMatchMode.GreaterThanOrEqualTo, label: primeConfig.getTranslation(FilterMatchMode.GreaterThanOrEqualTo) },
26
+ { value: FilterMatchMode.Between, label: primeConfig.getTranslation(FilterMatchMode.Between) }
27
+ ];
28
+ }
29
+ else if (descriptor.filterType === FilterTypeEnum.Lookup || descriptor.filterType === FilterTypeEnum.LookupEnum) {
30
+ if (descriptor instanceof FilterLookupDescriptor && descriptor.multiselect) {
31
+ options = [
32
+ { value: FilterMatchMode.In, label: primeConfig.getTranslation(FilterMatchMode.In) },
33
+ { value: FilterMatchMode.NotIn, label: primeConfig.getTranslation(FilterMatchMode.NotIn) }
34
+ ];
35
+ }
36
+ else {
37
+ options = [
38
+ { value: FilterMatchMode.Equals, label: primeConfig.getTranslation(FilterMatchMode.Equals) },
39
+ { value: FilterMatchMode.NotEquals, label: primeConfig.getTranslation(FilterMatchMode.NotEquals) }
40
+ ];
41
+ }
42
+ }
43
+ else if (descriptor.filterType === FilterTypeEnum.Date) {
44
+ if (!descriptor.datePickerShowTime && !descriptor.dateValueNoTime && !cmpSerCfg?.filtersDateOnlyDisabled) {
45
+ options = [
46
+ { value: FilterMatchMode.Equals, label: primeConfig.getTranslation(FilterMatchMode.Equals) },
47
+ { value: FilterMatchMode.NotEquals, label: primeConfig.getTranslation(FilterMatchMode.NotEquals) },
48
+ { value: FilterMatchMode.LessThanOrEqualTo, label: primeConfig.getTranslation(FilterMatchMode.LessThanOrEqualTo) },
49
+ { value: FilterMatchMode.GreaterThanOrEqualTo, label: primeConfig.getTranslation(FilterMatchMode.GreaterThanOrEqualTo) },
50
+ { value: FilterMatchMode.Between, label: primeConfig.getTranslation(FilterMatchMode.Between) }
51
+ ];
52
+ }
53
+ else {
54
+ options = [
55
+ { value: FilterMatchMode.Equals, label: primeConfig.getTranslation(FilterMatchMode.Equals) },
56
+ { value: FilterMatchMode.LessThanOrEqualTo, label: primeConfig.getTranslation(FilterMatchMode.LessThanOrEqualTo) },
57
+ { value: FilterMatchMode.GreaterThanOrEqualTo, label: primeConfig.getTranslation(FilterMatchMode.GreaterThanOrEqualTo) },
58
+ { value: FilterMatchMode.Between, label: primeConfig.getTranslation(FilterMatchMode.Between) }
59
+ ];
60
+ }
61
+ }
62
+ options?.push({ value: FilterMatchMode.Exists, label: primeConfig.getTranslation(FilterMatchMode.Exists) }, { value: FilterMatchMode.DoesNotExist, label: primeConfig.getTranslation(FilterMatchMode.DoesNotExist) });
63
+ if (descriptor?.matchModes) {
64
+ options = descriptor.matchModes.map(mm => ({ value: mm, label: primeConfig.getTranslation(mm) }));
65
+ }
66
+ return options || [];
67
+ }
68
+ /**
69
+ * Gets the default match mode for a filter.
70
+ *
71
+ * @param {FilterDescriptor<any, any>} [descriptor] - The filter descriptor.
72
+ * @param {SelectItem[]} [matchModes=[]] - The available match modes options.
73
+ *
74
+ * @return {FilterMatchModeExtendedType} The default match mode for the filter.
75
+ */
76
+ export function filterGetDefaultMatchMode(descriptor, matchModes = []) {
77
+ let defaultMatchMode = FilterMatchMode.Equals;
78
+ if (descriptor?.filterType === FilterTypeEnum.String)
79
+ defaultMatchMode = FilterMatchMode.StartsWith;
80
+ else if (descriptor?.filterType === FilterTypeEnum.Number || descriptor?.filterType === FilterTypeEnum.Date || descriptor?.filterType === FilterTypeEnum.Boolean)
81
+ defaultMatchMode = FilterMatchMode.Equals;
82
+ else if (descriptor?.filterType === FilterTypeEnum.Lookup || descriptor?.filterType === FilterTypeEnum.LookupEnum) {
83
+ if (descriptor instanceof FilterLookupDescriptor) {
84
+ defaultMatchMode = descriptor?.multiselect ? FilterMatchMode.In : FilterMatchMode.Equals;
85
+ }
86
+ else {
87
+ defaultMatchMode = FilterMatchMode.Equals;
88
+ }
89
+ }
90
+ // overwrite type default set in descriptor
91
+ if (descriptor?.defaultMatchMode) {
92
+ defaultMatchMode = descriptor.defaultMatchMode;
93
+ }
94
+ // check if default mode exists!
95
+ if (matchModes.length > 0 && !matchModes.some(m => m.value === defaultMatchMode)) {
96
+ defaultMatchMode = matchModes[0].value;
97
+ }
98
+ return defaultMatchMode;
99
+ }
100
+ export function filterSetMetadataOnChange(filter, matchMode, value, filterType, filterDateCfg) {
101
+ let displayValue = filter?.displayValue ?? value;
102
+ let displayMatchMode = filter?.displayMatchMode ?? matchMode;
103
+ // when equals is used on dates with time, the actual filter will be between, but displayed as equals
104
+ if (filterType === FilterTypeEnum.Date && !filterDateCfg?.valueNoTime) {
105
+ if (matchMode === FilterMatchMode.Between &&
106
+ Array.isArray(value) &&
107
+ value.length === 2 &&
108
+ value.every(v => v instanceof Date || typeof v === 'string' || typeof v === 'number')) {
109
+ if (filterAreDatesEqual(value[0], value[1], filterDateCfg)) {
110
+ displayMatchMode = FilterMatchMode.Equals;
111
+ displayValue = new Date(value[0]);
112
+ }
113
+ }
114
+ else if (matchMode === FilterMatchMode.Equals && !value) {
115
+ matchMode = FilterMatchMode.Between;
116
+ }
117
+ }
118
+ if (filterType === FilterTypeEnum.Date && displayValue) {
119
+ // display value for calendar cannot be string, convert to date
120
+ displayValue = Array.isArray(displayValue)
121
+ ? displayValue.map(v => (!(v instanceof Date) ? new Date(v) : v))
122
+ : displayValue instanceof Date
123
+ ? displayValue
124
+ : new Date(displayValue);
125
+ }
126
+ if (filterType === FilterTypeEnum.Boolean && displayValue != null && typeof displayValue !== 'boolean') {
127
+ displayValue = (typeof displayValue === 'string' && displayValue.toLowerCase() === 'true') || displayValue === 1;
128
+ }
129
+ if (filterType === FilterTypeEnum.Number && displayValue != null && typeof displayValue !== 'number') {
130
+ const numValue = +displayValue;
131
+ if (!isNaN(numValue)) {
132
+ displayValue = numValue;
133
+ }
134
+ }
135
+ return {
136
+ ...filter,
137
+ matchMode,
138
+ value: value,
139
+ displayMatchMode,
140
+ displayValue
141
+ };
142
+ }
143
+ export function filterSetMetadataOnDisplayChange(filter, displayMatchMode, displayValue, filterType, filterDateCfg) {
144
+ let matchMode = displayMatchMode;
145
+ let value = displayValue;
146
+ if (filterType === FilterTypeEnum.Date) {
147
+ if (!filterDateCfg?.valueNoTime && displayValue !== null) {
148
+ if (displayMatchMode === FilterMatchMode.Equals) {
149
+ if (value instanceof Date || typeof value === 'string' || typeof value === 'number') {
150
+ const fromDate = new Date(value);
151
+ const toDate = new Date(value);
152
+ if (filterDateCfg?.showTime) {
153
+ if (filterDateCfg?.showSeconds) {
154
+ fromDate.setMilliseconds(0);
155
+ toDate.setMilliseconds(999);
156
+ }
157
+ else {
158
+ fromDate.setSeconds(0, 0);
159
+ toDate.setSeconds(59, 999);
160
+ }
161
+ }
162
+ else {
163
+ fromDate.setHours(0, 0, 0, 0);
164
+ toDate.setHours(23, 59, 59, 999);
165
+ }
166
+ value = [fromDate, toDate];
167
+ matchMode = FilterMatchMode.Between;
168
+ }
169
+ else {
170
+ value = null;
171
+ }
172
+ }
173
+ else if (displayMatchMode === FilterMatchMode.Between) {
174
+ if (Array.isArray(value) && value.length === 2 && value.every(i => i instanceof Date || typeof i === 'string' || typeof i === 'number')) {
175
+ const fromDate = new Date(value[0]);
176
+ let toDate = new Date(value[1]);
177
+ if (filterAreDatesEqual(fromDate, toDate, filterDateCfg)) {
178
+ toDate = new Date(fromDate);
179
+ if (filterDateCfg?.showTime) {
180
+ if (filterDateCfg?.showSeconds) {
181
+ toDate.setSeconds(toDate.getSeconds() + 1);
182
+ }
183
+ else {
184
+ toDate.setMinutes(toDate.getMinutes() + 1);
185
+ }
186
+ }
187
+ else {
188
+ toDate.setDate(toDate.getDate() + 1);
189
+ }
190
+ value = [fromDate, toDate];
191
+ matchMode = FilterMatchMode.Between;
192
+ }
193
+ }
194
+ else {
195
+ value = null;
196
+ }
197
+ }
198
+ }
199
+ const convertDateType = filterDateCfg?.valueNoTime ? 'date' : 'date-time';
200
+ const convertDateTimeOpts = {
201
+ utc: filterDateCfg?.valueUtc,
202
+ noMillis: filterDateCfg?.valueNoMillis,
203
+ noTimezone: filterDateCfg?.valueNoTimezone
204
+ };
205
+ value =
206
+ value == null
207
+ ? value
208
+ : Array.isArray(value)
209
+ ? value.filter(i => i != null).map(i => dateToIsoString(i, convertDateType, convertDateTimeOpts))
210
+ : dateToIsoString(value, convertDateType, convertDateTimeOpts);
211
+ }
212
+ if (matchMode === FilterMatchMode.Exists || matchMode === FilterMatchMode.DoesNotExist) {
213
+ value = null;
214
+ }
215
+ return {
216
+ ...filter,
217
+ displayMatchMode: displayMatchMode,
218
+ matchMode: matchMode,
219
+ displayValue: displayValue,
220
+ value: value
221
+ };
222
+ }
223
+ export function filterAreDatesEqual(fromDate, toDate, filterDateCfg) {
224
+ const startDate = dateToIsoString(fromDate);
225
+ const endDate = dateToIsoString(toDate);
226
+ // 2020-11-02T11:12:12.000
227
+ const cmpLength = filterDateCfg?.showTime ? (filterDateCfg?.showSeconds ? 19 : 16) : 10;
228
+ return startDate.substring(0, cmpLength) === endDate.substring(0, cmpLength);
229
+ }
230
+ export function filterApplySerializationConfigToCmp(config, cmpSerCfg) {
231
+ // set default
232
+ cmpSerCfg.dateTimeInUtc = false;
233
+ cmpSerCfg.dateTimeWithTimezone = true;
234
+ cmpSerCfg.dateTimeWithMillis = true;
235
+ cmpSerCfg.filtersDateOnlyDisabled = false;
236
+ // set customizations
237
+ if (config?.serialization) {
238
+ if (config.serialization.dateTimeInUtc !== undefined)
239
+ cmpSerCfg.dateTimeInUtc = config.serialization.dateTimeInUtc;
240
+ if (config.serialization.dateTimeWithTimezone !== undefined)
241
+ cmpSerCfg.dateTimeWithTimezone = config.serialization.dateTimeWithTimezone;
242
+ if (config.serialization.dateTimeWithMillis !== undefined)
243
+ cmpSerCfg.dateTimeWithMillis = config.serialization.dateTimeWithMillis;
244
+ if (config.serialization.filtersDateOnlyDisabled !== undefined)
245
+ cmpSerCfg.filtersDateOnlyDisabled = config.serialization.filtersDateOnlyDisabled;
246
+ }
247
+ }
248
+ export function filterAdjustDisplayValueOnMatchModeChange(matchMode, value) {
249
+ if (matchMode == null || matchMode === FilterMatchMode.Exists || matchMode === FilterMatchMode.DoesNotExist) {
250
+ return value; // never change, only change later if something else changes here
251
+ }
252
+ if (matchMode === FilterMatchMode.Between) {
253
+ if (!Array.isArray(value)) {
254
+ return value != null ? [value, value] : [];
255
+ }
256
+ else if (value.length === 0 || value.length === 2) {
257
+ return value;
258
+ }
259
+ else if (value.length === 1) {
260
+ return [value[0], value[0]];
261
+ }
262
+ else {
263
+ return [value[0], value[1]];
264
+ }
265
+ }
266
+ if (matchMode === FilterMatchMode.In || matchMode === FilterMatchMode.NotIn) {
267
+ return Array.isArray(value) ? value : value == null ? [] : [value];
268
+ }
269
+ return Array.isArray(value) && value.length > 0 ? value[0] : value;
270
+ }
271
+ export function filterGetDateConfig(descriptor, serCfg) {
272
+ if (!descriptor || descriptor.filterType !== FilterTypeEnum.Date) {
273
+ return undefined;
274
+ }
275
+ const showTime = descriptor.datePickerShowTime ?? (descriptor.displayFormatApplyToField && descriptor.displayFormat ? angularDateFormatHasTime(descriptor.displayFormat) : false);
276
+ return {
277
+ valueNoTime: descriptor.dateValueNoTime || (!serCfg?.filtersDateOnlyDisabled && !showTime),
278
+ valueUtc: descriptor.dateValueUtc ?? serCfg?.dateTimeInUtc,
279
+ valueNoTimezone: descriptor.dateValueNoTimezone ?? !serCfg?.dateTimeWithTimezone,
280
+ valueNoMillis: !serCfg?.dateTimeWithMillis,
281
+ format: descriptor.datePickerFormat ?? (descriptor.displayFormatApplyToField && descriptor.displayFormat ? fromAngularDateFormatToPrime(descriptor.displayFormat) : undefined),
282
+ showTime: showTime,
283
+ showSeconds: showTime &&
284
+ (descriptor.datePickerShowSeconds ?? (descriptor.displayFormatApplyToField && descriptor.displayFormat ? angularDateFormatHasSeconds(descriptor.displayFormat) : false))
285
+ };
286
+ }
287
+ export function filterGetNumberConfig(descriptor) {
288
+ if (!descriptor || descriptor.filterType !== FilterTypeEnum.Number) {
289
+ return undefined;
290
+ }
291
+ const displayCfg = descriptor.displayFormatApplyToField && descriptor.displayFormat ? fromAngularNumberFormatToFractions(descriptor.displayFormat) : undefined;
292
+ return {
293
+ fractionsMin: descriptor.numberMinFractionDigits ?? displayCfg?.fractionsMin,
294
+ fractionsMax: descriptor.numberMaxFractionDigits ?? displayCfg?.fractionsMax
295
+ };
296
+ }
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RhYmxlL3NyYy9oZWxwZXJzL2ZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUlILGVBQWUsRUFJZiwyQkFBMkIsRUFDM0Isd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZiw0QkFBNEIsRUFDNUIsa0NBQWtDLEVBQ3JDLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFtQixzQkFBc0IsRUFBRSxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUl2RyxNQUFNLFVBQVUsd0JBQXdCLENBQUMsV0FBMEIsRUFBRSxVQUFrRCxFQUFFLFNBQXNDO0lBQzNKLElBQUksT0FBTyxHQUE2QixTQUFTLENBQUM7SUFDbEQsSUFBSSxVQUFVLElBQUksSUFBSSxJQUFJLFVBQVUsQ0FBQyxVQUFVLEtBQUssY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hFLE9BQU8sR0FBRztZQUNOLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFDO1lBQzlGLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxFQUFDO1lBQ3BHLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFDO1lBQzFGLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFDO1lBQ2hHLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxFQUFDO1lBQ2xHLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFDO1NBQ2pHLENBQUM7SUFDTixDQUFDO1NBQU0sSUFBSSxVQUFVLENBQUMsVUFBVSxLQUFLLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxRCxPQUFPLEdBQUcsQ0FBQyxFQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLENBQUM7SUFDM0csQ0FBQztTQUFNLElBQUksVUFBVSxDQUFDLFVBQVUsS0FBSyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekQsT0FBTyxHQUFHO1lBQ04sRUFBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUM7WUFDMUYsRUFBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEVBQUM7WUFDaEcsRUFBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUM7WUFDOUYsRUFBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDO1lBQ2hILEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxFQUFDO1lBQ3BHLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsRUFBQztZQUN0SCxFQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFBQztTQUMvRixDQUFDO0lBQ04sQ0FBQztTQUFNLElBQUksVUFBVSxDQUFDLFVBQVUsS0FBSyxjQUFjLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxVQUFVLEtBQUssY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hILElBQUksVUFBVSxZQUFZLHNCQUFzQixJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN6RSxPQUFPLEdBQUc7Z0JBQ04sRUFBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEVBQUM7Z0JBQ2xGLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFDO2FBQzNGLENBQUM7UUFDTixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sR0FBRztnQkFDTixFQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBQztnQkFDMUYsRUFBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEVBQUM7YUFDbkcsQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO1NBQU0sSUFBSSxVQUFVLENBQUMsVUFBVSxLQUFLLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsSUFBSSxDQUFDLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1lBQ3ZHLE9BQU8sR0FBRztnQkFDTixFQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBQztnQkFDMUYsRUFBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEVBQUM7Z0JBQ2hHLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsRUFBQztnQkFDaEgsRUFBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFDO2dCQUN0SCxFQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFBQzthQUMvRixDQUFDO1FBQ04sQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEdBQUc7Z0JBQ04sRUFBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUM7Z0JBQzFGLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsRUFBQztnQkFDaEgsRUFBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFDO2dCQUN0SCxFQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFBQzthQUMvRixDQUFDO1FBQ04sQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLEVBQUUsSUFBSSxDQUNULEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFDLEVBQzFGLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxFQUFDLENBQ3pHLENBQUM7SUFFRixJQUFJLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUN6QixPQUFPLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFZLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFBLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBQ0QsT0FBTyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQ3pCLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLFVBQXVDLEVBQUUsYUFBMkIsRUFBRTtJQUM1RyxJQUFJLGdCQUFnQixHQUFnQyxlQUFlLENBQUMsTUFBTSxDQUFDO0lBQzNFLElBQUksVUFBVSxFQUFFLFVBQVUsS0FBSyxjQUFjLENBQUMsTUFBTTtRQUFFLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUM7U0FDL0YsSUFBSSxVQUFVLEVBQUUsVUFBVSxLQUFLLGNBQWMsQ0FBQyxNQUFNLElBQUksVUFBVSxFQUFFLFVBQVUsS0FBSyxjQUFjLENBQUMsSUFBSSxJQUFJLFVBQVUsRUFBRSxVQUFVLEtBQUssY0FBYyxDQUFDLE9BQU87UUFDNUosZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQztTQUN6QyxJQUFJLFVBQVUsRUFBRSxVQUFVLEtBQUssY0FBYyxDQUFDLE1BQU0sSUFBSSxVQUFVLEVBQUUsVUFBVSxLQUFLLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoSCxJQUFJLFVBQVUsWUFBWSxzQkFBc0IsRUFBRSxDQUFDO1lBQy9DLGdCQUFnQixHQUFHLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7UUFDN0YsQ0FBQzthQUFNLENBQUM7WUFDSixnQkFBZ0IsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO1FBQzlDLENBQUM7SUFDTCxDQUFDO0lBRUQsMkNBQTJDO0lBQzNDLElBQUksVUFBVSxFQUFFLGdCQUFnQixFQUFFLENBQUM7UUFDL0IsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDO0lBQ25ELENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUMvRSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzNDLENBQUM7SUFFRCxPQUFPLGdCQUFnQixDQUFDO0FBQzVCLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQ3JDLE1BQTZCLEVBQzdCLFNBQXVDLEVBQ3ZDLEtBQVcsRUFDWCxVQUEyQixFQUMzQixhQUFnQztJQUVoQyxJQUFJLFlBQVksR0FBRyxNQUFNLEVBQUUsWUFBWSxJQUFJLEtBQUssQ0FBQztJQUNqRCxJQUFJLGdCQUFnQixHQUFHLE1BQU0sRUFBRSxnQkFBZ0IsSUFBSSxTQUFTLENBQUM7SUFFN0QscUdBQXFHO0lBQ3JHLElBQUksVUFBVSxLQUFLLGNBQWMsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDcEUsSUFDSSxTQUFTLEtBQUssZUFBZSxDQUFDLE9BQU87WUFDckMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDcEIsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ2xCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsRUFDdkYsQ0FBQztZQUNDLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDO2dCQUN6RCxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO2dCQUMxQyxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsQ0FBQztRQUNMLENBQUM7YUFBTSxJQUFJLFNBQVMsS0FBSyxlQUFlLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEQsU0FBUyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLFVBQVUsS0FBSyxjQUFjLENBQUMsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JELCtEQUErRDtRQUMvRCxZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDdEMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRSxDQUFDLENBQUMsWUFBWSxZQUFZLElBQUk7Z0JBQzVCLENBQUMsQ0FBQyxZQUFZO2dCQUNkLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxVQUFVLEtBQUssY0FBYyxDQUFDLE9BQU8sSUFBSSxZQUFZLElBQUksSUFBSSxJQUFJLE9BQU8sWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3JHLFlBQVksR0FBRyxDQUFDLE9BQU8sWUFBWSxLQUFLLFFBQVEsSUFBSSxZQUFZLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDLElBQUksWUFBWSxLQUFLLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBQ0QsSUFBSSxVQUFVLEtBQUssY0FBYyxDQUFDLE1BQU0sSUFBSSxZQUFZLElBQUksSUFBSSxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ25HLE1BQU0sUUFBUSxHQUFHLENBQUMsWUFBWSxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNuQixZQUFZLEdBQUcsUUFBUSxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNILEdBQUcsTUFBTTtRQUNULFNBQVM7UUFDVCxLQUFLLEVBQUUsS0FBSztRQUNaLGdCQUFnQjtRQUNoQixZQUFZO0tBQ2YsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQzVDLE1BQXlDLEVBQ3pDLGdCQUE2QyxFQUM3QyxZQUFpQixFQUNqQixVQUEyQixFQUMzQixhQUFnQztJQUVoQyxJQUFJLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztJQUNqQyxJQUFJLEtBQUssR0FBa0UsWUFBWSxDQUFDO0lBRXhGLElBQUksVUFBVSxLQUFLLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsSUFBSSxZQUFZLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdkQsSUFBSSxnQkFBZ0IsS0FBSyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzlDLElBQUksS0FBSyxZQUFZLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQ2xGLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFFL0IsSUFBSSxhQUFhLEVBQUUsUUFBUSxFQUFFLENBQUM7d0JBQzFCLElBQUksYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDOzRCQUM3QixRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUM1QixNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNoQyxDQUFDOzZCQUFNLENBQUM7NEJBQ0osUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7NEJBQzFCLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUMvQixDQUFDO29CQUNMLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUM5QixNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUNyQyxDQUFDO29CQUVELEtBQUssR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDM0IsU0FBUyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUM7Z0JBQ3hDLENBQUM7cUJBQU0sQ0FBQztvQkFDSixLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixDQUFDO1lBQ0wsQ0FBQztpQkFBTSxJQUFJLGdCQUFnQixLQUFLLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUN0SSxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUEyQixDQUFDLENBQUM7b0JBQzlELElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQTJCLENBQUMsQ0FBQztvQkFFMUQsSUFBSSxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUM7d0JBQ3ZELE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDNUIsSUFBSSxhQUFhLEVBQUUsUUFBUSxFQUFFLENBQUM7NEJBQzFCLElBQUksYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDO2dDQUM3QixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQzs0QkFDL0MsQ0FBQztpQ0FBTSxDQUFDO2dDQUNKLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDOzRCQUMvQyxDQUFDO3dCQUNMLENBQUM7NkJBQU0sQ0FBQzs0QkFDSixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDekMsQ0FBQzt3QkFFRCxLQUFLLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7d0JBQzNCLFNBQVMsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO29CQUN4QyxDQUFDO2dCQUNMLENBQUM7cUJBQU0sQ0FBQztvQkFDSixLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUMxRSxNQUFNLG1CQUFtQixHQUFHO1lBQ3hCLEdBQUcsRUFBRSxhQUFhLEVBQUUsUUFBUTtZQUM1QixRQUFRLEVBQUUsYUFBYSxFQUFFLGFBQWE7WUFDdEMsVUFBVSxFQUFFLGFBQWEsRUFBRSxlQUFlO1NBQzdDLENBQUM7UUFFRixLQUFLO1lBQ0QsS0FBSyxJQUFJLElBQUk7Z0JBQ1QsQ0FBQyxDQUFDLEtBQUs7Z0JBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO29CQUNwQixDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO29CQUNqRyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBQ0QsSUFBSSxTQUFTLEtBQUssZUFBZSxDQUFDLE1BQU0sSUFBSSxTQUFTLEtBQUssZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3JGLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU87UUFDSCxHQUFHLE1BQU07UUFDVCxnQkFBZ0IsRUFBRSxnQkFBZ0I7UUFDbEMsU0FBUyxFQUFFLFNBQVM7UUFDcEIsWUFBWSxFQUFFLFlBQVk7UUFDMUIsS0FBSyxFQUFFLEtBQUs7S0FDZixDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxRQUFnQyxFQUFFLE1BQThCLEVBQUUsYUFBZ0M7SUFDbEksTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV4QywwQkFBMEI7SUFDMUIsTUFBTSxTQUFTLEdBQUcsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFeEYsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsS0FBSyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNqRixDQUFDO0FBRUQsTUFBTSxVQUFVLG1DQUFtQyxDQUFDLE1BQWtDLEVBQUUsU0FBcUM7SUFDekgsY0FBYztJQUNkLFNBQVMsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLFNBQVMsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7SUFDdEMsU0FBUyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztJQUNwQyxTQUFTLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO0lBQzFDLHFCQUFxQjtJQUNyQixJQUFJLE1BQU0sRUFBRSxhQUFhLEVBQUUsQ0FBQztRQUN4QixJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxLQUFLLFNBQVM7WUFBRSxTQUFTLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1FBQ25ILElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsS0FBSyxTQUFTO1lBQUUsU0FBUyxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUM7UUFDeEksSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLGtCQUFrQixLQUFLLFNBQVM7WUFBRSxTQUFTLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztRQUNsSSxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsdUJBQXVCLEtBQUssU0FBUztZQUFFLFNBQVMsQ0FBQyx1QkFBdUIsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDO0lBQ3JKLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLHlDQUF5QyxDQUFDLFNBQXVDLEVBQUUsS0FBVztJQUMxRyxJQUFJLFNBQVMsSUFBSSxJQUFJLElBQUksU0FBUyxLQUFLLGVBQWUsQ0FBQyxNQUFNLElBQUksU0FBUyxLQUFLLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxRyxPQUFPLEtBQUssQ0FBQyxDQUFDLGlFQUFpRTtJQUNuRixDQUFDO0lBQ0QsSUFBSSxTQUFTLEtBQUssZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9DLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEQsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksU0FBUyxLQUFLLGVBQWUsQ0FBQyxFQUFFLElBQUksU0FBUyxLQUFLLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3ZFLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsVUFBdUMsRUFBRSxNQUFtQztJQUM1RyxJQUFJLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxVQUFVLEtBQUssY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9ELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FDVixVQUFVLENBQUMsa0JBQWtCLElBQUksQ0FBQyxVQUFVLENBQUMseUJBQXlCLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNySyxPQUFPO1FBQ0gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSx1QkFBdUIsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMxRixRQUFRLEVBQUUsVUFBVSxDQUFDLFlBQVksSUFBSSxNQUFNLEVBQUUsYUFBYTtRQUMxRCxlQUFlLEVBQUUsVUFBVSxDQUFDLG1CQUFtQixJQUFJLENBQUMsTUFBTSxFQUFFLG9CQUFvQjtRQUNoRixhQUFhLEVBQUUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCO1FBQzFDLE1BQU0sRUFDRixVQUFVLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxVQUFVLENBQUMseUJBQXlCLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDMUssUUFBUSxFQUFFLFFBQVE7UUFDbEIsV0FBVyxFQUNQLFFBQVE7WUFDUixDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyx5QkFBeUIsSUFBSSxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQy9LLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFVBQXVDO0lBQ3pFLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLFVBQVUsS0FBSyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakUsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyx5QkFBeUIsSUFBSSxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMvSixPQUFPO1FBQ0gsWUFBWSxFQUFFLFVBQVUsQ0FBQyx1QkFBdUIsSUFBSSxVQUFVLEVBQUUsWUFBWTtRQUM1RSxZQUFZLEVBQUUsVUFBVSxDQUFDLHVCQUF1QixJQUFJLFVBQVUsRUFBRSxZQUFZO0tBQy9FLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQcmltZU5HQ29uZmlnLCBTZWxlY3RJdGVtfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7XG4gICAgQ29tbW9uc0ZpbHRlck1ldGFkYXRhLFxuICAgIENvbW1vbnNNb2R1bGVDb25maWcsXG4gICAgQ29tbW9uc1NlcmlhbGl6YXRpb25Db25maWcsXG4gICAgRmlsdGVyTWF0Y2hNb2RlLFxuICAgIEZpbHRlck1hdGNoTW9kZUV4dGVuZGVkVHlwZSxcbiAgICBOdWxsYWJsZSxcbiAgICBTaW5nbGVPckFycmF5VHlwZSxcbiAgICBhbmd1bGFyRGF0ZUZvcm1hdEhhc1NlY29uZHMsXG4gICAgYW5ndWxhckRhdGVGb3JtYXRIYXNUaW1lLFxuICAgIGRhdGVUb0lzb1N0cmluZyxcbiAgICBmcm9tQW5ndWxhckRhdGVGb3JtYXRUb1ByaW1lLFxuICAgIGZyb21Bbmd1bGFyTnVtYmVyRm9ybWF0VG9GcmFjdGlvbnNcbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7RmlsdGVyRGVzY3JpcHRvciwgRmlsdGVyTG9va3VwRGVzY3JpcHRvciwgRmlsdGVyVHlwZUVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvZmlsdGVyJztcblxuaW1wb3J0IHtGaWx0ZXJEYXRlQ29uZmlnfSBmcm9tICcuLi9tb2RlbHMvZmlsdGVyLm1vZGVsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlTWF0Y2hNb2RlT3B0aW9ucyhwcmltZUNvbmZpZzogUHJpbWVOR0NvbmZpZywgZGVzY3JpcHRvcjogRmlsdGVyRGVzY3JpcHRvcjxhbnksIGFueT4gfCB1bmRlZmluZWQsIGNtcFNlckNmZz86IENvbW1vbnNTZXJpYWxpemF0aW9uQ29uZmlnKTogU2VsZWN0SXRlbVtdIHtcbiAgICBsZXQgb3B0aW9uczogU2VsZWN0SXRlbVtdIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChkZXNjcmlwdG9yID09IG51bGwgfHwgZGVzY3JpcHRvci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5TdHJpbmcpIHtcbiAgICAgICAgb3B0aW9ucyA9IFtcbiAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkNvbnRhaW5zLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLkNvbnRhaW5zKX0sXG4gICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5Ob3RDb250YWlucywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5Ob3RDb250YWlucyl9LFxuICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuRXF1YWxzLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLkVxdWFscyl9LFxuICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuTm90RXF1YWxzLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLk5vdEVxdWFscyl9LFxuICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuU3RhcnRzV2l0aCwgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5TdGFydHNXaXRoKX0sXG4gICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5FbmRzV2l0aCwgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5FbmRzV2l0aCl9XG4gICAgICAgIF07XG4gICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yLmZpbHRlclR5cGUgPT09IEZpbHRlclR5cGVFbnVtLkJvb2xlYW4pIHtcbiAgICAgICAgb3B0aW9ucyA9IFt7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5FcXVhbHMsIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuRXF1YWxzKX1dO1xuICAgIH0gZWxzZSBpZiAoZGVzY3JpcHRvci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5OdW1iZXIpIHtcbiAgICAgICAgb3B0aW9ucyA9IFtcbiAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkVxdWFscywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5FcXVhbHMpfSxcbiAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLk5vdEVxdWFscywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5Ob3RFcXVhbHMpfSxcbiAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkxlc3NUaGFuLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLkxlc3NUaGFuKX0sXG4gICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5MZXNzVGhhbk9yRXF1YWxUbywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5MZXNzVGhhbk9yRXF1YWxUbyl9LFxuICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuR3JlYXRlclRoYW4sIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuR3JlYXRlclRoYW4pfSxcbiAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkdyZWF0ZXJUaGFuT3JFcXVhbFRvLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLkdyZWF0ZXJUaGFuT3JFcXVhbFRvKX0sXG4gICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5CZXR3ZWVuLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLkJldHdlZW4pfVxuICAgICAgICBdO1xuICAgIH0gZWxzZSBpZiAoZGVzY3JpcHRvci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5Mb29rdXAgfHwgZGVzY3JpcHRvci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5Mb29rdXBFbnVtKSB7XG4gICAgICAgIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmlsdGVyTG9va3VwRGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLm11bHRpc2VsZWN0KSB7XG4gICAgICAgICAgICBvcHRpb25zID0gW1xuICAgICAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkluLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLkluKX0sXG4gICAgICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuTm90SW4sIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuTm90SW4pfVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBbXG4gICAgICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuRXF1YWxzLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLkVxdWFscyl9LFxuICAgICAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLk5vdEVxdWFscywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5Ob3RFcXVhbHMpfVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZGVzY3JpcHRvci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5EYXRlKSB7XG4gICAgICAgIGlmICghZGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1RpbWUgJiYgIWRlc2NyaXB0b3IuZGF0ZVZhbHVlTm9UaW1lICYmICFjbXBTZXJDZmc/LmZpbHRlcnNEYXRlT25seURpc2FibGVkKSB7XG4gICAgICAgICAgICBvcHRpb25zID0gW1xuICAgICAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkVxdWFscywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5FcXVhbHMpfSxcbiAgICAgICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5Ob3RFcXVhbHMsIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuTm90RXF1YWxzKX0sXG4gICAgICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuTGVzc1RoYW5PckVxdWFsVG8sIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuTGVzc1RoYW5PckVxdWFsVG8pfSxcbiAgICAgICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5HcmVhdGVyVGhhbk9yRXF1YWxUbywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5HcmVhdGVyVGhhbk9yRXF1YWxUbyl9LFxuICAgICAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkJldHdlZW4sIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuQmV0d2Vlbil9XG4gICAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3B0aW9ucyA9IFtcbiAgICAgICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5FcXVhbHMsIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuRXF1YWxzKX0sXG4gICAgICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuTGVzc1RoYW5PckVxdWFsVG8sIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuTGVzc1RoYW5PckVxdWFsVG8pfSxcbiAgICAgICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5HcmVhdGVyVGhhbk9yRXF1YWxUbywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5HcmVhdGVyVGhhbk9yRXF1YWxUbyl9LFxuICAgICAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkJldHdlZW4sIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuQmV0d2Vlbil9XG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3B0aW9ucz8ucHVzaChcbiAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuRXhpc3RzLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLkV4aXN0cyl9LFxuICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5Eb2VzTm90RXhpc3QsIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuRG9lc05vdEV4aXN0KX1cbiAgICApO1xuXG4gICAgaWYgKGRlc2NyaXB0b3I/Lm1hdGNoTW9kZXMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGRlc2NyaXB0b3IubWF0Y2hNb2Rlcy5tYXAobW0gPT4gPFNlbGVjdEl0ZW0+e3ZhbHVlOiBtbSwgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKG1tKX0pO1xuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucyB8fCBbXTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBkZWZhdWx0IG1hdGNoIG1vZGUgZm9yIGEgZmlsdGVyLlxuICpcbiAqIEBwYXJhbSB7RmlsdGVyRGVzY3JpcHRvcjxhbnksIGFueT59IFtkZXNjcmlwdG9yXSAtIFRoZSBmaWx0ZXIgZGVzY3JpcHRvci5cbiAqIEBwYXJhbSB7U2VsZWN0SXRlbVtdfSBbbWF0Y2hNb2Rlcz1bXV0gLSBUaGUgYXZhaWxhYmxlIG1hdGNoIG1vZGVzIG9wdGlvbnMuXG4gKlxuICogQHJldHVybiB7RmlsdGVyTWF0Y2hNb2RlRXh0ZW5kZWRUeXBlfSBUaGUgZGVmYXVsdCBtYXRjaCBtb2RlIGZvciB0aGUgZmlsdGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyR2V0RGVmYXVsdE1hdGNoTW9kZShkZXNjcmlwdG9yPzogRmlsdGVyRGVzY3JpcHRvcjxhbnksIGFueT4sIG1hdGNoTW9kZXM6IFNlbGVjdEl0ZW1bXSA9IFtdKTogRmlsdGVyTWF0Y2hNb2RlRXh0ZW5kZWRUeXBlIHtcbiAgICBsZXQgZGVmYXVsdE1hdGNoTW9kZTogRmlsdGVyTWF0Y2hNb2RlRXh0ZW5kZWRUeXBlID0gRmlsdGVyTWF0Y2hNb2RlLkVxdWFscztcbiAgICBpZiAoZGVzY3JpcHRvcj8uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZUVudW0uU3RyaW5nKSBkZWZhdWx0TWF0Y2hNb2RlID0gRmlsdGVyTWF0Y2hNb2RlLlN0YXJ0c1dpdGg7XG4gICAgZWxzZSBpZiAoZGVzY3JpcHRvcj8uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZUVudW0uTnVtYmVyIHx8IGRlc2NyaXB0b3I/LmZpbHRlclR5cGUgPT09IEZpbHRlclR5cGVFbnVtLkRhdGUgfHwgZGVzY3JpcHRvcj8uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZUVudW0uQm9vbGVhbilcbiAgICAgICAgZGVmYXVsdE1hdGNoTW9kZSA9IEZpbHRlck1hdGNoTW9kZS5FcXVhbHM7XG4gICAgZWxzZSBpZiAoZGVzY3JpcHRvcj8uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZUVudW0uTG9va3VwIHx8IGRlc2NyaXB0b3I/LmZpbHRlclR5cGUgPT09IEZpbHRlclR5cGVFbnVtLkxvb2t1cEVudW0pIHtcbiAgICAgICAgaWYgKGRlc2NyaXB0b3IgaW5zdGFuY2VvZiBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICBkZWZhdWx0TWF0Y2hNb2RlID0gZGVzY3JpcHRvcj8ubXVsdGlzZWxlY3QgPyBGaWx0ZXJNYXRjaE1vZGUuSW4gOiBGaWx0ZXJNYXRjaE1vZGUuRXF1YWxzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVmYXVsdE1hdGNoTW9kZSA9IEZpbHRlck1hdGNoTW9kZS5FcXVhbHM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBvdmVyd3JpdGUgdHlwZSBkZWZhdWx0IHNldCBpbiBkZXNjcmlwdG9yXG4gICAgaWYgKGRlc2NyaXB0b3I/LmRlZmF1bHRNYXRjaE1vZGUpIHtcbiAgICAgICAgZGVmYXVsdE1hdGNoTW9kZSA9IGRlc2NyaXB0b3IuZGVmYXVsdE1hdGNoTW9kZTtcbiAgICB9XG5cbiAgICAvLyBjaGVjayBpZiBkZWZhdWx0IG1vZGUgZXhpc3RzIVxuICAgIGlmIChtYXRjaE1vZGVzLmxlbmd0aCA+IDAgJiYgIW1hdGNoTW9kZXMuc29tZShtID0+IG0udmFsdWUgPT09IGRlZmF1bHRNYXRjaE1vZGUpKSB7XG4gICAgICAgIGRlZmF1bHRNYXRjaE1vZGUgPSBtYXRjaE1vZGVzWzBdLnZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZhdWx0TWF0Y2hNb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyU2V0TWV0YWRhdGFPbkNoYW5nZShcbiAgICBmaWx0ZXI6IENvbW1vbnNGaWx0ZXJNZXRhZGF0YSxcbiAgICBtYXRjaE1vZGU/OiBGaWx0ZXJNYXRjaE1vZGVFeHRlbmRlZFR5cGUsXG4gICAgdmFsdWU/OiBhbnksXG4gICAgZmlsdGVyVHlwZT86IEZpbHRlclR5cGVFbnVtLFxuICAgIGZpbHRlckRhdGVDZmc/OiBGaWx0ZXJEYXRlQ29uZmlnXG4pOiBDb21tb25zRmlsdGVyTWV0YWRhdGEge1xuICAgIGxldCBkaXNwbGF5VmFsdWUgPSBmaWx0ZXI/LmRpc3BsYXlWYWx1ZSA/PyB2YWx1ZTtcbiAgICBsZXQgZGlzcGxheU1hdGNoTW9kZSA9IGZpbHRlcj8uZGlzcGxheU1hdGNoTW9kZSA/PyBtYXRjaE1vZGU7XG5cbiAgICAvLyB3aGVuIGVxdWFscyBpcyB1c2VkIG9uIGRhdGVzIHdpdGggdGltZSwgdGhlIGFjdHVhbCBmaWx0ZXIgd2lsbCBiZSBiZXR3ZWVuLCBidXQgZGlzcGxheWVkIGFzIGVxdWFsc1xuICAgIGlmIChmaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5EYXRlICYmICFmaWx0ZXJEYXRlQ2ZnPy52YWx1ZU5vVGltZSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBtYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5CZXR3ZWVuICYmXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAgICAgICAgICAgdmFsdWUubGVuZ3RoID09PSAyICYmXG4gICAgICAgICAgICB2YWx1ZS5ldmVyeSh2ID0+IHYgaW5zdGFuY2VvZiBEYXRlIHx8IHR5cGVvZiB2ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdiA9PT0gJ251bWJlcicpXG4gICAgICAgICkge1xuICAgICAgICAgICAgaWYgKGZpbHRlckFyZURhdGVzRXF1YWwodmFsdWVbMF0sIHZhbHVlWzFdLCBmaWx0ZXJEYXRlQ2ZnKSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlNYXRjaE1vZGUgPSBGaWx0ZXJNYXRjaE1vZGUuRXF1YWxzO1xuICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9IG5ldyBEYXRlKHZhbHVlWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5FcXVhbHMgJiYgIXZhbHVlKSB7XG4gICAgICAgICAgICBtYXRjaE1vZGUgPSBGaWx0ZXJNYXRjaE1vZGUuQmV0d2VlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5EYXRlICYmIGRpc3BsYXlWYWx1ZSkge1xuICAgICAgICAvLyBkaXNwbGF5IHZhbHVlIGZvciBjYWxlbmRhciBjYW5ub3QgYmUgc3RyaW5nLCBjb252ZXJ0IHRvIGRhdGVcbiAgICAgICAgZGlzcGxheVZhbHVlID0gQXJyYXkuaXNBcnJheShkaXNwbGF5VmFsdWUpXG4gICAgICAgICAgICA/IGRpc3BsYXlWYWx1ZS5tYXAodiA9PiAoISh2IGluc3RhbmNlb2YgRGF0ZSkgPyBuZXcgRGF0ZSh2KSA6IHYpKVxuICAgICAgICAgICAgOiBkaXNwbGF5VmFsdWUgaW5zdGFuY2VvZiBEYXRlXG4gICAgICAgICAgICAgID8gZGlzcGxheVZhbHVlXG4gICAgICAgICAgICAgIDogbmV3IERhdGUoZGlzcGxheVZhbHVlKTtcbiAgICB9XG4gICAgaWYgKGZpbHRlclR5cGUgPT09IEZpbHRlclR5cGVFbnVtLkJvb2xlYW4gJiYgZGlzcGxheVZhbHVlICE9IG51bGwgJiYgdHlwZW9mIGRpc3BsYXlWYWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIGRpc3BsYXlWYWx1ZSA9ICh0eXBlb2YgZGlzcGxheVZhbHVlID09PSAnc3RyaW5nJyAmJiBkaXNwbGF5VmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKSB8fCBkaXNwbGF5VmFsdWUgPT09IDE7XG4gICAgfVxuICAgIGlmIChmaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5OdW1iZXIgJiYgZGlzcGxheVZhbHVlICE9IG51bGwgJiYgdHlwZW9mIGRpc3BsYXlWYWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc3QgbnVtVmFsdWUgPSArZGlzcGxheVZhbHVlO1xuICAgICAgICBpZiAoIWlzTmFOKG51bVZhbHVlKSkge1xuICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gbnVtVmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgIG1hdGNoTW9kZSxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICBkaXNwbGF5TWF0Y2hNb2RlLFxuICAgICAgICBkaXNwbGF5VmFsdWVcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyU2V0TWV0YWRhdGFPbkRpc3BsYXlDaGFuZ2UoXG4gICAgZmlsdGVyOiBDb21tb25zRmlsdGVyTWV0YWRhdGEgfCB1bmRlZmluZWQsXG4gICAgZGlzcGxheU1hdGNoTW9kZTogRmlsdGVyTWF0Y2hNb2RlRXh0ZW5kZWRUeXBlLFxuICAgIGRpc3BsYXlWYWx1ZTogYW55LFxuICAgIGZpbHRlclR5cGU/OiBGaWx0ZXJUeXBlRW51bSxcbiAgICBmaWx0ZXJEYXRlQ2ZnPzogRmlsdGVyRGF0ZUNvbmZpZ1xuKSB7XG4gICAgbGV0IG1hdGNoTW9kZSA9IGRpc3BsYXlNYXRjaE1vZGU7XG4gICAgbGV0IHZhbHVlOiBTaW5nbGVPckFycmF5VHlwZTxOdWxsYWJsZTxEYXRlIHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj4+ID0gZGlzcGxheVZhbHVlO1xuXG4gICAgaWYgKGZpbHRlclR5cGUgPT09IEZpbHRlclR5cGVFbnVtLkRhdGUpIHtcbiAgICAgICAgaWYgKCFmaWx0ZXJEYXRlQ2ZnPy52YWx1ZU5vVGltZSAmJiBkaXNwbGF5VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChkaXNwbGF5TWF0Y2hNb2RlID09PSBGaWx0ZXJNYXRjaE1vZGUuRXF1YWxzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSB8fCB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZnJvbURhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvRGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyRGF0ZUNmZz8uc2hvd1RpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJEYXRlQ2ZnPy5zaG93U2Vjb25kcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21EYXRlLnNldE1pbGxpc2Vjb25kcygwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0RhdGUuc2V0TWlsbGlzZWNvbmRzKDk5OSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21EYXRlLnNldFNlY29uZHMoMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9EYXRlLnNldFNlY29uZHMoNTksIDk5OSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tRGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvRGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBbZnJvbURhdGUsIHRvRGF0ZV07XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoTW9kZSA9IEZpbHRlck1hdGNoTW9kZS5CZXR3ZWVuO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXlNYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5CZXR3ZWVuKSB7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMiAmJiB2YWx1ZS5ldmVyeShpID0+IGkgaW5zdGFuY2VvZiBEYXRlIHx8IHR5cGVvZiBpID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgaSA9PT0gJ251bWJlcicpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZyb21EYXRlID0gbmV3IERhdGUodmFsdWVbMF0gYXMgRGF0ZSB8IHN0cmluZyB8IG51bWJlcik7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0b0RhdGUgPSBuZXcgRGF0ZSh2YWx1ZVsxXSBhcyBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyQXJlRGF0ZXNFcXVhbChmcm9tRGF0ZSwgdG9EYXRlLCBmaWx0ZXJEYXRlQ2ZnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9EYXRlID0gbmV3IERhdGUoZnJvbURhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlckRhdGVDZmc/LnNob3dUaW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlckRhdGVDZmc/LnNob3dTZWNvbmRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvRGF0ZS5zZXRTZWNvbmRzKHRvRGF0ZS5nZXRTZWNvbmRzKCkgKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0RhdGUuc2V0TWludXRlcyh0b0RhdGUuZ2V0TWludXRlcygpICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0RhdGUuc2V0RGF0ZSh0b0RhdGUuZ2V0RGF0ZSgpICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gW2Zyb21EYXRlLCB0b0RhdGVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hNb2RlID0gRmlsdGVyTWF0Y2hNb2RlLkJldHdlZW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29udmVydERhdGVUeXBlID0gZmlsdGVyRGF0ZUNmZz8udmFsdWVOb1RpbWUgPyAnZGF0ZScgOiAnZGF0ZS10aW1lJztcbiAgICAgICAgY29uc3QgY29udmVydERhdGVUaW1lT3B0cyA9IHtcbiAgICAgICAgICAgIHV0YzogZmlsdGVyRGF0ZUNmZz8udmFsdWVVdGMsXG4gICAgICAgICAgICBub01pbGxpczogZmlsdGVyRGF0ZUNmZz8udmFsdWVOb01pbGxpcyxcbiAgICAgICAgICAgIG5vVGltZXpvbmU6IGZpbHRlckRhdGVDZmc/LnZhbHVlTm9UaW1lem9uZVxuICAgICAgICB9O1xuXG4gICAgICAgIHZhbHVlID1cbiAgICAgICAgICAgIHZhbHVlID09IG51bGxcbiAgICAgICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAgICAgOiBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgICAgICAgPyB2YWx1ZS5maWx0ZXIoaSA9PiBpICE9IG51bGwpLm1hcChpID0+IGRhdGVUb0lzb1N0cmluZyhpLCBjb252ZXJ0RGF0ZVR5cGUsIGNvbnZlcnREYXRlVGltZU9wdHMpKVxuICAgICAgICAgICAgICAgICAgOiBkYXRlVG9Jc29TdHJpbmcodmFsdWUsIGNvbnZlcnREYXRlVHlwZSwgY29udmVydERhdGVUaW1lT3B0cyk7XG4gICAgfVxuICAgIGlmIChtYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5FeGlzdHMgfHwgbWF0Y2hNb2RlID09PSBGaWx0ZXJNYXRjaE1vZGUuRG9lc05vdEV4aXN0KSB7XG4gICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgIGRpc3BsYXlNYXRjaE1vZGU6IGRpc3BsYXlNYXRjaE1vZGUsXG4gICAgICAgIG1hdGNoTW9kZTogbWF0Y2hNb2RlLFxuICAgICAgICBkaXNwbGF5VmFsdWU6IGRpc3BsYXlWYWx1ZSxcbiAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckFyZURhdGVzRXF1YWwoZnJvbURhdGU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIsIHRvRGF0ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlciwgZmlsdGVyRGF0ZUNmZz86IEZpbHRlckRhdGVDb25maWcpIHtcbiAgICBjb25zdCBzdGFydERhdGUgPSBkYXRlVG9Jc29TdHJpbmcoZnJvbURhdGUpO1xuICAgIGNvbnN0IGVuZERhdGUgPSBkYXRlVG9Jc29TdHJpbmcodG9EYXRlKTtcblxuICAgIC8vIDIwMjAtMTEtMDJUMTE6MTI6MTIuMDAwXG4gICAgY29uc3QgY21wTGVuZ3RoID0gZmlsdGVyRGF0ZUNmZz8uc2hvd1RpbWUgPyAoZmlsdGVyRGF0ZUNmZz8uc2hvd1NlY29uZHMgPyAxOSA6IDE2KSA6IDEwO1xuXG4gICAgcmV0dXJuIHN0YXJ0RGF0ZS5zdWJzdHJpbmcoMCwgY21wTGVuZ3RoKSA9PT0gZW5kRGF0ZS5zdWJzdHJpbmcoMCwgY21wTGVuZ3RoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckFwcGx5U2VyaWFsaXphdGlvbkNvbmZpZ1RvQ21wKGNvbmZpZzogQ29tbW9uc01vZHVsZUNvbmZpZyB8IG51bGwsIGNtcFNlckNmZzogQ29tbW9uc1NlcmlhbGl6YXRpb25Db25maWcpIHtcbiAgICAvLyBzZXQgZGVmYXVsdFxuICAgIGNtcFNlckNmZy5kYXRlVGltZUluVXRjID0gZmFsc2U7XG4gICAgY21wU2VyQ2ZnLmRhdGVUaW1lV2l0aFRpbWV6b25lID0gdHJ1ZTtcbiAgICBjbXBTZXJDZmcuZGF0ZVRpbWVXaXRoTWlsbGlzID0gdHJ1ZTtcbiAgICBjbXBTZXJDZmcuZmlsdGVyc0RhdGVPbmx5RGlzYWJsZWQgPSBmYWxzZTtcbiAgICAvLyBzZXQgY3VzdG9taXphdGlvbnNcbiAgICBpZiAoY29uZmlnPy5zZXJpYWxpemF0aW9uKSB7XG4gICAgICAgIGlmIChjb25maWcuc2VyaWFsaXphdGlvbi5kYXRlVGltZUluVXRjICE9PSB1bmRlZmluZWQpIGNtcFNlckNmZy5kYXRlVGltZUluVXRjID0gY29uZmlnLnNlcmlhbGl6YXRpb24uZGF0ZVRpbWVJblV0YztcbiAgICAgICAgaWYgKGNvbmZpZy5zZXJpYWxpemF0aW9uLmRhdGVUaW1lV2l0aFRpbWV6b25lICE9PSB1bmRlZmluZWQpIGNtcFNlckNmZy5kYXRlVGltZVdpdGhUaW1lem9uZSA9IGNvbmZpZy5zZXJpYWxpemF0aW9uLmRhdGVUaW1lV2l0aFRpbWV6b25lO1xuICAgICAgICBpZiAoY29uZmlnLnNlcmlhbGl6YXRpb24uZGF0ZVRpbWVXaXRoTWlsbGlzICE9PSB1bmRlZmluZWQpIGNtcFNlckNmZy5kYXRlVGltZVdpdGhNaWxsaXMgPSBjb25maWcuc2VyaWFsaXphdGlvbi5kYXRlVGltZVdpdGhNaWxsaXM7XG4gICAgICAgIGlmIChjb25maWcuc2VyaWFsaXphdGlvbi5maWx0ZXJzRGF0ZU9ubHlEaXNhYmxlZCAhPT0gdW5kZWZpbmVkKSBjbXBTZXJDZmcuZmlsdGVyc0RhdGVPbmx5RGlzYWJsZWQgPSBjb25maWcuc2VyaWFsaXphdGlvbi5maWx0ZXJzRGF0ZU9ubHlEaXNhYmxlZDtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJBZGp1c3REaXNwbGF5VmFsdWVPbk1hdGNoTW9kZUNoYW5nZShtYXRjaE1vZGU/OiBGaWx0ZXJNYXRjaE1vZGVFeHRlbmRlZFR5cGUsIHZhbHVlPzogYW55KTogYW55IHtcbiAgICBpZiAobWF0Y2hNb2RlID09IG51bGwgfHwgbWF0Y2hNb2RlID09PSBGaWx0ZXJNYXRjaE1vZGUuRXhpc3RzIHx8IG1hdGNoTW9kZSA9PT0gRmlsdGVyTWF0Y2hNb2RlLkRvZXNOb3RFeGlzdCkge1xuICAgICAgICByZXR1cm4gdmFsdWU7IC8vIG5ldmVyIGNoYW5nZSwgb25seSBjaGFuZ2UgbGF0ZXIgaWYgc29tZXRoaW5nIGVsc2UgY2hhbmdlcyBoZXJlXG4gICAgfVxuICAgIGlmIChtYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5CZXR3ZWVuKSB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSAhPSBudWxsID8gW3ZhbHVlLCB2YWx1ZV0gOiBbXTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5sZW5ndGggPT09IDAgfHwgdmFsdWUubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gW3ZhbHVlWzBdLCB2YWx1ZVswXV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW3ZhbHVlWzBdLCB2YWx1ZVsxXV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG1hdGNoTW9kZSA9PT0gRmlsdGVyTWF0Y2hNb2RlLkluIHx8IG1hdGNoTW9kZSA9PT0gRmlsdGVyTWF0Y2hNb2RlLk5vdEluKSB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogdmFsdWUgPT0gbnVsbCA/IFtdIDogW3ZhbHVlXTtcbiAgICB9XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDAgPyB2YWx1ZVswXSA6IHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyR2V0RGF0ZUNvbmZpZyhkZXNjcmlwdG9yPzogRmlsdGVyRGVzY3JpcHRvcjxhbnksIGFueT4sIHNlckNmZz86IENvbW1vbnNTZXJpYWxpemF0aW9uQ29uZmlnKTogRmlsdGVyRGF0ZUNvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFkZXNjcmlwdG9yIHx8IGRlc2NyaXB0b3IuZmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZUVudW0uRGF0ZSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHNob3dUaW1lID1cbiAgICAgICAgZGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1RpbWUgPz8gKGRlc2NyaXB0b3IuZGlzcGxheUZvcm1hdEFwcGx5VG9GaWVsZCAmJiBkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXQgPyBhbmd1bGFyRGF0ZUZvcm1hdEhhc1RpbWUoZGVzY3JpcHRvci5kaXNwbGF5Rm9ybWF0KSA6IGZhbHNlKTtcbiAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZU5vVGltZTogZGVzY3JpcHRvci5kYXRlVmFsdWVOb1RpbWUgfHwgKCFzZXJDZmc/LmZpbHRlcnNEYXRlT25seURpc2FibGVkICYmICFzaG93VGltZSksXG4gICAgICAgIHZhbHVlVXRjOiBkZXNjcmlwdG9yLmRhdGVWYWx1ZVV0YyA/PyBzZXJDZmc/LmRhdGVUaW1lSW5VdGMsXG4gICAgICAgIHZhbHVlTm9UaW1lem9uZTogZGVzY3JpcHRvci5kYXRlVmFsdWVOb1RpbWV6b25lID8/ICFzZXJDZmc/LmRhdGVUaW1lV2l0aFRpbWV6b25lLFxuICAgICAgICB2YWx1ZU5vTWlsbGlzOiAhc2VyQ2ZnPy5kYXRlVGltZVdpdGhNaWxsaXMsXG4gICAgICAgIGZvcm1hdDpcbiAgICAgICAgICAgIGRlc2NyaXB0b3IuZGF0ZVBpY2tlckZvcm1hdCA/PyAoZGVzY3JpcHRvci5kaXNwbGF5Rm9ybWF0QXBwbHlUb0ZpZWxkICYmIGRlc2NyaXB0b3IuZGlzcGxheUZvcm1hdCA/IGZyb21Bbmd1bGFyRGF0ZUZvcm1hdFRvUHJpbWUoZGVzY3JpcHRvci5kaXNwbGF5Rm9ybWF0KSA6IHVuZGVmaW5lZCksXG4gICAgICAgIHNob3dUaW1lOiBzaG93VGltZSxcbiAgICAgICAgc2hvd1NlY29uZHM6XG4gICAgICAgICAgICBzaG93VGltZSAmJlxuICAgICAgICAgICAgKGRlc2NyaXB0b3IuZGF0ZVBpY2tlclNob3dTZWNvbmRzID8/IChkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXRBcHBseVRvRmllbGQgJiYgZGVzY3JpcHRvci5kaXNwbGF5Rm9ybWF0ID8gYW5ndWxhckRhdGVGb3JtYXRIYXNTZWNvbmRzKGRlc2NyaXB0b3IuZGlzcGxheUZvcm1hdCkgOiBmYWxzZSkpXG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckdldE51bWJlckNvbmZpZyhkZXNjcmlwdG9yPzogRmlsdGVyRGVzY3JpcHRvcjxhbnksIGFueT4pIHtcbiAgICBpZiAoIWRlc2NyaXB0b3IgfHwgZGVzY3JpcHRvci5maWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlRW51bS5OdW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBkaXNwbGF5Q2ZnID0gZGVzY3JpcHRvci5kaXNwbGF5Rm9ybWF0QXBwbHlUb0ZpZWxkICYmIGRlc2NyaXB0b3IuZGlzcGxheUZvcm1hdCA/IGZyb21Bbmd1bGFyTnVtYmVyRm9ybWF0VG9GcmFjdGlvbnMoZGVzY3JpcHRvci5kaXNwbGF5Rm9ybWF0KSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgICBmcmFjdGlvbnNNaW46IGRlc2NyaXB0b3IubnVtYmVyTWluRnJhY3Rpb25EaWdpdHMgPz8gZGlzcGxheUNmZz8uZnJhY3Rpb25zTWluLFxuICAgICAgICBmcmFjdGlvbnNNYXg6IGRlc2NyaXB0b3IubnVtYmVyTWF4RnJhY3Rpb25EaWdpdHMgPz8gZGlzcGxheUNmZz8uZnJhY3Rpb25zTWF4XG4gICAgfTtcbn1cbiJdfQ==
@@ -1,13 +1,24 @@
1
1
  // components
2
- export * from './components/column-filter-full/column-filter-full.component';
2
+ export * from './components/column-filter/column-filter.component';
3
3
  export * from './components/column-value/column-value.component';
4
+ export * from './components/filter/filter-active-tag/filter-active-tag.component';
5
+ export * from './components/filter/filter-form/filter-form.component';
6
+ export * from './components/filter/filter-overlay-with-tag/filter-overlay-with-tag.component';
4
7
  export * from './components/table/table.component';
5
8
  // helpers
9
+ export * from './helpers/filters';
6
10
  export * from './helpers/notification';
7
11
  export * from './helpers/table-layout-prefs';
12
+ // models
13
+ export * from './models/column-preferences.model';
14
+ export * from './models/filter.model';
8
15
  // pipes
16
+ export * from './pipes/filter-value.pipe';
9
17
  export * from './pipes/locale-default-row-class.pipe';
10
18
  export * from './pipes/table-column-filter-class.pipe';
11
19
  // services
12
20
  export * from './services/data-list.service';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90YWJsZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsYUFBYTtBQUNiLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLG9DQUFvQyxDQUFDO0FBRW5ELFVBQVU7QUFDVixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsUUFBUTtBQUNSLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxXQUFXO0FBQ1gsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb2x1bW4tZmlsdGVyLWZ1bGwvY29sdW1uLWZpbHRlci1mdWxsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY29sdW1uLXZhbHVlL2NvbHVtbi12YWx1ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XG5cbi8vIGhlbHBlcnNcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycy9ub3RpZmljYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL3RhYmxlLWxheW91dC1wcmVmcyc7XG5cbi8vIHBpcGVzXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2xvY2FsZS1kZWZhdWx0LXJvdy1jbGFzcy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvdGFibGUtY29sdW1uLWZpbHRlci1jbGFzcy5waXBlJztcblxuLy8gc2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZGF0YS1saXN0LnNlcnZpY2UnO1xuIl19
21
+ export * from './services/table-feature-config.token';
22
+ // provide
23
+ export * from './provide';
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90YWJsZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsYUFBYTtBQUNiLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYywrRUFBK0UsQ0FBQztBQUM5RixjQUFjLG9DQUFvQyxDQUFDO0FBRW5ELFVBQVU7QUFDVixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQztBQUU3QyxTQUFTO0FBQ1QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLFFBQVE7QUFDUixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxXQUFXO0FBQ1gsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELFVBQVU7QUFDVixjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb2x1bW4tZmlsdGVyL2NvbHVtbi1maWx0ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb2x1bW4tdmFsdWUvY29sdW1uLXZhbHVlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci1hY3RpdmUtdGFnL2ZpbHRlci1hY3RpdmUtdGFnLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci1mb3JtL2ZpbHRlci1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci1vdmVybGF5LXdpdGgtdGFnL2ZpbHRlci1vdmVybGF5LXdpdGgtdGFnLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50JztcblxuLy8gaGVscGVyc1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL2ZpbHRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL25vdGlmaWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2hlbHBlcnMvdGFibGUtbGF5b3V0LXByZWZzJztcblxuLy8gbW9kZWxzXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9jb2x1bW4tcHJlZmVyZW5jZXMubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZmlsdGVyLm1vZGVsJztcblxuLy8gcGlwZXNcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZmlsdGVyLXZhbHVlLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9sb2NhbGUtZGVmYXVsdC1yb3ctY2xhc3MucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3RhYmxlLWNvbHVtbi1maWx0ZXItY2xhc3MucGlwZSc7XG5cbi8vIHNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2RhdGEtbGlzdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdGFibGUtZmVhdHVyZS1jb25maWcudG9rZW4nO1xuXG4vLyBwcm92aWRlXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGUnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGFibGUvc3JjL21vZGVscy9maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uc0ZpbHRlck1ldGFkYXRhLCBGaWx0ZXJNYXRjaE1vZGVFeHRlbmRlZFR5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0ZpbHRlckRlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvZmlsdGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBDb21tb25zRmlsdGVyTWV0YWRhdGFXaXRoRGVzY3JpcHRvciBleHRlbmRzIENvbW1vbnNGaWx0ZXJNZXRhZGF0YSB7XG4gICAgZGVzY3JpcHRvcjogRmlsdGVyRGVzY3JpcHRvcjxhbnksIGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRm9ybUVtaXRFdmVudCB7XG4gICAgcHJvcGVydHk6IHN0cmluZztcbiAgICBtYXRjaE1vZGU6IEZpbHRlck1hdGNoTW9kZUV4dGVuZGVkVHlwZTtcbiAgICB2YWx1ZT86IGFueSB8IG51bGwgfCBhbnlbXTtcbiAgICBjYXNlU2Vuc2l0aXZlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckFjdGl2ZVRhZ0V2ZW50IHtcbiAgICBmaWx0ZXI6IENvbW1vbnNGaWx0ZXJNZXRhZGF0YVdpdGhEZXNjcmlwdG9yO1xuICAgIGV2ZW50PzogRXZlbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRGF0ZUNvbmZpZyB7XG4gICAgdmFsdWVVdGM/OiBib29sZWFuO1xuICAgIHZhbHVlTm9UaW1lPzogYm9vbGVhbjtcbiAgICB2YWx1ZU5vVGltZXpvbmU/OiBib29sZWFuO1xuICAgIHZhbHVlTm9NaWxsaXM/OiBib29sZWFuO1xuICAgIGZvcm1hdD86IHN0cmluZztcbiAgICBzaG93VGltZT86IGJvb2xlYW47IC8vIGRhdGUsIGhvdXIgYW5kIG1pbnV0ZXNcbiAgICBzaG93U2Vjb25kcz86IGJvb2xlYW47IC8vIGRhdGUsIGhvdXIsIG1pbnV0ZXMgYW5kIHNlY29uZHNcbn1cbiJdfQ==
@@ -0,0 +1,77 @@
1
+ import { DatePipe, DecimalPipe } from '@angular/common';
2
+ import { LOCALE_ID, Pipe, inject } from '@angular/core';
3
+ import { TranslateService } from '@ngx-translate/core';
4
+ import { ReplaySubject } from 'rxjs';
5
+ import { BooleanPipe, EnumPipe } from '@mediusinc/mng-commons/core';
6
+ import { FilterTypeEnum } from '@mediusinc/mng-commons/filter';
7
+ import * as i0 from "@angular/core";
8
+ export class FilterValuePipe {
9
+ constructor() {
10
+ this.locale = inject(LOCALE_ID);
11
+ this.translate = inject(TranslateService);
12
+ this.enumPipe = new EnumPipe();
13
+ this.subject = new ReplaySubject(1);
14
+ }
15
+ transform(value, descriptor) {
16
+ const valTransform = this.prepareValueTransform(value, descriptor);
17
+ this.subscription?.unsubscribe();
18
+ if (valTransform.translate) {
19
+ this.subscription = this.translate.stream(valTransform.valueArr).subscribe(i18n => {
20
+ this.subject.next(valTransform.valueArr.map(k => i18n[k]).join(', '));
21
+ });
22
+ }
23
+ else {
24
+ this.subject.next(valTransform.valueArr.join(', '));
25
+ }
26
+ return this.subject.asObservable();
27
+ }
28
+ /**
29
+ * If returns a string, this represents i18n key that must go through translation. If translation is not needed, undefined is returned.
30
+ */
31
+ prepareValueTransform(value, descriptor) {
32
+ const result = {
33
+ translate: false,
34
+ valueArr: Array.isArray(value) ? value : [value]
35
+ };
36
+ switch (descriptor?.filterType) {
37
+ case FilterTypeEnum.Date:
38
+ // eslint-disable-next-line no-case-declarations
39
+ const datePipe = new DatePipe(this.locale);
40
+ result.valueArr = result.valueArr.map(v => datePipe.transform(v, descriptor.displayFormat, descriptor.locale));
41
+ break;
42
+ case FilterTypeEnum.Number:
43
+ // eslint-disable-next-line no-case-declarations
44
+ const decimalPipe = new DecimalPipe(this.locale);
45
+ result.valueArr = result.valueArr.map(v => decimalPipe.transform(v, descriptor.displayFormat, descriptor.locale));
46
+ break;
47
+ case FilterTypeEnum.Boolean:
48
+ // eslint-disable-next-line no-case-declarations
49
+ const booleanPipe = new BooleanPipe();
50
+ result.valueArr = result.valueArr.map(v => booleanPipe.transform(v));
51
+ result.translate = true;
52
+ break;
53
+ case FilterTypeEnum.LookupEnum:
54
+ // eslint-disable-next-line no-case-declarations
55
+ const enumPipe = new EnumPipe();
56
+ result.valueArr = result.valueArr.map(v => enumPipe.transform(v, descriptor.enum));
57
+ result.translate = true;
58
+ break;
59
+ }
60
+ return result;
61
+ }
62
+ ngOnDestroy() {
63
+ this.subscription?.unsubscribe();
64
+ this.subject.complete();
65
+ }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FilterValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
67
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.5", ngImport: i0, type: FilterValuePipe, isStandalone: true, name: "mngFilterValue" }); }
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FilterValuePipe, decorators: [{
70
+ type: Pipe,
71
+ args: [{
72
+ name: 'mngFilterValue',
73
+ standalone: true,
74
+ pure: true
75
+ }]
76
+ }] });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZhbHVlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90YWJsZS9zcmMvcGlwZXMvZmlsdGVyLXZhbHVlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsU0FBUyxFQUFhLElBQUksRUFBaUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBYSxhQUFhLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFFN0QsT0FBTyxFQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQStDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDOztBQU8zRyxNQUFNLE9BQU8sZUFBZTtJQUw1QjtRQU1xQixXQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNCLGNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNyQyxhQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUczQyxZQUFPLEdBQUcsSUFBSSxhQUFhLENBQU0sQ0FBQyxDQUFDLENBQUM7S0F5RHZDO0lBdkRHLFNBQVMsQ0FBQyxLQUFjLEVBQUUsVUFBdUM7UUFDN0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFD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QUFlOzRHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBTDNCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxJQUFJO2lCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRlUGlwZSwgRGVjaW1hbFBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0xPQ0FMRV9JRCwgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0Jvb2xlYW5QaXBlLCBFbnVtUGlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7RmlsdGVyRGVzY3JpcHRvciwgRmlsdGVyTG9va3VwRW51bURlc2NyaXB0b3IsIEZpbHRlclR5cGVFbnVtfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2ZpbHRlcic7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnbW5nRmlsdGVyVmFsdWUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHVyZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJWYWx1ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlID0gaW5qZWN0KExPQ0FMRV9JRCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbnVtUGlwZSA9IG5ldyBFbnVtUGlwZSgpO1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gICAgc3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oMSk7XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IHVua25vd24sIGRlc2NyaXB0b3I/OiBGaWx0ZXJEZXNjcmlwdG9yPGFueSwgYW55Pik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHZhbFRyYW5zZm9ybSA9IHRoaXMucHJlcGFyZVZhbHVlVHJhbnNmb3JtKHZhbHVlLCBkZXNjcmlwdG9yKTtcblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgaWYgKHZhbFRyYW5zZm9ybS50cmFuc2xhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGUuc3RyZWFtKHZhbFRyYW5zZm9ybS52YWx1ZUFycikuc3Vic2NyaWJlKGkxOG4gPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3ViamVjdC5uZXh0KHZhbFRyYW5zZm9ybS52YWx1ZUFyci5tYXAoayA9PiBpMThuW2tdKS5qb2luKCcsICcpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdWJqZWN0Lm5leHQodmFsVHJhbnNmb3JtLnZhbHVlQXJyLmpvaW4oJywgJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiByZXR1cm5zIGEgc3RyaW5nLCB0aGlzIHJlcHJlc2VudHMgaTE4biBrZXkgdGhhdCBtdXN0IGdvIHRocm91Z2ggdHJhbnNsYXRpb24uIElmIHRyYW5zbGF0aW9uIGlzIG5vdCBuZWVkZWQsIHVuZGVmaW5lZCBpcyByZXR1cm5lZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHByZXBhcmVWYWx1ZVRyYW5zZm9ybSh2YWx1ZTogdW5rbm93biwgZGVzY3JpcHRvcj86IEZpbHRlckRlc2NyaXB0b3I8YW55LCBhbnk+KToge3RyYW5zbGF0ZTogYm9vbGVhbjsgdmFsdWVBcnI6IGFueVtdfSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHRyYW5zbGF0ZTogZmFsc2UsXG4gICAgICAgICAgICB2YWx1ZUFycjogQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cbiAgICAgICAgfTtcbiAgICAgICAgc3dpdGNoIChkZXNjcmlwdG9yPy5maWx0ZXJUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZpbHRlclR5cGVFbnVtLkRhdGU6XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNhc2UtZGVjbGFyYXRpb25zXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZVBpcGUgPSBuZXcgRGF0ZVBpcGUodGhpcy5sb2NhbGUpO1xuICAgICAgICAgICAgICAgIHJlc3VsdC52YWx1ZUFyciA9IHJlc3VsdC52YWx1ZUFyci5tYXAodiA9PiBkYXRlUGlwZS50cmFuc2Zvcm0odiBhcyBEYXRlLCBkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXQsIGRlc2NyaXB0b3IubG9jYWxlKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpbHRlclR5cGVFbnVtLk51bWJlcjpcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY2FzZS1kZWNsYXJhdGlvbnNcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNpbWFsUGlwZSA9IG5ldyBEZWNpbWFsUGlwZSh0aGlzLmxvY2FsZSk7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnZhbHVlQXJyID0gcmVzdWx0LnZhbHVlQXJyLm1hcCh2ID0+IGRlY2ltYWxQaXBlLnRyYW5zZm9ybSh2IGFzIG51bWJlciwgZGVzY3JpcHRvci5kaXNwbGF5Rm9ybWF0LCBkZXNjcmlwdG9yLmxvY2FsZSkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlRW51bS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jYXNlLWRlY2xhcmF0aW9uc1xuICAgICAgICAgICAgICAgIGNvbnN0IGJvb2xlYW5QaXBlID0gbmV3IEJvb2xlYW5QaXBlKCk7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnZhbHVlQXJyID0gcmVzdWx0LnZhbHVlQXJyLm1hcCh2ID0+IGJvb2xlYW5QaXBlLnRyYW5zZm9ybSh2KSk7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnRyYW5zbGF0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpbHRlclR5cGVFbnVtLkxvb2t1cEVudW06XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNhc2UtZGVjbGFyYXRpb25zXG4gICAgICAgICAgICAgICAgY29uc3QgZW51bVBpcGUgPSBuZXcgRW51bVBpcGUoKTtcbiAgICAgICAgICAgICAgICByZXN1bHQudmFsdWVBcnIgPSByZXN1bHQudmFsdWVBcnIubWFwKHYgPT4gZW51bVBpcGUudHJhbnNmb3JtKHYsIChkZXNjcmlwdG9yIGFzIEZpbHRlckxvb2t1cEVudW1EZXNjcmlwdG9yPGFueSwgYW55PikuZW51bSkpO1xuICAgICAgICAgICAgICAgIHJlc3VsdC50cmFuc2xhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuc3ViamVjdC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { CommonsFeatureTypeEnum } from '@mediusinc/mng-commons/core';
2
+ import { COMMONS_TABLE_FEATURE_CONFIG_IT } from './services/table-feature-config.token';
3
+ /**
4
+ * Prepares providers for usage of the tableview functionalities.
5
+ *
6
+ * @returns {CommonsFeature} The `CommonsFeature` object with the layout configuration.
7
+ */
8
+ export function withTable(config) {
9
+ return {
10
+ type: CommonsFeatureTypeEnum.Table,
11
+ providers: [
12
+ {
13
+ provide: COMMONS_TABLE_FEATURE_CONFIG_IT,
14
+ useValue: config
15
+ }
16
+ ]
17
+ };
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RhYmxlL3NyYy9wcm92aWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsc0JBQXNCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRixPQUFPLEVBQUMsK0JBQStCLEVBQXFCLE1BQU0sdUNBQXVDLENBQUM7QUFFMUc7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsTUFBMkI7SUFDakQsT0FBTztRQUNILElBQUksRUFBRSxzQkFBc0IsQ0FBQyxLQUFLO1FBQ2xDLFNBQVMsRUFBRTtZQUNQO2dCQUNJLE9BQU8sRUFBRSwrQkFBK0I7Z0JBQ3hDLFFBQVEsRUFBRSxNQUFNO2FBQ25CO1NBQ0o7S0FDSixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uc0ZlYXR1cmUsIENvbW1vbnNGZWF0dXJlVHlwZUVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7Q09NTU9OU19UQUJMRV9GRUFUVVJFX0NPTkZJR19JVCwgVGFibGVGZWF0dXJlQ29uZmlnfSBmcm9tICcuL3NlcnZpY2VzL3RhYmxlLWZlYXR1cmUtY29uZmlnLnRva2VuJztcblxuLyoqXG4gKiBQcmVwYXJlcyBwcm92aWRlcnMgZm9yIHVzYWdlIG9mIHRoZSB0YWJsZXZpZXcgZnVuY3Rpb25hbGl0aWVzLlxuICpcbiAqIEByZXR1cm5zIHtDb21tb25zRmVhdHVyZX0gVGhlIGBDb21tb25zRmVhdHVyZWAgb2JqZWN0IHdpdGggdGhlIGxheW91dCBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aFRhYmxlKGNvbmZpZz86IFRhYmxlRmVhdHVyZUNvbmZpZyk6IENvbW1vbnNGZWF0dXJlIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBDb21tb25zRmVhdHVyZVR5cGVFbnVtLlRhYmxlLFxuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBDT01NT05TX1RBQkxFX0ZFQVRVUkVfQ09ORklHX0lULFxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBjb25maWdcbiAgICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgIH07XG59XG4iXX0=
@@ -26,4 +26,4 @@ export class DataListService {
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: DataListService, decorators: [{
27
27
  type: Injectable
28
28
  }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90YWJsZS9zcmMvc2VydmljZXMvZGF0YS1saXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBS2pELE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRUksYUFBYTtRQUNOLGFBQVEsR0FBRyxNQUFNLENBQW9CLElBQUksQ0FBQyxDQUFDO1FBQzNDLGVBQVUsR0FBRyxNQUFNLENBQWlDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQyxTQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQix1QkFBa0IsR0FBRyxNQUFNLENBQVcsRUFBRSxDQUFDLENBQUM7UUFFakQsT0FBTztRQUNDLFVBQUssR0FBRyxNQUFNLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDM0IsV0FBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixTQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNqQyxZQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBTWpDO0lBSlUsT0FBTyxDQUFDLElBQVksRUFBRSxLQUFjO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs4R0FuQlEsZUFBZTtrSEFBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0ZpbHRlck1ldGFkYXRhLCBTb3J0TWV0YX0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGF0YUxpc3RTZXJ2aWNlPEl0ZW0+IHtcbiAgICAvLyBwYWdpbmF0aW9uXG4gICAgcHVibGljIHNvcnRNZXRhID0gc2lnbmFsPFNvcnRNZXRhW10gfCBudWxsPihudWxsKTtcbiAgICBwdWJsaWMgZmlsdGVyTWV0YSA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBGaWx0ZXJNZXRhZGF0YT4+KHt9KTtcbiAgICBwdWJsaWMgcm93c1BlclBhZ2VPcHRpb25zID0gc2lnbmFsKFsyNSwgNTAsIDEwMF0pO1xuICAgIHB1YmxpYyByb3dzID0gc2lnbmFsKHRoaXMucm93c1BlclBhZ2VPcHRpb25zKClbMF0pO1xuICAgIHB1YmxpYyBvZmZzZXQgPSBzaWduYWwoMCk7XG4gICAgcHVibGljIGdsb2JhbEZpbHRlckZpZWxkcyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuXG4gICAgLy8gZGF0YVxuICAgIHByaXZhdGUgX2RhdGEgPSBzaWduYWw8SXRlbVtdPihbXSk7XG4gICAgcHJpdmF0ZSBfY291bnQgPSBzaWduYWwoMCk7XG4gICAgcHVibGljIGRhdGEgPSB0aGlzLl9kYXRhLmFzUmVhZG9ubHkoKTtcbiAgICBwdWJsaWMgY291bnQgPSB0aGlzLl9jb3VudC5hc1JlYWRvbmx5KCk7XG4gICAgcHVibGljIGxvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG5cbiAgICBwdWJsaWMgc2V0RGF0YShkYXRhOiBJdGVtW10sIGNvdW50PzogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2RhdGEuc2V0KFsuLi5kYXRhXSk7XG4gICAgICAgIHRoaXMuX2NvdW50LnNldChjb3VudCA/PyBkYXRhLmxlbmd0aCk7XG4gICAgfVxufVxuIl19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90YWJsZS9zcmMvc2VydmljZXMvZGF0YS1saXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBT2pELE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRUksYUFBYTtRQUNOLGFBQVEsR0FBRyxNQUFNLENBQW9CLElBQUksQ0FBQyxDQUFDO1FBQzNDLGVBQVUsR0FBRyxNQUFNLENBQXdDLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQyxTQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQix1QkFBa0IsR0FBRyxNQUFNLENBQVcsRUFBRSxDQUFDLENBQUM7UUFFakQsT0FBTztRQUNDLFVBQUssR0FBRyxNQUFNLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDM0IsV0FBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixTQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNqQyxZQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBTWpDO0lBSlUsT0FBTyxDQUFDLElBQVksRUFBRSxLQUFjO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs4R0FuQlEsZUFBZTtrSEFBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1NvcnRNZXRhfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7Q29tbW9uc0ZpbHRlck1ldGFkYXRhfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGF0YUxpc3RTZXJ2aWNlPEl0ZW0+IHtcbiAgICAvLyBwYWdpbmF0aW9uXG4gICAgcHVibGljIHNvcnRNZXRhID0gc2lnbmFsPFNvcnRNZXRhW10gfCBudWxsPihudWxsKTtcbiAgICBwdWJsaWMgZmlsdGVyTWV0YSA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBDb21tb25zRmlsdGVyTWV0YWRhdGE+Pih7fSk7XG4gICAgcHVibGljIHJvd3NQZXJQYWdlT3B0aW9ucyA9IHNpZ25hbChbMjUsIDUwLCAxMDBdKTtcbiAgICBwdWJsaWMgcm93cyA9IHNpZ25hbCh0aGlzLnJvd3NQZXJQYWdlT3B0aW9ucygpWzBdKTtcbiAgICBwdWJsaWMgb2Zmc2V0ID0gc2lnbmFsKDApO1xuICAgIHB1YmxpYyBnbG9iYWxGaWx0ZXJGaWVsZHMgPSBzaWduYWw8c3RyaW5nW10+KFtdKTtcblxuICAgIC8vIGRhdGFcbiAgICBwcml2YXRlIF9kYXRhID0gc2lnbmFsPEl0ZW1bXT4oW10pO1xuICAgIHByaXZhdGUgX2NvdW50ID0gc2lnbmFsKDApO1xuICAgIHB1YmxpYyBkYXRhID0gdGhpcy5fZGF0YS5hc1JlYWRvbmx5KCk7XG4gICAgcHVibGljIGNvdW50ID0gdGhpcy5fY291bnQuYXNSZWFkb25seSgpO1xuICAgIHB1YmxpYyBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuXG4gICAgcHVibGljIHNldERhdGEoZGF0YTogSXRlbVtdLCBjb3VudD86IG51bWJlcikge1xuICAgICAgICB0aGlzLl9kYXRhLnNldChbLi4uZGF0YV0pO1xuICAgICAgICB0aGlzLl9jb3VudC5zZXQoY291bnQgPz8gZGF0YS5sZW5ndGgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const COMMONS_TABLE_FEATURE_CONFIG_IT = new InjectionToken('COMMONS_TABLE_FEATURE_CONFIG');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmVhdHVyZS1jb25maWcudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90YWJsZS9zcmMvc2VydmljZXMvdGFibGUtZmVhdHVyZS1jb25maWcudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQVE3QyxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxJQUFJLGNBQWMsQ0FBcUIsOEJBQThCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0ZpbHRlckRpc3BsYXlUeXBlRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9maWx0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlRmVhdHVyZUNvbmZpZyB7XG4gICAgZmlsdGVyRGlzcGxheVR5cGU/OiBGaWx0ZXJEaXNwbGF5VHlwZUVudW07XG59XG5cbmV4cG9ydCBjb25zdCBDT01NT05TX1RBQkxFX0ZFQVRVUkVfQ09ORklHX0lUID0gbmV3IEluamVjdGlvblRva2VuPFRhYmxlRmVhdHVyZUNvbmZpZz4oJ0NPTU1PTlNfVEFCTEVfRkVBVFVSRV9DT05GSUcnKTtcbiJdfQ==