@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.
- package/fesm2022/ecodev-natural-vanilla.mjs +1193 -0
- package/fesm2022/ecodev-natural-vanilla.mjs.map +1 -0
- package/fesm2022/ecodev-natural.mjs +436 -425
- package/fesm2022/ecodev-natural.mjs.map +1 -1
- package/lib/classes/network-activity.service.d.ts +54 -0
- package/lib/classes/validators.d.ts +1 -1
- package/lib/modules/columns-picker/columns-picker.component.d.ts +2 -2
- package/lib/modules/common/services/seo.provider.d.ts +2 -2
- package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +1 -1
- package/lib/modules/file/abstract-file.d.ts +6 -3
- package/lib/modules/file/component/file.component.d.ts +2 -2
- package/lib/modules/file/file-drop.directive.d.ts +2 -3
- package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +2 -3
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +3 -3
- package/lib/modules/icon/icon.module.d.ts +2 -2
- package/lib/modules/panels/panels.service.d.ts +1 -2
- package/lib/modules/relations/relations.component.d.ts +3 -3
- package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +2 -3
- package/lib/modules/search/group/group.component.d.ts +2 -3
- package/lib/modules/search/input/input.component.d.ts +5 -5
- package/lib/modules/search/search/search.component.d.ts +2 -2
- package/lib/modules/select/abstract-select.component.d.ts +3 -3
- package/lib/modules/select/select/select.component.d.ts +1 -1
- package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +1 -1
- package/lib/modules/table-button/table-button.component.d.ts +4 -2
- package/package.json +16 -14
- package/public-api.d.ts +1 -0
- package/src/lib/_natural.theme.scss +1 -2
- package/vanilla/index.d.ts +5 -0
- package/vanilla/package.json +3 -0
- package/vanilla/public-api.d.ts +11 -0
- package/vanilla/src/lib/classes/crypto.d.ts +8 -0
- package/vanilla/src/lib/classes/data-source.d.ts +32 -0
- package/vanilla/src/lib/classes/query-variable-manager-utils.d.ts +2 -0
- package/vanilla/src/lib/classes/query-variable-manager.d.ts +91 -0
- package/vanilla/src/lib/classes/signing.d.ts +7 -0
- package/vanilla/src/lib/classes/utility.d.ts +77 -0
- package/vanilla/src/lib/modules/search/classes/graphql-doctrine.types.d.ts +83 -0
- package/vanilla/src/lib/modules/search/classes/utils.d.ts +17 -0
- package/vanilla/src/lib/modules/search/types/dropdown-component.d.ts +20 -0
- package/vanilla/src/lib/modules/search/types/facet.d.ts +75 -0
- package/vanilla/src/lib/modules/search/types/values.d.ts +32 -0
- package/vanilla/src/lib/services/abstract-model.service.d.ts +244 -0
- package/vanilla/src/lib/services/debounce.service.d.ts +52 -0
- package/vanilla/src/lib/types/types.d.ts +100 -0
- package/esm2022/ecodev-natural.mjs +0 -5
- package/esm2022/lib/classes/abstract-detail.mjs +0 -229
- package/esm2022/lib/classes/abstract-editable-list.mjs +0 -99
- package/esm2022/lib/classes/abstract-list.mjs +0 -461
- package/esm2022/lib/classes/abstract-navigable-list.mjs +0 -133
- package/esm2022/lib/classes/apollo-utils.mjs +0 -59
- package/esm2022/lib/classes/crypto.mjs +0 -23
- package/esm2022/lib/classes/cumulative-changes.mjs +0 -50
- package/esm2022/lib/classes/data-source.mjs +0 -71
- package/esm2022/lib/classes/providers.mjs +0 -13
- package/esm2022/lib/classes/query-variable-manager-utils.mjs +0 -14
- package/esm2022/lib/classes/query-variable-manager.mjs +0 -172
- package/esm2022/lib/classes/rxjs.mjs +0 -54
- package/esm2022/lib/classes/signing.mjs +0 -38
- package/esm2022/lib/classes/tld.mjs +0 -1476
- package/esm2022/lib/classes/utility.mjs +0 -234
- package/esm2022/lib/classes/validators.mjs +0 -179
- package/esm2022/lib/directives/http-prefix.directive.mjs +0 -47
- package/esm2022/lib/modules/alert/alert.service.mjs +0 -53
- package/esm2022/lib/modules/alert/confirm.component.mjs +0 -16
- package/esm2022/lib/modules/alert/public-api.mjs +0 -6
- package/esm2022/lib/modules/avatar/component/avatar.component.mjs +0 -203
- package/esm2022/lib/modules/avatar/public-api.mjs +0 -6
- package/esm2022/lib/modules/avatar/service/avatar.service.mjs +0 -63
- package/esm2022/lib/modules/avatar/sources/gravatar.mjs +0 -29
- package/esm2022/lib/modules/avatar/sources/image.mjs +0 -13
- package/esm2022/lib/modules/avatar/sources/initials.mjs +0 -39
- package/esm2022/lib/modules/avatar/sources/source.mjs +0 -16
- package/esm2022/lib/modules/columns-picker/columns-picker.component.mjs +0 -145
- package/esm2022/lib/modules/columns-picker/public-api.mjs +0 -5
- package/esm2022/lib/modules/columns-picker/types.mjs +0 -2
- package/esm2022/lib/modules/common/directives/background-density.directive.mjs +0 -63
- package/esm2022/lib/modules/common/directives/linkable-tab.directive.mjs +0 -93
- package/esm2022/lib/modules/common/directives/src-density.directive.mjs +0 -72
- package/esm2022/lib/modules/common/pipes/capitalize.pipe.mjs +0 -24
- package/esm2022/lib/modules/common/pipes/ellipsis.pipe.mjs +0 -17
- package/esm2022/lib/modules/common/pipes/enum.pipe.mjs +0 -24
- package/esm2022/lib/modules/common/pipes/time-ago.pipe.mjs +0 -140
- package/esm2022/lib/modules/common/public-api.mjs +0 -14
- package/esm2022/lib/modules/common/services/memory-storage.mjs +0 -110
- package/esm2022/lib/modules/common/services/seo.provider.mjs +0 -23
- package/esm2022/lib/modules/common/services/seo.service.mjs +0 -235
- package/esm2022/lib/modules/detail-header/detail-header.component.mjs +0 -84
- package/esm2022/lib/modules/detail-header/public-api.mjs +0 -5
- package/esm2022/lib/modules/dialog-trigger/dialog-trigger.component.mjs +0 -72
- package/esm2022/lib/modules/dialog-trigger/public-api.mjs +0 -5
- package/esm2022/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +0 -100
- package/esm2022/lib/modules/dropdown-components/public-api.mjs +0 -14
- package/esm2022/lib/modules/dropdown-components/type-boolean/type-boolean.component.mjs +0 -39
- package/esm2022/lib/modules/dropdown-components/type-date/type-date.component.mjs +0 -173
- package/esm2022/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +0 -134
- package/esm2022/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +0 -80
- package/esm2022/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +0 -48
- package/esm2022/lib/modules/dropdown-components/type-number/type-number.component.mjs +0 -110
- package/esm2022/lib/modules/dropdown-components/type-options/type-options.component.mjs +0 -64
- package/esm2022/lib/modules/dropdown-components/type-select/type-select.component.mjs +0 -175
- package/esm2022/lib/modules/dropdown-components/type-text/type-text.component.mjs +0 -62
- package/esm2022/lib/modules/dropdown-components/types.mjs +0 -41
- package/esm2022/lib/modules/dropdown-components/utils.mjs +0 -35
- package/esm2022/lib/modules/file/abstract-file.mjs +0 -230
- package/esm2022/lib/modules/file/component/file.component.mjs +0 -172
- package/esm2022/lib/modules/file/file-drop.directive.mjs +0 -111
- package/esm2022/lib/modules/file/file-select.directive.mjs +0 -26
- package/esm2022/lib/modules/file/file.service.mjs +0 -43
- package/esm2022/lib/modules/file/public-api.mjs +0 -9
- package/esm2022/lib/modules/file/types.mjs +0 -2
- package/esm2022/lib/modules/file/utils.mjs +0 -129
- package/esm2022/lib/modules/fixed-button/fixed-button.component.mjs +0 -30
- package/esm2022/lib/modules/fixed-button/public-api.mjs +0 -5
- package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +0 -56
- package/esm2022/lib/modules/fixed-button-detail/public-api.mjs +0 -5
- package/esm2022/lib/modules/hierarchic-selector/classes/flat-node.mjs +0 -18
- package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-configuration.mjs +0 -2
- package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.mjs +0 -2
- package/esm2022/lib/modules/hierarchic-selector/classes/model-node.mjs +0 -14
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +0 -398
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +0 -243
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +0 -38
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +0 -22
- package/esm2022/lib/modules/hierarchic-selector/public-api.mjs +0 -10
- package/esm2022/lib/modules/icon/icon.directive.mjs +0 -96
- package/esm2022/lib/modules/icon/icon.module.mjs +0 -33
- package/esm2022/lib/modules/icon/public-api.mjs +0 -6
- package/esm2022/lib/modules/logger/error-handler.mjs +0 -87
- package/esm2022/lib/modules/logger/error.module.mjs +0 -22
- package/esm2022/lib/modules/logger/public-api.mjs +0 -6
- package/esm2022/lib/modules/matomo/matomo.service.mjs +0 -96
- package/esm2022/lib/modules/matomo/public-api.mjs +0 -5
- package/esm2022/lib/modules/panels/abstract-panel.mjs +0 -76
- package/esm2022/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.mjs +0 -12
- package/esm2022/lib/modules/panels/panels.component.mjs +0 -27
- package/esm2022/lib/modules/panels/panels.module.mjs +0 -10
- package/esm2022/lib/modules/panels/panels.service.mjs +0 -329
- package/esm2022/lib/modules/panels/panels.urlmatcher.mjs +0 -75
- package/esm2022/lib/modules/panels/public-api.mjs +0 -11
- package/esm2022/lib/modules/panels/types.mjs +0 -3
- package/esm2022/lib/modules/relations/public-api.mjs +0 -5
- package/esm2022/lib/modules/relations/relations.component.mjs +0 -254
- package/esm2022/lib/modules/search/classes/graphql-doctrine.mjs +0 -111
- package/esm2022/lib/modules/search/classes/graphql-doctrine.types.mjs +0 -14
- package/esm2022/lib/modules/search/classes/transformers.mjs +0 -142
- package/esm2022/lib/modules/search/classes/url.mjs +0 -53
- package/esm2022/lib/modules/search/classes/utils.mjs +0 -25
- package/esm2022/lib/modules/search/dropdown-container/dropdown-container-animations.mjs +0 -44
- package/esm2022/lib/modules/search/dropdown-container/dropdown-container.component.mjs +0 -87
- package/esm2022/lib/modules/search/dropdown-container/dropdown-ref.mjs +0 -24
- package/esm2022/lib/modules/search/dropdown-container/dropdown.service.mjs +0 -90
- package/esm2022/lib/modules/search/facet-selector/facet-selector.component.mjs +0 -45
- package/esm2022/lib/modules/search/group/group.component.mjs +0 -53
- package/esm2022/lib/modules/search/input/input.component.mjs +0 -365
- package/esm2022/lib/modules/search/public-api.mjs +0 -7
- package/esm2022/lib/modules/search/search/search.component.mjs +0 -102
- package/esm2022/lib/modules/search/types/dropdown-component.mjs +0 -2
- package/esm2022/lib/modules/search/types/facet.mjs +0 -2
- package/esm2022/lib/modules/search/types/values.mjs +0 -2
- package/esm2022/lib/modules/select/abstract-select.component.mjs +0 -232
- package/esm2022/lib/modules/select/public-api.mjs +0 -7
- package/esm2022/lib/modules/select/select/select.component.mjs +0 -310
- package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +0 -57
- package/esm2022/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +0 -155
- package/esm2022/lib/modules/sidenav/public-api.mjs +0 -9
- package/esm2022/lib/modules/sidenav/sidenav/sidenav.component.mjs +0 -15
- package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +0 -90
- package/esm2022/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +0 -11
- package/esm2022/lib/modules/sidenav/sidenav-stack.service.mjs +0 -50
- package/esm2022/lib/modules/sidenav/sidenav.service.mjs +0 -196
- package/esm2022/lib/modules/stamp/public-api.mjs +0 -5
- package/esm2022/lib/modules/stamp/stamp.component.mjs +0 -23
- package/esm2022/lib/modules/table-button/public-api.mjs +0 -5
- package/esm2022/lib/modules/table-button/table-button.component.mjs +0 -78
- package/esm2022/lib/services/abstract-model.service.mjs +0 -526
- package/esm2022/lib/services/debounce.service.mjs +0 -149
- package/esm2022/lib/services/enum.service.mjs +0 -64
- package/esm2022/lib/services/link-mutation.service.mjs +0 -154
- package/esm2022/lib/services/persistence.service.mjs +0 -115
- package/esm2022/lib/services/swiss-parsing-date-adapter.service.mjs +0 -63
- package/esm2022/lib/types/types.mjs +0 -2
- package/esm2022/public-api.mjs +0 -46
package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs
DELETED
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2hpYy1zZWxlY3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvaGllcmFyY2hpYy1zZWxlY3Rvci9oaWVyYXJjaGljLXNlbGVjdG9yL2hpZXJhcmNoaWMtc2VsZWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUN2QyxPQUFPLEVBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsNEJBQTRCLEVBQWlCLE1BQU0seUNBQXlDLENBQUM7QUFPckcsT0FBTyxFQUFrQixtQkFBbUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQWEzRSxNQUFNLE9BQU8sZ0NBQWdDO0lBQ3hCLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFN0M7Ozs7T0FJRztJQUNhLFVBQVUsR0FBMkMsSUFBSSxlQUFlLENBQXdCLEVBQUUsQ0FBQyxDQUFDO0lBRXBIOzs7O09BSUc7SUFDSyxhQUFhLEdBQXFDLEVBQUUsQ0FBQztJQUU3RDs7O09BR0c7SUFDSSxJQUFJLENBQ1AsTUFBd0MsRUFDeEMsZ0JBQXVELElBQUksRUFDM0Qsa0JBQXlDLElBQUk7UUFFN0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsYUFBYSxF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QUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNLLCtCQUErQixDQUNuQyxHQUFzRDtRQUV0RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDakYsQ0FBQztJQUVPLG9CQUFvQixDQUN4QixJQUFxQixFQUNyQixhQUE2QztRQUU3QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvRyxPQUFPLElBQUksSUFBSSxJQUFJLG1CQUFtQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNoRSxDQUFDO3VHQTlTUSxnQ0FBZ0M7MkdBQWhDLGdDQUFnQyxjQURwQixNQUFNOzsyRkFDbEIsZ0NBQWdDO2tCQUQ1QyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2ludGVyc2VjdGlvbn0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBmaXJzdCwgZm9ya0pvaW4sIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaW5hbGl6ZSwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge05hdHVyYWxRdWVyeVZhcmlhYmxlc01hbmFnZXIsIFF1ZXJ5VmFyaWFibGVzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3F1ZXJ5LXZhcmlhYmxlLW1hbmFnZXInO1xuaW1wb3J0IHtIaWVyYXJjaGljRmxhdE5vZGV9IGZyb20gJy4uL2NsYXNzZXMvZmxhdC1ub2RlJztcbmltcG9ydCB7TmF0dXJhbEhpZXJhcmNoaWNDb25maWd1cmF0aW9ufSBmcm9tICcuLi9jbGFzc2VzL2hpZXJhcmNoaWMtY29uZmlndXJhdGlvbic7XG5pbXBvcnQge1xuICAgIEhpZXJhcmNoaWNGaWx0ZXJDb25maWd1cmF0aW9uLFxuICAgIEhpZXJhcmNoaWNGaWx0ZXJzQ29uZmlndXJhdGlvbixcbn0gZnJvbSAnLi4vY2xhc3Nlcy9oaWVyYXJjaGljLWZpbHRlcnMtY29uZmlndXJhdGlvbic7XG5pbXBvcnQge0hpZXJhcmNoaWNNb2RlbCwgSGllcmFyY2hpY01vZGVsTm9kZX0gZnJvbSAnLi4vY2xhc3Nlcy9tb2RlbC1ub2RlJztcbmltcG9ydCB7TGl0ZXJhbCwgVW50eXBlZE1vZGVsU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHtGaWx0ZXJHcm91cENvbmRpdGlvbn0gZnJvbSAnLi4vLi4vc2VhcmNoL2NsYXNzZXMvZ3JhcGhxbC1kb2N0cmluZS50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIE9yZ2FuaXplZE1vZGVsU2VsZWN0aW9uID0gUmVjb3JkPHN0cmluZywgYW55W10+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
|