@theseam/ui-common 0.4.26 → 0.4.28-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +1 -1
  2. package/datatable/datatable/datatable.component.d.ts +60 -9
  3. package/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.d.ts +25 -0
  4. package/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.d.ts +18 -0
  5. package/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.d.ts +16 -0
  6. package/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.d.ts +15 -0
  7. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -2
  8. package/datatable/datatable.module.d.ts +29 -20
  9. package/datatable/directives/datatable-column-filter-tpl.directive.d.ts +8 -0
  10. package/datatable/directives/datatable-column-filter.directive.d.ts +10 -0
  11. package/datatable/models/action-item-column-position.d.ts +13 -0
  12. package/datatable/models/columns-data-filter.d.ts +57 -0
  13. package/datatable/models/columns-data-filters/models.d.ts +65 -0
  14. package/datatable/models/columns-data-filters/search-date.columns-data-filter.d.ts +23 -0
  15. package/datatable/models/columns-data-filters/search-numeric.columns-data-filter.d.ts +22 -0
  16. package/datatable/models/columns-data-filters/search-text.columns-data-filter.d.ts +21 -0
  17. package/datatable/models/columns-data-filters/utils.d.ts +15 -0
  18. package/datatable/models/datatable-config.d.ts +90 -0
  19. package/datatable/models/table-column.d.ts +22 -1
  20. package/datatable/public-api.d.ts +14 -0
  21. package/datatable/services/columns-filters.service.d.ts +29 -0
  22. package/datatable/services/columns-manager.service.d.ts +7 -0
  23. package/datatable/utils/create-action-menu-column.d.ts +1 -1
  24. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +2 -2
  25. package/esm2020/datatable/datatable/datatable.component.mjs +231 -31
  26. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +2 -2
  27. package/esm2020/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.mjs +55 -0
  28. package/esm2020/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.mjs +54 -0
  29. package/esm2020/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.mjs +48 -0
  30. package/esm2020/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.mjs +44 -0
  31. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +1 -1
  32. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +1 -1
  33. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +1 -1
  34. package/esm2020/datatable/datatable.module.mjs +49 -7
  35. package/esm2020/datatable/directives/datatable-column-filter-tpl.directive.mjs +16 -0
  36. package/esm2020/datatable/directives/datatable-column-filter.directive.mjs +26 -0
  37. package/esm2020/datatable/models/action-item-column-position.mjs +5 -0
  38. package/esm2020/datatable/models/columns-data-filter.mjs +10 -0
  39. package/esm2020/datatable/models/columns-data-filters/models.mjs +74 -0
  40. package/esm2020/datatable/models/columns-data-filters/search-date.columns-data-filter.mjs +113 -0
  41. package/esm2020/datatable/models/columns-data-filters/search-numeric.columns-data-filter.mjs +104 -0
  42. package/esm2020/datatable/models/columns-data-filters/search-text.columns-data-filter.mjs +86 -0
  43. package/esm2020/datatable/models/columns-data-filters/utils.mjs +28 -0
  44. package/esm2020/datatable/models/datatable-config.mjs +3 -0
  45. package/esm2020/datatable/models/table-column.mjs +1 -1
  46. package/esm2020/datatable/public-api.mjs +15 -1
  47. package/esm2020/datatable/services/columns-filters.service.mjs +109 -0
  48. package/esm2020/datatable/services/columns-manager.service.mjs +27 -2
  49. package/esm2020/datatable/utils/create-action-menu-column.mjs +4 -3
  50. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +1 -1
  51. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +1 -1
  52. package/esm2020/framework/base-layout/base-layout.component.mjs +14 -4
  53. package/esm2020/framework/base-layout/base-layout.module.mjs +6 -1
  54. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +21 -5
  55. package/esm2020/framework/base-layout/directives/base-layout-side-bar-header.directive.mjs +16 -0
  56. package/esm2020/framework/base-layout/index.mjs +2 -1
  57. package/esm2020/framework/nav/horizontal-nav/horizontal-nav.component.mjs +55 -0
  58. package/esm2020/framework/nav/index.mjs +6 -0
  59. package/esm2020/framework/nav/nav-item/nav-item.component.mjs +227 -0
  60. package/esm2020/framework/nav/nav-utils.mjs +107 -0
  61. package/esm2020/framework/nav/nav.models.mjs +2 -0
  62. package/esm2020/framework/nav/nav.module.mjs +67 -0
  63. package/esm2020/framework/nav/nav.service.mjs +204 -0
  64. package/esm2020/framework/public-api.mjs +2 -1
  65. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +2 -2
  66. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +28 -67
  67. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +12 -5
  68. package/esm2020/framework/side-nav/side-nav.component.mjs +116 -38
  69. package/esm2020/framework/side-nav/side-nav.models.mjs +1 -1
  70. package/esm2020/framework/side-nav/side-nav.module.mjs +9 -39
  71. package/esm2020/framework/side-nav/side-nav.service.mjs +1 -1
  72. package/esm2020/framework/top-bar/index.mjs +3 -1
  73. package/esm2020/framework/top-bar/top-bar-compact-menu-btn-detail.directive.mjs +16 -0
  74. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +10 -4
  75. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +6 -4
  76. package/esm2020/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.mjs +16 -0
  77. package/esm2020/framework/top-bar/top-bar.component.mjs +55 -11
  78. package/esm2020/framework/top-bar/top-bar.module.mjs +15 -5
  79. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +1 -1
  80. package/esm2020/graphql/datatable/index.mjs +4 -1
  81. package/esm2020/graphql/datatable/map-filter-states.mjs +1 -1
  82. package/esm2020/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.mjs +139 -0
  83. package/esm2020/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.mjs +75 -0
  84. package/esm2020/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.mjs +44 -0
  85. package/esm2020/layout/layout.service.mjs +12 -2
  86. package/esm2020/menu/menu-toggle.directive.mjs +7 -2
  87. package/esm2020/popover/popover/popover.component.mjs +7 -3
  88. package/esm2020/popover/popover.directive.mjs +6 -2
  89. package/esm2020/rich-text/public-api.mjs +1 -1
  90. package/esm2020/rich-text/rich-text/rich-text.component.mjs +24 -3
  91. package/esm2020/rich-text/utils/models.mjs +1 -1
  92. package/esm2020/rich-text/utils/utils.mjs +1 -1
  93. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +5 -3
  94. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +2 -2
  95. package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  96. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +2 -2
  97. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  98. package/fesm2015/theseam-ui-common-datatable.mjs +1025 -62
  99. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  100. package/fesm2015/theseam-ui-common-framework.mjs +905 -156
  101. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  102. package/fesm2015/theseam-ui-common-graphql.mjs +254 -1
  103. package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
  104. package/fesm2015/theseam-ui-common-layout.mjs +11 -2
  105. package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
  106. package/fesm2015/theseam-ui-common-menu.mjs +6 -1
  107. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  108. package/fesm2015/theseam-ui-common-popover.mjs +11 -3
  109. package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
  110. package/fesm2015/theseam-ui-common-rich-text.mjs +25 -2
  111. package/fesm2015/theseam-ui-common-rich-text.mjs.map +1 -1
  112. package/fesm2015/theseam-ui-common-table-cell-types.mjs +4 -2
  113. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  114. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +2 -2
  115. package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  116. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +2 -2
  117. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  118. package/fesm2020/theseam-ui-common-datatable.mjs +1010 -62
  119. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  120. package/fesm2020/theseam-ui-common-framework.mjs +907 -156
  121. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  122. package/fesm2020/theseam-ui-common-graphql.mjs +254 -1
  123. package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
  124. package/fesm2020/theseam-ui-common-layout.mjs +11 -2
  125. package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
  126. package/fesm2020/theseam-ui-common-menu.mjs +6 -1
  127. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  128. package/fesm2020/theseam-ui-common-popover.mjs +11 -3
  129. package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
  130. package/fesm2020/theseam-ui-common-rich-text.mjs +23 -2
  131. package/fesm2020/theseam-ui-common-rich-text.mjs.map +1 -1
  132. package/fesm2020/theseam-ui-common-table-cell-types.mjs +4 -2
  133. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  134. package/framework/base-layout/base-layout.component.d.ts +4 -2
  135. package/framework/base-layout/base-layout.component.scss +18 -10
  136. package/framework/base-layout/base-layout.module.d.ts +11 -10
  137. package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +8 -3
  138. package/framework/base-layout/directives/base-layout-side-bar-header.directive.d.ts +9 -0
  139. package/framework/base-layout/index.d.ts +1 -0
  140. package/framework/base-layout/styles/_variables.scss +21 -0
  141. package/framework/nav/_nav-theme.scss +4 -0
  142. package/framework/nav/horizontal-nav/horizontal-nav.component.d.ts +25 -0
  143. package/framework/nav/horizontal-nav/horizontal-nav.component.scss +50 -0
  144. package/framework/nav/index.d.ts +5 -0
  145. package/framework/nav/nav-item/nav-item.component.d.ts +74 -0
  146. package/framework/nav/nav-item/nav-item.component.scss +203 -0
  147. package/framework/nav/nav-utils.d.ts +20 -0
  148. package/framework/nav/nav.models.d.ts +77 -0
  149. package/framework/nav/nav.module.d.ts +17 -0
  150. package/framework/nav/nav.service.d.ts +27 -0
  151. package/framework/nav/styles/_themes/light/_variables.scss +56 -0
  152. package/framework/nav/styles/_themes/primary/_variables.scss +56 -0
  153. package/framework/nav/styles/_utilities.scss +3 -0
  154. package/framework/nav/styles/_variables.scss +2 -0
  155. package/framework/public-api.d.ts +1 -0
  156. package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +7 -14
  157. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +7 -5
  158. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +5 -3
  159. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +3 -6
  160. package/framework/side-nav/side-nav.component.d.ts +13 -1
  161. package/framework/side-nav/side-nav.component.scss +0 -1
  162. package/framework/side-nav/side-nav.models.d.ts +7 -1
  163. package/framework/side-nav/side-nav.module.d.ts +1 -9
  164. package/framework/side-nav/styles/_themes/light/_variables.scss +24 -14
  165. package/framework/side-nav/styles/_themes/primary/_variables.scss +8 -0
  166. package/framework/top-bar/index.d.ts +2 -0
  167. package/framework/top-bar/top-bar-compact-menu-btn-detail.directive.d.ts +8 -0
  168. package/framework/top-bar/top-bar-item.directive.d.ts +4 -1
  169. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +5 -2
  170. package/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.d.ts +8 -0
  171. package/framework/top-bar/top-bar.component.d.ts +25 -3
  172. package/framework/top-bar/top-bar.component.scss +7 -2
  173. package/framework/top-bar/top-bar.module.d.ts +10 -8
  174. package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
  175. package/graphql/datatable/index.d.ts +3 -0
  176. package/graphql/datatable/map-filter-states.d.ts +2 -2
  177. package/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.d.ts +4 -0
  178. package/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.d.ts +4 -0
  179. package/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.d.ts +4 -0
  180. package/layout/layout.service.d.ts +9 -1
  181. package/menu/menu-toggle.directive.d.ts +2 -1
  182. package/package.json +2 -2
  183. package/popover/popover/popover.component.d.ts +4 -1
  184. package/popover/popover.directive.d.ts +2 -1
  185. package/rich-text/rich-text/rich-text.component.d.ts +6 -4
  186. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +83 -14
  187. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +38 -3
@@ -0,0 +1,104 @@
1
+ import { ColumnsDataFilter } from "../columns-data-filter";
2
+ import { FormControl, FormGroup } from "@angular/forms";
3
+ import { isNullOrUndefined, isNullOrUndefinedOrEmpty, notNullOrUndefined, notNullOrUndefinedOrEmpty } from "@theseam/ui-common/utils";
4
+ import { Subject, map, startWith } from "rxjs";
5
+ import { THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES } from "./models";
6
+ export class SearchNumericColumnsDataFilter extends ColumnsDataFilter {
7
+ constructor(prop, initialValue, column) {
8
+ super(prop, initialValue, column);
9
+ this.name = THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME;
10
+ this._updateFilterValue = new Subject;
11
+ this.form = new FormGroup({
12
+ searchType: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchType : 'eq'),
13
+ searchText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchText : null),
14
+ fromText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.fromText : null),
15
+ toText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.toText : null),
16
+ });
17
+ this.uid = `${this.name}--${prop}`;
18
+ this.filterStateChanges = this._updateFilterValue.pipe(startWith(undefined), map(() => this.filterState()));
19
+ }
20
+ dataFilter(data, filterValue, options) {
21
+ if (isNullOrUndefined(filterValue) || this.isDefault()) {
22
+ return data;
23
+ }
24
+ return this.numberSearchDataFilter(this.prop, data, filterValue.searchText, filterValue.fromText, filterValue.toText, filterValue.searchType || null);
25
+ }
26
+ _isInvalidSearchTerm(searchText, fromText, toText, comparator) {
27
+ if (isNaN(searchText) && THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(comparator)) {
28
+ return true;
29
+ }
30
+ else if ((isNaN(fromText) || isNaN(toText)) && THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(comparator)) {
31
+ return true;
32
+ }
33
+ return false;
34
+ }
35
+ numberSearchDataFilter(prop, data, text, fromText, toText, comparator) {
36
+ if (!data || data.length <= 0 || isNullOrUndefined(comparator)) {
37
+ console.warn('No filter applied - invalid options.');
38
+ return data;
39
+ }
40
+ const textNumeric = notNullOrUndefinedOrEmpty(text) ? parseFloat(text) : NaN;
41
+ const toTextNumeric = notNullOrUndefinedOrEmpty(toText) ? parseFloat(toText) : NaN;
42
+ const fromTextNumeric = notNullOrUndefinedOrEmpty(fromText) ? parseFloat(fromText) : NaN;
43
+ if (this._isInvalidSearchTerm(textNumeric, fromTextNumeric, toTextNumeric, comparator)) {
44
+ console.warn('No filter applied - invalid search terms.');
45
+ return data;
46
+ }
47
+ return data.filter(item => {
48
+ let propNumeric = parseFloat(item[prop]);
49
+ if ((comparator === 'blank' && (isNullOrUndefined(item[prop]) || isNullOrUndefinedOrEmpty(`${item[prop]}`))) ||
50
+ (comparator === 'not-blank' && notNullOrUndefined(item[prop]) && notNullOrUndefinedOrEmpty(`${item[prop]}`)) ||
51
+ (comparator === 'lt' && propNumeric < textNumeric) ||
52
+ (comparator === 'lte' && propNumeric <= textNumeric) ||
53
+ (comparator === 'gt' && propNumeric > textNumeric) ||
54
+ (comparator === 'gte' && propNumeric >= textNumeric) ||
55
+ (comparator === 'eq' && propNumeric === textNumeric) ||
56
+ (comparator === 'between' && propNumeric >= fromTextNumeric && propNumeric <= toTextNumeric) ||
57
+ (comparator === 'not-between' && !(propNumeric >= fromTextNumeric && propNumeric <= toTextNumeric))) {
58
+ return true;
59
+ }
60
+ return false;
61
+ });
62
+ }
63
+ filter(data) {
64
+ return this._updateFilterValue.pipe(startWith(undefined), map(() => this.dataFilter(data, this.form.value, undefined)));
65
+ }
66
+ filterState() {
67
+ return {
68
+ name: this.name,
69
+ state: {
70
+ prop: this.prop,
71
+ formValue: this.form.value
72
+ }
73
+ };
74
+ }
75
+ applyFilter() {
76
+ this._updateFilterValue.next();
77
+ }
78
+ clearFilter() {
79
+ this.form.setValue({
80
+ searchType: 'eq',
81
+ searchText: null,
82
+ fromText: null,
83
+ toText: null
84
+ });
85
+ this._updateFilterValue.next();
86
+ }
87
+ isDefault() {
88
+ const formValue = this.form.value;
89
+ if (isNullOrUndefinedOrEmpty(formValue.searchType)) {
90
+ return true;
91
+ }
92
+ else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES.includes(formValue.searchType)) {
93
+ return false;
94
+ }
95
+ else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefinedOrEmpty(formValue.searchText)) {
96
+ return false;
97
+ }
98
+ else if (THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefinedOrEmpty(formValue.fromText) && notNullOrUndefinedOrEmpty(formValue.toText)) {
99
+ return false;
100
+ }
101
+ return true;
102
+ }
103
+ }
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLW51bWVyaWMuY29sdW1ucy1kYXRhLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvbW9kZWxzL2NvbHVtbnMtZGF0YS1maWx0ZXJzL3NlYXJjaC1udW1lcmljLmNvbHVtbnMtZGF0YS1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUEwQixNQUFNLHdCQUF3QixDQUFDO0FBRW5GLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEksT0FBTyxFQUFjLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBNkYsK0NBQStDLEVBQTZDLHFEQUFxRCxFQUFFLHNEQUFzRCxFQUFFLHVEQUF1RCxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXpYLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxpQkFBdUg7SUFhekssWUFDRSxJQUFZLEVBQ1osWUFBNEQsRUFDNUQsTUFBOEI7UUFFOUIsS0FBSyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFqQm5CLFNBQUksR0FBRywrQ0FBK0MsQ0FBQTtRQVU5RCx1QkFBa0IsR0FBRyxJQUFJLE9BQWEsQ0FBQTtRQVM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDO1lBQ3hCLFVBQVUsRUFBRSxJQUFJLFdBQVcsQ0FBbUQsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNoSixVQUFVLEVBQUUsSUFBSSxXQUFXLENBQWdCLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDN0csUUFBUSxFQUFFLElBQUksV0FBVyxDQUFnQixrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3pHLE1BQU0sRUFBRSxJQUFJLFdBQVcsQ0FBZ0Isa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUN0RyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQTtRQUVsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FDcEQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUNwQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQzlCLENBQUE7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUFDLElBQVcsRUFBRSxXQUFvRSxFQUFFLE9BQVk7UUFDL0csSUFBSSxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDdEQsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLENBQUE7SUFDdkosQ0FBQztJQUVPLG9CQUFvQixDQUFDLFVBQWtCLEVBQUUsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsVUFBcUQ7UUFDdEksSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUkscURBQXFELENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ25HLE9BQU8sSUFBSSxDQUFBO1NBQ1o7YUFDSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLHNEQUFzRCxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMxSCxPQUFPLElBQUksQ0FBQTtTQUNaO1FBRUQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsSUFBWSxFQUFFLElBQVcsRUFBRSxJQUErQixFQUFFLFFBQW1DLEVBQUUsTUFBaUMsRUFBRSxVQUE0RDtRQUM3TixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzlELE9BQU8sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtZQUNwRCxPQUFPLElBQUksQ0FBQTtTQUNaO1FBRUQsTUFBTSxXQUFXLEdBQUcseUJBQXlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO1FBQzVFLE1BQU0sYUFBYSxHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtRQUNsRixNQUFNLGVBQWUsR0FBRyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUE7UUFFeEYsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLEVBQUU7WUFDdEYsT0FBTyxDQUFDLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxDQUFBO1lBQ3pELE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEIsSUFBSSxXQUFXLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBRXhDLElBQ0UsQ0FBQyxVQUFVLEtBQUssT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksd0JBQXdCLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hHLENBQUMsVUFBVSxLQUFLLFdBQVcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSx5QkFBeUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzVHLENBQUMsVUFBVSxLQUFLLElBQUksSUFBSSxXQUFXLEdBQUcsV0FBVyxDQUFDO2dCQUNsRCxDQUFDLFVBQVUsS0FBSyxLQUFLLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQztnQkFDcEQsQ0FBQyxVQUFVLEtBQUssSUFBSSxJQUFJLFdBQVcsR0FBRyxXQUFXLENBQUM7Z0JBQ2xELENBQUMsVUFBVSxLQUFLLEtBQUssSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDO2dCQUNwRCxDQUFDLFVBQVUsS0FBSyxJQUFJLElBQUksV0FBVyxLQUFLLFdBQVcsQ0FBQztnQkFDcEQsQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLFdBQVcsSUFBSSxlQUFlLElBQUksV0FBVyxJQUFJLGFBQWEsQ0FBQztnQkFDNUYsQ0FBQyxVQUFVLEtBQUssYUFBYSxJQUFJLENBQUMsQ0FBQyxXQUFXLElBQUksZUFBZSxJQUFJLFdBQVcsSUFBSSxhQUFhLENBQUMsQ0FBQyxFQUNuRztnQkFDQSxPQUFPLElBQUksQ0FBQTthQUNaO1lBRUQsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBVztRQUN2QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQ2pDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFDcEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQzdELENBQUE7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO2FBQzNCO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNoQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNqQixVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUUsSUFBSTtZQUNoQixRQUFRLEVBQUUsSUFBSTtZQUNkLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFBO0lBQ2hDLENBQUM7SUFFTSxTQUFTO1FBQ2QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUE7UUFFakMsSUFBSSx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbEQsT0FBTyxJQUFJLENBQUE7U0FDWjthQUNJLElBQUksdURBQXVELENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMvRixPQUFPLEtBQUssQ0FBQTtTQUNiO2FBQ0ksSUFBSSxxREFBcUQsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNoSixPQUFPLEtBQUssQ0FBQTtTQUNiO2FBQ0ksSUFBSSxzREFBc0QsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUwsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUVELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sdW1uc0RhdGFGaWx0ZXIsIENvbHVtbnNEYXRhRmlsdGVyU3RhdGUgfSBmcm9tIFwiLi4vY29sdW1ucy1kYXRhLWZpbHRlclwiO1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gXCIuLi90YWJsZS1jb2x1bW5cIjtcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IERhdGFGaWx0ZXJTdGF0ZSB9IGZyb20gXCJAdGhlc2VhbS91aS1jb21tb24vZGF0YS1maWx0ZXJzXCI7XG5pbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCwgaXNOdWxsT3JVbmRlZmluZWRPckVtcHR5LCBub3ROdWxsT3JVbmRlZmluZWQsIG5vdE51bGxPclVuZGVmaW5lZE9yRW1wdHkgfSBmcm9tIFwiQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJOdW1lcmljU2VhcmNoRm9ybVN0YXRlLCBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJOdW1lcmljU2VhcmNoRm9ybSwgVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX05VTUVSSUNfU0VBUkNIX05BTUUsIFRoZVNlYW1Db2x1bW5zRGF0YUZpbHRlck51bWVyaWNTZWFyY2hUeXBlLCBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVJfTlVNRVJJQ19URVhUX1NFQVJDSF9UWVBFUywgVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX05VTUVSSUNfUkFOR0VfU0VBUkNIX1RZUEVTLCBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVJfTlVNRVJJQ19TRUxFQ1RfU0VBUkNIX1RZUEVTIH0gZnJvbSBcIi4vbW9kZWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBTZWFyY2hOdW1lcmljQ29sdW1uc0RhdGFGaWx0ZXIgZXh0ZW5kcyBDb2x1bW5zRGF0YUZpbHRlcjxUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJOdW1lcmljU2VhcmNoRm9ybVN0YXRlLCBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJOdW1lcmljU2VhcmNoRm9ybSwgdW5kZWZpbmVkPiB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lID0gVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX05VTUVSSUNfU0VBUkNIX05BTUVcblxuICBwdWJsaWMgcmVhZG9ubHkgdWlkOiBzdHJpbmdcblxuICBwdWJsaWMgZm9ybTogVGhlU2VhbUNvbHVtbnNEYXRhRmlsdGVyTnVtZXJpY1NlYXJjaEZvcm1cblxuICBwdWJsaWMgZmlsdGVyU3RhdGVDaGFuZ2VzOiBPYnNlcnZhYmxlPERhdGFGaWx0ZXJTdGF0ZT5cblxuICBwdWJsaWMgb3B0aW9uczogYW55XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRmlsdGVyVmFsdWUgPSBuZXcgU3ViamVjdDx2b2lkPlxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3A6IHN0cmluZyxcbiAgICBpbml0aWFsVmFsdWU6IFRoZVNlYW1Db2x1bW5zRGF0YUZpbHRlck51bWVyaWNTZWFyY2hGb3JtU3RhdGUsXG4gICAgY29sdW1uOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uXG4gICkge1xuICAgIHN1cGVyKHByb3AsIGluaXRpYWxWYWx1ZSwgY29sdW1uKVxuXG4gICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBzZWFyY2hUeXBlOiBuZXcgRm9ybUNvbnRyb2w8VGhlU2VhbUNvbHVtbnNEYXRhRmlsdGVyTnVtZXJpY1NlYXJjaFR5cGUgfCBudWxsPihub3ROdWxsT3JVbmRlZmluZWQoaW5pdGlhbFZhbHVlKSA/IGluaXRpYWxWYWx1ZS5zZWFyY2hUeXBlIDogJ2VxJyksXG4gICAgICBzZWFyY2hUZXh0OiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obm90TnVsbE9yVW5kZWZpbmVkKGluaXRpYWxWYWx1ZSkgPyBpbml0aWFsVmFsdWUuc2VhcmNoVGV4dCA6IG51bGwpLFxuICAgICAgZnJvbVRleHQ6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihub3ROdWxsT3JVbmRlZmluZWQoaW5pdGlhbFZhbHVlKSA/IGluaXRpYWxWYWx1ZS5mcm9tVGV4dCA6IG51bGwpLFxuICAgICAgdG9UZXh0OiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obm90TnVsbE9yVW5kZWZpbmVkKGluaXRpYWxWYWx1ZSkgPyBpbml0aWFsVmFsdWUudG9UZXh0IDogbnVsbCksXG4gICAgfSlcblxuICAgIHRoaXMudWlkID0gYCR7dGhpcy5uYW1lfS0tJHtwcm9wfWBcblxuICAgIHRoaXMuZmlsdGVyU3RhdGVDaGFuZ2VzID0gdGhpcy5fdXBkYXRlRmlsdGVyVmFsdWUucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpLFxuICAgICAgbWFwKCgpID0+IHRoaXMuZmlsdGVyU3RhdGUoKSlcbiAgICApXG4gIH1cblxuICBwdWJsaWMgZGF0YUZpbHRlcihkYXRhOiBhbnlbXSwgZmlsdGVyVmFsdWU6IFBhcnRpYWw8VGhlU2VhbUNvbHVtbnNEYXRhRmlsdGVyTnVtZXJpY1NlYXJjaEZvcm1TdGF0ZT4sIG9wdGlvbnM6IGFueSk6IGFueVtdIHtcbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoZmlsdGVyVmFsdWUpIHx8IHRoaXMuaXNEZWZhdWx0KCkpIHtcbiAgICAgIHJldHVybiBkYXRhXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubnVtYmVyU2VhcmNoRGF0YUZpbHRlcih0aGlzLnByb3AsIGRhdGEsIGZpbHRlclZhbHVlLnNlYXJjaFRleHQsIGZpbHRlclZhbHVlLmZyb21UZXh0LCBmaWx0ZXJWYWx1ZS50b1RleHQsIGZpbHRlclZhbHVlLnNlYXJjaFR5cGUgfHwgbnVsbClcbiAgfVxuXG4gIHByaXZhdGUgX2lzSW52YWxpZFNlYXJjaFRlcm0oc2VhcmNoVGV4dDogbnVtYmVyLCBmcm9tVGV4dDogbnVtYmVyLCB0b1RleHQ6IG51bWJlciwgY29tcGFyYXRvcjogVGhlU2VhbUNvbHVtbnNEYXRhRmlsdGVyTnVtZXJpY1NlYXJjaFR5cGUpOiBib29sZWFuIHtcbiAgICBpZiAoaXNOYU4oc2VhcmNoVGV4dCkgJiYgVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX05VTUVSSUNfVEVYVF9TRUFSQ0hfVFlQRVMuaW5jbHVkZXMoY29tcGFyYXRvcikpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGVsc2UgaWYgKChpc05hTihmcm9tVGV4dCkgfHwgaXNOYU4odG9UZXh0KSkgJiYgVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX05VTUVSSUNfUkFOR0VfU0VBUkNIX1RZUEVTLmluY2x1ZGVzKGNvbXBhcmF0b3IpKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSBudW1iZXJTZWFyY2hEYXRhRmlsdGVyKHByb3A6IHN0cmluZywgZGF0YTogYW55W10sIHRleHQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsIGZyb21UZXh0OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLCB0b1RleHQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsIGNvbXBhcmF0b3I6IFRoZVNlYW1Db2x1bW5zRGF0YUZpbHRlck51bWVyaWNTZWFyY2hUeXBlIHwgbnVsbCkge1xuICAgIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA8PSAwIHx8IGlzTnVsbE9yVW5kZWZpbmVkKGNvbXBhcmF0b3IpKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ05vIGZpbHRlciBhcHBsaWVkIC0gaW52YWxpZCBvcHRpb25zLicpXG4gICAgICByZXR1cm4gZGF0YVxuICAgIH1cblxuICAgIGNvbnN0IHRleHROdW1lcmljID0gbm90TnVsbE9yVW5kZWZpbmVkT3JFbXB0eSh0ZXh0KSA/IHBhcnNlRmxvYXQodGV4dCkgOiBOYU5cbiAgICBjb25zdCB0b1RleHROdW1lcmljID0gbm90TnVsbE9yVW5kZWZpbmVkT3JFbXB0eSh0b1RleHQpID8gcGFyc2VGbG9hdCh0b1RleHQpIDogTmFOXG4gICAgY29uc3QgZnJvbVRleHROdW1lcmljID0gbm90TnVsbE9yVW5kZWZpbmVkT3JFbXB0eShmcm9tVGV4dCkgPyBwYXJzZUZsb2F0KGZyb21UZXh0KSA6IE5hTlxuXG4gICAgaWYgKHRoaXMuX2lzSW52YWxpZFNlYXJjaFRlcm0odGV4dE51bWVyaWMsIGZyb21UZXh0TnVtZXJpYywgdG9UZXh0TnVtZXJpYywgY29tcGFyYXRvcikpIHtcbiAgICAgIGNvbnNvbGUud2FybignTm8gZmlsdGVyIGFwcGxpZWQgLSBpbnZhbGlkIHNlYXJjaCB0ZXJtcy4nKVxuICAgICAgcmV0dXJuIGRhdGFcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YS5maWx0ZXIoaXRlbSA9PiB7XG4gICAgICBsZXQgcHJvcE51bWVyaWMgPSBwYXJzZUZsb2F0KGl0ZW1bcHJvcF0pXG5cbiAgICAgIGlmIChcbiAgICAgICAgKGNvbXBhcmF0b3IgPT09ICdibGFuaycgJiYgKGlzTnVsbE9yVW5kZWZpbmVkKGl0ZW1bcHJvcF0pIHx8IGlzTnVsbE9yVW5kZWZpbmVkT3JFbXB0eShgJHtpdGVtW3Byb3BdfWApKSkgfHxcbiAgICAgICAgKGNvbXBhcmF0b3IgPT09ICdub3QtYmxhbmsnICYmIG5vdE51bGxPclVuZGVmaW5lZChpdGVtW3Byb3BdKSAmJiBub3ROdWxsT3JVbmRlZmluZWRPckVtcHR5KGAke2l0ZW1bcHJvcF19YCkpIHx8XG4gICAgICAgIChjb21wYXJhdG9yID09PSAnbHQnICYmIHByb3BOdW1lcmljIDwgdGV4dE51bWVyaWMpIHx8XG4gICAgICAgIChjb21wYXJhdG9yID09PSAnbHRlJyAmJiBwcm9wTnVtZXJpYyA8PSB0ZXh0TnVtZXJpYykgfHxcbiAgICAgICAgKGNvbXBhcmF0b3IgPT09ICdndCcgJiYgcHJvcE51bWVyaWMgPiB0ZXh0TnVtZXJpYykgfHxcbiAgICAgICAgKGNvbXBhcmF0b3IgPT09ICdndGUnICYmIHByb3BOdW1lcmljID49IHRleHROdW1lcmljKSB8fFxuICAgICAgICAoY29tcGFyYXRvciA9PT0gJ2VxJyAmJiBwcm9wTnVtZXJpYyA9PT0gdGV4dE51bWVyaWMpIHx8XG4gICAgICAgIChjb21wYXJhdG9yID09PSAnYmV0d2VlbicgJiYgcHJvcE51bWVyaWMgPj0gZnJvbVRleHROdW1lcmljICYmIHByb3BOdW1lcmljIDw9IHRvVGV4dE51bWVyaWMpIHx8XG4gICAgICAgIChjb21wYXJhdG9yID09PSAnbm90LWJldHdlZW4nICYmICEocHJvcE51bWVyaWMgPj0gZnJvbVRleHROdW1lcmljICYmIHByb3BOdW1lcmljIDw9IHRvVGV4dE51bWVyaWMpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKGRhdGE6IGFueVtdKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xuICAgIHJldHVybiB0aGlzLl91cGRhdGVGaWx0ZXJWYWx1ZS5waXBlKFxuICAgICAgc3RhcnRXaXRoKHVuZGVmaW5lZCksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5kYXRhRmlsdGVyKGRhdGEsIHRoaXMuZm9ybS52YWx1ZSwgdW5kZWZpbmVkKSlcbiAgICApXG4gIH1cblxuICBwdWJsaWMgZmlsdGVyU3RhdGUoKTogQ29sdW1uc0RhdGFGaWx0ZXJTdGF0ZTxUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJOdW1lcmljU2VhcmNoRm9ybVN0YXRlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIHN0YXRlOiB7XG4gICAgICAgIHByb3A6IHRoaXMucHJvcCxcbiAgICAgICAgZm9ybVZhbHVlOiB0aGlzLmZvcm0udmFsdWVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXBwbHlGaWx0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fdXBkYXRlRmlsdGVyVmFsdWUubmV4dCgpXG4gIH1cblxuICBwdWJsaWMgY2xlYXJGaWx0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLnNldFZhbHVlKHtcbiAgICAgIHNlYXJjaFR5cGU6ICdlcScsXG4gICAgICBzZWFyY2hUZXh0OiBudWxsLFxuICAgICAgZnJvbVRleHQ6IG51bGwsXG4gICAgICB0b1RleHQ6IG51bGxcbiAgICB9KVxuXG4gICAgdGhpcy5fdXBkYXRlRmlsdGVyVmFsdWUubmV4dCgpXG4gIH1cblxuICBwdWJsaWMgaXNEZWZhdWx0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZm9ybS52YWx1ZVxuXG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkT3JFbXB0eShmb3JtVmFsdWUuc2VhcmNoVHlwZSkpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGVsc2UgaWYgKFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9OVU1FUklDX1NFTEVDVF9TRUFSQ0hfVFlQRVMuaW5jbHVkZXMoZm9ybVZhbHVlLnNlYXJjaFR5cGUpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgZWxzZSBpZiAoVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX05VTUVSSUNfVEVYVF9TRUFSQ0hfVFlQRVMuaW5jbHVkZXMoZm9ybVZhbHVlLnNlYXJjaFR5cGUpICYmIG5vdE51bGxPclVuZGVmaW5lZE9yRW1wdHkoZm9ybVZhbHVlLnNlYXJjaFRleHQpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgZWxzZSBpZiAoVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX05VTUVSSUNfUkFOR0VfU0VBUkNIX1RZUEVTLmluY2x1ZGVzKGZvcm1WYWx1ZS5zZWFyY2hUeXBlKSAmJiBub3ROdWxsT3JVbmRlZmluZWRPckVtcHR5KGZvcm1WYWx1ZS5mcm9tVGV4dCkgJiYgbm90TnVsbE9yVW5kZWZpbmVkT3JFbXB0eShmb3JtVmFsdWUudG9UZXh0KSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,86 @@
1
+ import { ColumnsDataFilter } from "../columns-data-filter";
2
+ import { FormControl, FormGroup } from "@angular/forms";
3
+ import { isNullOrUndefined, isNullOrUndefinedOrEmpty, notNullOrUndefined, notNullOrUndefinedOrEmpty } from "@theseam/ui-common/utils";
4
+ import { Subject, map, startWith } from "rxjs";
5
+ import { THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES } from "./models";
6
+ export class SearchTextColumnsDataFilter extends ColumnsDataFilter {
7
+ constructor(prop, initialValue, column) {
8
+ super(prop, initialValue, column);
9
+ this.name = THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME;
10
+ this._updateFilterValue = new Subject;
11
+ this.form = new FormGroup({
12
+ searchType: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchType : 'contains'),
13
+ searchText: new FormControl(notNullOrUndefined(initialValue) ? initialValue.searchText : null),
14
+ // caseSensitive: new FormControl<boolean | null>(notNullOrUndefined(initialValue) ? initialValue.caseSensitive : null),
15
+ });
16
+ this.uid = `${this.name}--${prop}`;
17
+ this.filterStateChanges = this._updateFilterValue.pipe(startWith(undefined), map(() => this.filterState()));
18
+ }
19
+ dataFilter(data, filterValue, options) {
20
+ if (isNullOrUndefined(filterValue) || this.isDefault()) {
21
+ return data;
22
+ }
23
+ return this._textSearchDataFilter(this.prop, data, filterValue.searchText, filterValue.searchType || null);
24
+ }
25
+ _textSearchDataFilter(prop, data, text, comparator) {
26
+ if (!data || data.length < 0 || isNullOrUndefined(comparator)) {
27
+ return data;
28
+ }
29
+ return data.filter(item => {
30
+ let value1 = `${notNullOrUndefined(item[prop]) ? item[prop] : ''}`;
31
+ let value2 = text || '';
32
+ // if (!options.caseSensitive) {
33
+ // value1 = value1.toLowerCase()
34
+ // value2 = value2.toLowerCase()
35
+ // }
36
+ value1 = value1.toLowerCase();
37
+ value2 = value2.toLowerCase();
38
+ if ((comparator === 'eq' && value1 === value2) ||
39
+ (comparator === 'neq' && value1 !== value2) ||
40
+ (comparator === 'contains' && value1.indexOf(value2) !== -1) ||
41
+ (comparator === 'ncontains' && value1.indexOf(value2) === -1) ||
42
+ (comparator === 'blank' && isNullOrUndefinedOrEmpty(value1)) ||
43
+ (comparator === 'not-blank' && notNullOrUndefinedOrEmpty(value1))) {
44
+ return true;
45
+ }
46
+ return false;
47
+ });
48
+ }
49
+ filter(data) {
50
+ return this._updateFilterValue.pipe(startWith(undefined), map(() => this.dataFilter(data, this.form.value, undefined)));
51
+ }
52
+ filterState() {
53
+ return {
54
+ name: this.name,
55
+ state: {
56
+ prop: this.prop,
57
+ formValue: this.form.value,
58
+ }
59
+ };
60
+ }
61
+ applyFilter() {
62
+ this._updateFilterValue.next();
63
+ }
64
+ clearFilter() {
65
+ this.form.setValue({
66
+ searchType: 'contains',
67
+ searchText: null,
68
+ // caseSensitive: null
69
+ });
70
+ this._updateFilterValue.next();
71
+ }
72
+ isDefault() {
73
+ const formValue = this.form.value;
74
+ if (isNullOrUndefinedOrEmpty(formValue.searchType)) {
75
+ return true;
76
+ }
77
+ else if (THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES.includes(formValue.searchType) && notNullOrUndefinedOrEmpty(formValue.searchText)) {
78
+ return false;
79
+ }
80
+ else if (THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES.includes(formValue.searchType)) {
81
+ return false;
82
+ }
83
+ return true;
84
+ }
85
+ }
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXRleHQuY29sdW1ucy1kYXRhLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvbW9kZWxzL2NvbHVtbnMtZGF0YS1maWx0ZXJzL3NlYXJjaC10ZXh0LmNvbHVtbnMtZGF0YS1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUEwQixNQUFNLHdCQUF3QixDQUFDO0FBRW5GLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEksT0FBTyxFQUFjLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBdUYsNENBQTRDLEVBQTBDLGtEQUFrRCxFQUFFLG9EQUFvRCxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9TLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxpQkFBc0c7SUFhckosWUFDRSxJQUFZLEVBQ1osWUFBeUQsRUFDekQsTUFBOEI7UUFFOUIsS0FBSyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFqQm5CLFNBQUksR0FBRyw0Q0FBNEMsQ0FBQTtRQVUzRCx1QkFBa0IsR0FBRyxJQUFJLE9BQWEsQ0FBQTtRQVM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDO1lBQ3hCLFVBQVUsRUFBRSxJQUFJLFdBQVcsQ0FBZ0Qsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUNuSixVQUFVLEVBQUUsSUFBSSxXQUFXLENBQWdCLGtC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TCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7YUFDM0I7U0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFBO0lBQ2hDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2pCLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLHNCQUFzQjtTQUN2QixDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDaEMsQ0FBQztJQUVNLFNBQVM7UUFDZCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUVqQyxJQUFJLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNsRCxPQUFPLElBQUksQ0FBQTtTQUNaO2FBQ0ksSUFBSSxrREFBa0QsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM3SSxPQUFPLEtBQUssQ0FBQTtTQUNiO2FBQ0ksSUFBSSxvREFBb0QsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzVGLE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFFRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbHVtbnNEYXRhRmlsdGVyLCBDb2x1bW5zRGF0YUZpbHRlclN0YXRlIH0gZnJvbSBcIi4uL2NvbHVtbnMtZGF0YS1maWx0ZXJcIjtcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4gfSBmcm9tIFwiLi4vdGFibGUtY29sdW1uXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBEYXRhRmlsdGVyU3RhdGUgfSBmcm9tIFwiQHRoZXNlYW0vdWktY29tbW9uL2RhdGEtZmlsdGVyc1wiO1xuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQsIGlzTnVsbE9yVW5kZWZpbmVkT3JFbXB0eSwgbm90TnVsbE9yVW5kZWZpbmVkLCBub3ROdWxsT3JVbmRlZmluZWRPckVtcHR5IH0gZnJvbSBcIkB0aGVzZWFtL3VpLWNvbW1vbi91dGlsc1wiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgbWFwLCBzdGFydFdpdGggfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgVGhlU2VhbUNvbHVtbnNEYXRhRmlsdGVyVGV4dFNlYXJjaEZvcm1TdGF0ZSwgVGhlU2VhbUNvbHVtbnNEYXRhRmlsdGVyVGV4dFNlYXJjaEZvcm0sIFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9URVhUX1NFQVJDSF9OQU1FLCBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJUZXh0U2VhcmNoVHlwZSwgVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX1RFWFRfVEVYVF9TRUFSQ0hfVFlQRVMsIFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9URVhUX1NFTEVDVF9TRUFSQ0hfVFlQRVMgfSBmcm9tIFwiLi9tb2RlbHNcIjtcblxuZXhwb3J0IGNsYXNzIFNlYXJjaFRleHRDb2x1bW5zRGF0YUZpbHRlciBleHRlbmRzIENvbHVtbnNEYXRhRmlsdGVyPFRoZVNlYW1Db2x1bW5zRGF0YUZpbHRlclRleHRTZWFyY2hGb3JtU3RhdGUsIFRoZVNlYW1Db2x1bW5zRGF0YUZpbHRlclRleHRTZWFyY2hGb3JtPiB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lID0gVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX1RFWFRfU0VBUkNIX05BTUVcblxuICBwdWJsaWMgcmVhZG9ubHkgdWlkOiBzdHJpbmdcblxuICBwdWJsaWMgZm9ybTogVGhlU2VhbUNvbHVtbnNEYXRhRmlsdGVyVGV4dFNlYXJjaEZvcm1cblxuICBwdWJsaWMgZmlsdGVyU3RhdGVDaGFuZ2VzOiBPYnNlcnZhYmxlPERhdGFGaWx0ZXJTdGF0ZT5cblxuICBwdWJsaWMgb3B0aW9uczogYW55XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRmlsdGVyVmFsdWUgPSBuZXcgU3ViamVjdDx2b2lkPlxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3A6IHN0cmluZyxcbiAgICBpbml0aWFsVmFsdWU6IFRoZVNlYW1Db2x1bW5zRGF0YUZpbHRlclRleHRTZWFyY2hGb3JtU3RhdGUsXG4gICAgY29sdW1uOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uXG4gICkge1xuICAgIHN1cGVyKHByb3AsIGluaXRpYWxWYWx1ZSwgY29sdW1uKVxuXG4gICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBzZWFyY2hUeXBlOiBuZXcgRm9ybUNvbnRyb2w8VGhlU2VhbUNvbHVtbnNEYXRhRmlsdGVyVGV4dFNlYXJjaFR5cGUgfCBudWxsPihub3ROdWxsT3JVbmRlZmluZWQoaW5pdGlhbFZhbHVlKSA/IGluaXRpYWxWYWx1ZS5zZWFyY2hUeXBlIDogJ2NvbnRhaW5zJyksXG4gICAgICBzZWFyY2hUZXh0OiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obm90TnVsbE9yVW5kZWZpbmVkKGluaXRpYWxWYWx1ZSkgPyBpbml0aWFsVmFsdWUuc2VhcmNoVGV4dCA6IG51bGwpLFxuICAgICAgLy8gY2FzZVNlbnNpdGl2ZTogbmV3IEZvcm1Db250cm9sPGJvb2xlYW4gfCBudWxsPihub3ROdWxsT3JVbmRlZmluZWQoaW5pdGlhbFZhbHVlKSA/IGluaXRpYWxWYWx1ZS5jYXNlU2Vuc2l0aXZlIDogbnVsbCksXG4gICAgfSlcblxuICAgIHRoaXMudWlkID0gYCR7dGhpcy5uYW1lfS0tJHtwcm9wfWBcblxuICAgIHRoaXMuZmlsdGVyU3RhdGVDaGFuZ2VzID0gdGhpcy5fdXBkYXRlRmlsdGVyVmFsdWUucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpLFxuICAgICAgbWFwKCgpID0+IHRoaXMuZmlsdGVyU3RhdGUoKSlcbiAgICApXG4gIH1cblxuICBwdWJsaWMgZGF0YUZpbHRlcihkYXRhOiBhbnlbXSwgZmlsdGVyVmFsdWU6IFBhcnRpYWw8VGhlU2VhbUNvbHVtbnNEYXRhRmlsdGVyVGV4dFNlYXJjaEZvcm1TdGF0ZT4sIG9wdGlvbnM6IGFueSk6IGFueVtdIHtcbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoZmlsdGVyVmFsdWUpIHx8IHRoaXMuaXNEZWZhdWx0KCkpIHtcbiAgICAgIHJldHVybiBkYXRhXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3RleHRTZWFyY2hEYXRhRmlsdGVyKHRoaXMucHJvcCwgZGF0YSwgZmlsdGVyVmFsdWUuc2VhcmNoVGV4dCwgZmlsdGVyVmFsdWUuc2VhcmNoVHlwZSB8fCBudWxsKVxuICB9XG5cbiAgcHJpdmF0ZSBfdGV4dFNlYXJjaERhdGFGaWx0ZXIocHJvcDogc3RyaW5nLCBkYXRhOiBhbnlbXSwgdGV4dDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgY29tcGFyYXRvcjogVGhlU2VhbUNvbHVtbnNEYXRhRmlsdGVyVGV4dFNlYXJjaFR5cGUgfCBudWxsKSB7XG4gICAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoIDwgMCB8fCBpc051bGxPclVuZGVmaW5lZChjb21wYXJhdG9yKSkge1xuICAgICAgcmV0dXJuIGRhdGFcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YS5maWx0ZXIoaXRlbSA9PiB7XG4gICAgICBsZXQgdmFsdWUxID0gYCR7bm90TnVsbE9yVW5kZWZpbmVkKGl0ZW1bcHJvcF0pID8gaXRlbVtwcm9wXSA6ICcnfWBcbiAgICAgIGxldCB2YWx1ZTIgPSB0ZXh0IHx8ICcnXG5cbiAgICAgIC8vIGlmICghb3B0aW9ucy5jYXNlU2Vuc2l0aXZlKSB7XG4gICAgICAvLyAgIHZhbHVlMSA9IHZhbHVlMS50b0xvd2VyQ2FzZSgpXG4gICAgICAvLyAgIHZhbHVlMiA9IHZhbHVlMi50b0xvd2VyQ2FzZSgpXG4gICAgICAvLyB9XG5cbiAgICAgIHZhbHVlMSA9IHZhbHVlMS50b0xvd2VyQ2FzZSgpXG4gICAgICB2YWx1ZTIgPSB2YWx1ZTIudG9Mb3dlckNhc2UoKVxuXG4gICAgICBpZiAoXG4gICAgICAgIChjb21wYXJhdG9yID09PSAnZXEnICYmIHZhbHVlMSA9PT0gdmFsdWUyKSB8fFxuICAgICAgICAoY29tcGFyYXRvciA9PT0gJ25lcScgJiYgdmFsdWUxICE9PSB2YWx1ZTIpIHx8XG4gICAgICAgIChjb21wYXJhdG9yID09PSAnY29udGFpbnMnICYmIHZhbHVlMS5pbmRleE9mKHZhbHVlMikgIT09IC0xKSB8fFxuICAgICAgICAoY29tcGFyYXRvciA9PT0gJ25jb250YWlucycgJiYgdmFsdWUxLmluZGV4T2YodmFsdWUyKSA9PT0gLTEpIHx8XG4gICAgICAgIChjb21wYXJhdG9yID09PSAnYmxhbmsnICYmIGlzTnVsbE9yVW5kZWZpbmVkT3JFbXB0eSh2YWx1ZTEpKSB8fFxuICAgICAgICAoY29tcGFyYXRvciA9PT0gJ25vdC1ibGFuaycgJiYgbm90TnVsbE9yVW5kZWZpbmVkT3JFbXB0eSh2YWx1ZTEpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKGRhdGE6IGFueVtdKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xuICAgIHJldHVybiB0aGlzLl91cGRhdGVGaWx0ZXJWYWx1ZS5waXBlKFxuICAgICAgc3RhcnRXaXRoKHVuZGVmaW5lZCksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5kYXRhRmlsdGVyKGRhdGEsIHRoaXMuZm9ybS52YWx1ZSwgdW5kZWZpbmVkKSlcbiAgICApXG4gIH1cblxuICBwdWJsaWMgZmlsdGVyU3RhdGUoKTogQ29sdW1uc0RhdGFGaWx0ZXJTdGF0ZTxUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJUZXh0U2VhcmNoRm9ybVN0YXRlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIHN0YXRlOiB7XG4gICAgICAgIHByb3A6IHRoaXMucHJvcCxcbiAgICAgICAgZm9ybVZhbHVlOiB0aGlzLmZvcm0udmFsdWUsXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFwcGx5RmlsdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZUZpbHRlclZhbHVlLm5leHQoKVxuICB9XG5cbiAgcHVibGljIGNsZWFyRmlsdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh7XG4gICAgICBzZWFyY2hUeXBlOiAnY29udGFpbnMnLFxuICAgICAgc2VhcmNoVGV4dDogbnVsbCxcbiAgICAgIC8vIGNhc2VTZW5zaXRpdmU6IG51bGxcbiAgICB9KVxuXG4gICAgdGhpcy5fdXBkYXRlRmlsdGVyVmFsdWUubmV4dCgpXG4gIH1cblxuICBwdWJsaWMgaXNEZWZhdWx0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZm9ybS52YWx1ZVxuXG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkT3JFbXB0eShmb3JtVmFsdWUuc2VhcmNoVHlwZSkpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGVsc2UgaWYgKFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9URVhUX1RFWFRfU0VBUkNIX1RZUEVTLmluY2x1ZGVzKGZvcm1WYWx1ZS5zZWFyY2hUeXBlKSAmJiBub3ROdWxsT3JVbmRlZmluZWRPckVtcHR5KGZvcm1WYWx1ZS5zZWFyY2hUZXh0KSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIGVsc2UgaWYgKFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9URVhUX1NFTEVDVF9TRUFSQ0hfVFlQRVMuaW5jbHVkZXMoZm9ybVZhbHVlLnNlYXJjaFR5cGUpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { notNullOrUndefined } from "@theseam/ui-common/utils";
2
+ import { SearchDateColumnsDataFilter } from "./search-date.columns-data-filter";
3
+ import { SearchNumericColumnsDataFilter } from "./search-numeric.columns-data-filter";
4
+ import { SearchTextColumnsDataFilter } from "./search-text.columns-data-filter";
5
+ import { THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME } from "./models";
6
+ export const THESEAM_COLUMNS_DATA_FILTERS_DEFAULT = [
7
+ { name: THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME, class: SearchTextColumnsDataFilter },
8
+ { name: THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME, class: SearchNumericColumnsDataFilter },
9
+ { name: THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME, class: SearchDateColumnsDataFilter },
10
+ ];
11
+ export const getFormattedDateForComparison = (date, dateType, setToLocalTime = false) => {
12
+ const dateObj = new Date(notNullOrUndefined(date) ? date : '');
13
+ if (dateType === 'datetime-local') {
14
+ // reset seconds and ms, since they can't be specified from the search input
15
+ dateObj.setSeconds(0);
16
+ dateObj.setMilliseconds(0);
17
+ }
18
+ else if (dateType === 'date') {
19
+ if (setToLocalTime) {
20
+ // set date from input type="date" to current timezone, to match expected behavior
21
+ dateObj.setMinutes(dateObj.getMinutes() + dateObj.getTimezoneOffset());
22
+ }
23
+ // reset hours/minutes/seconds/ms, since they can't be specified from the search input
24
+ dateObj.setHours(0, 0, 0, 0);
25
+ }
26
+ return dateObj;
27
+ };
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL21vZGVscy9jb2x1bW5zLWRhdGEtZmlsdGVycy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRixPQUFPLEVBQThDLDRDQUE0QyxFQUFFLCtDQUErQyxFQUFFLDRDQUE0QyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRW5OLE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHO0lBQ2xELEVBQUUsSUFBSSxFQUFFLDRDQUE0QyxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTtJQUMxRixFQUFFLElBQUksRUFBRSwrQ0FBK0MsRUFBRSxLQUFLLEVBQUUsOEJBQThCLEVBQUU7SUFDaEcsRUFBRSxJQUFJLEVBQUUsNENBQTRDLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFO0NBQ2xGLENBQUE7QUFFVixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLElBQStDLEVBQUUsUUFBb0QsRUFBRSxpQkFBMEIsS0FBSyxFQUFRLEVBQUU7SUFDNUwsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFOUQsSUFBSSxRQUFRLEtBQUssZ0JBQWdCLEVBQUU7UUFDakMsNEVBQTRFO1FBQzVFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDckIsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUMzQjtTQUNJLElBQUksUUFBUSxLQUFLLE1BQU0sRUFBRTtRQUM1QixJQUFJLGNBQWMsRUFBRTtZQUNsQixrRkFBa0Y7WUFDbEYsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQTtTQUN2RTtRQUVELHNGQUFzRjtRQUN0RixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0tBQzdCO0lBRUQsT0FBTyxPQUFPLENBQUE7QUFDaEIsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSBcIkB0aGVzZWFtL3VpLWNvbW1vbi91dGlsc1wiO1xyXG5pbXBvcnQgeyBTZWFyY2hEYXRlQ29sdW1uc0RhdGFGaWx0ZXIgfSBmcm9tIFwiLi9zZWFyY2gtZGF0ZS5jb2x1bW5zLWRhdGEtZmlsdGVyXCI7XHJcbmltcG9ydCB7IFNlYXJjaE51bWVyaWNDb2x1bW5zRGF0YUZpbHRlciB9IGZyb20gXCIuL3NlYXJjaC1udW1lcmljLmNvbHVtbnMtZGF0YS1maWx0ZXJcIjtcclxuaW1wb3J0IHsgU2VhcmNoVGV4dENvbHVtbnNEYXRhRmlsdGVyIH0gZnJvbSBcIi4vc2VhcmNoLXRleHQuY29sdW1ucy1kYXRhLWZpbHRlclwiO1xyXG5pbXBvcnQgeyBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJEYXRlU2VhcmNoRGF0ZVR5cGUsIFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9EQVRFX1NFQVJDSF9OQU1FLCBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVJfTlVNRVJJQ19TRUFSQ0hfTkFNRSwgVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX1RFWFRfU0VBUkNIX05BTUUgfSBmcm9tIFwiLi9tb2RlbHNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVJTX0RFRkFVTFQgPSBbXHJcbiAgeyBuYW1lOiBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVJfVEVYVF9TRUFSQ0hfTkFNRSwgY2xhc3M6IFNlYXJjaFRleHRDb2x1bW5zRGF0YUZpbHRlciB9LFxyXG4gIHsgbmFtZTogVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX05VTUVSSUNfU0VBUkNIX05BTUUsIGNsYXNzOiBTZWFyY2hOdW1lcmljQ29sdW1uc0RhdGFGaWx0ZXIgfSxcclxuICB7IG5hbWU6IFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9EQVRFX1NFQVJDSF9OQU1FLCBjbGFzczogU2VhcmNoRGF0ZUNvbHVtbnNEYXRhRmlsdGVyIH0sXHJcbl0gYXMgY29uc3RcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRGb3JtYXR0ZWREYXRlRm9yQ29tcGFyaXNvbiA9IChkYXRlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCwgZGF0ZVR5cGU6IFRoZVNlYW1Db2x1bW5zRGF0YUZpbHRlckRhdGVTZWFyY2hEYXRlVHlwZSwgc2V0VG9Mb2NhbFRpbWU6IGJvb2xlYW4gPSBmYWxzZSk6IERhdGUgPT4ge1xyXG4gIGNvbnN0IGRhdGVPYmogPSBuZXcgRGF0ZShub3ROdWxsT3JVbmRlZmluZWQoZGF0ZSkgPyBkYXRlIDogJycpXHJcblxyXG4gIGlmIChkYXRlVHlwZSA9PT0gJ2RhdGV0aW1lLWxvY2FsJykge1xyXG4gICAgLy8gcmVzZXQgc2Vjb25kcyBhbmQgbXMsIHNpbmNlIHRoZXkgY2FuJ3QgYmUgc3BlY2lmaWVkIGZyb20gdGhlIHNlYXJjaCBpbnB1dFxyXG4gICAgZGF0ZU9iai5zZXRTZWNvbmRzKDApXHJcbiAgICBkYXRlT2JqLnNldE1pbGxpc2Vjb25kcygwKVxyXG4gIH1cclxuICBlbHNlIGlmIChkYXRlVHlwZSA9PT0gJ2RhdGUnKSB7XHJcbiAgICBpZiAoc2V0VG9Mb2NhbFRpbWUpIHtcclxuICAgICAgLy8gc2V0IGRhdGUgZnJvbSBpbnB1dCB0eXBlPVwiZGF0ZVwiIHRvIGN1cnJlbnQgdGltZXpvbmUsIHRvIG1hdGNoIGV4cGVjdGVkIGJlaGF2aW9yXHJcbiAgICAgIGRhdGVPYmouc2V0TWludXRlcyhkYXRlT2JqLmdldE1pbnV0ZXMoKSArIGRhdGVPYmouZ2V0VGltZXpvbmVPZmZzZXQoKSlcclxuICAgIH1cclxuXHJcbiAgICAvLyByZXNldCBob3Vycy9taW51dGVzL3NlY29uZHMvbXMsIHNpbmNlIHRoZXkgY2FuJ3QgYmUgc3BlY2lmaWVkIGZyb20gdGhlIHNlYXJjaCBpbnB1dFxyXG4gICAgZGF0ZU9iai5zZXRIb3VycygwLCAwLCAwLCAwKVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGRhdGVPYmpcclxufVxyXG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ export const THESEAM_DATATABLE_CONFIG = new InjectionToken('TheSeamDatatableConfig');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvbW9kZWxzL2RhdGF0YWJsZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQXFHL0MsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQXlCLHdCQUF3QixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTZWFtSWNvbiB9IGZyb20gXCJAdGhlc2VhbS91aS1jb21tb24vaWNvblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoZVNlYW1EYXRhdGFibGVNZXNzYWdlcyB7XG4gIC8qKlxuICAgKiBNZXNzYWdlIHRvIHNob3cgd2hlbiBhcnJheSBpcyBwcmVzZW50ZWQsIGJ1dCBjb250YWlucyBubyB2YWx1ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdObyByZWNvcmRzIGZvdW5kJ1xuICAgKi9cbiAgZW1wdHlNZXNzYWdlOiBzdHJpbmdcblxuICAvKipcbiAgICogRm9vdGVyIHRvdGFsIG1lc3NhZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0ICd0b3RhbCdcbiAgICovXG4gIHRvdGFsTWVzc2FnZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEZvb3RlciBzZWxlY3RlZCBtZXNzYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnc2VsZWN0ZWQnXG4gICAqL1xuICBzZWxlY3RlZE1lc3NhZ2U6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uRmlsdGVyVXBkYXRlTWV0aG9kID0gJ3ZhbHVlQ2hhbmdlcycgfCAnc3VibWl0J1xuXG4vKipcbiAqIEEgY29uZmlnIG9iamVjdCB0aGF0IGNhbiBiZSBpbmplY3RlZCBhdCB0aGUgdG9wIGxldmVsIG9mIGEgcHJvamVjdFxuICogdG8gYXBwbHkgc3BlY2lmaWMgVGhlU2VhbURhdGF0YWJsZSBzZXR0aW5ncyBzaXRlLXdpZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGhlU2VhbURhdGF0YWJsZUNvbmZpZyB7XG5cbiAgLyoqXG4gICAqIFNlZSBgVGhlU2VhbURhdGF0YWJsZU1lc3NhZ2VzYC5cbiAgICovXG4gIG1lc3NhZ2VzPzogUGFydGlhbDxUaGVTZWFtRGF0YXRhYmxlTWVzc2FnZXM+IHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIC8qKlxuICAgKiBNaW5pbXVtIGhlYWRlciBoZWlnaHQgaW4gcGl4ZWxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCA1MFxuICAgKi9cbiAgaGVhZGVySGVpZ2h0PzogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIC8qKlxuICAgKiBSb3cgaGVpZ2h0IGluIHBpeGVscywgbmVjZXNzYXJ5IGZvciBjYWxjdWxhdGluZyBzY3JvbGwgaGVpZ2h0LlxuICAgKlxuICAgKiBAZGVmYXVsdCA1MFxuICAgKi9cbiAgcm93SGVpZ2h0PzogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIC8qKlxuICAgKiBNaW5pbXVtIGZvb3RlciBoZWlnaHQgaW4gcGl4ZWxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCA0MFxuICAgKi9cbiAgZm9vdGVySGVpZ2h0PzogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIC8qKlxuICAgKiBDU1MgY2xhc3NlcyBmb3IgdmFyaW91cyBpY29uIGJ1dHRvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0XG4gICAqICAgc29ydEFzY2VuZGluZzogJ2RhdGF0YWJsZS1pY29uLXVwJyxcbiAgICogICBzb3J0RGVzY2VuZGluZzogJ2RhdGF0YWJsZS1pY29uLWRvd24nLFxuICAgKiAgIHBhZ2VyTGVmdEFycm93OiAnZGF0YXRhYmxlLWljb24tbGVmdCcsXG4gICAqICAgcGFnZXJSaWdodEFycm93OiAnZGF0YXRhYmxlLWljb24tcmlnaHQnLFxuICAgKiAgIHBhZ2VyUHJldmlvdXM6ICdkYXRhdGFibGUtaWNvbi1wcmV2JyxcbiAgICogICBwYWdlck5leHQ6ICdkYXRhdGFibGUtaWNvbi1za2lwJ1xuICAgKi9cbiAgY3NzQ2xhc3Nlcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cblxuICAvKipcbiAgICogSWNvbiB0byBkaXNwbGF5IHRvIHRoZSBsZWZ0IG9mIHRoZSBjb2x1bW4gaGVhZGVyXG4gICAqIHdoZW4gYSBjb2x1bW4gaXMgbWFya2VkIFwiZmlsdGVyYWJsZVwiLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYUZpbHRlclxuICAgKi9cbiAgY29sdW1uRmlsdGVySWNvbj86IFNlYW1JY29uXG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hhdCBraW5kIG9mIGFjdGlvbiBjYXVzZXMgYSBmaWx0ZXIgY29sdW1uIHRvIGJlIGFwcGxpZWQuXG4gICAqXG4gICAqIGB2YWx1ZUNoYW5nZXNgOiBGaWx0ZXIgaXMgYXBwbGllZCBvbiBmb3JtIGB2YWx1ZUNoYW5nZXNgIGV2ZW50LCB3aXRoIGFuIG9wdGlvbmFsIGRlYm91bmNlIHNldCBvbiBgY29sdW1uRmlsdGVyVXBkYXRlRGVib3VuY2VgLlxuICAgKlxuICAgKiBgc3VibWl0YDogRmlsdGVyIGlzIGFwcGxpZWQgb24gZm9ybSBzdWJtaXQuIE5vIGRlYm91bmNlIGlzIGFwcGxpZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwidmFsdWVDaGFuZ2VzXCJcbiAgICovXG4gIGNvbHVtbkZpbHRlclVwZGF0ZU1ldGhvZD86IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5GaWx0ZXJVcGRhdGVNZXRob2RcblxuICAvKipcbiAgICogTnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWJvdW5jZSBhIGZpbHRlciBmb3JtIGlucHV0IGJlZm9yZSBhcHBseWluZyB0aGUgZmlsdGVyIGNoYW5nZS5cbiAgICogT25seSBhcHBsaWNhYmxlIHdoZW4gYGNvbHVtbkZpbHRlclVwZGF0ZU1ldGhvZGAgaXMgYHZhbHVlQ2hhbmdlc2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IDQwMFxuICAgKi9cbiAgY29sdW1uRmlsdGVyVXBkYXRlRGVib3VuY2U/OiBudW1iZXJcbn1cblxuZXhwb3J0IGNvbnN0IFRIRVNFQU1fREFUQVRBQkxFX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUaGVTZWFtRGF0YXRhYmxlQ29uZmlnPignVGhlU2VhbURhdGF0YWJsZUNvbmZpZycpXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvdGFibGUtY29sdW1uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcblxuaW1wb3J0IHsgVGFibGVDZWxsVHlwZUNvbHVtbiwgVGFibGVDZWxsVHlwZUNvbmZpZywgVGFibGVDZWxsVHlwZUV4cG9ydFByb3BzLCBUYWJsZUNlbGxUeXBlTmFtZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi90YWJsZS1jZWxsLXR5cGUnXG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlU2VhbURhdGF0YWJsZUNvbHVtbkhpZGFibGUge1xuXG4gIC8qKlxuICAgKiBIaWRlIGEgY29sdW1uLCBidXQgbGV0IHRoZSBkYXRhdGFibGUgc3RpbGwga25vdyBhYm91dCBpdC4gVXNlZnVsIGZvclxuICAgKiBoaWRkaW5nIGEgY29sdW1ucyB0aGF0IGNhbiBiZSB1bmhpZGRlbiB0aHJvdWdoIGEgc2V0dGluZy5cbiAgICpcbiAgICogTk9URTogSWYgeW91IGZpbHRlciBvdXQgdGhlIGNvbHVtbiBiZWZvcmUgcGFzc2luZyBpdCB0byB0aGUgZGF0YXRhYmxlIGl0XG4gICAqIHdpbGwgbm90IGJlIGFibGUgdG8gcHJvdmlkZSB0aGF0IGNvbHVtbiBhcyBhbiBvcHRpb24gaW4gdGhlIGNvbHVtbiB0b2dnbGVcbiAgICogbGlzdC5cbiAgICovXG4gIGhpZGRlbj86IGJvb2xlYW5cblxufVxuXG5leHBvcnQgdHlwZSBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uPFQgZXh0ZW5kcyBUYWJsZUNlbGxUeXBlTmFtZSA9IGFueSwgQyBleHRlbmRzIFRhYmxlQ2VsbFR5cGVDb25maWc8VD4gPSBhbnk+ID1cbiAgVGFibGVDb2x1bW4gJlxuICBUYWJsZUNlbGxUeXBlQ29sdW1uPFQsIEM+ICZcbiAgVGFibGVDZWxsVHlwZUV4cG9ydFByb3BzICZcbiAgVGhlU2VhbURhdGF0YWJsZUNvbHVtbkhpZGFibGVcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvdGFibGUtY29sdW1uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcblxuaW1wb3J0IHsgVGFibGVDZWxsVHlwZUNvbHVtbiwgVGFibGVDZWxsVHlwZUNvbmZpZywgVGFibGVDZWxsVHlwZUV4cG9ydFByb3BzLCBUYWJsZUNlbGxUeXBlTmFtZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi90YWJsZS1jZWxsLXR5cGUnXG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlU2VhbURhdGF0YWJsZUNvbHVtbkhpZGFibGUge1xuXG4gIC8qKlxuICAgKiBIaWRlIGEgY29sdW1uLCBidXQgbGV0IHRoZSBkYXRhdGFibGUgc3RpbGwga25vdyBhYm91dCBpdC4gVXNlZnVsIGZvclxuICAgKiBoaWRkaW5nIGEgY29sdW1ucyB0aGF0IGNhbiBiZSB1bmhpZGRlbiB0aHJvdWdoIGEgc2V0dGluZy5cbiAgICpcbiAgICogTk9URTogSWYgeW91IGZpbHRlciBvdXQgdGhlIGNvbHVtbiBiZWZvcmUgcGFzc2luZyBpdCB0byB0aGUgZGF0YXRhYmxlIGl0XG4gICAqIHdpbGwgbm90IGJlIGFibGUgdG8gcHJvdmlkZSB0aGF0IGNvbHVtbiBhcyBhbiBvcHRpb24gaW4gdGhlIGNvbHVtbiB0b2dnbGVcbiAgICogbGlzdC5cbiAgICovXG4gIGhpZGRlbj86IGJvb2xlYW5cblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRoZVNlYW1EYXRhdGFibGVDb2x1bW5GaWx0ZXJhYmxlPFQgZXh0ZW5kcyBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uRmlsdGVyYWJsZUNvbmZpZyA9IGFueT4ge1xuICBmaWx0ZXJhYmxlPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGEgc3BlY2lmaWMgZmlsdGVyIHR5cGUuXG4gICAqL1xuICBmaWx0ZXJPcHRpb25zPzogVFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRoZVNlYW1EYXRhdGFibGVDb2x1bW5GaWx0ZXJhYmxlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBvYmplY3QgbmFtZSBvbiB3aGljaCB0byBydW4gdGhlIGZpbHRlci5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gY29sdW1uIHByb3AuXG4gICAqL1xuICBmaWx0ZXJQcm9wPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGZpbHRlcihzKSB0byBzaG93IGluIHRoZSBmaWx0ZXIgbWVudS5cbiAgICpcbiAgICogSWYgbm90IHByb3ZpZGVkLCB3aWxsIGxvb2sgdG8gY2VsbFR5cGUgdG8gZGV0ZXJtaW5lIGRlZmF1bHQgZmlsdGVyKHMpLlxuICAgKi9cbiAgZmlsdGVyVHlwZT86IHN0cmluZ1xuXG59XG5cbmV4cG9ydCB0eXBlIFRoZVNlYW1EYXRhdGFibGVDb2x1bW48VCBleHRlbmRzIFRhYmxlQ2VsbFR5cGVOYW1lID0gYW55LCBDIGV4dGVuZHMgVGFibGVDZWxsVHlwZUNvbmZpZzxUPiA9IGFueSwgRiBleHRlbmRzIFRoZVNlYW1EYXRhdGFibGVDb2x1bW5GaWx0ZXJhYmxlQ29uZmlnID0gYW55PiA9XG4gIFRhYmxlQ29sdW1uICZcbiAgVGFibGVDZWxsVHlwZUNvbHVtbjxULCBDPiAmXG4gIFRhYmxlQ2VsbFR5cGVFeHBvcnRQcm9wcyAmXG4gIFRoZVNlYW1EYXRhdGFibGVDb2x1bW5IaWRhYmxlICZcbiAgVGhlU2VhbURhdGF0YWJsZUNvbHVtbkZpbHRlcmFibGU8Rj5cbiJdfQ==
@@ -2,6 +2,10 @@ export * from './datatable/datatable.component';
2
2
  export * from './datatable-action-menu/datatable-action-menu.component';
3
3
  export * from './datatable-action-menu-item/datatable-action-menu-item.component';
4
4
  export * from './datatable-column/datatable-column.component';
5
+ export * from './datatable-column-filter-menu/datatable-column-filter-menu.component';
6
+ export * from './datatable-column-filter-search-date/datatable-column-filter-search-date.component';
7
+ export * from './datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component';
8
+ export * from './datatable-column-filter-search-text/datatable-column-filter-search-text.component';
5
9
  export * from './datatable-column-preferences/datatable-column-preferences.component';
6
10
  export * from './datatable-column-preferences-button/datatable-column-preferences-button.component';
7
11
  export * from './datatable-export-button/datatable-export-button.component';
@@ -18,9 +22,18 @@ export * from './datatable-row-detail/datatable-row-detail.directive';
18
22
  export * from './directives/datatable-action-menu-item.directive';
19
23
  export * from './directives/datatable-action-menu-toggle.directive';
20
24
  export * from './directives/datatable-cell-tpl.directive';
25
+ export * from './directives/datatable-column-filter-tpl.directive';
26
+ export * from './directives/datatable-column-filter.directive';
21
27
  export * from './directives/datatable-filter.directive';
22
28
  export * from './directives/datatable-row-action-item.directive';
29
+ export * from './models/columns-data-filter';
30
+ export * from './models/columns-data-filters/search-date.columns-data-filter';
31
+ export * from './models/columns-data-filters/search-numeric.columns-data-filter';
32
+ export * from './models/columns-data-filters/search-text.columns-data-filter';
33
+ export * from './models/columns-data-filters/models';
34
+ export * from './models/columns-data-filters/utils';
23
35
  export * from './models/datatable-accessor';
36
+ export * from './models/datatable-config';
24
37
  export * from './models/datatable-data-source';
25
38
  export * from './models/datatable-gql-data-source';
26
39
  export * from './models/menubar-item-data';
@@ -31,6 +44,7 @@ export * from './models/table-column';
31
44
  export * from './models/sort-event';
32
45
  export * from './models/sort-item';
33
46
  export * from './models/table-column';
47
+ export * from './services/columns-filters.service';
34
48
  export * from './services/datatable-column-changes.service';
35
49
  export * from './services/datatable-preferences.service';
36
50
  export * from './services/datatable-scrollbar-helper.service';
@@ -38,4 +52,4 @@ export * from './tokens/datatable-preferences-accessor';
38
52
  export * from './tokens/menubar-item-data';
39
53
  export * from './utils/with-stored-column-info';
40
54
  export * from './datatable.module';
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMseURBQXlELENBQUE7QUFDdkUsY0FBYyxtRUFBbUUsQ0FBQTtBQUNqRixjQUFjLCtDQUErQyxDQUFBO0FBQzdELGNBQWMsdUVBQXVFLENBQUE7QUFDckYsY0FBYyxxRkFBcUYsQ0FBQTtBQUNuRyxjQUFjLDZEQUE2RCxDQUFBO0FBQzNFLGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYywrQ0FBK0MsQ0FBQTtBQUM3RCxjQUFjLG1EQUFtRCxDQUFBO0FBQ2pFLGNBQWMsK0VBQStFLENBQUE7QUFDN0YsY0FBYywyRUFBMkUsQ0FBQTtBQUN6RixjQUFjLDZFQUE2RSxDQUFBO0FBQzNGLGNBQWMsMkRBQTJELENBQUE7QUFDekUsY0FBYyw2REFBNkQsQ0FBQTtBQUMzRSxjQUFjLDJEQUEyRCxDQUFBO0FBQ3pFLGNBQWMsdURBQXVELENBQUE7QUFFckUsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLHFEQUFxRCxDQUFBO0FBQ25FLGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLGtEQUFrRCxDQUFBO0FBRWhFLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQTtBQUVyQyxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYywrQ0FBK0MsQ0FBQTtBQUU3RCxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELGNBQWMsNEJBQTRCLENBQUE7QUFFMUMsY0FBYyxpQ0FBaUMsQ0FBQTtBQUUvQyxjQUFjLG9CQUFvQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUvZGF0YXRhYmxlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWFjdGlvbi1tZW51L2RhdGF0YWJsZS1hY3Rpb24tbWVudS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1hY3Rpb24tbWVudS1pdGVtL2RhdGF0YWJsZS1hY3Rpb24tbWVudS1pdGVtLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi9kYXRhdGFibGUtY29sdW1uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1mb290ZXIvZGF0YXRhYmxlLWZvb3Rlci10cGwuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtZm9vdGVyL2RhdGF0YWJsZS1mb290ZXIuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXIvZGF0YXRhYmxlLW1lbnUtYmFyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1jZW50ZXIvZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1jZW50ZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXItY29sdW1uLWxlZnQvZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1sZWZ0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1yaWdodC9kYXRhdGFibGUtbWVudS1iYXItY29sdW1uLXJpZ2h0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLXJvdy9kYXRhdGFibGUtbWVudS1iYXItcm93LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLXRleHQvZGF0YXRhYmxlLW1lbnUtYmFyLXRleHQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtcm93LWRldGFpbC9kYXRhdGFibGUtcm93LWRldGFpbC10cGwuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtcm93LWRldGFpbC9kYXRhdGFibGUtcm93LWRldGFpbC5kaXJlY3RpdmUnXG5cbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9kYXRhdGFibGUtYWN0aW9uLW1lbnUtaXRlbS5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWFjdGlvbi1tZW51LXRvZ2dsZS5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWNlbGwtdHBsLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9kYXRhdGFibGUtZmlsdGVyLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9kYXRhdGFibGUtcm93LWFjdGlvbi1pdGVtLmRpcmVjdGl2ZSdcblxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZGF0YXRhYmxlLWFjY2Vzc29yJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZGF0YXRhYmxlLWRhdGEtc291cmNlJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZGF0YXRhYmxlLWdxbC1kYXRhLXNvdXJjZSdcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL21lbnViYXItaXRlbS1kYXRhJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvcGFnZS1pbmZvJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvcHJlZmVyZW5jZXMtYWNjZXNzb3InXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9wcmVmZXJlbmNlcydcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3RhYmxlLWNvbHVtbidcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3NvcnQtZXZlbnQnXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9zb3J0LWl0ZW0nXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy90YWJsZS1jb2x1bW4nXG5cbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZGF0YXRhYmxlLWNvbHVtbi1jaGFuZ2VzLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2RhdGF0YWJsZS1wcmVmZXJlbmNlcy5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kYXRhdGFibGUtc2Nyb2xsYmFyLWhlbHBlci5zZXJ2aWNlJ1xuXG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy9kYXRhdGFibGUtcHJlZmVyZW5jZXMtYWNjZXNzb3InXG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy9tZW51YmFyLWl0ZW0tZGF0YSdcblxuZXhwb3J0ICogZnJvbSAnLi91dGlscy93aXRoLXN0b3JlZC1jb2x1bW4taW5mbydcblxuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUubW9kdWxlJ1xuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMseURBQXlELENBQUE7QUFDdkUsY0FBYyxtRUFBbUUsQ0FBQTtBQUNqRixjQUFjLCtDQUErQyxDQUFBO0FBQzdELGNBQWMsdUVBQXVFLENBQUE7QUFDckYsY0FBYyxxRkFBcUYsQ0FBQTtBQUNuRyxjQUFjLDJGQUEyRixDQUFBO0FBQ3pHLGNBQWMscUZBQXFGLENBQUE7QUFDbkcsY0FBYyx1RUFBdUUsQ0FBQTtBQUNyRixjQUFjLHFGQUFxRixDQUFBO0FBQ25HLGNBQWMsNkRBQTZELENBQUE7QUFDM0UsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLCtDQUErQyxDQUFBO0FBQzdELGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYywrRUFBK0UsQ0FBQTtBQUM3RixjQUFjLDJFQUEyRSxDQUFBO0FBQ3pGLGNBQWMsNkVBQTZFLENBQUE7QUFDM0YsY0FBYywyREFBMkQsQ0FBQTtBQUN6RSxjQUFjLDZEQUE2RCxDQUFBO0FBQzNFLGNBQWMsMkRBQTJELENBQUE7QUFDekUsY0FBYyx1REFBdUQsQ0FBQTtBQUVyRSxjQUFjLG1EQUFtRCxDQUFBO0FBQ2pFLGNBQWMscURBQXFELENBQUE7QUFDbkUsY0FBYywyQ0FBMkMsQ0FBQTtBQUN6RCxjQUFjLG9EQUFvRCxDQUFBO0FBQ2xFLGNBQWMsZ0RBQWdELENBQUE7QUFDOUQsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLGtEQUFrRCxDQUFBO0FBRWhFLGNBQWMsOEJBQThCLENBQUE7QUFDNUMsY0FBYywrREFBK0QsQ0FBQTtBQUM3RSxjQUFjLGtFQUFrRSxDQUFBO0FBQ2hGLGNBQWMsK0RBQStELENBQUE7QUFDN0UsY0FBYyxzQ0FBc0MsQ0FBQTtBQUNwRCxjQUFjLHFDQUFxQyxDQUFBO0FBQ25ELGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYywyQkFBMkIsQ0FBQTtBQUN6QyxjQUFjLGdDQUFnQyxDQUFBO0FBQzlDLGNBQWMsb0NBQW9DLENBQUE7QUFDbEQsY0FBYyw0QkFBNEIsQ0FBQTtBQUMxQyxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsK0JBQStCLENBQUE7QUFDN0MsY0FBYyxzQkFBc0IsQ0FBQTtBQUNwQyxjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMscUJBQXFCLENBQUE7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLHVCQUF1QixDQUFBO0FBRXJDLGNBQWMsb0NBQW9DLENBQUE7QUFDbEQsY0FBYyw2Q0FBNkMsQ0FBQTtBQUMzRCxjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELGNBQWMsK0NBQStDLENBQUE7QUFFN0QsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLDRCQUE0QixDQUFBO0FBRTFDLGNBQWMsaUNBQWlDLENBQUE7QUFFL0MsY0FBYyxvQkFBb0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlL2RhdGF0YWJsZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1hY3Rpb24tbWVudS9kYXRhdGFibGUtYWN0aW9uLW1lbnUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtYWN0aW9uLW1lbnUtaXRlbS9kYXRhdGFibGUtYWN0aW9uLW1lbnUtaXRlbS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1jb2x1bW4vZGF0YXRhYmxlLWNvbHVtbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLW1lbnUvZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItbWVudS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC1kYXRlL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC1kYXRlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItc2VhcmNoLW51bWVyaWMvZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItc2VhcmNoLW51bWVyaWMuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtY29sdW1uLWZpbHRlci1zZWFyY2gtdGV4dC9kYXRhdGFibGUtY29sdW1uLWZpbHRlci1zZWFyY2gtdGV4dC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMvZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMtYnV0dG9uL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMtYnV0dG9uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWV4cG9ydC1idXR0b24vZGF0YXRhYmxlLWV4cG9ydC1idXR0b24uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtZm9vdGVyL2RhdGF0YWJsZS1mb290ZXItdHBsLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWZvb3Rlci9kYXRhdGFibGUtZm9vdGVyLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyL2RhdGF0YWJsZS1tZW51LWJhci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tY2VudGVyL2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tY2VudGVyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1sZWZ0L2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tbGVmdC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tcmlnaHQvZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1yaWdodC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci1yb3cvZGF0YXRhYmxlLW1lbnUtYmFyLXJvdy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci10ZXh0L2RhdGF0YWJsZS1tZW51LWJhci10ZXh0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLXJvdy1kZXRhaWwvZGF0YXRhYmxlLXJvdy1kZXRhaWwtdHBsLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLXJvdy1kZXRhaWwvZGF0YXRhYmxlLXJvdy1kZXRhaWwuZGlyZWN0aXZlJ1xuXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWFjdGlvbi1tZW51LWl0ZW0uZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1hY3Rpb24tbWVudS10b2dnbGUuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1jZWxsLXRwbC5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItdHBsLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9kYXRhdGFibGUtY29sdW1uLWZpbHRlci5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWZpbHRlci5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLXJvdy1hY3Rpb24taXRlbS5kaXJlY3RpdmUnXG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2NvbHVtbnMtZGF0YS1maWx0ZXInXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9jb2x1bW5zLWRhdGEtZmlsdGVycy9zZWFyY2gtZGF0ZS5jb2x1bW5zLWRhdGEtZmlsdGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvY29sdW1ucy1kYXRhLWZpbHRlcnMvc2VhcmNoLW51bWVyaWMuY29sdW1ucy1kYXRhLWZpbHRlcidcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2NvbHVtbnMtZGF0YS1maWx0ZXJzL3NlYXJjaC10ZXh0LmNvbHVtbnMtZGF0YS1maWx0ZXInXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9jb2x1bW5zLWRhdGEtZmlsdGVycy9tb2RlbHMnXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9jb2x1bW5zLWRhdGEtZmlsdGVycy91dGlscydcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2RhdGF0YWJsZS1hY2Nlc3NvcidcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2RhdGF0YWJsZS1jb25maWcnXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9kYXRhdGFibGUtZGF0YS1zb3VyY2UnXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9kYXRhdGFibGUtZ3FsLWRhdGEtc291cmNlJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvbWVudWJhci1pdGVtLWRhdGEnXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9wYWdlLWluZm8nXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9wcmVmZXJlbmNlcy1hY2Nlc3NvcidcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3ByZWZlcmVuY2VzJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvdGFibGUtY29sdW1uJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvc29ydC1ldmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3NvcnQtaXRlbSdcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3RhYmxlLWNvbHVtbidcblxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9jb2x1bW5zLWZpbHRlcnMuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZGF0YXRhYmxlLWNvbHVtbi1jaGFuZ2VzLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2RhdGF0YWJsZS1wcmVmZXJlbmNlcy5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kYXRhdGFibGUtc2Nyb2xsYmFyLWhlbHBlci5zZXJ2aWNlJ1xuXG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy9kYXRhdGFibGUtcHJlZmVyZW5jZXMtYWNjZXNzb3InXG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy9tZW51YmFyLWl0ZW0tZGF0YSdcblxuZXhwb3J0ICogZnJvbSAnLi91dGlscy93aXRoLXN0b3JlZC1jb2x1bW4taW5mbydcblxuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUubW9kdWxlJ1xuIl19
@@ -0,0 +1,109 @@
1
+ import { Inject, Injectable, Optional } from '@angular/core';
2
+ import { BehaviorSubject, combineLatest, map, of, switchMap } from 'rxjs';
3
+ import { isNullOrUndefined, notNullOrUndefined } from '@theseam/ui-common/utils';
4
+ import { camelCase } from '@marklb/ngx-datatable';
5
+ import { THESEAM_COLUMNS_DATA_FILTER } from '../models/columns-data-filter';
6
+ import { THESEAM_COLUMNS_DATA_FILTERS_DEFAULT } from '../models/columns-data-filters/utils';
7
+ import { THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME } from '../models/columns-data-filters/models';
8
+ import * as i0 from "@angular/core";
9
+ export class ColumnsFiltersService {
10
+ constructor(_customColumnsDataFilters) {
11
+ this._customColumnsDataFilters = _customColumnsDataFilters;
12
+ this._columnFilterTemplates = new BehaviorSubject([]);
13
+ this.columnFilterTemplates$ = this._columnFilterTemplates.asObservable();
14
+ this._columnsFilters = new BehaviorSubject([]);
15
+ this.columnsFilters$ = this._columnsFilters.asObservable();
16
+ this.columnActiveFilterProps$ = this.columnsFilters$.pipe(switchMap(filters => {
17
+ if (!filters.length) {
18
+ return of([]);
19
+ }
20
+ return combineLatest(filters.map(f => f.filterStateChanges.pipe(map(filterState => !f.isDefault() ? filterState.state.prop : null))));
21
+ }), map(props => props.filter(notNullOrUndefined)));
22
+ }
23
+ registerColumnFilters(columns) {
24
+ this._columnsFilters.next([]);
25
+ const filters = columns
26
+ .filter(col => col.filterable)
27
+ .map(col => this.createColumnDataFilter(col, null));
28
+ this._columnsFilters.next(filters.filter(notNullOrUndefined));
29
+ }
30
+ setFilterTemplates(tpls) {
31
+ this._columnFilterTemplates.next(tpls);
32
+ }
33
+ createColumnDataFilter(column, initialValue) {
34
+ const prop = this.getColumnFilterProp(column);
35
+ if (isNullOrUndefined(prop)) {
36
+ return null;
37
+ }
38
+ return this._getColumnsDataFilter(prop, column, initialValue);
39
+ }
40
+ _getColumnsDataFilter(prop, column, initialValue) {
41
+ const filterClass = this._getColumnsDataFilterType(column);
42
+ let filter;
43
+ if (notNullOrUndefined(this._customColumnsDataFilters)) {
44
+ filter = this._customColumnsDataFilters.find(x => x.name === filterClass);
45
+ }
46
+ if (isNullOrUndefined(filter)) {
47
+ filter = THESEAM_COLUMNS_DATA_FILTERS_DEFAULT.find(x => x.name === filterClass);
48
+ }
49
+ if (notNullOrUndefined(filter)) {
50
+ return new filter.class(prop, initialValue, column);
51
+ }
52
+ return null;
53
+ }
54
+ _getColumnsDataFilterType(column) {
55
+ if (notNullOrUndefined(column.filterOptions) && notNullOrUndefined(column.filterOptions.filterType)) {
56
+ return column.filterOptions.filterType;
57
+ }
58
+ else if (notNullOrUndefined(column.cellType)) {
59
+ switch (column.cellType) {
60
+ case 'string':
61
+ case 'phone':
62
+ return THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME;
63
+ case 'currency':
64
+ case 'decimal':
65
+ case 'integer':
66
+ return THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME;
67
+ case 'date':
68
+ return THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME;
69
+ }
70
+ }
71
+ return THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME;
72
+ }
73
+ getColumnFilterProp(column) {
74
+ if (isNullOrUndefined(column)) {
75
+ return null;
76
+ }
77
+ const prop = column.filterOptions?.filterProp || column.prop || (notNullOrUndefined(column.name) ? camelCase(column.name) : undefined);
78
+ if (isNullOrUndefined(prop)) {
79
+ return null;
80
+ }
81
+ return `${prop}`;
82
+ }
83
+ getColumnFilter(prop) {
84
+ if (isNullOrUndefined(prop)) {
85
+ return undefined;
86
+ }
87
+ return this._columnsFilters.value.find(f => f.prop === prop);
88
+ }
89
+ filters() {
90
+ return this._columnsFilters.value;
91
+ }
92
+ addFilter(filter) {
93
+ this._columnsFilters.next([...this._columnsFilters.value, filter]);
94
+ }
95
+ removeFilter(filter) {
96
+ this._columnsFilters.next([...this._columnsFilters.value.filter(c => c.name !== filter.name)]);
97
+ }
98
+ }
99
+ ColumnsFiltersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsFiltersService, deps: [{ token: THESEAM_COLUMNS_DATA_FILTER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
100
+ ColumnsFiltersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsFiltersService });
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ColumnsFiltersService, decorators: [{
102
+ type: Injectable
103
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
104
+ type: Optional
105
+ }, {
106
+ type: Inject,
107
+ args: [THESEAM_COLUMNS_DATA_FILTER]
108
+ }] }]; } });
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1maWx0ZXJzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL3NlcnZpY2VzL2NvbHVtbnMtZmlsdGVycy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUV6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUloRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDakQsT0FBTyxFQUFxQiwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBRTlGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQzNGLE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSwrQ0FBK0MsRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLHVDQUF1QyxDQUFBOztBQUduTSxNQUFNLE9BQU8scUJBQXFCO0lBb0JoQyxZQUNvRSx5QkFBMEQ7UUFBMUQsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUFpQztRQXBCN0csMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQTBDLEVBQUUsQ0FBQyxDQUFBO1FBQzFGLDJCQUFzQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUVsRSxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFzQixFQUFFLENBQUMsQ0FBQTtRQUMvRCxvQkFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUE7UUFFckQsNkJBQXdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ2xFLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDbkIsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7YUFDZDtZQUVELE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUM3RCxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUNuRSxDQUFDLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUMvQyxDQUFBO0lBSUUsQ0FBQztJQUVHLHFCQUFxQixDQUFDLE9BQWlDO1FBQzVELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRTdCLE1BQU0sT0FBTyxHQUFHLE9BQU87YUFDcEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQzthQUM3QixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7UUFFckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVNLGtCQUFrQixDQUFDLElBQTZDO1FBQ3JFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUVNLHNCQUFzQixDQUFDLE1BQThCLEVBQUUsWUFBaUI7UUFDN0UsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBRTdDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVPLHFCQUFxQixDQUFDLElBQVksRUFBRSxNQUE4QixFQUFFLFlBQWlCO1FBRTNGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUUxRCxJQUFJLE1BQU0sQ0FBQTtRQUNWLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQUU7WUFDdEQsTUFBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFBO1NBQzFFO1FBRUQsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM3QixNQUFNLEdBQUcsb0NBQW9DLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQTtTQUNoRjtRQUVELElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUIsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQTtTQUNwRDtRQUVELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVPLHlCQUF5QixDQUFDLE1BQThCO1FBQzlELElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbkcsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQTtTQUN2QzthQUNJLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVDLFFBQVEsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDdkIsS0FBSyxRQUFRLENBQUM7Z0JBQ2QsS0FBSyxPQUFPO29CQUNWLE9BQU8sNENBQTRDLENBQUE7Z0JBQ3JELEtBQUssVUFBVSxDQUFDO2dCQUNoQixLQUFLLFNBQVMsQ0FBQztnQkFDZixLQUFLLFNBQVM7b0JBQ1osT0FBTywrQ0FBK0MsQ0FBQTtnQkFDeEQsS0FBSyxNQUFNO29CQUNULE9BQU8sNENBQTRDLENBQUE7YUFDdEQ7U0FDRjtRQUVELE9BQU8sNENBQTRDLENBQUE7SUFDckQsQ0FBQztJQUVNLG1CQUFtQixDQUFDLE1BQWlEO1FBQzFFLElBQUksaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUUsVUFBVSxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzlJLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQTtJQUNsQixDQUFDO0lBRU0sZUFBZSxDQUFDLElBQW1CO1FBQ3hDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0IsT0FBTyxTQUFTLENBQUE7U0FDakI7UUFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFBO0lBQ25DLENBQUM7SUFFTSxTQUFTLENBQUMsTUFBeUI7UUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBRSxDQUFDLENBQUE7SUFDdEUsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUF5QjtRQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUUsQ0FBQyxDQUFBO0lBQ2xHLENBQUM7O2tIQXhIVSxxQkFBcUIsa0JBcUJWLDJCQUEyQjtzSEFyQnRDLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVOzswQkFzQk4sUUFBUTs7MEJBQUksTUFBTTsyQkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcydcblxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQsIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gJy4uL21vZGVscy90YWJsZS1jb2x1bW4nXG5pbXBvcnQgeyBEYXRhRmlsdGVyQ29udGFpbmVyIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2RhdGEtZmlsdGVycydcbmltcG9ydCB7IGNhbWVsQ2FzZSB9IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcbmltcG9ydCB7IENvbHVtbnNEYXRhRmlsdGVyLCBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVIgfSBmcm9tICcuLi9tb2RlbHMvY29sdW1ucy1kYXRhLWZpbHRlcidcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5GaWx0ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLmRpcmVjdGl2ZSdcbmltcG9ydCB7IFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUlNfREVGQVVMVCB9IGZyb20gJy4uL21vZGVscy9jb2x1bW5zLWRhdGEtZmlsdGVycy91dGlscydcbmltcG9ydCB7IFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9EQVRFX1NFQVJDSF9OQU1FLCBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVJfTlVNRVJJQ19TRUFSQ0hfTkFNRSwgVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX1RFWFRfU0VBUkNIX05BTUUgfSBmcm9tICcuLi9tb2RlbHMvY29sdW1ucy1kYXRhLWZpbHRlcnMvbW9kZWxzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29sdW1uc0ZpbHRlcnNTZXJ2aWNlIGltcGxlbWVudHMgRGF0YUZpbHRlckNvbnRhaW5lciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbHVtbkZpbHRlclRlbXBsYXRlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGhlU2VhbURhdGF0YWJsZUNvbHVtbkZpbHRlckRpcmVjdGl2ZVtdPihbXSlcbiAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkZpbHRlclRlbXBsYXRlcyQgPSB0aGlzLl9jb2x1bW5GaWx0ZXJUZW1wbGF0ZXMuYXNPYnNlcnZhYmxlKClcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb2x1bW5zRmlsdGVycyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sdW1uc0RhdGFGaWx0ZXJbXT4oW10pXG4gIHB1YmxpYyByZWFkb25seSBjb2x1bW5zRmlsdGVycyQgPSB0aGlzLl9jb2x1bW5zRmlsdGVycy5hc09ic2VydmFibGUoKVxuXG4gIHB1YmxpYyByZWFkb25seSBjb2x1bW5BY3RpdmVGaWx0ZXJQcm9wcyQgPSB0aGlzLmNvbHVtbnNGaWx0ZXJzJC5waXBlKFxuICAgIHN3aXRjaE1hcChmaWx0ZXJzID0+IHtcbiAgICAgIGlmICghZmlsdGVycy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29tYmluZUxhdGVzdChmaWx0ZXJzLm1hcChmID0+IGYuZmlsdGVyU3RhdGVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIG1hcChmaWx0ZXJTdGF0ZSA9PiAhZi5pc0RlZmF1bHQoKSA/IGZpbHRlclN0YXRlLnN0YXRlLnByb3AgOiBudWxsKVxuICAgICAgKSkpXG4gICAgfSksXG4gICAgbWFwKHByb3BzID0+IHByb3BzLmZpbHRlcihub3ROdWxsT3JVbmRlZmluZWQpKVxuICApXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVIpIHByaXZhdGUgcmVhZG9ubHkgX2N1c3RvbUNvbHVtbnNEYXRhRmlsdGVycz86IHsgbmFtZTogc3RyaW5nLCBjbGFzczogYW55IH1bXVxuICApIHt9XG5cbiAgcHVibGljIHJlZ2lzdGVyQ29sdW1uRmlsdGVycyhjb2x1bW5zOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10pIHtcbiAgICB0aGlzLl9jb2x1bW5zRmlsdGVycy5uZXh0KFtdKVxuXG4gICAgY29uc3QgZmlsdGVycyA9IGNvbHVtbnNcbiAgICAgIC5maWx0ZXIoY29sID0+IGNvbC5maWx0ZXJhYmxlKVxuICAgICAgLm1hcChjb2wgPT4gdGhpcy5jcmVhdGVDb2x1bW5EYXRhRmlsdGVyKGNvbCwgbnVsbCkpXG5cbiAgICB0aGlzLl9jb2x1bW5zRmlsdGVycy5uZXh0KGZpbHRlcnMuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCkpXG4gIH1cblxuICBwdWJsaWMgc2V0RmlsdGVyVGVtcGxhdGVzKHRwbHM6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5GaWx0ZXJEaXJlY3RpdmVbXSkge1xuICAgIHRoaXMuX2NvbHVtbkZpbHRlclRlbXBsYXRlcy5uZXh0KHRwbHMpXG4gIH1cblxuICBwdWJsaWMgY3JlYXRlQ29sdW1uRGF0YUZpbHRlcihjb2x1bW46IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4sIGluaXRpYWxWYWx1ZTogYW55KTogQ29sdW1uc0RhdGFGaWx0ZXIgfCBudWxsIHtcbiAgICBjb25zdCBwcm9wID0gdGhpcy5nZXRDb2x1bW5GaWx0ZXJQcm9wKGNvbHVtbilcblxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChwcm9wKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZ2V0Q29sdW1uc0RhdGFGaWx0ZXIocHJvcCwgY29sdW1uLCBpbml0aWFsVmFsdWUpXG4gIH1cblxuICBwcml2YXRlIF9nZXRDb2x1bW5zRGF0YUZpbHRlcihwcm9wOiBzdHJpbmcsIGNvbHVtbjogVGhlU2VhbURhdGF0YWJsZUNvbHVtbiwgaW5pdGlhbFZhbHVlOiBhbnkpOiBDb2x1bW5zRGF0YUZpbHRlciB8IG51bGxcbiAge1xuICAgIGNvbnN0IGZpbHRlckNsYXNzID0gdGhpcy5fZ2V0Q29sdW1uc0RhdGFGaWx0ZXJUeXBlKGNvbHVtbilcblxuICAgIGxldCBmaWx0ZXJcbiAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRoaXMuX2N1c3RvbUNvbHVtbnNEYXRhRmlsdGVycykpIHtcbiAgICAgIGZpbHRlciA9IHRoaXMuX2N1c3RvbUNvbHVtbnNEYXRhRmlsdGVycy5maW5kKHggPT4geC5uYW1lID09PSBmaWx0ZXJDbGFzcylcbiAgICB9XG5cbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoZmlsdGVyKSkge1xuICAgICAgZmlsdGVyID0gVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSU19ERUZBVUxULmZpbmQoeCA9PiB4Lm5hbWUgPT09IGZpbHRlckNsYXNzKVxuICAgIH1cblxuICAgIGlmIChub3ROdWxsT3JVbmRlZmluZWQoZmlsdGVyKSkge1xuICAgICAgcmV0dXJuIG5ldyBmaWx0ZXIuY2xhc3MocHJvcCwgaW5pdGlhbFZhbHVlLCBjb2x1bW4pXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHByaXZhdGUgX2dldENvbHVtbnNEYXRhRmlsdGVyVHlwZShjb2x1bW46IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4pOiBzdHJpbmcge1xuICAgIGlmIChub3ROdWxsT3JVbmRlZmluZWQoY29sdW1uLmZpbHRlck9wdGlvbnMpICYmIG5vdE51bGxPclVuZGVmaW5lZChjb2x1bW4uZmlsdGVyT3B0aW9ucy5maWx0ZXJUeXBlKSkge1xuICAgICAgcmV0dXJuIGNvbHVtbi5maWx0ZXJPcHRpb25zLmZpbHRlclR5cGVcbiAgICB9XG4gICAgZWxzZSBpZiAobm90TnVsbE9yVW5kZWZpbmVkKGNvbHVtbi5jZWxsVHlwZSkpIHtcbiAgICAgIHN3aXRjaCAoY29sdW1uLmNlbGxUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgIGNhc2UgJ3Bob25lJzpcbiAgICAgICAgICByZXR1cm4gVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX1RFWFRfU0VBUkNIX05BTUVcbiAgICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICBjYXNlICdkZWNpbWFsJzpcbiAgICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICAgICAgcmV0dXJuIFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9OVU1FUklDX1NFQVJDSF9OQU1FXG4gICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgIHJldHVybiBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVJfREFURV9TRUFSQ0hfTkFNRVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVJfVEVYVF9TRUFSQ0hfTkFNRVxuICB9XG5cbiAgcHVibGljIGdldENvbHVtbkZpbHRlclByb3AoY29sdW1uOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChjb2x1bW4pKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGNvbnN0IHByb3AgPSBjb2x1bW4uZmlsdGVyT3B0aW9ucz8uZmlsdGVyUHJvcCB8fCBjb2x1bW4ucHJvcCB8fCAobm90TnVsbE9yVW5kZWZpbmVkKGNvbHVtbi5uYW1lKSA/IGNhbWVsQ2FzZSg8c3RyaW5nPmNvbHVtbi5uYW1lKSA6IHVuZGVmaW5lZClcbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQocHJvcCkpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3Byb3B9YFxuICB9XG5cbiAgcHVibGljIGdldENvbHVtbkZpbHRlcihwcm9wOiBzdHJpbmcgfCBudWxsKTogQ29sdW1uc0RhdGFGaWx0ZXIgfCB1bmRlZmluZWQge1xuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChwcm9wKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9jb2x1bW5zRmlsdGVycy52YWx1ZS5maW5kKGYgPT4gZi5wcm9wID09PSBwcm9wKVxuICB9XG5cbiAgcHVibGljIGZpbHRlcnMoKTogQ29sdW1uc0RhdGFGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbnNGaWx0ZXJzLnZhbHVlXG4gIH1cblxuICBwdWJsaWMgYWRkRmlsdGVyKGZpbHRlcjogQ29sdW1uc0RhdGFGaWx0ZXIpIHtcbiAgICB0aGlzLl9jb2x1bW5zRmlsdGVycy5uZXh0KFsgLi4udGhpcy5fY29sdW1uc0ZpbHRlcnMudmFsdWUsIGZpbHRlciBdKVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUZpbHRlcihmaWx0ZXI6IENvbHVtbnNEYXRhRmlsdGVyKSB7XG4gICAgdGhpcy5fY29sdW1uc0ZpbHRlcnMubmV4dChbIC4uLnRoaXMuX2NvbHVtbnNGaWx0ZXJzLnZhbHVlLmZpbHRlcihjID0+IGMubmFtZSAhPT0gZmlsdGVyLm5hbWUpIF0pXG4gIH1cbn1cbiJdfQ==