@ecodev/natural 62.1.2 → 63.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/fesm2022/ecodev-natural-vanilla.mjs +1193 -0
  2. package/fesm2022/ecodev-natural-vanilla.mjs.map +1 -0
  3. package/fesm2022/ecodev-natural.mjs +436 -425
  4. package/fesm2022/ecodev-natural.mjs.map +1 -1
  5. package/lib/classes/network-activity.service.d.ts +54 -0
  6. package/lib/classes/validators.d.ts +1 -1
  7. package/lib/modules/columns-picker/columns-picker.component.d.ts +2 -2
  8. package/lib/modules/common/services/seo.provider.d.ts +2 -2
  9. package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +1 -1
  10. package/lib/modules/file/abstract-file.d.ts +6 -3
  11. package/lib/modules/file/component/file.component.d.ts +2 -2
  12. package/lib/modules/file/file-drop.directive.d.ts +2 -3
  13. package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +2 -3
  14. package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +3 -3
  15. package/lib/modules/icon/icon.module.d.ts +2 -2
  16. package/lib/modules/panels/panels.service.d.ts +1 -2
  17. package/lib/modules/relations/relations.component.d.ts +3 -3
  18. package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +2 -3
  19. package/lib/modules/search/group/group.component.d.ts +2 -3
  20. package/lib/modules/search/input/input.component.d.ts +5 -5
  21. package/lib/modules/search/search/search.component.d.ts +2 -2
  22. package/lib/modules/select/abstract-select.component.d.ts +3 -3
  23. package/lib/modules/select/select/select.component.d.ts +1 -1
  24. package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +1 -1
  25. package/lib/modules/table-button/table-button.component.d.ts +4 -2
  26. package/package.json +16 -14
  27. package/public-api.d.ts +1 -0
  28. package/src/lib/_natural.theme.scss +1 -2
  29. package/vanilla/index.d.ts +5 -0
  30. package/vanilla/package.json +3 -0
  31. package/vanilla/public-api.d.ts +11 -0
  32. package/vanilla/src/lib/classes/crypto.d.ts +8 -0
  33. package/vanilla/src/lib/classes/data-source.d.ts +32 -0
  34. package/vanilla/src/lib/classes/query-variable-manager-utils.d.ts +2 -0
  35. package/vanilla/src/lib/classes/query-variable-manager.d.ts +91 -0
  36. package/vanilla/src/lib/classes/signing.d.ts +7 -0
  37. package/vanilla/src/lib/classes/utility.d.ts +77 -0
  38. package/vanilla/src/lib/modules/search/classes/graphql-doctrine.types.d.ts +83 -0
  39. package/vanilla/src/lib/modules/search/classes/utils.d.ts +17 -0
  40. package/vanilla/src/lib/modules/search/types/dropdown-component.d.ts +20 -0
  41. package/vanilla/src/lib/modules/search/types/facet.d.ts +75 -0
  42. package/vanilla/src/lib/modules/search/types/values.d.ts +32 -0
  43. package/vanilla/src/lib/services/abstract-model.service.d.ts +244 -0
  44. package/vanilla/src/lib/services/debounce.service.d.ts +52 -0
  45. package/vanilla/src/lib/types/types.d.ts +100 -0
  46. package/esm2022/ecodev-natural.mjs +0 -5
  47. package/esm2022/lib/classes/abstract-detail.mjs +0 -229
  48. package/esm2022/lib/classes/abstract-editable-list.mjs +0 -99
  49. package/esm2022/lib/classes/abstract-list.mjs +0 -461
  50. package/esm2022/lib/classes/abstract-navigable-list.mjs +0 -133
  51. package/esm2022/lib/classes/apollo-utils.mjs +0 -59
  52. package/esm2022/lib/classes/crypto.mjs +0 -23
  53. package/esm2022/lib/classes/cumulative-changes.mjs +0 -50
  54. package/esm2022/lib/classes/data-source.mjs +0 -71
  55. package/esm2022/lib/classes/providers.mjs +0 -13
  56. package/esm2022/lib/classes/query-variable-manager-utils.mjs +0 -14
  57. package/esm2022/lib/classes/query-variable-manager.mjs +0 -172
  58. package/esm2022/lib/classes/rxjs.mjs +0 -54
  59. package/esm2022/lib/classes/signing.mjs +0 -38
  60. package/esm2022/lib/classes/tld.mjs +0 -1476
  61. package/esm2022/lib/classes/utility.mjs +0 -234
  62. package/esm2022/lib/classes/validators.mjs +0 -179
  63. package/esm2022/lib/directives/http-prefix.directive.mjs +0 -47
  64. package/esm2022/lib/modules/alert/alert.service.mjs +0 -53
  65. package/esm2022/lib/modules/alert/confirm.component.mjs +0 -16
  66. package/esm2022/lib/modules/alert/public-api.mjs +0 -6
  67. package/esm2022/lib/modules/avatar/component/avatar.component.mjs +0 -203
  68. package/esm2022/lib/modules/avatar/public-api.mjs +0 -6
  69. package/esm2022/lib/modules/avatar/service/avatar.service.mjs +0 -63
  70. package/esm2022/lib/modules/avatar/sources/gravatar.mjs +0 -29
  71. package/esm2022/lib/modules/avatar/sources/image.mjs +0 -13
  72. package/esm2022/lib/modules/avatar/sources/initials.mjs +0 -39
  73. package/esm2022/lib/modules/avatar/sources/source.mjs +0 -16
  74. package/esm2022/lib/modules/columns-picker/columns-picker.component.mjs +0 -145
  75. package/esm2022/lib/modules/columns-picker/public-api.mjs +0 -5
  76. package/esm2022/lib/modules/columns-picker/types.mjs +0 -2
  77. package/esm2022/lib/modules/common/directives/background-density.directive.mjs +0 -63
  78. package/esm2022/lib/modules/common/directives/linkable-tab.directive.mjs +0 -93
  79. package/esm2022/lib/modules/common/directives/src-density.directive.mjs +0 -72
  80. package/esm2022/lib/modules/common/pipes/capitalize.pipe.mjs +0 -24
  81. package/esm2022/lib/modules/common/pipes/ellipsis.pipe.mjs +0 -17
  82. package/esm2022/lib/modules/common/pipes/enum.pipe.mjs +0 -24
  83. package/esm2022/lib/modules/common/pipes/time-ago.pipe.mjs +0 -140
  84. package/esm2022/lib/modules/common/public-api.mjs +0 -14
  85. package/esm2022/lib/modules/common/services/memory-storage.mjs +0 -110
  86. package/esm2022/lib/modules/common/services/seo.provider.mjs +0 -23
  87. package/esm2022/lib/modules/common/services/seo.service.mjs +0 -235
  88. package/esm2022/lib/modules/detail-header/detail-header.component.mjs +0 -84
  89. package/esm2022/lib/modules/detail-header/public-api.mjs +0 -5
  90. package/esm2022/lib/modules/dialog-trigger/dialog-trigger.component.mjs +0 -72
  91. package/esm2022/lib/modules/dialog-trigger/public-api.mjs +0 -5
  92. package/esm2022/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +0 -100
  93. package/esm2022/lib/modules/dropdown-components/public-api.mjs +0 -14
  94. package/esm2022/lib/modules/dropdown-components/type-boolean/type-boolean.component.mjs +0 -39
  95. package/esm2022/lib/modules/dropdown-components/type-date/type-date.component.mjs +0 -173
  96. package/esm2022/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +0 -134
  97. package/esm2022/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +0 -80
  98. package/esm2022/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +0 -48
  99. package/esm2022/lib/modules/dropdown-components/type-number/type-number.component.mjs +0 -110
  100. package/esm2022/lib/modules/dropdown-components/type-options/type-options.component.mjs +0 -64
  101. package/esm2022/lib/modules/dropdown-components/type-select/type-select.component.mjs +0 -175
  102. package/esm2022/lib/modules/dropdown-components/type-text/type-text.component.mjs +0 -62
  103. package/esm2022/lib/modules/dropdown-components/types.mjs +0 -41
  104. package/esm2022/lib/modules/dropdown-components/utils.mjs +0 -35
  105. package/esm2022/lib/modules/file/abstract-file.mjs +0 -230
  106. package/esm2022/lib/modules/file/component/file.component.mjs +0 -172
  107. package/esm2022/lib/modules/file/file-drop.directive.mjs +0 -111
  108. package/esm2022/lib/modules/file/file-select.directive.mjs +0 -26
  109. package/esm2022/lib/modules/file/file.service.mjs +0 -43
  110. package/esm2022/lib/modules/file/public-api.mjs +0 -9
  111. package/esm2022/lib/modules/file/types.mjs +0 -2
  112. package/esm2022/lib/modules/file/utils.mjs +0 -129
  113. package/esm2022/lib/modules/fixed-button/fixed-button.component.mjs +0 -30
  114. package/esm2022/lib/modules/fixed-button/public-api.mjs +0 -5
  115. package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +0 -56
  116. package/esm2022/lib/modules/fixed-button-detail/public-api.mjs +0 -5
  117. package/esm2022/lib/modules/hierarchic-selector/classes/flat-node.mjs +0 -18
  118. package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-configuration.mjs +0 -2
  119. package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.mjs +0 -2
  120. package/esm2022/lib/modules/hierarchic-selector/classes/model-node.mjs +0 -14
  121. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +0 -398
  122. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +0 -243
  123. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +0 -38
  124. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +0 -22
  125. package/esm2022/lib/modules/hierarchic-selector/public-api.mjs +0 -10
  126. package/esm2022/lib/modules/icon/icon.directive.mjs +0 -96
  127. package/esm2022/lib/modules/icon/icon.module.mjs +0 -33
  128. package/esm2022/lib/modules/icon/public-api.mjs +0 -6
  129. package/esm2022/lib/modules/logger/error-handler.mjs +0 -87
  130. package/esm2022/lib/modules/logger/error.module.mjs +0 -22
  131. package/esm2022/lib/modules/logger/public-api.mjs +0 -6
  132. package/esm2022/lib/modules/matomo/matomo.service.mjs +0 -96
  133. package/esm2022/lib/modules/matomo/public-api.mjs +0 -5
  134. package/esm2022/lib/modules/panels/abstract-panel.mjs +0 -76
  135. package/esm2022/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.mjs +0 -12
  136. package/esm2022/lib/modules/panels/panels.component.mjs +0 -27
  137. package/esm2022/lib/modules/panels/panels.module.mjs +0 -10
  138. package/esm2022/lib/modules/panels/panels.service.mjs +0 -329
  139. package/esm2022/lib/modules/panels/panels.urlmatcher.mjs +0 -75
  140. package/esm2022/lib/modules/panels/public-api.mjs +0 -11
  141. package/esm2022/lib/modules/panels/types.mjs +0 -3
  142. package/esm2022/lib/modules/relations/public-api.mjs +0 -5
  143. package/esm2022/lib/modules/relations/relations.component.mjs +0 -254
  144. package/esm2022/lib/modules/search/classes/graphql-doctrine.mjs +0 -111
  145. package/esm2022/lib/modules/search/classes/graphql-doctrine.types.mjs +0 -14
  146. package/esm2022/lib/modules/search/classes/transformers.mjs +0 -142
  147. package/esm2022/lib/modules/search/classes/url.mjs +0 -53
  148. package/esm2022/lib/modules/search/classes/utils.mjs +0 -25
  149. package/esm2022/lib/modules/search/dropdown-container/dropdown-container-animations.mjs +0 -44
  150. package/esm2022/lib/modules/search/dropdown-container/dropdown-container.component.mjs +0 -87
  151. package/esm2022/lib/modules/search/dropdown-container/dropdown-ref.mjs +0 -24
  152. package/esm2022/lib/modules/search/dropdown-container/dropdown.service.mjs +0 -90
  153. package/esm2022/lib/modules/search/facet-selector/facet-selector.component.mjs +0 -45
  154. package/esm2022/lib/modules/search/group/group.component.mjs +0 -53
  155. package/esm2022/lib/modules/search/input/input.component.mjs +0 -365
  156. package/esm2022/lib/modules/search/public-api.mjs +0 -7
  157. package/esm2022/lib/modules/search/search/search.component.mjs +0 -102
  158. package/esm2022/lib/modules/search/types/dropdown-component.mjs +0 -2
  159. package/esm2022/lib/modules/search/types/facet.mjs +0 -2
  160. package/esm2022/lib/modules/search/types/values.mjs +0 -2
  161. package/esm2022/lib/modules/select/abstract-select.component.mjs +0 -232
  162. package/esm2022/lib/modules/select/public-api.mjs +0 -7
  163. package/esm2022/lib/modules/select/select/select.component.mjs +0 -310
  164. package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +0 -57
  165. package/esm2022/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +0 -155
  166. package/esm2022/lib/modules/sidenav/public-api.mjs +0 -9
  167. package/esm2022/lib/modules/sidenav/sidenav/sidenav.component.mjs +0 -15
  168. package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +0 -90
  169. package/esm2022/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +0 -11
  170. package/esm2022/lib/modules/sidenav/sidenav-stack.service.mjs +0 -50
  171. package/esm2022/lib/modules/sidenav/sidenav.service.mjs +0 -196
  172. package/esm2022/lib/modules/stamp/public-api.mjs +0 -5
  173. package/esm2022/lib/modules/stamp/stamp.component.mjs +0 -23
  174. package/esm2022/lib/modules/table-button/public-api.mjs +0 -5
  175. package/esm2022/lib/modules/table-button/table-button.component.mjs +0 -78
  176. package/esm2022/lib/services/abstract-model.service.mjs +0 -526
  177. package/esm2022/lib/services/debounce.service.mjs +0 -149
  178. package/esm2022/lib/services/enum.service.mjs +0 -64
  179. package/esm2022/lib/services/link-mutation.service.mjs +0 -154
  180. package/esm2022/lib/services/persistence.service.mjs +0 -115
  181. package/esm2022/lib/services/swiss-parsing-date-adapter.service.mjs +0 -63
  182. package/esm2022/lib/types/types.mjs +0 -2
  183. package/esm2022/public-api.mjs +0 -46
@@ -1,243 +0,0 @@
1
- import { inject, Injectable, Injector } from '@angular/core';
2
- import { intersection } from 'lodash-es';
3
- import { BehaviorSubject, first, forkJoin } from 'rxjs';
4
- import { finalize, map } from 'rxjs/operators';
5
- import { NaturalQueryVariablesManager } from '../../../classes/query-variable-manager';
6
- import { HierarchicModelNode } from '../classes/model-node';
7
- import * as i0 from "@angular/core";
8
- export class NaturalHierarchicSelectorService {
9
- injector = inject(Injector);
10
- /**
11
- * Stores the global result of the tree
12
- * This observable contains Node.
13
- * When it's updated, the TreeController and TreeFlattener process the new array to generate the flat tree.
14
- */
15
- dataChange = new BehaviorSubject([]);
16
- /**
17
- * Configuration for relations and selection constraints
18
- *
19
- * The list should be sorted in the order of the hierarchic (list first parent rules, then child rules)
20
- */
21
- configuration = [];
22
- /**
23
- * Init component by saving the complete configuration, and then retrieving root elements.
24
- * Updates **another** observable (this.dataChange) when data is retrieved.
25
- */
26
- init(config, contextFilter = null, searchVariables = null) {
27
- this.validateConfiguration(config);
28
- this.configuration = config;
29
- return this.getList(null, contextFilter, searchVariables).pipe(map(data => this.dataChange.next(data)));
30
- }
31
- /**
32
- * Get list of children, considering given FlatNode id as a parent.
33
- * Mark loading status individually on nodes.
34
- */
35
- loadChildren(flatNode, contextFilter = null) {
36
- // Dont refetch children. Improve performances
37
- // Prevents interferences between HierarchicModelNode structure and angular components navigation.
38
- // Prevents a bug where grand children were lost if closing root
39
- if (flatNode.node.children.length) {
40
- return;
41
- }
42
- flatNode.loading = true;
43
- this.getList(flatNode, contextFilter)
44
- .pipe(finalize(() => (flatNode.loading = false)))
45
- .subscribe(items => {
46
- flatNode.node.childrenChange.next(items);
47
- this.dataChange.next(this.dataChange.value);
48
- });
49
- }
50
- search(searchVariables, contextFilter = null) {
51
- this.getList(null, contextFilter, searchVariables).subscribe(items => {
52
- this.dataChange.next(items);
53
- });
54
- }
55
- /**
56
- * Retrieve elements from the server
57
- * Get root elements if node is null, or child elements if node is given
58
- */
59
- getList(node = null, contextFilters = null, searchVariables = null) {
60
- const configurations = this.getContextualizedConfigs(node, contextFilters, searchVariables);
61
- const observables = configurations.map(c => c.injectedService.getAll(c.variablesManager));
62
- // Fire queries, and merge results, transforming apollo items into Node Object.
63
- return forkJoin(observables).pipe(map(results => {
64
- const listing = [];
65
- // For each result of an observable
66
- for (let i = 0; i < results.length; i++) {
67
- // For each item of the result, convert into Node object
68
- for (const item of results[i].items) {
69
- listing.push(this.getOrCreateModelNode(item, configurations[i].configuration));
70
- }
71
- }
72
- return listing;
73
- }));
74
- }
75
- countItems(node, contextFilters = null) {
76
- const configurations = this.getContextualizedConfigs(node, contextFilters, null);
77
- const observables = configurations.map(c => c.injectedService.count(c.variablesManager).pipe(first()));
78
- forkJoin(observables).subscribe(results => {
79
- const totalItems = results.reduce((total, length) => total + length, 0);
80
- node.expandable = totalItems > 0;
81
- });
82
- }
83
- getContextualizedConfigs(node = null, contextFilters = null, searchVariables = null) {
84
- const configsAndServices = [];
85
- // Considering the whole configuration may cause queries with no/wrong results we have imperatively to avoid !
86
- // e.g there are cross dependencies between equipments and taxonomies filters. Both have "parents" and "taxonomies" filters...
87
- // When clicking on a equipment, the configuration of taxonomies with match "parents" filter, but use the id of the equipment
88
- // To fix this, we should only consider configuration after the one given by the node passed as argument.
89
- // That would mean : no child can affect parent.
90
- // That would mean : sorting in the configuration have semantic/hierarchy implications
91
- const configs = node ? this.getNextConfigs(node.node.config) : this.configuration;
92
- const pagination = { pageIndex: 0, pageSize: 999 };
93
- for (const config of configs) {
94
- const contextFilter = this.getFilterByService(config, contextFilters);
95
- const filter = this.getServiceFilter(node, config, contextFilter, !!searchVariables);
96
- if (!filter) {
97
- continue;
98
- }
99
- const variablesManager = new NaturalQueryVariablesManager();
100
- variablesManager.set('variables', { filter: filter, pagination: pagination });
101
- variablesManager.set('config-filter', { filter: config.filter });
102
- if (searchVariables) {
103
- variablesManager.set('natural-search', searchVariables);
104
- }
105
- const injectedService = this.injector.get(config.service);
106
- configsAndServices.push({
107
- configuration: config,
108
- injectedService: injectedService,
109
- variablesManager: variablesManager,
110
- });
111
- }
112
- return configsAndServices;
113
- }
114
- /**
115
- * Return models matching given FlatNodes
116
- * Returns a Literal of models grouped by their configuration attribute "selectableAtKey"
117
- */
118
- toOrganizedSelection(nodes) {
119
- const selection = this.configuration.reduce((group, config) => {
120
- if (config.selectableAtKey) {
121
- group[config.selectableAtKey] = [];
122
- }
123
- return group;
124
- }, {});
125
- for (const node of nodes) {
126
- if (node.config.selectableAtKey) {
127
- selection[node.config.selectableAtKey].push(node.model);
128
- }
129
- }
130
- return selection;
131
- }
132
- /**
133
- * Transforms an OrganizedModelSelection into a list of ModelNodes
134
- */
135
- fromOrganizedSelection(organizedModelSelection) {
136
- if (!organizedModelSelection) {
137
- return [];
138
- }
139
- const result = [];
140
- for (const selectableAtKey of Object.keys(organizedModelSelection)) {
141
- const config = this.getConfigurationBySelectableKey(selectableAtKey);
142
- if (config) {
143
- for (const model of organizedModelSelection[selectableAtKey]) {
144
- result.push(new HierarchicModelNode(model, config));
145
- }
146
- }
147
- }
148
- return result;
149
- }
150
- /**
151
- * Checks that each configuration.selectableAtKey attribute is unique
152
- */
153
- validateConfiguration(configurations) {
154
- const selectableAtKeyAttributes = [];
155
- for (const config of configurations) {
156
- if (config.selectableAtKey) {
157
- const keyIndex = selectableAtKeyAttributes.indexOf(config.selectableAtKey);
158
- if (keyIndex === -1 && config.selectableAtKey) {
159
- selectableAtKeyAttributes.push(config.selectableAtKey);
160
- }
161
- // TODO : remove ?
162
- // This behavior maybe dangerous in case we re-open hierarchical selector with the last returned config having non-unique
163
- // keys
164
- if (keyIndex < -1) {
165
- console.warn('Invalid hierarchic configuration : selectableAtKey attribute should be unique');
166
- }
167
- }
168
- }
169
- }
170
- /**
171
- * Return configurations setup in the list after the given one
172
- */
173
- getNextConfigs(config) {
174
- const configIndex = this.configuration.findIndex(c => c === config);
175
- return this.configuration.slice(configIndex);
176
- }
177
- /**
178
- * Builds queryVariables filter for children query
179
- */
180
- getServiceFilter(flatNode, config, contextFilter = null, allDeeps = false) {
181
- const fieldCondition = {};
182
- // if no parent, filter empty elements
183
- if (!flatNode) {
184
- if (!config.parentsRelationNames) {
185
- return contextFilter ? contextFilter : {};
186
- }
187
- if (!allDeeps) {
188
- config.parentsRelationNames.forEach(f => {
189
- fieldCondition[f] = { empty: {} };
190
- });
191
- }
192
- }
193
- else {
194
- if (!flatNode.node.config.childrenRelationNames || !config.parentsRelationNames) {
195
- return null;
196
- }
197
- const matchingFilters = intersection(flatNode.node.config.childrenRelationNames, config.parentsRelationNames);
198
- if (!matchingFilters.length) {
199
- return null;
200
- }
201
- fieldCondition[matchingFilters[0]] = { have: { values: [flatNode.node.model.id] } };
202
- }
203
- const filters = { groups: [{ conditions: [fieldCondition] }] };
204
- // todo : is it right ? shouldn't it be managed with QueryVariablesManager's channels ? ?
205
- if (contextFilter) {
206
- filters.groups.push(...contextFilter.groups);
207
- }
208
- return filters;
209
- }
210
- /**
211
- * Return a context filter applicable to the service for given config
212
- *
213
- * @param config Applicable config
214
- * @param contextFilters List of context filters
215
- */
216
- getFilterByService(config, contextFilters) {
217
- if (!contextFilters || !config) {
218
- return null;
219
- }
220
- const filter = contextFilters.find(f => f.service === config.service);
221
- return filter ? filter.filter : null;
222
- }
223
- /**
224
- * Search in configurations.selectableAtKey attribute to find given key and return the configuration
225
- */
226
- getConfigurationBySelectableKey(key) {
227
- if (!this.configuration) {
228
- return null;
229
- }
230
- return this.configuration.find(conf => conf.selectableAtKey === key) || null;
231
- }
232
- getOrCreateModelNode(item, configuration) {
233
- const node = this.dataChange.value.find(n => n.model.id === item.id && n.model.__typename === item.__typename);
234
- return node || new HierarchicModelNode(item, configuration);
235
- }
236
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalHierarchicSelectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
237
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalHierarchicSelectorService, providedIn: 'root' });
238
- }
239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalHierarchicSelectorService, decorators: [{
240
- type: Injectable,
241
- args: [{ providedIn: 'root' }]
242
- }] });
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2hpYy1zZWxlY3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvaGllcmFyY2hpYy1zZWxlY3Rvci9oaWVyYXJjaGljLXNlbGVjdG9yL2hpZXJhcmNoaWMtc2VsZWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUN2QyxPQUFPLEVBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsNEJBQTRCLEVBQWlCLE1BQU0seUNBQXlDLENBQUM7QUFPckcsT0FBTyxFQUFrQixtQkFBbUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQWEzRSxNQUFNLE9BQU8sZ0NBQWdDO0lBQ3hCLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFN0M7Ozs7T0FJRztJQUNhLFVBQVUsR0FBMkMsSUFBSSxlQUFlLENBQXdCLEVBQUUsQ0FBQyxDQUFDO0lBRXBIOzs7O09BSUc7SUFDSyxhQUFhLEdBQXFDLEVBQUUsQ0FBQztJQUU3RDs7O09BR0c7SUFDSSxJQUFJLENBQ1AsTUFBd0MsRUFDeEMsZ0JBQXVELElBQUksRUFDM0Qsa0JBQXlDLElBQUk7UUFFN0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFlBQVksQ0FDZixRQUE0QixFQUM1QixnQkFBdUQsSUFBSTtRQUUzRCw4Q0FBOEM7UUFDOUMsa0dBQWtHO1FBQ2xHLGdFQUFnRTtRQUNoRSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLE9BQU87UUFDWCxDQUFDO1FBRUQsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDO2FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDaEQsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQStCLEVBQUUsZ0JBQXVELElBQUk7UUFDdEcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7O09BR0c7SUFDSyxPQUFPLENBQ1gsT0FBa0MsSUFBSSxFQUN0QyxpQkFBd0QsSUFBSSxFQUM1RCxrQkFBeUMsSUFBSTtRQUU3QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUM1RixNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUUxRiwrRUFBK0U7UUFDL0UsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUM3QixHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLE9BQU8sR0FBMEIsRUFBRSxDQUFDO1lBRTFDLG1DQUFtQztZQUNuQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN0Qyx3REFBd0Q7Z0JBQ3hELEtBQUssTUFBTSxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNsQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7Z0JBQ25GLENBQUM7WUFDTCxDQUFDO1lBRUQsT0FBTyxPQUFPLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTSxVQUFVLENBQUMsSUFBd0IsRUFBRSxpQkFBd0QsSUFBSTtRQUNwRyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRixNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV2RyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyx3QkFBd0IsQ0FDNUIsT0FBa0MsSUFBSSxFQUN0QyxpQkFBd0QsSUFBSSxFQUM1RCxrQkFBeUMsSUFBSTtRQUU3QyxNQUFNLGtCQUFrQixHQUEyQixFQUFFLENBQUM7UUFFdEQsOEdBQThHO1FBQzlHLDhIQUE4SDtRQUM5SCw2SEFBNkg7UUFDN0gseUdBQXlHO1FBQ3pHLGdEQUFnRDtRQUNoRCxzRkFBc0Y7UUFDdEYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFbEYsTUFBTSxVQUFVLEdBQUcsRUFBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUMsQ0FBQztRQUVqRCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzNCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDdEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUVyRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1YsU0FBUztZQUNiLENBQUM7WUFFRCxNQUFNLGdCQUFnQixHQUFHLElBQUksNEJBQTRCLEVBQUUsQ0FBQztZQUU1RCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztZQUM1RSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLEVBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO1lBRS9ELElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ2xCLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFELGtCQUFrQixDQUFDLElBQUksQ0FBQztnQkFDcEIsYUFBYSxFQUFFLE1BQU07Z0JBQ3JCLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7YUFDckMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELE9BQU8sa0JBQWtCLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLG9CQUFvQixDQUFDLEtBQTRCO1FBQ3BELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25FLElBQUksTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN6QixLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRVAsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzlCLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUQsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxzQkFBc0IsQ0FBQyx1QkFBZ0Q7UUFDMUUsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDM0IsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQTBCLEVBQUUsQ0FBQztRQUN6QyxLQUFLLE1BQU0sZUFBZSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDO1lBQ2pFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNyRSxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNULEtBQUssTUFBTSxLQUFLLElBQUksdUJBQXVCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztvQkFDM0QsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLG1CQUFtQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN4RCxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxxQkFBcUIsQ0FBQyxjQUFnRDtRQUMxRSxNQUFNLHlCQUF5QixHQUFhLEVBQUUsQ0FBQztRQUMvQyxLQUFLLE1BQU0sTUFBTSxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ2xDLElBQUksTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN6QixNQUFNLFFBQVEsR0FBRyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUUzRSxJQUFJLFFBQVEsS0FBSyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQzVDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQzNELENBQUM7Z0JBRUQsa0JBQWtCO2dCQUNsQix5SEFBeUg7Z0JBQ3pILE9BQU87Z0JBQ1AsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQywrRUFBK0UsQ0FBQyxDQUFDO2dCQUNsRyxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxjQUFjLENBQUMsTUFBc0M7UUFDekQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDcEUsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0IsQ0FDcEIsUUFBbUMsRUFDbkMsTUFBc0MsRUFDdEMsZ0JBQWdFLElBQUksRUFDcEUsUUFBUSxHQUFHLEtBQUs7UUFFaEIsTUFBTSxjQUFjLEdBQXlCLEVBQUUsQ0FBQztRQUVoRCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUMvQixPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDOUMsQ0FBQztZQUVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDWixNQUFNLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNwQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzlFLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUMxQyxNQUFNLENBQUMsb0JBQW9CLENBQzlCLENBQUM7WUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMxQixPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDO1lBQ0QsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsSUFBSSxFQUFFLEVBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUMsRUFBQyxDQUFDO1FBQ3BGLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxFQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUMsVUFBVSxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7UUFFM0QseUZBQXlGO1FBQ3pGLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGtCQUFrQixDQUN0QixNQUFzQyxFQUN0QyxjQUFzRDtRQUV0RCxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNLLCtCQUErQixDQUNuQyxHQUFzRDtRQUV0RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDakYsQ0FBQztJQUVPLG9CQUFvQixDQUN4QixJQUFxQixFQUNyQixhQUE2QztRQUU3QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvRyxPQUFPLElBQUksSUFBSSxJQUFJLG1CQUFtQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNoRSxDQUFDO3VHQTlTUSxnQ0FBZ0M7MkdBQWhDLGdDQUFnQyxjQURwQixNQUFNOzsyRkFDbEIsZ0NBQWdDO2tCQUQ1QyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2ludGVyc2VjdGlvbn0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBmaXJzdCwgZm9ya0pvaW4sIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaW5hbGl6ZSwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge05hdHVyYWxRdWVyeVZhcmlhYmxlc01hbmFnZXIsIFF1ZXJ5VmFyaWFibGVzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3F1ZXJ5LXZhcmlhYmxlLW1hbmFnZXInO1xuaW1wb3J0IHtIaWVyYXJjaGljRmxhdE5vZGV9IGZyb20gJy4uL2NsYXNzZXMvZmxhdC1ub2RlJztcbmltcG9ydCB7TmF0dXJhbEhpZXJhcmNoaWNDb25maWd1cmF0aW9ufSBmcm9tICcuLi9jbGFzc2VzL2hpZXJhcmNoaWMtY29uZmlndXJhdGlvbic7XG5pbXBvcnQge1xuICAgIEhpZXJhcmNoaWNGaWx0ZXJDb25maWd1cmF0aW9uLFxuICAgIEhpZXJhcmNoaWNGaWx0ZXJzQ29uZmlndXJhdGlvbixcbn0gZnJvbSAnLi4vY2xhc3Nlcy9oaWVyYXJjaGljLWZpbHRlcnMtY29uZmlndXJhdGlvbic7XG5pbXBvcnQge0hpZXJhcmNoaWNNb2RlbCwgSGllcmFyY2hpY01vZGVsTm9kZX0gZnJvbSAnLi4vY2xhc3Nlcy9tb2RlbC1ub2RlJztcbmltcG9ydCB7TGl0ZXJhbCwgVW50eXBlZE1vZGVsU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHtGaWx0ZXJHcm91cENvbmRpdGlvbn0gZnJvbSAnLi4vLi4vc2VhcmNoL2NsYXNzZXMvZ3JhcGhxbC1kb2N0cmluZS50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIE9yZ2FuaXplZE1vZGVsU2VsZWN0aW9uID0gUmVjb3JkPHN0cmluZywgYW55W10+O1xuXG50eXBlIENvbnRleHR1YWxpemVkQ29uZmlnPFQgZXh0ZW5kcyBVbnR5cGVkTW9kZWxTZXJ2aWNlID0gVW50eXBlZE1vZGVsU2VydmljZT4gPSB7XG4gICAgY29uZmlndXJhdGlvbjogTmF0dXJhbEhpZXJhcmNoaWNDb25maWd1cmF0aW9uO1xuICAgIGluamVjdGVkU2VydmljZTogVDtcbiAgICB2YXJpYWJsZXNNYW5hZ2VyOiBOYXR1cmFsUXVlcnlWYXJpYWJsZXNNYW5hZ2VyO1xufTtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgTmF0dXJhbEhpZXJhcmNoaWNTZWxlY3RvclNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gICAgLyoqXG4gICAgICogU3RvcmVzIHRoZSBnbG9iYWwgcmVzdWx0IG9mIHRoZSB0cmVlXG4gICAgICogVGhpcyBvYnNlcnZhYmxlIGNvbnRhaW5zIE5vZGUuXG4gICAgICogV2hlbiBpdCdzIHVwZGF0ZWQsIHRoZSBUcmVlQ29udHJvbGxlciBhbmQgVHJlZUZsYXR0ZW5lciBwcm9jZXNzIHRoZSBuZXcgYXJyYXkgdG8gZ2VuZXJhdGUgdGhlIGZsYXQgdHJlZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGF0YUNoYW5nZTogQmVoYXZpb3JTdWJqZWN0PEhpZXJhcmNoaWNNb2RlbE5vZGVbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEhpZXJhcmNoaWNNb2RlbE5vZGVbXT4oW10pO1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgcmVsYXRpb25zIGFuZCBzZWxlY3Rpb24gY29uc3RyYWludHNcbiAgICAgKlxuICAgICAqIFRoZSBsaXN0IHNob3VsZCBiZSBzb3J0ZWQgaW4gdGhlIG9yZGVyIG9mIHRoZSBoaWVyYXJjaGljIChsaXN0IGZpcnN0IHBhcmVudCBydWxlcywgdGhlbiBjaGlsZCBydWxlcylcbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb246IE5hdHVyYWxIaWVyYXJjaGljQ29uZmlndXJhdGlvbltdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBJbml0IGNvbXBvbmVudCBieSBzYXZpbmcgdGhlIGNvbXBsZXRlIGNvbmZpZ3VyYXRpb24sIGFuZCB0aGVuIHJldHJpZXZpbmcgcm9vdCBlbGVtZW50cy5cbiAgICAgKiBVcGRhdGVzICoqYW5vdGhlcioqIG9ic2VydmFibGUgKHRoaXMuZGF0YUNoYW5nZSkgd2hlbiBkYXRhIGlzIHJldHJpZXZlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaW5pdChcbiAgICAgICAgY29uZmlnOiBOYXR1cmFsSGllcmFyY2hpY0NvbmZpZ3VyYXRpb25bXSxcbiAgICAgICAgY29udGV4dEZpbHRlcjogSGllcmFyY2hpY0ZpbHRlcnNDb25maWd1cmF0aW9uIHwgbnVsbCA9IG51bGwsXG4gICAgICAgIHNlYXJjaFZhcmlhYmxlczogUXVlcnlWYXJpYWJsZXMgfCBudWxsID0gbnVsbCxcbiAgICApOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUNvbmZpZ3VyYXRpb24oY29uZmlnKTtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlnO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRMaXN0KG51bGwsIGNvbnRleHRGaWx0ZXIsIHNlYXJjaFZhcmlhYmxlcykucGlwZShtYXAoZGF0YSA9PiB0aGlzLmRhdGFDaGFuZ2UubmV4dChkYXRhKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBsaXN0IG9mIGNoaWxkcmVuLCBjb25zaWRlcmluZyBnaXZlbiBGbGF0Tm9kZSBpZCBhcyBhIHBhcmVudC5cbiAgICAgKiBNYXJrIGxvYWRpbmcgc3RhdHVzIGluZGl2aWR1YWxseSBvbiBub2Rlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZENoaWxkcmVuKFxuICAgICAgICBmbGF0Tm9kZTogSGllcmFyY2hpY0ZsYXROb2RlLFxuICAgICAgICBjb250ZXh0RmlsdGVyOiBIaWVyYXJjaGljRmlsdGVyc0NvbmZpZ3VyYXRpb24gfCBudWxsID0gbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgLy8gRG9udCByZWZldGNoIGNoaWxkcmVuLiBJbXByb3ZlIHBlcmZvcm1hbmNlc1xuICAgICAgICAvLyBQcmV2ZW50cyBpbnRlcmZlcmVuY2VzIGJldHdlZW4gSGllcmFyY2hpY01vZGVsTm9kZSBzdHJ1Y3R1cmUgYW5kIGFuZ3VsYXIgY29tcG9uZW50cyBuYXZpZ2F0aW9uLlxuICAgICAgICAvLyBQcmV2ZW50cyBhIGJ1ZyB3aGVyZSBncmFuZCBjaGlsZHJlbiB3ZXJlIGxvc3QgaWYgY2xvc2luZyByb290XG4gICAgICAgIGlmIChmbGF0Tm9kZS5ub2RlLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZmxhdE5vZGUubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZ2V0TGlzdChmbGF0Tm9kZSwgY29udGV4dEZpbHRlcilcbiAgICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IChmbGF0Tm9kZS5sb2FkaW5nID0gZmFsc2UpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoaXRlbXMgPT4ge1xuICAgICAgICAgICAgICAgIGZsYXROb2RlLm5vZGUuY2hpbGRyZW5DaGFuZ2UubmV4dChpdGVtcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQodGhpcy5kYXRhQ2hhbmdlLnZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2goc2VhcmNoVmFyaWFibGVzOiBRdWVyeVZhcmlhYmxlcywgY29udGV4dEZpbHRlcjogSGllcmFyY2hpY0ZpbHRlcnNDb25maWd1cmF0aW9uIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRMaXN0KG51bGwsIGNvbnRleHRGaWx0ZXIsIHNlYXJjaFZhcmlhYmxlcykuc3Vic2NyaWJlKGl0ZW1zID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZS5uZXh0KGl0ZW1zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmUgZWxlbWVudHMgZnJvbSB0aGUgc2VydmVyXG4gICAgICogR2V0IHJvb3QgZWxlbWVudHMgaWYgbm9kZSBpcyBudWxsLCBvciBjaGlsZCBlbGVtZW50cyBpZiBub2RlIGlzIGdpdmVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRMaXN0KFxuICAgICAgICBub2RlOiBIaWVyYXJjaGljRmxhdE5vZGUgfCBudWxsID0gbnVsbCxcbiAgICAgICAgY29udGV4dEZpbHRlcnM6IEhpZXJhcmNoaWNGaWx0ZXJzQ29uZmlndXJhdGlvbiB8IG51bGwgPSBudWxsLFxuICAgICAgICBzZWFyY2hWYXJpYWJsZXM6IFF1ZXJ5VmFyaWFibGVzIHwgbnVsbCA9IG51bGwsXG4gICAgKTogT2JzZXJ2YWJsZTxIaWVyYXJjaGljTW9kZWxOb2RlW10+IHtcbiAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbnMgPSB0aGlzLmdldENvbnRleHR1YWxpemVkQ29uZmlncyhub2RlLCBjb250ZXh0RmlsdGVycywgc2VhcmNoVmFyaWFibGVzKTtcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBjb25maWd1cmF0aW9ucy5tYXAoYyA9PiBjLmluamVjdGVkU2VydmljZS5nZXRBbGwoYy52YXJpYWJsZXNNYW5hZ2VyKSk7XG5cbiAgICAgICAgLy8gRmlyZSBxdWVyaWVzLCBhbmQgbWVyZ2UgcmVzdWx0cywgdHJhbnNmb3JtaW5nIGFwb2xsbyBpdGVtcyBpbnRvIE5vZGUgT2JqZWN0LlxuICAgICAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzdWx0cyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdGluZzogSGllcmFyY2hpY01vZGVsTm9kZVtdID0gW107XG5cbiAgICAgICAgICAgICAgICAvLyBGb3IgZWFjaCByZXN1bHQgb2YgYW4gb2JzZXJ2YWJsZVxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzdWx0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAvLyBGb3IgZWFjaCBpdGVtIG9mIHRoZSByZXN1bHQsIGNvbnZlcnQgaW50byBOb2RlIG9iamVjdFxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgcmVzdWx0c1tpXS5pdGVtcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGluZy5wdXNoKHRoaXMuZ2V0T3JDcmVhdGVNb2RlbE5vZGUoaXRlbSwgY29uZmlndXJhdGlvbnNbaV0uY29uZmlndXJhdGlvbikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGxpc3Rpbmc7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY291bnRJdGVtcyhub2RlOiBIaWVyYXJjaGljRmxhdE5vZGUsIGNvbnRleHRGaWx0ZXJzOiBIaWVyYXJjaGljRmlsdGVyc0NvbmZpZ3VyYXRpb24gfCBudWxsID0gbnVsbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb25maWd1cmF0aW9ucyA9IHRoaXMuZ2V0Q29udGV4dHVhbGl6ZWRDb25maWdzKG5vZGUsIGNvbnRleHRGaWx0ZXJzLCBudWxsKTtcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBjb25maWd1cmF0aW9ucy5tYXAoYyA9PiBjLmluamVjdGVkU2VydmljZS5jb3VudChjLnZhcmlhYmxlc01hbmFnZXIpLnBpcGUoZmlyc3QoKSkpO1xuXG4gICAgICAgIGZvcmtKb2luKG9ic2VydmFibGVzKS5zdWJzY3JpYmUocmVzdWx0cyA9PiB7XG4gICAgICAgICAgICBjb25zdCB0b3RhbEl0ZW1zID0gcmVzdWx0cy5yZWR1Y2UoKHRvdGFsLCBsZW5ndGgpID0+IHRvdGFsICsgbGVuZ3RoLCAwKTtcbiAgICAgICAgICAgIG5vZGUuZXhwYW5kYWJsZSA9IHRvdGFsSXRlbXMgPiAwO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbnRleHR1YWxpemVkQ29uZmlncyhcbiAgICAgICAgbm9kZTogSGllcmFyY2hpY0ZsYXROb2RlIHwgbnVsbCA9IG51bGwsXG4gICAgICAgIGNvbnRleHRGaWx0ZXJzOiBIaWVyYXJjaGljRmlsdGVyc0NvbmZpZ3VyYXRpb24gfCBudWxsID0gbnVsbCxcbiAgICAgICAgc2VhcmNoVmFyaWFibGVzOiBRdWVyeVZhcmlhYmxlcyB8IG51bGwgPSBudWxsLFxuICAgICk6IENvbnRleHR1YWxpemVkQ29uZmlnW10ge1xuICAgICAgICBjb25zdCBjb25maWdzQW5kU2VydmljZXM6IENvbnRleHR1YWxpemVkQ29uZmlnW10gPSBbXTtcblxuICAgICAgICAvLyBDb25zaWRlcmluZyB0aGUgd2hvbGUgY29uZmlndXJhdGlvbiBtYXkgY2F1c2UgcXVlcmllcyB3aXRoIG5vL3dyb25nIHJlc3VsdHMgd2UgaGF2ZSBpbXBlcmF0aXZlbHkgdG8gYXZvaWQgIVxuICAgICAgICAvLyBlLmcgdGhlcmUgYXJlIGNyb3NzIGRlcGVuZGVuY2llcyBiZXR3ZWVuIGVxdWlwbWVudHMgYW5kIHRheG9ub21pZXMgZmlsdGVycy4gQm90aCBoYXZlIFwicGFyZW50c1wiIGFuZCBcInRheG9ub21pZXNcIiBmaWx0ZXJzLi4uXG4gICAgICAgIC8vIFdoZW4gY2xpY2tpbmcgb24gYSBlcXVpcG1lbnQsIHRoZSBjb25maWd1cmF0aW9uIG9mIHRheG9ub21pZXMgd2l0aCBtYXRjaCBcInBhcmVudHNcIiBmaWx0ZXIsIGJ1dCB1c2UgdGhlIGlkIG9mIHRoZSBlcXVpcG1lbnRcbiAgICAgICAgLy8gVG8gZml4IHRoaXMsIHdlIHNob3VsZCBvbmx5IGNvbnNpZGVyIGNvbmZpZ3VyYXRpb24gYWZ0ZXIgdGhlIG9uZSBnaXZlbiBieSB0aGUgbm9kZSBwYXNzZWQgYXMgYXJndW1lbnQuXG4gICAgICAgIC8vIFRoYXQgd291bGQgbWVhbiA6IG5vIGNoaWxkIGNhbiBhZmZlY3QgcGFyZW50LlxuICAgICAgICAvLyBUaGF0IHdvdWxkIG1lYW4gOiBzb3J0aW5nIGluIHRoZSBjb25maWd1cmF0aW9uIGhhdmUgc2VtYW50aWMvaGllcmFyY2h5IGltcGxpY2F0aW9uc1xuICAgICAgICBjb25zdCBjb25maWdzID0gbm9kZSA/IHRoaXMuZ2V0TmV4dENvbmZpZ3Mobm9kZS5ub2RlLmNvbmZpZykgOiB0aGlzLmNvbmZpZ3VyYXRpb247XG5cbiAgICAgICAgY29uc3QgcGFnaW5hdGlvbiA9IHtwYWdlSW5kZXg6IDAsIHBhZ2VTaXplOiA5OTl9O1xuXG4gICAgICAgIGZvciAoY29uc3QgY29uZmlnIG9mIGNvbmZpZ3MpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRleHRGaWx0ZXIgPSB0aGlzLmdldEZpbHRlckJ5U2VydmljZShjb25maWcsIGNvbnRleHRGaWx0ZXJzKTtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZ2V0U2VydmljZUZpbHRlcihub2RlLCBjb25maWcsIGNvbnRleHRGaWx0ZXIsICEhc2VhcmNoVmFyaWFibGVzKTtcblxuICAgICAgICAgICAgaWYgKCFmaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdmFyaWFibGVzTWFuYWdlciA9IG5ldyBOYXR1cmFsUXVlcnlWYXJpYWJsZXNNYW5hZ2VyKCk7XG5cbiAgICAgICAgICAgIHZhcmlhYmxlc01hbmFnZXIuc2V0KCd2YXJpYWJsZXMnLCB7ZmlsdGVyOiBmaWx0ZXIsIHBhZ2luYXRpb246IHBhZ2luYXRpb259KTtcbiAgICAgICAgICAgIHZhcmlhYmxlc01hbmFnZXIuc2V0KCdjb25maWctZmlsdGVyJywge2ZpbHRlcjogY29uZmlnLmZpbHRlcn0pO1xuXG4gICAgICAgICAgICBpZiAoc2VhcmNoVmFyaWFibGVzKSB7XG4gICAgICAgICAgICAgICAgdmFyaWFibGVzTWFuYWdlci5zZXQoJ25hdHVyYWwtc2VhcmNoJywgc2VhcmNoVmFyaWFibGVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaW5qZWN0ZWRTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoY29uZmlnLnNlcnZpY2UpO1xuICAgICAgICAgICAgY29uZmlnc0FuZFNlcnZpY2VzLnB1c2goe1xuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246IGNvbmZpZyxcbiAgICAgICAgICAgICAgICBpbmplY3RlZFNlcnZpY2U6IGluamVjdGVkU2VydmljZSxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXNNYW5hZ2VyOiB2YXJpYWJsZXNNYW5hZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29uZmlnc0FuZFNlcnZpY2VzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybiBtb2RlbHMgbWF0Y2hpbmcgZ2l2ZW4gRmxhdE5vZGVzXG4gICAgICogUmV0dXJucyBhIExpdGVyYWwgb2YgbW9kZWxzIGdyb3VwZWQgYnkgdGhlaXIgY29uZmlndXJhdGlvbiBhdHRyaWJ1dGUgXCJzZWxlY3RhYmxlQXRLZXlcIlxuICAgICAqL1xuICAgIHB1YmxpYyB0b09yZ2FuaXplZFNlbGVjdGlvbihub2RlczogSGllcmFyY2hpY01vZGVsTm9kZVtdKTogT3JnYW5pemVkTW9kZWxTZWxlY3Rpb24ge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLmNvbmZpZ3VyYXRpb24ucmVkdWNlPExpdGVyYWw+KChncm91cCwgY29uZmlnKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZmlnLnNlbGVjdGFibGVBdEtleSkge1xuICAgICAgICAgICAgICAgIGdyb3VwW2NvbmZpZy5zZWxlY3RhYmxlQXRLZXldID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ3JvdXA7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgICAgICAgIGlmIChub2RlLmNvbmZpZy5zZWxlY3RhYmxlQXRLZXkpIHtcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25bbm9kZS5jb25maWcuc2VsZWN0YWJsZUF0S2V5XS5wdXNoKG5vZGUubW9kZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmFuc2Zvcm1zIGFuIE9yZ2FuaXplZE1vZGVsU2VsZWN0aW9uIGludG8gYSBsaXN0IG9mIE1vZGVsTm9kZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgZnJvbU9yZ2FuaXplZFNlbGVjdGlvbihvcmdhbml6ZWRNb2RlbFNlbGVjdGlvbjogT3JnYW5pemVkTW9kZWxTZWxlY3Rpb24pOiBIaWVyYXJjaGljTW9kZWxOb2RlW10ge1xuICAgICAgICBpZiAoIW9yZ2FuaXplZE1vZGVsU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQ6IEhpZXJhcmNoaWNNb2RlbE5vZGVbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHNlbGVjdGFibGVBdEtleSBvZiBPYmplY3Qua2V5cyhvcmdhbml6ZWRNb2RlbFNlbGVjdGlvbikpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZ2V0Q29uZmlndXJhdGlvbkJ5U2VsZWN0YWJsZUtleShzZWxlY3RhYmxlQXRLZXkpO1xuICAgICAgICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbW9kZWwgb2Ygb3JnYW5pemVkTW9kZWxTZWxlY3Rpb25bc2VsZWN0YWJsZUF0S2V5XSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChuZXcgSGllcmFyY2hpY01vZGVsTm9kZShtb2RlbCwgY29uZmlnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHRoYXQgZWFjaCBjb25maWd1cmF0aW9uLnNlbGVjdGFibGVBdEtleSBhdHRyaWJ1dGUgaXMgdW5pcXVlXG4gICAgICovXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbnM6IE5hdHVyYWxIaWVyYXJjaGljQ29uZmlndXJhdGlvbltdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGFibGVBdEtleUF0dHJpYnV0ZXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgY29uZmlnIG9mIGNvbmZpZ3VyYXRpb25zKSB7XG4gICAgICAgICAgICBpZiAoY29uZmlnLnNlbGVjdGFibGVBdEtleSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleUluZGV4ID0gc2VsZWN0YWJsZUF0S2V5QXR0cmlidXRlcy5pbmRleE9mKGNvbmZpZy5zZWxlY3RhYmxlQXRLZXkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGtleUluZGV4ID09PSAtMSAmJiBjb25maWcuc2VsZWN0YWJsZUF0S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGFibGVBdEtleUF0dHJpYnV0ZXMucHVzaChjb25maWcuc2VsZWN0YWJsZUF0S2V5KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBUT0RPIDogcmVtb3ZlID9cbiAgICAgICAgICAgICAgICAvLyBUaGlzIGJlaGF2aW9yIG1heWJlIGRhbmdlcm91cyBpbiBjYXNlIHdlIHJlLW9wZW4gaGllcmFyY2hpY2FsIHNlbGVjdG9yIHdpdGggdGhlIGxhc3QgcmV0dXJuZWQgY29uZmlnIGhhdmluZyBub24tdW5pcXVlXG4gICAgICAgICAgICAgICAgLy8ga2V5c1xuICAgICAgICAgICAgICAgIGlmIChrZXlJbmRleCA8IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignSW52YWxpZCBoaWVyYXJjaGljIGNvbmZpZ3VyYXRpb24gOiBzZWxlY3RhYmxlQXRLZXkgYXR0cmlidXRlIHNob3VsZCBiZSB1bmlxdWUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gY29uZmlndXJhdGlvbnMgc2V0dXAgaW4gdGhlIGxpc3QgYWZ0ZXIgdGhlIGdpdmVuIG9uZVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0TmV4dENvbmZpZ3MoY29uZmlnOiBOYXR1cmFsSGllcmFyY2hpY0NvbmZpZ3VyYXRpb24pOiBOYXR1cmFsSGllcmFyY2hpY0NvbmZpZ3VyYXRpb25bXSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZ0luZGV4ID0gdGhpcy5jb25maWd1cmF0aW9uLmZpbmRJbmRleChjID0+IGMgPT09IGNvbmZpZyk7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb24uc2xpY2UoY29uZmlnSW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJ1aWxkcyBxdWVyeVZhcmlhYmxlcyBmaWx0ZXIgZm9yIGNoaWxkcmVuIHF1ZXJ5XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRTZXJ2aWNlRmlsdGVyKFxuICAgICAgICBmbGF0Tm9kZTogSGllcmFyY2hpY0ZsYXROb2RlIHwgbnVsbCxcbiAgICAgICAgY29uZmlnOiBOYXR1cmFsSGllcmFyY2hpY0NvbmZpZ3VyYXRpb24sXG4gICAgICAgIGNvbnRleHRGaWx0ZXI6IEhpZXJhcmNoaWNGaWx0ZXJDb25maWd1cmF0aW9uWydmaWx0ZXInXSB8IG51bGwgPSBudWxsLFxuICAgICAgICBhbGxEZWVwcyA9IGZhbHNlLFxuICAgICk6IEhpZXJhcmNoaWNGaWx0ZXJDb25maWd1cmF0aW9uWydmaWx0ZXInXSB8IG51bGwge1xuICAgICAgICBjb25zdCBmaWVsZENvbmRpdGlvbjogRmlsdGVyR3JvdXBDb25kaXRpb24gPSB7fTtcblxuICAgICAgICAvLyBpZiBubyBwYXJlbnQsIGZpbHRlciBlbXB0eSBlbGVtZW50c1xuICAgICAgICBpZiAoIWZsYXROb2RlKSB7XG4gICAgICAgICAgICBpZiAoIWNvbmZpZy5wYXJlbnRzUmVsYXRpb25OYW1lcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0RmlsdGVyID8gY29udGV4dEZpbHRlciA6IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWFsbERlZXBzKSB7XG4gICAgICAgICAgICAgICAgY29uZmlnLnBhcmVudHNSZWxhdGlvbk5hbWVzLmZvckVhY2goZiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkQ29uZGl0aW9uW2ZdID0ge2VtcHR5OiB7fX07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWZsYXROb2RlLm5vZGUuY29uZmlnLmNoaWxkcmVuUmVsYXRpb25OYW1lcyB8fCAhY29uZmlnLnBhcmVudHNSZWxhdGlvbk5hbWVzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nRmlsdGVycyA9IGludGVyc2VjdGlvbihcbiAgICAgICAgICAgICAgICBmbGF0Tm9kZS5ub2RlLmNvbmZpZy5jaGlsZHJlblJlbGF0aW9uTmFtZXMsXG4gICAgICAgICAgICAgICAgY29uZmlnLnBhcmVudHNSZWxhdGlvbk5hbWVzLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICghbWF0Y2hpbmdGaWx0ZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGRDb25kaXRpb25bbWF0Y2hpbmdGaWx0ZXJzWzBdXSA9IHtoYXZlOiB7dmFsdWVzOiBbZmxhdE5vZGUubm9kZS5tb2RlbC5pZF19fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbHRlcnMgPSB7Z3JvdXBzOiBbe2NvbmRpdGlvbnM6IFtmaWVsZENvbmRpdGlvbl19XX07XG5cbiAgICAgICAgLy8gdG9kbyA6IGlzIGl0IHJpZ2h0ID8gc2hvdWxkbid0IGl0IGJlIG1hbmFnZWQgd2l0aCBRdWVyeVZhcmlhYmxlc01hbmFnZXIncyBjaGFubmVscyA/ID9cbiAgICAgICAgaWYgKGNvbnRleHRGaWx0ZXIpIHtcbiAgICAgICAgICAgIGZpbHRlcnMuZ3JvdXBzLnB1c2goLi4uY29udGV4dEZpbHRlci5ncm91cHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlcnM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgY29udGV4dCBmaWx0ZXIgYXBwbGljYWJsZSB0byB0aGUgc2VydmljZSBmb3IgZ2l2ZW4gY29uZmlnXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29uZmlnIEFwcGxpY2FibGUgY29uZmlnXG4gICAgICogQHBhcmFtIGNvbnRleHRGaWx0ZXJzIExpc3Qgb2YgY29udGV4dCBmaWx0ZXJzXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRGaWx0ZXJCeVNlcnZpY2UoXG4gICAgICAgIGNvbmZpZzogTmF0dXJhbEhpZXJhcmNoaWNDb25maWd1cmF0aW9uLFxuICAgICAgICBjb250ZXh0RmlsdGVyczogSGllcmFyY2hpY0ZpbHRlckNvbmZpZ3VyYXRpb25bXSB8IG51bGwsXG4gICAgKTogSGllcmFyY2hpY0ZpbHRlckNvbmZpZ3VyYXRpb25bJ2ZpbHRlciddIHwgbnVsbCB7XG4gICAgICAgIGlmICghY29udGV4dEZpbHRlcnMgfHwgIWNvbmZpZykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWx0ZXIgPSBjb250ZXh0RmlsdGVycy5maW5kKGYgPT4gZi5zZXJ2aWNlID09PSBjb25maWcuc2VydmljZSk7XG4gICAgICAgIHJldHVybiBmaWx0ZXIgPyBmaWx0ZXIuZmlsdGVyIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWFyY2ggaW4gY29uZmlndXJhdGlvbnMuc2VsZWN0YWJsZUF0S2V5IGF0dHJpYnV0ZSB0byBmaW5kIGdpdmVuIGtleSBhbmQgcmV0dXJuIHRoZSBjb25maWd1cmF0aW9uXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRDb25maWd1cmF0aW9uQnlTZWxlY3RhYmxlS2V5KFxuICAgICAgICBrZXk6IE5hdHVyYWxIaWVyYXJjaGljQ29uZmlndXJhdGlvblsnc2VsZWN0YWJsZUF0S2V5J10sXG4gICAgKTogTmF0dXJhbEhpZXJhcmNoaWNDb25maWd1cmF0aW9uIHwgbnVsbCB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb24uZmluZChjb25mID0+IGNvbmYuc2VsZWN0YWJsZUF0S2V5ID09PSBrZXkpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPckNyZWF0ZU1vZGVsTm9kZShcbiAgICAgICAgaXRlbTogSGllcmFyY2hpY01vZGVsLFxuICAgICAgICBjb25maWd1cmF0aW9uOiBOYXR1cmFsSGllcmFyY2hpY0NvbmZpZ3VyYXRpb24sXG4gICAgKTogSGllcmFyY2hpY01vZGVsTm9kZSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmRhdGFDaGFuZ2UudmFsdWUuZmluZChuID0+IG4ubW9kZWwuaWQgPT09IGl0ZW0uaWQgJiYgbi5tb2RlbC5fX3R5cGVuYW1lID09PSBpdGVtLl9fdHlwZW5hbWUpO1xuICAgICAgICByZXR1cm4gbm9kZSB8fCBuZXcgSGllcmFyY2hpY01vZGVsTm9kZShpdGVtLCBjb25maWd1cmF0aW9uKTtcbiAgICB9XG59XG4iXX0=
@@ -1,38 +0,0 @@
1
- import { Component, inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';
3
- import { clone, defaults } from 'lodash-es';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { NaturalHierarchicSelectorComponent } from '../hierarchic-selector/hierarchic-selector.component';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/material/dialog";
8
- import * as i2 from "@angular/material/button";
9
- export class NaturalHierarchicSelectorDialogComponent {
10
- dialogRef = inject(MatDialogRef);
11
- /**
12
- * Set of hierarchic configurations to pass as attribute to HierarchicComponent
13
- */
14
- config;
15
- /**
16
- * Natural search selections after initialisation
17
- */
18
- searchSelectionsOutput;
19
- constructor() {
20
- const data = inject(MAT_DIALOG_DATA);
21
- this.config = defaults(data, { multiple: true, allowUnselect: true });
22
- this.searchSelectionsOutput = this.config.searchSelections;
23
- }
24
- close(selected) {
25
- const result = {
26
- hierarchicSelection: clone(selected),
27
- searchSelections: clone(this.searchSelectionsOutput),
28
- };
29
- this.dialogRef.close(result);
30
- }
31
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalHierarchicSelectorDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: NaturalHierarchicSelectorDialogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<h2 i18n mat-dialog-title>S\u00E9lection</h2>\n\n<mat-dialog-content>\n <natural-hierarchic-selector\n (selectionChange)=\"config.hierarchicSelection = $event\"\n [selected]=\"config.hierarchicSelection ?? {}\"\n [config]=\"config.hierarchicConfig\"\n [filters]=\"config.hierarchicFilters\"\n [multiple]=\"config.multiple ?? false\"\n [allowUnselect]=\"config.allowUnselect ?? true\"\n [searchFacets]=\"config.searchFacets ?? []\"\n [searchSelections]=\"config.searchSelections ?? []\"\n (searchSelectionChange)=\"searchSelectionsOutput = $event\"\n />\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\">\n <button mat-dialog-close mat-button i18n>Annuler</button>\n <button (click)=\"close(config.hierarchicSelection)\" color=\"primary\" mat-raised-button\n ><span i18n>Valider</span>\n </button>\n</mat-dialog-actions>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: NaturalHierarchicSelectorComponent, selector: "natural-hierarchic-selector", inputs: ["displayWith", "config", "multiple", "selected", "allowUnselect", "filters", "searchFacets", "searchSelections"], outputs: ["searchSelectionChange", "selectionChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] });
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalHierarchicSelectorDialogComponent, decorators: [{
35
- type: Component,
36
- args: [{ standalone: true, imports: [MatDialogModule, NaturalHierarchicSelectorComponent, MatButtonModule], template: "<h2 i18n mat-dialog-title>S\u00E9lection</h2>\n\n<mat-dialog-content>\n <natural-hierarchic-selector\n (selectionChange)=\"config.hierarchicSelection = $event\"\n [selected]=\"config.hierarchicSelection ?? {}\"\n [config]=\"config.hierarchicConfig\"\n [filters]=\"config.hierarchicFilters\"\n [multiple]=\"config.multiple ?? false\"\n [allowUnselect]=\"config.allowUnselect ?? true\"\n [searchFacets]=\"config.searchFacets ?? []\"\n [searchSelections]=\"config.searchSelections ?? []\"\n (searchSelectionChange)=\"searchSelectionsOutput = $event\"\n />\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\">\n <button mat-dialog-close mat-button i18n>Annuler</button>\n <button (click)=\"close(config.hierarchicSelection)\" color=\"primary\" mat-raised-button\n ><span i18n>Valider</span>\n </button>\n</mat-dialog-actions>\n" }]
37
- }], ctorParameters: () => [] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2hpYy1zZWxlY3Rvci1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvaGllcmFyY2hpYy1zZWxlY3Rvci9oaWVyYXJjaGljLXNlbGVjdG9yLWRpYWxvZy9oaWVyYXJjaGljLXNlbGVjdG9yLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9oaWVyYXJjaGljLXNlbGVjdG9yL2hpZXJhcmNoaWMtc2VsZWN0b3ItZGlhbG9nL2hpZXJhcmNoaWMtc2VsZWN0b3ItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxlQUFlLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hGLE9BQU8sRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBTTFDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSxzREFBc0QsQ0FBQzs7OztBQWtEeEcsTUFBTSxPQUFPLHdDQUF3QztJQUN6QyxTQUFTLEdBQ2IsTUFBTSxDQUFpRixZQUFZLENBQUMsQ0FBQztJQUV6Rzs7T0FFRztJQUNJLE1BQU0sQ0FBeUI7SUFFdEM7O09BRUc7SUFDSSxzQkFBc0IsQ0FBNkM7SUFFMUU7UUFDSSxNQUFNLElBQUksR0FBRyxNQUFNLENBQXlCLGVBQWUsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7SUFDL0QsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUE2QztRQUN0RCxNQUFNLE1BQU0sR0FBMkI7WUFDbkMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNwQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1NBQ3ZELENBQUM7UUFFRixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO3VHQTVCUSx3Q0FBd0M7MkZBQXhDLHdDQUF3Qyx3RUMzRHJELHM1QkFzQkEseUREbUNjLGVBQWUsZ29CQUFFLGtDQUFrQyx5UEFBRSxlQUFlOzsyRkFFckUsd0NBQXdDO2tCQU5wRCxTQUFTO2lDQUdNLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxrQ0FBa0MsRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1JlZn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7Y2xvbmUsIGRlZmF1bHRzfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtOYXR1cmFsU2VhcmNoRmFjZXRzfSBmcm9tICcuLi8uLi9zZWFyY2gvdHlwZXMvZmFjZXQnO1xuaW1wb3J0IHtOYXR1cmFsU2VhcmNoU2VsZWN0aW9uc30gZnJvbSAnLi4vLi4vc2VhcmNoL3R5cGVzL3ZhbHVlcyc7XG5pbXBvcnQge05hdHVyYWxIaWVyYXJjaGljQ29uZmlndXJhdGlvbn0gZnJvbSAnLi4vY2xhc3Nlcy9oaWVyYXJjaGljLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHtIaWVyYXJjaGljRmlsdGVyc0NvbmZpZ3VyYXRpb259IGZyb20gJy4uL2NsYXNzZXMvaGllcmFyY2hpYy1maWx0ZXJzLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHtPcmdhbml6ZWRNb2RlbFNlbGVjdGlvbn0gZnJvbSAnLi4vaGllcmFyY2hpYy1zZWxlY3Rvci9oaWVyYXJjaGljLXNlbGVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge05hdHVyYWxIaWVyYXJjaGljU2VsZWN0b3JDb21wb25lbnR9IGZyb20gJy4uL2hpZXJhcmNoaWMtc2VsZWN0b3IvaGllcmFyY2hpYy1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBIaWVyYXJjaGljRGlhbG9nUmVzdWx0ID0ge1xuICAgIGhpZXJhcmNoaWNTZWxlY3Rpb24/OiBPcmdhbml6ZWRNb2RlbFNlbGVjdGlvbjtcbiAgICBzZWFyY2hTZWxlY3Rpb25zPzogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMgfCBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgSGllcmFyY2hpY0RpYWxvZ0NvbmZpZyA9IHtcbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIHRvIHNldHVwIHJ1bGVzIG9mIGhpZXJhcmNoeVxuICAgICAqL1xuICAgIGhpZXJhcmNoaWNDb25maWc6IE5hdHVyYWxIaWVyYXJjaGljQ29uZmlndXJhdGlvbltdO1xuXG4gICAgLyoqXG4gICAgICogU2VsZWN0ZWQgaXRlbXMgd2hlbiBIaWVyYXJjaGljQ29tcG9uZW50IGluaXRpYWxpemVzXG4gICAgICovXG4gICAgaGllcmFyY2hpY1NlbGVjdGlvbj86IE9yZ2FuaXplZE1vZGVsU2VsZWN0aW9uO1xuXG4gICAgLyoqXG4gICAgICogRmlsdGVycyB0byBhcHBseSBvbiBxdWVyaWVzICh3aGVuIG9wZW5pbmcgbmV3IGxldmVsIG9mIGhpZXJhcmNoeSlcbiAgICAgKi9cbiAgICBoaWVyYXJjaGljRmlsdGVycz86IEhpZXJhcmNoaWNGaWx0ZXJzQ29uZmlndXJhdGlvbiB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBNdWx0aXBsZSBzZWxlY3Rpb24gaWYgdHJ1ZSBvciBzaW5nbGUgc2VsZWN0aW9uIGlmIGZhbHNlXG4gICAgICovXG4gICAgbXVsdGlwbGU/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQWxsb3cgdG8gdmFsaWRhdGUgc2VsZWN0aW9uIHdpdGggbm8gaXRlbXMgY2hlY2tlZFxuICAgICAqL1xuICAgIGFsbG93VW5zZWxlY3Q/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogRmFjZXRzIGZvciBuYXR1cmFsLXNlYXJjaCBpbiBIaWVyYXJjaGljQ29tcG9uZW50XG4gICAgICovXG4gICAgc2VhcmNoRmFjZXRzPzogTmF0dXJhbFNlYXJjaEZhY2V0cztcblxuICAgIC8qKlxuICAgICAqIFNlbGVjdGlvbnMgb2YgbmF0dXJhbCBzZWFyY2ggdG8gaW5pdGlhbGl6ZSBvbiBIaWVyYXJjaGljQ29tcG9uZW50IGluaXRpYWxpc2F0aW9uXG4gICAgICovXG4gICAgc2VhcmNoU2VsZWN0aW9ucz86IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zIHwgbnVsbDtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi9oaWVyYXJjaGljLXNlbGVjdG9yLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2hpZXJhcmNoaWMtc2VsZWN0b3ItZGlhbG9nLmNvbXBvbmVudC5zY3NzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtNYXREaWFsb2dNb2R1bGUsIE5hdHVyYWxIaWVyYXJjaGljU2VsZWN0b3JDb21wb25lbnQsIE1hdEJ1dHRvbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxIaWVyYXJjaGljU2VsZWN0b3JEaWFsb2dDb21wb25lbnQge1xuICAgIHByaXZhdGUgZGlhbG9nUmVmID1cbiAgICAgICAgaW5qZWN0PE1hdERpYWxvZ1JlZjxOYXR1cmFsSGllcmFyY2hpY1NlbGVjdG9yRGlhbG9nQ29tcG9uZW50LCBIaWVyYXJjaGljRGlhbG9nUmVzdWx0Pj4oTWF0RGlhbG9nUmVmKTtcblxuICAgIC8qKlxuICAgICAqIFNldCBvZiBoaWVyYXJjaGljIGNvbmZpZ3VyYXRpb25zIHRvIHBhc3MgYXMgYXR0cmlidXRlIHRvIEhpZXJhcmNoaWNDb21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29uZmlnOiBIaWVyYXJjaGljRGlhbG9nQ29uZmlnO1xuXG4gICAgLyoqXG4gICAgICogTmF0dXJhbCBzZWFyY2ggc2VsZWN0aW9ucyBhZnRlciBpbml0aWFsaXNhdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzZWFyY2hTZWxlY3Rpb25zT3V0cHV0OiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9ucyB8IHVuZGVmaW5lZCB8IG51bGw7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBpbmplY3Q8SGllcmFyY2hpY0RpYWxvZ0NvbmZpZz4oTUFUX0RJQUxPR19EQVRBKTtcblxuICAgICAgICB0aGlzLmNvbmZpZyA9IGRlZmF1bHRzKGRhdGEsIHttdWx0aXBsZTogdHJ1ZSwgYWxsb3dVbnNlbGVjdDogdHJ1ZX0pO1xuICAgICAgICB0aGlzLnNlYXJjaFNlbGVjdGlvbnNPdXRwdXQgPSB0aGlzLmNvbmZpZy5zZWFyY2hTZWxlY3Rpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZShzZWxlY3RlZDogT3JnYW5pemVkTW9kZWxTZWxlY3Rpb24gfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBIaWVyYXJjaGljRGlhbG9nUmVzdWx0ID0ge1xuICAgICAgICAgICAgaGllcmFyY2hpY1NlbGVjdGlvbjogY2xvbmUoc2VsZWN0ZWQpLFxuICAgICAgICAgICAgc2VhcmNoU2VsZWN0aW9uczogY2xvbmUodGhpcy5zZWFyY2hTZWxlY3Rpb25zT3V0cHV0KSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXN1bHQpO1xuICAgIH1cbn1cbiIsIjxoMiBpMThuIG1hdC1kaWFsb2ctdGl0bGU+U8OpbGVjdGlvbjwvaDI+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPG5hdHVyYWwtaGllcmFyY2hpYy1zZWxlY3RvclxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImNvbmZpZy5oaWVyYXJjaGljU2VsZWN0aW9uID0gJGV2ZW50XCJcbiAgICAgICAgW3NlbGVjdGVkXT1cImNvbmZpZy5oaWVyYXJjaGljU2VsZWN0aW9uID8/IHt9XCJcbiAgICAgICAgW2NvbmZpZ109XCJjb25maWcuaGllcmFyY2hpY0NvbmZpZ1wiXG4gICAgICAgIFtmaWx0ZXJzXT1cImNvbmZpZy5oaWVyYXJjaGljRmlsdGVyc1wiXG4gICAgICAgIFttdWx0aXBsZV09XCJjb25maWcubXVsdGlwbGUgPz8gZmFsc2VcIlxuICAgICAgICBbYWxsb3dVbnNlbGVjdF09XCJjb25maWcuYWxsb3dVbnNlbGVjdCA/PyB0cnVlXCJcbiAgICAgICAgW3NlYXJjaEZhY2V0c109XCJjb25maWcuc2VhcmNoRmFjZXRzID8/IFtdXCJcbiAgICAgICAgW3NlYXJjaFNlbGVjdGlvbnNdPVwiY29uZmlnLnNlYXJjaFNlbGVjdGlvbnMgPz8gW11cIlxuICAgICAgICAoc2VhcmNoU2VsZWN0aW9uQ2hhbmdlKT1cInNlYXJjaFNlbGVjdGlvbnNPdXRwdXQgPSAkZXZlbnRcIlxuICAgIC8+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBhbGlnbj1cImVuZFwiPlxuICAgIDxidXR0b24gbWF0LWRpYWxvZy1jbG9zZSBtYXQtYnV0dG9uIGkxOG4+QW5udWxlcjwvYnV0dG9uPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlKGNvbmZpZy5oaWVyYXJjaGljU2VsZWN0aW9uKVwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgID48c3BhbiBpMThuPlZhbGlkZXI8L3NwYW4+XG4gICAgPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
@@ -1,22 +0,0 @@
1
- import { inject, Injectable } from '@angular/core';
2
- import { MatDialog } from '@angular/material/dialog';
3
- import { defaults } from 'lodash-es';
4
- import { NaturalHierarchicSelectorDialogComponent, } from './hierarchic-selector-dialog.component';
5
- import * as i0 from "@angular/core";
6
- export class NaturalHierarchicSelectorDialogService {
7
- dialog = inject(MatDialog);
8
- open(hierarchicConfig, dialogConfig) {
9
- const defaultDialogConfig = {
10
- width: '700px',
11
- data: hierarchicConfig,
12
- };
13
- return this.dialog.open(NaturalHierarchicSelectorDialogComponent, defaults(dialogConfig, defaultDialogConfig));
14
- }
15
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalHierarchicSelectorDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalHierarchicSelectorDialogService, providedIn: 'root' });
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalHierarchicSelectorDialogService, decorators: [{
19
- type: Injectable,
20
- args: [{ providedIn: 'root' }]
21
- }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2hpYy1zZWxlY3Rvci1kaWFsb2cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2hpZXJhcmNoaWMtc2VsZWN0b3IvaGllcmFyY2hpYy1zZWxlY3Rvci1kaWFsb2cvaGllcmFyY2hpYy1zZWxlY3Rvci1kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsU0FBUyxFQUFnQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUdILHdDQUF3QyxHQUMzQyxNQUFNLHdDQUF3QyxDQUFDOztBQUdoRCxNQUFNLE9BQU8sc0NBQXNDO0lBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFckMsSUFBSSxDQUNQLGdCQUF3QyxFQUN4QyxZQUE4QjtRQUU5QixNQUFNLG1CQUFtQixHQUFHO1lBQ3hCLEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUFFLGdCQUFnQjtTQUN6QixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FJckIsd0NBQXdDLEVBQUUsUUFBUSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQzt1R0FqQlEsc0NBQXNDOzJHQUF0QyxzQ0FBc0MsY0FEMUIsTUFBTTs7MkZBQ2xCLHNDQUFzQztrQkFEbEQsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnLCBNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge2RlZmF1bHRzfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgICBIaWVyYXJjaGljRGlhbG9nQ29uZmlnLFxuICAgIEhpZXJhcmNoaWNEaWFsb2dSZXN1bHQsXG4gICAgTmF0dXJhbEhpZXJhcmNoaWNTZWxlY3RvckRpYWxvZ0NvbXBvbmVudCxcbn0gZnJvbSAnLi9oaWVyYXJjaGljLXNlbGVjdG9yLWRpYWxvZy5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsSGllcmFyY2hpY1NlbGVjdG9yRGlhbG9nU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcblxuICAgIHB1YmxpYyBvcGVuKFxuICAgICAgICBoaWVyYXJjaGljQ29uZmlnOiBIaWVyYXJjaGljRGlhbG9nQ29uZmlnLFxuICAgICAgICBkaWFsb2dDb25maWc/OiBNYXREaWFsb2dDb25maWcsXG4gICAgKTogTWF0RGlhbG9nUmVmPE5hdHVyYWxIaWVyYXJjaGljU2VsZWN0b3JEaWFsb2dDb21wb25lbnQsIEhpZXJhcmNoaWNEaWFsb2dSZXN1bHQ+IHtcbiAgICAgICAgY29uc3QgZGVmYXVsdERpYWxvZ0NvbmZpZyA9IHtcbiAgICAgICAgICAgIHdpZHRoOiAnNzAwcHgnLFxuICAgICAgICAgICAgZGF0YTogaGllcmFyY2hpY0NvbmZpZyxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2cub3BlbjxcbiAgICAgICAgICAgIE5hdHVyYWxIaWVyYXJjaGljU2VsZWN0b3JEaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICBIaWVyYXJjaGljRGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgSGllcmFyY2hpY0RpYWxvZ1Jlc3VsdFxuICAgICAgICA+KE5hdHVyYWxIaWVyYXJjaGljU2VsZWN0b3JEaWFsb2dDb21wb25lbnQsIGRlZmF1bHRzKGRpYWxvZ0NvbmZpZywgZGVmYXVsdERpYWxvZ0NvbmZpZykpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,10 +0,0 @@
1
- /*
2
- * Public API Surface of natural
3
- */
4
- export * from './classes/hierarchic-configuration';
5
- export * from './classes/hierarchic-filters-configuration';
6
- export * from './hierarchic-selector/hierarchic-selector.component';
7
- export * from './hierarchic-selector-dialog/hierarchic-selector-dialog.component';
8
- export * from './hierarchic-selector-dialog/hierarchic-selector-dialog.service';
9
- export * from './hierarchic-selector/hierarchic-selector.service';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2hpZXJhcmNoaWMtc2VsZWN0b3IvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLG1EQUFtRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuYXR1cmFsXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2hpZXJhcmNoaWMtY29uZmlndXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvaGllcmFyY2hpYy1maWx0ZXJzLWNvbmZpZ3VyYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9oaWVyYXJjaGljLXNlbGVjdG9yL2hpZXJhcmNoaWMtc2VsZWN0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaGllcmFyY2hpYy1zZWxlY3Rvci1kaWFsb2cvaGllcmFyY2hpYy1zZWxlY3Rvci1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaGllcmFyY2hpYy1zZWxlY3Rvci1kaWFsb2cvaGllcmFyY2hpYy1zZWxlY3Rvci1kaWFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2hpZXJhcmNoaWMtc2VsZWN0b3IvaGllcmFyY2hpYy1zZWxlY3Rvci5zZXJ2aWNlJztcbiJdfQ==
@@ -1,96 +0,0 @@
1
- import { Directive, HostBinding, inject, InjectionToken, Input } from '@angular/core';
2
- import { MatIcon, MatIconRegistry } from '@angular/material/icon';
3
- import { DomSanitizer } from '@angular/platform-browser';
4
- import * as i0 from "@angular/core";
5
- export const NATURAL_ICONS_CONFIG = new InjectionToken('Configuration for Natural Icons');
6
- const naturalRegistered = Symbol('Natural icon registered');
7
- /**
8
- * Allows to use `<mat-icon>` without knowing where an icon comes from (SVG or font) or with aliases for Material font.
9
- *
10
- * SVG icons and Material font aliases must be configured ahead of time, via `NATURAL_ICONS_CONFIG`.
11
- *
12
- * It also make it easy to give a specific size to the icon via `[size]`.
13
- *
14
- * Usage:
15
- *
16
- * ```html
17
- * <mat-icon naturalIcon="search"></mat-icon>
18
- * <mat-icon naturalIcon="my-svg-icon-name"></mat-icon>
19
- * <mat-icon naturalIcon="my-alias-for-search"></mat-icon>
20
- * <mat-icon naturalIcon="search" [size]="150"></mat-icon>
21
- * ```
22
- */
23
- export class NaturalIconDirective {
24
- matIconRegistry = inject(MatIconRegistry);
25
- domSanitizer = inject(DomSanitizer);
26
- config = inject(NATURAL_ICONS_CONFIG, { optional: true });
27
- matIconComponent = inject(MatIcon, { host: true, self: true });
28
- _size = undefined;
29
- classes = '';
30
- constructor() {
31
- const config = this.config;
32
- this.registerIcons(config ?? {});
33
- }
34
- set naturalIcon(value) {
35
- const newIcon = {
36
- name: value,
37
- ...(this.config?.[value] ?? { font: value }),
38
- };
39
- if (newIcon.class) {
40
- this.classes = newIcon.class;
41
- }
42
- this.matIconComponent.fontIcon = undefined;
43
- this.matIconComponent.svgIcon = undefined;
44
- if (newIcon.font) {
45
- this.matIconComponent.fontIcon = newIcon.font;
46
- }
47
- else if (newIcon.svg) {
48
- this.matIconComponent.svgIcon = newIcon.name;
49
- }
50
- }
51
- set size(size) {
52
- this._size = size ?? undefined;
53
- }
54
- registerIcons(config) {
55
- // Ensure that this specific instance of registry has our our icons
56
- // exactly once, not less and not more
57
- const registry = this.matIconRegistry;
58
- if (registry[naturalRegistered]) {
59
- return;
60
- }
61
- registry[naturalRegistered] = true;
62
- for (const key of Object.keys(config)) {
63
- const svg = config[key].svg;
64
- if (svg) {
65
- this.matIconRegistry.addSvgIcon(key, this.domSanitizer.bypassSecurityTrustResourceUrl(svg));
66
- }
67
- }
68
- }
69
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
70
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.3", type: NaturalIconDirective, isStandalone: true, selector: "mat-icon[naturalIcon]", inputs: { naturalIcon: "naturalIcon", size: "size" }, host: { properties: { "style.font-size.px": "this._size", "style.min-height.px": "this._size", "style.min-width.px": "this._size", "class": "this.classes" } }, ngImport: i0 });
71
- }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalIconDirective, decorators: [{
73
- type: Directive,
74
- args: [{
75
- selector: 'mat-icon[naturalIcon]',
76
- standalone: true,
77
- }]
78
- }], ctorParameters: () => [], propDecorators: { _size: [{
79
- type: HostBinding,
80
- args: ['style.font-size.px']
81
- }, {
82
- type: HostBinding,
83
- args: ['style.min-height.px']
84
- }, {
85
- type: HostBinding,
86
- args: ['style.min-width.px']
87
- }], classes: [{
88
- type: HostBinding,
89
- args: ['class']
90
- }], naturalIcon: [{
91
- type: Input,
92
- args: [{ required: true }]
93
- }], size: [{
94
- type: Input
95
- }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9pY29uL2ljb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxPQUFPLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDOztBQWlCdkQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQXFCLGlDQUFpQyxDQUFDLENBQUM7QUFFOUcsTUFBTSxpQkFBaUIsR0FBa0IsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFFM0U7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBS0gsTUFBTSxPQUFPLG9CQUFvQjtJQUNaLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwQyxNQUFNLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFDeEQsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFLdEUsS0FBSyxHQUF1QixTQUFTLENBQUM7SUFFaEIsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUUzQztRQUNJLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQ1csV0FBVyxDQUFDLEtBQWE7UUFDaEMsTUFBTSxPQUFPLEdBQW9CO1lBQzdCLElBQUksRUFBRSxLQUFLO1lBQ1gsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUMsQ0FBQztTQUM3QyxDQUFDO1FBRUYsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLFNBQVUsQ0FBQztRQUM1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLFNBQVUsQ0FBQztRQUUzQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUNsRCxDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2pELENBQUM7SUFDTCxDQUFDO0lBRUQsSUFDVyxJQUFJLENBQUMsSUFBK0I7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFTyxhQUFhLENBQUMsTUFBMEI7UUFDNUMsbUVBQW1FO1FBQ25FLHNDQUFzQztRQUN0QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBc0IsQ0FBQztRQUM3QyxJQUFJLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTztRQUNYLENBQUM7UUFDRCxRQUFRLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFbkMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUM1QixJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEcsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO3VHQTVEUSxvQkFBb0I7MkZBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7d0RBVVcsS0FBSztzQkFIWixXQUFXO3VCQUFDLG9CQUFvQjs7c0JBQ2hDLFdBQVc7dUJBQUMscUJBQXFCOztzQkFDakMsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBR0gsT0FBTztzQkFBcEMsV0FBVzt1QkFBQyxPQUFPO2dCQVNULFdBQVc7c0JBRHJCLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQXNCWixJQUFJO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0SWNvbiwgTWF0SWNvblJlZ2lzdHJ5fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7RG9tU2FuaXRpemVyfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxudHlwZSBOYXR1cmFsSWNvblR5cGUgPSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHN2Zz86IHN0cmluZztcbiAgICBmb250Pzogc3RyaW5nO1xuICAgIGNsYXNzPzogJ25lZ2F0aXZlJyB8ICduZXV0cmFsJyB8ICdwb3NpdGl2ZSc7XG59O1xuXG5leHBvcnQgdHlwZSBOYXR1cmFsSWNvbkNvbmZpZyA9IHtcbiAgICBzdmc/OiBzdHJpbmc7XG4gICAgZm9udD86IHN0cmluZztcbiAgICBjbGFzcz86ICduZWdhdGl2ZScgfCAnbmV1dHJhbCcgfCAncG9zaXRpdmUnO1xufTtcblxuZXhwb3J0IHR5cGUgTmF0dXJhbEljb25zQ29uZmlnID0gUmVjb3JkPHN0cmluZywgTmF0dXJhbEljb25Db25maWc+O1xuXG5leHBvcnQgY29uc3QgTkFUVVJBTF9JQ09OU19DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TmF0dXJhbEljb25zQ29uZmlnPignQ29uZmlndXJhdGlvbiBmb3IgTmF0dXJhbCBJY29ucycpO1xuXG5jb25zdCBuYXR1cmFsUmVnaXN0ZXJlZDogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnTmF0dXJhbCBpY29uIHJlZ2lzdGVyZWQnKTtcblxuLyoqXG4gKiBBbGxvd3MgdG8gdXNlIGA8bWF0LWljb24+YCB3aXRob3V0IGtub3dpbmcgd2hlcmUgYW4gaWNvbiBjb21lcyBmcm9tIChTVkcgb3IgZm9udCkgb3Igd2l0aCBhbGlhc2VzIGZvciBNYXRlcmlhbCBmb250LlxuICpcbiAqIFNWRyBpY29ucyBhbmQgTWF0ZXJpYWwgZm9udCBhbGlhc2VzIG11c3QgYmUgY29uZmlndXJlZCBhaGVhZCBvZiB0aW1lLCB2aWEgYE5BVFVSQUxfSUNPTlNfQ09ORklHYC5cbiAqXG4gKiBJdCBhbHNvIG1ha2UgaXQgZWFzeSB0byBnaXZlIGEgc3BlY2lmaWMgc2l6ZSB0byB0aGUgaWNvbiB2aWEgYFtzaXplXWAuXG4gKlxuICogVXNhZ2U6XG4gKlxuICogYGBgaHRtbFxuICogPG1hdC1pY29uIG5hdHVyYWxJY29uPVwic2VhcmNoXCI+PC9tYXQtaWNvbj5cbiAqIDxtYXQtaWNvbiBuYXR1cmFsSWNvbj1cIm15LXN2Zy1pY29uLW5hbWVcIj48L21hdC1pY29uPlxuICogPG1hdC1pY29uIG5hdHVyYWxJY29uPVwibXktYWxpYXMtZm9yLXNlYXJjaFwiPjwvbWF0LWljb24+XG4gKiA8bWF0LWljb24gbmF0dXJhbEljb249XCJzZWFyY2hcIiBbc2l6ZV09XCIxNTBcIj48L21hdC1pY29uPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnbWF0LWljb25bbmF0dXJhbEljb25dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsSWNvbkRpcmVjdGl2ZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXRJY29uUmVnaXN0cnkgPSBpbmplY3QoTWF0SWNvblJlZ2lzdHJ5KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvbVNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KE5BVFVSQUxfSUNPTlNfQ09ORklHLCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hdEljb25Db21wb25lbnQgPSBpbmplY3QoTWF0SWNvbiwge2hvc3Q6IHRydWUsIHNlbGY6IHRydWV9KTtcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuZm9udC1zaXplLnB4JylcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1pbi1oZWlnaHQucHgnKVxuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWluLXdpZHRoLnB4JylcbiAgICBwcml2YXRlIF9zaXplOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgcHJpdmF0ZSBjbGFzc2VzID0gJyc7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnO1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJJY29ucyhjb25maWcgPz8ge30pO1xuICAgIH1cblxuICAgIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KVxuICAgIHB1YmxpYyBzZXQgbmF0dXJhbEljb24odmFsdWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBuZXdJY29uOiBOYXR1cmFsSWNvblR5cGUgPSB7XG4gICAgICAgICAgICBuYW1lOiB2YWx1ZSxcbiAgICAgICAgICAgIC4uLih0aGlzLmNvbmZpZz8uW3ZhbHVlXSA/PyB7Zm9udDogdmFsdWV9KSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAobmV3SWNvbi5jbGFzcykge1xuICAgICAgICAgICAgdGhpcy5jbGFzc2VzID0gbmV3SWNvbi5jbGFzcztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWF0SWNvbkNvbXBvbmVudC5mb250SWNvbiA9IHVuZGVmaW5lZCE7XG4gICAgICAgIHRoaXMubWF0SWNvbkNvbXBvbmVudC5zdmdJY29uID0gdW5kZWZpbmVkITtcblxuICAgICAgICBpZiAobmV3SWNvbi5mb250KSB7XG4gICAgICAgICAgICB0aGlzLm1hdEljb25Db21wb25lbnQuZm9udEljb24gPSBuZXdJY29uLmZvbnQ7XG4gICAgICAgIH0gZWxzZSBpZiAobmV3SWNvbi5zdmcpIHtcbiAgICAgICAgICAgIHRoaXMubWF0SWNvbkNvbXBvbmVudC5zdmdJY29uID0gbmV3SWNvbi5uYW1lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHNpemUoc2l6ZTogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgICAgICB0aGlzLl9zaXplID0gc2l6ZSA/PyB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3Rlckljb25zKGNvbmZpZzogTmF0dXJhbEljb25zQ29uZmlnKTogdm9pZCB7XG4gICAgICAgIC8vIEVuc3VyZSB0aGF0IHRoaXMgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgcmVnaXN0cnkgaGFzIG91ciBvdXIgaWNvbnNcbiAgICAgICAgLy8gZXhhY3RseSBvbmNlLCBub3QgbGVzcyBhbmQgbm90IG1vcmVcbiAgICAgICAgY29uc3QgcmVnaXN0cnkgPSB0aGlzLm1hdEljb25SZWdpc3RyeSBhcyBhbnk7XG4gICAgICAgIGlmIChyZWdpc3RyeVtuYXR1cmFsUmVnaXN0ZXJlZF0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZWdpc3RyeVtuYXR1cmFsUmVnaXN0ZXJlZF0gPSB0cnVlO1xuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGNvbmZpZykpIHtcbiAgICAgICAgICAgIGNvbnN0IHN2ZyA9IGNvbmZpZ1trZXldLnN2ZztcbiAgICAgICAgICAgIGlmIChzdmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1hdEljb25SZWdpc3RyeS5hZGRTdmdJY29uKGtleSwgdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHN2ZykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,33 +0,0 @@
1
- import { APP_INITIALIZER, inject } from '@angular/core';
2
- import { MatIconRegistry } from '@angular/material/icon';
3
- import { NATURAL_ICONS_CONFIG } from './icon.directive';
4
- /**
5
- * Configure Material Symbols, instead of Material Icons, and configure custom Natural icons.
6
- *
7
- * This means that `https://fonts.googleapis.com/icon?family=Material+Icons` must be
8
- * replaced by `https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:FILL@1`.
9
- */
10
- export function provideIcons(config) {
11
- return [
12
- {
13
- provide: NATURAL_ICONS_CONFIG,
14
- useValue: config,
15
- },
16
- {
17
- provide: APP_INITIALIZER,
18
- multi: true,
19
- useFactory: () => {
20
- const iconRegistry = inject(MatIconRegistry);
21
- return () => {
22
- // Replace the old Material Icons by the new Material Symbols
23
- const defaultFontSetClasses = iconRegistry.getDefaultFontSetClass();
24
- const outlinedFontSetClasses = defaultFontSetClasses
25
- .filter(fontSetClass => fontSetClass !== 'material-icons')
26
- .concat(['material-symbols-outlined']);
27
- iconRegistry.setDefaultFontSetClass(...outlinedFontSetClasses);
28
- };
29
- },
30
- },
31
- ];
32
- }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9pY29uL2ljb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUUsTUFBTSxFQUFXLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsb0JBQW9CLEVBQXFCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUU7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQTBCO0lBQ25ELE9BQU87UUFDSDtZQUNJLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsUUFBUSxFQUFFLE1BQU07U0FDbkI7UUFDRDtZQUNJLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLEtBQUssRUFBRSxJQUFJO1lBQ1gsVUFBVSxFQUFFLEdBQWlCLEVBQUU7Z0JBQzNCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDN0MsT0FBTyxHQUFHLEVBQUU7b0JBQ1IsNkRBQTZEO29CQUM3RCxNQUFNLHFCQUFxQixHQUFHLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO29CQUNwRSxNQUFNLHNCQUFzQixHQUFHLHFCQUFxQjt5QkFDL0MsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxLQUFLLGdCQUFnQixDQUFDO3lCQUN6RCxNQUFNLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUM7b0JBQzNDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLHNCQUFzQixDQUFDLENBQUM7Z0JBQ25FLENBQUMsQ0FBQztZQUNOLENBQUM7U0FDSjtLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIGluamVjdCwgUHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRJY29uUmVnaXN0cnl9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtOQVRVUkFMX0lDT05TX0NPTkZJRywgTmF0dXJhbEljb25zQ29uZmlnfSBmcm9tICcuL2ljb24uZGlyZWN0aXZlJztcblxuLyoqXG4gKiBDb25maWd1cmUgTWF0ZXJpYWwgU3ltYm9scywgaW5zdGVhZCBvZiBNYXRlcmlhbCBJY29ucywgYW5kIGNvbmZpZ3VyZSBjdXN0b20gTmF0dXJhbCBpY29ucy5cbiAqXG4gKiBUaGlzIG1lYW5zIHRoYXQgYGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vaWNvbj9mYW1pbHk9TWF0ZXJpYWwrSWNvbnNgIG11c3QgYmVcbiAqIHJlcGxhY2VkIGJ5IGBodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PU1hdGVyaWFsK1N5bWJvbHMrT3V0bGluZWQ6RklMTEAxYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVJY29ucyhjb25maWc6IE5hdHVyYWxJY29uc0NvbmZpZyk6IFByb3ZpZGVyW10ge1xuICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5BVFVSQUxfSUNPTlNfQ09ORklHLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoKTogKCgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpY29uUmVnaXN0cnkgPSBpbmplY3QoTWF0SWNvblJlZ2lzdHJ5KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSBvbGQgTWF0ZXJpYWwgSWNvbnMgYnkgdGhlIG5ldyBNYXRlcmlhbCBTeW1ib2xzXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRGb250U2V0Q2xhc3NlcyA9IGljb25SZWdpc3RyeS5nZXREZWZhdWx0Rm9udFNldENsYXNzKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG91dGxpbmVkRm9udFNldENsYXNzZXMgPSBkZWZhdWx0Rm9udFNldENsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoZm9udFNldENsYXNzID0+IGZvbnRTZXRDbGFzcyAhPT0gJ21hdGVyaWFsLWljb25zJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jb25jYXQoWydtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkJ10pO1xuICAgICAgICAgICAgICAgICAgICBpY29uUmVnaXN0cnkuc2V0RGVmYXVsdEZvbnRTZXRDbGFzcyguLi5vdXRsaW5lZEZvbnRTZXRDbGFzc2VzKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICBdO1xufVxuIl19
@@ -1,6 +0,0 @@
1
- /*
2
- * Public API Surface of natural
3
- */
4
- export * from './icon.directive';
5
- export { provideIcons } from './icon.module';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ljb24vcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsa0JBQWtCLENBQUM7QUFDakMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbmF0dXJhbFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaWNvbi5kaXJlY3RpdmUnO1xuZXhwb3J0IHtwcm92aWRlSWNvbnN9IGZyb20gJy4vaWNvbi5tb2R1bGUnO1xuIl19