@updevs/components 1.0.0-alpha.95 → 1.0.0-alpha.97

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/esm2022/table/abstractions/base-column.model.mjs +1 -1
  2. package/esm2022/table/abstractions/filters-operands.service.mjs +1 -1
  3. package/esm2022/table/components/filter-row/filter-row.component.mjs +47 -27
  4. package/esm2022/table/components/search-section/search-section.component.mjs +17 -29
  5. package/esm2022/table/models/filter-field.config.mjs +2 -0
  6. package/esm2022/table/models/operands-lists/select-filter-operands-list.model.mjs +12 -0
  7. package/esm2022/table/models/table-config.model.mjs +11 -1
  8. package/esm2022/table/models/table.config.mjs +1 -1
  9. package/esm2022/table/services/current-search-request.service.mjs +254 -0
  10. package/esm2022/table/services/default-filters-operands.service.mjs +21 -17
  11. package/esm2022/table/services/stores/filters-operands.store.mjs +1 -1
  12. package/esm2022/table/table.component.mjs +25 -34
  13. package/esm2022/table/tools/filters.tools.mjs +32 -16
  14. package/fesm2022/updevs-components-table.mjs +399 -113
  15. package/fesm2022/updevs-components-table.mjs.map +1 -1
  16. package/package.json +25 -25
  17. package/table/abstractions/base-column.model.d.ts +2 -4
  18. package/table/abstractions/filters-operands.service.d.ts +2 -2
  19. package/table/components/filter-row/filter-row.component.d.ts +8 -5
  20. package/table/components/search-section/search-section.component.d.ts +4 -8
  21. package/table/models/filter-field.config.d.ts +11 -0
  22. package/table/models/operands-lists/select-filter-operands-list.model.d.ts +6 -0
  23. package/table/models/table-config.model.d.ts +11 -0
  24. package/table/models/table.config.d.ts +11 -0
  25. package/table/services/current-search-request.service.d.ts +164 -0
  26. package/table/services/default-filters-operands.service.d.ts +2 -2
  27. package/table/services/stores/filters-operands.store.d.ts +2 -2
  28. package/table/table.component.d.ts +4 -9
  29. package/table/tools/filters.tools.d.ts +2 -1
@@ -1,54 +1,70 @@
1
- import { DataTypeEnum, BooleanColumnFilter, DateColumnFilter, NumberColumnFilter, GuidColumnFilter, StringColumnFilter } from '@updevs/sdk/stores';
1
+ import { BooleanColumnFilter, DateColumnFilter, NumberColumnFilter, GuidColumnFilter, StringColumnFilter, SelectColumnFilter, FilterTypeEnum } from '@updevs/sdk/stores';
2
2
  export class FilterTools {
3
3
  static convertToFilterItem(filters, operands) {
4
4
  return filters.map(f => ({
5
5
  name: f.column,
6
6
  value: f.value,
7
- operandConfig: operands[f.dataType].find(op => op.operand === f.operand),
8
- isHidden: f.isHidden
7
+ operandConfig: f.type && operands[f.type] ? operands[f.type].find(op => op.operand === f.operand) : undefined,
8
+ isHidden: f.isHidden,
9
+ type: f.type
9
10
  }));
10
11
  }
11
- static convertToRequestFilter(filters, columns) {
12
+ static convertToRequestFilter(filters, filtersConfigs = [], columns = []) {
12
13
  return filters.map(af => {
13
- const col = columns.find(c => c.name === af.name);
14
- switch (col?.dataType) {
15
- case DataTypeEnum.Boolean:
14
+ const filterType = filtersConfigs.length > 0
15
+ ? filtersConfigs.find(c => c.name === af.name).type
16
+ : columns.find(c => c.name === af.name).filterType;
17
+ switch (filterType) {
18
+ case FilterTypeEnum.Boolean:
16
19
  return new BooleanColumnFilter({
17
20
  column: af.name,
18
21
  value: af.value,
19
22
  operand: !!af.operandConfig ? af.operandConfig.operand : undefined,
20
- isHidden: af.isHidden
23
+ isHidden: af.isHidden,
24
+ type: filterType
21
25
  });
22
- case DataTypeEnum.Date:
26
+ case FilterTypeEnum.Date:
23
27
  return new DateColumnFilter({
24
28
  column: af.name,
25
29
  value: af.value,
26
30
  operand: !!af.operandConfig ? af.operandConfig.operand : undefined,
27
- isHidden: af.isHidden
31
+ isHidden: af.isHidden,
32
+ type: filterType
28
33
  });
29
- case DataTypeEnum.Number:
34
+ case FilterTypeEnum.Number:
30
35
  return new NumberColumnFilter({
31
36
  column: af.name,
32
37
  value: af.value,
33
38
  operand: !!af.operandConfig ? af.operandConfig.operand : undefined,
34
- isHidden: af.isHidden
39
+ isHidden: af.isHidden,
40
+ type: filterType
35
41
  });
36
- case DataTypeEnum.Guid:
42
+ case FilterTypeEnum.Select:
43
+ return new SelectColumnFilter({
44
+ column: af.name,
45
+ value: af.value,
46
+ operand: !!af.operandConfig ? af.operandConfig.operand : undefined,
47
+ isHidden: af.isHidden,
48
+ type: filterType
49
+ });
50
+ case FilterTypeEnum.Guid:
37
51
  return new GuidColumnFilter({
38
52
  column: af.name,
39
53
  value: af.value,
40
54
  operand: !!af.operandConfig ? af.operandConfig.operand : undefined,
41
- isHidden: af.isHidden
55
+ isHidden: af.isHidden,
56
+ type: filterType
42
57
  });
43
58
  default:
44
59
  return new StringColumnFilter({
45
60
  column: af.name,
46
61
  value: af.value,
47
62
  operand: !!af.operandConfig ? af.operandConfig.operand : undefined,
48
- isHidden: af.isHidden
63
+ isHidden: af.isHidden,
64
+ type: filterType
49
65
  });
50
66
  }
51
67
  });
52
68
  }
53
69
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy50b29scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJsZS9zcmMvdG9vbHMvZmlsdGVycy50b29scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsWUFBWSxFQUNaLG1CQUFtQixFQUVuQixnQkFBZ0IsRUFFaEIsa0JBQWtCLEVBRWxCLGdCQUFnQixFQUVoQixrQkFBa0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQU81QixNQUFNLE9BQU8sV0FBVztJQUNwQixNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBcUIsRUFBRSxRQUEwRDtRQUN4RyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTtZQUNkLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztZQUNkLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUN4RSxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7U0FDdkIsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE9BQTBCLEVBQUUsT0FBMEI7UUFDaEYsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVsRCxRQUFRLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyxZQUFZLENBQUMsT0FBTztvQkFDckIsT0FBTyxJQUFJLG1CQUFtQixDQUFDO3dCQUMzQixNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUk7d0JBQ2YsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLO3dCQUNmLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQTJCLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTO3dCQUM1RixRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVE7cUJBQ3hCLENBQUMsQ0FBQztnQkFDUCxLQUFLLFlBQVksQ0FBQyxJQUFJO29CQUNsQixPQUFPLElBQUksZ0JBQWdCLENBQUM7d0JBQ3hCLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSTt3QkFDZixLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUs7d0JBQ2YsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBd0IsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7d0JBQ3pGLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUTtxQkFDeEIsQ0FBQyxDQUFDO2dCQUNQLEtBQUssWUFBWSxDQUFDLE1BQU07b0JBQ3BCLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQzt3QkFDMUIsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJO3dCQUNmLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSzt3QkFDZixPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUEwQixFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUzt3QkFDM0YsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRO3FCQUN4QixDQUFDLENBQUM7Z0JBQ1AsS0FBSyxZQUFZLENBQUMsSUFBSTtvQkFDbEIsT0FBTyxJQUFJLGdCQUFnQixDQUFDO3dCQUN4QixNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUk7d0JBQ2YsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLO3dCQUNmLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQW9CLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTO3dCQUNyRixRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVE7cUJBQ3hCLENBQUMsQ0FBQztnQkFDUDtvQkFDSSxPQUFPLElBQUksa0JBQWtCLENBQUM7d0JBQzFCLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSTt3QkFDZixLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUs7d0JBQ2YsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBb0IsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7d0JBQ3JGLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUTtxQkFDeEIsQ0FBQyxDQUFDO1lBQ1gsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBCYXNlRmlsdGVyLFxuICAgIERhdGFUeXBlRW51bSxcbiAgICBCb29sZWFuQ29sdW1uRmlsdGVyLFxuICAgIEZpbHRlckJvb2xlYW5PcGVyYW5kRW51bSxcbiAgICBEYXRlQ29sdW1uRmlsdGVyLFxuICAgIEZpbHRlckRhdGVPcGVyYW5kRW51bSxcbiAgICBOdW1iZXJDb2x1bW5GaWx0ZXIsXG4gICAgRmlsdGVyTnVtYmVyT3BlcmFuZEVudW0sXG4gICAgR3VpZENvbHVtbkZpbHRlcixcbiAgICBGaWx0ZXJPcGVyYW5kRW51bSxcbiAgICBTdHJpbmdDb2x1bW5GaWx0ZXJcbn0gZnJvbSAnQHVwZGV2cy9zZGsvc3RvcmVzJztcbmltcG9ydCB7IE5vbk51bGxhYmxlRGljdGlvbmFyeVR5cGUgfSBmcm9tICdAdXBkZXZzL3Nkay90eXBlcyc7XG5cbmltcG9ydCB7IEZpbHRlckl0ZW1Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9maWx0ZXItaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBCYXNlQ29sdW1uTW9kZWwgfSBmcm9tICcuLi9hYnN0cmFjdGlvbnMvYmFzZS1jb2x1bW4ubW9kZWwnO1xuaW1wb3J0IHsgRmlsdGVyT3BlcmFuZENvbmZpZyB9IGZyb20gJy4uL21vZGVscy9maWx0ZXItb3BlcmFuZC5jb25maWcnO1xuXG5leHBvcnQgY2xhc3MgRmlsdGVyVG9vbHMge1xuICAgIHN0YXRpYyBjb252ZXJ0VG9GaWx0ZXJJdGVtKGZpbHRlcnM6IEJhc2VGaWx0ZXJbXSwgb3BlcmFuZHM6IE5vbk51bGxhYmxlRGljdGlvbmFyeVR5cGU8RmlsdGVyT3BlcmFuZENvbmZpZ1tdPik6IEZpbHRlckl0ZW1Nb2RlbFtdIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlcnMubWFwKGYgPT4gKHtcbiAgICAgICAgICAgIG5hbWU6IGYuY29sdW1uLFxuICAgICAgICAgICAgdmFsdWU6IGYudmFsdWUsXG4gICAgICAgICAgICBvcGVyYW5kQ29uZmlnOiBvcGVyYW5kc1tmLmRhdGFUeXBlXS5maW5kKG9wID0+IG9wLm9wZXJhbmQgPT09IGYub3BlcmFuZCksXG4gICAgICAgICAgICBpc0hpZGRlbjogZi5pc0hpZGRlblxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGNvbnZlcnRUb1JlcXVlc3RGaWx0ZXIoZmlsdGVyczogRmlsdGVySXRlbU1vZGVsW10sIGNvbHVtbnM6IEJhc2VDb2x1bW5Nb2RlbFtdKTogQmFzZUZpbHRlcltdIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlcnMubWFwKGFmID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbCA9IGNvbHVtbnMuZmluZChjID0+IGMubmFtZSA9PT0gYWYubmFtZSk7XG5cbiAgICAgICAgICAgIHN3aXRjaCAoY29sPy5kYXRhVHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgRGF0YVR5cGVFbnVtLkJvb2xlYW46XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQm9vbGVhbkNvbHVtbkZpbHRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGFmLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYWYudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYW5kOiAhIWFmLm9wZXJhbmRDb25maWcgPyA8RmlsdGVyQm9vbGVhbk9wZXJhbmRFbnVtPmFmLm9wZXJhbmRDb25maWcub3BlcmFuZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSGlkZGVuOiBhZi5pc0hpZGRlblxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjYXNlIERhdGFUeXBlRW51bS5EYXRlOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGVDb2x1bW5GaWx0ZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBhZi5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGFmLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmFuZDogISFhZi5vcGVyYW5kQ29uZmlnID8gPEZpbHRlckRhdGVPcGVyYW5kRW51bT5hZi5vcGVyYW5kQ29uZmlnLm9wZXJhbmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0hpZGRlbjogYWYuaXNIaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY2FzZSBEYXRhVHlwZUVudW0uTnVtYmVyOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bWJlckNvbHVtbkZpbHRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGFmLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYWYudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYW5kOiAhIWFmLm9wZXJhbmRDb25maWcgPyA8RmlsdGVyTnVtYmVyT3BlcmFuZEVudW0+YWYub3BlcmFuZENvbmZpZy5vcGVyYW5kIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNIaWRkZW46IGFmLmlzSGlkZGVuXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNhc2UgRGF0YVR5cGVFbnVtLkd1aWQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgR3VpZENvbHVtbkZpbHRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGFmLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYWYudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYW5kOiAhIWFmLm9wZXJhbmRDb25maWcgPyA8RmlsdGVyT3BlcmFuZEVudW0+YWYub3BlcmFuZENvbmZpZy5vcGVyYW5kIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNIaWRkZW46IGFmLmlzSGlkZGVuXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQ29sdW1uRmlsdGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogYWYubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBhZi52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhbmQ6ICEhYWYub3BlcmFuZENvbmZpZyA/IDxGaWx0ZXJPcGVyYW5kRW51bT5hZi5vcGVyYW5kQ29uZmlnLm9wZXJhbmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0hpZGRlbjogYWYuaXNIaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy50b29scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJsZS9zcmMvdG9vbHMvZmlsdGVycy50b29scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsbUJBQW1CLEVBRW5CLGdCQUFnQixFQUVoQixrQkFBa0IsRUFFbEIsZ0JBQWdCLEVBRWhCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsY0FBYyxFQUNqQixNQUFNLG9CQUFvQixDQUFDO0FBUTVCLE1BQU0sT0FBTyxXQUFXO0lBQ3BCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFxQixFQUFFLFFBQTBEO1FBQ3hHLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNO1lBQ2QsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1lBQ2QsYUFBYSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUM3RyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7WUFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO1NBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE9BQTBCLEVBQUUsaUJBQXNDLEVBQUUsRUFBRSxVQUE2QixFQUFFO1FBQy9ILE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNwQixNQUFNLFVBQVUsR0FDWixjQUFjLENB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LEVBQUUsQ0FBQyxLQUFLO3dCQUNmLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQW9CLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTO3dCQUNyRixRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVE7d0JBQ3JCLElBQUksRUFBRSxVQUFVO3FCQUNuQixDQUFDLENBQUM7WUFDWCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEJhc2VGaWx0ZXIsXG4gICAgQm9vbGVhbkNvbHVtbkZpbHRlcixcbiAgICBGaWx0ZXJCb29sZWFuT3BlcmFuZEVudW0sXG4gICAgRGF0ZUNvbHVtbkZpbHRlcixcbiAgICBGaWx0ZXJEYXRlT3BlcmFuZEVudW0sXG4gICAgTnVtYmVyQ29sdW1uRmlsdGVyLFxuICAgIEZpbHRlck51bWJlck9wZXJhbmRFbnVtLFxuICAgIEd1aWRDb2x1bW5GaWx0ZXIsXG4gICAgRmlsdGVyT3BlcmFuZEVudW0sXG4gICAgU3RyaW5nQ29sdW1uRmlsdGVyLFxuICAgIFNlbGVjdENvbHVtbkZpbHRlcixcbiAgICBGaWx0ZXJUeXBlRW51bVxufSBmcm9tICdAdXBkZXZzL3Nkay9zdG9yZXMnO1xuaW1wb3J0IHsgTm9uTnVsbGFibGVEaWN0aW9uYXJ5VHlwZSB9IGZyb20gJ0B1cGRldnMvc2RrL3R5cGVzJztcblxuaW1wb3J0IHsgRmlsdGVySXRlbU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2ZpbHRlci1pdGVtLm1vZGVsJztcbmltcG9ydCB7IEJhc2VDb2x1bW5Nb2RlbCB9IGZyb20gJy4uL2Fic3RyYWN0aW9ucy9iYXNlLWNvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBGaWx0ZXJPcGVyYW5kQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2ZpbHRlci1vcGVyYW5kLmNvbmZpZyc7XG5pbXBvcnQgeyBGaWx0ZXJGaWVsZENvbmZpZyB9IGZyb20gJy4uL21vZGVscy9maWx0ZXItZmllbGQuY29uZmlnJztcblxuZXhwb3J0IGNsYXNzIEZpbHRlclRvb2xzIHtcbiAgICBzdGF0aWMgY29udmVydFRvRmlsdGVySXRlbShmaWx0ZXJzOiBCYXNlRmlsdGVyW10sIG9wZXJhbmRzOiBOb25OdWxsYWJsZURpY3Rpb25hcnlUeXBlPEZpbHRlck9wZXJhbmRDb25maWdbXT4pOiBGaWx0ZXJJdGVtTW9kZWxbXSB7XG4gICAgICAgIHJldHVybiBmaWx0ZXJzLm1hcChmID0+ICh7XG4gICAgICAgICAgICBuYW1lOiBmLmNvbHVtbixcbiAgICAgICAgICAgIHZhbHVlOiBmLnZhbHVlLFxuICAgICAgICAgICAgb3BlcmFuZENvbmZpZzogZi50eXBlICYmIG9wZXJhbmRzW2YudHlwZV0gPyBvcGVyYW5kc1tmLnR5cGVdLmZpbmQob3AgPT4gb3Aub3BlcmFuZCA9PT0gZi5vcGVyYW5kKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGlzSGlkZGVuOiBmLmlzSGlkZGVuLFxuICAgICAgICAgICAgdHlwZTogZi50eXBlXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgY29udmVydFRvUmVxdWVzdEZpbHRlcihmaWx0ZXJzOiBGaWx0ZXJJdGVtTW9kZWxbXSwgZmlsdGVyc0NvbmZpZ3M6IEZpbHRlckZpZWxkQ29uZmlnW10gPSBbXSwgY29sdW1uczogQmFzZUNvbHVtbk1vZGVsW10gPSBbXSk6IEJhc2VGaWx0ZXJbXSB7XG4gICAgICAgIHJldHVybiBmaWx0ZXJzLm1hcChhZiA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlRW51bSA9XG4gICAgICAgICAgICAgICAgZmlsdGVyc0NvbmZpZ3MubGVuZ3RoID4gMFxuICAgICAgICAgICAgICAgICAgICA/IGZpbHRlcnNDb25maWdzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGFmLm5hbWUpIS50eXBlXG4gICAgICAgICAgICAgICAgICAgIDogY29sdW1ucy5maW5kKGMgPT4gYy5uYW1lID09PSBhZi5uYW1lKSEuZmlsdGVyVHlwZSE7XG5cbiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZUVudW0uQm9vbGVhbjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBCb29sZWFuQ29sdW1uRmlsdGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogYWYubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBhZi52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhbmQ6ICEhYWYub3BlcmFuZENvbmZpZyA/IDxGaWx0ZXJCb29sZWFuT3BlcmFuZEVudW0+YWYub3BlcmFuZENvbmZpZy5vcGVyYW5kIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNIaWRkZW46IGFmLmlzSGlkZGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogZmlsdGVyVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjYXNlIEZpbHRlclR5cGVFbnVtLkRhdGU6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZUNvbHVtbkZpbHRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGFmLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYWYudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYW5kOiAhIWFmLm9wZXJhbmRDb25maWcgPyA8RmlsdGVyRGF0ZU9wZXJhbmRFbnVtPmFmLm9wZXJhbmRDb25maWcub3BlcmFuZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSGlkZGVuOiBhZi5pc0hpZGRlbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGZpbHRlclR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlRW51bS5OdW1iZXI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTnVtYmVyQ29sdW1uRmlsdGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogYWYubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBhZi52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhbmQ6ICEhYWYub3BlcmFuZENvbmZpZyA/IDxGaWx0ZXJOdW1iZXJPcGVyYW5kRW51bT5hZi5vcGVyYW5kQ29uZmlnLm9wZXJhbmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0hpZGRlbjogYWYuaXNIaWRkZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBmaWx0ZXJUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZUVudW0uU2VsZWN0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNlbGVjdENvbHVtbkZpbHRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGFmLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYWYudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYW5kOiAhIWFmLm9wZXJhbmRDb25maWcgPyA8RmlsdGVyT3BlcmFuZEVudW0+YWYub3BlcmFuZENvbmZpZy5vcGVyYW5kIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNIaWRkZW46IGFmLmlzSGlkZGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogZmlsdGVyVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjYXNlIEZpbHRlclR5cGVFbnVtLkd1aWQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgR3VpZENvbHVtbkZpbHRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGFmLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYWYudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYW5kOiAhIWFmLm9wZXJhbmRDb25maWcgPyA8RmlsdGVyT3BlcmFuZEVudW0+YWYub3BlcmFuZENvbmZpZy5vcGVyYW5kIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNIaWRkZW46IGFmLmlzSGlkZGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogZmlsdGVyVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0NvbHVtbkZpbHRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGFmLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYWYudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYW5kOiAhIWFmLm9wZXJhbmRDb25maWcgPyA8RmlsdGVyT3BlcmFuZEVudW0+YWYub3BlcmFuZENvbmZpZy5vcGVyYW5kIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNIaWRkZW46IGFmLmlzSGlkZGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogZmlsdGVyVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19