@mediusinc/mng-commons 0.0.1-rc.2
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 +19 -0
- package/esm2020/lib/api/models/builders/query-param.builder.mjs +49 -0
- package/esm2020/lib/api/models/filter-match-type.model.mjs +24 -0
- package/esm2020/lib/api/models/filter-param.model.mjs +46 -0
- package/esm2020/lib/api/models/index.mjs +9 -0
- package/esm2020/lib/api/models/mappers.mjs +17 -0
- package/esm2020/lib/api/models/query-mode.model.mjs +19 -0
- package/esm2020/lib/api/models/query-param.model.mjs +69 -0
- package/esm2020/lib/api/models/query-result.model.mjs +45 -0
- package/esm2020/lib/api/models/serialization.model.mjs +2 -0
- package/esm2020/lib/api/services/abstract-crud-api.service.mjs +72 -0
- package/esm2020/lib/api/services/index.mjs +2 -0
- package/esm2020/lib/api/utils/index.mjs +3 -0
- package/esm2020/lib/api/utils/medius-rest.util.mjs +70 -0
- package/esm2020/lib/api/utils/object-serializer.util.mjs +226 -0
- package/esm2020/lib/components/action/action.component.mjs +63 -0
- package/esm2020/lib/components/action/dialog/action-dialog.component.mjs +148 -0
- package/esm2020/lib/components/action/index.mjs +4 -0
- package/esm2020/lib/components/action/route/action-route.component.mjs +144 -0
- package/esm2020/lib/components/form/editor/form-editor.component.mjs +140 -0
- package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +58 -0
- package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +51 -0
- package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +16 -0
- package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +26 -0
- package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +94 -0
- package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +124 -0
- package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +17 -0
- package/esm2020/lib/components/form/formly/fields/index.mjs +8 -0
- package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +17 -0
- package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +16 -0
- package/esm2020/lib/components/form/formly/wrappers/index.mjs +3 -0
- package/esm2020/lib/components/form/index.mjs +2 -0
- package/esm2020/lib/components/layout/app.breadcrumb.component.mjs +27 -0
- package/esm2020/lib/components/layout/app.footer.component.mjs +35 -0
- package/esm2020/lib/components/layout/app.main.component.mjs +25 -0
- package/esm2020/lib/components/layout/app.main.component.service.mjs +133 -0
- package/esm2020/lib/components/layout/app.menu.component.mjs +38 -0
- package/esm2020/lib/components/layout/app.menuitem.component.mjs +243 -0
- package/esm2020/lib/components/layout/app.topbar.component.mjs +135 -0
- package/esm2020/lib/components/layout/index.mjs +7 -0
- package/esm2020/lib/components/tableview/index.mjs +4 -0
- package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +31 -0
- package/esm2020/lib/components/tableview/table/table.component.mjs +173 -0
- package/esm2020/lib/components/tableview/tableview.component.mjs +82 -0
- package/esm2020/lib/components/tableview/tableview.component.service.mjs +18 -0
- package/esm2020/lib/config/formly.config.mjs +165 -0
- package/esm2020/lib/config/index.mjs +2 -0
- package/esm2020/lib/directives/index.mjs +2 -0
- package/esm2020/lib/directives/template.directive.mjs +25 -0
- package/esm2020/lib/mng-commons.module.mjs +338 -0
- package/esm2020/lib/models/action/action.model.mjs +58 -0
- package/esm2020/lib/models/action/index.mjs +2 -0
- package/esm2020/lib/models/config/index.mjs +2 -0
- package/esm2020/lib/models/config/mng-config.model.mjs +3 -0
- package/esm2020/lib/models/descriptors/action-descriptor.model.mjs +283 -0
- package/esm2020/lib/models/descriptors/editor-descriptor.model.mjs +647 -0
- package/esm2020/lib/models/descriptors/index.mjs +6 -0
- package/esm2020/lib/models/descriptors/model-descriptor.model.mjs +34 -0
- package/esm2020/lib/models/descriptors/table-descriptor.model.mjs +123 -0
- package/esm2020/lib/models/descriptors/tableview-descriptor.model.mjs +124 -0
- package/esm2020/lib/models/events/editor-event.model.mjs +14 -0
- package/esm2020/lib/models/events/index.mjs +3 -0
- package/esm2020/lib/models/events/table-event.model.mjs +16 -0
- package/esm2020/lib/models/interfaces/confirmation-service.model.mjs +2 -0
- package/esm2020/lib/models/interfaces/index.mjs +2 -0
- package/esm2020/lib/models/providers/data-provider.model.mjs +86 -0
- package/esm2020/lib/models/providers/index.mjs +2 -0
- package/esm2020/lib/models/types/index.mjs +3 -0
- package/esm2020/lib/models/types/type.decorator.mjs +8 -0
- package/esm2020/lib/models/types/type.model.mjs +2 -0
- package/esm2020/lib/models/validators/field.validator.mjs +21 -0
- package/esm2020/lib/models/validators/index.mjs +2 -0
- package/esm2020/lib/pipes/index.mjs +2 -0
- package/esm2020/lib/pipes/property-path.pipe.mjs +36 -0
- package/esm2020/lib/services/action.service.mjs +239 -0
- package/esm2020/lib/services/breadcrumb.service.mjs +21 -0
- package/esm2020/lib/services/configuration.service.mjs +77 -0
- package/esm2020/lib/services/index.mjs +7 -0
- package/esm2020/lib/services/menu.service.mjs +26 -0
- package/esm2020/lib/services/navigation.service.mjs +49 -0
- package/esm2020/lib/services/providers/config-service.provider.mjs +12 -0
- package/esm2020/lib/services/providers/formly-config.provider.mjs +31 -0
- package/esm2020/lib/services/providers/index.mjs +3 -0
- package/esm2020/lib/services/settings.service.mjs +40 -0
- package/esm2020/lib/utils/editor-formly.util.mjs +165 -0
- package/esm2020/lib/utils/i18n.util.mjs +75 -0
- package/esm2020/lib/utils/index.mjs +5 -0
- package/esm2020/lib/utils/model.util.mjs +38 -0
- package/esm2020/lib/utils/type.util.mjs +43 -0
- package/esm2020/mediusinc-mng-commons.mjs +5 -0
- package/esm2020/public-api.mjs +33 -0
- package/fesm2015/mediusinc-mng-commons.mjs +5056 -0
- package/fesm2015/mediusinc-mng-commons.mjs.map +1 -0
- package/fesm2020/mediusinc-mng-commons.mjs +5012 -0
- package/fesm2020/mediusinc-mng-commons.mjs.map +1 -0
- package/lib/api/models/builders/query-param.builder.d.ts +11 -0
- package/lib/api/models/filter-match-type.model.d.ts +21 -0
- package/lib/api/models/filter-param.model.d.ts +23 -0
- package/lib/api/models/index.d.ts +8 -0
- package/lib/api/models/mappers.d.ts +6 -0
- package/lib/api/models/query-mode.model.d.ts +16 -0
- package/lib/api/models/query-param.model.d.ts +31 -0
- package/lib/api/models/query-result.model.d.ts +36 -0
- package/lib/api/models/serialization.model.d.ts +8 -0
- package/lib/api/services/abstract-crud-api.service.d.ts +23 -0
- package/lib/api/services/index.d.ts +1 -0
- package/lib/api/utils/index.d.ts +2 -0
- package/lib/api/utils/medius-rest.util.d.ts +6 -0
- package/lib/api/utils/object-serializer.util.d.ts +30 -0
- package/lib/components/action/action.component.d.ts +36 -0
- package/lib/components/action/dialog/action-dialog.component.d.ts +48 -0
- package/lib/components/action/index.d.ts +3 -0
- package/lib/components/action/route/action-route.component.d.ts +32 -0
- package/lib/components/form/editor/form-editor.component.d.ts +37 -0
- package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +21 -0
- package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +19 -0
- package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +6 -0
- package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +12 -0
- package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +17 -0
- package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +36 -0
- package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +6 -0
- package/lib/components/form/formly/fields/index.d.ts +7 -0
- package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +8 -0
- package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +8 -0
- package/lib/components/form/formly/wrappers/index.d.ts +2 -0
- package/lib/components/form/index.d.ts +1 -0
- package/lib/components/layout/app.breadcrumb.component.d.ts +16 -0
- package/lib/components/layout/app.footer.component.d.ts +8 -0
- package/lib/components/layout/app.main.component.d.ts +12 -0
- package/lib/components/layout/app.main.component.service.d.ts +40 -0
- package/lib/components/layout/app.menu.component.d.ts +14 -0
- package/lib/components/layout/app.menuitem.component.d.ts +31 -0
- package/lib/components/layout/app.topbar.component.d.ts +16 -0
- package/lib/components/layout/index.d.ts +6 -0
- package/lib/components/tableview/index.d.ts +3 -0
- package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +15 -0
- package/lib/components/tableview/table/table.component.d.ts +47 -0
- package/lib/components/tableview/tableview.component.d.ts +36 -0
- package/lib/components/tableview/tableview.component.service.d.ts +11 -0
- package/lib/config/formly.config.d.ts +8 -0
- package/lib/config/index.d.ts +1 -0
- package/lib/directives/index.d.ts +1 -0
- package/lib/directives/template.directive.d.ts +11 -0
- package/lib/mng-commons.module.d.ts +74 -0
- package/lib/models/action/action.model.d.ts +53 -0
- package/lib/models/action/index.d.ts +1 -0
- package/lib/models/config/index.d.ts +1 -0
- package/lib/models/config/mng-config.model.d.ts +19 -0
- package/lib/models/descriptors/action-descriptor.model.d.ts +124 -0
- package/lib/models/descriptors/editor-descriptor.model.d.ts +248 -0
- package/lib/models/descriptors/index.d.ts +5 -0
- package/lib/models/descriptors/model-descriptor.model.d.ts +15 -0
- package/lib/models/descriptors/table-descriptor.model.d.ts +45 -0
- package/lib/models/descriptors/tableview-descriptor.model.d.ts +38 -0
- package/lib/models/events/editor-event.model.d.ts +11 -0
- package/lib/models/events/index.d.ts +2 -0
- package/lib/models/events/table-event.model.d.ts +17 -0
- package/lib/models/interfaces/confirmation-service.model.d.ts +6 -0
- package/lib/models/interfaces/index.d.ts +1 -0
- package/lib/models/providers/data-provider.model.d.ts +62 -0
- package/lib/models/providers/index.d.ts +1 -0
- package/lib/models/types/index.d.ts +2 -0
- package/lib/models/types/type.decorator.d.ts +2 -0
- package/lib/models/types/type.model.d.ts +10 -0
- package/lib/models/validators/field.validator.d.ts +18 -0
- package/lib/models/validators/index.d.ts +1 -0
- package/lib/pipes/index.d.ts +1 -0
- package/lib/pipes/property-path.pipe.d.ts +7 -0
- package/lib/services/action.service.d.ts +92 -0
- package/lib/services/breadcrumb.service.d.ts +9 -0
- package/lib/services/configuration.service.d.ts +35 -0
- package/lib/services/index.d.ts +6 -0
- package/lib/services/menu.service.d.ts +11 -0
- package/lib/services/navigation.service.d.ts +14 -0
- package/lib/services/providers/config-service.provider.d.ts +5 -0
- package/lib/services/providers/formly-config.provider.d.ts +4 -0
- package/lib/services/providers/index.d.ts +2 -0
- package/lib/services/settings.service.d.ts +18 -0
- package/lib/utils/editor-formly.util.d.ts +9 -0
- package/lib/utils/i18n.util.d.ts +14 -0
- package/lib/utils/index.d.ts +4 -0
- package/lib/utils/model.util.d.ts +5 -0
- package/lib/utils/type.util.d.ts +15 -0
- package/mediusinc-mng-commons-0.0.1-rc.2.tgz +0 -0
- package/mediusinc-mng-commons.d.ts +5 -0
- package/package.json +38 -0
- package/public-api.d.ts +22 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { from, Observable, of } from 'rxjs';
|
|
3
|
+
import { first, map } from 'rxjs/operators';
|
|
4
|
+
import { ActionActivationResult, ActionError, ActionExecContext, ActionRunResult, ActionTriggerResult } from '../models/action';
|
|
5
|
+
import { ActionActivationTriggerEnum, ActionTypeEnum } from '../models/descriptors';
|
|
6
|
+
import { I18nUtil } from '../utils';
|
|
7
|
+
import { ActionDialogComponent } from '../components/action';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/router";
|
|
10
|
+
import * as i2 from "primeng/dynamicdialog";
|
|
11
|
+
import * as i3 from "primeng/api";
|
|
12
|
+
import * as i4 from "@ngx-translate/core";
|
|
13
|
+
export class ActionService {
|
|
14
|
+
constructor(injector, router, dialogService, confirmationService, translate) {
|
|
15
|
+
this.injector = injector;
|
|
16
|
+
this.router = router;
|
|
17
|
+
this.dialogService = dialogService;
|
|
18
|
+
this.confirmationService = confirmationService;
|
|
19
|
+
this.translate = translate;
|
|
20
|
+
}
|
|
21
|
+
getActionExecContext(action, itemId, item, dataProvider, tableview, sourceComponent, actionData) {
|
|
22
|
+
return new ActionExecContext(dataProvider, this.getDataProviderService(dataProvider) ?? undefined, {
|
|
23
|
+
item,
|
|
24
|
+
itemId,
|
|
25
|
+
actionData
|
|
26
|
+
}, sourceComponent, tableview);
|
|
27
|
+
}
|
|
28
|
+
runAction(action, itemId, item, dataProvider, sourceComponent, tableview, actionData) {
|
|
29
|
+
const context = this.getActionExecContext(action, itemId, item, dataProvider, tableview, sourceComponent, actionData);
|
|
30
|
+
if (action.hasRunConfirmation) {
|
|
31
|
+
if (typeof sourceComponent?.getConfirmationService !== 'function' || typeof sourceComponent?.getConfirmationServiceInstanceKey !== 'function') {
|
|
32
|
+
throw Error(`Source component ${sourceComponent} should be implementing IConfirmationService interface to be able to provide confirmation functionality.`);
|
|
33
|
+
}
|
|
34
|
+
const srcConfirmComponent = sourceComponent;
|
|
35
|
+
const confirmParams = {
|
|
36
|
+
key: srcConfirmComponent.getConfirmationServiceInstanceKey(action),
|
|
37
|
+
acceptVisible: false,
|
|
38
|
+
rejectVisible: false
|
|
39
|
+
};
|
|
40
|
+
if (action.runConfirmationTitle !== null) {
|
|
41
|
+
confirmParams.header = I18nUtil.instantActionTranslation(this.translate, action, 'confirm.title', action.runConfirmationTitle, item, 'general.confirmation') ?? undefined;
|
|
42
|
+
}
|
|
43
|
+
if (action.runConfirmationMessage !== null) {
|
|
44
|
+
confirmParams.message = I18nUtil.instantActionTranslation(this.translate, action, 'confirm.message', action.runConfirmationMessage, item, 'general.confirmation') ?? undefined;
|
|
45
|
+
}
|
|
46
|
+
if (action.runConfirmationIcon !== null) {
|
|
47
|
+
confirmParams.icon = action.runConfirmationIcon === undefined ? 'pi pi-exclamation-triangle' : action.runConfirmationIcon;
|
|
48
|
+
}
|
|
49
|
+
if (action.runConfirmationAcceptTitle !== null) {
|
|
50
|
+
confirmParams.acceptLabel = I18nUtil.instantActionTranslation(this.translate, action, 'confirm.accept', action.runConfirmationAcceptTitle, item, 'general.yes') ?? undefined;
|
|
51
|
+
confirmParams.acceptVisible = true;
|
|
52
|
+
}
|
|
53
|
+
if (action.runConfirmationRejectTitle !== null) {
|
|
54
|
+
confirmParams.rejectLabel = I18nUtil.instantActionTranslation(this.translate, action, 'confirm.reject', action.runConfirmationRejectTitle, item, 'general.no') ?? undefined;
|
|
55
|
+
confirmParams.rejectVisible = true;
|
|
56
|
+
}
|
|
57
|
+
const observable = new Observable(observer => {
|
|
58
|
+
confirmParams.accept = () => {
|
|
59
|
+
action.runFunction(context).pipe(first(), map(res => new ActionRunResult(context, res))).subscribe(res => {
|
|
60
|
+
observer.next(res);
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
confirmParams.reject = () => {
|
|
64
|
+
observer.error(new ActionRunResult(context, undefined, new ActionError(null, true)));
|
|
65
|
+
};
|
|
66
|
+
srcConfirmComponent.getConfirmationService().confirm(confirmParams);
|
|
67
|
+
});
|
|
68
|
+
return observable;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
return action.runFunction(context).pipe(map(res => new ActionRunResult(context, res)));
|
|
72
|
+
}
|
|
73
|
+
// TODO: error handling
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Runs editor action save function usually triggered on form submit.
|
|
77
|
+
*
|
|
78
|
+
* @param action Action descriptor.
|
|
79
|
+
* @param itemId Item id (if exists).
|
|
80
|
+
* @param formItem Item instance (from form).
|
|
81
|
+
* @param dataProvider Data provider
|
|
82
|
+
* @param sourceComponent Source component from where the fetch function was called.
|
|
83
|
+
* @param tableview Tableview component.
|
|
84
|
+
* @param actionData Additional action data.
|
|
85
|
+
*/
|
|
86
|
+
runEditorSave(action, itemId, formItem, dataProvider, sourceComponent, tableview, actionData) {
|
|
87
|
+
const context = this.prepareRunContextForEditor(formItem, itemId, dataProvider, sourceComponent, tableview, actionData);
|
|
88
|
+
if (typeof action.submitFunction !== 'function') {
|
|
89
|
+
throw new Error(`Submit function for action ${action.actionName} cannot be invoked.`);
|
|
90
|
+
}
|
|
91
|
+
return action.submitFunction(context).pipe(map(res => new ActionRunResult(context, res)));
|
|
92
|
+
// TODO: error handling
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Runs editor action fetch function.
|
|
96
|
+
*
|
|
97
|
+
* @param action Action descriptor.
|
|
98
|
+
* @param itemId Item id.
|
|
99
|
+
* @param dataProvider Data provider
|
|
100
|
+
* @param sourceComponent Source component from where the fetch function was called.
|
|
101
|
+
* @param tableview Tableview component.
|
|
102
|
+
* @param actionData Additional action data.
|
|
103
|
+
*/
|
|
104
|
+
runEditorFetch(action, itemId, dataProvider, sourceComponent, tableview, actionData) {
|
|
105
|
+
const context = this.prepareRunContextForEditor(undefined, itemId, dataProvider, sourceComponent, tableview, actionData);
|
|
106
|
+
return action.fetchFunction(context).pipe(map(res => new ActionRunResult(context, res)));
|
|
107
|
+
// TODO: error handling
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Prepares action run context for action of type editor.
|
|
111
|
+
*
|
|
112
|
+
* @param item Item instance (if exists).
|
|
113
|
+
* @param itemId Item id (if exists).
|
|
114
|
+
* @param dataProvider Data provider.
|
|
115
|
+
* @param sourceComponent Source component from where the context preparation was called.
|
|
116
|
+
* @param tableview Tableview component.
|
|
117
|
+
* @param actionData Additional action data.
|
|
118
|
+
*/
|
|
119
|
+
prepareRunContextForEditor(item, itemId, dataProvider, sourceComponent, tableview, actionData) {
|
|
120
|
+
const context = new ActionExecContext(dataProvider, this.getDataProviderService(dataProvider) ?? undefined, {
|
|
121
|
+
item,
|
|
122
|
+
itemId,
|
|
123
|
+
actionData
|
|
124
|
+
}, sourceComponent, tableview);
|
|
125
|
+
return context;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Gets service instance of data provider.
|
|
129
|
+
*
|
|
130
|
+
* @param dataProvider Data provider instance.
|
|
131
|
+
*/
|
|
132
|
+
getDataProviderService(dataProvider) {
|
|
133
|
+
if (dataProvider?.serviceType) {
|
|
134
|
+
return this.injector.get(dataProvider.serviceType);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Activates action.
|
|
142
|
+
*
|
|
143
|
+
* @param action Action descriptor.
|
|
144
|
+
* @param item Item instance (if exists).
|
|
145
|
+
* @param itemId Item id (if exists).
|
|
146
|
+
* @param actionData Optional additional action data.
|
|
147
|
+
* @param tableview Tableview component.
|
|
148
|
+
* @param sourceComponent Source activation component.
|
|
149
|
+
*/
|
|
150
|
+
activateAction(action, itemId, item, actionData, tableview, sourceComponent) {
|
|
151
|
+
if (action.type === ActionTypeEnum.Editor) {
|
|
152
|
+
const dialogConfig = {
|
|
153
|
+
data: {
|
|
154
|
+
action
|
|
155
|
+
},
|
|
156
|
+
styleClass: action.className
|
|
157
|
+
};
|
|
158
|
+
if (itemId) {
|
|
159
|
+
dialogConfig.data.itemId = itemId;
|
|
160
|
+
}
|
|
161
|
+
if (item) {
|
|
162
|
+
dialogConfig.data.item = item;
|
|
163
|
+
}
|
|
164
|
+
if (actionData) {
|
|
165
|
+
dialogConfig.data.actionData = actionData;
|
|
166
|
+
}
|
|
167
|
+
if (tableview) {
|
|
168
|
+
dialogConfig.data.tableview = tableview;
|
|
169
|
+
}
|
|
170
|
+
if (sourceComponent) {
|
|
171
|
+
dialogConfig.data.sourceComponent = sourceComponent;
|
|
172
|
+
}
|
|
173
|
+
const dialogRef = this.dialogService.open(ActionDialogComponent, dialogConfig);
|
|
174
|
+
return of(new ActionActivationResult(undefined, dialogRef));
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
// directly execute action
|
|
178
|
+
return this.runAction(action, itemId, item, tableview?.dataProvider ?? undefined, sourceComponent, tableview, actionData)
|
|
179
|
+
.pipe(map(res => new ActionActivationResult(res)));
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Triggers action from table row click position.
|
|
184
|
+
*
|
|
185
|
+
* @param action Action descriptor.
|
|
186
|
+
* @param event Target table click event.
|
|
187
|
+
* @param route Currently activate route.
|
|
188
|
+
*/
|
|
189
|
+
triggerRowClickAction(action, event, route = null) {
|
|
190
|
+
// TODO: resolve ts ignore
|
|
191
|
+
// @ts-ignore
|
|
192
|
+
return this.triggerAction(action, event?.rowItem?.[action.model.idPropertyName], event.rowItem, null, route);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Triggers action with optional data (item, itemId, ...) and currently activated route.
|
|
196
|
+
*
|
|
197
|
+
* @param action Action.
|
|
198
|
+
* @param actionData Optional action data.
|
|
199
|
+
* @param route Optional activated route.
|
|
200
|
+
*/
|
|
201
|
+
triggerAction(action, itemId, item, actionData, route, tableview, sourceComponent) {
|
|
202
|
+
if (action.activationTrigger === ActionActivationTriggerEnum.OnRoute) {
|
|
203
|
+
const baseUrl = this.router.url;
|
|
204
|
+
let actionUrl = action.routeUrl ?? '';
|
|
205
|
+
// TODO: dont strip '/', but use it accordingly with Angular's router patterns (/, ./, ../)
|
|
206
|
+
if (actionUrl.startsWith('/')) {
|
|
207
|
+
actionUrl = actionUrl.substring(1);
|
|
208
|
+
}
|
|
209
|
+
const actionUrlSegments = actionUrl.split('/')
|
|
210
|
+
.map(s => {
|
|
211
|
+
if (s === ':itemId') {
|
|
212
|
+
return itemId;
|
|
213
|
+
}
|
|
214
|
+
else if (s.startsWith(`:${action.model.typeName}.`)) {
|
|
215
|
+
// TODO: resolve ts ignore
|
|
216
|
+
// @ts-ignore
|
|
217
|
+
return item?.[s.substring(action.model.typeName.length + 2)] ?? '';
|
|
218
|
+
}
|
|
219
|
+
else if (s.startsWith(':')) {
|
|
220
|
+
return actionData?.[s.substring(1)] ?? '';
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
return s;
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
return of(new ActionTriggerResult(undefined, from(this.router.navigate([baseUrl, ...actionUrlSegments], { relativeTo: route }))));
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
return this.activateAction(action, itemId, item, actionData, tableview, sourceComponent)
|
|
230
|
+
.pipe(map(res => new ActionTriggerResult(res)));
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
ActionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ActionService, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i2.DialogService }, { token: i3.ConfirmationService }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
235
|
+
ActionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ActionService });
|
|
236
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ActionService, decorators: [{
|
|
237
|
+
type: Injectable
|
|
238
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: i2.DialogService }, { type: i3.ConfirmationService }, { type: i4.TranslateService }]; } });
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL3NlcnZpY2VzL2FjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFNbkQsT0FBTyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsT0FBTyxFQUFDLHNCQUFzQixFQUFjLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMxSSxPQUFPLEVBQUMsMkJBQTJCLEVBQTRDLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBSzVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUkzRCxNQUFNLE9BQU8sYUFBYTtJQUV0QixZQUNZLFFBQWtCLEVBQ2xCLE1BQWMsRUFDZCxhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsU0FBMkI7UUFKM0IsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUV2QyxDQUFDO0lBRU0sb0JBQW9CLENBQU8sTUFBMkIsRUFBRSxNQUFlLEVBQUUsSUFBUSxFQUFFLFlBQWtDLEVBQzFGLFNBQTJDLEVBQUUsZUFBcUIsRUFBRSxVQUF1QjtRQUN6SCxPQUFPLElBQUksaUJBQWlCLENB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bUIsQ0FBNEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2xGO0lBQ0wsQ0FBQzs7MEdBelBRLGFBQWE7OEdBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7RGlhbG9nU2VydmljZSwgRHluYW1pY0RpYWxvZ0NvbmZpZ30gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7Q29uZmlybWF0aW9uLCBDb25maXJtYXRpb25TZXJ2aWNlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtmcm9tLCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpcnN0LCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtBY3Rpb25BY3RpdmF0aW9uUmVzdWx0LCBBY3Rpb25EYXRhLCBBY3Rpb25FcnJvciwgQWN0aW9uRXhlY0NvbnRleHQsIEFjdGlvblJ1blJlc3VsdCwgQWN0aW9uVHJpZ2dlclJlc3VsdH0gZnJvbSAnLi4vbW9kZWxzL2FjdGlvbic7XG5pbXBvcnQge0FjdGlvbkFjdGl2YXRpb25UcmlnZ2VyRW51bSwgQWN0aW9uRGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yRGVzY3JpcHRvciwgQWN0aW9uVHlwZUVudW19IGZyb20gJy4uL21vZGVscy9kZXNjcmlwdG9ycyc7XG5pbXBvcnQge01uZ1RhYmxlQ2VsbENsaWNrRXZlbnR9IGZyb20gJy4uL21vZGVscy9ldmVudHMnO1xuaW1wb3J0IHtJRGF0YVByb3ZpZGVyLCBJRWRpdG9yRGF0YVByb3ZpZGVyfSBmcm9tICcuLi9tb2RlbHMvcHJvdmlkZXJzJztcbmltcG9ydCB7SWRUeXBlfSBmcm9tICcuLi9tb2RlbHMvdHlwZXMnO1xuaW1wb3J0IHtJQ29uZmlybWF0aW9uU2VydmljZX0gZnJvbSAnLi4vbW9kZWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtJMThuVXRpbH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtBY3Rpb25EaWFsb2dDb21wb25lbnR9IGZyb20gJy4uL2NvbXBvbmVudHMvYWN0aW9uJztcbmltcG9ydCB7VGFibGV2aWV3Q29tcG9uZW50U2VydmljZX0gZnJvbSAnLi4vY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGV2aWV3LmNvbXBvbmVudC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFjdGlvblNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWN0aW9uRXhlY0NvbnRleHQ8VCwgUz4oYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9yPFQ+LCBpdGVtSWQ/OiBJZFR5cGUsIGl0ZW0/OiBULCBkYXRhUHJvdmlkZXI/OiBJRGF0YVByb3ZpZGVyPFQsIFM+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZXZpZXc/OiBUYWJsZXZpZXdDb21wb25lbnRTZXJ2aWNlPFQsIFM+LCBzb3VyY2VDb21wb25lbnQ/OiBhbnksIGFjdGlvbkRhdGE/OiBBY3Rpb25EYXRhKTogQWN0aW9uRXhlY0NvbnRleHQ8VCwgUywgSURhdGFQcm92aWRlcjxULCBTPj4ge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkV4ZWNDb250ZXh0PFQsIFMsIElEYXRhUHJvdmlkZXI8VCwgUz4+KFxuICAgICAgICAgICAgZGF0YVByb3ZpZGVyLFxuICAgICAgICAgICAgdGhpcy5nZXREYXRhUHJvdmlkZXJTZXJ2aWNlKGRhdGFQcm92aWRlcikgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgICAgaXRlbUlkLFxuICAgICAgICAgICAgICAgIGFjdGlvbkRhdGFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzb3VyY2VDb21wb25lbnQsXG4gICAgICAgICAgICB0YWJsZXZpZXdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcnVuQWN0aW9uPFQsIFM+KGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxUPiwgaXRlbUlkPzogSWRUeXBlLCBpdGVtPzogVCwgZGF0YVByb3ZpZGVyPzogSURhdGFQcm92aWRlcjxULCBTPixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUNvbXBvbmVudD86IGFueSwgdGFibGV2aWV3PzogVGFibGV2aWV3Q29tcG9uZW50U2VydmljZTxULCBTPiwgYWN0aW9uRGF0YT86IEFjdGlvbkRhdGEpOiBPYnNlcnZhYmxlPEFjdGlvblJ1blJlc3VsdDxULCBTLCBJRGF0YVByb3ZpZGVyPFQsIFM+Pj4ge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRBY3Rpb25FeGVjQ29udGV4dChhY3Rpb24sIGl0ZW1JZCwgaXRlbSwgZGF0YVByb3ZpZGVyLCB0YWJsZXZpZXcsIHNvdXJjZUNvbXBvbmVudCwgYWN0aW9uRGF0YSk7XG4gICAgICAgIGlmIChhY3Rpb24uaGFzUnVuQ29uZmlybWF0aW9uKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHNvdXJjZUNvbXBvbmVudD8uZ2V0Q29uZmlybWF0aW9uU2VydmljZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2Ygc291cmNlQ29tcG9uZW50Py5nZXRDb25maXJtYXRpb25TZXJ2aWNlSW5zdGFuY2VLZXkgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihgU291cmNlIGNvbXBvbmVudCAke3NvdXJjZUNvbXBvbmVudH0gc2hvdWxkIGJlIGltcGxlbWVudGluZyBJQ29uZmlybWF0aW9uU2VydmljZSBpbnRlcmZhY2UgdG8gYmUgYWJsZSB0byBwcm92aWRlIGNvbmZpcm1hdGlvbiBmdW5jdGlvbmFsaXR5LmApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzcmNDb25maXJtQ29tcG9uZW50ID0gc291cmNlQ29tcG9uZW50IGFzIElDb25maXJtYXRpb25TZXJ2aWNlO1xuICAgICAgICAgICAgY29uc3QgY29uZmlybVBhcmFtczogQ29uZmlybWF0aW9uID0ge1xuICAgICAgICAgICAgICAgIGtleTogc3JjQ29uZmlybUNvbXBvbmVudC5nZXRDb25maXJtYXRpb25TZXJ2aWNlSW5zdGFuY2VLZXkoYWN0aW9uKSxcbiAgICAgICAgICAgICAgICBhY2NlcHRWaXNpYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZWplY3RWaXNpYmxlOiBmYWxzZVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYgKGFjdGlvbi5ydW5Db25maXJtYXRpb25UaXRsZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbmZpcm1QYXJhbXMuaGVhZGVyID0gSTE4blV0aWwuaW5zdGFudEFjdGlvblRyYW5zbGF0aW9uKHRoaXMudHJhbnNsYXRlLCBhY3Rpb24sICdjb25maXJtLnRpdGxlJywgYWN0aW9uLnJ1bkNvbmZpcm1hdGlvblRpdGxlLCBpdGVtLCAnZ2VuZXJhbC5jb25maXJtYXRpb24nKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYWN0aW9uLnJ1bkNvbmZpcm1hdGlvbk1lc3NhZ2UgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25maXJtUGFyYW1zLm1lc3NhZ2UgPSBJMThuVXRpbC5pbnN0YW50QWN0aW9uVHJhbnNsYXRpb24odGhpcy50cmFuc2xhdGUsIGFjdGlvbiwgJ2NvbmZpcm0ubWVzc2FnZScsIGFjdGlvbi5ydW5Db25maXJtYXRpb25NZXNzYWdlLCBpdGVtLCAnZ2VuZXJhbC5jb25maXJtYXRpb24nKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYWN0aW9uLnJ1bkNvbmZpcm1hdGlvbkljb24gIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25maXJtUGFyYW1zLmljb24gPSBhY3Rpb24ucnVuQ29uZmlybWF0aW9uSWNvbiA9PT0gdW5kZWZpbmVkID8gJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyA6IGFjdGlvbi5ydW5Db25maXJtYXRpb25JY29uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGFjdGlvbi5ydW5Db25maXJtYXRpb25BY2NlcHRUaXRsZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbmZpcm1QYXJhbXMuYWNjZXB0TGFiZWwgPSBJMThuVXRpbC5pbnN0YW50QWN0aW9uVHJhbnNsYXRpb24odGhpcy50cmFuc2xhdGUsIGFjdGlvbiwgJ2NvbmZpcm0uYWNjZXB0JywgYWN0aW9uLnJ1bkNvbmZpcm1hdGlvbkFjY2VwdFRpdGxlLCBpdGVtLCAnZ2VuZXJhbC55ZXMnKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgY29uZmlybVBhcmFtcy5hY2NlcHRWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChhY3Rpb24ucnVuQ29uZmlybWF0aW9uUmVqZWN0VGl0bGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25maXJtUGFyYW1zLnJlamVjdExhYmVsID0gSTE4blV0aWwuaW5zdGFudEFjdGlvblRyYW5zbGF0aW9uKHRoaXMudHJhbnNsYXRlLCBhY3Rpb24sICdjb25maXJtLnJlamVjdCcsIGFjdGlvbi5ydW5Db25maXJtYXRpb25SZWplY3RUaXRsZSwgaXRlbSwgJ2dlbmVyYWwubm8nKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgY29uZmlybVBhcmFtcy5yZWplY3RWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPEFjdGlvblJ1blJlc3VsdDxULCBTLCBJRGF0YVByb3ZpZGVyPFQsIFM+Pj4ob2JzZXJ2ZXIgPT4ge1xuICAgICAgICAgICAgICAgIGNvbmZpcm1QYXJhbXMuYWNjZXB0ID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb24ucnVuRnVuY3Rpb24oY29udGV4dCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAocmVzID0+IG5ldyBBY3Rpb25SdW5SZXN1bHQoY29udGV4dCwgcmVzKSlcbiAgICAgICAgICAgICAgICAgICAgKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQocmVzKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uZmlybVBhcmFtcy5yZWplY3QgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKG5ldyBBY3Rpb25SdW5SZXN1bHQoY29udGV4dCwgdW5kZWZpbmVkLCBuZXcgQWN0aW9uRXJyb3IobnVsbCwgdHJ1ZSkpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzcmNDb25maXJtQ29tcG9uZW50LmdldENvbmZpcm1hdGlvblNlcnZpY2UoKS5jb25maXJtKGNvbmZpcm1QYXJhbXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhY3Rpb24ucnVuRnVuY3Rpb24oY29udGV4dCkucGlwZShtYXAocmVzID0+IG5ldyBBY3Rpb25SdW5SZXN1bHQoY29udGV4dCwgcmVzKSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRPRE86IGVycm9yIGhhbmRsaW5nXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUnVucyBlZGl0b3IgYWN0aW9uIHNhdmUgZnVuY3Rpb24gdXN1YWxseSB0cmlnZ2VyZWQgb24gZm9ybSBzdWJtaXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYWN0aW9uIEFjdGlvbiBkZXNjcmlwdG9yLlxuICAgICAqIEBwYXJhbSBpdGVtSWQgSXRlbSBpZCAoaWYgZXhpc3RzKS5cbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW0gSXRlbSBpbnN0YW5jZSAoZnJvbSBmb3JtKS5cbiAgICAgKiBAcGFyYW0gZGF0YVByb3ZpZGVyIERhdGEgcHJvdmlkZXJcbiAgICAgKiBAcGFyYW0gc291cmNlQ29tcG9uZW50IFNvdXJjZSBjb21wb25lbnQgZnJvbSB3aGVyZSB0aGUgZmV0Y2ggZnVuY3Rpb24gd2FzIGNhbGxlZC5cbiAgICAgKiBAcGFyYW0gdGFibGV2aWV3IFRhYmxldmlldyBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIGFjdGlvbkRhdGEgQWRkaXRpb25hbCBhY3Rpb24gZGF0YS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcnVuRWRpdG9yU2F2ZTxULCBTPihhY3Rpb246IEFjdGlvbkVkaXRvckRlc2NyaXB0b3I8VD4sIGl0ZW1JZD86IElkVHlwZSwgZm9ybUl0ZW0/OiBULCBkYXRhUHJvdmlkZXI/OiBJRWRpdG9yRGF0YVByb3ZpZGVyPFQsIFM+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUNvbXBvbmVudD86IGFueSwgdGFibGV2aWV3PzogVGFibGV2aWV3Q29tcG9uZW50U2VydmljZTxULCBTPiwgYWN0aW9uRGF0YT86IEFjdGlvbkRhdGEpOiBPYnNlcnZhYmxlPEFjdGlvblJ1blJlc3VsdDxULCBTLCBJRWRpdG9yRGF0YVByb3ZpZGVyPFQsIFM+Pj4ge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5wcmVwYXJlUnVuQ29udGV4dEZvckVkaXRvcihmb3JtSXRlbSwgaXRlbUlkLCBkYXRhUHJvdmlkZXIsIHNvdXJjZUNvbXBvbmVudCwgdGFibGV2aWV3LCBhY3Rpb25EYXRhKTtcbiAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24uc3VibWl0RnVuY3Rpb24gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU3VibWl0IGZ1bmN0aW9uIGZvciBhY3Rpb24gJHthY3Rpb24uYWN0aW9uTmFtZX0gY2Fubm90IGJlIGludm9rZWQuYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjdGlvbi5zdWJtaXRGdW5jdGlvbihjb250ZXh0KS5waXBlKG1hcChyZXMgPT4gbmV3IEFjdGlvblJ1blJlc3VsdChjb250ZXh0LCByZXMpKSk7XG4gICAgICAgIC8vIFRPRE86IGVycm9yIGhhbmRsaW5nXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUnVucyBlZGl0b3IgYWN0aW9uIGZldGNoIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFjdGlvbiBBY3Rpb24gZGVzY3JpcHRvci5cbiAgICAgKiBAcGFyYW0gaXRlbUlkIEl0ZW0gaWQuXG4gICAgICogQHBhcmFtIGRhdGFQcm92aWRlciBEYXRhIHByb3ZpZGVyXG4gICAgICogQHBhcmFtIHNvdXJjZUNvbXBvbmVudCBTb3VyY2UgY29tcG9uZW50IGZyb20gd2hlcmUgdGhlIGZldGNoIGZ1bmN0aW9uIHdhcyBjYWxsZWQuXG4gICAgICogQHBhcmFtIHRhYmxldmlldyBUYWJsZXZpZXcgY29tcG9uZW50LlxuICAgICAqIEBwYXJhbSBhY3Rpb25EYXRhIEFkZGl0aW9uYWwgYWN0aW9uIGRhdGEuXG4gICAgICovXG4gICAgcHVibGljIHJ1bkVkaXRvckZldGNoPFQsIFM+KGFjdGlvbjogQWN0aW9uRWRpdG9yRGVzY3JpcHRvcjxUPiwgaXRlbUlkPzogSWRUeXBlLCBkYXRhUHJvdmlkZXI/OiBJRWRpdG9yRGF0YVByb3ZpZGVyPFQsIFM+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VDb21wb25lbnQ/OiBhbnksIHRhYmxldmlldz86IFRhYmxldmlld0NvbXBvbmVudFNlcnZpY2U8VCwgUz4sIGFjdGlvbkRhdGE/OiBBY3Rpb25EYXRhKTogT2JzZXJ2YWJsZTxBY3Rpb25SdW5SZXN1bHQ8VCwgUywgSUVkaXRvckRhdGFQcm92aWRlcjxULCBTPj4+IHtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMucHJlcGFyZVJ1bkNvbnRleHRGb3JFZGl0b3IodW5kZWZpbmVkLCBpdGVtSWQsIGRhdGFQcm92aWRlciwgc291cmNlQ29tcG9uZW50LCB0YWJsZXZpZXcsIGFjdGlvbkRhdGEpO1xuICAgICAgICByZXR1cm4gYWN0aW9uLmZldGNoRnVuY3Rpb24oY29udGV4dCkucGlwZShtYXAocmVzID0+IG5ldyBBY3Rpb25SdW5SZXN1bHQoY29udGV4dCwgcmVzKSkpO1xuICAgICAgICAvLyBUT0RPOiBlcnJvciBoYW5kbGluZ1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXBhcmVzIGFjdGlvbiBydW4gY29udGV4dCBmb3IgYWN0aW9uIG9mIHR5cGUgZWRpdG9yLlxuICAgICAqXG4gICAgICogQHBhcmFtIGl0ZW0gSXRlbSBpbnN0YW5jZSAoaWYgZXhpc3RzKS5cbiAgICAgKiBAcGFyYW0gaXRlbUlkIEl0ZW0gaWQgKGlmIGV4aXN0cykuXG4gICAgICogQHBhcmFtIGRhdGFQcm92aWRlciBEYXRhIHByb3ZpZGVyLlxuICAgICAqIEBwYXJhbSBzb3VyY2VDb21wb25lbnQgU291cmNlIGNvbXBvbmVudCBmcm9tIHdoZXJlIHRoZSBjb250ZXh0IHByZXBhcmF0aW9uIHdhcyBjYWxsZWQuXG4gICAgICogQHBhcmFtIHRhYmxldmlldyBUYWJsZXZpZXcgY29tcG9uZW50LlxuICAgICAqIEBwYXJhbSBhY3Rpb25EYXRhIEFkZGl0aW9uYWwgYWN0aW9uIGRhdGEuXG4gICAgICovXG4gICAgcHJpdmF0ZSBwcmVwYXJlUnVuQ29udGV4dEZvckVkaXRvcjxULCBTPihpdGVtPzogVCwgaXRlbUlkPzogSWRUeXBlLCBkYXRhUHJvdmlkZXI/OiBJRWRpdG9yRGF0YVByb3ZpZGVyPFQsIFM+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQ29tcG9uZW50PzogYW55LCB0YWJsZXZpZXc/OiBUYWJsZXZpZXdDb21wb25lbnRTZXJ2aWNlPFQsIFM+LCBhY3Rpb25EYXRhPzogQWN0aW9uRGF0YSk6IEFjdGlvbkV4ZWNDb250ZXh0PFQsIFMsIElFZGl0b3JEYXRhUHJvdmlkZXI8VCwgUz4+IHtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBBY3Rpb25FeGVjQ29udGV4dDxULCBTLCBJRWRpdG9yRGF0YVByb3ZpZGVyPFQsIFM+PihcbiAgICAgICAgICAgIGRhdGFQcm92aWRlcixcbiAgICAgICAgICAgIHRoaXMuZ2V0RGF0YVByb3ZpZGVyU2VydmljZShkYXRhUHJvdmlkZXIpID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgICAgIGl0ZW1JZCxcbiAgICAgICAgICAgICAgICBhY3Rpb25EYXRhXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc291cmNlQ29tcG9uZW50LFxuICAgICAgICAgICAgdGFibGV2aWV3XG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBjb250ZXh0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgc2VydmljZSBpbnN0YW5jZSBvZiBkYXRhIHByb3ZpZGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGFQcm92aWRlciBEYXRhIHByb3ZpZGVyIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0RGF0YVByb3ZpZGVyU2VydmljZTxULCBTPihkYXRhUHJvdmlkZXI/OiBJRGF0YVByb3ZpZGVyPFQsIFM+KTogU3xudWxsIHtcbiAgICAgICAgaWYgKGRhdGFQcm92aWRlcj8uc2VydmljZVR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldDxTPihkYXRhUHJvdmlkZXIuc2VydmljZVR5cGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBY3RpdmF0ZXMgYWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFjdGlvbiBBY3Rpb24gZGVzY3JpcHRvci5cbiAgICAgKiBAcGFyYW0gaXRlbSBJdGVtIGluc3RhbmNlIChpZiBleGlzdHMpLlxuICAgICAqIEBwYXJhbSBpdGVtSWQgSXRlbSBpZCAoaWYgZXhpc3RzKS5cbiAgICAgKiBAcGFyYW0gYWN0aW9uRGF0YSBPcHRpb25hbCBhZGRpdGlvbmFsIGFjdGlvbiBkYXRhLlxuICAgICAqIEBwYXJhbSB0YWJsZXZpZXcgVGFibGV2aWV3IGNvbXBvbmVudC5cbiAgICAgKiBAcGFyYW0gc291cmNlQ29tcG9uZW50IFNvdXJjZSBhY3RpdmF0aW9uIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWN0aXZhdGVBY3Rpb248VCwgUz4oYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9yPFQ+LCBpdGVtSWQ/OiBJZFR5cGUsIGl0ZW0/OiBULCBhY3Rpb25EYXRhPzogQWN0aW9uRGF0YSwgdGFibGV2aWV3PzogVGFibGV2aWV3Q29tcG9uZW50U2VydmljZTxULCBTPiwgc291cmNlQ29tcG9uZW50PzogYW55KTogT2JzZXJ2YWJsZTxBY3Rpb25BY3RpdmF0aW9uUmVzdWx0PFQsIFMsIElEYXRhUHJvdmlkZXI8VCwgUz4+PiB7XG4gICAgICAgIGlmIChhY3Rpb24udHlwZSA9PT0gQWN0aW9uVHlwZUVudW0uRWRpdG9yKSB7XG4gICAgICAgICAgICBjb25zdCBkaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb25cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M6IGFjdGlvbi5jbGFzc05hbWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoaXRlbUlkKSB7XG4gICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmRhdGEuaXRlbUlkID0gaXRlbUlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBkaWFsb2dDb25maWcuZGF0YS5pdGVtID0gaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChhY3Rpb25EYXRhKSB7XG4gICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmRhdGEuYWN0aW9uRGF0YSA9IGFjdGlvbkRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGFibGV2aWV3KSB7XG4gICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmRhdGEudGFibGV2aWV3ID0gdGFibGV2aWV3O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNvdXJjZUNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5kYXRhLnNvdXJjZUNvbXBvbmVudCA9IHNvdXJjZUNvbXBvbmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKEFjdGlvbkRpYWxvZ0NvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcbiAgICAgICAgICAgIHJldHVybiBvZihuZXcgQWN0aW9uQWN0aXZhdGlvblJlc3VsdDxULCBTLCBJRGF0YVByb3ZpZGVyPFQsIFM+Pih1bmRlZmluZWQsIGRpYWxvZ1JlZikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZGlyZWN0bHkgZXhlY3V0ZSBhY3Rpb25cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJ1bkFjdGlvbjxULCBTPihhY3Rpb24sIGl0ZW1JZCwgaXRlbSwgdGFibGV2aWV3Py5kYXRhUHJvdmlkZXIgPz8gdW5kZWZpbmVkLCBzb3VyY2VDb21wb25lbnQsIHRhYmxldmlldywgYWN0aW9uRGF0YSlcbiAgICAgICAgICAgICAgICAucGlwZShtYXAocmVzID0+IG5ldyBBY3Rpb25BY3RpdmF0aW9uUmVzdWx0PFQsIFMsIElEYXRhUHJvdmlkZXI8VCwgUz4+KHJlcykpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyaWdnZXJzIGFjdGlvbiBmcm9tIHRhYmxlIHJvdyBjbGljayBwb3NpdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhY3Rpb24gQWN0aW9uIGRlc2NyaXB0b3IuXG4gICAgICogQHBhcmFtIGV2ZW50IFRhcmdldCB0YWJsZSBjbGljayBldmVudC5cbiAgICAgKiBAcGFyYW0gcm91dGUgQ3VycmVudGx5IGFjdGl2YXRlIHJvdXRlLlxuICAgICAqL1xuICAgIHB1YmxpYyB0cmlnZ2VyUm93Q2xpY2tBY3Rpb248VD4oYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9yPFQ+LCBldmVudDogTW5nVGFibGVDZWxsQ2xpY2tFdmVudDxUPiwgcm91dGU6IEFjdGl2YXRlZFJvdXRlfG51bGwgPSBudWxsKSB7XG4gICAgICAgIC8vIFRPRE86IHJlc29sdmUgdHMgaWdub3JlXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIHRoaXMudHJpZ2dlckFjdGlvbihhY3Rpb24sIGV2ZW50Py5yb3dJdGVtPy5bYWN0aW9uLm1vZGVsLmlkUHJvcGVydHlOYW1lXSwgZXZlbnQucm93SXRlbSwgbnVsbCwgcm91dGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyaWdnZXJzIGFjdGlvbiB3aXRoIG9wdGlvbmFsIGRhdGEgKGl0ZW0sIGl0ZW1JZCwgLi4uKSBhbmQgY3VycmVudGx5IGFjdGl2YXRlZCByb3V0ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhY3Rpb24gQWN0aW9uLlxuICAgICAqIEBwYXJhbSBhY3Rpb25EYXRhIE9wdGlvbmFsIGFjdGlvbiBkYXRhLlxuICAgICAqIEBwYXJhbSByb3V0ZSBPcHRpb25hbCBhY3RpdmF0ZWQgcm91dGUuXG4gICAgICovXG4gICAgcHVibGljIHRyaWdnZXJBY3Rpb248VCwgUz4oYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9yPFQ+LCBpdGVtSWQ/OiBJZFR5cGUsIGl0ZW0/OiBULCBhY3Rpb25EYXRhPzogQWN0aW9uRGF0YSwgcm91dGU/OiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZXZpZXc/OiBUYWJsZXZpZXdDb21wb25lbnRTZXJ2aWNlPFQsIFM+LCBzb3VyY2VDb21wb25lbnQ/OiBhbnkpOiBPYnNlcnZhYmxlPEFjdGlvblRyaWdnZXJSZXN1bHQ8VCwgUywgSURhdGFQcm92aWRlcjxULCBTPj4+IHtcbiAgICAgICAgaWYgKGFjdGlvbi5hY3RpdmF0aW9uVHJpZ2dlciA9PT0gQWN0aW9uQWN0aXZhdGlvblRyaWdnZXJFbnVtLk9uUm91dGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLnJvdXRlci51cmw7XG4gICAgICAgICAgICBsZXQgYWN0aW9uVXJsID0gYWN0aW9uLnJvdXRlVXJsID8/ICcnO1xuICAgICAgICAgICAgLy8gVE9ETzogZG9udCBzdHJpcCAnLycsIGJ1dCB1c2UgaXQgYWNjb3JkaW5nbHkgd2l0aCBBbmd1bGFyJ3Mgcm91dGVyIHBhdHRlcm5zICgvLCAuLywgLi4vKVxuICAgICAgICAgICAgaWYgKGFjdGlvblVybC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25VcmwgPSBhY3Rpb25Vcmwuc3Vic3RyaW5nKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYWN0aW9uVXJsU2VnbWVudHMgPSBhY3Rpb25Vcmwuc3BsaXQoJy8nKVxuICAgICAgICAgICAgICAgIC5tYXAocyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzID09PSAnOml0ZW1JZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtSWQ7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocy5zdGFydHNXaXRoKGA6JHthY3Rpb24ubW9kZWwudHlwZU5hbWV9LmApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiByZXNvbHZlIHRzIGlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0/LltzLnN1YnN0cmluZyhhY3Rpb24ubW9kZWwudHlwZU5hbWUubGVuZ3RoICsgMildID8/ICcnO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHMuc3RhcnRzV2l0aCgnOicpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWN0aW9uRGF0YT8uW3Muc3Vic3RyaW5nKDEpXSA/PyAnJztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gb2YobmV3IEFjdGlvblRyaWdnZXJSZXN1bHQ8VCwgUywgSURhdGFQcm92aWRlcjxULCBTPj4odW5kZWZpbmVkLCBmcm9tKHRoaXMucm91dGVyLm5hdmlnYXRlKFtiYXNlVXJsLCAuLi5hY3Rpb25VcmxTZWdtZW50c10sIHtyZWxhdGl2ZVRvOiByb3V0ZX0pKSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZhdGVBY3Rpb24oYWN0aW9uLCBpdGVtSWQsIGl0ZW0sIGFjdGlvbkRhdGEsIHRhYmxldmlldywgc291cmNlQ29tcG9uZW50KVxuICAgICAgICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gbmV3IEFjdGlvblRyaWdnZXJSZXN1bHQ8VCwgUywgSURhdGFQcm92aWRlcjxULCBTPj4ocmVzKSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class AppBreadcrumbService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.itemsSource = new Subject();
|
|
7
|
+
this.itemsHandler = this.itemsSource.asObservable();
|
|
8
|
+
}
|
|
9
|
+
setItems(items) {
|
|
10
|
+
this.itemsSource.next(items);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
AppBreadcrumbService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AppBreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14
|
+
AppBreadcrumbService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AppBreadcrumbService, providedIn: 'root' });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AppBreadcrumbService, decorators: [{
|
|
16
|
+
type: Injectable,
|
|
17
|
+
args: [{
|
|
18
|
+
providedIn: 'root'
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi9zZXJ2aWNlcy9icmVhZGNydW1iLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU0vQixNQUFNLE9BQU8sb0JBQW9CO0lBSGpDO1FBS1ksZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO1FBRWhELGlCQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQUtsRDtJQUhHLFFBQVEsQ0FBQyxLQUFpQjtRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOztpSEFSUSxvQkFBb0I7cUhBQXBCLG9CQUFvQixjQUZqQixNQUFNOzJGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBcHBCcmVhZGNydW1iU2VydmljZSB7XG5cbiAgICBwcml2YXRlIGl0ZW1zU291cmNlID0gbmV3IFN1YmplY3Q8TWVudUl0ZW1bXT4oKTtcblxuICAgIGl0ZW1zSGFuZGxlciA9IHRoaXMuaXRlbXNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBzZXRJdGVtcyhpdGVtczogTWVudUl0ZW1bXSkge1xuICAgICAgICB0aGlzLml0ZW1zU291cmNlLm5leHQoaXRlbXMpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { catchError, first, map } from 'rxjs/operators';
|
|
2
|
+
export class ConfigurationService {
|
|
3
|
+
constructor(http) {
|
|
4
|
+
this.http = http;
|
|
5
|
+
this.jsonEnvironments = [];
|
|
6
|
+
this.configuration = { ...this.projectEnvironment };
|
|
7
|
+
}
|
|
8
|
+
static init(httpClient) {
|
|
9
|
+
if (!this._instance) {
|
|
10
|
+
ConfigurationService._instance = new ConfigurationService(httpClient);
|
|
11
|
+
}
|
|
12
|
+
return ConfigurationService.get();
|
|
13
|
+
}
|
|
14
|
+
static get() {
|
|
15
|
+
if (!ConfigurationService._instance) {
|
|
16
|
+
throw new Error('Configuration service instance not set. Call init first.');
|
|
17
|
+
}
|
|
18
|
+
return ConfigurationService._instance;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Add project environment source.
|
|
22
|
+
* @param environemnt Environment.
|
|
23
|
+
*/
|
|
24
|
+
addEnvironmentSource(environment) {
|
|
25
|
+
this.projectEnvironment = environment;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Adds new config source from JSON file.
|
|
29
|
+
* @param url Url to JSON file.
|
|
30
|
+
*/
|
|
31
|
+
addJsonSource(url = this.projectEnvironment.configurationJsonSource) {
|
|
32
|
+
if (!url) {
|
|
33
|
+
console.warn('No path to configuration file specified. Setting default.');
|
|
34
|
+
url = 'assets/config/env{{environment}}.json';
|
|
35
|
+
}
|
|
36
|
+
const envName = this.projectEnvironment.name || (this.projectEnvironment.production ? 'prod' : 'dev');
|
|
37
|
+
url = url.replace('{{environment}}', '.' + envName);
|
|
38
|
+
return this.http.get(url)
|
|
39
|
+
.pipe(catchError((err => {
|
|
40
|
+
console.warn('Error loading configuration file:' + err.message + '. Falling back to env.json');
|
|
41
|
+
const pathSegments = url.split('/');
|
|
42
|
+
pathSegments[pathSegments.length - 1] = 'env.json';
|
|
43
|
+
return this.http.get(pathSegments.join('/'));
|
|
44
|
+
})), first(), map(res => {
|
|
45
|
+
this.jsonEnvironments.push(res);
|
|
46
|
+
this.mergeConfigs();
|
|
47
|
+
return true;
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get configuration.
|
|
52
|
+
*/
|
|
53
|
+
getConfig() {
|
|
54
|
+
return this.configuration;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get configuration value for key.
|
|
58
|
+
* @param key Configuration key.
|
|
59
|
+
*/
|
|
60
|
+
getConfigValue(key) {
|
|
61
|
+
return this.configuration[key] ? this.configuration[key] : null;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Merges configuration from multiple sources with
|
|
65
|
+
*/
|
|
66
|
+
mergeConfigs() {
|
|
67
|
+
let config = { ...this.projectEnvironment };
|
|
68
|
+
if (this.jsonEnvironments.length) {
|
|
69
|
+
for (const je of this.jsonEnvironments) {
|
|
70
|
+
config = { ...config, ...je };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
this.configuration = config;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
ConfigurationService._instance = null;
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi9zZXJ2aWNlcy9jb25maWd1cmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJdEQsTUFBTSxPQUFPLG9CQUFvQjtJQXFCN0IsWUFBNEIsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUpwQyxxQkFBZ0IsR0FBZSxFQUFFLENBQUM7UUFFbEMsa0JBQWEsR0FBRyxFQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFDLENBQUM7SUFHckQsQ0FBQztJQW5CTSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQXNCO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLG9CQUFvQixDQUFDLFNBQVMsR0FBRyxJQUFJLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3pFO1FBQ0QsT0FBTyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ00sTUFBTSxDQUFDLEdBQUc7UUFDYixJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztTQUMvRTtRQUNELE9BQU8sb0JBQW9CLENBQUMsU0FBUyxDQUFDO0lBQzFDLENBQUM7SUFVRDs7O09BR0c7SUFDSSxvQkFBb0IsQ0FBQyxXQUFnQjtRQUN4QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxhQUFhLENBQUMsTUFBYyxJQUFJLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCO1FBRTlFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7WUFDMUUsR0FBRyxHQUFHLHVDQUF1QyxDQUFDO1NBQ2pEO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBRXBELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxDQUFDO2FBQ3pCLElBQUksQ0FDRCxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUNBQW1DLEdBQUcsR0FBRyxDQUFDLE9BQU8sR0FBRyw0QkFBNEIsQ0FBQyxDQUFDO1lBRS9GLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDO1lBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDLEVBQ0gsS0FBSyxFQUFFLEVBQ1AsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGNBQWMsQ0FBQyxHQUFXO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BFLENBQUM7SUFFRDs7T0FFRztJQUNLLFlBQVk7UUFDaEIsSUFBSSxNQUFNLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBQyxDQUFDO1FBQzFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUM5QixLQUFLLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDcEMsTUFBTSxHQUFHLEVBQUMsR0FBRyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUMsQ0FBQzthQUMvQjtTQUNKO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDaEMsQ0FBQzs7QUF4RmMsOEJBQVMsR0FBOEIsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7Y2F0Y2hFcnJvciwgZmlyc3QsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Rm9ybWx5Q29uZmlnfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcblxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogQ29uZmlndXJhdGlvblNlcnZpY2V8bnVsbCA9IG51bGw7XG4gICAgcHVibGljIHN0YXRpYyBpbml0KGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpOiBDb25maWd1cmF0aW9uU2VydmljZSB7XG4gICAgICAgIGlmICghdGhpcy5faW5zdGFuY2UpIHtcbiAgICAgICAgICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlLl9pbnN0YW5jZSA9IG5ldyBDb25maWd1cmF0aW9uU2VydmljZShodHRwQ2xpZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0KCk7XG4gICAgfVxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0KCk6IENvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgICAgICAgaWYgKCFDb25maWd1cmF0aW9uU2VydmljZS5faW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29uZmlndXJhdGlvbiBzZXJ2aWNlIGluc3RhbmNlIG5vdCBzZXQuIENhbGwgaW5pdCBmaXJzdC4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQ29uZmlndXJhdGlvblNlcnZpY2UuX2luc3RhbmNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvamVjdEVudmlyb25tZW50PzogYW55O1xuICAgIHByaXZhdGUganNvbkVudmlyb25tZW50czogQXJyYXk8YW55PiA9IFtdO1xuXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uID0gey4uLnRoaXMucHJvamVjdEVudmlyb25tZW50fTtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHByb2plY3QgZW52aXJvbm1lbnQgc291cmNlLlxuICAgICAqIEBwYXJhbSBlbnZpcm9uZW1udCBFbnZpcm9ubWVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRW52aXJvbm1lbnRTb3VyY2UoZW52aXJvbm1lbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2plY3RFbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgbmV3IGNvbmZpZyBzb3VyY2UgZnJvbSBKU09OIGZpbGUuXG4gICAgICogQHBhcmFtIHVybCBVcmwgdG8gSlNPTiBmaWxlLlxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRKc29uU291cmNlKHVybDogc3RyaW5nID0gdGhpcy5wcm9qZWN0RW52aXJvbm1lbnQuY29uZmlndXJhdGlvbkpzb25Tb3VyY2UpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcblxuICAgICAgICBpZiAoIXVybCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdObyBwYXRoIHRvIGNvbmZpZ3VyYXRpb24gZmlsZSBzcGVjaWZpZWQuIFNldHRpbmcgZGVmYXVsdC4nKTtcbiAgICAgICAgICAgIHVybCA9ICdhc3NldHMvY29uZmlnL2Vudnt7ZW52aXJvbm1lbnR9fS5qc29uJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVudk5hbWUgPSB0aGlzLnByb2plY3RFbnZpcm9ubWVudC5uYW1lIHx8ICh0aGlzLnByb2plY3RFbnZpcm9ubWVudC5wcm9kdWN0aW9uID8gJ3Byb2QnIDogJ2RldicpO1xuICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgne3tlbnZpcm9ubWVudH19JywgJy4nICsgZW52TmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih1cmwpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0Vycm9yIGxvYWRpbmcgY29uZmlndXJhdGlvbiBmaWxlOicgKyBlcnIubWVzc2FnZSArICcuIEZhbGxpbmcgYmFjayB0byBlbnYuanNvbicpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGhTZWdtZW50cyA9IHVybC5zcGxpdCgnLycpO1xuICAgICAgICAgICAgICAgICAgICBwYXRoU2VnbWVudHNbcGF0aFNlZ21lbnRzLmxlbmd0aCAtIDFdID0gJ2Vudi5qc29uJztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihwYXRoU2VnbWVudHMuam9pbignLycpKTtcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5qc29uRW52aXJvbm1lbnRzLnB1c2gocmVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXJnZUNvbmZpZ3MoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgcHVibGljIGdldENvbmZpZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgY29uZmlndXJhdGlvbiB2YWx1ZSBmb3Iga2V5LlxuICAgICAqIEBwYXJhbSBrZXkgQ29uZmlndXJhdGlvbiBrZXkuXG4gICAgICovXG4gICAgcHVibGljIGdldENvbmZpZ1ZhbHVlKGtleTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25ba2V5XSA/IHRoaXMuY29uZmlndXJhdGlvbltrZXldIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXJnZXMgY29uZmlndXJhdGlvbiBmcm9tIG11bHRpcGxlIHNvdXJjZXMgd2l0aFxuICAgICAqL1xuICAgIHByaXZhdGUgbWVyZ2VDb25maWdzKCkge1xuICAgICAgICBsZXQgY29uZmlnID0gey4uLnRoaXMucHJvamVjdEVudmlyb25tZW50fTtcbiAgICAgICAgaWYgKHRoaXMuanNvbkVudmlyb25tZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgamUgb2YgdGhpcy5qc29uRW52aXJvbm1lbnRzKSB7XG4gICAgICAgICAgICAgICAgY29uZmlnID0gey4uLmNvbmZpZywgLi4uamV9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZztcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './action.service';
|
|
2
|
+
export * from './breadcrumb.service';
|
|
3
|
+
export * from './configuration.service';
|
|
4
|
+
export * from './menu.service';
|
|
5
|
+
export * from './navigation.service';
|
|
6
|
+
export * from './settings.service';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2JyZWFkY3J1bWIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21lbnUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NldHRpbmdzLnNlcnZpY2UnO1xuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class MenuService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.menuSource = new Subject();
|
|
7
|
+
this.resetSource = new Subject();
|
|
8
|
+
this.menuSource$ = this.menuSource.asObservable();
|
|
9
|
+
this.resetSource$ = this.resetSource.asObservable();
|
|
10
|
+
}
|
|
11
|
+
onMenuStateChange(key) {
|
|
12
|
+
this.menuSource.next(key);
|
|
13
|
+
}
|
|
14
|
+
reset() {
|
|
15
|
+
this.resetSource.next(null);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
MenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19
|
+
MenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MenuService, providedIn: 'root' });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MenuService, decorators: [{
|
|
21
|
+
type: Injectable,
|
|
22
|
+
args: [{
|
|
23
|
+
providedIn: 'root'
|
|
24
|
+
}]
|
|
25
|
+
}] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi9zZXJ2aWNlcy9tZW51LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUsvQixNQUFNLE9BQU8sV0FBVztJQUh4QjtRQUtZLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVwQyxnQkFBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0MsaUJBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0tBU2xEO0lBUEcsaUJBQWlCLENBQUMsR0FBVztRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7O3dHQWRRLFdBQVc7NEdBQVgsV0FBVyxjQUZSLE1BQU07MkZBRVQsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTWVudVNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBtZW51U291cmNlID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICAgIHByaXZhdGUgcmVzZXRTb3VyY2UgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgbWVudVNvdXJjZSQgPSB0aGlzLm1lbnVTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgcmVzZXRTb3VyY2UkID0gdGhpcy5yZXNldFNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICAgIG9uTWVudVN0YXRlQ2hhbmdlKGtleTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMubWVudVNvdXJjZS5uZXh0KGtleSk7XG4gICAgfVxuXG4gICAgcmVzZXQoKSB7XG4gICAgICAgIHRoaXMucmVzZXRTb3VyY2UubmV4dChudWxsKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { NavigationEnd } from '@angular/router';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/router";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
export class NavigationService {
|
|
7
|
+
constructor(router, location) {
|
|
8
|
+
this.router = router;
|
|
9
|
+
this.location = location;
|
|
10
|
+
this.history = [];
|
|
11
|
+
this.router.events.subscribe((event) => {
|
|
12
|
+
if (event instanceof NavigationEnd) {
|
|
13
|
+
this.history.push(event.urlAfterRedirects);
|
|
14
|
+
console.log(this.history);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
getCurrentLocation() {
|
|
19
|
+
if (this.history.length > 0) {
|
|
20
|
+
return this.history[this.history.length - 1];
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
getPreviousLocation() {
|
|
27
|
+
if (this.history.length > 1) {
|
|
28
|
+
return this.history[this.history.length - 2];
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
back() {
|
|
35
|
+
this.history.pop();
|
|
36
|
+
if (this.history.length > 0) {
|
|
37
|
+
this.location.back();
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.router.navigateByUrl('/');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
NavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NavigationService, deps: [{ token: i1.Router }, { token: i2.Location }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
45
|
+
NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NavigationService });
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NavigationService, decorators: [{
|
|
47
|
+
type: Injectable
|
|
48
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.Location }]; } });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsYUFBYSxFQUFTLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFJdEQsTUFBTSxPQUFPLGlCQUFpQjtJQUkxQixZQUFvQixNQUFjLEVBQVUsUUFBa0I7UUFBMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFGdEQsWUFBTyxHQUFrQixFQUFFLENBQUM7UUFHaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFO2dCQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDN0I7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ2hEO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQztJQUVNLG1CQUFtQjtRQUN0QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDaEQ7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDTCxDQUFDO0lBRU0sSUFBSTtRQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN4QjthQUFNO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUE7U0FDakM7SUFDTCxDQUFDOzs4R0FwQ1EsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25FbmQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7TG9jYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uU2VydmljZSB7XG5cbiAgICBwcml2YXRlIGhpc3Rvcnk6IEFycmF5PHN0cmluZz4gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uKSB7XG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5LnB1c2goZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuaGlzdG9yeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDdXJyZW50TG9jYXRpb24oKTogc3RyaW5nfG51bGwge1xuICAgICAgICBpZiAodGhpcy5oaXN0b3J5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5Lmxlbmd0aCAtIDFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UHJldmlvdXNMb2NhdGlvbigpOiBzdHJpbmd8bnVsbCB7XG4gICAgICAgIGlmICh0aGlzLmhpc3RvcnkubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGlzdG9yeVt0aGlzLmhpc3RvcnkubGVuZ3RoIC0gMl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBiYWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpc3RvcnkucG9wKCk7XG4gICAgICAgIGlmICh0aGlzLmhpc3RvcnkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvJylcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ConfigurationService } from '../configuration.service';
|
|
2
|
+
export const configurationServiceProvider = (httpClient, moduleConfig) => {
|
|
3
|
+
const service = ConfigurationService.init(httpClient);
|
|
4
|
+
if (moduleConfig?.configuration?.projectEnvironment) {
|
|
5
|
+
service.addEnvironmentSource(moduleConfig.configuration.projectEnvironment);
|
|
6
|
+
}
|
|
7
|
+
return service;
|
|
8
|
+
};
|
|
9
|
+
export function configJsonAppInitializerProvider(configService, moduleConfig) {
|
|
10
|
+
return () => configService.addJsonSource(moduleConfig?.configuration?.jsonSource ?? undefined);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXNlcnZpY2UucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL3NlcnZpY2VzL3Byb3ZpZGVycy9jb25maWctc2VydmljZS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLFVBQXNCLEVBQUUsWUFBNkIsRUFBd0IsRUFBRTtJQUN4SCxNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEQsSUFBSSxZQUFZLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFO1FBQ2pELE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDL0U7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDLENBQUE7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQUMsYUFBbUMsRUFBRSxZQUE2QjtJQUMvRyxPQUFPLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxVQUFVLElBQUksU0FBUyxDQUFDLENBQUM7QUFDbkcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtNbmdNb2R1bGVDb25maWd9IGZyb20gJy4uLy4uL21vZGVscy9jb25maWcnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IGNvbmZpZ3VyYXRpb25TZXJ2aWNlUHJvdmlkZXIgPSAoaHR0cENsaWVudDogSHR0cENsaWVudCwgbW9kdWxlQ29uZmlnOiBNbmdNb2R1bGVDb25maWcpOiBDb25maWd1cmF0aW9uU2VydmljZSA9PiB7XG4gICAgY29uc3Qgc2VydmljZSA9IENvbmZpZ3VyYXRpb25TZXJ2aWNlLmluaXQoaHR0cENsaWVudCk7XG4gICAgaWYgKG1vZHVsZUNvbmZpZz8uY29uZmlndXJhdGlvbj8ucHJvamVjdEVudmlyb25tZW50KSB7XG4gICAgICAgIHNlcnZpY2UuYWRkRW52aXJvbm1lbnRTb3VyY2UobW9kdWxlQ29uZmlnLmNvbmZpZ3VyYXRpb24ucHJvamVjdEVudmlyb25tZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHNlcnZpY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25maWdKc29uQXBwSW5pdGlhbGl6ZXJQcm92aWRlcihjb25maWdTZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSwgbW9kdWxlQ29uZmlnOiBNbmdNb2R1bGVDb25maWcpIHtcbiAgICByZXR1cm4gKCkgPT4gY29uZmlnU2VydmljZS5hZGRKc29uU291cmNlKG1vZHVsZUNvbmZpZz8uY29uZmlndXJhdGlvbj8uanNvblNvdXJjZSA/PyB1bmRlZmluZWQpO1xufVxuIl19
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { formlyTypesConfig, formlyWrappersConfig, getFormlyValidationMessages } from '../../config';
|
|
2
|
+
export function formlyConfigProvider(translate, moduleConfig = {}) {
|
|
3
|
+
const merge = moduleConfig.formly?.merge ?? true;
|
|
4
|
+
let types = formlyTypesConfig;
|
|
5
|
+
if (moduleConfig.formly?.types) {
|
|
6
|
+
if (!merge) {
|
|
7
|
+
types = [];
|
|
8
|
+
}
|
|
9
|
+
types = [...types, ...moduleConfig.formly.types];
|
|
10
|
+
}
|
|
11
|
+
let wrappers = formlyWrappersConfig;
|
|
12
|
+
if (moduleConfig.formly?.wrappers) {
|
|
13
|
+
if (!merge) {
|
|
14
|
+
wrappers = [];
|
|
15
|
+
}
|
|
16
|
+
wrappers = [...wrappers, ...moduleConfig.formly.wrappers];
|
|
17
|
+
}
|
|
18
|
+
let validationMessages = getFormlyValidationMessages(translate);
|
|
19
|
+
if (typeof moduleConfig.formly?.getValidationMessages === 'function') {
|
|
20
|
+
if (!merge) {
|
|
21
|
+
validationMessages = [];
|
|
22
|
+
}
|
|
23
|
+
validationMessages = [...validationMessages, ...moduleConfig.formly.getValidationMessages(translate)];
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
types: types,
|
|
27
|
+
wrappers: wrappers,
|
|
28
|
+
validationMessages: validationMessages
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWNvbmZpZy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvc2VydmljZXMvcHJvdmlkZXJzL2Zvcm1seS1jb25maWcucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLDJCQUEyQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRWxHLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxTQUEyQixFQUFFLGVBQWdDLEVBQUU7SUFDaEcsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDO0lBRWpELElBQUksS0FBSyxHQUFHLGlCQUFpQixDQUFDO0lBQzlCLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUU7UUFDNUIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDZDtRQUNELEtBQUssR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNwRDtJQUVELElBQUksUUFBUSxHQUFHLG9CQUFvQixDQUFDO0lBQ3BDLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUU7UUFDL0IsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLFFBQVEsR0FBRyxFQUFFLENBQUM7U0FDakI7UUFDRCxRQUFRLEdBQUcsQ0FBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDN0Q7SUFFRCxJQUFJLGtCQUFrQixHQUFHLDJCQUEyQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hFLElBQUksT0FBTyxZQUFZLENBQUMsTUFBTSxFQUFFLHFCQUFxQixLQUFLLFVBQVUsRUFBRTtRQUNsRSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1Isa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1NBQzNCO1FBQ0Qsa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixFQUFFLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0tBQ3pHO0lBRUQsT0FBTztRQUNILEtBQUssRUFBRSxLQUFLO1FBQ1osUUFBUSxFQUFFLFFBQVE7UUFDbEIsa0JBQWtCLEVBQUUsa0JBQWtCO0tBQ3pDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q29uZmlnT3B0aW9ufSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcblxuaW1wb3J0IHtNbmdNb2R1bGVDb25maWd9IGZyb20gJy4uLy4uL21vZGVscy9jb25maWcnO1xuaW1wb3J0IHtmb3JtbHlUeXBlc0NvbmZpZywgZm9ybWx5V3JhcHBlcnNDb25maWcsIGdldEZvcm1seVZhbGlkYXRpb25NZXNzYWdlc30gZnJvbSAnLi4vLi4vY29uZmlnJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1seUNvbmZpZ1Byb3ZpZGVyKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgbW9kdWxlQ29uZmlnOiBNbmdNb2R1bGVDb25maWcgPSB7fSk6IENvbmZpZ09wdGlvbiB7XG4gICAgY29uc3QgbWVyZ2UgPSBtb2R1bGVDb25maWcuZm9ybWx5Py5tZXJnZSA/PyB0cnVlO1xuXG4gICAgbGV0IHR5cGVzID0gZm9ybWx5VHlwZXNDb25maWc7XG4gICAgaWYgKG1vZHVsZUNvbmZpZy5mb3JtbHk/LnR5cGVzKSB7XG4gICAgICAgIGlmICghbWVyZ2UpIHtcbiAgICAgICAgICAgIHR5cGVzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgdHlwZXMgPSBbLi4udHlwZXMsIC4uLm1vZHVsZUNvbmZpZy5mb3JtbHkudHlwZXNdO1xuICAgIH1cblxuICAgIGxldCB3cmFwcGVycyA9IGZvcm1seVdyYXBwZXJzQ29uZmlnO1xuICAgIGlmIChtb2R1bGVDb25maWcuZm9ybWx5Py53cmFwcGVycykge1xuICAgICAgICBpZiAoIW1lcmdlKSB7XG4gICAgICAgICAgICB3cmFwcGVycyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHdyYXBwZXJzID0gWy4uLndyYXBwZXJzLCAuLi5tb2R1bGVDb25maWcuZm9ybWx5LndyYXBwZXJzXTtcbiAgICB9XG5cbiAgICBsZXQgdmFsaWRhdGlvbk1lc3NhZ2VzID0gZ2V0Rm9ybWx5VmFsaWRhdGlvbk1lc3NhZ2VzKHRyYW5zbGF0ZSk7XG4gICAgaWYgKHR5cGVvZiBtb2R1bGVDb25maWcuZm9ybWx5Py5nZXRWYWxpZGF0aW9uTWVzc2FnZXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWYgKCFtZXJnZSkge1xuICAgICAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VzID0gWy4uLnZhbGlkYXRpb25NZXNzYWdlcywgLi4ubW9kdWxlQ29uZmlnLmZvcm1seS5nZXRWYWxpZGF0aW9uTWVzc2FnZXModHJhbnNsYXRlKV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZXM6IHR5cGVzLFxuICAgICAgICB3cmFwcGVyczogd3JhcHBlcnMsXG4gICAgICAgIHZhbGlkYXRpb25NZXNzYWdlczogdmFsaWRhdGlvbk1lc3NhZ2VzXG4gICAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './config-service.provider';
|
|
2
|
+
export * from './formly-config.provider';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL3NlcnZpY2VzL3Byb3ZpZGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbmZpZy1zZXJ2aWNlLnByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWx5LWNvbmZpZy5wcm92aWRlcic7XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "primeng/api";
|
|
4
|
+
export class AppSettingsService {
|
|
5
|
+
constructor(primengConfig) {
|
|
6
|
+
this.primengConfig = primengConfig;
|
|
7
|
+
this._menuMode = 'sidebar';
|
|
8
|
+
this._colorScheme = 'light';
|
|
9
|
+
}
|
|
10
|
+
get menuMode() {
|
|
11
|
+
return this._menuMode;
|
|
12
|
+
}
|
|
13
|
+
get colorScheme() {
|
|
14
|
+
return this._colorScheme;
|
|
15
|
+
}
|
|
16
|
+
init() {
|
|
17
|
+
this.primengConfig.ripple = true;
|
|
18
|
+
}
|
|
19
|
+
isStatic() {
|
|
20
|
+
return this.menuMode === 'static';
|
|
21
|
+
}
|
|
22
|
+
isOverlay() {
|
|
23
|
+
return this.menuMode === 'overlay';
|
|
24
|
+
}
|
|
25
|
+
isSlim() {
|
|
26
|
+
return this.menuMode === 'slim';
|
|
27
|
+
}
|
|
28
|
+
isHorizontal() {
|
|
29
|
+
return this.menuMode === 'horizontal';
|
|
30
|
+
}
|
|
31
|
+
isSidebar() {
|
|
32
|
+
return this.menuMode === 'sidebar';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
AppSettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AppSettingsService, deps: [{ token: i1.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
|
+
AppSettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AppSettingsService });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AppSettingsService, decorators: [{
|
|
38
|
+
type: Injectable
|
|
39
|
+
}], ctorParameters: function () { return [{ type: i1.PrimeNGConfig }]; } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvc2VydmljZXMvc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUszQixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUgvQixjQUFTLEdBQXFELFNBQVMsQ0FBQztRQUN4RSxpQkFBWSxHQUFtQixPQUFPLENBQUM7SUFFSixDQUFDO0lBRXJELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRU0sSUFBSTtRQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUM7SUFDdEMsQ0FBQztJQUVELFNBQVM7UUFDTCxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNO1FBQ0YsT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFBWTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxZQUFZLENBQUM7SUFDMUMsQ0FBQztJQUVELFNBQVM7UUFDTCxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDO0lBQ3ZDLENBQUM7OytHQXJDUSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQcmltZU5HQ29uZmlnfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcHBTZXR0aW5nc1NlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWVudU1vZGU6ICdzdGF0aWMnfCdzaWRlYmFyJ3wnc2xpbSd8J2hvcml6b250YWwnfCdvdmVybGF5JyA9ICdzaWRlYmFyJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb2xvclNjaGVtZTogJ2xpZ2h0J3wnZGFyaycgPSAnbGlnaHQnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBwcmltZW5nQ29uZmlnOiBQcmltZU5HQ29uZmlnKSB7IH1cblxuICAgIHB1YmxpYyBnZXQgbWVudU1vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tZW51TW9kZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbG9yU2NoZW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sb3JTY2hlbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXQoKSB7XG4gICAgICAgIHRoaXMucHJpbWVuZ0NvbmZpZy5yaXBwbGUgPSB0cnVlO1xuICAgIH1cblxuICAgIGlzU3RhdGljKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tZW51TW9kZSA9PT0gJ3N0YXRpYyc7XG4gICAgfVxuXG4gICAgaXNPdmVybGF5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tZW51TW9kZSA9PT0gJ292ZXJsYXknO1xuICAgIH1cblxuICAgIGlzU2xpbSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWVudU1vZGUgPT09ICdzbGltJztcbiAgICB9XG5cbiAgICBpc0hvcml6b250YWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1lbnVNb2RlID09PSAnaG9yaXpvbnRhbCc7XG4gICAgfVxuXG4gICAgaXNTaWRlYmFyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tZW51TW9kZSA9PT0gJ3NpZGViYXInO1xuICAgIH1cbn1cbiJdfQ==
|