@sinequa/atomic-angular 0.0.146 → 0.1.33
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/README.md +145 -0
- package/components/no-result/i18n/de.json +5 -0
- package/components/no-result/i18n/en.json +5 -0
- package/components/no-result/i18n/fr.json +5 -0
- package/components/sort-selector/i18n/de.json +3 -0
- package/components/sort-selector/i18n/en.json +3 -0
- package/components/sort-selector/i18n/fr.json +3 -0
- package/components/source/i18n/de.json +3 -0
- package/components/source/i18n/en.json +3 -0
- package/components/source/i18n/fr.json +3 -0
- package/features/alerts/i18n/de.json +33 -0
- package/features/alerts/i18n/en.json +33 -0
- package/features/alerts/i18n/fr.json +33 -0
- package/features/bookmarks/i18n/de.json +11 -0
- package/features/bookmarks/i18n/en.json +11 -0
- package/features/bookmarks/i18n/fr.json +11 -0
- package/features/collections/i18n/de.json +17 -0
- package/features/collections/i18n/en.json +17 -0
- package/features/collections/i18n/fr.json +16 -0
- package/features/dialogs/i18n/de.json +15 -0
- package/features/dialogs/i18n/en.json +15 -0
- package/features/dialogs/i18n/fr.json +15 -0
- package/features/did-you-mean/i18n/de.json +5 -0
- package/features/did-you-mean/i18n/en.json +5 -0
- package/features/did-you-mean/i18n/fr.json +5 -0
- package/features/drawer/i18n/de.json +22 -0
- package/features/drawer/i18n/en.json +22 -0
- package/features/drawer/i18n/fr.json +22 -0
- package/features/export/i18n/de.json +10 -0
- package/features/export/i18n/en.json +10 -0
- package/features/export/i18n/fr.json +10 -0
- package/features/feedback/i18n/de.json +26 -0
- package/features/feedback/i18n/en.json +26 -0
- package/features/feedback/i18n/fr.json +26 -0
- package/features/filters/i18n/de.json +14 -0
- package/features/filters/i18n/en.json +14 -0
- package/features/filters/i18n/fr.json +14 -0
- package/features/labels/i18n/de.json +8 -0
- package/features/labels/i18n/en.json +8 -0
- package/features/labels/i18n/fr.json +8 -0
- package/features/searches/i18n/de.json +15 -0
- package/features/searches/i18n/en.json +15 -0
- package/features/searches/i18n/fr.json +15 -0
- package/features/sign-in/i18n/de.json +12 -0
- package/features/sign-in/i18n/en.json +12 -0
- package/features/sign-in/i18n/fr.json +14 -0
- package/fesm2022/sinequa-atomic-angular.mjs +9699 -3271
- package/fesm2022/sinequa-atomic-angular.mjs.map +1 -1
- package/index.d.ts +6729 -3
- package/package.json +71 -10
- package/assets/tailwind.css +0 -334
- package/esm2022/lib/assistant/index.mjs +0 -2
- package/esm2022/lib/assistant/signalR.web.service.mjs +0 -81
- package/esm2022/lib/components/dropdown-input.mjs +0 -97
- package/esm2022/lib/components/dropdown-list.mjs +0 -35
- package/esm2022/lib/components/dropdown.mjs +0 -127
- package/esm2022/lib/components/index.mjs +0 -7
- package/esm2022/lib/components/menu/index.mjs +0 -3
- package/esm2022/lib/components/menu/menu-item.mjs +0 -22
- package/esm2022/lib/components/menu/menu.mjs +0 -99
- package/esm2022/lib/components/metadata/index.mjs +0 -2
- package/esm2022/lib/components/metadata/metadata.component.mjs +0 -65
- package/esm2022/lib/components/theme/index.mjs +0 -3
- package/esm2022/lib/components/theme/theme-selector.component.mjs +0 -67
- package/esm2022/lib/components/theme/theme-toggle.component.mjs +0 -67
- package/esm2022/lib/directives/index.mjs +0 -5
- package/esm2022/lib/directives/infinite-scroll.directive.mjs +0 -47
- package/esm2022/lib/directives/select-article-on-click.directive.mjs +0 -39
- package/esm2022/lib/directives/show-bookmark.directive.mjs +0 -55
- package/esm2022/lib/directives/theme-provider.directive.mjs +0 -31
- package/esm2022/lib/guards/auth.guard.mjs +0 -27
- package/esm2022/lib/guards/index.mjs +0 -3
- package/esm2022/lib/guards/initialization.guard.mjs +0 -41
- package/esm2022/lib/interceptors/audit.interceptor.mjs +0 -23
- package/esm2022/lib/interceptors/auth.interceptor.mjs +0 -49
- package/esm2022/lib/interceptors/body.interceptor.mjs +0 -24
- package/esm2022/lib/interceptors/error.interceptor.mjs +0 -35
- package/esm2022/lib/interceptors/index.mjs +0 -7
- package/esm2022/lib/interceptors/toast.interceptor.mjs +0 -27
- package/esm2022/lib/models/aggregation.mjs +0 -2
- package/esm2022/lib/models/article-metadata.mjs +0 -2
- package/esm2022/lib/models/autocomplete.mjs +0 -2
- package/esm2022/lib/models/custom-json.mjs +0 -2
- package/esm2022/lib/models/filter-dropdown.mjs +0 -2
- package/esm2022/lib/models/index.mjs +0 -7
- package/esm2022/lib/models/user-settings.mjs +0 -2
- package/esm2022/lib/pipes/highlight-word.pipe.mjs +0 -33
- package/esm2022/lib/pipes/index.mjs +0 -3
- package/esm2022/lib/pipes/source-icon.pipe.mjs +0 -43
- package/esm2022/lib/public-api.mjs +0 -18
- package/esm2022/lib/resolvers/index.mjs +0 -2
- package/esm2022/lib/resolvers/query-name-resolver.mjs +0 -14
- package/esm2022/lib/resources/index.mjs +0 -2
- package/esm2022/lib/resources/themes.mjs +0 -53
- package/esm2022/lib/services/application.service.mjs +0 -245
- package/esm2022/lib/services/autocomplete.service.mjs +0 -85
- package/esm2022/lib/services/drawer/backdrop.service.mjs +0 -23
- package/esm2022/lib/services/drawer/drawer-stack.service.mjs +0 -152
- package/esm2022/lib/services/drawer/drawer.service.mjs +0 -38
- package/esm2022/lib/services/index.mjs +0 -12
- package/esm2022/lib/services/label.service.mjs +0 -161
- package/esm2022/lib/services/navigation.service.mjs +0 -59
- package/esm2022/lib/services/saved-searches.service.mjs +0 -75
- package/esm2022/lib/services/search.service.mjs +0 -89
- package/esm2022/lib/services/selection-history.service.mjs +0 -92
- package/esm2022/lib/services/selection.service.mjs +0 -87
- package/esm2022/lib/stores/aggregations.store.mjs +0 -59
- package/esm2022/lib/stores/app.store.mjs +0 -270
- package/esm2022/lib/stores/application.store.mjs +0 -87
- package/esm2022/lib/stores/index.mjs +0 -9
- package/esm2022/lib/stores/principal.store.mjs +0 -47
- package/esm2022/lib/stores/query-params.store.mjs +0 -207
- package/esm2022/lib/stores/selection.store.mjs +0 -45
- package/esm2022/lib/stores/theme.store.mjs +0 -116
- package/esm2022/lib/stores/user-settings.store.mjs +0 -391
- package/esm2022/lib/tokens/highlights.mjs +0 -32
- package/esm2022/lib/tokens/index.mjs +0 -2
- package/esm2022/lib/utils/debounced-signal.mjs +0 -38
- package/esm2022/lib/utils/index.mjs +0 -8
- package/esm2022/lib/utils/inline-worker.mjs +0 -40
- package/esm2022/lib/utils/query.mjs +0 -58
- package/esm2022/lib/utils/routes.mjs +0 -28
- package/esm2022/lib/utils/tailwind-utils.mjs +0 -6
- package/esm2022/lib/utils/theme-body-hook.mjs +0 -18
- package/esm2022/lib/utils/theme-registry.mjs +0 -6
- package/esm2022/lib/web-services/aggregations.service.mjs +0 -104
- package/esm2022/lib/web-services/app.service.mjs +0 -48
- package/esm2022/lib/web-services/audit.service.mjs +0 -122
- package/esm2022/lib/web-services/index.mjs +0 -10
- package/esm2022/lib/web-services/json-method-plugin.service.mjs +0 -54
- package/esm2022/lib/web-services/preview.service.mjs +0 -327
- package/esm2022/lib/web-services/principal.service.mjs +0 -46
- package/esm2022/lib/web-services/query.service.mjs +0 -123
- package/esm2022/lib/web-services/text-chunck.service.mjs +0 -46
- package/esm2022/public-api.mjs +0 -5
- package/esm2022/sinequa-atomic-angular.mjs +0 -5
- package/lib/assistant/index.d.ts +0 -1
- package/lib/assistant/signalR.web.service.d.ts +0 -46
- package/lib/components/dropdown-input.d.ts +0 -18
- package/lib/components/dropdown-list.d.ts +0 -8
- package/lib/components/dropdown.d.ts +0 -50
- package/lib/components/index.d.ts +0 -6
- package/lib/components/menu/index.d.ts +0 -2
- package/lib/components/menu/menu-item.d.ts +0 -8
- package/lib/components/menu/menu.d.ts +0 -24
- package/lib/components/metadata/index.d.ts +0 -1
- package/lib/components/metadata/metadata.component.d.ts +0 -24
- package/lib/components/theme/index.d.ts +0 -2
- package/lib/components/theme/theme-selector.component.d.ts +0 -70
- package/lib/components/theme/theme-toggle.component.d.ts +0 -10
- package/lib/directives/index.d.ts +0 -4
- package/lib/directives/infinite-scroll.directive.d.ts +0 -30
- package/lib/directives/select-article-on-click.directive.d.ts +0 -14
- package/lib/directives/show-bookmark.directive.d.ts +0 -60
- package/lib/directives/theme-provider.directive.d.ts +0 -20
- package/lib/guards/auth.guard.d.ts +0 -7
- package/lib/guards/index.d.ts +0 -2
- package/lib/guards/initialization.guard.d.ts +0 -20
- package/lib/interceptors/audit.interceptor.d.ts +0 -13
- package/lib/interceptors/auth.interceptor.d.ts +0 -14
- package/lib/interceptors/body.interceptor.d.ts +0 -11
- package/lib/interceptors/error.interceptor.d.ts +0 -9
- package/lib/interceptors/index.d.ts +0 -5
- package/lib/interceptors/toast.interceptor.d.ts +0 -13
- package/lib/models/aggregation.d.ts +0 -12
- package/lib/models/article-metadata.d.ts +0 -5
- package/lib/models/autocomplete.d.ts +0 -5
- package/lib/models/custom-json.d.ts +0 -69
- package/lib/models/filter-dropdown.d.ts +0 -10
- package/lib/models/index.d.ts +0 -6
- package/lib/models/user-settings.d.ts +0 -38
- package/lib/pipes/highlight-word.pipe.d.ts +0 -22
- package/lib/pipes/index.d.ts +0 -2
- package/lib/pipes/source-icon.pipe.d.ts +0 -51
- package/lib/public-api.d.ts +0 -14
- package/lib/resolvers/index.d.ts +0 -1
- package/lib/resolvers/query-name-resolver.d.ts +0 -9
- package/lib/resources/index.d.ts +0 -1
- package/lib/resources/themes.d.ts +0 -51
- package/lib/services/application.service.d.ts +0 -183
- package/lib/services/autocomplete.service.d.ts +0 -96
- package/lib/services/drawer/backdrop.service.d.ts +0 -9
- package/lib/services/drawer/drawer-stack.service.d.ts +0 -70
- package/lib/services/drawer/drawer.service.d.ts +0 -15
- package/lib/services/index.d.ts +0 -11
- package/lib/services/label.service.d.ts +0 -114
- package/lib/services/navigation.service.d.ts +0 -33
- package/lib/services/saved-searches.service.d.ts +0 -149
- package/lib/services/search.service.d.ts +0 -159
- package/lib/services/selection-history.service.d.ts +0 -50
- package/lib/services/selection.service.d.ts +0 -123
- package/lib/stores/aggregations.store.d.ts +0 -25
- package/lib/stores/app.store.d.ts +0 -110
- package/lib/stores/application.store.d.ts +0 -83
- package/lib/stores/index.d.ts +0 -8
- package/lib/stores/principal.store.d.ts +0 -47
- package/lib/stores/query-params.store.d.ts +0 -128
- package/lib/stores/selection.store.d.ts +0 -52
- package/lib/stores/theme.store.d.ts +0 -66
- package/lib/stores/user-settings.store.d.ts +0 -111
- package/lib/tokens/highlights.d.ts +0 -8
- package/lib/tokens/index.d.ts +0 -1
- package/lib/utils/debounced-signal.d.ts +0 -25
- package/lib/utils/index.d.ts +0 -7
- package/lib/utils/inline-worker.d.ts +0 -11
- package/lib/utils/query.d.ts +0 -26
- package/lib/utils/routes.d.ts +0 -16
- package/lib/utils/tailwind-utils.d.ts +0 -2
- package/lib/utils/theme-body-hook.d.ts +0 -6
- package/lib/utils/theme-registry.d.ts +0 -3
- package/lib/web-services/aggregations.service.d.ts +0 -57
- package/lib/web-services/app.service.d.ts +0 -30
- package/lib/web-services/audit.service.d.ts +0 -72
- package/lib/web-services/index.d.ts +0 -9
- package/lib/web-services/json-method-plugin.service.d.ts +0 -41
- package/lib/web-services/preview.service.d.ts +0 -283
- package/lib/web-services/principal.service.d.ts +0 -28
- package/lib/web-services/query.service.d.ts +0 -29
- package/lib/web-services/text-chunck.service.d.ts +0 -22
- package/public-api.d.ts +0 -1
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
import { withDevtools } from '@angular-architects/ngrx-toolkit';
|
|
2
|
-
import { computed, inject, InjectionToken } from '@angular/core';
|
|
3
|
-
import { getState, patchState, signalStore, signalStoreFeature, withComputed, withMethods, withState } from '@ngrx/signals';
|
|
4
|
-
import { firstValueFrom, map } from 'rxjs';
|
|
5
|
-
import { AppService } from '../web-services/app.service';
|
|
6
|
-
import { AggregationsStore } from './aggregations.store';
|
|
7
|
-
/**
|
|
8
|
-
* Injection token for a list of facet names to display in the application.
|
|
9
|
-
*
|
|
10
|
-
* This token provides a default list of facet names including:
|
|
11
|
-
* - Geo
|
|
12
|
-
* - Company
|
|
13
|
-
* - Person
|
|
14
|
-
* - DocFormat
|
|
15
|
-
* - Modified
|
|
16
|
-
* - Size
|
|
17
|
-
* - DocumentLanguages
|
|
18
|
-
* - Concepts
|
|
19
|
-
*
|
|
20
|
-
* @constant
|
|
21
|
-
* @type {InjectionToken<string[]>}
|
|
22
|
-
*/
|
|
23
|
-
export const AGGREGATIONS_NAMES_PRESET_DEFAULT = [
|
|
24
|
-
"Places", "Sources", "Company", "People", "Formats", "Modified", "Sizes", "Languages", "Concepts",
|
|
25
|
-
"DocFormat", "Geo", "Person", "Treepath", "DocumentLanguages", "Size"
|
|
26
|
-
];
|
|
27
|
-
export const AGGREGATIONS_NAMES = new InjectionToken('Facets list to display', { factory: () => AGGREGATIONS_NAMES_PRESET_DEFAULT });
|
|
28
|
-
export const AppStore = signalStore({ providedIn: 'root' }, withDevtools('App'), withAppFeatures(), withAppCustomizationFeatures());
|
|
29
|
-
/**
|
|
30
|
-
* Basic app management features
|
|
31
|
-
*/
|
|
32
|
-
export function withAppFeatures() {
|
|
33
|
-
return signalStoreFeature(withState({ webServices: {}, queries: {} }),
|
|
34
|
-
/**
|
|
35
|
-
* Enhances the application store with various features and methods.
|
|
36
|
-
*
|
|
37
|
-
* This function integrates state management, computed properties, and methods
|
|
38
|
-
* to interact with the CCApp state, including initialization, updates,
|
|
39
|
-
* and retrieval of specific data such as web services, queries, and customization JSONs.
|
|
40
|
-
*
|
|
41
|
-
* Features:
|
|
42
|
-
* - State management with initial data.
|
|
43
|
-
* - Computed properties for customization JSON, sources, and filters.
|
|
44
|
-
* - Methods for initializing and updating the application state.
|
|
45
|
-
* - Methods for retrieving web services, labels, queries, and customization JSONs.
|
|
46
|
-
* - Methods for retrieving aggregation icons and customization items.
|
|
47
|
-
*
|
|
48
|
-
* @returns The enhanced application store with additional features and methods.
|
|
49
|
-
*/
|
|
50
|
-
withMethods((store, appService = inject(AppService)) => ({
|
|
51
|
-
/**
|
|
52
|
-
* Initializes the application state by fetching the app data from the appService
|
|
53
|
-
* and updating the store with the retrieved data.
|
|
54
|
-
*
|
|
55
|
-
* @returns A promise that resolves when the app data has been fetched and the store has been updated.
|
|
56
|
-
*/
|
|
57
|
-
initialize() {
|
|
58
|
-
return firstValueFrom(appService.getApp().pipe(map(app => patchState(store, app))));
|
|
59
|
-
},
|
|
60
|
-
/**
|
|
61
|
-
* Initializes the application state with the provided app name.
|
|
62
|
-
*
|
|
63
|
-
* @param appName - The name of the application to fetch the configuration for.
|
|
64
|
-
*
|
|
65
|
-
* @returns A promise that resolves when the app data has been fetched and the store has been updated.
|
|
66
|
-
*/
|
|
67
|
-
initializeWithAppName(appName) {
|
|
68
|
-
return firstValueFrom(appService.getApp(appName).pipe(map(app => patchState(store, app))));
|
|
69
|
-
},
|
|
70
|
-
/**
|
|
71
|
-
* Updates the application state with the provided CCApp object.
|
|
72
|
-
*
|
|
73
|
-
* @param {CCApp} app - The application object containing the new state values.
|
|
74
|
-
*/
|
|
75
|
-
update(app) {
|
|
76
|
-
patchState(store, (state) => {
|
|
77
|
-
return { ...state, ...app };
|
|
78
|
-
});
|
|
79
|
-
},
|
|
80
|
-
/**
|
|
81
|
-
* Returns the web service by type name
|
|
82
|
-
*
|
|
83
|
-
* @param type Web service type name
|
|
84
|
-
* @returns A {@link CCWebService} object or undefined if not found
|
|
85
|
-
*/
|
|
86
|
-
getWebServiceByType(type) {
|
|
87
|
-
let webService = undefined;
|
|
88
|
-
Object.keys(store.webServices())
|
|
89
|
-
.forEach((key) => {
|
|
90
|
-
const w = store.webServices();
|
|
91
|
-
const ws = w[key];
|
|
92
|
-
// Check if the web service type matches the specified type in lowercase
|
|
93
|
-
if (ws.webServiceType.toLowerCase() === type.toLocaleLowerCase())
|
|
94
|
-
webService = ws;
|
|
95
|
-
});
|
|
96
|
-
return webService;
|
|
97
|
-
},
|
|
98
|
-
/**
|
|
99
|
-
* Retrieves the labels from the web service of type 'Labels'.
|
|
100
|
-
*
|
|
101
|
-
* @returns An object containing the private and public labels.
|
|
102
|
-
* If the labels are not found, returns an object with empty strings for both fields.
|
|
103
|
-
*/
|
|
104
|
-
getLabels() {
|
|
105
|
-
const labels = this.getWebServiceByType('labels');
|
|
106
|
-
if (!labels)
|
|
107
|
-
return { private: '', public: '' };
|
|
108
|
-
const { publicLabelsField, privateLabelsField } = labels;
|
|
109
|
-
return ({ private: privateLabelsField, public: publicLabelsField });
|
|
110
|
-
},
|
|
111
|
-
/**
|
|
112
|
-
* Retrieves a query by its name from the store.
|
|
113
|
-
*
|
|
114
|
-
* @param name - The name of the query to retrieve.
|
|
115
|
-
* @returns The query object if found, otherwise `undefined`.
|
|
116
|
-
*/
|
|
117
|
-
getQueryByName(name) {
|
|
118
|
-
const queries = store.queries();
|
|
119
|
-
return queries[name.toLowerCase()];
|
|
120
|
-
},
|
|
121
|
-
/**
|
|
122
|
-
* Retrieves a query by its index from the store.
|
|
123
|
-
*
|
|
124
|
-
* @param index - The index of the query to retrieve.
|
|
125
|
-
* @returns The query at the specified index, or `undefined` if the index is out of bounds.
|
|
126
|
-
*/
|
|
127
|
-
getQueryByIndex(index) {
|
|
128
|
-
const queries = store.queries();
|
|
129
|
-
const keys = Object.keys(queries);
|
|
130
|
-
return queries[keys[index]];
|
|
131
|
-
},
|
|
132
|
-
/**
|
|
133
|
-
* Retrieves the default query.
|
|
134
|
-
* The default query is always the first query in the list of queries.
|
|
135
|
-
*
|
|
136
|
-
* @returns {CCQuery | undefined} The default query if it exists, otherwise undefined.
|
|
137
|
-
*/
|
|
138
|
-
getDefaultQuery() {
|
|
139
|
-
return this.getQueryByIndex(0);
|
|
140
|
-
},
|
|
141
|
-
/**
|
|
142
|
-
* Retrieves the allowEmptySearch property for a specific query.
|
|
143
|
-
* @param queryName - The name of the query for which to retrieve allow empty serach property.
|
|
144
|
-
* @returns The allowEmptySearch property for the specified query, or false if not found.
|
|
145
|
-
*/
|
|
146
|
-
allowEmptySearch(queryName) {
|
|
147
|
-
const queries = store.queries();
|
|
148
|
-
const keys = Object.keys(queries);
|
|
149
|
-
if (keys.length === 0)
|
|
150
|
-
return false;
|
|
151
|
-
const query = (queryName && queries[queryName.toLocaleLowerCase()]) || queries[keys[0]];
|
|
152
|
-
return query?.allowEmptySearch || false;
|
|
153
|
-
},
|
|
154
|
-
/**
|
|
155
|
-
* Retrieves the alias for a given column name from the application's state.
|
|
156
|
-
* If the column has aliases defined, the first alias is returned. Otherwise,
|
|
157
|
-
* the original column name is returned.
|
|
158
|
-
*
|
|
159
|
-
* @param column - The name of the column for which to retrieve the alias.
|
|
160
|
-
* @returns The alias of the column if it exists, otherwise the original column name.
|
|
161
|
-
*/
|
|
162
|
-
getColumnAlias(column) {
|
|
163
|
-
const state = getState(store);
|
|
164
|
-
const schema = state.indexes?.['_']?.columns;
|
|
165
|
-
const col = schema[column];
|
|
166
|
-
if (col) {
|
|
167
|
-
return col.aliases?.[0] || column;
|
|
168
|
-
}
|
|
169
|
-
return column;
|
|
170
|
-
},
|
|
171
|
-
})), withMethods((store, aggregationsStore = inject(AggregationsStore), aggregationsNames = inject(AGGREGATIONS_NAMES)) => ({
|
|
172
|
-
/**
|
|
173
|
-
* Retrieves the sorted aggregations based on the provided query name.
|
|
174
|
-
* @param queryName - The name of the query.
|
|
175
|
-
* @returns An array of sorted aggregations.
|
|
176
|
-
*/
|
|
177
|
-
getAuthorizedFilters(route) {
|
|
178
|
-
const { queryName } = route.snapshot.data;
|
|
179
|
-
const { aggregations = [] } = store.getQueryByName(queryName.toLowerCase()) || {};
|
|
180
|
-
const agg = [...aggregationsStore.aggregations().filter(aggregation => aggregationsNames.includes(aggregation.name.trim()))];
|
|
181
|
-
// sort the aggregations based on the query order
|
|
182
|
-
if (Array.isArray(aggregations)) {
|
|
183
|
-
const queryAggregationsOrder = aggregations.map(aggregation => aggregation.name.trim()) || [];
|
|
184
|
-
return agg.toSorted((a, b) => queryAggregationsOrder.indexOf(a.name) - queryAggregationsOrder.indexOf(b.name));
|
|
185
|
-
}
|
|
186
|
-
// return the default order
|
|
187
|
-
return agg;
|
|
188
|
-
}
|
|
189
|
-
})));
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Management of customization JSONs features for the app
|
|
193
|
-
*/
|
|
194
|
-
export function withAppCustomizationFeatures() {
|
|
195
|
-
return signalStoreFeature(withState({ customJSONs: [], data: {} }), withComputed(({ customJSONs, data }) => ({
|
|
196
|
-
customizationJson: computed(() => data()),
|
|
197
|
-
sources: computed(() => {
|
|
198
|
-
if (customJSONs() === undefined || Array.isArray(customJSONs()) === false)
|
|
199
|
-
return data().sources || {};
|
|
200
|
-
const sourcesJson = customJSONs()?.find(json => json.name === "sources");
|
|
201
|
-
const sources = sourcesJson?.data['sources'] || {};
|
|
202
|
-
return sources ?? data().sources ?? {};
|
|
203
|
-
}),
|
|
204
|
-
filters: computed(() => {
|
|
205
|
-
if (customJSONs() === undefined || Array.isArray(customJSONs()) === false)
|
|
206
|
-
return data().filters || [];
|
|
207
|
-
const filtersJson = customJSONs()?.find(json => json.name === "filters");
|
|
208
|
-
const filters = filtersJson?.data['filters'] || [];
|
|
209
|
-
return filters ?? data().filters ?? [];
|
|
210
|
-
})
|
|
211
|
-
})), withMethods((store) => ({
|
|
212
|
-
/**
|
|
213
|
-
* Retrieves the customization json by name
|
|
214
|
-
* @param name - The name of the customization json
|
|
215
|
-
* @returns The customization json object or undefined if not found
|
|
216
|
-
*/
|
|
217
|
-
getNamedCustomizationJson(name) {
|
|
218
|
-
return store.customJSONs().find(data => data.name === name);
|
|
219
|
-
},
|
|
220
|
-
/**
|
|
221
|
-
* Retrieves the icon associated with a given column's aggregation.
|
|
222
|
-
*
|
|
223
|
-
* This method searches through the store's filters to find an aggregation
|
|
224
|
-
* that matches the specified column. If a matching aggregation is found,
|
|
225
|
-
* its associated icon is returned. If no matching aggregation is found in
|
|
226
|
-
* the store's filters, the method falls back to searching in the
|
|
227
|
-
* customizationJson's filters.
|
|
228
|
-
*
|
|
229
|
-
* @param column - The name of the column for which to retrieve the aggregation icon.
|
|
230
|
-
* @returns The icon associated with the specified column's aggregation, or undefined if no matching aggregation is found.
|
|
231
|
-
*/
|
|
232
|
-
getAggregationIcon(column) {
|
|
233
|
-
const predicate = (aggregation) => aggregation.column === column;
|
|
234
|
-
if (store.filters().length > 0) {
|
|
235
|
-
return store.filters().find(predicate)?.icon;
|
|
236
|
-
}
|
|
237
|
-
// fallback to customizationJson
|
|
238
|
-
return store.customizationJson().filters?.find(predicate)?.icon;
|
|
239
|
-
},
|
|
240
|
-
/**
|
|
241
|
-
* Retrieves the customization items for a given column from the store's filters.
|
|
242
|
-
* If no items are found in the store's filters, it falls back to the customization JSON.
|
|
243
|
-
*
|
|
244
|
-
* @param column - The name of the column for which to retrieve customization items.
|
|
245
|
-
* @returns An array of `CFilterItem` objects if found, otherwise `undefined`.
|
|
246
|
-
*/
|
|
247
|
-
getAggregationItemsCustomization(column) {
|
|
248
|
-
const predicate = (aggregation) => aggregation.column === column;
|
|
249
|
-
if (store.filters().length > 0) {
|
|
250
|
-
return store.filters().find(predicate)?.items || [];
|
|
251
|
-
}
|
|
252
|
-
// fallback to customizationJson
|
|
253
|
-
return store.customizationJson().filters?.find(predicate)?.items || [];
|
|
254
|
-
},
|
|
255
|
-
/**
|
|
256
|
-
* Retrieves the customization for a specific aggregation column.
|
|
257
|
-
* @param column - The column name for which to retrieve the customization.
|
|
258
|
-
* @returns The customization object for the specified column, or undefined if not found.
|
|
259
|
-
*/
|
|
260
|
-
getAggregationCustomization(column) {
|
|
261
|
-
const predicate = (aggregation) => aggregation.column === column;
|
|
262
|
-
if (store.filters().length > 0) {
|
|
263
|
-
return store.filters().find(predicate);
|
|
264
|
-
}
|
|
265
|
-
// fallback to customizationJson
|
|
266
|
-
return store.customizationJson().filters?.find(predicate);
|
|
267
|
-
},
|
|
268
|
-
})));
|
|
269
|
-
}
|
|
270
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXRvbWljLWFuZ3VsYXIvc3JjL2xpYi9zdG9yZXMvYXBwLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd6RDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRztJQUMvQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVU7SUFDakcsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU07Q0FDdEUsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLGlDQUFpQyxFQUFFLENBQUMsQ0FBQztBQWNySSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUNqQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUs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QU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3RELENBQUM7WUFDRCxnQ0FBZ0M7WUFDaEMsT0FBTyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDekUsQ0FBQztRQUNEOzs7O1dBSUc7UUFDSCwyQkFBMkIsQ0FBQyxNQUFjO1lBQ3hDLE1BQU0sU0FBUyxHQUFHLENBQUMsV0FBb0IsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUM7WUFDMUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMvQixPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekMsQ0FBQztZQUNELGdDQUFnQztZQUNoQyxPQUFPLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUQsQ0FBQztLQUNGLENBQUMsQ0FBQyxDQUNKLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2l0aERldnRvb2xzIH0gZnJvbSAnQGFuZ3VsYXItYXJjaGl0ZWN0cy9uZ3J4LXRvb2xraXQnO1xuaW1wb3J0IHsgY29tcHV0ZWQsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGdldFN0YXRlLCBwYXRjaFN0YXRlLCBzaWduYWxTdG9yZSwgc2lnbmFsU3RvcmVGZWF0dXJlLCB3aXRoQ29tcHV0ZWQsIHdpdGhNZXRob2RzLCB3aXRoU3RhdGUgfSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBtYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQWdncmVnYXRpb24sIENDQXBwLCBDQ0NvbHVtbiwgQ0NRdWVyeSwgQ0NXZWJTZXJ2aWNlIH0gZnJvbSAnQHNpbmVxdWEvYXRvbWljJztcblxuaW1wb3J0IHsgQ0ZpbHRlciwgQ0ZpbHRlckl0ZW0sIENKc29uTWludCwgU2lkZUNKc29uIH0gZnJvbSAnLi4vbW9kZWxzL2N1c3RvbS1qc29uJztcbmltcG9ydCB7IEFwcFNlcnZpY2UgfSBmcm9tICcuLi93ZWItc2VydmljZXMvYXBwLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWdncmVnYXRpb25zU3RvcmUgfSBmcm9tICcuL2FnZ3JlZ2F0aW9ucy5zdG9yZSc7XG5cblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gZm9yIGEgbGlzdCBvZiBmYWNldCBuYW1lcyB0byBkaXNwbGF5IGluIHRoZSBhcHBsaWNhdGlvbi5cbiAqXG4gKiBUaGlzIHRva2VuIHByb3ZpZGVzIGEgZGVmYXVsdCBsaXN0IG9mIGZhY2V0IG5hbWVzIGluY2x1ZGluZzpcbiAqIC0gR2VvXG4gKiAtIENvbXBhbnlcbiAqIC0gUGVyc29uXG4gKiAtIERvY0Zvcm1hdFxuICogLSBNb2RpZmllZFxuICogLSBTaXplXG4gKiAtIERvY3VtZW50TGFuZ3VhZ2VzXG4gKiAtIENvbmNlcHRzXG4gKlxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7SW5qZWN0aW9uVG9rZW48c3RyaW5nW10+fVxuICovXG5leHBvcnQgY29uc3QgQUdHUkVHQVRJT05TX05BTUVTX1BSRVNFVF9ERUZBVUxUID0gW1xuICBcIlBsYWNlc1wiLCBcIlNvdXJjZXNcIiwgXCJDb21wYW55XCIsIFwiUGVvcGxlXCIsIFwiRm9ybWF0c1wiLCBcIk1vZGlmaWVkXCIsIFwiU2l6ZXNcIiwgXCJMYW5ndWFnZXNcIiwgXCJDb25jZXB0c1wiLFxuICBcIkRvY0Zvcm1hdFwiLCBcIkdlb1wiLCBcIlBlcnNvblwiLCBcIlRyZWVwYXRoXCIsIFwiRG9jdW1lbnRMYW5ndWFnZXNcIiwgXCJTaXplXCJcbl07XG5cbmV4cG9ydCBjb25zdCBBR0dSRUdBVElPTlNfTkFNRVMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0ZhY2V0cyBsaXN0IHRvIGRpc3BsYXknLCB7IGZhY3Rvcnk6ICgpID0+IEFHR1JFR0FUSU9OU19OQU1FU19QUkVTRVRfREVGQVVMVCB9KTtcblxuZXhwb3J0IHR5cGUgQ0NXZWJTZXJ2aWNlTGFiZWxzID0gQ0NXZWJTZXJ2aWNlICYge1xuICBwcml2YXRlTGFiZWxzRmllbGQ6IHN0cmluZztcbiAgcHVibGljTGFiZWxzRmllbGQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQ0NBcHBTdGF0ZSA9IHtcbiAgZGF0YTogQ0pzb25NaW50O1xuICBjdXN0b21KU09OczogU2lkZUNKc29uW107XG4gIHdlYlNlcnZpY2VzOiBSZWNvcmQ8c3RyaW5nLCBDQ1dlYlNlcnZpY2U+O1xuICBxdWVyaWVzOiBSZWNvcmQ8c3RyaW5nLCBDQ1F1ZXJ5Pjtcbn1cblxuZXhwb3J0IGNvbnN0IEFwcFN0b3JlID0gc2lnbmFsU3RvcmUoXG4gIHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0sXG4gIHdpdGhEZXZ0b29scygnQXBwJyksXG5cbiAgd2l0aEFwcEZlYXR1cmVzKCksXG4gIHdpdGhBcHBDdXN0b21pemF0aW9uRmVhdHVyZXMoKVxuKTtcblxuLyoqXG4gKiBCYXNpYyBhcHAgbWFuYWdlbWVudCBmZWF0dXJlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aEFwcEZlYXR1cmVzKCkge1xuICByZXR1cm4gc2lnbmFsU3RvcmVGZWF0dXJlKFxuICAgIHdpdGhTdGF0ZSh7IHdlYlNlcnZpY2VzOiB7fSwgcXVlcmllczoge30gfSksXG4gICAgLyoqXG4gICAgICogRW5oYW5jZXMgdGhlIGFwcGxpY2F0aW9uIHN0b3JlIHdpdGggdmFyaW91cyBmZWF0dXJlcyBhbmQgbWV0aG9kcy5cbiAgICAgKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaW50ZWdyYXRlcyBzdGF0ZSBtYW5hZ2VtZW50LCBjb21wdXRlZCBwcm9wZXJ0aWVzLCBhbmQgbWV0aG9kc1xuICAgICAqIHRvIGludGVyYWN0IHdpdGggdGhlIENDQXBwIHN0YXRlLCBpbmNsdWRpbmcgaW5pdGlhbGl6YXRpb24sIHVwZGF0ZXMsXG4gICAgICogYW5kIHJldHJpZXZhbCBvZiBzcGVjaWZpYyBkYXRhIHN1Y2ggYXMgd2ViIHNlcnZpY2VzLCBxdWVyaWVzLCBhbmQgY3VzdG9taXphdGlvbiBKU09Ocy5cbiAgICAgKlxuICAgICAqIEZlYXR1cmVzOlxuICAgICAqIC0gU3RhdGUgbWFuYWdlbWVudCB3aXRoIGluaXRpYWwgZGF0YS5cbiAgICAgKiAtIENvbXB1dGVkIHByb3BlcnRpZXMgZm9yIGN1c3RvbWl6YXRpb24gSlNPTiwgc291cmNlcywgYW5kIGZpbHRlcnMuXG4gICAgICogLSBNZXRob2RzIGZvciBpbml0aWFsaXppbmcgYW5kIHVwZGF0aW5nIHRoZSBhcHBsaWNhdGlvbiBzdGF0ZS5cbiAgICAgKiAtIE1ldGhvZHMgZm9yIHJldHJpZXZpbmcgd2ViIHNlcnZpY2VzLCBsYWJlbHMsIHF1ZXJpZXMsIGFuZCBjdXN0b21pemF0aW9uIEpTT05zLlxuICAgICAqIC0gTWV0aG9kcyBmb3IgcmV0cmlldmluZyBhZ2dyZWdhdGlvbiBpY29ucyBhbmQgY3VzdG9taXphdGlvbiBpdGVtcy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSBlbmhhbmNlZCBhcHBsaWNhdGlvbiBzdG9yZSB3aXRoIGFkZGl0aW9uYWwgZmVhdHVyZXMgYW5kIG1ldGhvZHMuXG4gICAgICovXG4gICAgd2l0aE1ldGhvZHMoKHN0b3JlLCBhcHBTZXJ2aWNlID0gaW5qZWN0KEFwcFNlcnZpY2UpKSA9PiAoe1xuICAgICAgLyoqXG4gICAgICAgKiBJbml0aWFsaXplcyB0aGUgYXBwbGljYXRpb24gc3RhdGUgYnkgZmV0Y2hpbmcgdGhlIGFwcCBkYXRhIGZyb20gdGhlIGFwcFNlcnZpY2VcbiAgICAgICAqIGFuZCB1cGRhdGluZyB0aGUgc3RvcmUgd2l0aCB0aGUgcmV0cmlldmVkIGRhdGEuXG4gICAgICAgKlxuICAgICAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYXBwIGRhdGEgaGFzIGJlZW4gZmV0Y2hlZCBhbmQgdGhlIHN0b3JlIGhhcyBiZWVuIHVwZGF0ZWQuXG4gICAgICAgKi9cbiAgICAgIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShhcHBTZXJ2aWNlLmdldEFwcCgpLnBpcGUobWFwKGFwcCA9PiBwYXRjaFN0YXRlKHN0b3JlLCBhcHApKSkpO1xuICAgICAgfSxcbiAgICAgIC8qKlxuICAgICAgICogSW5pdGlhbGl6ZXMgdGhlIGFwcGxpY2F0aW9uIHN0YXRlIHdpdGggdGhlIHByb3ZpZGVkIGFwcCBuYW1lLlxuICAgICAgICogXG4gICAgICAgKiBAcGFyYW0gYXBwTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbiB0byBmZXRjaCB0aGUgY29uZmlndXJhdGlvbiBmb3IuXG4gICAgICAgKiBcbiAgICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGFwcCBkYXRhIGhhcyBiZWVuIGZldGNoZWQgYW5kIHRoZSBzdG9yZSBoYXMgYmVlbiB1cGRhdGVkLlxuICAgICAgICovXG4gICAgICBpbml0aWFsaXplV2l0aEFwcE5hbWUoYXBwTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShhcHBTZXJ2aWNlLmdldEFwcChhcHBOYW1lKS5waXBlKG1hcChhcHAgPT4gcGF0Y2hTdGF0ZShzdG9yZSwgYXBwKSkpKTtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqIFVwZGF0ZXMgdGhlIGFwcGxpY2F0aW9uIHN0YXRlIHdpdGggdGhlIHByb3ZpZGVkIENDQXBwIG9iamVjdC5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0ge0NDQXBwfSBhcHAgLSBUaGUgYXBwbGljYXRpb24gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5ldyBzdGF0ZSB2YWx1ZXMuXG4gICAgICAgKi9cbiAgICAgIHVwZGF0ZShhcHA6IENDQXBwKSB7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIChzdGF0ZSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7IC4uLnN0YXRlLCAuLi5hcHAgfVxuICAgICAgICB9KVxuICAgICAgfSxcbiAgICAgIC8qKlxuICAgICAgICogUmV0dXJucyB0aGUgd2ViIHNlcnZpY2UgYnkgdHlwZSBuYW1lXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHR5cGUgV2ViIHNlcnZpY2UgdHlwZSBuYW1lXG4gICAgICAgKiBAcmV0dXJucyBBIHtAbGluayBDQ1dlYlNlcnZpY2V9IG9iamVjdCBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kXG4gICAgICAgKi9cbiAgICAgIGdldFdlYlNlcnZpY2VCeVR5cGUodHlwZTogQ0NXZWJTZXJ2aWNlWyd3ZWJTZXJ2aWNlVHlwZSddKTogQ0NXZWJTZXJ2aWNlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgbGV0IHdlYlNlcnZpY2UgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgT2JqZWN0LmtleXMoc3RvcmUud2ViU2VydmljZXMoKSlcbiAgICAgICAgICAuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB3ID0gc3RvcmUud2ViU2VydmljZXMoKSBhcyBSZWNvcmQ8c3RyaW5nLCBDQ1dlYlNlcnZpY2U+O1xuICAgICAgICAgICAgY29uc3Qgd3MgPSB3W2tleV0gYXMgdW5rbm93biBhcyBDQ1dlYlNlcnZpY2U7XG4gICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgd2ViIHNlcnZpY2UgdHlwZSBtYXRjaGVzIHRoZSBzcGVjaWZpZWQgdHlwZSBpbiBsb3dlcmNhc2VcbiAgICAgICAgICAgIGlmICh3cy53ZWJTZXJ2aWNlVHlwZS50b0xvd2VyQ2FzZSgpID09PSB0eXBlLnRvTG9jYWxlTG93ZXJDYXNlKCkpIHdlYlNlcnZpY2UgPSB3cztcbiAgICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gd2ViU2VydmljZTtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqIFJldHJpZXZlcyB0aGUgbGFiZWxzIGZyb20gdGhlIHdlYiBzZXJ2aWNlIG9mIHR5cGUgJ0xhYmVscycuXG4gICAgICAgKlxuICAgICAgICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHByaXZhdGUgYW5kIHB1YmxpYyBsYWJlbHMuXG4gICAgICAgKiAgICAgICAgICBJZiB0aGUgbGFiZWxzIGFyZSBub3QgZm91bmQsIHJldHVybnMgYW4gb2JqZWN0IHdpdGggZW1wdHkgc3RyaW5ncyBmb3IgYm90aCBmaWVsZHMuXG4gICAgICAgKi9cbiAgICAgIGdldExhYmVscygpOiB7IHByaXZhdGU6IHN0cmluZywgcHVibGljOiBzdHJpbmcgfSB7XG4gICAgICAgIGNvbnN0IGxhYmVscyA9IHRoaXMuZ2V0V2ViU2VydmljZUJ5VHlwZSgnbGFiZWxzJykgYXMgQ0NXZWJTZXJ2aWNlTGFiZWxzO1xuICAgICAgICBpZiAoIWxhYmVscykgcmV0dXJuIHsgcHJpdmF0ZTogJycsIHB1YmxpYzogJycgfTtcbiAgICAgICAgY29uc3QgeyBwdWJsaWNMYWJlbHNGaWVsZCwgcHJpdmF0ZUxhYmVsc0ZpZWxkIH0gPSBsYWJlbHM7XG4gICAgICAgIHJldHVybiAoeyBwcml2YXRlOiBwcml2YXRlTGFiZWxzRmllbGQsIHB1YmxpYzogcHVibGljTGFiZWxzRmllbGQgfSk7XG4gICAgICB9LFxuICAgICAgLyoqXG4gICAgICAgKiBSZXRyaWV2ZXMgYSBxdWVyeSBieSBpdHMgbmFtZSBmcm9tIHRoZSBzdG9yZS5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBxdWVyeSB0byByZXRyaWV2ZS5cbiAgICAgICAqIEByZXR1cm5zIFRoZSBxdWVyeSBvYmplY3QgaWYgZm91bmQsIG90aGVyd2lzZSBgdW5kZWZpbmVkYC5cbiAgICAgICAqL1xuICAgICAgZ2V0UXVlcnlCeU5hbWUobmFtZTogc3RyaW5nKTogQ0NRdWVyeSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IHF1ZXJpZXMgPSBzdG9yZS5xdWVyaWVzKCkgYXMgUmVjb3JkPHN0cmluZywgQ0NRdWVyeT47XG4gICAgICAgIHJldHVybiBxdWVyaWVzW25hbWUudG9Mb3dlckNhc2UoKV0gYXMgQ0NRdWVyeTtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqIFJldHJpZXZlcyBhIHF1ZXJ5IGJ5IGl0cyBpbmRleCBmcm9tIHRoZSBzdG9yZS5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0gaW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIHF1ZXJ5IHRvIHJldHJpZXZlLlxuICAgICAgICogQHJldHVybnMgVGhlIHF1ZXJ5IGF0IHRoZSBzcGVjaWZpZWQgaW5kZXgsIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBpbmRleCBpcyBvdXQgb2YgYm91bmRzLlxuICAgICAgICovXG4gICAgICBnZXRRdWVyeUJ5SW5kZXgoaW5kZXg6IG51bWJlcik6IENDUXVlcnkgfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBxdWVyaWVzID0gc3RvcmUucXVlcmllcygpIGFzIFJlY29yZDxzdHJpbmcsIENDUXVlcnk+O1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocXVlcmllcyk7XG4gICAgICAgIHJldHVybiBxdWVyaWVzW2tleXNbaW5kZXhdXTtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqIFJldHJpZXZlcyB0aGUgZGVmYXVsdCBxdWVyeS5cbiAgICAgICAqIFRoZSBkZWZhdWx0IHF1ZXJ5IGlzIGFsd2F5cyB0aGUgZmlyc3QgcXVlcnkgaW4gdGhlIGxpc3Qgb2YgcXVlcmllcy5cbiAgICAgICAqXG4gICAgICAgKiBAcmV0dXJucyB7Q0NRdWVyeSB8IHVuZGVmaW5lZH0gVGhlIGRlZmF1bHQgcXVlcnkgaWYgaXQgZXhpc3RzLCBvdGhlcndpc2UgdW5kZWZpbmVkLlxuICAgICAgICovXG4gICAgICBnZXREZWZhdWx0UXVlcnkoKTogQ0NRdWVyeSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFF1ZXJ5QnlJbmRleCgwKTtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqIFJldHJpZXZlcyB0aGUgYWxsb3dFbXB0eVNlYXJjaCBwcm9wZXJ0eSBmb3IgYSBzcGVjaWZpYyBxdWVyeS5cbiAgICAgICAqIEBwYXJhbSBxdWVyeU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcXVlcnkgZm9yIHdoaWNoIHRvIHJldHJpZXZlIGFsbG93IGVtcHR5IHNlcmFjaCBwcm9wZXJ0eS5cbiAgICAgICAqIEByZXR1cm5zIFRoZSBhbGxvd0VtcHR5U2VhcmNoIHByb3BlcnR5IGZvciB0aGUgc3BlY2lmaWVkIHF1ZXJ5LCBvciBmYWxzZSBpZiBub3QgZm91bmQuXG4gICAgICAgKi9cbiAgICAgIGFsbG93RW1wdHlTZWFyY2gocXVlcnlOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgcXVlcmllcyA9IHN0b3JlLnF1ZXJpZXMoKSBhcyBSZWNvcmQ8c3RyaW5nLCBDQ1F1ZXJ5PjtcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHF1ZXJpZXMpO1xuXG4gICAgICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gKHF1ZXJ5TmFtZSAmJiBxdWVyaWVzW3F1ZXJ5TmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpXSkgfHwgcXVlcmllc1trZXlzWzBdXTtcbiAgICAgICAgcmV0dXJuIHF1ZXJ5Py5hbGxvd0VtcHR5U2VhcmNoIHx8IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIC8qKlxuICAgICAgICogUmV0cmlldmVzIHRoZSBhbGlhcyBmb3IgYSBnaXZlbiBjb2x1bW4gbmFtZSBmcm9tIHRoZSBhcHBsaWNhdGlvbidzIHN0YXRlLlxuICAgICAgICogSWYgdGhlIGNvbHVtbiBoYXMgYWxpYXNlcyBkZWZpbmVkLCB0aGUgZmlyc3QgYWxpYXMgaXMgcmV0dXJuZWQuIE90aGVyd2lzZSxcbiAgICAgICAqIHRoZSBvcmlnaW5hbCBjb2x1bW4gbmFtZSBpcyByZXR1cm5lZC5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0gY29sdW1uIC0gVGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBmb3Igd2hpY2ggdG8gcmV0cmlldmUgdGhlIGFsaWFzLlxuICAgICAgICogQHJldHVybnMgVGhlIGFsaWFzIG9mIHRoZSBjb2x1bW4gaWYgaXQgZXhpc3RzLCBvdGhlcndpc2UgdGhlIG9yaWdpbmFsIGNvbHVtbiBuYW1lLlxuICAgICAgICovXG4gICAgICBnZXRDb2x1bW5BbGlhcyhjb2x1bW46IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gZ2V0U3RhdGUoc3RvcmUpIGFzIENDQXBwO1xuICAgICAgICBjb25zdCBzY2hlbWEgPSBzdGF0ZS5pbmRleGVzPy5bJ18nXT8uY29sdW1ucyBhcyBSZWNvcmQ8c3RyaW5nLCBDQ0NvbHVtbj47XG4gICAgICAgIGNvbnN0IGNvbCA9IHNjaGVtYVtjb2x1bW5dO1xuICAgICAgICBpZiAoY29sKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbC5hbGlhc2VzPy5bMF0gfHwgY29sdW1uO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb2x1bW47XG4gICAgICB9LFxuICAgIH0pKSxcbiAgICB3aXRoTWV0aG9kcygoc3RvcmUsIGFnZ3JlZ2F0aW9uc1N0b3JlID0gaW5qZWN0KEFnZ3JlZ2F0aW9uc1N0b3JlKSwgYWdncmVnYXRpb25zTmFtZXMgPSBpbmplY3QoQUdHUkVHQVRJT05TX05BTUVTKSkgPT4gKHtcbiAgICAgIC8qKlxuICAgICAgICogUmV0cmlldmVzIHRoZSBzb3J0ZWQgYWdncmVnYXRpb25zIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBuYW1lLlxuICAgICAgICogQHBhcmFtIHF1ZXJ5TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBxdWVyeS5cbiAgICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHNvcnRlZCBhZ2dyZWdhdGlvbnMuXG4gICAgICAgKi9cbiAgICAgIGdldEF1dGhvcml6ZWRGaWx0ZXJzKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5TmFtZSB9ID0gcm91dGUuc25hcHNob3QuZGF0YTtcbiAgICAgICAgY29uc3QgeyBhZ2dyZWdhdGlvbnMgPSBbXSB9ID0gc3RvcmUuZ2V0UXVlcnlCeU5hbWUocXVlcnlOYW1lLnRvTG93ZXJDYXNlKCkpIHx8IHt9IGFzIENDUXVlcnk7XG4gICAgICAgIGNvbnN0IGFnZyA9IFsuLi5hZ2dyZWdhdGlvbnNTdG9yZS5hZ2dyZWdhdGlvbnMoKS5maWx0ZXIoYWdncmVnYXRpb24gPT4gYWdncmVnYXRpb25zTmFtZXMuaW5jbHVkZXMoYWdncmVnYXRpb24ubmFtZS50cmltKCkpKV07XG4gICAgICAgIC8vIHNvcnQgdGhlIGFnZ3JlZ2F0aW9ucyBiYXNlZCBvbiB0aGUgcXVlcnkgb3JkZXJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWdncmVnYXRpb25zKSkge1xuICAgICAgICAgIGNvbnN0IHF1ZXJ5QWdncmVnYXRpb25zT3JkZXIgPSBhZ2dyZWdhdGlvbnMubWFwKGFnZ3JlZ2F0aW9uID0+IGFnZ3JlZ2F0aW9uLm5hbWUudHJpbSgpKSB8fCBbXTtcbiAgICAgICAgICByZXR1cm4gYWdnLnRvU29ydGVkKChhOiBBZ2dyZWdhdGlvbiwgYjogQWdncmVnYXRpb24pID0+IHF1ZXJ5QWdncmVnYXRpb25zT3JkZXIuaW5kZXhPZihhLm5hbWUpIC0gcXVlcnlBZ2dyZWdhdGlvbnNPcmRlci5pbmRleE9mKGIubmFtZSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHJldHVybiB0aGUgZGVmYXVsdCBvcmRlclxuICAgICAgICByZXR1cm4gYWdnO1xuICAgICAgfVxuICAgIH0pKVxuICApXG59XG5cbi8qKlxuICogTWFuYWdlbWVudCBvZiBjdXN0b21pemF0aW9uIEpTT05zIGZlYXR1cmVzIGZvciB0aGUgYXBwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoQXBwQ3VzdG9taXphdGlvbkZlYXR1cmVzKCkge1xuICByZXR1cm4gc2lnbmFsU3RvcmVGZWF0dXJlKFxuICAgIHdpdGhTdGF0ZSh7IGN1c3RvbUpTT05zOiBbXSBhcyBTaWRlQ0pzb25bXSwgZGF0YToge30gfSksXG5cbiAgICB3aXRoQ29tcHV0ZWQoKHsgY3VzdG9tSlNPTnMsIGRhdGEgfSkgPT4gKHtcbiAgICAgIGN1c3RvbWl6YXRpb25Kc29uOiBjb21wdXRlZCgoKSA9PiBkYXRhKCkgYXMgQ0pzb25NaW50KSxcbiAgICAgIHNvdXJjZXM6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKGN1c3RvbUpTT05zKCkgPT09IHVuZGVmaW5lZCB8fCBBcnJheS5pc0FycmF5KGN1c3RvbUpTT05zKCkpID09PSBmYWxzZSlcbiAgICAgICAgICByZXR1cm4gKGRhdGEoKSBhcyBDSnNvbk1pbnQpLnNvdXJjZXMgfHwge307XG5cbiAgICAgICAgY29uc3Qgc291cmNlc0pzb24gPSBjdXN0b21KU09OcygpPy5maW5kKGpzb24gPT4ganNvbi5uYW1lID09PSBcInNvdXJjZXNcIik7XG4gICAgICAgIGNvbnN0IHNvdXJjZXMgPSBzb3VyY2VzSnNvbj8uZGF0YVsnc291cmNlcyddIHx8IHt9O1xuXG4gICAgICAgIHJldHVybiBzb3VyY2VzID8/IChkYXRhKCkgYXMgQ0pzb25NaW50KS5zb3VyY2VzID8/IHt9O1xuICAgICAgfSksXG4gICAgICBmaWx0ZXJzOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmIChjdXN0b21KU09OcygpID09PSB1bmRlZmluZWQgfHwgQXJyYXkuaXNBcnJheShjdXN0b21KU09OcygpKSA9PT0gZmFsc2UpXG4gICAgICAgICAgcmV0dXJuIChkYXRhKCkgYXMgQ0pzb25NaW50KS5maWx0ZXJzIHx8IFtdO1xuXG4gICAgICAgIGNvbnN0IGZpbHRlcnNKc29uID0gY3VzdG9tSlNPTnMoKT8uZmluZChqc29uID0+IGpzb24ubmFtZSA9PT0gXCJmaWx0ZXJzXCIpO1xuICAgICAgICBjb25zdCBmaWx0ZXJzID0gZmlsdGVyc0pzb24/LmRhdGFbJ2ZpbHRlcnMnXSB8fCBbXTtcblxuICAgICAgICByZXR1cm4gZmlsdGVycyA/PyAoZGF0YSgpIGFzIENKc29uTWludCkuZmlsdGVycyA/PyBbXTtcbiAgICAgIH0pXG4gICAgfSkpLFxuXG4gICAgd2l0aE1ldGhvZHMoKHN0b3JlKSA9PiAoe1xuICAgICAgLyoqXG4gICAgICAgKiBSZXRyaWV2ZXMgdGhlIGN1c3RvbWl6YXRpb24ganNvbiBieSBuYW1lXG4gICAgICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBjdXN0b21pemF0aW9uIGpzb25cbiAgICAgICAqIEByZXR1cm5zIFRoZSBjdXN0b21pemF0aW9uIGpzb24gb2JqZWN0IG9yIHVuZGVmaW5lZCBpZiBub3QgZm91bmRcbiAgICAgICAqL1xuICAgICAgZ2V0TmFtZWRDdXN0b21pemF0aW9uSnNvbihuYW1lOiBzdHJpbmcpOiBhbnkgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gc3RvcmUuY3VzdG9tSlNPTnMoKS5maW5kKGRhdGEgPT4gZGF0YS5uYW1lID09PSBuYW1lKTtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqIFJldHJpZXZlcyB0aGUgaWNvbiBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBjb2x1bW4ncyBhZ2dyZWdhdGlvbi5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIG1ldGhvZCBzZWFyY2hlcyB0aHJvdWdoIHRoZSBzdG9yZSdzIGZpbHRlcnMgdG8gZmluZCBhbiBhZ2dyZWdhdGlvblxuICAgICAgICogdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpZWQgY29sdW1uLiBJZiBhIG1hdGNoaW5nIGFnZ3JlZ2F0aW9uIGlzIGZvdW5kLFxuICAgICAgICogaXRzIGFzc29jaWF0ZWQgaWNvbiBpcyByZXR1cm5lZC4gSWYgbm8gbWF0Y2hpbmcgYWdncmVnYXRpb24gaXMgZm91bmQgaW5cbiAgICAgICAqIHRoZSBzdG9yZSdzIGZpbHRlcnMsIHRoZSBtZXRob2QgZmFsbHMgYmFjayB0byBzZWFyY2hpbmcgaW4gdGhlXG4gICAgICAgKiBjdXN0b21pemF0aW9uSnNvbidzIGZpbHRlcnMuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIGNvbHVtbiAtIFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gZm9yIHdoaWNoIHRvIHJldHJpZXZlIHRoZSBhZ2dyZWdhdGlvbiBpY29uLlxuICAgICAgICogQHJldHVybnMgVGhlIGljb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgY29sdW1uJ3MgYWdncmVnYXRpb24sIG9yIHVuZGVmaW5lZCBpZiBubyBtYXRjaGluZyBhZ2dyZWdhdGlvbiBpcyBmb3VuZC5cbiAgICAgICAqL1xuICAgICAgZ2V0QWdncmVnYXRpb25JY29uKGNvbHVtbjogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgcHJlZGljYXRlID0gKGFnZ3JlZ2F0aW9uOiBDRmlsdGVyKSA9PiBhZ2dyZWdhdGlvbi5jb2x1bW4gPT09IGNvbHVtbjtcbiAgICAgICAgaWYgKHN0b3JlLmZpbHRlcnMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmV0dXJuIHN0b3JlLmZpbHRlcnMoKS5maW5kKHByZWRpY2F0ZSk/Lmljb247XG4gICAgICAgIH1cbiAgICAgICAgLy8gZmFsbGJhY2sgdG8gY3VzdG9taXphdGlvbkpzb25cbiAgICAgICAgcmV0dXJuIHN0b3JlLmN1c3RvbWl6YXRpb25Kc29uKCkuZmlsdGVycz8uZmluZChwcmVkaWNhdGUpPy5pY29uO1xuICAgICAgfSxcbiAgICAgIC8qKlxuICAgICAgICogUmV0cmlldmVzIHRoZSBjdXN0b21pemF0aW9uIGl0ZW1zIGZvciBhIGdpdmVuIGNvbHVtbiBmcm9tIHRoZSBzdG9yZSdzIGZpbHRlcnMuXG4gICAgICAgKiBJZiBubyBpdGVtcyBhcmUgZm91bmQgaW4gdGhlIHN0b3JlJ3MgZmlsdGVycywgaXQgZmFsbHMgYmFjayB0byB0aGUgY3VzdG9taXphdGlvbiBKU09OLlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgbmFtZSBvZiB0aGUgY29sdW1uIGZvciB3aGljaCB0byByZXRyaWV2ZSBjdXN0b21pemF0aW9uIGl0ZW1zLlxuICAgICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgYENGaWx0ZXJJdGVtYCBvYmplY3RzIGlmIGZvdW5kLCBvdGhlcndpc2UgYHVuZGVmaW5lZGAuXG4gICAgICAgKi9cbiAgICAgIGdldEFnZ3JlZ2F0aW9uSXRlbXNDdXN0b21pemF0aW9uKGNvbHVtbjogc3RyaW5nKTogQ0ZpbHRlckl0ZW1bXSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IHByZWRpY2F0ZSA9IChhZ2dyZWdhdGlvbjogQ0ZpbHRlcikgPT4gYWdncmVnYXRpb24uY29sdW1uID09PSBjb2x1bW47XG4gICAgICAgIGlmIChzdG9yZS5maWx0ZXJzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJldHVybiBzdG9yZS5maWx0ZXJzKCkuZmluZChwcmVkaWNhdGUpPy5pdGVtcyB8fCBbXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBmYWxsYmFjayB0byBjdXN0b21pemF0aW9uSnNvblxuICAgICAgICByZXR1cm4gc3RvcmUuY3VzdG9taXphdGlvbkpzb24oKS5maWx0ZXJzPy5maW5kKHByZWRpY2F0ZSk/Lml0ZW1zIHx8IFtdO1xuICAgICAgfSxcbiAgICAgIC8qKlxuICAgICAgICogUmV0cmlldmVzIHRoZSBjdXN0b21pemF0aW9uIGZvciBhIHNwZWNpZmljIGFnZ3JlZ2F0aW9uIGNvbHVtbi5cbiAgICAgICAqIEBwYXJhbSBjb2x1bW4gLSBUaGUgY29sdW1uIG5hbWUgZm9yIHdoaWNoIHRvIHJldHJpZXZlIHRoZSBjdXN0b21pemF0aW9uLlxuICAgICAgICogQHJldHVybnMgVGhlIGN1c3RvbWl6YXRpb24gb2JqZWN0IGZvciB0aGUgc3BlY2lmaWVkIGNvbHVtbiwgb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZC5cbiAgICAgICAqL1xuICAgICAgZ2V0QWdncmVnYXRpb25DdXN0b21pemF0aW9uKGNvbHVtbjogc3RyaW5nKTogQ0ZpbHRlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IHByZWRpY2F0ZSA9IChhZ2dyZWdhdGlvbjogQ0ZpbHRlcikgPT4gYWdncmVnYXRpb24uY29sdW1uID09PSBjb2x1bW47XG4gICAgICAgIGlmIChzdG9yZS5maWx0ZXJzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJldHVybiBzdG9yZS5maWx0ZXJzKCkuZmluZChwcmVkaWNhdGUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGZhbGxiYWNrIHRvIGN1c3RvbWl6YXRpb25Kc29uXG4gICAgICAgIHJldHVybiBzdG9yZS5jdXN0b21pemF0aW9uSnNvbigpLmZpbHRlcnM/LmZpbmQocHJlZGljYXRlKTtcbiAgICAgIH0sXG4gICAgfSkpLFxuICApXG59Il19
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { withDevtools } from "@angular-architects/ngrx-toolkit";
|
|
2
|
-
import { computed } from "@angular/core";
|
|
3
|
-
import { patchState, signalStore, signalStoreFeature, withComputed, withMethods, withState } from "@ngrx/signals";
|
|
4
|
-
export const ApplicationStore = signalStore(
|
|
5
|
-
// providing store at the root level
|
|
6
|
-
{ providedIn: 'root', protectedState: false }, withDevtools('Application'), withApplicationFeatures(), withExtractsFeatures());
|
|
7
|
-
/**
|
|
8
|
-
* Enhances the application store with additional features.
|
|
9
|
-
*
|
|
10
|
-
* This function integrates several features into the application store, including state management,
|
|
11
|
-
* computed properties, and various methods for updating and retrieving application state.
|
|
12
|
-
*
|
|
13
|
-
* Features included:
|
|
14
|
-
* - State initialization with `intialState`.
|
|
15
|
-
* - Methods for updating the application state:
|
|
16
|
-
* - `updateAssistantReady`: Marks the assistant as ready.
|
|
17
|
-
* - `updateReadyState`: Sets the application store's ready state to true.
|
|
18
|
-
*
|
|
19
|
-
* @returns A configured signal store feature with state, computed properties, and methods.
|
|
20
|
-
*/
|
|
21
|
-
export function withApplicationFeatures() {
|
|
22
|
-
return signalStoreFeature(withState({ assistantReady: false, ready: false, hasLabelsAccess: false }), withMethods((store) => ({
|
|
23
|
-
/**
|
|
24
|
-
* Updates the application state to indicate that the assistant is ready.
|
|
25
|
-
* This function patches the current state by setting the `assistantReady` property to `true`.
|
|
26
|
-
*/
|
|
27
|
-
updateAssistantReady() {
|
|
28
|
-
patchState(store, (state) => ({ ...state, assistantReady: true }));
|
|
29
|
-
},
|
|
30
|
-
/**
|
|
31
|
-
* Updates the ready state of the application store to true.
|
|
32
|
-
* This function patches the current state of the store by setting the `ready` property to `true`.
|
|
33
|
-
*/
|
|
34
|
-
updateReadyState(value = true) {
|
|
35
|
-
patchState(store, (state) => ({ ...state, ready: value }));
|
|
36
|
-
},
|
|
37
|
-
/**
|
|
38
|
-
* Updates the `hasLabelsAccess` property in the application store state.
|
|
39
|
-
*
|
|
40
|
-
* @param value - A boolean value indicating whether the user has access to labels. Defaults to `true`.
|
|
41
|
-
*/
|
|
42
|
-
updateHasLabelsAccess(value = true) {
|
|
43
|
-
patchState(store, (state) => ({ ...state, hasLabelsAccess: value }));
|
|
44
|
-
}
|
|
45
|
-
})));
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Provides features related to extracts within the application store.
|
|
49
|
-
*
|
|
50
|
-
* This function integrates state management, computed properties, and methods
|
|
51
|
-
* for handling extracts in the application store.
|
|
52
|
-
*
|
|
53
|
-
* Features:
|
|
54
|
-
* - State management for extracts.
|
|
55
|
-
* - Computed property to get the count of extracts.
|
|
56
|
-
* - Methods to update and retrieve extracts.
|
|
57
|
-
*
|
|
58
|
-
* @returns A configured signal store feature with state, computed properties, and methods for extracts.
|
|
59
|
-
*/
|
|
60
|
-
export function withExtractsFeatures() {
|
|
61
|
-
return signalStoreFeature(withState({ extracts: new Map() }), withComputed(({ extracts }) => ({
|
|
62
|
-
extractsCount: computed(() => extracts().size),
|
|
63
|
-
})), withMethods((store) => ({
|
|
64
|
-
/**
|
|
65
|
-
* Updates the extracts for a given ID in the application store.
|
|
66
|
-
*
|
|
67
|
-
* @param id - The unique identifier for the extracts to be updated.
|
|
68
|
-
* @param extracts - An array of Extract objects to be associated with the given ID.
|
|
69
|
-
*/
|
|
70
|
-
updateExtracts(id, extracts) {
|
|
71
|
-
patchState(store, (state) => {
|
|
72
|
-
state.extracts.set(id, extracts);
|
|
73
|
-
return { ...state };
|
|
74
|
-
});
|
|
75
|
-
},
|
|
76
|
-
/**
|
|
77
|
-
* Retrieves extracts from the store based on the provided ID.
|
|
78
|
-
*
|
|
79
|
-
* @param id - The unique identifier for the extracts to retrieve.
|
|
80
|
-
* @returns The extracts associated with the given ID.
|
|
81
|
-
*/
|
|
82
|
-
getExtracts(id) {
|
|
83
|
-
return store.extracts().get(id);
|
|
84
|
-
}
|
|
85
|
-
})));
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG9taWMtYW5ndWxhci9zcmMvbGliL3N0b3Jlcy9hcHBsaWNhdGlvbi5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWlCbEgsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVztBQUN6QyxvQ0FBb0M7QUFDcEMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsRUFDN0MsWUFBWSxDQUFDLGFBQWEsQ0FBQyxFQUUzQix1QkFBdUIsRUFBRSxFQUN6QixvQkFBb0IsRUFBRSxDQUN2QixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsT0FBTyxrQkFBa0IsQ0FDdkIsU0FBUyxDQUFDLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUUxRSxXQUFXLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEI7OztXQUdHO1FBQ0gsb0JBQW9CO1lBQ2xCLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFDRDs7O1dBR0c7UUFDSCxnQkFBZ0IsQ0FBQyxRQUFpQixJQUFJO1lBQ3BDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRDs7OztXQUlHO1FBQ0gscUJBQXFCLENBQUMsUUFBaUIsSUFBSTtZQUN6QyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDO0tBQ0YsQ0FBQyxDQUFDLENBQ0osQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE9BQU8sa0JBQWtCLENBQ3ZCLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEdBQUcsRUFBcUIsRUFBRSxDQUFDLEVBRXJELFlBQVksQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUIsYUFBYSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUM7S0FDL0MsQ0FBQyxDQUFDLEVBRUgsV0FBVyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCOzs7OztXQUtHO1FBQ0gsY0FBYyxDQUFDLEVBQVUsRUFBRSxRQUFtQjtZQUM1QyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQzFCLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDakMsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO1FBQ0Q7Ozs7O1dBS0c7UUFDSCxXQUFXLENBQUMsRUFBVTtZQUNwQixPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEMsQ0FBQztLQUNGLENBQUMsQ0FBQyxDQUNKLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2l0aERldnRvb2xzIH0gZnJvbSBcIkBhbmd1bGFyLWFyY2hpdGVjdHMvbmdyeC10b29sa2l0XCI7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgcGF0Y2hTdGF0ZSwgc2lnbmFsU3RvcmUsIHNpZ25hbFN0b3JlRmVhdHVyZSwgd2l0aENvbXB1dGVkLCB3aXRoTWV0aG9kcywgd2l0aFN0YXRlIH0gZnJvbSBcIkBuZ3J4L3NpZ25hbHNcIjtcblxuZXhwb3J0IHR5cGUgRXh0cmFjdCA9IHtcbiAgaWQ6IHN0cmluZyxcbiAgdGV4dDogU2FmZUh0bWwsIC8vIFNhbml0aXplZCBIVE1MIHRleHRcbiAgc3RhcnRJbmRleDogbnVtYmVyLCAvLyB0aGlzIGlzIHRoZSBzdGFydCBpbmRleCBvZiB0aGUgZXh0cmFjdHMgd2l0aGluIHRoZSBEb2N1bWVudCBUZXh0XG4gIHJlbGV2YW5jZUluZGV4OiBudW1iZXIsIC8vIDAgdGhlIG1vc3QgcmVsZXZhbnQgdG8gTiB0aGUgbGVzcyByZWxldmFudFxuICB0ZXh0SW5kZXg6IG51bWJlciAvLyBpbmRleCBvZiB0aGUgZXh0cmFjdCBpbiB0aGUgdGV4dC4gZS5nIDAgaXMgdGhlIGZpcnN0IGV4dHJhY3QgZGlzcGxheWVkIGluIHRoZSBkb2N1bWVudFxufVxuXG5leHBvcnQgdHlwZSBBcHBsaWNhdGlvblN0YXRlID0ge1xuICBhc3Npc3RhbnRSZWFkeTogYm9vbGVhbixcbiAgcmVhZHk6IGJvb2xlYW4sXG4gIGV4dHJhY3RzOiBNYXA8c3RyaW5nLCBFeHRyYWN0W10+LFxuICBoYXNMYWJlbHNBY2Nlc3M6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uU3RvcmUgPSBzaWduYWxTdG9yZShcbiAgLy8gcHJvdmlkaW5nIHN0b3JlIGF0IHRoZSByb290IGxldmVsXG4gIHsgcHJvdmlkZWRJbjogJ3Jvb3QnLCBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgd2l0aERldnRvb2xzKCdBcHBsaWNhdGlvbicpLFxuXG4gIHdpdGhBcHBsaWNhdGlvbkZlYXR1cmVzKCksXG4gIHdpdGhFeHRyYWN0c0ZlYXR1cmVzKClcbik7XG5cbi8qKlxuICogRW5oYW5jZXMgdGhlIGFwcGxpY2F0aW9uIHN0b3JlIHdpdGggYWRkaXRpb25hbCBmZWF0dXJlcy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGludGVncmF0ZXMgc2V2ZXJhbCBmZWF0dXJlcyBpbnRvIHRoZSBhcHBsaWNhdGlvbiBzdG9yZSwgaW5jbHVkaW5nIHN0YXRlIG1hbmFnZW1lbnQsXG4gKiBjb21wdXRlZCBwcm9wZXJ0aWVzLCBhbmQgdmFyaW91cyBtZXRob2RzIGZvciB1cGRhdGluZyBhbmQgcmV0cmlldmluZyBhcHBsaWNhdGlvbiBzdGF0ZS5cbiAqXG4gKiBGZWF0dXJlcyBpbmNsdWRlZDpcbiAqIC0gU3RhdGUgaW5pdGlhbGl6YXRpb24gd2l0aCBgaW50aWFsU3RhdGVgLlxuICogLSBNZXRob2RzIGZvciB1cGRhdGluZyB0aGUgYXBwbGljYXRpb24gc3RhdGU6XG4gKiAgIC0gYHVwZGF0ZUFzc2lzdGFudFJlYWR5YDogTWFya3MgdGhlIGFzc2lzdGFudCBhcyByZWFkeS5cbiAqICAgLSBgdXBkYXRlUmVhZHlTdGF0ZWA6IFNldHMgdGhlIGFwcGxpY2F0aW9uIHN0b3JlJ3MgcmVhZHkgc3RhdGUgdG8gdHJ1ZS5cbiAqXG4gKiBAcmV0dXJucyBBIGNvbmZpZ3VyZWQgc2lnbmFsIHN0b3JlIGZlYXR1cmUgd2l0aCBzdGF0ZSwgY29tcHV0ZWQgcHJvcGVydGllcywgYW5kIG1ldGhvZHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoQXBwbGljYXRpb25GZWF0dXJlcygpIHtcbiAgcmV0dXJuIHNpZ25hbFN0b3JlRmVhdHVyZShcbiAgICB3aXRoU3RhdGUoeyBhc3Npc3RhbnRSZWFkeTogZmFsc2UsIHJlYWR5OiBmYWxzZSwgaGFzTGFiZWxzQWNjZXNzOiBmYWxzZSB9KSxcblxuICAgIHdpdGhNZXRob2RzKChzdG9yZSkgPT4gKHtcbiAgICAgIC8qKlxuICAgICAgICogVXBkYXRlcyB0aGUgYXBwbGljYXRpb24gc3RhdGUgdG8gaW5kaWNhdGUgdGhhdCB0aGUgYXNzaXN0YW50IGlzIHJlYWR5LlxuICAgICAgICogVGhpcyBmdW5jdGlvbiBwYXRjaGVzIHRoZSBjdXJyZW50IHN0YXRlIGJ5IHNldHRpbmcgdGhlIGBhc3Npc3RhbnRSZWFkeWAgcHJvcGVydHkgdG8gYHRydWVgLlxuICAgICAgICovXG4gICAgICB1cGRhdGVBc3Npc3RhbnRSZWFkeSgpIHtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgKHN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgYXNzaXN0YW50UmVhZHk6IHRydWUgfSkpO1xuICAgICAgfSxcbiAgICAgIC8qKlxuICAgICAgICogVXBkYXRlcyB0aGUgcmVhZHkgc3RhdGUgb2YgdGhlIGFwcGxpY2F0aW9uIHN0b3JlIHRvIHRydWUuXG4gICAgICAgKiBUaGlzIGZ1bmN0aW9uIHBhdGNoZXMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0b3JlIGJ5IHNldHRpbmcgdGhlIGByZWFkeWAgcHJvcGVydHkgdG8gYHRydWVgLlxuICAgICAgICovXG4gICAgICB1cGRhdGVSZWFkeVN0YXRlKHZhbHVlOiBib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCAoc3RhdGUpID0+ICh7IC4uLnN0YXRlLCByZWFkeTogdmFsdWUgfSkpO1xuICAgICAgfSxcbiAgICAgIC8qKlxuICAgICAgICogVXBkYXRlcyB0aGUgYGhhc0xhYmVsc0FjY2Vzc2AgcHJvcGVydHkgaW4gdGhlIGFwcGxpY2F0aW9uIHN0b3JlIHN0YXRlLlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSB2YWx1ZSAtIEEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHVzZXIgaGFzIGFjY2VzcyB0byBsYWJlbHMuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICAgICAqL1xuICAgICAgdXBkYXRlSGFzTGFiZWxzQWNjZXNzKHZhbHVlOiBib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCAoc3RhdGUpID0+ICh7IC4uLnN0YXRlLCBoYXNMYWJlbHNBY2Nlc3M6IHZhbHVlIH0pKTtcbiAgICAgIH1cbiAgICB9KSlcbiAgKTtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBmZWF0dXJlcyByZWxhdGVkIHRvIGV4dHJhY3RzIHdpdGhpbiB0aGUgYXBwbGljYXRpb24gc3RvcmUuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBpbnRlZ3JhdGVzIHN0YXRlIG1hbmFnZW1lbnQsIGNvbXB1dGVkIHByb3BlcnRpZXMsIGFuZCBtZXRob2RzXG4gKiBmb3IgaGFuZGxpbmcgZXh0cmFjdHMgaW4gdGhlIGFwcGxpY2F0aW9uIHN0b3JlLlxuICpcbiAqIEZlYXR1cmVzOlxuICogLSBTdGF0ZSBtYW5hZ2VtZW50IGZvciBleHRyYWN0cy5cbiAqIC0gQ29tcHV0ZWQgcHJvcGVydHkgdG8gZ2V0IHRoZSBjb3VudCBvZiBleHRyYWN0cy5cbiAqIC0gTWV0aG9kcyB0byB1cGRhdGUgYW5kIHJldHJpZXZlIGV4dHJhY3RzLlxuICpcbiAqIEByZXR1cm5zIEEgY29uZmlndXJlZCBzaWduYWwgc3RvcmUgZmVhdHVyZSB3aXRoIHN0YXRlLCBjb21wdXRlZCBwcm9wZXJ0aWVzLCBhbmQgbWV0aG9kcyBmb3IgZXh0cmFjdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoRXh0cmFjdHNGZWF0dXJlcygpIHtcbiAgcmV0dXJuIHNpZ25hbFN0b3JlRmVhdHVyZShcbiAgICB3aXRoU3RhdGUoeyBleHRyYWN0czogbmV3IE1hcDxzdHJpbmcsIEV4dHJhY3RbXT4oKSB9KSxcblxuICAgIHdpdGhDb21wdXRlZCgoeyBleHRyYWN0cyB9KSA9PiAoe1xuICAgICAgZXh0cmFjdHNDb3VudDogY29tcHV0ZWQoKCkgPT4gZXh0cmFjdHMoKS5zaXplKSxcbiAgICB9KSksXG5cbiAgICB3aXRoTWV0aG9kcygoc3RvcmUpID0+ICh7XG4gICAgICAvKipcbiAgICAgICAqIFVwZGF0ZXMgdGhlIGV4dHJhY3RzIGZvciBhIGdpdmVuIElEIGluIHRoZSBhcHBsaWNhdGlvbiBzdG9yZS5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBleHRyYWN0cyB0byBiZSB1cGRhdGVkLlxuICAgICAgICogQHBhcmFtIGV4dHJhY3RzIC0gQW4gYXJyYXkgb2YgRXh0cmFjdCBvYmplY3RzIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gSUQuXG4gICAgICAgKi9cbiAgICAgIHVwZGF0ZUV4dHJhY3RzKGlkOiBzdHJpbmcsIGV4dHJhY3RzOiBFeHRyYWN0W10pIHtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgKHN0YXRlKSA9PiB7XG4gICAgICAgICAgc3RhdGUuZXh0cmFjdHMuc2V0KGlkLCBleHRyYWN0cyk7XG4gICAgICAgICAgcmV0dXJuIHsgLi4uc3RhdGUgfTtcbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqIFJldHJpZXZlcyBleHRyYWN0cyBmcm9tIHRoZSBzdG9yZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgSUQuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZXh0cmFjdHMgdG8gcmV0cmlldmUuXG4gICAgICAgKiBAcmV0dXJucyBUaGUgZXh0cmFjdHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBJRC5cbiAgICAgICAqL1xuICAgICAgZ2V0RXh0cmFjdHMoaWQ6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gc3RvcmUuZXh0cmFjdHMoKS5nZXQoaWQpO1xuICAgICAgfVxuICAgIH0pKVxuICApXG59XG4iXX0=
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from "./aggregations.store"; // contains the result's aggregations
|
|
2
|
-
export * from "./app.store"; // contains the application's state
|
|
3
|
-
export * from "./application.store"; // contains the inner application's state
|
|
4
|
-
export * from "./principal.store"; // contains the user's principal
|
|
5
|
-
export * from "./query-params.store"; // contains the query parameters
|
|
6
|
-
export * from "./selection.store"; // contains the selected items
|
|
7
|
-
export * from "./theme.store"; // contains the theme manager
|
|
8
|
-
export * from "./user-settings.store"; // contains the user's settings
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG9taWMtYW5ndWxhci9zcmMvbGliL3N0b3Jlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDLENBQUMscUNBQXFDO0FBQzNFLGNBQWMsYUFBYSxDQUFDLENBQUMsbUNBQW1DO0FBQ2hFLGNBQWMscUJBQXFCLENBQUMsQ0FBQyx5Q0FBeUM7QUFDOUUsY0FBYyxtQkFBbUIsQ0FBQyxDQUFDLGdDQUFnQztBQUNuRSxjQUFjLHNCQUFzQixDQUFDLENBQUMsZ0NBQWdDO0FBQ3RFLGNBQWMsbUJBQW1CLENBQUMsQ0FBQyw4QkFBOEI7QUFDakUsY0FBYyxlQUFlLENBQUMsQ0FBQyw2QkFBNkI7QUFDNUQsY0FBYyx1QkFBdUIsQ0FBQyxDQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2FnZ3JlZ2F0aW9ucy5zdG9yZVwiOyAvLyBjb250YWlucyB0aGUgcmVzdWx0J3MgYWdncmVnYXRpb25zXHJcbmV4cG9ydCAqIGZyb20gXCIuL2FwcC5zdG9yZVwiOyAvLyBjb250YWlucyB0aGUgYXBwbGljYXRpb24ncyBzdGF0ZVxyXG5leHBvcnQgKiBmcm9tIFwiLi9hcHBsaWNhdGlvbi5zdG9yZVwiOyAvLyBjb250YWlucyB0aGUgaW5uZXIgYXBwbGljYXRpb24ncyBzdGF0ZVxyXG5leHBvcnQgKiBmcm9tIFwiLi9wcmluY2lwYWwuc3RvcmVcIjsgLy8gY29udGFpbnMgdGhlIHVzZXIncyBwcmluY2lwYWxcclxuZXhwb3J0ICogZnJvbSBcIi4vcXVlcnktcGFyYW1zLnN0b3JlXCI7IC8vIGNvbnRhaW5zIHRoZSBxdWVyeSBwYXJhbWV0ZXJzXHJcbmV4cG9ydCAqIGZyb20gXCIuL3NlbGVjdGlvbi5zdG9yZVwiOyAvLyBjb250YWlucyB0aGUgc2VsZWN0ZWQgaXRlbXNcclxuZXhwb3J0ICogZnJvbSBcIi4vdGhlbWUuc3RvcmVcIjsgLy8gY29udGFpbnMgdGhlIHRoZW1lIG1hbmFnZXJcclxuZXhwb3J0ICogZnJvbSBcIi4vdXNlci1zZXR0aW5ncy5zdG9yZVwiOyAvLyBjb250YWlucyB0aGUgdXNlcidzIHNldHRpbmdzXHJcblxyXG4iXX0=
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { withDevtools } from "@angular-architects/ngrx-toolkit";
|
|
2
|
-
import { computed, inject } from "@angular/core";
|
|
3
|
-
import { patchState, signalStore, signalStoreFeature, withComputed, withMethods, withState } from "@ngrx/signals";
|
|
4
|
-
import { firstValueFrom, map } from "rxjs";
|
|
5
|
-
import { globalConfig } from "@sinequa/atomic";
|
|
6
|
-
import { PrincipalService } from "../web-services/principal.service";
|
|
7
|
-
export const PrincipalStore = signalStore({ providedIn: 'root' }, withDevtools('Principal'), withState({ principal: {}, userOverrideActive: false }), withComputed(({ principal, userOverrideActive }) => ({
|
|
8
|
-
allowUserOverride: computed(() => principal().isAdministrator && userOverrideActive() === false),
|
|
9
|
-
isOverridingUser: computed(() => userOverrideActive() === true)
|
|
10
|
-
})), withPrincipalFeatures());
|
|
11
|
-
/**
|
|
12
|
-
* Enhances the store with principal-related features.
|
|
13
|
-
*
|
|
14
|
-
* This function integrates state, methods, and computed properties related to the principal.
|
|
15
|
-
*
|
|
16
|
-
* @returns A feature that can be added to a signal store.
|
|
17
|
-
*
|
|
18
|
-
* @feature
|
|
19
|
-
* - State:
|
|
20
|
-
* - `principal`: An object representing the principal.
|
|
21
|
-
* - `userOverrideActive`: A boolean indicating if user override is active.
|
|
22
|
-
*
|
|
23
|
-
* - Methods:
|
|
24
|
-
* - `initialize()`: Initializes the principal state by fetching the principal data from the `PrincipalService`.
|
|
25
|
-
*
|
|
26
|
-
* - Computed Properties:
|
|
27
|
-
* - `allowUserOverride`: A computed boolean indicating if user override is allowed based on the principal's administrator status and the `userOverrideActive` state.
|
|
28
|
-
* - `isOverridingUser`: A computed boolean indicating if the user override is currently active.
|
|
29
|
-
*/
|
|
30
|
-
export function withPrincipalFeatures() {
|
|
31
|
-
return signalStoreFeature(withMethods((store, principalService = inject(PrincipalService)) => ({
|
|
32
|
-
/**
|
|
33
|
-
* Initializes the principal store by fetching the principal data from the principal service.
|
|
34
|
-
* It patches the store with the fetched principal data and a user override active flag from the global configuration.
|
|
35
|
-
*
|
|
36
|
-
* @returns A promise that resolves when the principal data has been fetched and the store has been patched.
|
|
37
|
-
*/
|
|
38
|
-
initialize() {
|
|
39
|
-
return firstValueFrom(principalService.getPrincipal()
|
|
40
|
-
.pipe(map(principal => {
|
|
41
|
-
const { userOverrideActive = false } = globalConfig;
|
|
42
|
-
patchState(store, { principal, userOverrideActive });
|
|
43
|
-
})));
|
|
44
|
-
}
|
|
45
|
-
})));
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbmNpcGFsLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXRvbWljLWFuZ3VsYXIvc3JjL2xpYi9zdG9yZXMvcHJpbmNpcGFsLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQWEsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFPckUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FDdkMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQ3RCLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFFekIsU0FBUyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQW9CLENBQUMsRUFDekUsWUFBWSxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuRCxpQkFBaUIsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsZUFBZSxJQUFJLGtCQUFrQixFQUFFLEtBQUssS0FBSyxDQUFDO0lBQ2hHLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLElBQUksQ0FBQztDQUNoRSxDQUFDLENBQUMsRUFFSCxxQkFBcUIsRUFBRSxDQUN4QixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sVUFBVSxxQkFBcUI7SUFDbkMsT0FBTyxrQkFBa0IsQ0FDdkIsV0FBVyxDQUFDLENBQUMsS0FBSyxFQUFFLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25FOzs7OztXQUtHO1FBQ0gsVUFBVTtZQUNSLE9BQU8sY0FBYyxDQUNuQixnQkFBZ0IsQ0FBQyxZQUFZLEVBQUU7aUJBQzVCLElBQUksQ0FDSCxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ2QsTUFBTSxFQUFFLGtCQUFrQixHQUFHLEtBQUssRUFBRSxHQUFHLFlBQVksQ0FBQztnQkFDcEQsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUE7WUFDdEQsQ0FBQyxDQUFDLENBQ0gsQ0FDSixDQUFDO1FBQ0osQ0FBQztLQUNGLENBQUMsQ0FBQyxDQUNKLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2l0aERldnRvb2xzIH0gZnJvbSBcIkBhbmd1bGFyLWFyY2hpdGVjdHMvbmdyeC10b29sa2l0XCI7XHJcbmltcG9ydCB7IGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBwYXRjaFN0YXRlLCBzaWduYWxTdG9yZSwgc2lnbmFsU3RvcmVGZWF0dXJlLCB3aXRoQ29tcHV0ZWQsIHdpdGhNZXRob2RzLCB3aXRoU3RhdGUgfSBmcm9tIFwiQG5ncngvc2lnbmFsc1wiO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgbWFwIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmltcG9ydCB7IFByaW5jaXBhbCwgZ2xvYmFsQ29uZmlnIH0gZnJvbSBcIkBzaW5lcXVhL2F0b21pY1wiO1xyXG5cclxuaW1wb3J0IHsgUHJpbmNpcGFsU2VydmljZSB9IGZyb20gXCIuLi93ZWItc2VydmljZXMvcHJpbmNpcGFsLnNlcnZpY2VcIjtcclxuXHJcbmV4cG9ydCB0eXBlIFByaW5jaXBhbFN0YXRlID0ge1xyXG4gIHByaW5jaXBhbDogUHJpbmNpcGFsO1xyXG4gIHVzZXJPdmVycmlkZUFjdGl2ZTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFByaW5jaXBhbFN0b3JlID0gc2lnbmFsU3RvcmUoXHJcbiAgeyBwcm92aWRlZEluOiAncm9vdCcgfSxcclxuICB3aXRoRGV2dG9vbHMoJ1ByaW5jaXBhbCcpLFxyXG5cclxuICB3aXRoU3RhdGUoeyBwcmluY2lwYWw6IHt9LCB1c2VyT3ZlcnJpZGVBY3RpdmU6IGZhbHNlIH0gYXMgUHJpbmNpcGFsU3RhdGUpLFxyXG4gIHdpdGhDb21wdXRlZCgoeyBwcmluY2lwYWwsIHVzZXJPdmVycmlkZUFjdGl2ZSB9KSA9PiAoe1xyXG4gICAgYWxsb3dVc2VyT3ZlcnJpZGU6IGNvbXB1dGVkKCgpID0+IHByaW5jaXBhbCgpLmlzQWRtaW5pc3RyYXRvciAmJiB1c2VyT3ZlcnJpZGVBY3RpdmUoKSA9PT0gZmFsc2UpLFxyXG4gICAgaXNPdmVycmlkaW5nVXNlcjogY29tcHV0ZWQoKCkgPT4gdXNlck92ZXJyaWRlQWN0aXZlKCkgPT09IHRydWUpXHJcbiAgfSkpLFxyXG5cclxuICB3aXRoUHJpbmNpcGFsRmVhdHVyZXMoKSxcclxuKTtcclxuXHJcbi8qKlxyXG4gKiBFbmhhbmNlcyB0aGUgc3RvcmUgd2l0aCBwcmluY2lwYWwtcmVsYXRlZCBmZWF0dXJlcy5cclxuICpcclxuICogVGhpcyBmdW5jdGlvbiBpbnRlZ3JhdGVzIHN0YXRlLCBtZXRob2RzLCBhbmQgY29tcHV0ZWQgcHJvcGVydGllcyByZWxhdGVkIHRvIHRoZSBwcmluY2lwYWwuXHJcbiAqXHJcbiAqIEByZXR1cm5zIEEgZmVhdHVyZSB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIHNpZ25hbCBzdG9yZS5cclxuICpcclxuICogQGZlYXR1cmVcclxuICogLSBTdGF0ZTpcclxuICogICAtIGBwcmluY2lwYWxgOiBBbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBwcmluY2lwYWwuXHJcbiAqICAgLSBgdXNlck92ZXJyaWRlQWN0aXZlYDogQSBib29sZWFuIGluZGljYXRpbmcgaWYgdXNlciBvdmVycmlkZSBpcyBhY3RpdmUuXHJcbiAqXHJcbiAqIC0gTWV0aG9kczpcclxuICogICAtIGBpbml0aWFsaXplKClgOiBJbml0aWFsaXplcyB0aGUgcHJpbmNpcGFsIHN0YXRlIGJ5IGZldGNoaW5nIHRoZSBwcmluY2lwYWwgZGF0YSBmcm9tIHRoZSBgUHJpbmNpcGFsU2VydmljZWAuXHJcbiAqXHJcbiAqIC0gQ29tcHV0ZWQgUHJvcGVydGllczpcclxuICogICAtIGBhbGxvd1VzZXJPdmVycmlkZWA6IEEgY29tcHV0ZWQgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHVzZXIgb3ZlcnJpZGUgaXMgYWxsb3dlZCBiYXNlZCBvbiB0aGUgcHJpbmNpcGFsJ3MgYWRtaW5pc3RyYXRvciBzdGF0dXMgYW5kIHRoZSBgdXNlck92ZXJyaWRlQWN0aXZlYCBzdGF0ZS5cclxuICogICAtIGBpc092ZXJyaWRpbmdVc2VyYDogQSBjb21wdXRlZCBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIHVzZXIgb3ZlcnJpZGUgaXMgY3VycmVudGx5IGFjdGl2ZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB3aXRoUHJpbmNpcGFsRmVhdHVyZXMoKSB7XHJcbiAgcmV0dXJuIHNpZ25hbFN0b3JlRmVhdHVyZShcclxuICAgIHdpdGhNZXRob2RzKChzdG9yZSwgcHJpbmNpcGFsU2VydmljZSA9IGluamVjdChQcmluY2lwYWxTZXJ2aWNlKSkgPT4gKHtcclxuICAgICAgLyoqXHJcbiAgICAgICAqIEluaXRpYWxpemVzIHRoZSBwcmluY2lwYWwgc3RvcmUgYnkgZmV0Y2hpbmcgdGhlIHByaW5jaXBhbCBkYXRhIGZyb20gdGhlIHByaW5jaXBhbCBzZXJ2aWNlLlxyXG4gICAgICAgKiBJdCBwYXRjaGVzIHRoZSBzdG9yZSB3aXRoIHRoZSBmZXRjaGVkIHByaW5jaXBhbCBkYXRhIGFuZCBhIHVzZXIgb3ZlcnJpZGUgYWN0aXZlIGZsYWcgZnJvbSB0aGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24uXHJcbiAgICAgICAqXHJcbiAgICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHByaW5jaXBhbCBkYXRhIGhhcyBiZWVuIGZldGNoZWQgYW5kIHRoZSBzdG9yZSBoYXMgYmVlbiBwYXRjaGVkLlxyXG4gICAgICAgKi9cclxuICAgICAgaW5pdGlhbGl6ZSgpIHtcclxuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXHJcbiAgICAgICAgICBwcmluY2lwYWxTZXJ2aWNlLmdldFByaW5jaXBhbCgpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgIG1hcChwcmluY2lwYWwgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyB1c2VyT3ZlcnJpZGVBY3RpdmUgPSBmYWxzZSB9ID0gZ2xvYmFsQ29uZmlnO1xyXG4gICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBwcmluY2lwYWwsIHVzZXJPdmVycmlkZUFjdGl2ZSB9KVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KSksXHJcbiAgKTtcclxufSJdfQ==
|