@mediusinc/mng-commons 0.2.0 → 0.2.6
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/esm2020/lib/api/models/builders/query-param.builder.mjs +48 -48
- package/esm2020/lib/api/models/filter-match-type.model.mjs +26 -26
- package/esm2020/lib/api/models/filter-param.model.mjs +46 -46
- package/esm2020/lib/api/models/index.mjs +9 -9
- package/esm2020/lib/api/models/mappers.mjs +17 -17
- package/esm2020/lib/api/models/query-mode.model.mjs +19 -19
- package/esm2020/lib/api/models/query-param.model.mjs +69 -69
- package/esm2020/lib/api/models/query-result.model.mjs +45 -45
- package/esm2020/lib/api/models/serialization.model.mjs +2 -2
- package/esm2020/lib/api/services/crud-api.abstract.service.mjs +72 -72
- package/esm2020/lib/api/services/index.mjs +2 -2
- package/esm2020/lib/api/utils/index.mjs +3 -3
- package/esm2020/lib/api/utils/medius-rest.util.mjs +122 -122
- package/esm2020/lib/api/utils/object-serializer.util.mjs +226 -226
- package/esm2020/lib/components/action/action.component.mjs +65 -65
- package/esm2020/lib/components/action/dialog/action-dialog.component.mjs +148 -148
- package/esm2020/lib/components/action/index.mjs +4 -4
- package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +2 -2
- package/esm2020/lib/components/action/models/action-execution.model.mjs +58 -58
- package/esm2020/lib/components/action/models/index.mjs +3 -3
- package/esm2020/lib/components/action/route/action-route.component.mjs +144 -144
- package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +114 -114
- package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +113 -113
- package/esm2020/lib/components/form/editor/form-editor.component.mjs +141 -141
- package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +19 -19
- package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +19 -19
- package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +16 -16
- package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +30 -26
- package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +108 -109
- package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +122 -122
- package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +17 -17
- package/esm2020/lib/components/form/formly/fields/index.mjs +8 -8
- package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +17 -17
- package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +16 -16
- package/esm2020/lib/components/form/formly/wrappers/index.mjs +3 -3
- package/esm2020/lib/components/form/index.mjs +4 -4
- package/esm2020/lib/components/form/models/form-editor.event.mjs +7 -7
- package/esm2020/lib/components/form/models/index.mjs +2 -2
- package/esm2020/lib/components/layout/breadcrumb.component.mjs +17 -17
- package/esm2020/lib/components/layout/footer.component.mjs +17 -17
- package/esm2020/lib/components/layout/index.mjs +7 -7
- package/esm2020/lib/components/layout/main-layout.component.mjs +54 -54
- package/esm2020/lib/components/layout/menu-item.component.mjs +173 -173
- package/esm2020/lib/components/layout/menu.component.mjs +20 -20
- package/esm2020/lib/components/layout/services/index.mjs +2 -2
- package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +190 -190
- package/esm2020/lib/components/layout/topbar.component.mjs +59 -59
- package/esm2020/lib/components/tableview/index.mjs +7 -6
- package/esm2020/lib/components/tableview/models/index.mjs +2 -2
- package/esm2020/lib/components/tableview/models/table.event.mjs +16 -16
- package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +24 -24
- package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +33 -0
- package/esm2020/lib/components/tableview/services/index.mjs +2 -2
- package/esm2020/lib/components/tableview/services/tableview.component.service.mjs +16 -17
- package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +85 -74
- package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +25 -25
- package/esm2020/lib/components/tableview/table/table.component.mjs +307 -307
- package/esm2020/lib/components/tableview/tableview.component.mjs +82 -82
- package/esm2020/lib/config/formly.config.mjs +136 -136
- package/esm2020/lib/config/index.mjs +2 -2
- package/esm2020/lib/config/models/index.mjs +2 -2
- package/esm2020/lib/config/models/mng-config.model.mjs +2 -2
- package/esm2020/lib/data-providers/base.data-provider.mjs +24 -24
- package/esm2020/lib/data-providers/editor.data-provider.mjs +37 -37
- package/esm2020/lib/data-providers/index.mjs +6 -6
- package/esm2020/lib/data-providers/lookup.data-provider.mjs +16 -16
- package/esm2020/lib/data-providers/table.data-provider.mjs +2 -2
- package/esm2020/lib/data-providers/tableview.data-provider.mjs +17 -17
- package/esm2020/lib/descriptors/action.descriptor.mjs +332 -332
- package/esm2020/lib/descriptors/editor.descriptor.mjs +670 -670
- package/esm2020/lib/descriptors/field.validator.mjs +21 -21
- package/esm2020/lib/descriptors/index.mjs +8 -8
- package/esm2020/lib/descriptors/lookup.descriptor.mjs +2 -2
- package/esm2020/lib/descriptors/model.descriptor.mjs +34 -34
- package/esm2020/lib/descriptors/table.descriptor.mjs +427 -401
- package/esm2020/lib/descriptors/tableview.descriptor.mjs +131 -131
- package/esm2020/lib/directives/component.directive.mjs +23 -23
- package/esm2020/lib/directives/index.mjs +3 -3
- package/esm2020/lib/directives/template.directive.mjs +29 -29
- package/esm2020/lib/mng-commons.module.mjs +412 -410
- package/esm2020/lib/models/index.mjs +2 -3
- package/esm2020/lib/models/user.model.mjs +2 -2
- package/esm2020/lib/pipes/boolean.pipe.mjs +22 -22
- package/esm2020/lib/pipes/index.mjs +3 -3
- package/esm2020/lib/pipes/property-path.pipe.mjs +36 -36
- package/esm2020/lib/router/index.mjs +2 -0
- package/esm2020/lib/router/models/index.mjs +2 -0
- package/esm2020/lib/router/models/router.model.mjs +2 -0
- package/esm2020/lib/router/route-builder.mjs +288 -0
- package/esm2020/lib/services/action.service.mjs +269 -269
- package/esm2020/lib/services/commons.service.mjs +354 -353
- package/esm2020/lib/services/configuration.service.mjs +78 -78
- package/esm2020/lib/services/index.mjs +5 -5
- package/esm2020/lib/services/navigation.service.mjs +48 -48
- package/esm2020/lib/services/providers/commons-init.provider.mjs +4 -4
- package/esm2020/lib/services/providers/config-service.provider.mjs +20 -20
- package/esm2020/lib/services/providers/formly-config.provider.mjs +31 -31
- package/esm2020/lib/services/providers/index.mjs +4 -4
- package/esm2020/lib/services/tokens/browser-storage.token.mjs +6 -6
- package/esm2020/lib/services/tokens/index.mjs +3 -3
- package/esm2020/lib/services/tokens/module-config.token.mjs +3 -3
- package/esm2020/lib/types/index.mjs +3 -3
- package/esm2020/lib/types/type.decorator.mjs +7 -7
- package/esm2020/lib/types/type.model.mjs +2 -2
- package/esm2020/lib/utils/editor-formly.util.mjs +176 -176
- package/esm2020/lib/utils/i18n.util.mjs +125 -125
- package/esm2020/lib/utils/index.mjs +6 -6
- package/esm2020/lib/utils/model.util.mjs +57 -57
- package/esm2020/lib/utils/route.util.mjs +24 -0
- package/esm2020/lib/utils/toast.util.mjs +39 -39
- package/esm2020/lib/utils/type.util.mjs +39 -39
- package/esm2020/mediusinc-mng-commons.mjs +5 -5
- package/esm2020/public-api.mjs +37 -36
- package/fesm2015/mediusinc-mng-commons.mjs +6407 -6024
- package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
- package/fesm2020/mediusinc-mng-commons.mjs +6329 -5950
- package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
- package/lib/api/models/builders/query-param.builder.d.ts +11 -11
- package/lib/api/models/filter-match-type.model.d.ts +23 -23
- package/lib/api/models/filter-param.model.d.ts +23 -23
- package/lib/api/models/index.d.ts +8 -8
- package/lib/api/models/mappers.d.ts +6 -6
- package/lib/api/models/query-mode.model.d.ts +16 -16
- package/lib/api/models/query-param.model.d.ts +31 -31
- package/lib/api/models/query-result.model.d.ts +36 -36
- package/lib/api/models/serialization.model.d.ts +8 -8
- package/lib/api/services/crud-api.abstract.service.d.ts +23 -23
- package/lib/api/services/index.d.ts +1 -1
- package/lib/api/utils/index.d.ts +2 -2
- package/lib/api/utils/medius-rest.util.d.ts +12 -12
- package/lib/api/utils/object-serializer.util.d.ts +30 -30
- package/lib/components/action/action.component.d.ts +36 -36
- package/lib/components/action/dialog/action-dialog.component.d.ts +46 -46
- package/lib/components/action/index.d.ts +3 -3
- package/lib/components/action/models/action-confirmation-service.model.d.ts +6 -6
- package/lib/components/action/models/action-execution.model.d.ts +53 -53
- package/lib/components/action/models/index.d.ts +2 -2
- package/lib/components/action/route/action-route.component.d.ts +32 -32
- package/lib/components/form/autocomplete/autocomplete.component.d.ts +36 -36
- package/lib/components/form/dropdown/dropdown.component.d.ts +34 -34
- package/lib/components/form/editor/form-editor.component.d.ts +39 -39
- package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +11 -11
- package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +11 -11
- package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +6 -6
- package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +12 -12
- package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +17 -17
- package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +36 -36
- package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +6 -6
- package/lib/components/form/formly/fields/index.d.ts +7 -7
- package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +8 -8
- package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +8 -8
- package/lib/components/form/formly/wrappers/index.d.ts +2 -2
- package/lib/components/form/index.d.ts +3 -3
- package/lib/components/form/models/form-editor.event.d.ts +5 -5
- package/lib/components/form/models/index.d.ts +1 -1
- package/lib/components/layout/breadcrumb.component.d.ts +8 -8
- package/lib/components/layout/footer.component.d.ts +9 -9
- package/lib/components/layout/index.d.ts +6 -6
- package/lib/components/layout/main-layout.component.d.ts +21 -21
- package/lib/components/layout/menu-item.component.d.ts +29 -29
- package/lib/components/layout/menu.component.d.ts +10 -10
- package/lib/components/layout/services/index.d.ts +1 -1
- package/lib/components/layout/services/main-layout.component.service.d.ts +65 -65
- package/lib/components/layout/topbar.component.d.ts +25 -25
- package/lib/components/tableview/index.d.ts +6 -5
- package/lib/components/tableview/models/index.d.ts +1 -1
- package/lib/components/tableview/models/table.event.d.ts +17 -17
- package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +15 -14
- package/lib/components/tableview/route/tableview-route.component.d.ts +15 -0
- package/lib/components/tableview/services/index.d.ts +1 -1
- package/lib/components/tableview/services/tableview.component.service.d.ts +13 -13
- package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +27 -22
- package/lib/components/tableview/table/column-value/column-value.component.d.ts +12 -12
- package/lib/components/tableview/table/table.component.d.ts +79 -79
- package/lib/components/tableview/tableview.component.d.ts +35 -35
- package/lib/config/formly.config.d.ts +14 -14
- package/lib/config/index.d.ts +1 -1
- package/lib/config/models/index.d.ts +1 -1
- package/lib/config/models/mng-config.model.d.ts +34 -34
- package/lib/data-providers/base.data-provider.d.ts +17 -17
- package/lib/data-providers/editor.data-provider.d.ts +25 -25
- package/lib/data-providers/index.d.ts +5 -5
- package/lib/data-providers/lookup.data-provider.d.ts +14 -14
- package/lib/data-providers/table.data-provider.d.ts +6 -6
- package/lib/data-providers/tableview.data-provider.d.ts +15 -15
- package/lib/descriptors/action.descriptor.d.ts +148 -148
- package/lib/descriptors/editor.descriptor.d.ts +255 -255
- package/lib/descriptors/field.validator.d.ts +18 -18
- package/lib/descriptors/index.d.ts +7 -7
- package/lib/descriptors/lookup.descriptor.d.ts +17 -17
- package/lib/descriptors/model.descriptor.d.ts +15 -15
- package/lib/descriptors/table.descriptor.d.ts +184 -164
- package/lib/descriptors/tableview.descriptor.d.ts +39 -39
- package/lib/directives/component.directive.d.ts +11 -11
- package/lib/directives/index.d.ts +2 -2
- package/lib/directives/template.directive.d.ts +13 -13
- package/lib/mng-commons.module.d.ts +80 -79
- package/lib/models/index.d.ts +1 -2
- package/lib/models/user.model.d.ts +8 -8
- package/lib/pipes/boolean.pipe.d.ts +7 -7
- package/lib/pipes/index.d.ts +2 -2
- package/lib/pipes/property-path.pipe.d.ts +7 -7
- package/lib/router/index.d.ts +1 -0
- package/lib/router/models/index.d.ts +1 -0
- package/lib/router/models/router.model.d.ts +22 -0
- package/lib/router/route-builder.d.ts +66 -0
- package/lib/services/action.service.d.ts +92 -92
- package/lib/services/commons.service.d.ts +72 -72
- package/lib/services/configuration.service.d.ts +35 -35
- package/lib/services/index.d.ts +4 -4
- package/lib/services/navigation.service.d.ts +14 -14
- package/lib/services/providers/commons-init.provider.d.ts +2 -2
- package/lib/services/providers/config-service.provider.d.ts +5 -5
- package/lib/services/providers/formly-config.provider.d.ts +4 -4
- package/lib/services/providers/index.d.ts +3 -3
- package/lib/services/tokens/browser-storage.token.d.ts +2 -2
- package/lib/services/tokens/index.d.ts +2 -2
- package/lib/services/tokens/module-config.token.d.ts +3 -3
- package/lib/types/index.d.ts +2 -2
- package/lib/types/type.decorator.d.ts +2 -2
- package/lib/types/type.model.d.ts +10 -10
- package/lib/utils/editor-formly.util.d.ts +9 -9
- package/lib/utils/i18n.util.d.ts +18 -18
- package/lib/utils/index.d.ts +5 -5
- package/lib/utils/model.util.d.ts +7 -7
- package/lib/utils/route.util.d.ts +4 -0
- package/lib/utils/toast.util.d.ts +13 -13
- package/lib/utils/type.util.d.ts +15 -15
- package/mediusinc-mng-commons.d.ts +5 -5
- package/package.json +4 -4
- package/public-api.d.ts +26 -25
- package/scss/common/layout/_exception.scss +1 -1
- package/esm2020/lib/models/router.model.mjs +0 -2
- package/lib/models/router.model.d.ts +0 -14
- package/mediusinc-mng-commons-0.2.0.tgz +0 -0
|
@@ -1,125 +1,125 @@
|
|
|
1
|
-
import { first, map, mergeMap } from 'rxjs/operators';
|
|
2
|
-
export class I18nUtil {
|
|
3
|
-
static instantModelTranslation(translate, model, keyPath, customKey, item, fallbackKey, i18nParams) {
|
|
4
|
-
const keys = I18nUtil.getModelKeysByPriority(model, keyPath, customKey, fallbackKey);
|
|
5
|
-
const i18nModelName = I18nUtil.instantModelName(translate, model, true);
|
|
6
|
-
const i18n = translate.instant(keys, I18nUtil.getModelI18nParams(model, item, i18nModelName ?? undefined, i18nParams));
|
|
7
|
-
return I18nUtil.selectKeyByPriority(keys, i18n);
|
|
8
|
-
}
|
|
9
|
-
static instantActionTranslation(translate, action, keyPath, customKey, item, fallbackKey, functionNameKey, i18nParams) {
|
|
10
|
-
const keys = I18nUtil.getActionKeysByPriority(action, keyPath, customKey, fallbackKey);
|
|
11
|
-
const i18nModelName = I18nUtil.instantModelName(translate, action?.model, true);
|
|
12
|
-
const i18nFunctionTitle = I18nUtil.getFunctionTitle(translate, functionNameKey);
|
|
13
|
-
const i18n = translate.instant(keys, I18nUtil.getActionI18nParams(action, item, i18nModelName ?? undefined, i18nParams, i18nFunctionTitle));
|
|
14
|
-
return I18nUtil.selectKeyByPriority(keys, i18n);
|
|
15
|
-
}
|
|
16
|
-
static streamActionTranslation(translate, action, keyPath, customKey, item, fallbackKey) {
|
|
17
|
-
return I18nUtil.getActionTranslation(translate, action, keyPath, customKey, item, fallbackKey, false);
|
|
18
|
-
}
|
|
19
|
-
static getActionTranslation(translate, action, keyPath, customKey, item, fallbackKey, oneTime = true) {
|
|
20
|
-
const keys = I18nUtil.getActionKeysByPriority(action, keyPath, customKey, fallbackKey);
|
|
21
|
-
return I18nUtil.getModelName(translate, action?.model, oneTime, true).pipe(mergeMap(i18nModelName => translate.get(keys, I18nUtil.getActionI18nParams(action, item, i18nModelName ?? undefined))), map(i18n => I18nUtil.selectKeyByPriority(keys, i18n)));
|
|
22
|
-
}
|
|
23
|
-
static getModelKeysByPriority(model, keyPath, customKey, fallbackKey) {
|
|
24
|
-
const keys = [];
|
|
25
|
-
if (customKey) {
|
|
26
|
-
keys.push(customKey);
|
|
27
|
-
}
|
|
28
|
-
const modelActionKey = `${model.typeName}.${keyPath}`;
|
|
29
|
-
keys.push(modelActionKey);
|
|
30
|
-
if (fallbackKey) {
|
|
31
|
-
keys.push(fallbackKey);
|
|
32
|
-
}
|
|
33
|
-
return keys;
|
|
34
|
-
}
|
|
35
|
-
static getActionKeysByPriority(action, keyPath, customKey, fallbackKey) {
|
|
36
|
-
const keys = [];
|
|
37
|
-
if (customKey) {
|
|
38
|
-
keys.push(customKey);
|
|
39
|
-
}
|
|
40
|
-
const modelActionKey = `${action.i18nModelActionBaseKey}.${keyPath}`;
|
|
41
|
-
const actionKey = `${action.actionName}.${keyPath}`;
|
|
42
|
-
keys.push(modelActionKey, actionKey);
|
|
43
|
-
if (fallbackKey) {
|
|
44
|
-
keys.push(fallbackKey);
|
|
45
|
-
}
|
|
46
|
-
return keys;
|
|
47
|
-
}
|
|
48
|
-
static getModelI18nParams(model, item, i18nModelName, i18nParameters = {}) {
|
|
49
|
-
i18nParameters.itemId = '';
|
|
50
|
-
i18nParameters.itemTitle = '';
|
|
51
|
-
if (i18nModelName) {
|
|
52
|
-
i18nParameters.modelName = i18nModelName;
|
|
53
|
-
}
|
|
54
|
-
if (item) {
|
|
55
|
-
if (model.idPropertyName && item[model.idPropertyName]) {
|
|
56
|
-
i18nParameters.itemId = item[model.idPropertyName];
|
|
57
|
-
}
|
|
58
|
-
if (model.titlePropertyName && item[model.titlePropertyName]) {
|
|
59
|
-
i18nParameters.itemTitle = item[model.titlePropertyName];
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return i18nParameters;
|
|
63
|
-
}
|
|
64
|
-
static getActionI18nParams(action, item, i18nModelName, i18nParameters = {}, functionTitle) {
|
|
65
|
-
i18nParameters.itemId = '';
|
|
66
|
-
i18nParameters.itemTitle = '';
|
|
67
|
-
if (functionTitle) {
|
|
68
|
-
i18nParameters.functionTitle = functionTitle;
|
|
69
|
-
}
|
|
70
|
-
if (i18nModelName) {
|
|
71
|
-
i18nParameters.modelName = i18nModelName;
|
|
72
|
-
}
|
|
73
|
-
if (item) {
|
|
74
|
-
if (action.model.idPropertyName && item[action.model.idPropertyName]) {
|
|
75
|
-
i18nParameters.itemId = item[action.model.idPropertyName];
|
|
76
|
-
}
|
|
77
|
-
if (action.model.titlePropertyName && item[action.model.titlePropertyName]) {
|
|
78
|
-
i18nParameters.itemTitle = item[action.model.titlePropertyName];
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return i18nParameters;
|
|
82
|
-
}
|
|
83
|
-
static instantModelName(translate, model, singular) {
|
|
84
|
-
const keys = I18nUtil.getModelNameKeys(model, singular);
|
|
85
|
-
const i18n = translate.instant(keys);
|
|
86
|
-
return I18nUtil.selectKeyByPriority(keys, i18n);
|
|
87
|
-
}
|
|
88
|
-
static getModelName(translate, model, oneTime = true, singular) {
|
|
89
|
-
const keys = I18nUtil.getModelNameKeys(model, singular);
|
|
90
|
-
const obs = translate.stream(keys);
|
|
91
|
-
if (oneTime) {
|
|
92
|
-
obs.pipe(first());
|
|
93
|
-
}
|
|
94
|
-
return obs.pipe(map(i18n => I18nUtil.selectKeyByPriority(keys, i18n)));
|
|
95
|
-
}
|
|
96
|
-
static getModelNameKeys(model, singular) {
|
|
97
|
-
let keys = [];
|
|
98
|
-
if (singular !== undefined) {
|
|
99
|
-
keys.push(singular ? `${model?.typeName}.nameSingular` : `${model?.typeName}.namePlural`);
|
|
100
|
-
}
|
|
101
|
-
keys.push(`${model?.typeName}.name`);
|
|
102
|
-
return keys;
|
|
103
|
-
}
|
|
104
|
-
static selectKeyByPriority(keys, i18n) {
|
|
105
|
-
for (const key of keys) {
|
|
106
|
-
if (key !== i18n[key]) {
|
|
107
|
-
return i18n[key];
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
static getFunctionTitle(translate, functionTitle) {
|
|
113
|
-
if (functionTitle) {
|
|
114
|
-
const translation = translate.instant(`mngAction.functions.${functionTitle}.title`);
|
|
115
|
-
if (translation === functionTitle) {
|
|
116
|
-
return null;
|
|
117
|
-
}
|
|
118
|
-
return translation;
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
return null;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi91dGlscy9pMThuLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJcEQsTUFBTSxPQUFPLFFBQVE7SUFFVixNQUFNLENBQUMsdUJBQXVCLENBQUMsU0FBMkIsRUFBRSxLQUEyQixFQUFFLE9BQWUsRUFBRSxTQUFrQixFQUFFLElBQVUsRUFDeEcsV0FBb0IsRUFBRSxVQUFnQjtRQUN6RSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckYsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsYUFBYSxJQUFJLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3ZILE9BQU8sUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sTUFBTSxDQUFDLHdCQUF3QixDQUFDLFNBQTJCLEVBQUUsTUFBNkIsRUFBRSxPQUFlLEVBQUUsU0FBa0IsRUFBRSxJQUFVLEVBQzNHLFdBQW9CLEVBQUUsZUFBd0IsRUFBRSxVQUFnQjtRQUNuRyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFD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O1NBQ2Y7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Zmlyc3QsIG1hcCwgbWVyZ2VNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtBY3Rpb25EZXNjcmlwdG9yLCBNb2RlbERlc2NyaXB0b3J9IGZyb20gJy4uL2Rlc2NyaXB0b3JzJztcblxuZXhwb3J0IGNsYXNzIEkxOG5VdGlsIHtcblxuICAgIHB1YmxpYyBzdGF0aWMgaW5zdGFudE1vZGVsVHJhbnNsYXRpb24odHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBtb2RlbDogTW9kZWxEZXNjcmlwdG9yPGFueT4sIGtleVBhdGg6IHN0cmluZywgY3VzdG9tS2V5Pzogc3RyaW5nLCBpdGVtPzogYW55LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrS2V5Pzogc3RyaW5nLCBpMThuUGFyYW1zPzogYW55KTogc3RyaW5nfG51bGwge1xuICAgICAgICBjb25zdCBrZXlzID0gSTE4blV0aWwuZ2V0TW9kZWxLZXlzQnlQcmlvcml0eShtb2RlbCwga2V5UGF0aCwgY3VzdG9tS2V5LCBmYWxsYmFja0tleSk7XG4gICAgICAgIGNvbnN0IGkxOG5Nb2RlbE5hbWUgPSBJMThuVXRpbC5pbnN0YW50TW9kZWxOYW1lKHRyYW5zbGF0ZSwgbW9kZWwsIHRydWUpO1xuICAgICAgICBjb25zdCBpMThuID0gdHJhbnNsYXRlLmluc3RhbnQoa2V5cywgSTE4blV0aWwuZ2V0TW9kZWxJMThuUGFyYW1zKG1vZGVsLCBpdGVtLCBpMThuTW9kZWxOYW1lID8/IHVuZGVmaW5lZCwgaTE4blBhcmFtcykpO1xuICAgICAgICByZXR1cm4gSTE4blV0aWwuc2VsZWN0S2V5QnlQcmlvcml0eShrZXlzLCBpMThuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGluc3RhbnRBY3Rpb25UcmFuc2xhdGlvbih0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+LCBrZXlQYXRoOiBzdHJpbmcsIGN1c3RvbUtleT86IHN0cmluZywgaXRlbT86IGFueSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFja0tleT86IHN0cmluZywgZnVuY3Rpb25OYW1lS2V5Pzogc3RyaW5nLCBpMThuUGFyYW1zPzogYW55KTogc3RyaW5nfG51bGwge1xuICAgICAgICBjb25zdCBrZXlzID0gSTE4blV0aWwuZ2V0QWN0aW9uS2V5c0J5UHJpb3JpdHkoYWN0aW9uLCBrZXlQYXRoLCBjdXN0b21LZXksIGZhbGxiYWNrS2V5KTtcbiAgICAgICAgY29uc3QgaTE4bk1vZGVsTmFtZSA9IEkxOG5VdGlsLmluc3RhbnRNb2RlbE5hbWUodHJhbnNsYXRlLCBhY3Rpb24/Lm1vZGVsLCB0cnVlKTtcbiAgICAgICAgY29uc3QgaTE4bkZ1bmN0aW9uVGl0bGUgPSBJMThuVXRpbC5nZXRGdW5jdGlvblRpdGxlKHRyYW5zbGF0ZSwgZnVuY3Rpb25OYW1lS2V5KTtcbiAgICAgICAgY29uc3QgaTE4biA9IHRyYW5zbGF0ZS5pbnN0YW50KGtleXMsIEkxOG5VdGlsLmdldEFjdGlvbkkxOG5QYXJhbXMoYWN0aW9uLCBpdGVtLCBpMThuTW9kZWxOYW1lID8/IHVuZGVmaW5lZCwgaTE4blBhcmFtcywgaTE4bkZ1bmN0aW9uVGl0bGUpKTtcbiAgICAgICAgcmV0dXJuIEkxOG5VdGlsLnNlbGVjdEtleUJ5UHJpb3JpdHkoa2V5cywgaTE4bik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBzdHJlYW1BY3Rpb25UcmFuc2xhdGlvbih0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+LCBrZXlQYXRoOiBzdHJpbmcsIGN1c3RvbUtleT86IHN0cmluZywgaXRlbT86IGFueSwgZmFsbGJhY2tLZXk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ3xudWxsPiB7XG4gICAgICAgIHJldHVybiBJMThuVXRpbC5nZXRBY3Rpb25UcmFuc2xhdGlvbih0cmFuc2xhdGUsIGFjdGlvbiwga2V5UGF0aCwgY3VzdG9tS2V5LCBpdGVtLCBmYWxsYmFja0tleSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QWN0aW9uVHJhbnNsYXRpb24odHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3I8YW55Piwga2V5UGF0aDogc3RyaW5nLCBjdXN0b21LZXk/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIGZhbGxiYWNrS2V5Pzogc3RyaW5nLCBvbmVUaW1lOiBib29sZWFuID0gdHJ1ZSk6IE9ic2VydmFibGU8c3RyaW5nfG51bGw+IHtcbiAgICAgICAgY29uc3Qga2V5cyA9IEkxOG5VdGlsLmdldEFjdGlvbktleXNCeVByaW9yaXR5KGFjdGlvbiwga2V5UGF0aCwgY3VzdG9tS2V5LCBmYWxsYmFja0tleSk7XG4gICAgICAgIHJldHVybiBJMThuVXRpbC5nZXRNb2RlbE5hbWUodHJhbnNsYXRlLCBhY3Rpb24/Lm1vZGVsLCBvbmVUaW1lLCB0cnVlKS5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAoaTE4bk1vZGVsTmFtZSA9PiB0cmFuc2xhdGUuZ2V0KGtleXMsIEkxOG5VdGlsLmdldEFjdGlvbkkxOG5QYXJhbXMoYWN0aW9uLCBpdGVtLCBpMThuTW9kZWxOYW1lID8/IHVuZGVmaW5lZCkpKSxcbiAgICAgICAgICAgIG1hcChpMThuID0+IEkxOG5VdGlsLnNlbGVjdEtleUJ5UHJpb3JpdHkoa2V5cywgaTE4bikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0TW9kZWxLZXlzQnlQcmlvcml0eShtb2RlbDogTW9kZWxEZXNjcmlwdG9yPGFueT4sIGtleVBhdGg6IHN0cmluZywgY3VzdG9tS2V5Pzogc3RyaW5nLCBmYWxsYmFja0tleT86IHN0cmluZykge1xuICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgIGlmIChjdXN0b21LZXkpIHtcbiAgICAgICAgICAgIGtleXMucHVzaChjdXN0b21LZXkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1vZGVsQWN0aW9uS2V5ID0gYCR7bW9kZWwudHlwZU5hbWV9LiR7a2V5UGF0aH1gO1xuICAgICAgICBrZXlzLnB1c2gobW9kZWxBY3Rpb25LZXkpO1xuICAgICAgICBpZiAoZmFsbGJhY2tLZXkpIHtcbiAgICAgICAgICAgIGtleXMucHVzaChmYWxsYmFja0tleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0QWN0aW9uS2V5c0J5UHJpb3JpdHkoYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9yPGFueT4sIGtleVBhdGg6IHN0cmluZywgY3VzdG9tS2V5Pzogc3RyaW5nLCBmYWxsYmFja0tleT86IHN0cmluZykge1xuICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgIGlmIChjdXN0b21LZXkpIHtcbiAgICAgICAgICAgIGtleXMucHVzaChjdXN0b21LZXkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1vZGVsQWN0aW9uS2V5ID0gYCR7YWN0aW9uLmkxOG5Nb2RlbEFjdGlvbkJhc2VLZXl9LiR7a2V5UGF0aH1gO1xuICAgICAgICBjb25zdCBhY3Rpb25LZXkgPSBgJHthY3Rpb24uYWN0aW9uTmFtZX0uJHtrZXlQYXRofWA7XG4gICAgICAgIGtleXMucHVzaChtb2RlbEFjdGlvbktleSwgYWN0aW9uS2V5KTtcbiAgICAgICAgaWYgKGZhbGxiYWNrS2V5KSB7XG4gICAgICAgICAgICBrZXlzLnB1c2goZmFsbGJhY2tLZXkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TW9kZWxJMThuUGFyYW1zKG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55PiwgaXRlbTogYW55LCBpMThuTW9kZWxOYW1lPzogc3RyaW5nLCBpMThuUGFyYW1ldGVyczogYW55ID0ge30pIHtcbiAgICAgICAgaTE4blBhcmFtZXRlcnMuaXRlbUlkID0gJydcbiAgICAgICAgaTE4blBhcmFtZXRlcnMuaXRlbVRpdGxlID0gJydcblxuICAgICAgICBpZiAoaTE4bk1vZGVsTmFtZSkge1xuICAgICAgICAgICAgaTE4blBhcmFtZXRlcnMubW9kZWxOYW1lID0gaTE4bk1vZGVsTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgaWYgKG1vZGVsLmlkUHJvcGVydHlOYW1lICYmIGl0ZW1bbW9kZWwuaWRQcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgaTE4blBhcmFtZXRlcnMuaXRlbUlkID0gaXRlbVttb2RlbC5pZFByb3BlcnR5TmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobW9kZWwudGl0bGVQcm9wZXJ0eU5hbWUgJiYgaXRlbVttb2RlbC50aXRsZVByb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgICAgICAgICBpMThuUGFyYW1ldGVycy5pdGVtVGl0bGUgPSBpdGVtW21vZGVsLnRpdGxlUHJvcGVydHlOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaTE4blBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRBY3Rpb25JMThuUGFyYW1zKGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+LCBpdGVtOiBhbnksIGkxOG5Nb2RlbE5hbWU/OiBzdHJpbmcsIGkxOG5QYXJhbWV0ZXJzOiBhbnkgPSB7fSwgZnVuY3Rpb25UaXRsZT86IHN0cmluZykge1xuICAgICAgICBpMThuUGFyYW1ldGVycy5pdGVtSWQgPSAnJ1xuICAgICAgICBpMThuUGFyYW1ldGVycy5pdGVtVGl0bGUgPSAnJ1xuXG4gICAgICAgIGlmIChmdW5jdGlvblRpdGxlKSB7XG4gICAgICAgICAgICBpMThuUGFyYW1ldGVycy5mdW5jdGlvblRpdGxlID0gZnVuY3Rpb25UaXRsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaTE4bk1vZGVsTmFtZSkge1xuICAgICAgICAgICAgaTE4blBhcmFtZXRlcnMubW9kZWxOYW1lID0gaTE4bk1vZGVsTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgaWYgKGFjdGlvbi5tb2RlbC5pZFByb3BlcnR5TmFtZSAmJiBpdGVtW2FjdGlvbi5tb2RlbC5pZFByb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgICAgICAgICBpMThuUGFyYW1ldGVycy5pdGVtSWQgPSBpdGVtW2FjdGlvbi5tb2RlbC5pZFByb3BlcnR5TmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYWN0aW9uLm1vZGVsLnRpdGxlUHJvcGVydHlOYW1lICYmIGl0ZW1bYWN0aW9uLm1vZGVsLnRpdGxlUHJvcGVydHlOYW1lXSkge1xuICAgICAgICAgICAgICAgIGkxOG5QYXJhbWV0ZXJzLml0ZW1UaXRsZSA9IGl0ZW1bYWN0aW9uLm1vZGVsLnRpdGxlUHJvcGVydHlOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaTE4blBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpbnN0YW50TW9kZWxOYW1lKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxhbnk+LCBzaW5ndWxhcj86IGJvb2xlYW4pOiBzdHJpbmd8bnVsbCB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBJMThuVXRpbC5nZXRNb2RlbE5hbWVLZXlzKG1vZGVsLCBzaW5ndWxhcik7XG4gICAgICAgIGNvbnN0IGkxOG4gPSB0cmFuc2xhdGUuaW5zdGFudChrZXlzKTtcbiAgICAgICAgcmV0dXJuIEkxOG5VdGlsLnNlbGVjdEtleUJ5UHJpb3JpdHkoa2V5cywgaTE4bik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRNb2RlbE5hbWUodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBtb2RlbDogTW9kZWxEZXNjcmlwdG9yPGFueT4sIG9uZVRpbWU6IGJvb2xlYW4gPSB0cnVlLCBzaW5ndWxhcj86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPHN0cmluZ3xudWxsPiB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBJMThuVXRpbC5nZXRNb2RlbE5hbWVLZXlzKG1vZGVsLCBzaW5ndWxhcik7XG4gICAgICAgIGNvbnN0IG9icyA9IHRyYW5zbGF0ZS5zdHJlYW0oa2V5cyk7XG4gICAgICAgIGlmIChvbmVUaW1lKSB7XG4gICAgICAgICAgICBvYnMucGlwZShmaXJzdCgpKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYnMucGlwZShtYXAoaTE4biA9PiBJMThuVXRpbC5zZWxlY3RLZXlCeVByaW9yaXR5KGtleXMsIGkxOG4pKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRNb2RlbE5hbWVLZXlzKG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55Piwgc2luZ3VsYXI/OiBib29sZWFuKSB7XG4gICAgICAgIGxldCBrZXlzID0gW107XG4gICAgICAgIGlmIChzaW5ndWxhciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBrZXlzLnB1c2goc2luZ3VsYXIgPyBgJHttb2RlbD8udHlwZU5hbWV9Lm5hbWVTaW5ndWxhcmAgOiBgJHttb2RlbD8udHlwZU5hbWV9Lm5hbWVQbHVyYWxgKTtcbiAgICAgICAgfVxuICAgICAgICBrZXlzLnB1c2goYCR7bW9kZWw/LnR5cGVOYW1lfS5uYW1lYCk7XG4gICAgICAgIHJldHVybiBrZXlzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHNlbGVjdEtleUJ5UHJpb3JpdHkoa2V5czogc3RyaW5nW10sIGkxOG46IGFueSk6IHN0cmluZ3xudWxsIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgICAgaWYgKGtleSAhPT0gaTE4bltrZXldKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGkxOG5ba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRGdW5jdGlvblRpdGxlKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgZnVuY3Rpb25UaXRsZT86IHN0cmluZykge1xuICAgICAgICBpZiAoZnVuY3Rpb25UaXRsZSkge1xuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSB0cmFuc2xhdGUuaW5zdGFudChgbW5nQWN0aW9uLmZ1bmN0aW9ucy4ke2Z1bmN0aW9uVGl0bGV9LnRpdGxlYCk7XG4gICAgICAgICAgICBpZiAodHJhbnNsYXRpb24gPT09IGZ1bmN0aW9uVGl0bGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cmFuc2xhdGlvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
1
|
+
import { first, map, mergeMap } from 'rxjs/operators';
|
|
2
|
+
export class I18nUtil {
|
|
3
|
+
static instantModelTranslation(translate, model, keyPath, customKey, item, fallbackKey, i18nParams) {
|
|
4
|
+
const keys = I18nUtil.getModelKeysByPriority(model, keyPath, customKey, fallbackKey);
|
|
5
|
+
const i18nModelName = I18nUtil.instantModelName(translate, model, true);
|
|
6
|
+
const i18n = translate.instant(keys, I18nUtil.getModelI18nParams(model, item, i18nModelName ?? undefined, i18nParams));
|
|
7
|
+
return I18nUtil.selectKeyByPriority(keys, i18n);
|
|
8
|
+
}
|
|
9
|
+
static instantActionTranslation(translate, action, keyPath, customKey, item, fallbackKey, functionNameKey, i18nParams) {
|
|
10
|
+
const keys = I18nUtil.getActionKeysByPriority(action, keyPath, customKey, fallbackKey);
|
|
11
|
+
const i18nModelName = I18nUtil.instantModelName(translate, action?.model, true);
|
|
12
|
+
const i18nFunctionTitle = I18nUtil.getFunctionTitle(translate, functionNameKey);
|
|
13
|
+
const i18n = translate.instant(keys, I18nUtil.getActionI18nParams(action, item, i18nModelName ?? undefined, i18nParams, i18nFunctionTitle));
|
|
14
|
+
return I18nUtil.selectKeyByPriority(keys, i18n);
|
|
15
|
+
}
|
|
16
|
+
static streamActionTranslation(translate, action, keyPath, customKey, item, fallbackKey) {
|
|
17
|
+
return I18nUtil.getActionTranslation(translate, action, keyPath, customKey, item, fallbackKey, false);
|
|
18
|
+
}
|
|
19
|
+
static getActionTranslation(translate, action, keyPath, customKey, item, fallbackKey, oneTime = true) {
|
|
20
|
+
const keys = I18nUtil.getActionKeysByPriority(action, keyPath, customKey, fallbackKey);
|
|
21
|
+
return I18nUtil.getModelName(translate, action?.model, oneTime, true).pipe(mergeMap(i18nModelName => translate.get(keys, I18nUtil.getActionI18nParams(action, item, i18nModelName ?? undefined))), map(i18n => I18nUtil.selectKeyByPriority(keys, i18n)));
|
|
22
|
+
}
|
|
23
|
+
static getModelKeysByPriority(model, keyPath, customKey, fallbackKey) {
|
|
24
|
+
const keys = [];
|
|
25
|
+
if (customKey) {
|
|
26
|
+
keys.push(customKey);
|
|
27
|
+
}
|
|
28
|
+
const modelActionKey = `${model.typeName}.${keyPath}`;
|
|
29
|
+
keys.push(modelActionKey);
|
|
30
|
+
if (fallbackKey) {
|
|
31
|
+
keys.push(fallbackKey);
|
|
32
|
+
}
|
|
33
|
+
return keys;
|
|
34
|
+
}
|
|
35
|
+
static getActionKeysByPriority(action, keyPath, customKey, fallbackKey) {
|
|
36
|
+
const keys = [];
|
|
37
|
+
if (customKey) {
|
|
38
|
+
keys.push(customKey);
|
|
39
|
+
}
|
|
40
|
+
const modelActionKey = `${action.i18nModelActionBaseKey}.${keyPath}`;
|
|
41
|
+
const actionKey = `${action.actionName}.${keyPath}`;
|
|
42
|
+
keys.push(modelActionKey, actionKey);
|
|
43
|
+
if (fallbackKey) {
|
|
44
|
+
keys.push(fallbackKey);
|
|
45
|
+
}
|
|
46
|
+
return keys;
|
|
47
|
+
}
|
|
48
|
+
static getModelI18nParams(model, item, i18nModelName, i18nParameters = {}) {
|
|
49
|
+
i18nParameters.itemId = '';
|
|
50
|
+
i18nParameters.itemTitle = '';
|
|
51
|
+
if (i18nModelName) {
|
|
52
|
+
i18nParameters.modelName = i18nModelName;
|
|
53
|
+
}
|
|
54
|
+
if (item) {
|
|
55
|
+
if (model.idPropertyName && item[model.idPropertyName]) {
|
|
56
|
+
i18nParameters.itemId = item[model.idPropertyName];
|
|
57
|
+
}
|
|
58
|
+
if (model.titlePropertyName && item[model.titlePropertyName]) {
|
|
59
|
+
i18nParameters.itemTitle = item[model.titlePropertyName];
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return i18nParameters;
|
|
63
|
+
}
|
|
64
|
+
static getActionI18nParams(action, item, i18nModelName, i18nParameters = {}, functionTitle) {
|
|
65
|
+
i18nParameters.itemId = '';
|
|
66
|
+
i18nParameters.itemTitle = '';
|
|
67
|
+
if (functionTitle) {
|
|
68
|
+
i18nParameters.functionTitle = functionTitle;
|
|
69
|
+
}
|
|
70
|
+
if (i18nModelName) {
|
|
71
|
+
i18nParameters.modelName = i18nModelName;
|
|
72
|
+
}
|
|
73
|
+
if (item) {
|
|
74
|
+
if (action.model.idPropertyName && item[action.model.idPropertyName]) {
|
|
75
|
+
i18nParameters.itemId = item[action.model.idPropertyName];
|
|
76
|
+
}
|
|
77
|
+
if (action.model.titlePropertyName && item[action.model.titlePropertyName]) {
|
|
78
|
+
i18nParameters.itemTitle = item[action.model.titlePropertyName];
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return i18nParameters;
|
|
82
|
+
}
|
|
83
|
+
static instantModelName(translate, model, singular) {
|
|
84
|
+
const keys = I18nUtil.getModelNameKeys(model, singular);
|
|
85
|
+
const i18n = translate.instant(keys);
|
|
86
|
+
return I18nUtil.selectKeyByPriority(keys, i18n);
|
|
87
|
+
}
|
|
88
|
+
static getModelName(translate, model, oneTime = true, singular) {
|
|
89
|
+
const keys = I18nUtil.getModelNameKeys(model, singular);
|
|
90
|
+
const obs = translate.stream(keys);
|
|
91
|
+
if (oneTime) {
|
|
92
|
+
obs.pipe(first());
|
|
93
|
+
}
|
|
94
|
+
return obs.pipe(map(i18n => I18nUtil.selectKeyByPriority(keys, i18n)));
|
|
95
|
+
}
|
|
96
|
+
static getModelNameKeys(model, singular) {
|
|
97
|
+
let keys = [];
|
|
98
|
+
if (singular !== undefined) {
|
|
99
|
+
keys.push(singular ? `${model?.typeName}.nameSingular` : `${model?.typeName}.namePlural`);
|
|
100
|
+
}
|
|
101
|
+
keys.push(`${model?.typeName}.name`);
|
|
102
|
+
return keys;
|
|
103
|
+
}
|
|
104
|
+
static selectKeyByPriority(keys, i18n) {
|
|
105
|
+
for (const key of keys) {
|
|
106
|
+
if (key !== i18n[key]) {
|
|
107
|
+
return i18n[key];
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
static getFunctionTitle(translate, functionTitle) {
|
|
113
|
+
if (functionTitle) {
|
|
114
|
+
const translation = translate.instant(`mngAction.functions.${functionTitle}.title`);
|
|
115
|
+
if (translation === functionTitle) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
return translation;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi91dGlscy9pMThuLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJcEQsTUFBTSxPQUFPLFFBQVE7SUFFVixNQUFNLENBQUMsdUJBQXVCLENBQUMsU0FBMkIsRUFBRSxLQUEyQixFQUFFLE9BQWUsRUFBRSxTQUFrQixFQUFFLElBQVUsRUFDeEcsV0FBb0IsRUFBRSxVQUFnQjtRQUN6RSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckYsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsYUFBYSxJQUFJLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3ZILE9BQU8sUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sTUFBTSxDQUFDLHdCQUF3QixDQUFDLFNBQTJCLEVBQUUsTUFBNkIsRUFBRSxPQUFlLEVBQUUsU0FBa0IsRUFBRSxJQUFVLEVBQzNHLFdBQW9CLEVBQUUsZUFBd0IsRUFBRSxVQUFnQjtRQUNuRyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdkYsTUFBTSxhQUFhLEdBQUcsUUFBUSxD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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Zmlyc3QsIG1hcCwgbWVyZ2VNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtBY3Rpb25EZXNjcmlwdG9yLCBNb2RlbERlc2NyaXB0b3J9IGZyb20gJy4uL2Rlc2NyaXB0b3JzJztcblxuZXhwb3J0IGNsYXNzIEkxOG5VdGlsIHtcblxuICAgIHB1YmxpYyBzdGF0aWMgaW5zdGFudE1vZGVsVHJhbnNsYXRpb24odHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBtb2RlbDogTW9kZWxEZXNjcmlwdG9yPGFueT4sIGtleVBhdGg6IHN0cmluZywgY3VzdG9tS2V5Pzogc3RyaW5nLCBpdGVtPzogYW55LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrS2V5Pzogc3RyaW5nLCBpMThuUGFyYW1zPzogYW55KTogc3RyaW5nfG51bGwge1xuICAgICAgICBjb25zdCBrZXlzID0gSTE4blV0aWwuZ2V0TW9kZWxLZXlzQnlQcmlvcml0eShtb2RlbCwga2V5UGF0aCwgY3VzdG9tS2V5LCBmYWxsYmFja0tleSk7XG4gICAgICAgIGNvbnN0IGkxOG5Nb2RlbE5hbWUgPSBJMThuVXRpbC5pbnN0YW50TW9kZWxOYW1lKHRyYW5zbGF0ZSwgbW9kZWwsIHRydWUpO1xuICAgICAgICBjb25zdCBpMThuID0gdHJhbnNsYXRlLmluc3RhbnQoa2V5cywgSTE4blV0aWwuZ2V0TW9kZWxJMThuUGFyYW1zKG1vZGVsLCBpdGVtLCBpMThuTW9kZWxOYW1lID8/IHVuZGVmaW5lZCwgaTE4blBhcmFtcykpO1xuICAgICAgICByZXR1cm4gSTE4blV0aWwuc2VsZWN0S2V5QnlQcmlvcml0eShrZXlzLCBpMThuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGluc3RhbnRBY3Rpb25UcmFuc2xhdGlvbih0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+LCBrZXlQYXRoOiBzdHJpbmcsIGN1c3RvbUtleT86IHN0cmluZywgaXRlbT86IGFueSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFja0tleT86IHN0cmluZywgZnVuY3Rpb25OYW1lS2V5Pzogc3RyaW5nLCBpMThuUGFyYW1zPzogYW55KTogc3RyaW5nfG51bGwge1xuICAgICAgICBjb25zdCBrZXlzID0gSTE4blV0aWwuZ2V0QWN0aW9uS2V5c0J5UHJpb3JpdHkoYWN0aW9uLCBrZXlQYXRoLCBjdXN0b21LZXksIGZhbGxiYWNrS2V5KTtcbiAgICAgICAgY29uc3QgaTE4bk1vZGVsTmFtZSA9IEkxOG5VdGlsLmluc3RhbnRNb2RlbE5hbWUodHJhbnNsYXRlLCBhY3Rpb24/Lm1vZGVsLCB0cnVlKTtcbiAgICAgICAgY29uc3QgaTE4bkZ1bmN0aW9uVGl0bGUgPSBJMThuVXRpbC5nZXRGdW5jdGlvblRpdGxlKHRyYW5zbGF0ZSwgZnVuY3Rpb25OYW1lS2V5KTtcbiAgICAgICAgY29uc3QgaTE4biA9IHRyYW5zbGF0ZS5pbnN0YW50KGtleXMsIEkxOG5VdGlsLmdldEFjdGlvbkkxOG5QYXJhbXMoYWN0aW9uLCBpdGVtLCBpMThuTW9kZWxOYW1lID8/IHVuZGVmaW5lZCwgaTE4blBhcmFtcywgaTE4bkZ1bmN0aW9uVGl0bGUpKTtcbiAgICAgICAgcmV0dXJuIEkxOG5VdGlsLnNlbGVjdEtleUJ5UHJpb3JpdHkoa2V5cywgaTE4bik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBzdHJlYW1BY3Rpb25UcmFuc2xhdGlvbih0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+LCBrZXlQYXRoOiBzdHJpbmcsIGN1c3RvbUtleT86IHN0cmluZywgaXRlbT86IGFueSwgZmFsbGJhY2tLZXk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ3xudWxsPiB7XG4gICAgICAgIHJldHVybiBJMThuVXRpbC5nZXRBY3Rpb25UcmFuc2xhdGlvbih0cmFuc2xhdGUsIGFjdGlvbiwga2V5UGF0aCwgY3VzdG9tS2V5LCBpdGVtLCBmYWxsYmFja0tleSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QWN0aW9uVHJhbnNsYXRpb24odHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3I8YW55Piwga2V5UGF0aDogc3RyaW5nLCBjdXN0b21LZXk/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIGZhbGxiYWNrS2V5Pzogc3RyaW5nLCBvbmVUaW1lOiBib29sZWFuID0gdHJ1ZSk6IE9ic2VydmFibGU8c3RyaW5nfG51bGw+IHtcbiAgICAgICAgY29uc3Qga2V5cyA9IEkxOG5VdGlsLmdldEFjdGlvbktleXNCeVByaW9yaXR5KGFjdGlvbiwga2V5UGF0aCwgY3VzdG9tS2V5LCBmYWxsYmFja0tleSk7XG4gICAgICAgIHJldHVybiBJMThuVXRpbC5nZXRNb2RlbE5hbWUodHJhbnNsYXRlLCBhY3Rpb24/Lm1vZGVsLCBvbmVUaW1lLCB0cnVlKS5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAoaTE4bk1vZGVsTmFtZSA9PiB0cmFuc2xhdGUuZ2V0KGtleXMsIEkxOG5VdGlsLmdldEFjdGlvbkkxOG5QYXJhbXMoYWN0aW9uLCBpdGVtLCBpMThuTW9kZWxOYW1lID8/IHVuZGVmaW5lZCkpKSxcbiAgICAgICAgICAgIG1hcChpMThuID0+IEkxOG5VdGlsLnNlbGVjdEtleUJ5UHJpb3JpdHkoa2V5cywgaTE4bikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0TW9kZWxLZXlzQnlQcmlvcml0eShtb2RlbDogTW9kZWxEZXNjcmlwdG9yPGFueT4sIGtleVBhdGg6IHN0cmluZywgY3VzdG9tS2V5Pzogc3RyaW5nLCBmYWxsYmFja0tleT86IHN0cmluZykge1xuICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgIGlmIChjdXN0b21LZXkpIHtcbiAgICAgICAgICAgIGtleXMucHVzaChjdXN0b21LZXkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1vZGVsQWN0aW9uS2V5ID0gYCR7bW9kZWwudHlwZU5hbWV9LiR7a2V5UGF0aH1gO1xuICAgICAgICBrZXlzLnB1c2gobW9kZWxBY3Rpb25LZXkpO1xuICAgICAgICBpZiAoZmFsbGJhY2tLZXkpIHtcbiAgICAgICAgICAgIGtleXMucHVzaChmYWxsYmFja0tleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0QWN0aW9uS2V5c0J5UHJpb3JpdHkoYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9yPGFueT4sIGtleVBhdGg6IHN0cmluZywgY3VzdG9tS2V5Pzogc3RyaW5nLCBmYWxsYmFja0tleT86IHN0cmluZykge1xuICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgIGlmIChjdXN0b21LZXkpIHtcbiAgICAgICAgICAgIGtleXMucHVzaChjdXN0b21LZXkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1vZGVsQWN0aW9uS2V5ID0gYCR7YWN0aW9uLmkxOG5Nb2RlbEFjdGlvbkJhc2VLZXl9LiR7a2V5UGF0aH1gO1xuICAgICAgICBjb25zdCBhY3Rpb25LZXkgPSBgJHthY3Rpb24uYWN0aW9uTmFtZX0uJHtrZXlQYXRofWA7XG4gICAgICAgIGtleXMucHVzaChtb2RlbEFjdGlvbktleSwgYWN0aW9uS2V5KTtcbiAgICAgICAgaWYgKGZhbGxiYWNrS2V5KSB7XG4gICAgICAgICAgICBrZXlzLnB1c2goZmFsbGJhY2tLZXkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TW9kZWxJMThuUGFyYW1zKG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55PiwgaXRlbTogYW55LCBpMThuTW9kZWxOYW1lPzogc3RyaW5nLCBpMThuUGFyYW1ldGVyczogYW55ID0ge30pIHtcbiAgICAgICAgaTE4blBhcmFtZXRlcnMuaXRlbUlkID0gJydcbiAgICAgICAgaTE4blBhcmFtZXRlcnMuaXRlbVRpdGxlID0gJydcblxuICAgICAgICBpZiAoaTE4bk1vZGVsTmFtZSkge1xuICAgICAgICAgICAgaTE4blBhcmFtZXRlcnMubW9kZWxOYW1lID0gaTE4bk1vZGVsTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgaWYgKG1vZGVsLmlkUHJvcGVydHlOYW1lICYmIGl0ZW1bbW9kZWwuaWRQcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgaTE4blBhcmFtZXRlcnMuaXRlbUlkID0gaXRlbVttb2RlbC5pZFByb3BlcnR5TmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobW9kZWwudGl0bGVQcm9wZXJ0eU5hbWUgJiYgaXRlbVttb2RlbC50aXRsZVByb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgICAgICAgICBpMThuUGFyYW1ldGVycy5pdGVtVGl0bGUgPSBpdGVtW21vZGVsLnRpdGxlUHJvcGVydHlOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaTE4blBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRBY3Rpb25JMThuUGFyYW1zKGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+LCBpdGVtOiBhbnksIGkxOG5Nb2RlbE5hbWU/OiBzdHJpbmcsIGkxOG5QYXJhbWV0ZXJzOiBhbnkgPSB7fSwgZnVuY3Rpb25UaXRsZT86IHN0cmluZykge1xuICAgICAgICBpMThuUGFyYW1ldGVycy5pdGVtSWQgPSAnJ1xuICAgICAgICBpMThuUGFyYW1ldGVycy5pdGVtVGl0bGUgPSAnJ1xuXG4gICAgICAgIGlmIChmdW5jdGlvblRpdGxlKSB7XG4gICAgICAgICAgICBpMThuUGFyYW1ldGVycy5mdW5jdGlvblRpdGxlID0gZnVuY3Rpb25UaXRsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaTE4bk1vZGVsTmFtZSkge1xuICAgICAgICAgICAgaTE4blBhcmFtZXRlcnMubW9kZWxOYW1lID0gaTE4bk1vZGVsTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgaWYgKGFjdGlvbi5tb2RlbC5pZFByb3BlcnR5TmFtZSAmJiBpdGVtW2FjdGlvbi5tb2RlbC5pZFByb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgICAgICAgICBpMThuUGFyYW1ldGVycy5pdGVtSWQgPSBpdGVtW2FjdGlvbi5tb2RlbC5pZFByb3BlcnR5TmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYWN0aW9uLm1vZGVsLnRpdGxlUHJvcGVydHlOYW1lICYmIGl0ZW1bYWN0aW9uLm1vZGVsLnRpdGxlUHJvcGVydHlOYW1lXSkge1xuICAgICAgICAgICAgICAgIGkxOG5QYXJhbWV0ZXJzLml0ZW1UaXRsZSA9IGl0ZW1bYWN0aW9uLm1vZGVsLnRpdGxlUHJvcGVydHlOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaTE4blBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpbnN0YW50TW9kZWxOYW1lKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxhbnk+LCBzaW5ndWxhcj86IGJvb2xlYW4pOiBzdHJpbmd8bnVsbCB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBJMThuVXRpbC5nZXRNb2RlbE5hbWVLZXlzKG1vZGVsLCBzaW5ndWxhcik7XG4gICAgICAgIGNvbnN0IGkxOG4gPSB0cmFuc2xhdGUuaW5zdGFudChrZXlzKTtcbiAgICAgICAgcmV0dXJuIEkxOG5VdGlsLnNlbGVjdEtleUJ5UHJpb3JpdHkoa2V5cywgaTE4bik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRNb2RlbE5hbWUodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBtb2RlbDogTW9kZWxEZXNjcmlwdG9yPGFueT4sIG9uZVRpbWU6IGJvb2xlYW4gPSB0cnVlLCBzaW5ndWxhcj86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPHN0cmluZ3xudWxsPiB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBJMThuVXRpbC5nZXRNb2RlbE5hbWVLZXlzKG1vZGVsLCBzaW5ndWxhcik7XG4gICAgICAgIGNvbnN0IG9icyA9IHRyYW5zbGF0ZS5zdHJlYW0oa2V5cyk7XG4gICAgICAgIGlmIChvbmVUaW1lKSB7XG4gICAgICAgICAgICBvYnMucGlwZShmaXJzdCgpKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYnMucGlwZShtYXAoaTE4biA9PiBJMThuVXRpbC5zZWxlY3RLZXlCeVByaW9yaXR5KGtleXMsIGkxOG4pKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRNb2RlbE5hbWVLZXlzKG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55Piwgc2luZ3VsYXI/OiBib29sZWFuKSB7XG4gICAgICAgIGxldCBrZXlzID0gW107XG4gICAgICAgIGlmIChzaW5ndWxhciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBrZXlzLnB1c2goc2luZ3VsYXIgPyBgJHttb2RlbD8udHlwZU5hbWV9Lm5hbWVTaW5ndWxhcmAgOiBgJHttb2RlbD8udHlwZU5hbWV9Lm5hbWVQbHVyYWxgKTtcbiAgICAgICAgfVxuICAgICAgICBrZXlzLnB1c2goYCR7bW9kZWw/LnR5cGVOYW1lfS5uYW1lYCk7XG4gICAgICAgIHJldHVybiBrZXlzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHNlbGVjdEtleUJ5UHJpb3JpdHkoa2V5czogc3RyaW5nW10sIGkxOG46IGFueSk6IHN0cmluZ3xudWxsIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgICAgaWYgKGtleSAhPT0gaTE4bltrZXldKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGkxOG5ba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRGdW5jdGlvblRpdGxlKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgZnVuY3Rpb25UaXRsZT86IHN0cmluZykge1xuICAgICAgICBpZiAoZnVuY3Rpb25UaXRsZSkge1xuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSB0cmFuc2xhdGUuaW5zdGFudChgbW5nQWN0aW9uLmZ1bmN0aW9ucy4ke2Z1bmN0aW9uVGl0bGV9LnRpdGxlYCk7XG4gICAgICAgICAgICBpZiAodHJhbnNsYXRpb24gPT09IGZ1bmN0aW9uVGl0bGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cmFuc2xhdGlvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from './editor-formly.util';
|
|
2
|
-
export * from './i18n.util';
|
|
3
|
-
export * from './model.util';
|
|
4
|
-
export * from './toast.util';
|
|
5
|
-
export * from './type.util';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from './editor-formly.util';
|
|
2
|
+
export * from './i18n.util';
|
|
3
|
+
export * from './model.util';
|
|
4
|
+
export * from './toast.util';
|
|
5
|
+
export * from './type.util';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VkaXRvci1mb3JtbHkudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4udXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi90b2FzdC51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZS51dGlsJztcbiJdfQ==
|
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
import { ObjectSerializer } from '../api/utils';
|
|
2
|
-
export class ModelUtil {
|
|
3
|
-
static findIdAttribute(classType) {
|
|
4
|
-
const objSerializer = ObjectSerializer.get();
|
|
5
|
-
const attributes = objSerializer.findAttributesDefinitionByClassType(classType);
|
|
6
|
-
if (!attributes) {
|
|
7
|
-
return null;
|
|
8
|
-
}
|
|
9
|
-
let idAttribute = attributes.find(a => a.name === 'id');
|
|
10
|
-
if (!idAttribute) {
|
|
11
|
-
// if no id, try with code
|
|
12
|
-
idAttribute = attributes.find(a => a.name === 'code');
|
|
13
|
-
if (!idAttribute) {
|
|
14
|
-
// if no id or code, take the first attribute
|
|
15
|
-
idAttribute = attributes[0];
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return idAttribute?.name ?? null;
|
|
19
|
-
}
|
|
20
|
-
static findTitleAttribute(classType) {
|
|
21
|
-
const objSerializer = ObjectSerializer.get();
|
|
22
|
-
const attributes = objSerializer.findAttributesDefinitionByClassType(classType);
|
|
23
|
-
if (!attributes) {
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
let titleAttribute = attributes.find(a => a.type === 'string' && a.name === 'name');
|
|
27
|
-
if (!titleAttribute) {
|
|
28
|
-
// if no name, try with title
|
|
29
|
-
titleAttribute = attributes.find(a => a.type === 'string' && a.name === 'title');
|
|
30
|
-
if (!titleAttribute) {
|
|
31
|
-
// if no name or title, take the first attribute
|
|
32
|
-
titleAttribute = attributes[0];
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return titleAttribute?.name ?? null;
|
|
36
|
-
}
|
|
37
|
-
static trySetLookupItemsProperties(lookup) {
|
|
38
|
-
if (lookup.modelType) {
|
|
39
|
-
if (!lookup.itemsValueProperty || !lookup.dataKeyProperty) {
|
|
40
|
-
const idProperty = ModelUtil.findIdAttribute(lookup.modelType) ?? undefined;
|
|
41
|
-
if (idProperty && !lookup.itemsValueProperty) {
|
|
42
|
-
lookup.withItemsValueProperty(idProperty);
|
|
43
|
-
}
|
|
44
|
-
if (idProperty && !lookup.dataKeyProperty) {
|
|
45
|
-
lookup.withDataKeyProperty(idProperty);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (!lookup.itemsLabelProperty) {
|
|
49
|
-
const labelProperty = ModelUtil.findTitleAttribute(lookup.modelType);
|
|
50
|
-
if (labelProperty) {
|
|
51
|
-
lookup.withItemsLabelProperty(labelProperty);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { ObjectSerializer } from '../api/utils';
|
|
2
|
+
export class ModelUtil {
|
|
3
|
+
static findIdAttribute(classType) {
|
|
4
|
+
const objSerializer = ObjectSerializer.get();
|
|
5
|
+
const attributes = objSerializer.findAttributesDefinitionByClassType(classType);
|
|
6
|
+
if (!attributes) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
let idAttribute = attributes.find(a => a.name === 'id');
|
|
10
|
+
if (!idAttribute) {
|
|
11
|
+
// if no id, try with code
|
|
12
|
+
idAttribute = attributes.find(a => a.name === 'code');
|
|
13
|
+
if (!idAttribute) {
|
|
14
|
+
// if no id or code, take the first attribute
|
|
15
|
+
idAttribute = attributes[0];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return idAttribute?.name ?? null;
|
|
19
|
+
}
|
|
20
|
+
static findTitleAttribute(classType) {
|
|
21
|
+
const objSerializer = ObjectSerializer.get();
|
|
22
|
+
const attributes = objSerializer.findAttributesDefinitionByClassType(classType);
|
|
23
|
+
if (!attributes) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
let titleAttribute = attributes.find(a => a.type === 'string' && a.name === 'name');
|
|
27
|
+
if (!titleAttribute) {
|
|
28
|
+
// if no name, try with title
|
|
29
|
+
titleAttribute = attributes.find(a => a.type === 'string' && a.name === 'title');
|
|
30
|
+
if (!titleAttribute) {
|
|
31
|
+
// if no name or title, take the first attribute
|
|
32
|
+
titleAttribute = attributes[0];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return titleAttribute?.name ?? null;
|
|
36
|
+
}
|
|
37
|
+
static trySetLookupItemsProperties(lookup) {
|
|
38
|
+
if (lookup.modelType) {
|
|
39
|
+
if (!lookup.itemsValueProperty || !lookup.dataKeyProperty) {
|
|
40
|
+
const idProperty = ModelUtil.findIdAttribute(lookup.modelType) ?? undefined;
|
|
41
|
+
if (idProperty && !lookup.itemsValueProperty) {
|
|
42
|
+
lookup.withItemsValueProperty(idProperty);
|
|
43
|
+
}
|
|
44
|
+
if (idProperty && !lookup.dataKeyProperty) {
|
|
45
|
+
lookup.withDataKeyProperty(idProperty);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (!lookup.itemsLabelProperty) {
|
|
49
|
+
const labelProperty = ModelUtil.findTitleAttribute(lookup.modelType);
|
|
50
|
+
if (labelProperty) {
|
|
51
|
+
lookup.withItemsLabelProperty(labelProperty);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvbW9kZWwudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHOUMsTUFBTSxPQUFPLFNBQVM7SUFDWCxNQUFNLENBQUMsZUFBZSxDQUFJLFNBQXVCO1FBQ3BELE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdDLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxtQ0FBbUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELElBQUksV0FBVyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDZCwwQkFBMEI7WUFDMUIsV0FBVyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2QsNkNBQTZDO2dCQUM3QyxXQUFXLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9CO1NBQ0o7UUFFRCxPQUFPLFdBQVcsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQUksU0FBdUI7UUFDdkQsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLG1DQUFtQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDYixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxjQUFjLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNqQiw2QkFBNkI7WUFDN0IsY0FBYyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ2pCLGdEQUFnRDtnQkFDaEQsY0FBYyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsQztTQUNKO1FBRUQsT0FBTyxjQUFjLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQztJQUN4QyxDQUFDO0lBRU0sTUFBTSxDQUFDLDJCQUEyQixDQUFJLE1BQTRCO1FBQ3JFLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRTtnQkFDdkQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDO2dCQUM1RSxJQUFJLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRTtvQkFDMUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUM3QztnQkFDRCxJQUFJLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUU7b0JBQ3ZDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDMUM7YUFDSjtZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUU7Z0JBQzVCLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3JFLElBQUksYUFBYSxFQUFFO29CQUNmLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDaEQ7YUFDSjtTQUNKO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGFzc1R5cGV9IGZyb20gJy4uL3R5cGVzJztcblxuaW1wb3J0IHtPYmplY3RTZXJpYWxpemVyfSBmcm9tICcuLi9hcGkvdXRpbHMnO1xuaW1wb3J0IHtJTG9va3VwRGVzY3JpcHRvcn0gZnJvbSAnLi4vZGVzY3JpcHRvcnMnO1xuXG5leHBvcnQgY2xhc3MgTW9kZWxVdGlsIHtcbiAgICBwdWJsaWMgc3RhdGljIGZpbmRJZEF0dHJpYnV0ZTxUPihjbGFzc1R5cGU6IENsYXNzVHlwZTxUPik6IHN0cmluZ3xudWxsIHtcbiAgICAgICAgY29uc3Qgb2JqU2VyaWFsaXplciA9IE9iamVjdFNlcmlhbGl6ZXIuZ2V0KCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBvYmpTZXJpYWxpemVyLmZpbmRBdHRyaWJ1dGVzRGVmaW5pdGlvbkJ5Q2xhc3NUeXBlKGNsYXNzVHlwZSk7XG4gICAgICAgIGlmICghYXR0cmlidXRlcykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaWRBdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09ICdpZCcpO1xuICAgICAgICBpZiAoIWlkQXR0cmlidXRlKSB7XG4gICAgICAgICAgICAvLyBpZiBubyBpZCwgdHJ5IHdpdGggY29kZVxuICAgICAgICAgICAgaWRBdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09ICdjb2RlJyk7XG4gICAgICAgICAgICBpZiAoIWlkQXR0cmlidXRlKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgbm8gaWQgb3IgY29kZSwgdGFrZSB0aGUgZmlyc3QgYXR0cmlidXRlXG4gICAgICAgICAgICAgICAgaWRBdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlkQXR0cmlidXRlPy5uYW1lID8/IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmaW5kVGl0bGVBdHRyaWJ1dGU8VD4oY2xhc3NUeXBlOiBDbGFzc1R5cGU8VD4pOiBzdHJpbmd8bnVsbCB7XG4gICAgICAgIGNvbnN0IG9ialNlcmlhbGl6ZXIgPSBPYmplY3RTZXJpYWxpemVyLmdldCgpO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gb2JqU2VyaWFsaXplci5maW5kQXR0cmlidXRlc0RlZmluaXRpb25CeUNsYXNzVHlwZShjbGFzc1R5cGUpO1xuICAgICAgICBpZiAoIWF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHRpdGxlQXR0cmlidXRlID0gYXR0cmlidXRlcy5maW5kKGEgPT4gYS50eXBlID09PSAnc3RyaW5nJyAmJiBhLm5hbWUgPT09ICduYW1lJyk7XG4gICAgICAgIGlmICghdGl0bGVBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIC8vIGlmIG5vIG5hbWUsIHRyeSB3aXRoIHRpdGxlXG4gICAgICAgICAgICB0aXRsZUF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXMuZmluZChhID0+IGEudHlwZSA9PT0gJ3N0cmluZycgJiYgYS5uYW1lID09PSAndGl0bGUnKTtcbiAgICAgICAgICAgIGlmICghdGl0bGVBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiBubyBuYW1lIG9yIHRpdGxlLCB0YWtlIHRoZSBmaXJzdCBhdHRyaWJ1dGVcbiAgICAgICAgICAgICAgICB0aXRsZUF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXNbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGl0bGVBdHRyaWJ1dGU/Lm5hbWUgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHRyeVNldExvb2t1cEl0ZW1zUHJvcGVydGllczxUPihsb29rdXA6IElMb29rdXBEZXNjcmlwdG9yPFQ+KSB7XG4gICAgICAgIGlmIChsb29rdXAubW9kZWxUeXBlKSB7XG4gICAgICAgICAgICBpZiAoIWxvb2t1cC5pdGVtc1ZhbHVlUHJvcGVydHkgfHwgIWxvb2t1cC5kYXRhS2V5UHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpZFByb3BlcnR5ID0gTW9kZWxVdGlsLmZpbmRJZEF0dHJpYnV0ZShsb29rdXAubW9kZWxUeXBlKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgaWYgKGlkUHJvcGVydHkgJiYgIWxvb2t1cC5pdGVtc1ZhbHVlUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9va3VwLndpdGhJdGVtc1ZhbHVlUHJvcGVydHkoaWRQcm9wZXJ0eSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpZFByb3BlcnR5ICYmICFsb29rdXAuZGF0YUtleVByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgICAgIGxvb2t1cC53aXRoRGF0YUtleVByb3BlcnR5KGlkUHJvcGVydHkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbG9va3VwLml0ZW1zTGFiZWxQcm9wZXJ0eSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsUHJvcGVydHkgPSBNb2RlbFV0aWwuZmluZFRpdGxlQXR0cmlidXRlKGxvb2t1cC5tb2RlbFR5cGUpO1xuICAgICAgICAgICAgICAgIGlmIChsYWJlbFByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgICAgIGxvb2t1cC53aXRoSXRlbXNMYWJlbFByb3BlcnR5KGxhYmVsUHJvcGVydHkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export class RouteUtil {
|
|
2
|
+
static removeEmptyPathSegments(path) {
|
|
3
|
+
const filteredPath = path.filter(ps => typeof ps === 'string' && ps.length > 0);
|
|
4
|
+
return filteredPath.length > 0 ? filteredPath : [''];
|
|
5
|
+
}
|
|
6
|
+
static appendPathToBasePath(basePath, path) {
|
|
7
|
+
if (path.length > 0) {
|
|
8
|
+
if (path[0].startsWith('/')) {
|
|
9
|
+
return path;
|
|
10
|
+
}
|
|
11
|
+
else if (path[0].startsWith('../')) {
|
|
12
|
+
// TODO: process multi upper folder
|
|
13
|
+
throw new Error('Not implemented');
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return RouteUtil.removeEmptyPathSegments([...basePath, ...path]);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return basePath;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvcm91dGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sU0FBUztJQUVYLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFtQjtRQUNyRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEYsT0FBTyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxNQUFNLENBQUMsb0JBQW9CLENBQUMsUUFBdUIsRUFBRSxJQUFtQjtRQUMzRSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDekIsT0FBTyxJQUFJLENBQUM7YUFDZjtpQkFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2xDLG1DQUFtQztnQkFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQ3RDO2lCQUFNO2dCQUNILE9BQU8sU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3BFO1NBQ0o7YUFBTTtZQUNILE9BQU8sUUFBUSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFJvdXRlVXRpbCB7XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlbW92ZUVtcHR5UGF0aFNlZ21lbnRzKHBhdGg6IEFycmF5PHN0cmluZz4pIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRQYXRoID0gcGF0aC5maWx0ZXIocHMgPT4gdHlwZW9mIHBzID09PSAnc3RyaW5nJyAmJiBwcy5sZW5ndGggPiAwKTtcbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkUGF0aC5sZW5ndGggPiAwID8gZmlsdGVyZWRQYXRoIDogWycnXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFwcGVuZFBhdGhUb0Jhc2VQYXRoKGJhc2VQYXRoOiBBcnJheTxzdHJpbmc+LCBwYXRoOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmIChwYXRoWzBdLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXRoWzBdLnN0YXJ0c1dpdGgoJy4uLycpKSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogcHJvY2VzcyBtdWx0aSB1cHBlciBmb2xkZXJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUm91dGVVdGlsLnJlbW92ZUVtcHR5UGF0aFNlZ21lbnRzKFsuLi5iYXNlUGF0aCwgLi4ucGF0aF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VQYXRoO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { I18nUtil } from './i18n.util';
|
|
2
|
-
export class ToastUtil {
|
|
3
|
-
static tableNotificationError(translationService, table, error, tableview) {
|
|
4
|
-
const params = {};
|
|
5
|
-
if (error?.message) {
|
|
6
|
-
params.errorMessage = `: ${error.message}`;
|
|
7
|
-
}
|
|
8
|
-
else {
|
|
9
|
-
params.errorMessage = '.';
|
|
10
|
-
}
|
|
11
|
-
console.log(params);
|
|
12
|
-
const tableErrorTitle = I18nUtil.instantModelTranslation(translationService, table.model, 'table.error.title', undefined, undefined, 'general.error', params) ?? undefined;
|
|
13
|
-
const tableErrorMessage = I18nUtil.instantModelTranslation(translationService, table.model, 'table.error.message', undefined, undefined, 'general.errorMessage', params) ?? undefined;
|
|
14
|
-
tableview?.messageService?.add({ severity: 'error', summary: tableErrorTitle, detail: tableErrorMessage });
|
|
15
|
-
}
|
|
16
|
-
static actionNotificationSuccess(translationService, action, functionName, customTitleKey, customMessageKey, tableview, item) {
|
|
17
|
-
const actionSuccessTitle = I18nUtil.instantActionTranslation(translationService, action, 'success.title', customTitleKey, item, 'general.success', functionName) ?? undefined;
|
|
18
|
-
const actionSuccessMessage = I18nUtil.instantActionTranslation(translationService, action, 'success.message', customMessageKey, item, 'general.successMessage', functionName) ?? undefined;
|
|
19
|
-
tableview?.messageService?.add({ severity: 'success', summary: actionSuccessTitle, detail: actionSuccessMessage });
|
|
20
|
-
}
|
|
21
|
-
static actionNotificationError(translationService, action, error, functionName, tableview, item) {
|
|
22
|
-
const params = {};
|
|
23
|
-
if (error?.message) {
|
|
24
|
-
params.errorMessage = `: ${error.message}`;
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
params.errorMessage = '.';
|
|
28
|
-
}
|
|
29
|
-
const actionErrorTitle = I18nUtil.instantActionTranslation(translationService, action, 'error.title', action.runNotificationErrorTitle, item, 'general.error', functionName, params) ?? undefined;
|
|
30
|
-
const actionErrorMessage = I18nUtil.instantActionTranslation(translationService, action, 'error.message', action.runNotificationErrorMessage, item, 'general.errorMessage', functionName, params) ?? undefined;
|
|
31
|
-
tableview?.messageService?.add({ severity: 'error', summary: actionErrorTitle, detail: actionErrorMessage });
|
|
32
|
-
}
|
|
33
|
-
static getFormEditorWarningMessage(translationService, title, message) {
|
|
34
|
-
const actionErrorTitle = translationService.instant(title) ?? undefined;
|
|
35
|
-
const actionErrorMessage = translationService.instant(message) ?? undefined;
|
|
36
|
-
return { severity: 'warn', summary: actionErrorTitle, detail: actionErrorMessage };
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { I18nUtil } from './i18n.util';
|
|
2
|
+
export class ToastUtil {
|
|
3
|
+
static tableNotificationError(translationService, table, error, tableview) {
|
|
4
|
+
const params = {};
|
|
5
|
+
if (error?.message) {
|
|
6
|
+
params.errorMessage = `: ${error.message}`;
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
params.errorMessage = '.';
|
|
10
|
+
}
|
|
11
|
+
console.log(params);
|
|
12
|
+
const tableErrorTitle = I18nUtil.instantModelTranslation(translationService, table.model, 'table.error.title', undefined, undefined, 'general.error', params) ?? undefined;
|
|
13
|
+
const tableErrorMessage = I18nUtil.instantModelTranslation(translationService, table.model, 'table.error.message', undefined, undefined, 'general.errorMessage', params) ?? undefined;
|
|
14
|
+
tableview?.messageService?.add({ severity: 'error', summary: tableErrorTitle, detail: tableErrorMessage });
|
|
15
|
+
}
|
|
16
|
+
static actionNotificationSuccess(translationService, action, functionName, customTitleKey, customMessageKey, tableview, item) {
|
|
17
|
+
const actionSuccessTitle = I18nUtil.instantActionTranslation(translationService, action, 'success.title', customTitleKey, item, 'general.success', functionName) ?? undefined;
|
|
18
|
+
const actionSuccessMessage = I18nUtil.instantActionTranslation(translationService, action, 'success.message', customMessageKey, item, 'general.successMessage', functionName) ?? undefined;
|
|
19
|
+
tableview?.messageService?.add({ severity: 'success', summary: actionSuccessTitle, detail: actionSuccessMessage });
|
|
20
|
+
}
|
|
21
|
+
static actionNotificationError(translationService, action, error, functionName, tableview, item) {
|
|
22
|
+
const params = {};
|
|
23
|
+
if (error?.message) {
|
|
24
|
+
params.errorMessage = `: ${error.message}`;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
params.errorMessage = '.';
|
|
28
|
+
}
|
|
29
|
+
const actionErrorTitle = I18nUtil.instantActionTranslation(translationService, action, 'error.title', action.runNotificationErrorTitle, item, 'general.error', functionName, params) ?? undefined;
|
|
30
|
+
const actionErrorMessage = I18nUtil.instantActionTranslation(translationService, action, 'error.message', action.runNotificationErrorMessage, item, 'general.errorMessage', functionName, params) ?? undefined;
|
|
31
|
+
tableview?.messageService?.add({ severity: 'error', summary: actionErrorTitle, detail: actionErrorMessage });
|
|
32
|
+
}
|
|
33
|
+
static getFormEditorWarningMessage(translationService, title, message) {
|
|
34
|
+
const actionErrorTitle = translationService.instant(title) ?? undefined;
|
|
35
|
+
const actionErrorMessage = translationService.instant(message) ?? undefined;
|
|
36
|
+
return { severity: 'warn', summary: actionErrorTitle, detail: actionErrorMessage };
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvdG9hc3QudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE1BQU0sT0FBTyxTQUFTO0lBRVgsTUFBTSxDQUFDLHNCQUFzQixDQUFDLGtCQUFvQyxFQUFFLEtBQTJCLEVBQUUsS0FBVSxFQUFFLFNBQStDO1FBQy9KLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQTtRQUN0QixJQUFJLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDaEIsTUFBTSxDQUFDLFlBQVksR0FBRyxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM5QzthQUFNO1lBQ0gsTUFBTSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7U0FDN0I7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ25CLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUMzSyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLElBQUksU0FBUyxDQUFDO1FBRXRMLFNBQVMsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVNLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBb0MsRUFBRSxNQUE2QixFQUFFLFlBQW9CLEVBQUUsY0FBdUIsRUFBRSxnQkFBeUIsRUFBRSxTQUErQyxFQUFFLElBQVU7UUFDOU8sTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUM5SyxNQUFNLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLFlBQVksQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUUzTCxTQUFTLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBQyxDQUFDLENBQUM7SUFDckgsQ0FBQztJQUVNLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBb0MsRUFBRSxNQUE2QixFQUFFLEtBQVUsRUFBRSxZQUFvQixFQUFFLFNBQStDLEVBQUUsSUFBVTtRQUNwTSxNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUE7UUFDdEIsSUFBSSxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxZQUFZLEdBQUcsS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDOUM7YUFBTTtZQUNILE1BQU0sQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1NBQzdCO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMseUJBQXlCLEVBQ2xJLElBQUksRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUM5RCxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQywyQkFBMkIsRUFDeEksSUFBSSxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUM7UUFFckUsU0FBUyxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUMsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFTSxNQUFNLENBQUMsMkJBQTJCLENBQUMsa0JBQW9DLEVBQUUsS0FBYSxFQUFFLE9BQWU7UUFDMUcsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDO1FBQ3hFLE1BQU0sa0JBQWtCLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUM1RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFDLENBQUM7SUFDcEYsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvciwgVGFibGVEZXNjcmlwdG9yfSBmcm9tICcuLi9kZXNjcmlwdG9ycyc7XG5pbXBvcnQge1RhYmxldmlld0NvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4uL2NvbXBvbmVudHMvdGFibGV2aWV3L3NlcnZpY2VzJztcbmltcG9ydCB7STE4blV0aWx9IGZyb20gJy4vaTE4bi51dGlsJztcblxuZXhwb3J0IGNsYXNzIFRvYXN0VXRpbCB7XG5cbiAgICBwdWJsaWMgc3RhdGljIHRhYmxlTm90aWZpY2F0aW9uRXJyb3IodHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLCB0YWJsZTogVGFibGVEZXNjcmlwdG9yPGFueT4sIGVycm9yOiBhbnksIHRhYmxldmlldz86IFRhYmxldmlld0NvbXBvbmVudFNlcnZpY2U8YW55LCBhbnk+KSB7XG4gICAgICAgIGNvbnN0IHBhcmFtczogYW55ID0ge31cbiAgICAgICAgaWYgKGVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICBwYXJhbXMuZXJyb3JNZXNzYWdlID0gYDogJHtlcnJvci5tZXNzYWdlfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXMuZXJyb3JNZXNzYWdlID0gJy4nO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKHBhcmFtcylcbiAgICAgICAgY29uc3QgdGFibGVFcnJvclRpdGxlID0gSTE4blV0aWwuaW5zdGFudE1vZGVsVHJhbnNsYXRpb24odHJhbnNsYXRpb25TZXJ2aWNlLCB0YWJsZS5tb2RlbCwgJ3RhYmxlLmVycm9yLnRpdGxlJywgdW5kZWZpbmVkLCB1bmRlZmluZWQsICdnZW5lcmFsLmVycm9yJywgcGFyYW1zKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHRhYmxlRXJyb3JNZXNzYWdlID0gSTE4blV0aWwuaW5zdGFudE1vZGVsVHJhbnNsYXRpb24odHJhbnNsYXRpb25TZXJ2aWNlLCB0YWJsZS5tb2RlbCwgJ3RhYmxlLmVycm9yLm1lc3NhZ2UnLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgJ2dlbmVyYWwuZXJyb3JNZXNzYWdlJywgcGFyYW1zKSA/PyB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGFibGV2aWV3Py5tZXNzYWdlU2VydmljZT8uYWRkKHtzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogdGFibGVFcnJvclRpdGxlLCBkZXRhaWw6IHRhYmxlRXJyb3JNZXNzYWdlfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhY3Rpb25Ob3RpZmljYXRpb25TdWNjZXNzKHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRlU2VydmljZSwgYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9yPGFueT4sIGZ1bmN0aW9uTmFtZTogc3RyaW5nLCBjdXN0b21UaXRsZUtleT86IHN0cmluZywgY3VzdG9tTWVzc2FnZUtleT86IHN0cmluZywgdGFibGV2aWV3PzogVGFibGV2aWV3Q29tcG9uZW50U2VydmljZTxhbnksIGFueT4sIGl0ZW0/OiBhbnkpIHtcbiAgICAgICAgY29uc3QgYWN0aW9uU3VjY2Vzc1RpdGxlID0gSTE4blV0aWwuaW5zdGFudEFjdGlvblRyYW5zbGF0aW9uKHRyYW5zbGF0aW9uU2VydmljZSwgYWN0aW9uLCAnc3VjY2Vzcy50aXRsZScsIGN1c3RvbVRpdGxlS2V5LCBpdGVtLCAnZ2VuZXJhbC5zdWNjZXNzJywgZnVuY3Rpb25OYW1lKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGFjdGlvblN1Y2Nlc3NNZXNzYWdlID0gSTE4blV0aWwuaW5zdGFudEFjdGlvblRyYW5zbGF0aW9uKHRyYW5zbGF0aW9uU2VydmljZSwgYWN0aW9uLCAnc3VjY2Vzcy5tZXNzYWdlJywgY3VzdG9tTWVzc2FnZUtleSwgaXRlbSwgJ2dlbmVyYWwuc3VjY2Vzc01lc3NhZ2UnLCBmdW5jdGlvbk5hbWUpID8/IHVuZGVmaW5lZDtcblxuICAgICAgICB0YWJsZXZpZXc/Lm1lc3NhZ2VTZXJ2aWNlPy5hZGQoe3NldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6IGFjdGlvblN1Y2Nlc3NUaXRsZSwgZGV0YWlsOiBhY3Rpb25TdWNjZXNzTWVzc2FnZX0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYWN0aW9uTm90aWZpY2F0aW9uRXJyb3IodHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLCBhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3I8YW55PiwgZXJyb3I6IGFueSwgZnVuY3Rpb25OYW1lOiBzdHJpbmcsIHRhYmxldmlldz86IFRhYmxldmlld0NvbXBvbmVudFNlcnZpY2U8YW55LCBhbnk+LCBpdGVtPzogYW55KSB7XG4gICAgICAgIGNvbnN0IHBhcmFtczogYW55ID0ge31cbiAgICAgICAgaWYgKGVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICBwYXJhbXMuZXJyb3JNZXNzYWdlID0gYDogJHtlcnJvci5tZXNzYWdlfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXMuZXJyb3JNZXNzYWdlID0gJy4nO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGlvbkVycm9yVGl0bGUgPSBJMThuVXRpbC5pbnN0YW50QWN0aW9uVHJhbnNsYXRpb24odHJhbnNsYXRpb25TZXJ2aWNlLCBhY3Rpb24sICdlcnJvci50aXRsZScsIGFjdGlvbi5ydW5Ob3RpZmljYXRpb25FcnJvclRpdGxlLFxuICAgICAgICAgICAgaXRlbSwgJ2dlbmVyYWwuZXJyb3InLCBmdW5jdGlvbk5hbWUsIHBhcmFtcykgPz8gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBhY3Rpb25FcnJvck1lc3NhZ2UgPSBJMThuVXRpbC5pbnN0YW50QWN0aW9uVHJhbnNsYXRpb24odHJhbnNsYXRpb25TZXJ2aWNlLCBhY3Rpb24sICdlcnJvci5tZXNzYWdlJywgYWN0aW9uLnJ1bk5vdGlmaWNhdGlvbkVycm9yTWVzc2FnZSxcbiAgICAgICAgICAgIGl0ZW0sICdnZW5lcmFsLmVycm9yTWVzc2FnZScsIGZ1bmN0aW9uTmFtZSwgcGFyYW1zKSA/PyB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGFibGV2aWV3Py5tZXNzYWdlU2VydmljZT8uYWRkKHtzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogYWN0aW9uRXJyb3JUaXRsZSwgZGV0YWlsOiBhY3Rpb25FcnJvck1lc3NhZ2V9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldEZvcm1FZGl0b3JXYXJuaW5nTWVzc2FnZSh0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsIHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZykge1xuICAgICAgICBjb25zdCBhY3Rpb25FcnJvclRpdGxlID0gdHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQodGl0bGUpID8/IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgYWN0aW9uRXJyb3JNZXNzYWdlID0gdHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQobWVzc2FnZSkgPz8gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4ge3NldmVyaXR5Oid3YXJuJywgc3VtbWFyeTogYWN0aW9uRXJyb3JUaXRsZSwgZGV0YWlsOiBhY3Rpb25FcnJvck1lc3NhZ2V9O1xuICAgIH1cbn1cbiJdfQ==
|