monkey-front-core 0.0.469 → 0.0.471

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.
@@ -1,3 +1,4 @@
1
+ export * from './monkeyecx-commons-resolve-base.service';
1
2
  export * from './monkeyecx-commons-resolve.service';
2
3
  export * from './monkeyecx-commons.service';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc2VydmljZXMvY29tbW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vbmtleWVjeC1jb21tb25zLXJlc29sdmUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9ua2V5ZWN4LWNvbW1vbnMuc2VydmljZSc7XHJcbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc2VydmljZXMvY29tbW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9ua2V5ZWN4LWNvbW1vbnMtcmVzb2x2ZS1iYXNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb25rZXllY3gtY29tbW9ucy1yZXNvbHZlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb25rZXllY3gtY29tbW9ucy5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,109 @@
1
+ import { inject } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { Store } from '@ngrx/store';
4
+ import { TranslateService } from '@ngx-translate/core';
5
+ import { MonkeyEcxCommonsService } from '.';
6
+ import { MonkeyEcxDiscoveryParamsService, MonkeyEcxPaginationService } from '../..';
7
+ import { MonkeyEcxUtils } from '../../utils';
8
+ export class MonkeyEcxCommonsResolveBaseService extends MonkeyEcxCommonsService {
9
+ constructor(monkeyecxService, tokenStorage, config) {
10
+ super(monkeyecxService, tokenStorage);
11
+ this.route = null;
12
+ this.currentRoute = null;
13
+ this.paginationService = inject(MonkeyEcxPaginationService);
14
+ this.translateService = inject(TranslateService);
15
+ this.router = inject(Router);
16
+ this.store = inject(Store);
17
+ this.monkeyDiscovery = inject(MonkeyEcxDiscoveryParamsService);
18
+ const { actions } = config;
19
+ this.action = actions;
20
+ }
21
+ async getData() {
22
+ try {
23
+ const { store, route, action, tokenStorage } = this;
24
+ const { companyId, governmentId } = await tokenStorage?.getToken();
25
+ if (!route)
26
+ return;
27
+ const url = MonkeyEcxUtils.replaceVariables(route, { companyId, governmentId });
28
+ store.dispatch(action.load({ url }));
29
+ }
30
+ catch (e) {
31
+ throw new Error(`MECX Core - Method getData -> ${e}`);
32
+ }
33
+ }
34
+ async loadPage(actionType) {
35
+ try {
36
+ const { store, action } = this;
37
+ store.dispatch(action.loadPagination({
38
+ pagination: {
39
+ action: actionType
40
+ }
41
+ }));
42
+ }
43
+ catch (e) {
44
+ throw new Error(`MECX Core - Method loadPage -> ${e}`);
45
+ }
46
+ }
47
+ /**
48
+ * @description Inicializar a class genérica
49
+ * @param (args: MonkeyEcxInitialResolverConfig)
50
+ * => route é obrigátorio pois ele quem inicializa a store.
51
+ * A searchClass só se faz necessaria quando for usar filtros
52
+ */
53
+ init(args) {
54
+ try {
55
+ const { searchClass, route } = args;
56
+ this.route = route;
57
+ if (searchClass) {
58
+ // eslint-disable-next-line new-cap
59
+ const searchInstance = new searchClass(this.__search);
60
+ this.route = `${route}${searchInstance.buildParams()}`;
61
+ this.__onSearchChanged$.next(searchInstance);
62
+ }
63
+ this.getData();
64
+ }
65
+ catch (e) {
66
+ throw new Error(`${e?.message}`);
67
+ }
68
+ }
69
+ resolve(route, state, otherArgs) {
70
+ this.__search = route?.queryParams;
71
+ const [currentRoute] = state?.url.split('?') || [null];
72
+ this.currentRoute = currentRoute;
73
+ super.resolve(route, state, otherArgs);
74
+ }
75
+ /**
76
+ * @description Atualizar os filtros da tela
77
+ * @param (search: T, route?: string)
78
+ * => route é opcional, passar ele apenas se a rota for diferente do padrão
79
+ */
80
+ setSearch(search, route) {
81
+ try {
82
+ const { currentRoute, router } = this;
83
+ this.setSearchByUrl(router, route || `${currentRoute}`, search);
84
+ }
85
+ catch (e) {
86
+ throw new Error(`MECX Core - Method setSearch -> ${e}`);
87
+ }
88
+ }
89
+ /**
90
+ * @description Navegação para details.
91
+ * Por padrão sera redirecionado para '${currentRoute}/details'
92
+ * @param (detailsData: T, route?: string)
93
+ * => route é opcional, passar ele apenas se a rota for diferente do padrão
94
+ */
95
+ navigateToDetails(detailsData, route) {
96
+ try {
97
+ const { router, currentRoute } = this;
98
+ router.navigate([route || `${currentRoute}/details`], {
99
+ state: {
100
+ detailsData
101
+ }
102
+ });
103
+ }
104
+ catch (e) {
105
+ throw new Error(`MECX Core - Method navigateToDetails -> ${e}`);
106
+ }
107
+ }
108
+ }
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbW1vbnMtcmVzb2x2ZS1iYXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc2VydmljZXMvY29tbW9ucy9tb25rZXllY3gtY29tbW9ucy1yZXNvbHZlLWJhc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBMEIsTUFBTSxFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBQ3RGLE9BQU8sRUFBVSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sR0FBRyxDQUFDO0FBQzVDLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsMEJBQTBCLEVBRTNCLE1BQU0sT0FBTyxDQUFDO0FBTWYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc3QyxNQUFNLE9BQWdCLGtDQUFtQyxTQUFRLHVCQUF1QjtJQWlCdEYsWUFDRSxnQkFBa0MsRUFDbEMsWUFBMEMsRUFDMUMsTUFLQztRQUVELEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsQ0FBQztRQXhCOUIsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFFNUIsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBRW5DLHNCQUFpQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRXZELHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTVDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFeEIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0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QUFDLE1BQU0sRUFBRSxLQUFLLElBQUksR0FBRyxZQUFZLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNqRTtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGlCQUFpQixDQUFJLFdBQWMsRUFBRSxLQUFjO1FBQ3hELElBQUk7WUFDRixNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQztZQUV0QyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsWUFBWSxVQUFVLENBQUMsRUFBRTtnQkFDcEQsS0FBSyxFQUFFO29CQUNMLFdBQVc7aUJBQ1o7YUFDRixDQUFDLENBQUM7U0FDSjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNqRTtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFjdGlvbiwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNb25rZXlFY3hDb21tb25zU2VydmljZSB9IGZyb20gJy4nO1xuaW1wb3J0IHtcbiAgTW9ua2V5RWN4RGlzY292ZXJ5UGFyYW1zU2VydmljZSxcbiAgTW9ua2V5RWN4UGFnaW5hdGlvblNlcnZpY2UsXG4gIE1vbmtleUVjeFRva2VuU3RvcmFnZVNlcnZpY2Vcbn0gZnJvbSAnLi4vLi4nO1xuaW1wb3J0IHtcbiAgTW9ua2V5RWN4Q29tbW9uc0NvbmZpZyxcbiAgTW9ua2V5RWN4Q29tbW9uc1NlYXJjaCxcbiAgTW9ua2V5RWN4SW5pdGlhbFJlc29sdmVyQ29uZmlnXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTW9ua2V5RWN4VXRpbHMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBNb25rZXlFY3hTZXJ2aWNlIH0gZnJvbSAnLi4vbW9ua2V5ZWN4LXNlcnZpY2Uuc2VydmljZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNb25rZXlFY3hDb21tb25zUmVzb2x2ZUJhc2VTZXJ2aWNlIGV4dGVuZHMgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2Uge1xuICBwcml2YXRlIGFjdGlvbjogYW55O1xuXG4gIHByb3RlY3RlZCByb3V0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRSb3V0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIHBhZ2luYXRpb25TZXJ2aWNlID0gaW5qZWN0KE1vbmtleUVjeFBhZ2luYXRpb25TZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgcHJvdGVjdGVkIHN0b3JlID0gaW5qZWN0KFN0b3JlKTtcblxuICBwcm90ZWN0ZWQgbW9ua2V5RGlzY292ZXJ5ID0gaW5qZWN0KE1vbmtleUVjeERpc2NvdmVyeVBhcmFtc1NlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1vbmtleWVjeFNlcnZpY2U6IE1vbmtleUVjeFNlcnZpY2UsXG4gICAgdG9rZW5TdG9yYWdlOiBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlLFxuICAgIGNvbmZpZzoge1xuICAgICAgYWN0aW9uczoge1xuICAgICAgICBsb2FkOiBBY3Rpb247XG4gICAgICAgIGxvYWRQYWdpbmF0aW9uPzogQWN0aW9uO1xuICAgICAgfVxuICAgIH1cbiAgKSB7XG4gICAgc3VwZXIobW9ua2V5ZWN4U2VydmljZSwgdG9rZW5TdG9yYWdlKTtcbiAgICBjb25zdCB7IGFjdGlvbnMgfSA9IGNvbmZpZztcbiAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbnM7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0RGF0YSgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBzdG9yZSwgcm91dGUsIGFjdGlvbiwgdG9rZW5TdG9yYWdlIH0gPSB0aGlzO1xuICAgICAgY29uc3QgeyBjb21wYW55SWQsIGdvdmVybm1lbnRJZCB9ID0gYXdhaXQgdG9rZW5TdG9yYWdlPy5nZXRUb2tlbigpO1xuXG4gICAgICBpZiAoIXJvdXRlKSByZXR1cm47XG5cbiAgICAgIGNvbnN0IHVybCA9IE1vbmtleUVjeFV0aWxzLnJlcGxhY2VWYXJpYWJsZXMocm91dGUsIHsgY29tcGFueUlkLCBnb3Zlcm5tZW50SWQgfSk7XG5cbiAgICAgIHN0b3JlLmRpc3BhdGNoKGFjdGlvbi5sb2FkKHsgdXJsIH0pKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCBnZXREYXRhIC0+ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbG9hZFBhZ2UoYWN0aW9uVHlwZTogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgc3RvcmUsIGFjdGlvbiB9ID0gdGhpcztcbiAgICAgIHN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBhY3Rpb24ubG9hZFBhZ2luYXRpb24oe1xuICAgICAgICAgIHBhZ2luYXRpb246IHtcbiAgICAgICAgICAgIGFjdGlvbjogYWN0aW9uVHlwZVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2QgbG9hZFBhZ2UgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSW5pY2lhbGl6YXIgYSBjbGFzcyBnZW7DqXJpY2FcbiAgICogQHBhcmFtIChhcmdzOiBNb25rZXlFY3hJbml0aWFsUmVzb2x2ZXJDb25maWcpXG4gICAqID0+IHJvdXRlIMOpIG9icmlnw6F0b3JpbyBwb2lzIGVsZSBxdWVtIGluaWNpYWxpemEgYSBzdG9yZS5cbiAgICogQSBzZWFyY2hDbGFzcyBzw7Mgc2UgZmF6IG5lY2Vzc2FyaWEgcXVhbmRvIGZvciB1c2FyIGZpbHRyb3NcbiAgICovXG4gIHByb3RlY3RlZCBpbml0KGFyZ3M6IE1vbmtleUVjeEluaXRpYWxSZXNvbHZlckNvbmZpZykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IHNlYXJjaENsYXNzLCByb3V0ZSB9ID0gYXJncztcblxuICAgICAgdGhpcy5yb3V0ZSA9IHJvdXRlO1xuXG4gICAgICBpZiAoc2VhcmNoQ2xhc3MpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5ldy1jYXBcbiAgICAgICAgY29uc3Qgc2VhcmNoSW5zdGFuY2U6IE1vbmtleUVjeENvbW1vbnNTZWFyY2ggPSBuZXcgc2VhcmNoQ2xhc3ModGhpcy5fX3NlYXJjaCk7XG5cbiAgICAgICAgdGhpcy5yb3V0ZSA9IGAke3JvdXRlfSR7c2VhcmNoSW5zdGFuY2UuYnVpbGRQYXJhbXMoKX1gO1xuXG4gICAgICAgIHRoaXMuX19vblNlYXJjaENoYW5nZWQkLm5leHQoc2VhcmNoSW5zdGFuY2UpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmdldERhdGEoKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtlPy5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIHJlc29sdmUoXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsLFxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90IHwgbnVsbCxcbiAgICBvdGhlckFyZ3M/OiBNb25rZXlFY3hDb21tb25zQ29uZmlnXG4gICkge1xuICAgIHRoaXMuX19zZWFyY2ggPSByb3V0ZT8ucXVlcnlQYXJhbXM7XG5cbiAgICBjb25zdCBbY3VycmVudFJvdXRlXSA9IHN0YXRlPy51cmwuc3BsaXQoJz8nKSB8fCBbbnVsbF07XG5cbiAgICB0aGlzLmN1cnJlbnRSb3V0ZSA9IGN1cnJlbnRSb3V0ZTtcblxuICAgIHN1cGVyLnJlc29sdmUocm91dGUsIHN0YXRlLCBvdGhlckFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBdHVhbGl6YXIgb3MgZmlsdHJvcyBkYSB0ZWxhXG4gICAqIEBwYXJhbSAoc2VhcmNoOiBULCByb3V0ZT86IHN0cmluZylcbiAgICogPT4gcm91dGUgw6kgb3BjaW9uYWwsIHBhc3NhciBlbGUgYXBlbmFzIHNlIGEgcm90YSBmb3IgZGlmZXJlbnRlIGRvIHBhZHLDo29cbiAgICovXG4gIHB1YmxpYyBzZXRTZWFyY2g8VD4oc2VhcmNoOiBULCByb3V0ZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGN1cnJlbnRSb3V0ZSwgcm91dGVyIH0gPSB0aGlzO1xuXG4gICAgICB0aGlzLnNldFNlYXJjaEJ5VXJsKHJvdXRlciwgcm91dGUgfHwgYCR7Y3VycmVudFJvdXRlfWAsIHNlYXJjaCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2Qgc2V0U2VhcmNoIC0+ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE5hdmVnYcOnw6NvIHBhcmEgZGV0YWlscy5cbiAgICogUG9yIHBhZHLDo28gc2VyYSByZWRpcmVjaW9uYWRvIHBhcmEgJyR7Y3VycmVudFJvdXRlfS9kZXRhaWxzJ1xuICAgKiBAcGFyYW0gKGRldGFpbHNEYXRhOiBULCByb3V0ZT86IHN0cmluZylcbiAgICogPT4gcm91dGUgw6kgb3BjaW9uYWwsIHBhc3NhciBlbGUgYXBlbmFzIHNlIGEgcm90YSBmb3IgZGlmZXJlbnRlIGRvIHBhZHLDo29cbiAgICovXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvRGV0YWlsczxUPihkZXRhaWxzRGF0YTogVCwgcm91dGU/OiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyByb3V0ZXIsIGN1cnJlbnRSb3V0ZSB9ID0gdGhpcztcblxuICAgICAgcm91dGVyLm5hdmlnYXRlKFtyb3V0ZSB8fCBgJHtjdXJyZW50Um91dGV9L2RldGFpbHNgXSwge1xuICAgICAgICBzdGF0ZToge1xuICAgICAgICAgIGRldGFpbHNEYXRhXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTUVDWCBDb3JlIC0gTWV0aG9kIG5hdmlnYXRlVG9EZXRhaWxzIC0+ICR7ZX1gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
+ export * from './monkeyecx-store-base.service';
1
2
  export * from './monkeyecx-store.actions';
2
3
  export * from './monkeyecx-store.selector';
3
4
  export * from './monkeyecx-store.service';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc2VydmljZXMvc3RvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vbmtleWVjeC1zdG9yZS5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbW9ua2V5ZWN4LXN0b3JlLnNlbGVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbW9ua2V5ZWN4LXN0b3JlLnNlcnZpY2UnO1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc2VydmljZXMvc3RvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9ua2V5ZWN4LXN0b3JlLWJhc2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21vbmtleWVjeC1zdG9yZS5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbW9ua2V5ZWN4LXN0b3JlLnNlbGVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbW9ua2V5ZWN4LXN0b3JlLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,169 @@
1
+ import { __decorate } from "tslib";
2
+ import { take } from 'rxjs/operators';
3
+ import { MonkeyEcxCoreService } from '../../decorators';
4
+ import { MonkeyEcxLinksModel } from '../../model';
5
+ import { MonkeyEcxCommonsService } from '../commons';
6
+ /**
7
+ * Classe genérica que recebe duas interfaces como tipos genéricos.
8
+ *
9
+ * @typeparam T deve ser a mesma interface utilizada na Entity da Store
10
+ * @typeparam K faz referência ao tipo de configuração.
11
+ *
12
+ * @description interfaces de configuração:
13
+ * ```
14
+ * MonkeyEcxCollectionStore e MonkeyEcxEntityStore
15
+ * ```
16
+ */
17
+ export class MonkeyEcxCommonsStoreBaseService extends MonkeyEcxCommonsService {
18
+ constructor(monkeyecxService, tokenStorage, store, config) {
19
+ super(monkeyecxService, tokenStorage);
20
+ this.store = store;
21
+ const { actions, selectors } = config;
22
+ this.action = actions;
23
+ this.selector = selectors;
24
+ }
25
+ handleResponseData(resp, updateLinks = true) {
26
+ try {
27
+ let data;
28
+ if (resp?._embedded) {
29
+ const { _embedded, _links, page } = resp;
30
+ const key = Object.keys(_embedded)[0];
31
+ data = _embedded[key];
32
+ if (updateLinks) {
33
+ this.updateLinks?.(_links);
34
+ }
35
+ this.updatePage?.(page);
36
+ }
37
+ else
38
+ data = resp;
39
+ this.update?.(data);
40
+ }
41
+ catch (e) {
42
+ throw new Error(`MECX Core - Method handleResponseData -> ${e}`);
43
+ }
44
+ }
45
+ updateControl(data) {
46
+ try {
47
+ this.store.dispatch(this.action.updateControl({
48
+ data
49
+ }));
50
+ }
51
+ catch (e) {
52
+ throw new Error(`MECX Core - Method updateControl -> ${e}`);
53
+ }
54
+ }
55
+ mappingData(args) {
56
+ try {
57
+ const handle = (item) => {
58
+ let id = '';
59
+ const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {
60
+ href: ''
61
+ };
62
+ if (href) {
63
+ id = href.split('/').pop() || '';
64
+ }
65
+ return {
66
+ ...item,
67
+ id
68
+ };
69
+ };
70
+ if (args instanceof Array) {
71
+ return args.map((item) => {
72
+ return handle(item);
73
+ });
74
+ }
75
+ return handle(args);
76
+ }
77
+ catch (e) {
78
+ throw new Error(`MECX Core - Method mappingData -> ${e}`);
79
+ }
80
+ }
81
+ update(args) {
82
+ try {
83
+ let typeAction = 'updateOne';
84
+ if (args instanceof Array) {
85
+ typeAction = 'updateAll';
86
+ }
87
+ this.store.dispatch(this.action[typeAction]({
88
+ data: this.mappingData(args)
89
+ }));
90
+ }
91
+ catch (e) {
92
+ throw new Error(`MECX Core - Method update -> ${e}`);
93
+ }
94
+ }
95
+ updatePage(data) {
96
+ try {
97
+ this.store.dispatch(this.action.updatePage({
98
+ data
99
+ }));
100
+ }
101
+ catch (e) {
102
+ throw new Error(`MECX Core - Method updatePage -> ${e}`);
103
+ }
104
+ }
105
+ updateLinks(data) {
106
+ try {
107
+ this.store.dispatch(this.action.updateLinks({
108
+ data
109
+ }));
110
+ }
111
+ catch (e) {
112
+ throw new Error(`MECX Core - Method updateLinks -> ${e}`);
113
+ }
114
+ }
115
+ async loadData(url, updateLinks = true) {
116
+ this.updateControl({ isLoading: true });
117
+ try {
118
+ const data = await this.monkeyecxService?.get(url).toPromise();
119
+ this.handleResponseData(data, updateLinks);
120
+ }
121
+ catch (e) {
122
+ throw new Error(`${e?.message}`);
123
+ }
124
+ this.updateControl({ isLoading: false });
125
+ }
126
+ async loadPageData(pagination) {
127
+ const { store, selector } = this;
128
+ const data = await store
129
+ .select(selector.selectLinks())
130
+ .pipe(take(1))
131
+ .toPromise();
132
+ const { action } = pagination;
133
+ const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {
134
+ href: ''
135
+ };
136
+ if (href) {
137
+ this.loadData(href);
138
+ }
139
+ }
140
+ /**
141
+ * @description Neste método precisamos incluir a lógica para conferir se precisa limpar a
142
+ * entidade ou não
143
+ * E depois precisa invocar o método loadData
144
+ * @param (url) ou de acordo com a action criada
145
+ * @example
146
+ * ```
147
+ * const hasDifference = .....
148
+ * if(hasDifference) {
149
+ * store.dispatch(clear)
150
+ * }
151
+ *
152
+ * this.loadData(...)
153
+ * ```
154
+ */
155
+ load(args) {
156
+ throw new Error('MECX Core - Method load not implemented.');
157
+ }
158
+ loadPage(args) {
159
+ throw new Error('MECX Core - Method loadPage not implemented.');
160
+ }
161
+ }
162
+ __decorate([
163
+ MonkeyEcxCoreService({
164
+ requestInProgress: {
165
+ showProgress: true
166
+ }
167
+ })
168
+ ], MonkeyEcxCommonsStoreBaseService.prototype, "loadData", null);
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXN0b3JlLWJhc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9zdG9yZS9tb25rZXllY3gtc3RvcmUtYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFReEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUlyRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxPQUFnQixnQ0FHcEIsU0FBUSx1QkFBdUI7SUFLL0IsWUFDRSxnQkFBa0MsRUFDbEMsWUFBMEMsRUFDaEMsS0FBWSxFQUN0QixNQUFTO1FBRVQsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBSDVCLFVBQUssR0FBTCxLQUFLLENBQU87UUFJdEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFFdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFDNUIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVMsRUFBRSxXQUFXLEdBQUcsSUFBSTtRQUN0RCxJQUFJO1lBQ0YsSUFBSSxJQUFPLENBQUM7WUFFWixJQUFJLElBQUksRUFBRSxTQUFTLEVBQUU7Z0JBQ25CLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztnQkFDekMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUks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QUFDO1FBRWYsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUM5QixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUM5RSxJQUFJLEVBQUUsRUFBRTtTQUNULENBQUM7UUFFRixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSSxJQUFJLENBQUUsSUFBUztRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLFFBQVEsQ0FBRSxJQUFTO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0NBQ0Y7QUFwREM7SUFMQyxvQkFBb0IsQ0FBQztRQUNwQixpQkFBaUIsRUFBRTtZQUNqQixZQUFZLEVBQUUsSUFBSTtTQUNuQjtLQUNGLENBQUM7Z0VBWUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNb25rZXlFY3hDb3JlU2VydmljZSB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMnO1xuaW1wb3J0IHtcbiAgTW9ua2V5RWN4Q29uZmlnU3RvcmUsXG4gIE1vbmtleUVjeENvbnRyb2xTdG9yZSxcbiAgTW9ua2V5RWN4TGlua3MsXG4gIE1vbmtleUVjeFBhZ2UsXG4gIE1vbmtleUVjeFBhZ2luYXRpb25cbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNb25rZXlFY3hMaW5rc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWwnO1xuaW1wb3J0IHsgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2UgfSBmcm9tICcuLi9jb21tb25zJztcbmltcG9ydCB7IE1vbmtleUVjeFNlcnZpY2UgfSBmcm9tICcuLi9tb25rZXllY3gtc2VydmljZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1vbmtleUVjeFRva2VuU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9zdG9yYWdlJztcblxuLyoqXG4gKiBDbGFzc2UgZ2Vuw6lyaWNhIHF1ZSByZWNlYmUgZHVhcyBpbnRlcmZhY2VzIGNvbW8gdGlwb3MgZ2Vuw6lyaWNvcy5cbiAqXG4gKiBAdHlwZXBhcmFtIFQgZGV2ZSBzZXIgYSBtZXNtYSBpbnRlcmZhY2UgdXRpbGl6YWRhIG5hIEVudGl0eSBkYSBTdG9yZVxuICogQHR5cGVwYXJhbSBLIGZheiByZWZlcsOqbmNpYSBhbyB0aXBvIGRlIGNvbmZpZ3VyYcOnw6NvLlxuICpcbiAqIEBkZXNjcmlwdGlvbiBpbnRlcmZhY2VzIGRlIGNvbmZpZ3VyYcOnw6NvOlxuICogYGBgXG4gKiBNb25rZXlFY3hDb2xsZWN0aW9uU3RvcmUgZSBNb25rZXlFY3hFbnRpdHlTdG9yZVxuICogYGBgXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNb25rZXlFY3hDb21tb25zU3RvcmVCYXNlU2VydmljZTxcbiAgVCxcbiAgSyBleHRlbmRzIE1vbmtleUVjeENvbmZpZ1N0b3JlXG4+IGV4dGVuZHMgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2Uge1xuICBwcml2YXRlIGFjdGlvbjogYW55O1xuXG4gIHByaXZhdGUgc2VsZWN0b3I6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBtb25rZXllY3hTZXJ2aWNlOiBNb25rZXlFY3hTZXJ2aWNlLFxuICAgIHRva2VuU3RvcmFnZTogTW9ua2V5RWN4VG9rZW5TdG9yYWdlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlLFxuICAgIGNvbmZpZzogS1xuICApIHtcbiAgICBzdXBlcihtb25rZXllY3hTZXJ2aWNlLCB0b2tlblN0b3JhZ2UpO1xuICAgIGNvbnN0IHsgYWN0aW9ucywgc2VsZWN0b3JzIH0gPSBjb25maWc7XG5cbiAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbnM7XG4gICAgdGhpcy5zZWxlY3RvciA9IHNlbGVjdG9ycztcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUmVzcG9uc2VEYXRhKHJlc3A6IGFueSwgdXBkYXRlTGlua3MgPSB0cnVlKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBkYXRhOiBUO1xuXG4gICAgICBpZiAocmVzcD8uX2VtYmVkZGVkKSB7XG4gICAgICAgIGNvbnN0IHsgX2VtYmVkZGVkLCBfbGlua3MsIHBhZ2UgfSA9IHJlc3A7XG4gICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKF9lbWJlZGRlZClbMF07XG5cbiAgICAgICAgZGF0YSA9IF9lbWJlZGRlZFtrZXldO1xuXG4gICAgICAgIGlmICh1cGRhdGVMaW5rcykge1xuICAgICAgICAgIHRoaXMudXBkYXRlTGlua3M/LihfbGlua3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVQYWdlPy4ocGFnZSk7XG4gICAgICB9IGVsc2UgZGF0YSA9IHJlc3A7XG5cbiAgICAgIHRoaXMudXBkYXRlPy4oZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2QgaGFuZGxlUmVzcG9uc2VEYXRhIC0+ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlQ29udHJvbChkYXRhOiBNb25rZXlFY3hDb250cm9sU3RvcmUpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgdGhpcy5hY3Rpb24udXBkYXRlQ29udHJvbCh7XG4gICAgICAgICAgZGF0YVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCB1cGRhdGVDb250cm9sIC0+ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFwcGluZ0RhdGEoYXJnczogVCB8IFRbXSk6IFQgfCBUW10ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBoYW5kbGUgPSAoaXRlbTogVCkgPT4ge1xuICAgICAgICBsZXQgaWQgPSAnJztcbiAgICAgICAgY29uc3QgeyBocmVmIH0gPSBuZXcgTW9ua2V5RWN4TGlua3NNb2RlbChpdGVtKT8uZ2V0QWN0aW9uKCdzZWxmJykgfHwge1xuICAgICAgICAgIGhyZWY6ICcnXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGhyZWYpIHtcbiAgICAgICAgICBpZCA9IGhyZWYuc3BsaXQoJy8nKS5wb3AoKSB8fCAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICBpZFxuICAgICAgICB9O1xuICAgICAgfTtcblxuICAgICAgaWYgKGFyZ3MgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICByZXR1cm4gYXJncy5tYXAoKGl0ZW06IFQpID0+IHtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlKGl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGhhbmRsZShhcmdzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCBtYXBwaW5nRGF0YSAtPiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZT8oYXJnczogVCB8IFRbXSkge1xuICAgIHRyeSB7XG4gICAgICBsZXQgdHlwZUFjdGlvbiA9ICd1cGRhdGVPbmUnO1xuXG4gICAgICBpZiAoYXJncyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIHR5cGVBY3Rpb24gPSAndXBkYXRlQWxsJztcbiAgICAgIH1cblxuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgdGhpcy5hY3Rpb25bdHlwZUFjdGlvbl0oe1xuICAgICAgICAgIGRhdGE6IHRoaXMubWFwcGluZ0RhdGEoYXJncylcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2QgdXBkYXRlIC0+ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlUGFnZT8oZGF0YTogTW9ua2V5RWN4UGFnZSkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICB0aGlzLmFjdGlvbi51cGRhdGVQYWdlKHtcbiAgICAgICAgICBkYXRhXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTUVDWCBDb3JlIC0gTWV0aG9kIHVwZGF0ZVBhZ2UgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVMaW5rcz8oZGF0YTogTW9ua2V5RWN4TGlua3MpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgdGhpcy5hY3Rpb24udXBkYXRlTGlua3Moe1xuICAgICAgICAgIGRhdGFcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2QgdXBkYXRlTGlua3MgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIEBNb25rZXlFY3hDb3JlU2VydmljZSh7XG4gICAgcmVxdWVzdEluUHJvZ3Jlc3M6IHtcbiAgICAgIHNob3dQcm9ncmVzczogdHJ1ZVxuICAgIH1cbiAgfSlcbiAgcHJvdGVjdGVkIGFzeW5jIGxvYWREYXRhKHVybDogc3RyaW5nLCB1cGRhdGVMaW5rcyA9IHRydWUpIHtcbiAgICB0aGlzLnVwZGF0ZUNvbnRyb2woeyBpc0xvYWRpbmc6IHRydWUgfSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubW9ua2V5ZWN4U2VydmljZT8uZ2V0PGFueT4odXJsKS50b1Byb21pc2UoKTtcbiAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2VEYXRhKGRhdGEsIHVwZGF0ZUxpbmtzKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtlPy5tZXNzYWdlfWApO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlQ29udHJvbCh7IGlzTG9hZGluZzogZmFsc2UgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbG9hZFBhZ2VEYXRhKHBhZ2luYXRpb246IE1vbmtleUVjeFBhZ2luYXRpb24pIHtcbiAgICBjb25zdCB7IHN0b3JlLCBzZWxlY3RvciB9ID0gdGhpcztcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgc3RvcmVcbiAgICAgIC5zZWxlY3Qoc2VsZWN0b3Iuc2VsZWN0TGlua3MoKSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG5cbiAgICBjb25zdCB7IGFjdGlvbiB9ID0gcGFnaW5hdGlvbjtcbiAgICBjb25zdCB7IGhyZWYgfSA9IG5ldyBNb25rZXlFY3hMaW5rc01vZGVsKHsgX2xpbmtzOiBkYXRhIH0pLmdldEFjdGlvbihhY3Rpb24pIHx8IHtcbiAgICAgIGhyZWY6ICcnXG4gICAgfTtcblxuICAgIGlmIChocmVmKSB7XG4gICAgICB0aGlzLmxvYWREYXRhKGhyZWYpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTmVzdGUgbcOpdG9kbyBwcmVjaXNhbW9zIGluY2x1aXIgYSBsw7NnaWNhIHBhcmEgY29uZmVyaXIgc2UgcHJlY2lzYSBsaW1wYXIgYVxuICAgKiBlbnRpZGFkZSBvdSBuw6NvXG4gICAqIEUgZGVwb2lzIHByZWNpc2EgaW52b2NhciBvIG3DqXRvZG8gbG9hZERhdGFcbiAgICogQHBhcmFtICh1cmwpIG91IGRlIGFjb3JkbyBjb20gYSBhY3Rpb24gY3JpYWRhXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYFxuICAgKiBjb25zdCBoYXNEaWZmZXJlbmNlID0gLi4uLi5cbiAgICogaWYoaGFzRGlmZmVyZW5jZSkge1xuICAgKiAgICBzdG9yZS5kaXNwYXRjaChjbGVhcilcbiAgICogfVxuICAgKlxuICAgKiB0aGlzLmxvYWREYXRhKC4uLilcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgbG9hZD8oYXJnczogYW55KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNRUNYIENvcmUgLSBNZXRob2QgbG9hZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBwdWJsaWMgbG9hZFBhZ2U/KGFyZ3M6IGFueSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTUVDWCBDb3JlIC0gTWV0aG9kIGxvYWRQYWdlIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuIl19
@@ -29,12 +29,18 @@ export class MonkeyEcxCommonsSelectors {
29
29
  };
30
30
  const selectLinks = (props) => {
31
31
  return createSelector(selectState, (state) => {
32
- return state.links?.[props.identifier];
32
+ if (props?.identifier) {
33
+ return state.links?.[props.identifier];
34
+ }
35
+ return state.links;
33
36
  });
34
37
  };
35
38
  const selectPage = (props) => {
36
39
  return createSelector(selectState, (state) => {
37
- return state.page?.[props.identifier];
40
+ if (props?.identifier) {
41
+ return state.page?.[props.identifier];
42
+ }
43
+ return state.page;
38
44
  });
39
45
  };
40
46
  const linksHasDifference = (props) => {
@@ -72,4 +78,4 @@ export class MonkeyEcxCommonsSelectors {
72
78
  };
73
79
  }
74
80
  }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXN0b3JlLnNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3N0b3JlL21vbmtleWVjeC1zdG9yZS5zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFXeEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYSxFQUFFLEVBQUU7SUFDakQsTUFBTSxHQUFHLEdBQVEsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixNQUFNLE9BQWdCLHlCQUF5QjtJQUM3QyxNQUFNLENBQUMsWUFBWSxDQUF5QixPQUFpQjtRQUMzRCxNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUQsTUFBTSxTQUFTLEdBQVEsY0FBYyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEUsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQTZCLEVBQUUsRUFBRTtZQUMzRCxPQUFPLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFhLEVBQU8sRUFBRTtnQkFDdEQsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBSSxFQUFFLEVBQUU7b0JBQzlCLE9BQU8sQ0FBQyxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUMsVUFBVSxDQUFDO2dCQUMzQyxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQTZCLEVBQUUsRUFBRTtZQUM5RCxPQUFPLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFhLEVBQVksRUFBRTtnQkFDM0QsT0FBTyxDQUNMLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFJLEVBQUUsRUFBRTtvQkFDckIsT0FBTyxDQUFDLENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQyxVQUFVLENBQUM7Z0JBQzNDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FDWCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUU7WUFDekIsT0FBTyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBVSxFQUFPLEVBQUU7Z0JBQ3JELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUN2QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBNkIsRUFBRSxFQUFFO1lBQ3BELE9BQU8sY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQVUsRUFBTyxFQUFFO2dCQUNyRCxPQUFPLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQTZCLEVBQUUsRUFBRTtZQUNuRCxPQUFPLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFVLEVBQU8sRUFBRTtnQkFDckQsT0FBTyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQTBDLEVBQUUsRUFBRTtZQUN4RSxPQUFPLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFVLEVBQU8sRUFBRTtnQkFDckQsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDN0IsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ2xDLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztnQkFDMUIsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUVyQixJQUFJO29CQUNGLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDekUsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDckMsYUFBYTt3QkFDWCxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxLQUFLLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTTs0QkFDL0QsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztvQkFDOUQsUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztpQkFDbkU7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsWUFBWTtpQkFDYjtnQkFFRCxPQUFPO29CQUNMLGFBQWE7b0JBQ2IsUUFBUTtpQkFDVCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixPQUFPO1lBQ0wsV0FBVztZQUNYLFNBQVM7WUFDVCxhQUFhO1lBQ2IsV0FBVztZQUNYLGtCQUFrQjtZQUNsQixxQkFBcUI7WUFDckIsVUFBVTtZQUNWLGtCQUFrQjtTQUNuQixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRmVhdHVyZVNlbGVjdG9yLCBjcmVhdGVTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgcGFyc2VVcmwgfSBmcm9tICdxdWVyeS1zdHJpbmcnO1xyXG5cclxuaW50ZXJmYWNlIElkZW50aWZpYWJsZSB7XHJcbiAgaWRlbnRpZmllcj86IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIElSZWR1Y2VyIHtcclxuICBmZWF0dXJlS2V5OiBzdHJpbmc7XHJcbiAgc2VsZWN0QWxsOiBhbnk7XHJcbn1cclxuXHJcbmNvbnN0IHVybEhhc0ZpZWxkID0gKHVybDogc3RyaW5nLCBmaWVsZDogc3RyaW5nKSA9PiB7XHJcbiAgY29uc3Qgb2JqOiBhbnkgPSBwYXJzZVVybCh1cmwpO1xyXG4gIHJldHVybiAhIW9iaj8ucXVlcnk/LltmaWVsZF07XHJcbn07XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9ua2V5RWN4Q29tbW9uc1NlbGVjdG9ycyB7XHJcbiAgc3RhdGljIGdldFNlbGVjdG9yczxUIGV4dGVuZHMgSWRlbnRpZmlhYmxlPihyZWR1Y2VyOiBJUmVkdWNlcikge1xyXG4gICAgY29uc3Qgc2VsZWN0U3RhdGUgPSBjcmVhdGVGZWF0dXJlU2VsZWN0b3IocmVkdWNlci5mZWF0dXJlS2V5KTtcclxuXHJcbiAgICBjb25zdCBzZWxlY3RBbGw6IGFueSA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN0YXRlLCByZWR1Y2VyLnNlbGVjdEFsbCk7XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0QnlJZGVudGlmaWVyID0gKHByb3BzOiB7IGlkZW50aWZpZXI6IHN0cmluZyB9KSA9PiB7XHJcbiAgICAgIHJldHVybiBjcmVhdGVTZWxlY3RvcihzZWxlY3RBbGwsIChlbnRpdGllczogVFtdKTogVFtdID0+IHtcclxuICAgICAgICByZXR1cm4gZW50aXRpZXMuZmlsdGVyKChfOiBUKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gXy5pZGVudGlmaWVyID09PSBwcm9wcy5pZGVudGlmaWVyO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0T25lQnlJZGVudGlmaWVyID0gKHByb3BzOiB7IGlkZW50aWZpZXI6IHN0cmluZyB9KSA9PiB7XHJcbiAgICAgIHJldHVybiBjcmVhdGVTZWxlY3RvcihzZWxlY3RBbGwsIChlbnRpdGllczogVFtdKTogVCB8IG51bGwgPT4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICBlbnRpdGllcy5maW5kKChfOiBUKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBfLmlkZW50aWZpZXIgPT09IHByb3BzLmlkZW50aWZpZXI7XHJcbiAgICAgICAgICB9KSB8fCBudWxsXHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHNlbGVjdENvbnRyb2wgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgKHN0YXRlOiBhbnkpOiBhbnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBzdGF0ZS5jb250cm9sO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0TGlua3MgPSAocHJvcHM6IHsgaWRlbnRpZmllcjogc3RyaW5nIH0pID0+IHtcclxuICAgICAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN0YXRlLCAoc3RhdGU6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHN0YXRlLmxpbmtzPy5bcHJvcHMuaWRlbnRpZmllcl07XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBzZWxlY3RQYWdlID0gKHByb3BzOiB7IGlkZW50aWZpZXI6IHN0cmluZyB9KSA9PiB7XHJcbiAgICAgIHJldHVybiBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgKHN0YXRlOiBhbnkpOiBhbnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBzdGF0ZS5wYWdlPy5bcHJvcHMuaWRlbnRpZmllcl07XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBsaW5rc0hhc0RpZmZlcmVuY2UgPSAocHJvcHM6IHsgaWRlbnRpZmllcjogc3RyaW5nOyB1cmw6IHN0cmluZyB9KSA9PiB7XHJcbiAgICAgIHJldHVybiBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgKHN0YXRlOiBhbnkpOiBhbnkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgcGFnaW5hdGlvbiB9ID0gc3RhdGU7XHJcbiAgICAgICAgY29uc3QgeyBpZGVudGlmaWVyLCB1cmwgfSA9IHByb3BzO1xyXG4gICAgICAgIGxldCBoYXNEaWZmZXJlbmNlID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IGhhc0ZpZWxkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBjb25zdCBoYW5kbGVQYWdpbmF0aW9uVXJsID0gcGFyc2VVcmwoYCR7cGFnaW5hdGlvbj8uW2lkZW50aWZpZXJdPy51cmx9YCk7XHJcbiAgICAgICAgICBjb25zdCBoYW5kbGVVcmwgPSBwYXJzZVVybChgJHt1cmx9YCk7XHJcbiAgICAgICAgICBoYXNEaWZmZXJlbmNlID1cclxuICAgICAgICAgICAgaGFuZGxlUGFnaW5hdGlvblVybD8ucXVlcnk/LnNlYXJjaCAhPT0gaGFuZGxlVXJsPy5xdWVyeT8uc2VhcmNoIHx8XHJcbiAgICAgICAgICAgIGhhbmRsZVBhZ2luYXRpb25Vcmw/LnF1ZXJ5Py5zb3J0ICE9PSBoYW5kbGVVcmw/LnF1ZXJ5Py5zb3J0O1xyXG4gICAgICAgICAgaGFzRmllbGQgPSB1cmxIYXNGaWVsZCh1cmwsICdzZWFyY2gnKSB8fCB1cmxIYXNGaWVsZCh1cmwsICdzb3J0Jyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgLy8gbm90IHRvIGRvXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgaGFzRGlmZmVyZW5jZSxcclxuICAgICAgICAgIGhhc0ZpZWxkXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNlbGVjdFN0YXRlLFxyXG4gICAgICBzZWxlY3RBbGwsXHJcbiAgICAgIHNlbGVjdENvbnRyb2wsXHJcbiAgICAgIHNlbGVjdExpbmtzLFxyXG4gICAgICBzZWxlY3RCeUlkZW50aWZpZXIsXHJcbiAgICAgIHNlbGVjdE9uZUJ5SWRlbnRpZmllcixcclxuICAgICAgc2VsZWN0UGFnZSxcclxuICAgICAgbGlua3NIYXNEaWZmZXJlbmNlXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXN0b3JlLnNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3N0b3JlL21vbmtleWVjeC1zdG9yZS5zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFXeEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYSxFQUFFLEVBQUU7SUFDakQsTUFBTSxHQUFHLEdBQVEsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixNQUFNLE9BQWdCLHlCQUF5QjtJQUM3QyxNQUFNLENBQUMsWUFBWSxDQUF5QixPQUFpQjtRQUMzRCxNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUQsTUFBTSxTQUFTLEdBQVEsY0FBYyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEUsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQTZCLEVBQUUsRUFBRTtZQUMzRCxPQUFPLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFhLEVBQU8sRUFBRTtnQkFDdEQsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBSSxFQUFFLEVBQUU7b0JBQzlCLE9BQU8sQ0FBQyxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUMsVUFBVSxDQUFDO2dCQUMzQyxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0ws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QUFVO1lBQ1Ysa0JBQWtCO1NBQ25CLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgcGFyc2VVcmwgfSBmcm9tICdxdWVyeS1zdHJpbmcnO1xuXG5pbnRlcmZhY2UgSWRlbnRpZmlhYmxlIHtcbiAgaWRlbnRpZmllcj86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIElSZWR1Y2VyIHtcbiAgZmVhdHVyZUtleTogc3RyaW5nO1xuICBzZWxlY3RBbGw6IGFueTtcbn1cblxuY29uc3QgdXJsSGFzRmllbGQgPSAodXJsOiBzdHJpbmcsIGZpZWxkOiBzdHJpbmcpID0+IHtcbiAgY29uc3Qgb2JqOiBhbnkgPSBwYXJzZVVybCh1cmwpO1xuICByZXR1cm4gISFvYmo/LnF1ZXJ5Py5bZmllbGRdO1xufTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1vbmtleUVjeENvbW1vbnNTZWxlY3RvcnMge1xuICBzdGF0aWMgZ2V0U2VsZWN0b3JzPFQgZXh0ZW5kcyBJZGVudGlmaWFibGU+KHJlZHVjZXI6IElSZWR1Y2VyKSB7XG4gICAgY29uc3Qgc2VsZWN0U3RhdGUgPSBjcmVhdGVGZWF0dXJlU2VsZWN0b3IocmVkdWNlci5mZWF0dXJlS2V5KTtcblxuICAgIGNvbnN0IHNlbGVjdEFsbDogYW55ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIHJlZHVjZXIuc2VsZWN0QWxsKTtcblxuICAgIGNvbnN0IHNlbGVjdEJ5SWRlbnRpZmllciA9IChwcm9wczogeyBpZGVudGlmaWVyOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKHNlbGVjdEFsbCwgKGVudGl0aWVzOiBUW10pOiBUW10gPT4ge1xuICAgICAgICByZXR1cm4gZW50aXRpZXMuZmlsdGVyKChfOiBUKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIF8uaWRlbnRpZmllciA9PT0gcHJvcHMuaWRlbnRpZmllcjtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0T25lQnlJZGVudGlmaWVyID0gKHByb3BzOiB7IGlkZW50aWZpZXI6IHN0cmluZyB9KSA9PiB7XG4gICAgICByZXR1cm4gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0QWxsLCAoZW50aXRpZXM6IFRbXSk6IFQgfCBudWxsID0+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBlbnRpdGllcy5maW5kKChfOiBUKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gXy5pZGVudGlmaWVyID09PSBwcm9wcy5pZGVudGlmaWVyO1xuICAgICAgICAgIH0pIHx8IG51bGxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RDb250cm9sID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN0YXRlLCAoc3RhdGU6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIHJldHVybiBzdGF0ZS5jb250cm9sO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdExpbmtzID0gKHByb3BzPzogeyBpZGVudGlmaWVyOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN0YXRlLCAoc3RhdGU6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGlmIChwcm9wcz8uaWRlbnRpZmllcikge1xuICAgICAgICAgIHJldHVybiBzdGF0ZS5saW5rcz8uW3Byb3BzLmlkZW50aWZpZXJdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN0YXRlLmxpbmtzO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdFBhZ2UgPSAocHJvcHM/OiB7IGlkZW50aWZpZXI6IHN0cmluZyB9KSA9PiB7XG4gICAgICByZXR1cm4gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIChzdGF0ZTogYW55KTogYW55ID0+IHtcbiAgICAgICAgaWYgKHByb3BzPy5pZGVudGlmaWVyKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlLnBhZ2U/Lltwcm9wcy5pZGVudGlmaWVyXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdGF0ZS5wYWdlO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGxpbmtzSGFzRGlmZmVyZW5jZSA9IChwcm9wczogeyBpZGVudGlmaWVyOiBzdHJpbmc7IHVybDogc3RyaW5nIH0pID0+IHtcbiAgICAgIHJldHVybiBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgKHN0YXRlOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBjb25zdCB7IHBhZ2luYXRpb24gfSA9IHN0YXRlO1xuICAgICAgICBjb25zdCB7IGlkZW50aWZpZXIsIHVybCB9ID0gcHJvcHM7XG4gICAgICAgIGxldCBoYXNEaWZmZXJlbmNlID0gZmFsc2U7XG4gICAgICAgIGxldCBoYXNGaWVsZCA9IGZhbHNlO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgaGFuZGxlUGFnaW5hdGlvblVybCA9IHBhcnNlVXJsKGAke3BhZ2luYXRpb24/LltpZGVudGlmaWVyXT8udXJsfWApO1xuICAgICAgICAgIGNvbnN0IGhhbmRsZVVybCA9IHBhcnNlVXJsKGAke3VybH1gKTtcbiAgICAgICAgICBoYXNEaWZmZXJlbmNlID1cbiAgICAgICAgICAgIGhhbmRsZVBhZ2luYXRpb25Vcmw/LnF1ZXJ5Py5zZWFyY2ggIT09IGhhbmRsZVVybD8ucXVlcnk/LnNlYXJjaCB8fFxuICAgICAgICAgICAgaGFuZGxlUGFnaW5hdGlvblVybD8ucXVlcnk/LnNvcnQgIT09IGhhbmRsZVVybD8ucXVlcnk/LnNvcnQ7XG4gICAgICAgICAgaGFzRmllbGQgPSB1cmxIYXNGaWVsZCh1cmwsICdzZWFyY2gnKSB8fCB1cmxIYXNGaWVsZCh1cmwsICdzb3J0Jyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAvLyBub3QgdG8gZG9cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaGFzRGlmZmVyZW5jZSxcbiAgICAgICAgICBoYXNGaWVsZFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBzZWxlY3RTdGF0ZSxcbiAgICAgIHNlbGVjdEFsbCxcbiAgICAgIHNlbGVjdENvbnRyb2wsXG4gICAgICBzZWxlY3RMaW5rcyxcbiAgICAgIHNlbGVjdEJ5SWRlbnRpZmllcixcbiAgICAgIHNlbGVjdE9uZUJ5SWRlbnRpZmllcixcbiAgICAgIHNlbGVjdFBhZ2UsXG4gICAgICBsaW5rc0hhc0RpZmZlcmVuY2VcbiAgICB9O1xuICB9XG59XG4iXX0=