@mediusinc/mng-commons 0.14.0 → 0.14.1

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 (29) hide show
  1. package/assets/i18n/en.json +3 -2
  2. package/assets/i18n/sl.json +3 -2
  3. package/esm2020/lib/api/models/filter-param.model.mjs +1 -1
  4. package/esm2020/lib/api/utils/medius-rest.util.mjs +59 -6
  5. package/esm2020/lib/components/form/date-range/date-range.component.mjs +106 -0
  6. package/esm2020/lib/components/form/index.mjs +2 -1
  7. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +34 -22
  8. package/esm2020/lib/components/tableview/table/table.component.mjs +7 -2
  9. package/esm2020/lib/descriptors/column.descriptor.mjs +16 -1
  10. package/esm2020/lib/descriptors/filter.descriptor.mjs +20 -1
  11. package/esm2020/lib/mng-commons.module.mjs +5 -2
  12. package/esm2020/lib/services/commons.service.mjs +6 -5
  13. package/esm2020/lib/utils/date.util.mjs +118 -0
  14. package/esm2020/lib/utils/index.mjs +2 -1
  15. package/fesm2015/mediusinc-mng-commons.mjs +359 -33
  16. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  17. package/fesm2020/mediusinc-mng-commons.mjs +352 -31
  18. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  19. package/lib/api/models/filter-param.model.d.ts +2 -2
  20. package/lib/components/form/date-range/date-range.component.d.ts +28 -0
  21. package/lib/components/form/index.d.ts +1 -0
  22. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +13 -7
  23. package/lib/descriptors/filter.descriptor.d.ts +5 -0
  24. package/lib/mng-commons.module.d.ts +63 -62
  25. package/lib/services/commons.service.d.ts +3 -2
  26. package/lib/utils/date.util.d.ts +7 -0
  27. package/lib/utils/index.d.ts +1 -0
  28. package/package.json +1 -1
  29. package/version-info.json +5 -5
@@ -143,10 +143,11 @@
143
143
  "isNot": "Is not",
144
144
  "before": "Before",
145
145
  "after": "After",
146
- "dateIs": "Date is",
147
- "dateIsNot": "Date is not",
146
+ "dateIs": "Equals",
147
+ "dateIsNot": "Not equals",
148
148
  "dateBefore": "Date is before",
149
149
  "dateAfter": "Date is after",
150
+ "between": "From - to",
150
151
  "clear": "Clear",
151
152
  "apply": "Apply",
152
153
  "matchAll": "Match All",
@@ -143,10 +143,11 @@
143
143
  "isNot": "Ni",
144
144
  "before": "Pred",
145
145
  "after": "Po",
146
- "dateIs": "Datum je",
147
- "dateIsNot": "Datum ni",
146
+ "dateIs": "Je enako",
147
+ "dateIsNot": "Ni enako",
148
148
  "dateBefore": "Datum je pred",
149
149
  "dateAfter": "Datum je po",
150
+ "between": "Od - do",
150
151
  "clear": "Pobriši",
151
152
  "apply": "Potrdi",
152
153
  "matchAll": "Se ujemajo vsi",
@@ -30,4 +30,4 @@ MediusFilterParam.attributeTypeMap = [
30
30
  type: 'boolean'
31
31
  }
32
32
  ];
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXBhcmFtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9hcGkvbW9kZWxzL2ZpbHRlci1wYXJhbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQSxNQUFNLE9BQU8saUJBQWlCO0lBcUNuQixNQUFNLENBQUMsbUJBQW1CO1FBQzdCLE9BQU8saUJBQWlCLENBQUMsZ0JBQWdCLENBQUM7SUFDOUMsQ0FBQzs7QUE5QmEsa0NBQWdCLEdBQXdCO0lBQ2xEO1FBQ0ksSUFBSSxFQUFFLFVBQVU7UUFDaEIsUUFBUSxFQUFFLFVBQVU7UUFDcEIsSUFBSSxFQUFFLFFBQVE7S0FDakI7SUFDRDtRQUNJLElBQUksRUFBRSxhQUFhO1FBQ25CLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLElBQUksRUFBRSxRQUFRO0tBQ2pCO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsZUFBZTtRQUNyQixRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLElBQUksRUFBRSxRQUFRO0tBQ2pCO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsaUJBQWlCO1FBQ3ZCLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsSUFBSSxFQUFFLGlCQUFpQjtLQUMxQjtJQUNEO1FBQ0ksSUFBSSxFQUFFLDBCQUEwQjtRQUNoQyxRQUFRLEVBQUUsNkJBQTZCO1FBQ3ZDLElBQUksRUFBRSxTQUFTO0tBQ2xCO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBPcGVuYXBpIEdlbmVyYXRvciBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKVxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjBcbiAqXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKS5cbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5pbXBvcnQge01lZGl1c0ZpbHRlck1hdGNoVHlwZX0gZnJvbSAnLi9maWx0ZXItbWF0Y2gtdHlwZS5tb2RlbCc7XG5pbXBvcnQge0F0dHJpYnV0ZURlZn0gZnJvbSAnLi9zZXJpYWxpemF0aW9uLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIE1lZGl1c0ZpbHRlclBhcmFtIHtcbiAgICBwcm9wZXJ0eT86IHN0cmluZztcbiAgICBmaWx0ZXJWYWx1ZT86IG9iamVjdDtcbiAgICBmaWx0ZXJWYWx1ZVRvPzogb2JqZWN0O1xuICAgIGZpbHRlck1hdGNoVHlwZT86IE1lZGl1c0ZpbHRlck1hdGNoVHlwZTtcbiAgICBmaWx0ZXJNYXRjaENhc2VTZW5zaXRpdmU/OiBib29sZWFuO1xuXG4gICAgcHVibGljIHN0YXRpYyBkaXNjcmltaW5hdG9yPzogc3RyaW5nO1xuXG4gICAgcHVibGljIHN0YXRpYyBhdHRyaWJ1dGVUeXBlTWFwOiBBcnJheTxBdHRyaWJ1dGVEZWY+ID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAncHJvcGVydHknLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdwcm9wZXJ0eScsXG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZmlsdGVyVmFsdWUnLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdmaWx0ZXJfdmFsdWUnLFxuICAgICAgICAgICAgdHlwZTogJ29iamVjdCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2ZpbHRlclZhbHVlVG8nLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdmaWx0ZXJfdmFsdWVfdG8nLFxuICAgICAgICAgICAgdHlwZTogJ29iamVjdCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2ZpbHRlck1hdGNoVHlwZScsXG4gICAgICAgICAgICBiYXNlTmFtZTogJ2ZpbHRlcl9tYXRjaF90eXBlJyxcbiAgICAgICAgICAgIHR5cGU6ICdGaWx0ZXJNYXRjaFR5cGUnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdmaWx0ZXJNYXRjaENhc2VTZW5zaXRpdmUnLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdmaWx0ZXJfbWF0Y2hfY2FzZV9zZW5zaXRpdmUnLFxuICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nXG4gICAgICAgIH1cbiAgICBdO1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXRBdHRyaWJ1dGVUeXBlTWFwKCkge1xuICAgICAgICByZXR1cm4gTWVkaXVzRmlsdGVyUGFyYW0uYXR0cmlidXRlVHlwZU1hcDtcbiAgICB9XG59XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXBhcmFtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9hcGkvbW9kZWxzL2ZpbHRlci1wYXJhbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQSxNQUFNLE9BQU8saUJBQWlCO0lBcUNuQixNQUFNLENBQUMsbUJBQW1CO1FBQzdCLE9BQU8saUJBQWlCLENBQUMsZ0JBQWdCLENBQUM7SUFDOUMsQ0FBQzs7QUE5QmEsa0NBQWdCLEdBQXdCO0lBQ2xEO1FBQ0ksSUFBSSxFQUFFLFVBQVU7UUFDaEIsUUFBUSxFQUFFLFVBQVU7UUFDcEIsSUFBSSxFQUFFLFFBQVE7S0FDakI7SUFDRDtRQUNJLElBQUksRUFBRSxhQUFhO1FBQ25CLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLElBQUksRUFBRSxRQUFRO0tBQ2pCO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsZUFBZTtRQUNyQixRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLElBQUksRUFBRSxRQUFRO0tBQ2pCO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsaUJBQWlCO1FBQ3ZCLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsSUFBSSxFQUFFLGlCQUFpQjtLQUMxQjtJQUNEO1FBQ0ksSUFBSSxFQUFFLDBCQUEwQjtRQUNoQyxRQUFRLEVBQUUsNkJBQTZCO1FBQ3ZDLElBQUksRUFBRSxTQUFTO0tBQ2xCO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBPcGVuYXBpIEdlbmVyYXRvciBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKVxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjBcbiAqXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKS5cbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5pbXBvcnQge01lZGl1c0ZpbHRlck1hdGNoVHlwZX0gZnJvbSAnLi9maWx0ZXItbWF0Y2gtdHlwZS5tb2RlbCc7XG5pbXBvcnQge0F0dHJpYnV0ZURlZn0gZnJvbSAnLi9zZXJpYWxpemF0aW9uLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIE1lZGl1c0ZpbHRlclBhcmFtIHtcbiAgICBwcm9wZXJ0eT86IHN0cmluZztcbiAgICBmaWx0ZXJWYWx1ZT86IGFueTtcbiAgICBmaWx0ZXJWYWx1ZVRvPzogYW55O1xuICAgIGZpbHRlck1hdGNoVHlwZT86IE1lZGl1c0ZpbHRlck1hdGNoVHlwZTtcbiAgICBmaWx0ZXJNYXRjaENhc2VTZW5zaXRpdmU/OiBib29sZWFuO1xuXG4gICAgcHVibGljIHN0YXRpYyBkaXNjcmltaW5hdG9yPzogc3RyaW5nO1xuXG4gICAgcHVibGljIHN0YXRpYyBhdHRyaWJ1dGVUeXBlTWFwOiBBcnJheTxBdHRyaWJ1dGVEZWY+ID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAncHJvcGVydHknLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdwcm9wZXJ0eScsXG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZmlsdGVyVmFsdWUnLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdmaWx0ZXJfdmFsdWUnLFxuICAgICAgICAgICAgdHlwZTogJ29iamVjdCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2ZpbHRlclZhbHVlVG8nLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdmaWx0ZXJfdmFsdWVfdG8nLFxuICAgICAgICAgICAgdHlwZTogJ29iamVjdCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2ZpbHRlck1hdGNoVHlwZScsXG4gICAgICAgICAgICBiYXNlTmFtZTogJ2ZpbHRlcl9tYXRjaF90eXBlJyxcbiAgICAgICAgICAgIHR5cGU6ICdGaWx0ZXJNYXRjaFR5cGUnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdmaWx0ZXJNYXRjaENhc2VTZW5zaXRpdmUnLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdmaWx0ZXJfbWF0Y2hfY2FzZV9zZW5zaXRpdmUnLFxuICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nXG4gICAgICAgIH1cbiAgICBdO1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXRBdHRyaWJ1dGVUeXBlTWFwKCkge1xuICAgICAgICByZXR1cm4gTWVkaXVzRmlsdGVyUGFyYW0uYXR0cmlidXRlVHlwZU1hcDtcbiAgICB9XG59XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  import { FilterMatchMode } from 'primeng/api';
2
2
  import { FilterTypeEnum } from '../../descriptors/types';
3
+ import { DateUtil } from '../../utils';
3
4
  import { MediusFilterMatchType, MediusQueryParamBuilder } from '../models';
4
5
  export class MediusRestUtil {
5
6
  static fromAngularQueryParamsToMediusQueryParams(params, filterDescriptors, defaultItemsPerPage = 10, defaultOffset = 0) {
@@ -22,7 +23,7 @@ export class MediusRestUtil {
22
23
  const operator = filterFieldSplit.length > 1 ? filterFieldSplit[1] : 'eq';
23
24
  // prepare value
24
25
  let value = filterFieldSplit.length > 2 ? filterFieldSplit.slice(2).join(':') : '';
25
- const valueTo = undefined;
26
+ let valueTo = undefined;
26
27
  if (value.startsWith("'")) {
27
28
  value = value.substring(1, value.length - 1);
28
29
  }
@@ -32,6 +33,10 @@ export class MediusRestUtil {
32
33
  .split(',')
33
34
  .map((v) => (v.startsWith("'") ? v.substring(1, v.length - 1) : v));
34
35
  }
36
+ if (operator === 'ft') {
37
+ valueTo = value[1];
38
+ value = value[0];
39
+ }
35
40
  const filterDescriptor = filterDescriptors.find(f => f.property === field);
36
41
  const matchMode = MediusRestUtil.getMapping(operator, filterDescriptor?.filterType, 1);
37
42
  if (matchMode && filterDescriptor) {
@@ -54,7 +59,7 @@ export class MediusRestUtil {
54
59
  if (event.rows && event.rows !== defaultItemsPerPage && event.rows > 0) {
55
60
  params['rows'] = event.rows;
56
61
  }
57
- if (event.multiSortMeta?.length ?? 0 > 0) {
62
+ if (event.multiSortMeta?.length) {
58
63
  params['sort'] = event.multiSortMeta?.map(s => `${s.field}${s.order === 1 ? '' : ':desc'}`).join(',');
59
64
  }
60
65
  if (event.filters) {
@@ -73,11 +78,21 @@ export class MediusRestUtil {
73
78
  doAddFilter = true;
74
79
  }
75
80
  else if (Array.isArray(value)) {
76
- value = `[${value.map(v => `'${v}'`).join(',')}]`;
81
+ const joinedValue = value
82
+ .map(v => {
83
+ if (v instanceof Date) {
84
+ // for query params, always convert to iso string, correct transformation will be done later
85
+ return v.toISOString();
86
+ }
87
+ return v;
88
+ })
89
+ .join(',');
90
+ value = `[${joinedValue}]`;
77
91
  doAddFilter = true;
78
92
  }
79
93
  else if (value instanceof Date) {
80
- value = `${value.toISOString()}`;
94
+ // for query params, always convert to iso string, correct transformation will be done later
95
+ value = value.toISOString();
81
96
  doAddFilter = true;
82
97
  }
83
98
  if (doAddFilter) {
@@ -95,6 +110,43 @@ export class MediusRestUtil {
95
110
  for (const filterParam of mediusQueryParams.filterParams ?? []) {
96
111
  const filterDescriptor = filterDescriptors.find(f => f.property === filterParam.property);
97
112
  filterParam.property = filterDescriptor?.filterProperty ?? filterParam.property;
113
+ if (filterDescriptor?.filterType === FilterTypeEnum.Date) {
114
+ if (filterParam.filterMatchType === MediusFilterMatchType.Equals) {
115
+ // convert date equals filter to date range
116
+ const filterDate = filterParam.filterValue;
117
+ const startDate = new Date(filterDate);
118
+ const endDate = new Date(startDate);
119
+ if (filterDescriptor.datePickerShowTime) {
120
+ startDate.setHours(startDate.getHours(), startDate.getMinutes(), 0, 0);
121
+ endDate.setHours(endDate.getHours(), endDate.getMinutes() + 1, 0, 0);
122
+ }
123
+ else {
124
+ startDate.setHours(0, 0, 0, 0);
125
+ endDate.setHours(0, 0, 0, 0);
126
+ endDate.setDate(endDate.getDate() + 1);
127
+ }
128
+ filterParam.filterMatchType = MediusFilterMatchType.FromTo;
129
+ filterParam.filterValue = startDate;
130
+ filterParam.filterValueTo = endDate;
131
+ }
132
+ // transform dates to correct iso string
133
+ if (typeof filterParam.filterValue !== 'undefined') {
134
+ if (Array.isArray(filterParam.filterValue)) {
135
+ filterParam.filterValue = filterParam.filterValue.map(v => DateUtil.toIsoString(v, filterDescriptor.datePickerValueInUtc, filterDescriptor.datePickerValueWithTimezone));
136
+ }
137
+ else {
138
+ filterParam.filterValue = DateUtil.toIsoString(filterParam.filterValue, filterDescriptor.datePickerValueInUtc, filterDescriptor.datePickerValueWithTimezone);
139
+ }
140
+ }
141
+ if (typeof filterParam.filterValueTo !== 'undefined') {
142
+ if (Array.isArray(filterParam.filterValueTo)) {
143
+ filterParam.filterValueTo = filterParam.filterValueTo.map(v => DateUtil.toIsoString(v, filterDescriptor.datePickerValueInUtc, filterDescriptor.datePickerValueWithTimezone));
144
+ }
145
+ else {
146
+ filterParam.filterValueTo = DateUtil.toIsoString(filterParam.filterValueTo, filterDescriptor.datePickerValueInUtc, filterDescriptor.datePickerValueWithTimezone);
147
+ }
148
+ }
149
+ }
98
150
  }
99
151
  }
100
152
  static fromPrimeLazyLoadEventToMediusQueryParams(event) {
@@ -149,9 +201,10 @@ MediusRestUtil.matchModeMapping = [
149
201
  [FilterMatchMode.STARTS_WITH, 'sw', MediusFilterMatchType.StartsWith, null],
150
202
  [FilterMatchMode.IN, 'in', MediusFilterMatchType.In, null],
151
203
  [FilterMatchMode.NOT_EQUALS, 'neq', MediusFilterMatchType.NotEquals, null],
152
- [FilterMatchMode.DATE_IS, 'eq', MediusFilterMatchType.Equals, FilterTypeEnum.Date],
204
+ [FilterMatchMode.BETWEEN, 'ft', MediusFilterMatchType.FromTo, FilterTypeEnum.Date],
205
+ [FilterMatchMode.DATE_IS, 'dteq', MediusFilterMatchType.Equals, FilterTypeEnum.Date],
153
206
  [FilterMatchMode.DATE_BEFORE, 'lt', MediusFilterMatchType.SmallerThan, FilterTypeEnum.Date],
154
207
  [FilterMatchMode.DATE_AFTER, 'gt', MediusFilterMatchType.GreaterThan, FilterTypeEnum.Date],
155
208
  [FilterMatchMode.DATE_IS_NOT, 'neq', MediusFilterMatchType.NotEquals, FilterTypeEnum.Date]
156
209
  ];
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzLXJlc3QudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvYXBpL3V0aWxzL21lZGl1cy1yZXN0LnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLGVBQWUsRUFBZ0MsTUFBTSxhQUFhLENBQUM7QUFHM0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBQyxxQkFBcUIsRUFBb0IsdUJBQXVCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFM0YsTUFBTSxPQUFPLGNBQWM7SUFpQmhCLE1BQU0sQ0FBQyx5Q0FBeUMsQ0FDbkQsTUFBYyxFQUNkLGlCQUErQyxFQUMvQyxtQkFBbUIsR0FBRyxFQUFFLEVBQ3hCLGFBQWEsR0FBRyxDQUFDO1FBRWpCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDM0UsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1FBRXJGLE1BQU0sbUJBQW1CLEdBQUcsdUJBQXVCLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVqRixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoQixLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzFDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0IsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDckUsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQzthQUM1QztTQUNKO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRCxLQUFLLE1BQU0sV0FBVyxJQUFJLFdBQVcsRUFBRTtnQkFDbkMsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRCxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEMsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFFMUUsZ0JBQWdCO2dCQUNoQixJQUFJLEtBQUssR0FBUSxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hGLE1BQU0sT0FBTyxHQUFRLFNBQVMsQ0FBQztnQkFDL0IsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUN2QixLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDaEQ7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzlDLEtBQUssR0FBRyxLQUFLO3lCQUNSLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7eUJBQzlCLEtBQUssQ0FBQyxHQUFHLENBQUM7eUJBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ25GO2dCQUVELE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUMsQ0FBQztnQkFDM0UsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN2RixJQUFJLFNBQVMsSUFBSSxnQkFBZ0IsRUFBRTtvQkFDL0IsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGNBQWMsQ0FBQywwQ0FBMEMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN0SjthQUNKO1NBQ0o7UUFFRCxPQUFPLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxNQUFNLENBQUMsMENBQTBDLENBQUMsS0FBb0IsRUFBRSxtQkFBbUIsR0FBRyxFQUFFLEVBQUUsYUFBYSxHQUFHLENBQUM7UUFDdEgsTUFBTSxNQUFNLEdBQVc7WUFDbkIsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsSUFBSTtZQUNWLElBQUksRUFBRSxJQUFJO1lBQ1YsTUFBTSxFQUFFLElBQUk7U0FDZixDQUFDO1FBRUYsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssYUFBYSxJQUFJLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ2pFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssbUJBQW1CLElBQUksS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDcEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FDL0I7UUFFRCxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pHO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ2YsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ25CLEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtnQkFDL0IsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3JELElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN2QyxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUMzRyxJQUFJLGVBQWUsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtvQkFDbkUsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO29CQUN4QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDL0MsS0FBSyxHQUFHLElBQUksS0FBSyxHQUFHLENBQUM7d0JBQ3JCLFdBQVcsR0FBRyxJQUFJLENBQUM7cUJBQ3RCO3lCQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO3dCQUNsQyxXQUFXLEdBQUcsSUFBSSxDQUFDO3FCQUN0Qjt5QkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQzdCLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7d0JBQ2xELFdBQVcsR0FBRyxJQUFJLENBQUM7cUJBQ3RCO3lCQUFNLElBQUksS0FBSyxZQUFZLElBQUksRUFBRTt3QkFDOUIsS0FBSyxHQUFHLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7d0JBQ2pDLFdBQVcsR0FBRyxJQUFJLENBQUM7cUJBQ3RCO29CQUVELElBQUksV0FBVyxFQUFFO3dCQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7cUJBQzNEO2lCQUNKO2FBQ0o7WUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNwQixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN4QztTQUNKO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBbUMsRUFBRSxpQkFBK0M7UUFDckgsS0FBSyxNQUFNLFdBQVcsSUFBSSxpQkFBaUIsQ0FBQyxZQUFZLElBQUksRUFBRSxFQUFFO1lBQzVELE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUYsV0FBVyxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsRUFBRSxjQUFjLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQztTQUNuRjtJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMseUNBQXlDLENBQUMsS0FBb0I7UUFDeEUsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEYsZ0JBQWdCO1FBQ2hCLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUNyQixLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5RjtRQUVELGtCQUFrQjtRQUNsQixJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDZixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMxQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQzNCLFdBQWdDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxzQ0FBc0MsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDeko7cUJBQU0sSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUU7b0JBQ3hDLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRTt3QkFDbkIsY0FBYyxDQUFDLHNDQUFzQyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztxQkFDOUY7aUJBQ0o7YUFDSjtTQUNKO1FBRUQsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sTUFBTSxDQUFDLHNDQUFzQyxDQUFDLGlCQUEwQyxFQUFFLFFBQWdCLEVBQUUsY0FBOEI7UUFDN0ksTUFBTSxTQUFTLEdBQTBCLGNBQWMsQ0FBQywwQ0FBMEMsQ0FBQyxjQUFjLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxDQUFDO1FBQ3pJLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVNLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxTQUFpQixFQUFFLFFBQXlCO1FBQ2pHLE9BQU8sY0FBYyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7SUFDL0YsQ0FBQztJQUVNLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBaUIsRUFBRSxRQUF5QixFQUFFLEdBQUcsR0FBRyxDQUFDO1FBQzFFLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEksSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQztTQUNmO2FBQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM5QixPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0QjthQUFNO1lBQ0gsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEU7SUFDTCxDQUFDOztBQXpLRCxpRUFBaUU7QUFDekMsK0JBQWdCLEdBQTRCO0lBQ2hFLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUscUJBQXFCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztJQUNyRSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7SUFDdkUsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO0lBQ2xFLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUscUJBQXFCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQztJQUM3RSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUM7SUFDMUUsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDO0lBQzNFLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQztJQUMxRCxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUM7SUFDMUUsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQztJQUNsRixDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDO0lBQzNGLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFDMUYsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQztDQUM3RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7RmlsdGVyTWF0Y2hNb2RlLCBGaWx0ZXJNZXRhZGF0YSwgTGF6eUxvYWRFdmVudH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQge0ZpbHRlckRlc2NyaXB0b3J9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzJztcbmltcG9ydCB7RmlsdGVyVHlwZUVudW19IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzL3R5cGVzJztcbmltcG9ydCB7TWF0Y2hNb2RlTWFwVHlwZX0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHtNZWRpdXNGaWx0ZXJNYXRjaFR5cGUsIE1lZGl1c1F1ZXJ5UGFyYW0sIE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgY2xhc3MgTWVkaXVzUmVzdFV0aWwge1xuICAgIC8vIGZpcnN0IHZhbHVlIGlzIGZyb20gcHJpbWVORywgc2Vjb25kIGlzIGZvciB1c2UgaW4gcXVlcnkgcGFyYW1zXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgbWF0Y2hNb2RlTWFwcGluZzogQXJyYXk8TWF0Y2hNb2RlTWFwVHlwZT4gPSBbXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuQ09OVEFJTlMsICdjJywgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkNvbnRhaW5zLCBudWxsXSxcbiAgICAgICAgW0ZpbHRlck1hdGNoTW9kZS5FTkRTX1dJVEgsICdldycsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5FbmRzV2l0aCwgbnVsbF0sXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuRVFVQUxTLCAnZXEnLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuRXF1YWxzLCBudWxsXSxcbiAgICAgICAgW0ZpbHRlck1hdGNoTW9kZS5HUkVBVEVSX1RIQU4sICdndCcsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5HcmVhdGVyVGhhbiwgbnVsbF0sXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuTEVTU19USEFOLCAnbHQnLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuU21hbGxlclRoYW4sIG51bGxdLFxuICAgICAgICBbRmlsdGVyTWF0Y2hNb2RlLlNUQVJUU19XSVRILCAnc3cnLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuU3RhcnRzV2l0aCwgbnVsbF0sXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuSU4sICdpbicsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5JbiwgbnVsbF0sXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuTk9UX0VRVUFMUywgJ25lcScsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5Ob3RFcXVhbHMsIG51bGxdLFxuICAgICAgICBbRmlsdGVyTWF0Y2hNb2RlLkRBVEVfSVMsICdlcScsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5FcXVhbHMsIEZpbHRlclR5cGVFbnVtLkRhdGVdLFxuICAgICAgICBbRmlsdGVyTWF0Y2hNb2RlLkRBVEVfQkVGT1JFLCAnbHQnLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuU21hbGxlclRoYW4sIEZpbHRlclR5cGVFbnVtLkRhdGVdLFxuICAgICAgICBbRmlsdGVyTWF0Y2hNb2RlLkRBVEVfQUZURVIsICdndCcsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5HcmVhdGVyVGhhbiwgRmlsdGVyVHlwZUVudW0uRGF0ZV0sXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuREFURV9JU19OT1QsICduZXEnLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuTm90RXF1YWxzLCBGaWx0ZXJUeXBlRW51bS5EYXRlXVxuICAgIF07XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21Bbmd1bGFyUXVlcnlQYXJhbXNUb01lZGl1c1F1ZXJ5UGFyYW1zKFxuICAgICAgICBwYXJhbXM6IFBhcmFtcyxcbiAgICAgICAgZmlsdGVyRGVzY3JpcHRvcnM6IEFycmF5PEZpbHRlckRlc2NyaXB0b3I8YW55Pj4sXG4gICAgICAgIGRlZmF1bHRJdGVtc1BlclBhZ2UgPSAxMCxcbiAgICAgICAgZGVmYXVsdE9mZnNldCA9IDBcbiAgICApOiBNZWRpdXNRdWVyeVBhcmFtIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gcGFyYW1zWydmaXJzdCddID8gcGFyc2VJbnQocGFyYW1zWydmaXJzdCddKSA6IGRlZmF1bHRPZmZzZXQ7XG4gICAgICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IHBhcmFtc1sncm93cyddID8gcGFyc2VJbnQocGFyYW1zWydyb3dzJ10pIDogZGVmYXVsdEl0ZW1zUGVyUGFnZTtcblxuICAgICAgICBjb25zdCBtZWRpdXNQYXJhbXNCdWlsZGVyID0gTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlKGl0ZW1zUGVyUGFnZSwgb2Zmc2V0KTtcblxuICAgICAgICBpZiAocGFyYW1zWydzb3J0J10pIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc29ydCBvZiBwYXJhbXNbJ3NvcnQnXS5zcGxpdCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcXBTb3J0U3BsaXQgPSBzb3J0LnNwbGl0KCc6Jyk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBxcFNvcnRTcGxpdFswXTtcbiAgICAgICAgICAgICAgICBjb25zdCBhc2MgPSBxcFNvcnRTcGxpdC5sZW5ndGggPiAxID8gcXBTb3J0U3BsaXRbMV0gPT09ICdhc2MnIDogdHJ1ZTtcbiAgICAgICAgICAgICAgICBtZWRpdXNQYXJhbXNCdWlsZGVyLndpdGhTb3J0KGZpZWxkLCBhc2MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJhbXNbJ2ZpbHRlciddKSB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJTcGxpdCA9IHBhcmFtc1snZmlsdGVyJ10uc3BsaXQoJzsnKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmlsdGVyRmllbGQgb2YgZmlsdGVyU3BsaXQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJGaWVsZFNwbGl0ID0gZmlsdGVyRmllbGQuc3BsaXQoJzonKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IGZpbHRlckZpZWxkU3BsaXRbMF07XG4gICAgICAgICAgICAgICAgY29uc3Qgb3BlcmF0b3IgPSBmaWx0ZXJGaWVsZFNwbGl0Lmxlbmd0aCA+IDEgPyBmaWx0ZXJGaWVsZFNwbGl0WzFdIDogJ2VxJztcblxuICAgICAgICAgICAgICAgIC8vIHByZXBhcmUgdmFsdWVcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWU6IGFueSA9IGZpbHRlckZpZWxkU3BsaXQubGVuZ3RoID4gMiA/IGZpbHRlckZpZWxkU3BsaXQuc2xpY2UoMikuam9pbignOicpIDogJyc7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVUbzogYW55ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKFwiJ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygxLCB2YWx1ZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJ1snKSAmJiB2YWx1ZS5lbmRzV2l0aCgnXScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzdHJpbmcoMSwgdmFsdWUubGVuZ3RoIC0gMSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKCh2OiBzdHJpbmcpID0+ICh2LnN0YXJ0c1dpdGgoXCInXCIpID8gdi5zdWJzdHJpbmcoMSwgdi5sZW5ndGggLSAxKSA6IHYpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJEZXNjcmlwdG9yID0gZmlsdGVyRGVzY3JpcHRvcnMuZmluZChmID0+IGYucHJvcGVydHkgPT09IGZpZWxkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaE1vZGUgPSBNZWRpdXNSZXN0VXRpbC5nZXRNYXBwaW5nKG9wZXJhdG9yLCBmaWx0ZXJEZXNjcmlwdG9yPy5maWx0ZXJUeXBlLCAxKTtcbiAgICAgICAgICAgICAgICBpZiAobWF0Y2hNb2RlICYmIGZpbHRlckRlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgbWVkaXVzUGFyYW1zQnVpbGRlci53aXRoRmlsdGVyKGZpbHRlckRlc2NyaXB0b3IucHJvcGVydHksIHZhbHVlLCB2YWx1ZVRvLCBNZWRpdXNSZXN0VXRpbC5nZXRNZWRpdXNGaWx0ZXJNYXRjaFR5cGVGcm9tUHJpbWVNYXRjaE1vZGUobWF0Y2hNb2RlWzBdKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1lZGl1c1BhcmFtc0J1aWxkZXIuYnVpbGQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21QcmltZUxhenlMb2FkRXZlbnRUb0FuZ3VsYXJRdWVyeVBhcmFtcyhldmVudDogTGF6eUxvYWRFdmVudCwgZGVmYXVsdEl0ZW1zUGVyUGFnZSA9IDEwLCBkZWZhdWx0T2Zmc2V0ID0gMCk6IFBhcmFtcyB7XG4gICAgICAgIGNvbnN0IHBhcmFtczogUGFyYW1zID0ge1xuICAgICAgICAgICAgZmlyc3Q6IG51bGwsXG4gICAgICAgICAgICByb3dzOiBudWxsLFxuICAgICAgICAgICAgc29ydDogbnVsbCxcbiAgICAgICAgICAgIGZpbHRlcjogbnVsbFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChldmVudC5maXJzdCAmJiBldmVudC5maXJzdCAhPT0gZGVmYXVsdE9mZnNldCAmJiBldmVudC5maXJzdCA+IDApIHtcbiAgICAgICAgICAgIHBhcmFtc1snZmlyc3QnXSA9IGV2ZW50LmZpcnN0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5yb3dzICYmIGV2ZW50LnJvd3MgIT09IGRlZmF1bHRJdGVtc1BlclBhZ2UgJiYgZXZlbnQucm93cyA+IDApIHtcbiAgICAgICAgICAgIHBhcmFtc1sncm93cyddID0gZXZlbnQucm93cztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5tdWx0aVNvcnRNZXRhPy5sZW5ndGggPz8gMCA+IDApIHtcbiAgICAgICAgICAgIHBhcmFtc1snc29ydCddID0gZXZlbnQubXVsdGlTb3J0TWV0YT8ubWFwKHMgPT4gYCR7cy5maWVsZH0ke3Mub3JkZXIgPT09IDEgPyAnJyA6ICc6ZGVzYyd9YCkuam9pbignLCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LmZpbHRlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgaW4gZXZlbnQuZmlsdGVycykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByaW1lT3BlcmF0b3IgPSBldmVudC5maWx0ZXJzW2ZpZWxkXS5tYXRjaE1vZGU7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gZXZlbnQuZmlsdGVyc1tmaWVsZF0udmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3BlcmF0b3JNYXBwaW5nID0gcHJpbWVPcGVyYXRvciA/IE1lZGl1c1Jlc3RVdGlsLmdldE1hcHBpbmcocHJpbWVPcGVyYXRvciwgdW5kZWZpbmVkLCAwKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBpZiAob3BlcmF0b3JNYXBwaW5nICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRvQWRkRmlsdGVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gYCcke3ZhbHVlfSdgO1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9BZGRGaWx0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvQWRkRmlsdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBgWyR7dmFsdWUubWFwKHYgPT4gYCcke3Z9J2ApLmpvaW4oJywnKX1dYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvQWRkRmlsdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gYCR7dmFsdWUudG9JU09TdHJpbmcoKX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9BZGRGaWx0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGRvQWRkRmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzLnB1c2goYCR7ZmllbGR9OiR7b3BlcmF0b3JNYXBwaW5nWzFdfToke3ZhbHVlfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHBhcmFtc1snZmlsdGVyJ10gPSBmaWx0ZXJzLmpvaW4oJzsnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBtb2RpZnlGaWx0ZXJQcm9wZXJ0aWVzKG1lZGl1c1F1ZXJ5UGFyYW1zOiBNZWRpdXNRdWVyeVBhcmFtLCBmaWx0ZXJEZXNjcmlwdG9yczogQXJyYXk8RmlsdGVyRGVzY3JpcHRvcjxhbnk+Pikge1xuICAgICAgICBmb3IgKGNvbnN0IGZpbHRlclBhcmFtIG9mIG1lZGl1c1F1ZXJ5UGFyYW1zLmZpbHRlclBhcmFtcyA/PyBbXSkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyRGVzY3JpcHRvciA9IGZpbHRlckRlc2NyaXB0b3JzLmZpbmQoZiA9PiBmLnByb3BlcnR5ID09PSBmaWx0ZXJQYXJhbS5wcm9wZXJ0eSk7XG4gICAgICAgICAgICBmaWx0ZXJQYXJhbS5wcm9wZXJ0eSA9IGZpbHRlckRlc2NyaXB0b3I/LmZpbHRlclByb3BlcnR5ID8/IGZpbHRlclBhcmFtLnByb3BlcnR5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tUHJpbWVMYXp5TG9hZEV2ZW50VG9NZWRpdXNRdWVyeVBhcmFtcyhldmVudDogTGF6eUxvYWRFdmVudCk6IE1lZGl1c1F1ZXJ5UGFyYW0ge1xuICAgICAgICBjb25zdCBxdWVyeVBhcmFtQnVpbGRlciA9IE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLmNyZWF0ZShldmVudC5yb3dzLCBldmVudC5maXJzdCk7XG5cbiAgICAgICAgLy8gYXBwbHkgc29ydGluZ1xuICAgICAgICBpZiAoZXZlbnQubXVsdGlTb3J0TWV0YSkge1xuICAgICAgICAgICAgZXZlbnQubXVsdGlTb3J0TWV0YS5mb3JFYWNoKG1zbSA9PiBxdWVyeVBhcmFtQnVpbGRlci53aXRoU29ydChtc20uZmllbGQsIG1zbS5vcmRlciA9PT0gMSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYXBwbHkgZmlsdGVyaW5nXG4gICAgICAgIGlmIChldmVudC5maWx0ZXJzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhldmVudC5maWx0ZXJzKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckV2ZW50ID0gZXZlbnQuZmlsdGVyc1trZXldO1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlckV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAoZmlsdGVyRXZlbnQgYXMgRmlsdGVyTWV0YWRhdGFbXSkuZmlsdGVyKGUgPT4gZS52YWx1ZSkuZm9yRWFjaChlID0+IE1lZGl1c1Jlc3RVdGlsLmFkZE1lZGl1c0ZpbHRlckZyb21QcmltZUZpbHRlck1ldGFkYXRhKHF1ZXJ5UGFyYW1CdWlsZGVyLCBrZXksIGUpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBmaWx0ZXJFdmVudCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlckV2ZW50LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBNZWRpdXNSZXN0VXRpbC5hZGRNZWRpdXNGaWx0ZXJGcm9tUHJpbWVGaWx0ZXJNZXRhZGF0YShxdWVyeVBhcmFtQnVpbGRlciwga2V5LCBmaWx0ZXJFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcXVlcnlQYXJhbUJ1aWxkZXIuYnVpbGQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFkZE1lZGl1c0ZpbHRlckZyb21QcmltZUZpbHRlck1ldGFkYXRhKHF1ZXJ5UGFyYW1CdWlsZGVyOiBNZWRpdXNRdWVyeVBhcmFtQnVpbGRlciwgcHJvcGVydHk6IHN0cmluZywgZmlsdGVyTWV0YWRhdGE6IEZpbHRlck1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoVHlwZTogTWVkaXVzRmlsdGVyTWF0Y2hUeXBlID0gTWVkaXVzUmVzdFV0aWwuZ2V0TWVkaXVzRmlsdGVyTWF0Y2hUeXBlRnJvbVByaW1lTWF0Y2hNb2RlKGZpbHRlck1ldGFkYXRhLm1hdGNoTW9kZSA/PyAnZXF1YWxzJyk7XG4gICAgICAgIHF1ZXJ5UGFyYW1CdWlsZGVyLndpdGhGaWx0ZXIocHJvcGVydHksIGZpbHRlck1ldGFkYXRhLnZhbHVlLCB1bmRlZmluZWQsIG1hdGNoVHlwZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRNZWRpdXNGaWx0ZXJNYXRjaFR5cGVGcm9tUHJpbWVNYXRjaE1vZGUobWF0Y2hNb2RlOiBzdHJpbmcsIGRhdGFUeXBlPzogRmlsdGVyVHlwZUVudW0pOiBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUge1xuICAgICAgICByZXR1cm4gTWVkaXVzUmVzdFV0aWwuZ2V0TWFwcGluZyhtYXRjaE1vZGUsIGRhdGFUeXBlKT8uWzJdID8/IE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5FcXVhbHM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRNYXBwaW5nKG1hdGNoTW9kZTogc3RyaW5nLCBkYXRhVHlwZT86IEZpbHRlclR5cGVFbnVtLCBpZHggPSAwKTogTWF0Y2hNb2RlTWFwVHlwZSB8IG51bGwge1xuICAgICAgICBjb25zdCBtYXBwaW5ncyA9IE1lZGl1c1Jlc3RVdGlsLm1hdGNoTW9kZU1hcHBpbmcuZmlsdGVyKG0gPT4gbVtpZHhdID09PSBtYXRjaE1vZGUgJiYgKCFkYXRhVHlwZSB8fCAhbVszXSB8fCBkYXRhVHlwZSA9PT0gbVszXSkpO1xuICAgICAgICBpZiAobWFwcGluZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmIChtYXBwaW5ncy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXBwaW5nc1swXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBtYXBwaW5ncy5zb3J0KChtMSwgbTIpID0+IChtMlszXSA/PyAtMSkgLSAobTFbM10gPz8gLTEpKVswXTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzLXJlc3QudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvYXBpL3V0aWxzL21lZGl1cy1yZXN0LnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLGVBQWUsRUFBZ0MsTUFBTSxhQUFhLENBQUM7QUFHM0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLHFCQUFxQixFQUFvQix1QkFBdUIsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUUzRixNQUFNLE9BQU8sY0FBYztJQWtCaEIsTUFBTSxDQUFDLHlDQUF5QyxDQUNuRCxNQUFjLEVBQ2QsaUJBQStDLEVBQy9DLG1CQUFtQixHQUFHLEVBQUUsRUFDeEIsYUFBYSxHQUFHLENBQUM7UUFFakIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMzRSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUM7UUFFckYsTUFBTSxtQkFBbUIsR0FBRyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRWpGLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2hCLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDMUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxH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J0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7RmlsdGVyTWF0Y2hNb2RlLCBGaWx0ZXJNZXRhZGF0YSwgTGF6eUxvYWRFdmVudH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQge0ZpbHRlckRlc2NyaXB0b3J9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzJztcbmltcG9ydCB7RmlsdGVyVHlwZUVudW19IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzL3R5cGVzJztcbmltcG9ydCB7TWF0Y2hNb2RlTWFwVHlwZX0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHtEYXRlVXRpbH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHtNZWRpdXNGaWx0ZXJNYXRjaFR5cGUsIE1lZGl1c1F1ZXJ5UGFyYW0sIE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgY2xhc3MgTWVkaXVzUmVzdFV0aWwge1xuICAgIC8vIGZpcnN0IHZhbHVlIGlzIGZyb20gcHJpbWVORywgc2Vjb25kIGlzIGZvciB1c2UgaW4gcXVlcnkgcGFyYW1zXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgbWF0Y2hNb2RlTWFwcGluZzogQXJyYXk8TWF0Y2hNb2RlTWFwVHlwZT4gPSBbXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuQ09OVEFJTlMsICdjJywgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkNvbnRhaW5zLCBudWxsXSxcbiAgICAgICAgW0ZpbHRlck1hdGNoTW9kZS5FTkRTX1dJVEgsICdldycsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5FbmRzV2l0aCwgbnVsbF0sXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuRVFVQUxTLCAnZXEnLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuRXF1YWxzLCBudWxsXSxcbiAgICAgICAgW0ZpbHRlck1hdGNoTW9kZS5HUkVBVEVSX1RIQU4sICdndCcsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5HcmVhdGVyVGhhbiwgbnVsbF0sXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuTEVTU19USEFOLCAnbHQnLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuU21hbGxlclRoYW4sIG51bGxdLFxuICAgICAgICBbRmlsdGVyTWF0Y2hNb2RlLlNUQVJUU19XSVRILCAnc3cnLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuU3RhcnRzV2l0aCwgbnVsbF0sXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuSU4sICdpbicsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5JbiwgbnVsbF0sXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuTk9UX0VRVUFMUywgJ25lcScsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5Ob3RFcXVhbHMsIG51bGxdLFxuICAgICAgICBbRmlsdGVyTWF0Y2hNb2RlLkJFVFdFRU4sICdmdCcsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5Gcm9tVG8sIEZpbHRlclR5cGVFbnVtLkRhdGVdLFxuICAgICAgICBbRmlsdGVyTWF0Y2hNb2RlLkRBVEVfSVMsICdkdGVxJywgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkVxdWFscywgRmlsdGVyVHlwZUVudW0uRGF0ZV0sXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuREFURV9CRUZPUkUsICdsdCcsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5TbWFsbGVyVGhhbiwgRmlsdGVyVHlwZUVudW0uRGF0ZV0sXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuREFURV9BRlRFUiwgJ2d0JywgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkdyZWF0ZXJUaGFuLCBGaWx0ZXJUeXBlRW51bS5EYXRlXSxcbiAgICAgICAgW0ZpbHRlck1hdGNoTW9kZS5EQVRFX0lTX05PVCwgJ25lcScsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5Ob3RFcXVhbHMsIEZpbHRlclR5cGVFbnVtLkRhdGVdXG4gICAgXTtcblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUFuZ3VsYXJRdWVyeVBhcmFtc1RvTWVkaXVzUXVlcnlQYXJhbXMoXG4gICAgICAgIHBhcmFtczogUGFyYW1zLFxuICAgICAgICBmaWx0ZXJEZXNjcmlwdG9yczogQXJyYXk8RmlsdGVyRGVzY3JpcHRvcjxhbnk+PixcbiAgICAgICAgZGVmYXVsdEl0ZW1zUGVyUGFnZSA9IDEwLFxuICAgICAgICBkZWZhdWx0T2Zmc2V0ID0gMFxuICAgICk6IE1lZGl1c1F1ZXJ5UGFyYW0ge1xuICAgICAgICBjb25zdCBvZmZzZXQgPSBwYXJhbXNbJ2ZpcnN0J10gPyBwYXJzZUludChwYXJhbXNbJ2ZpcnN0J10pIDogZGVmYXVsdE9mZnNldDtcbiAgICAgICAgY29uc3QgaXRlbXNQZXJQYWdlID0gcGFyYW1zWydyb3dzJ10gPyBwYXJzZUludChwYXJhbXNbJ3Jvd3MnXSkgOiBkZWZhdWx0SXRlbXNQZXJQYWdlO1xuXG4gICAgICAgIGNvbnN0IG1lZGl1c1BhcmFtc0J1aWxkZXIgPSBNZWRpdXNRdWVyeVBhcmFtQnVpbGRlci5jcmVhdGUoaXRlbXNQZXJQYWdlLCBvZmZzZXQpO1xuXG4gICAgICAgIGlmIChwYXJhbXNbJ3NvcnQnXSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBzb3J0IG9mIHBhcmFtc1snc29ydCddLnNwbGl0KCcsJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBxcFNvcnRTcGxpdCA9IHNvcnQuc3BsaXQoJzonKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IHFwU29ydFNwbGl0WzBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFzYyA9IHFwU29ydFNwbGl0Lmxlbmd0aCA+IDEgPyBxcFNvcnRTcGxpdFsxXSA9PT0gJ2FzYycgOiB0cnVlO1xuICAgICAgICAgICAgICAgIG1lZGl1c1BhcmFtc0J1aWxkZXIud2l0aFNvcnQoZmllbGQsIGFzYyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcmFtc1snZmlsdGVyJ10pIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlclNwbGl0ID0gcGFyYW1zWydmaWx0ZXInXS5zcGxpdCgnOycpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWx0ZXJGaWVsZCBvZiBmaWx0ZXJTcGxpdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckZpZWxkU3BsaXQgPSBmaWx0ZXJGaWVsZC5zcGxpdCgnOicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gZmlsdGVyRmllbGRTcGxpdFswXTtcbiAgICAgICAgICAgICAgICBjb25zdCBvcGVyYXRvciA9IGZpbHRlckZpZWxkU3BsaXQubGVuZ3RoID4gMSA/IGZpbHRlckZpZWxkU3BsaXRbMV0gOiAnZXEnO1xuXG4gICAgICAgICAgICAgICAgLy8gcHJlcGFyZSB2YWx1ZVxuICAgICAgICAgICAgICAgIGxldCB2YWx1ZTogYW55ID0gZmlsdGVyRmllbGRTcGxpdC5sZW5ndGggPiAyID8gZmlsdGVyRmllbGRTcGxpdC5zbGljZSgyKS5qb2luKCc6JykgOiAnJztcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWVUbzogYW55ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKFwiJ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygxLCB2YWx1ZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJ1snKSAmJiB2YWx1ZS5lbmRzV2l0aCgnXScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzdHJpbmcoMSwgdmFsdWUubGVuZ3RoIC0gMSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKCh2OiBzdHJpbmcpID0+ICh2LnN0YXJ0c1dpdGgoXCInXCIpID8gdi5zdWJzdHJpbmcoMSwgdi5sZW5ndGggLSAxKSA6IHYpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAob3BlcmF0b3IgPT09ICdmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVUbyA9IHZhbHVlWzFdO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWzBdO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckRlc2NyaXB0b3IgPSBmaWx0ZXJEZXNjcmlwdG9ycy5maW5kKGYgPT4gZi5wcm9wZXJ0eSA9PT0gZmllbGQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoTW9kZSA9IE1lZGl1c1Jlc3RVdGlsLmdldE1hcHBpbmcob3BlcmF0b3IsIGZpbHRlckRlc2NyaXB0b3I/LmZpbHRlclR5cGUsIDEpO1xuICAgICAgICAgICAgICAgIGlmIChtYXRjaE1vZGUgJiYgZmlsdGVyRGVzY3JpcHRvcikge1xuICAgICAgICAgICAgICAgICAgICBtZWRpdXNQYXJhbXNCdWlsZGVyLndpdGhGaWx0ZXIoZmlsdGVyRGVzY3JpcHRvci5wcm9wZXJ0eSwgdmFsdWUsIHZhbHVlVG8sIE1lZGl1c1Jlc3RVdGlsLmdldE1lZGl1c0ZpbHRlck1hdGNoVHlwZUZyb21QcmltZU1hdGNoTW9kZShtYXRjaE1vZGVbMF0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWVkaXVzUGFyYW1zQnVpbGRlci5idWlsZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbVByaW1lTGF6eUxvYWRFdmVudFRvQW5ndWxhclF1ZXJ5UGFyYW1zKGV2ZW50OiBMYXp5TG9hZEV2ZW50LCBkZWZhdWx0SXRlbXNQZXJQYWdlID0gMTAsIGRlZmF1bHRPZmZzZXQgPSAwKTogUGFyYW1zIHtcbiAgICAgICAgY29uc3QgcGFyYW1zOiBQYXJhbXMgPSB7XG4gICAgICAgICAgICBmaXJzdDogbnVsbCxcbiAgICAgICAgICAgIHJvd3M6IG51bGwsXG4gICAgICAgICAgICBzb3J0OiBudWxsLFxuICAgICAgICAgICAgZmlsdGVyOiBudWxsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGV2ZW50LmZpcnN0ICYmIGV2ZW50LmZpcnN0ICE9PSBkZWZhdWx0T2Zmc2V0ICYmIGV2ZW50LmZpcnN0ID4gMCkge1xuICAgICAgICAgICAgcGFyYW1zWydmaXJzdCddID0gZXZlbnQuZmlyc3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LnJvd3MgJiYgZXZlbnQucm93cyAhPT0gZGVmYXVsdEl0ZW1zUGVyUGFnZSAmJiBldmVudC5yb3dzID4gMCkge1xuICAgICAgICAgICAgcGFyYW1zWydyb3dzJ10gPSBldmVudC5yb3dzO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50Lm11bHRpU29ydE1ldGE/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcGFyYW1zWydzb3J0J10gPSBldmVudC5tdWx0aVNvcnRNZXRhPy5tYXAocyA9PiBgJHtzLmZpZWxkfSR7cy5vcmRlciA9PT0gMSA/ICcnIDogJzpkZXNjJ31gKS5qb2luKCcsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQuZmlsdGVycykge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVycyA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBpbiBldmVudC5maWx0ZXJzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJpbWVPcGVyYXRvciA9IGV2ZW50LmZpbHRlcnNbZmllbGRdLm1hdGNoTW9kZTtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBldmVudC5maWx0ZXJzW2ZpZWxkXS52YWx1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBvcGVyYXRvck1hcHBpbmcgPSBwcmltZU9wZXJhdG9yID8gTWVkaXVzUmVzdFV0aWwuZ2V0TWFwcGluZyhwcmltZU9wZXJhdG9yLCB1bmRlZmluZWQsIDApIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGlmIChvcGVyYXRvck1hcHBpbmcgJiYgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZG9BZGRGaWx0ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBgJyR7dmFsdWV9J2A7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb0FkZEZpbHRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9BZGRGaWx0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBqb2luZWRWYWx1ZSA9IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgcXVlcnkgcGFyYW1zLCBhbHdheXMgY29udmVydCB0byBpc28gc3RyaW5nLCBjb3JyZWN0IHRyYW5zZm9ybWF0aW9uIHdpbGwgYmUgZG9uZSBsYXRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHYudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcsJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gYFske2pvaW5lZFZhbHVlfV1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9BZGRGaWx0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHF1ZXJ5IHBhcmFtcywgYWx3YXlzIGNvbnZlcnQgdG8gaXNvIHN0cmluZywgY29ycmVjdCB0cmFuc2Zvcm1hdGlvbiB3aWxsIGJlIGRvbmUgbGF0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvQWRkRmlsdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChkb0FkZEZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVycy5wdXNoKGAke2ZpZWxkfToke29wZXJhdG9yTWFwcGluZ1sxXX06JHt2YWx1ZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmaWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBwYXJhbXNbJ2ZpbHRlciddID0gZmlsdGVycy5qb2luKCc7Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgbW9kaWZ5RmlsdGVyUHJvcGVydGllcyhtZWRpdXNRdWVyeVBhcmFtczogTWVkaXVzUXVlcnlQYXJhbSwgZmlsdGVyRGVzY3JpcHRvcnM6IEFycmF5PEZpbHRlckRlc2NyaXB0b3I8YW55Pj4pIHtcbiAgICAgICAgZm9yIChjb25zdCBmaWx0ZXJQYXJhbSBvZiBtZWRpdXNRdWVyeVBhcmFtcy5maWx0ZXJQYXJhbXMgPz8gW10pIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckRlc2NyaXB0b3IgPSBmaWx0ZXJEZXNjcmlwdG9ycy5maW5kKGYgPT4gZi5wcm9wZXJ0eSA9PT0gZmlsdGVyUGFyYW0ucHJvcGVydHkpO1xuICAgICAgICAgICAgZmlsdGVyUGFyYW0ucHJvcGVydHkgPSBmaWx0ZXJEZXNjcmlwdG9yPy5maWx0ZXJQcm9wZXJ0eSA/PyBmaWx0ZXJQYXJhbS5wcm9wZXJ0eTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJEZXNjcmlwdG9yPy5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5EYXRlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlclBhcmFtLmZpbHRlck1hdGNoVHlwZSA9PT0gTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkVxdWFscykge1xuICAgICAgICAgICAgICAgICAgICAvLyBjb252ZXJ0IGRhdGUgZXF1YWxzIGZpbHRlciB0byBkYXRlIHJhbmdlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGUgPSBmaWx0ZXJQYXJhbS5maWx0ZXJWYWx1ZSBhcyBEYXRlO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKGZpbHRlckRhdGUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmREYXRlID0gbmV3IERhdGUoc3RhcnREYXRlKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1RpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF0ZS5zZXRIb3VycyhzdGFydERhdGUuZ2V0SG91cnMoKSwgc3RhcnREYXRlLmdldE1pbnV0ZXMoKSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmREYXRlLnNldEhvdXJzKGVuZERhdGUuZ2V0SG91cnMoKSwgZW5kRGF0ZS5nZXRNaW51dGVzKCkgKyAxLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZERhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmREYXRlLnNldERhdGUoZW5kRGF0ZS5nZXREYXRlKCkgKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclBhcmFtLmZpbHRlck1hdGNoVHlwZSA9IE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5Gcm9tVG87XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclBhcmFtLmZpbHRlclZhbHVlID0gc3RhcnREYXRlO1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJQYXJhbS5maWx0ZXJWYWx1ZVRvID0gZW5kRGF0ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyB0cmFuc2Zvcm0gZGF0ZXMgdG8gY29ycmVjdCBpc28gc3RyaW5nXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmaWx0ZXJQYXJhbS5maWx0ZXJWYWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyUGFyYW0uZmlsdGVyVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJQYXJhbS5maWx0ZXJWYWx1ZSA9IGZpbHRlclBhcmFtLmZpbHRlclZhbHVlLm1hcCh2ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZVV0aWwudG9Jc29TdHJpbmcodiwgZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyVmFsdWVJblV0YywgZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyVmFsdWVXaXRoVGltZXpvbmUpXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUGFyYW0uZmlsdGVyVmFsdWUgPSBEYXRlVXRpbC50b0lzb1N0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJQYXJhbS5maWx0ZXJWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJEZXNjcmlwdG9yLmRhdGVQaWNrZXJWYWx1ZUluVXRjLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckRlc2NyaXB0b3IuZGF0ZVBpY2tlclZhbHVlV2l0aFRpbWV6b25lXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZmlsdGVyUGFyYW0uZmlsdGVyVmFsdWVUbyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyUGFyYW0uZmlsdGVyVmFsdWVUbykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclBhcmFtLmZpbHRlclZhbHVlVG8gPSBmaWx0ZXJQYXJhbS5maWx0ZXJWYWx1ZVRvLm1hcCh2ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZVV0aWwudG9Jc29TdHJpbmcodiwgZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyVmFsdWVJblV0YywgZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyVmFsdWVXaXRoVGltZXpvbmUpXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUGFyYW0uZmlsdGVyVmFsdWVUbyA9IERhdGVVdGlsLnRvSXNvU3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclBhcmFtLmZpbHRlclZhbHVlVG8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyVmFsdWVJblV0YyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJEZXNjcmlwdG9yLmRhdGVQaWNrZXJWYWx1ZVdpdGhUaW1lem9uZVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbVByaW1lTGF6eUxvYWRFdmVudFRvTWVkaXVzUXVlcnlQYXJhbXMoZXZlbnQ6IExhenlMb2FkRXZlbnQpOiBNZWRpdXNRdWVyeVBhcmFtIHtcbiAgICAgICAgY29uc3QgcXVlcnlQYXJhbUJ1aWxkZXIgPSBNZWRpdXNRdWVyeVBhcmFtQnVpbGRlci5jcmVhdGUoZXZlbnQucm93cywgZXZlbnQuZmlyc3QpO1xuXG4gICAgICAgIC8vIGFwcGx5IHNvcnRpbmdcbiAgICAgICAgaWYgKGV2ZW50Lm11bHRpU29ydE1ldGEpIHtcbiAgICAgICAgICAgIGV2ZW50Lm11bHRpU29ydE1ldGEuZm9yRWFjaChtc20gPT4gcXVlcnlQYXJhbUJ1aWxkZXIud2l0aFNvcnQobXNtLmZpZWxkLCBtc20ub3JkZXIgPT09IDEpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFwcGx5IGZpbHRlcmluZ1xuICAgICAgICBpZiAoZXZlbnQuZmlsdGVycykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZXZlbnQuZmlsdGVycykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJFdmVudCA9IGV2ZW50LmZpbHRlcnNba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJFdmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgKGZpbHRlckV2ZW50IGFzIEZpbHRlck1ldGFkYXRhW10pLmZpbHRlcihlID0+IGUudmFsdWUpLmZvckVhY2goZSA9PiBNZWRpdXNSZXN0VXRpbC5hZGRNZWRpdXNGaWx0ZXJGcm9tUHJpbWVGaWx0ZXJNZXRhZGF0YShxdWVyeVBhcmFtQnVpbGRlciwga2V5LCBlKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmlsdGVyRXZlbnQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJFdmVudC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgTWVkaXVzUmVzdFV0aWwuYWRkTWVkaXVzRmlsdGVyRnJvbVByaW1lRmlsdGVyTWV0YWRhdGEocXVlcnlQYXJhbUJ1aWxkZXIsIGtleSwgZmlsdGVyRXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW1CdWlsZGVyLmJ1aWxkKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhZGRNZWRpdXNGaWx0ZXJGcm9tUHJpbWVGaWx0ZXJNZXRhZGF0YShxdWVyeVBhcmFtQnVpbGRlcjogTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIsIHByb3BlcnR5OiBzdHJpbmcsIGZpbHRlck1ldGFkYXRhOiBGaWx0ZXJNZXRhZGF0YSkge1xuICAgICAgICBjb25zdCBtYXRjaFR5cGU6IE1lZGl1c0ZpbHRlck1hdGNoVHlwZSA9IE1lZGl1c1Jlc3RVdGlsLmdldE1lZGl1c0ZpbHRlck1hdGNoVHlwZUZyb21QcmltZU1hdGNoTW9kZShmaWx0ZXJNZXRhZGF0YS5tYXRjaE1vZGUgPz8gJ2VxdWFscycpO1xuICAgICAgICBxdWVyeVBhcmFtQnVpbGRlci53aXRoRmlsdGVyKHByb3BlcnR5LCBmaWx0ZXJNZXRhZGF0YS52YWx1ZSwgdW5kZWZpbmVkLCBtYXRjaFR5cGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TWVkaXVzRmlsdGVyTWF0Y2hUeXBlRnJvbVByaW1lTWF0Y2hNb2RlKG1hdGNoTW9kZTogc3RyaW5nLCBkYXRhVHlwZT86IEZpbHRlclR5cGVFbnVtKTogTWVkaXVzRmlsdGVyTWF0Y2hUeXBlIHtcbiAgICAgICAgcmV0dXJuIE1lZGl1c1Jlc3RVdGlsLmdldE1hcHBpbmcobWF0Y2hNb2RlLCBkYXRhVHlwZSk/LlsyXSA/PyBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuRXF1YWxzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TWFwcGluZyhtYXRjaE1vZGU6IHN0cmluZywgZGF0YVR5cGU/OiBGaWx0ZXJUeXBlRW51bSwgaWR4ID0gMCk6IE1hdGNoTW9kZU1hcFR5cGUgfCBudWxsIHtcbiAgICAgICAgY29uc3QgbWFwcGluZ3MgPSBNZWRpdXNSZXN0VXRpbC5tYXRjaE1vZGVNYXBwaW5nLmZpbHRlcihtID0+IG1baWR4XSA9PT0gbWF0Y2hNb2RlICYmICghZGF0YVR5cGUgfHwgIW1bM10gfHwgZGF0YVR5cGUgPT09IG1bM10pKTtcbiAgICAgICAgaWYgKG1hcHBpbmdzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0gZWxzZSBpZiAobWFwcGluZ3MubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gbWFwcGluZ3NbMF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbWFwcGluZ3Muc29ydCgobTEsIG0yKSA9PiAobTJbM10gPz8gLTEpIC0gKG0xWzNdID8/IC0xKSlbMF07XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,106 @@
1
+ import { ChangeDetectionStrategy, Component, Input, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { merge } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "primeng/calendar";
8
+ export const MNG_DATE_RANGE_VALUE_ACCESSOR = {
9
+ provide: NG_VALUE_ACCESSOR,
10
+ useExisting: forwardRef(() => MngDateRangeComponent),
11
+ multi: true
12
+ };
13
+ export class MngDateRangeComponent {
14
+ constructor(formBuilder) {
15
+ this.formBuilder = formBuilder;
16
+ this.showTime = false;
17
+ this.showSeconds = false;
18
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
19
+ this.onChangeFn = () => { };
20
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
21
+ this.onTouchedFn = () => { };
22
+ this.subscriptions = [];
23
+ }
24
+ get fromCtrl() {
25
+ return this.fromToFormControl.get('from');
26
+ }
27
+ get toCtrl() {
28
+ return this.fromToFormControl.get('to');
29
+ }
30
+ get dateRangeCtrl() {
31
+ return this.fromToFormControl.get('dateRange');
32
+ }
33
+ ngOnInit() {
34
+ this.fromToFormControl = this.formBuilder.group({
35
+ from: [],
36
+ to: [],
37
+ dateRange: []
38
+ });
39
+ this.subscriptions.push(merge(this.fromCtrl.valueChanges, this.toCtrl.valueChanges, this.dateRangeCtrl.valueChanges).subscribe(() => this.onValueChange()));
40
+ }
41
+ ngOnDestroy() {
42
+ this.subscriptions.forEach(value => value.unsubscribe());
43
+ }
44
+ registerOnChange(fn) {
45
+ this.onChangeFn = fn;
46
+ }
47
+ registerOnTouched(fn) {
48
+ this.onTouchedFn = fn;
49
+ }
50
+ setDisabledState(isDisabled) {
51
+ if (isDisabled) {
52
+ this.fromToFormControl.disable();
53
+ }
54
+ else {
55
+ this.fromToFormControl.enable();
56
+ }
57
+ }
58
+ writeValue(obj) {
59
+ let startDate = null;
60
+ let endDate = null;
61
+ if (Array.isArray(obj)) {
62
+ if (obj.length > 0 && (obj[0] instanceof Date || typeof obj[0] === 'string' || typeof obj[0] === 'number')) {
63
+ startDate = new Date(obj[0]);
64
+ }
65
+ if (obj.length > 1 && (obj[1] instanceof Date || typeof obj[1] === 'string' || typeof obj[1] === 'number')) {
66
+ endDate = new Date(obj[1]);
67
+ }
68
+ }
69
+ else if (obj instanceof Date || typeof obj === 'string' || typeof obj === 'number') {
70
+ startDate = new Date(obj);
71
+ }
72
+ if (this.showTime) {
73
+ this.fromCtrl.setValue(startDate);
74
+ this.toCtrl.setValue(endDate);
75
+ }
76
+ else {
77
+ this.dateRangeCtrl.setValue([startDate, endDate]);
78
+ }
79
+ }
80
+ onValueChange() {
81
+ if (this.showTime) {
82
+ const fromDate = this.fromCtrl.value;
83
+ const toDate = this.toCtrl.value;
84
+ this.onChangeFn([fromDate, toDate]);
85
+ }
86
+ else {
87
+ const date = this.dateRangeCtrl.value;
88
+ this.onChangeFn(date);
89
+ }
90
+ }
91
+ }
92
+ MngDateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngDateRangeComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
93
+ MngDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngDateRangeComponent, selector: "mng-date-range", inputs: { placeholder: "placeholder", showTime: "showTime", showSeconds: "showSeconds", dateFormat: "dateFormat" }, providers: [MNG_DATE_RANGE_VALUE_ACCESSOR], ngImport: i0, template: "<ng-container *ngIf=\"showTime; else defaultRange\">\n <div class=\"flex gap-2\">\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"fromCtrl\"\n [maxDate]=\"toCtrl.value\"\n [placeholder]=\"$any(placeholder)\"\n [dateFormat]=\"$any(dateFormat)\"\n [showTime]=\"showTime\"\n [showSeconds]=\"showSeconds\"\n [showIcon]=\"true\"\n (onFocus)=\"onTouchedFn()\"></p-calendar>\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"toCtrl\"\n [minDate]=\"fromCtrl.value\"\n [placeholder]=\"$any(placeholder)\"\n [dateFormat]=\"$any(dateFormat)\"\n [showTime]=\"showTime\"\n [showSeconds]=\"showSeconds\"\n [showIcon]=\"true\"\n (onFocus)=\"onTouchedFn()\"></p-calendar>\n </div>\n</ng-container>\n<ng-template #defaultRange>\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"dateRangeCtrl\"\n [placeholder]=\"$any(placeholder)\"\n [dateFormat]=\"$any(dateFormat)\"\n selectionMode=\"range\"\n [showIcon]=\"true\"\n (onFocus)=\"onTouchedFn()\"></p-calendar>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngDateRangeComponent, decorators: [{
95
+ type: Component,
96
+ args: [{ selector: 'mng-date-range', providers: [MNG_DATE_RANGE_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"showTime; else defaultRange\">\n <div class=\"flex gap-2\">\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"fromCtrl\"\n [maxDate]=\"toCtrl.value\"\n [placeholder]=\"$any(placeholder)\"\n [dateFormat]=\"$any(dateFormat)\"\n [showTime]=\"showTime\"\n [showSeconds]=\"showSeconds\"\n [showIcon]=\"true\"\n (onFocus)=\"onTouchedFn()\"></p-calendar>\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"toCtrl\"\n [minDate]=\"fromCtrl.value\"\n [placeholder]=\"$any(placeholder)\"\n [dateFormat]=\"$any(dateFormat)\"\n [showTime]=\"showTime\"\n [showSeconds]=\"showSeconds\"\n [showIcon]=\"true\"\n (onFocus)=\"onTouchedFn()\"></p-calendar>\n </div>\n</ng-container>\n<ng-template #defaultRange>\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"dateRangeCtrl\"\n [placeholder]=\"$any(placeholder)\"\n [dateFormat]=\"$any(dateFormat)\"\n selectionMode=\"range\"\n [showIcon]=\"true\"\n (onFocus)=\"onTouchedFn()\"></p-calendar>\n</ng-template>\n" }]
97
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { placeholder: [{
98
+ type: Input
99
+ }], showTime: [{
100
+ type: Input
101
+ }], showSeconds: [{
102
+ type: Input
103
+ }], dateFormat: [{
104
+ type: Input
105
+ }] } });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9kYXRlLXJhbmdlL2RhdGUtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQW9CLEtBQUssRUFBcUIsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBNEQsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RyxPQUFPLEVBQWUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7OztBQUV6QyxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBcUI7SUFDM0QsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQVFGLE1BQU0sT0FBTyxxQkFBcUI7SUFlOUIsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFiNUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUtwQyxnRUFBZ0U7UUFDeEQsZUFBVSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNuQyxnRUFBZ0U7UUFDekQsZ0JBQVcsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFM0Isa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBRUksQ0FBQztJQUVoRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFnQixDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFnQixDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBZ0IsQ0FBQztJQUNsRSxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUM1QyxJQUFJLEVBQUUsRUFBRTtZQUNSLEVBQUUsRUFBRSxFQUFFO1lBQ04sU0FBUyxFQUFFLEVBQUU7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEssQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNoQyxJQUFJLFVBQVUsRUFBRTtZQUNaLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNwQzthQUFNO1lBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFRO1FBQ2YsSUFBSSxTQUFTLEdBQWdCLElBQUksQ0FBQztRQUNsQyxJQUFJLE9BQU8sR0FBZ0IsSUFBSSxDQUFDO1FBRWhDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLEVBQUU7Z0JBQ3hHLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoQztZQUNELElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsRUFBRTtnQkFDeEcsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlCO1NBQ0o7YUFBTSxJQUFJLEdBQUcsWUFBWSxJQUFJLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtZQUNsRixTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0I7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNyRDtJQUNMLENBQUM7SUFFTyxhQUFhO1FBQ2pCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBYSxDQUFDO1lBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBYSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUN2QzthQUFNO1lBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFlLENBQUM7WUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7O2tIQTNGUSxxQkFBcUI7c0dBQXJCLHFCQUFxQiw2SkFIbkIsQ0FBQyw2QkFBNkIsQ0FBQywwQkNkOUMsd3RDQWtDQTsyRkRqQmEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNJLGdCQUFnQixhQUVmLENBQUMsNkJBQTZCLENBQUMsbUJBQ3pCLHVCQUF1QixDQUFDLE1BQU07a0dBRy9CLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV4aXN0aW5nUHJvdmlkZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgZm9yd2FyZFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtTdWJzY3JpcHRpb24sIG1lcmdlfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNvbnN0IE1OR19EQVRFX1JBTkdFX1ZBTFVFX0FDQ0VTU09SOiBFeGlzdGluZ1Byb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1uZ0RhdGVSYW5nZUNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbW5nLWRhdGUtcmFuZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtNTkdfREFURV9SQU5HRV9WQUxVRV9BQ0NFU1NPUl0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW5nRGF0ZVJhbmdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIHNob3dUaW1lID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIHNob3dTZWNvbmRzID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGRhdGVGb3JtYXQ/OiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIGZyb21Ub0Zvcm1Db250cm9sITogRm9ybUdyb3VwO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIHByaXZhdGUgb25DaGFuZ2VGbjogYW55ID0gKCkgPT4ge307XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIHB1YmxpYyBvblRvdWNoZWRGbjogYW55ID0gKCkgPT4ge307XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge31cblxuICAgIHB1YmxpYyBnZXQgZnJvbUN0cmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZyb21Ub0Zvcm1Db250cm9sLmdldCgnZnJvbScpIGFzIEZvcm1Db250cm9sO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdG9DdHJsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcm9tVG9Gb3JtQ29udHJvbC5nZXQoJ3RvJykgYXMgRm9ybUNvbnRyb2w7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkYXRlUmFuZ2VDdHJsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcm9tVG9Gb3JtQ29udHJvbC5nZXQoJ2RhdGVSYW5nZScpIGFzIEZvcm1Db250cm9sO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmZyb21Ub0Zvcm1Db250cm9sID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBmcm9tOiBbXSxcbiAgICAgICAgICAgIHRvOiBbXSxcbiAgICAgICAgICAgIGRhdGVSYW5nZTogW11cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2gobWVyZ2UodGhpcy5mcm9tQ3RybC52YWx1ZUNoYW5nZXMsIHRoaXMudG9DdHJsLnZhbHVlQ2hhbmdlcywgdGhpcy5kYXRlUmFuZ2VDdHJsLnZhbHVlQ2hhbmdlcykuc3Vic2NyaWJlKCgpID0+IHRoaXMub25WYWx1ZUNoYW5nZSgpKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHZhbHVlID0+IHZhbHVlLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZnJvbVRvRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mcm9tVG9Gb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgbGV0IHN0YXJ0RGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuICAgICAgICBsZXQgZW5kRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgICAgIGlmIChvYmoubGVuZ3RoID4gMCAmJiAob2JqWzBdIGluc3RhbmNlb2YgRGF0ZSB8fCB0eXBlb2Ygb2JqWzBdID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygb2JqWzBdID09PSAnbnVtYmVyJykpIHtcbiAgICAgICAgICAgICAgICBzdGFydERhdGUgPSBuZXcgRGF0ZShvYmpbMF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9iai5sZW5ndGggPiAxICYmIChvYmpbMV0gaW5zdGFuY2VvZiBEYXRlIHx8IHR5cGVvZiBvYmpbMV0gPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBvYmpbMV0gPT09ICdudW1iZXInKSkge1xuICAgICAgICAgICAgICAgIGVuZERhdGUgPSBuZXcgRGF0ZShvYmpbMV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG9iaiBpbnN0YW5jZW9mIERhdGUgfHwgdHlwZW9mIG9iaiA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG9iaiA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKG9iaik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaG93VGltZSkge1xuICAgICAgICAgICAgdGhpcy5mcm9tQ3RybC5zZXRWYWx1ZShzdGFydERhdGUpO1xuICAgICAgICAgICAgdGhpcy50b0N0cmwuc2V0VmFsdWUoZW5kRGF0ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVSYW5nZUN0cmwuc2V0VmFsdWUoW3N0YXJ0RGF0ZSwgZW5kRGF0ZV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblZhbHVlQ2hhbmdlKCkge1xuICAgICAgICBpZiAodGhpcy5zaG93VGltZSkge1xuICAgICAgICAgICAgY29uc3QgZnJvbURhdGUgPSB0aGlzLmZyb21DdHJsLnZhbHVlIGFzIERhdGU7XG4gICAgICAgICAgICBjb25zdCB0b0RhdGUgPSB0aGlzLnRvQ3RybC52YWx1ZSBhcyBEYXRlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKFtmcm9tRGF0ZSwgdG9EYXRlXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5kYXRlUmFuZ2VDdHJsLnZhbHVlIGFzIERhdGVbXTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VGbihkYXRlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93VGltZTsgZWxzZSBkZWZhdWx0UmFuZ2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMlwiPlxuICAgICAgICA8cC1jYWxlbmRhclxuICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmcm9tQ3RybFwiXG4gICAgICAgICAgICBbbWF4RGF0ZV09XCJ0b0N0cmwudmFsdWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIiRhbnkocGxhY2Vob2xkZXIpXCJcbiAgICAgICAgICAgIFtkYXRlRm9ybWF0XT1cIiRhbnkoZGF0ZUZvcm1hdClcIlxuICAgICAgICAgICAgW3Nob3dUaW1lXT1cInNob3dUaW1lXCJcbiAgICAgICAgICAgIFtzaG93U2Vjb25kc109XCJzaG93U2Vjb25kc1wiXG4gICAgICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAob25Gb2N1cyk9XCJvblRvdWNoZWRGbigpXCI+PC9wLWNhbGVuZGFyPlxuICAgICAgICA8cC1jYWxlbmRhclxuICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ0b0N0cmxcIlxuICAgICAgICAgICAgW21pbkRhdGVdPVwiZnJvbUN0cmwudmFsdWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIiRhbnkocGxhY2Vob2xkZXIpXCJcbiAgICAgICAgICAgIFtkYXRlRm9ybWF0XT1cIiRhbnkoZGF0ZUZvcm1hdClcIlxuICAgICAgICAgICAgW3Nob3dUaW1lXT1cInNob3dUaW1lXCJcbiAgICAgICAgICAgIFtzaG93U2Vjb25kc109XCJzaG93U2Vjb25kc1wiXG4gICAgICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAob25Gb2N1cyk9XCJvblRvdWNoZWRGbigpXCI+PC9wLWNhbGVuZGFyPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI2RlZmF1bHRSYW5nZT5cbiAgICA8cC1jYWxlbmRhclxuICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZGF0ZVJhbmdlQ3RybFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCIkYW55KHBsYWNlaG9sZGVyKVwiXG4gICAgICAgIFtkYXRlRm9ybWF0XT1cIiRhbnkoZGF0ZUZvcm1hdClcIlxuICAgICAgICBzZWxlY3Rpb25Nb2RlPVwicmFuZ2VcIlxuICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXG4gICAgICAgIChvbkZvY3VzKT1cIm9uVG91Y2hlZEZuKClcIj48L3AtY2FsZW5kYXI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,4 +1,5 @@
1
1
  export * from './editor/form-editor.component';
2
2
  export * from './autocomplete/autocomplete.component';
3
3
  export * from './dropdown/dropdown.component';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZWRpdG9yL2Zvcm0tZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50JztcbiJdfQ==
4
+ export * from './date-range/date-range.component';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lZGl0b3IvZm9ybS1lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLXJhbmdlL2RhdGUtcmFuZ2UuY29tcG9uZW50JztcbiJdfQ==