@acorex/modules 19.4.9 → 19.4.11
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/content-management/README.md +3 -0
- package/content-management/index.d.ts +6 -0
- package/content-management/lib/const.d.ts +19 -0
- package/content-management/lib/content-management.module.d.ts +7 -0
- package/content-management/lib/entity.provider.d.ts +10 -0
- package/content-management/lib/menu.provider.d.ts +5 -0
- package/content-management/lib/permission-definition.provider.d.ts +4 -0
- package/content-management/lib/search-command.provider.d.ts +4 -0
- package/content-management/lib/setting.provider.d.ts +4 -0
- package/document-management/lib/features/shared/document-manager.service.d.ts +3 -0
- package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-C23PlUCn.mjs +392 -0
- package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-C23PlUCn.mjs.map +1 -0
- package/fesm2022/acorex-modules-content-management-promotion.entity-D3qRwZhQ.mjs +892 -0
- package/fesm2022/acorex-modules-content-management-promotion.entity-D3qRwZhQ.mjs.map +1 -0
- package/fesm2022/acorex-modules-content-management.mjs +2 -0
- package/fesm2022/acorex-modules-content-management.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-BATdoqJi.mjs → acorex-modules-document-management-acorex-modules-document-management-_tXLNsja.mjs} +86 -43
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-_tXLNsja.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-C1-gQepw.mjs → acorex-modules-document-management-attachment-widget.component-BVOXu-Jt.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-C1-gQepw.mjs.map → acorex-modules-document-management-attachment-widget.component-BVOXu-Jt.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-ZMvsadWt.mjs → acorex-modules-document-management-create-folder-dialog.component-DRj1LyK3.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-ZMvsadWt.mjs.map → acorex-modules-document-management-create-folder-dialog.component-DRj1LyK3.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-details-view.component-CvHIETNf.mjs → acorex-modules-document-management-details-view.component-llMxeeFn.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-details-view.component-CvHIETNf.mjs.map → acorex-modules-document-management-details-view.component-llMxeeFn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-UTy9OISj.mjs → acorex-modules-document-management-drive-choose.component-DDepk8Hb.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-UTy9OISj.mjs.map → acorex-modules-document-management-drive-choose.component-DDepk8Hb.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive.component-Crh10Z5J.mjs → acorex-modules-document-management-drive.component-BQ2w-PZw.mjs} +3 -2
- package/fesm2022/acorex-modules-document-management-drive.component-BQ2w-PZw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BuV7MPG5.mjs → acorex-modules-document-management-large-icons-view.component-9Q0LX8M-.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BuV7MPG5.mjs.map → acorex-modules-document-management-large-icons-view.component-9Q0LX8M-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CwYwVxoG.mjs → acorex-modules-document-management-large-tiles-view.component-CyqKSkZY.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CwYwVxoG.mjs.map → acorex-modules-document-management-large-tiles-view.component-CyqKSkZY.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-list-view.component-BHEwRA3m.mjs → acorex-modules-document-management-list-view.component-CpXtdrMZ.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-list-view.component-BHEwRA3m.mjs.map → acorex-modules-document-management-list-view.component-CpXtdrMZ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-B3qaYwRL.mjs → acorex-modules-document-management-permission-definition.provider-DZni4b4s.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-B3qaYwRL.mjs.map → acorex-modules-document-management-permission-definition.provider-DZni4b4s.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-CrcJm9jP.mjs → acorex-modules-document-management-rename-node-dialog.component-hcrBZ7h2.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-CrcJm9jP.mjs.map → acorex-modules-document-management-rename-node-dialog.component-hcrBZ7h2.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-CD5UORaq.mjs → acorex-modules-document-management-small-icons-view.component-y9M40s9q.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-CD5UORaq.mjs.map → acorex-modules-document-management-small-icons-view.component-y9M40s9q.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-cpc_xfbT.mjs → acorex-modules-document-management-small-tiles-view.component-Ck8m3hZE.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-cpc_xfbT.mjs.map → acorex-modules-document-management-small-tiles-view.component-Ck8m3hZE.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management.mjs +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-DtXOjIIK.mjs → acorex-modules-platform-management-acorex-modules-platform-management-B8aACrqL.mjs} +229 -1226
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-B8aACrqL.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DY4yMd8n.mjs → acorex-modules-platform-management-list-version.component-DhSicYd3.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DY4yMd8n.mjs.map → acorex-modules-platform-management-list-version.component-DhSicYd3.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-settings.provider-BO-1dmVc.mjs → acorex-modules-platform-management-settings.provider-CnGAUpof.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-settings.provider-BO-1dmVc.mjs.map → acorex-modules-platform-management-settings.provider-CnGAUpof.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/package.json +5 -1
- package/platform-management/lib/const.d.ts +0 -6
- package/platform-management/lib/entities/data-source/data-source.types.d.ts +1 -2
- package/platform-management/lib/entities/index.d.ts +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BATdoqJi.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-drive.component-Crh10Z5J.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-DtXOjIIK.mjs.map +0 -1
- package/platform-management/lib/entities/promotion/index.d.ts +0 -4
- package/platform-management/lib/features/promotion/components/index.d.ts +0 -1
- /package/{platform-management → content-management}/lib/entities/promotion/promotion.datasource.d.ts +0 -0
- /package/{platform-management → content-management}/lib/entities/promotion/promotion.entity.d.ts +0 -0
- /package/{platform-management → content-management}/lib/entities/promotion/promotion.service.d.ts +0 -0
- /package/{platform-management → content-management}/lib/entities/promotion/promotion.types.d.ts +0 -0
- /package/{platform-management → content-management}/lib/features/promotion/components/promotion-slot/promotion-slot.component.d.ts +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
import { createAllQueryView, AXPEntityCommandScope, AXPEntityQueryType, AXPSettingService, AXP_APP_VERSION_PROVIDER, createQueryView,
|
1
|
+
import { createAllQueryView, AXPEntityCommandScope, AXPEntityQueryType, AXPSettingService, AXP_APP_VERSION_PROVIDER, createQueryView, AXPRegionalService, AXP_SETTING_DEFINITION_PROVIDER, AXP_MENU_PROVIDER } from '@acorex/platform/common';
|
2
2
|
import * as i2$2 from '@acorex/platform/layout/components';
|
3
3
|
import { AXPThemeLayoutBlockComponent, AXPComponentSlotModule } from '@acorex/platform/layout/components';
|
4
4
|
import { AXMEntityCrudServiceImpl, AXPEntityDefinitionRegistryService, AXPEntityResolver, AXPEntityService, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';
|
@@ -24,7 +24,7 @@ import { CommonModule } from '@angular/common';
|
|
24
24
|
import { AXSafePipe } from '@acorex/core/pipes';
|
25
25
|
import { AXPopupService } from '@acorex/components/popup';
|
26
26
|
import * as i1$2 from '@acorex/platform/core';
|
27
|
-
import { AXPPlatformScope, AXPDataSourceDefinitionProviderService, applyQueryArray, AXPAppStartUpService, objectKeyValueTransforms
|
27
|
+
import { AXPPlatformScope, AXPDataSourceDefinitionProviderService, applyQueryArray, AXPAppStartUpService, objectKeyValueTransforms } from '@acorex/platform/core';
|
28
28
|
import * as i3$1 from '@acorex/components/button';
|
29
29
|
import { AXButtonModule } from '@acorex/components/button';
|
30
30
|
import * as i3 from '@acorex/components/check-box';
|
@@ -89,12 +89,6 @@ const RootConfig = {
|
|
89
89
|
pageDescription: `t("app-term.page-description", {scope:"${config.i18n}"})`,
|
90
90
|
icon: 'fa-light fa-scale-balanced',
|
91
91
|
},
|
92
|
-
promotion: {
|
93
|
-
name: 'promotion',
|
94
|
-
title: `t("promotion", {scope:"${config.i18n}"})`,
|
95
|
-
titlePlural: `t("promotionPlural", {scope:"${config.i18n}"})`,
|
96
|
-
icon: 'fa-light fa-billboard',
|
97
|
-
},
|
98
92
|
dataSource: {
|
99
93
|
name: 'DataSource',
|
100
94
|
title: `t("dataSource", {scope:"${config.i18n}"})`,
|
@@ -1680,10 +1674,10 @@ async function dataSourceEntityFactory(injector) {
|
|
1680
1674
|
},
|
1681
1675
|
},
|
1682
1676
|
validations: [
|
1683
|
-
|
1684
|
-
|
1685
|
-
|
1686
|
-
|
1677
|
+
// {
|
1678
|
+
// rule: 'required',
|
1679
|
+
// disabled: "{{ context.eval('sourceType')?.name != 'entity' }}",
|
1680
|
+
// },
|
1687
1681
|
],
|
1688
1682
|
},
|
1689
1683
|
{
|
@@ -3064,6 +3058,16 @@ async function metaDataDefinitionFactory(injector) {
|
|
3064
3058
|
},
|
3065
3059
|
},
|
3066
3060
|
},
|
3061
|
+
{
|
3062
|
+
name: 'description',
|
3063
|
+
layout: {
|
3064
|
+
positions: {
|
3065
|
+
lg: {
|
3066
|
+
colSpan: 12,
|
3067
|
+
},
|
3068
|
+
},
|
3069
|
+
},
|
3070
|
+
},
|
3067
3071
|
{
|
3068
3072
|
name: 'categoryIds',
|
3069
3073
|
layout: {
|
@@ -3113,6 +3117,16 @@ async function metaDataDefinitionFactory(injector) {
|
|
3113
3117
|
},
|
3114
3118
|
},
|
3115
3119
|
},
|
3120
|
+
{
|
3121
|
+
name: 'description',
|
3122
|
+
layout: {
|
3123
|
+
positions: {
|
3124
|
+
lg: {
|
3125
|
+
colSpan: 12,
|
3126
|
+
},
|
3127
|
+
},
|
3128
|
+
},
|
3129
|
+
},
|
3116
3130
|
{
|
3117
3131
|
name: 'categoryIds',
|
3118
3132
|
layout: {
|
@@ -3170,6 +3184,16 @@ async function metaDataDefinitionFactory(injector) {
|
|
3170
3184
|
},
|
3171
3185
|
},
|
3172
3186
|
},
|
3187
|
+
{
|
3188
|
+
name: 'description',
|
3189
|
+
layout: {
|
3190
|
+
positions: {
|
3191
|
+
lg: {
|
3192
|
+
colSpan: 12,
|
3193
|
+
},
|
3194
|
+
},
|
3195
|
+
},
|
3196
|
+
},
|
3173
3197
|
{
|
3174
3198
|
name: 'categoryIds',
|
3175
3199
|
dataPath: 'categories',
|
@@ -3500,1108 +3524,175 @@ async function metaDataDefinitionCategoryEntityFactory(injector) {
|
|
3500
3524
|
// };
|
3501
3525
|
// }
|
3502
3526
|
|
3503
|
-
|
3504
|
-
|
3505
|
-
|
3506
|
-
|
3507
|
-
|
3508
|
-
|
3509
|
-
|
3510
|
-
|
3511
|
-
|
3512
|
-
|
3513
|
-
|
3514
|
-
|
3527
|
+
var index = /*#__PURE__*/Object.freeze({
|
3528
|
+
__proto__: null,
|
3529
|
+
AXMAppTermService: AXMAppTermService,
|
3530
|
+
AXMAppTermServiceImpl: AXMAppTermServiceImpl,
|
3531
|
+
AXMAppVersionService: AXMAppVersionService,
|
3532
|
+
AXMAppVersionServiceImpl: AXMAppVersionServiceImpl,
|
3533
|
+
AXMAppVersionSlotComponent: AXMAppVersionSlotComponent,
|
3534
|
+
AXMChangeLogPopupAction: AXMChangeLogPopupAction,
|
3535
|
+
AXMChangeLogUpdateSettingAction: AXMChangeLogUpdateSettingAction,
|
3536
|
+
AXMCheckNewVersionAction: AXMCheckNewVersionAction,
|
3537
|
+
AXMCheckNewVersionWorkflow: AXMCheckNewVersionWorkflow,
|
3538
|
+
AXMDataSourceService: AXMDataSourceService,
|
3539
|
+
AXMDataSourceServiceImpl: AXMDataSourceServiceImpl,
|
3540
|
+
AXMGlobalVariablesService: AXMGlobalVariablesService,
|
3541
|
+
AXMGlobalVariablesServiceImpl: AXMGlobalVariablesServiceImpl,
|
3542
|
+
AXMGlossaryService: AXMGlossaryService,
|
3543
|
+
AXMGlossaryServiceImpl: AXMGlossaryServiceImpl,
|
3544
|
+
AXMListTermsComponent: AXMListTermsComponent,
|
3545
|
+
AXMMetaDataDefinitionCategoryService: AXMMetaDataDefinitionCategoryService,
|
3546
|
+
AXMMetaDataDefinitionCategoryServiceImpl: AXMMetaDataDefinitionCategoryServiceImpl,
|
3547
|
+
AXMMetaDataDefinitionService: AXMMetaDataDefinitionService,
|
3548
|
+
AXMNewTermWorkflow: AXMNewTermWorkflow,
|
3549
|
+
AXMNotifyAppComponent: AXMNotifyAppComponent,
|
3550
|
+
AXMNotifyNewTermPopupAction: AXMNotifyNewTermPopupAction,
|
3551
|
+
AXMPMetaDataDefinitionServiceImpl: AXMPMetaDataDefinitionServiceImpl,
|
3552
|
+
AXMTermUpdateSettingAction: AXMTermUpdateSettingAction,
|
3553
|
+
AXMWhatsNewWorkflow: AXMWhatsNewWorkflow,
|
3554
|
+
appTermEntityEntityFactory: appTermEntityEntityFactory,
|
3555
|
+
appVersionEntityEntityFactory: appVersionEntityEntityFactory,
|
3556
|
+
dataSourceEntityFactory: dataSourceEntityFactory,
|
3557
|
+
globalVariableEntityFactory: globalVariableEntityFactory,
|
3558
|
+
glossaryEntityFactory: glossaryEntityFactory,
|
3559
|
+
metaDataDefinitionCategoryEntityFactory: metaDataDefinitionCategoryEntityFactory,
|
3560
|
+
metaDataDefinitionFactory: metaDataDefinitionFactory
|
3561
|
+
});
|
3562
|
+
|
3563
|
+
const path = 'regional:';
|
3564
|
+
var AXPRegionalSetting;
|
3565
|
+
(function (AXPRegionalSetting) {
|
3566
|
+
AXPRegionalSetting["LocaleProfile"] = "regional:locale-profile";
|
3567
|
+
AXPRegionalSetting["TimeZone"] = "regional:timezone";
|
3568
|
+
AXPRegionalSetting["Language"] = "regional:language";
|
3569
|
+
AXPRegionalSetting["Country"] = "regional:country";
|
3570
|
+
AXPRegionalSetting["Calendar"] = "regional:calendar";
|
3571
|
+
AXPRegionalSetting["FirstDayOfWeek"] = "regional:first-day-of-week";
|
3572
|
+
AXPRegionalSetting["WeekendDays"] = "regional:weekend-days";
|
3573
|
+
AXPRegionalSetting["ShortDate"] = "regional:short-date";
|
3574
|
+
AXPRegionalSetting["LongDate"] = "regional:long-date";
|
3575
|
+
AXPRegionalSetting["ShortTime"] = "regional:short-time";
|
3576
|
+
AXPRegionalSetting["LongTime"] = "regional:long-time";
|
3577
|
+
AXPRegionalSetting["MeasurementUnits"] = "regional:measurement-units";
|
3578
|
+
AXPRegionalSetting["TemperatureUnits"] = "regional:temperature-units";
|
3579
|
+
AXPRegionalSetting["DistanceUnits"] = "regional:distance-units";
|
3580
|
+
AXPRegionalSetting["WeightUnits"] = "regional:weight-units";
|
3581
|
+
AXPRegionalSetting["VolumeUnits"] = "regional:volume-units";
|
3582
|
+
AXPRegionalSetting["SpeedUnits"] = "regional:speed-units";
|
3583
|
+
AXPRegionalSetting["AreaUnits"] = "regional:area-units";
|
3584
|
+
})(AXPRegionalSetting || (AXPRegionalSetting = {}));
|
3585
|
+
|
3586
|
+
// Regional Store - Manages regional settings and system changes
|
3587
|
+
const AXPRegionalStoreService = signalStore({ providedIn: 'root' },
|
3588
|
+
// Initial State
|
3589
|
+
withState((localeService = inject(AXLocaleService)) => {
|
3590
|
+
const state = {
|
3591
|
+
profile: localeService.activeProfile().localeInfo.code,
|
3592
|
+
language: localeService.activeProfile().localeInfo.language,
|
3593
|
+
calendar: localeService.activeProfile().calendar.system,
|
3594
|
+
};
|
3595
|
+
return state;
|
3596
|
+
}),
|
3597
|
+
// Computed Signals
|
3598
|
+
// withComputed(({ }) => ({
|
3599
|
+
// })),
|
3600
|
+
// Methods for State Management
|
3601
|
+
withMethods((store, settingService = inject(AXPSettingService), localeService = inject(AXLocaleService), calendarService = inject(AXCalendarService), translateService = inject(AXTranslationService)) => {
|
3602
|
+
const applyChanges = async () => {
|
3603
|
+
const profile = localeService.activeProfile();
|
3604
|
+
const html = document.getElementsByTagName('html')[0];
|
3605
|
+
profile.i18nMeta?.rtl ? html.setAttribute('dir', 'rtl') : html.removeAttribute('dir');
|
3606
|
+
};
|
3607
|
+
return {
|
3608
|
+
async changeProfile(profileCode) {
|
3609
|
+
await localeService.setProfile(profileCode);
|
3610
|
+
const profile = localeService.activeProfile();
|
3611
|
+
//
|
3612
|
+
if (store.profile() != profile.localeInfo.code) {
|
3613
|
+
settingService.scope(AXPPlatformScope.User).set(AXPRegionalSetting.LocaleProfile, profile.localeInfo.code);
|
3614
|
+
settingService.scope(AXPPlatformScope.User).set(AXPRegionalSetting.Language, profile.localeInfo.code);
|
3615
|
+
patchState(store, { profile: profile.localeInfo.code });
|
3616
|
+
}
|
3617
|
+
//
|
3618
|
+
await applyChanges();
|
3619
|
+
},
|
3620
|
+
async loadSetting() {
|
3621
|
+
const profileCode = (await settingService.scope(AXPPlatformScope.User).get(AXPRegionalSetting.LocaleProfile));
|
3622
|
+
patchState(store, { profile: profileCode });
|
3623
|
+
await localeService.setProfile(profileCode);
|
3624
|
+
//
|
3625
|
+
// delay to ensure the profile is set and override the default
|
3626
|
+
setTimeout(async () => {
|
3627
|
+
const calendar = (await settingService.scope(AXPPlatformScope.User).get(AXPRegionalSetting.Calendar));
|
3628
|
+
patchState(store, { calendar: calendar });
|
3629
|
+
calendarService.setActiveCalendar(calendar);
|
3630
|
+
//
|
3631
|
+
const language = (await settingService.scope(AXPPlatformScope.User).get(AXPRegionalSetting.Language));
|
3632
|
+
patchState(store, { language: language });
|
3633
|
+
translateService.setActiveLang(language);
|
3634
|
+
//
|
3635
|
+
await applyChanges();
|
3636
|
+
});
|
3637
|
+
//
|
3638
|
+
},
|
3639
|
+
};
|
3640
|
+
}), withHooks((store, settingService = inject(AXPSettingService), translateService = inject(AXTranslationService)) => ({
|
3641
|
+
onInit() {
|
3642
|
+
settingService.onChanged.subscribe(async (setting) => {
|
3643
|
+
const keys = [
|
3644
|
+
AXPRegionalSetting.LocaleProfile,
|
3645
|
+
AXPRegionalSetting.Language,
|
3646
|
+
AXPRegionalSetting.Calendar
|
3647
|
+
];
|
3648
|
+
//
|
3649
|
+
if (keys.some(k => setting.keys.includes(k))) {
|
3650
|
+
await store.loadSetting();
|
3651
|
+
}
|
3652
|
+
});
|
3653
|
+
},
|
3654
|
+
onDestroy() { },
|
3655
|
+
})));
|
3515
3656
|
|
3516
|
-
class
|
3657
|
+
class AXMLanguageSlotComponent {
|
3517
3658
|
constructor() {
|
3518
|
-
this.
|
3519
|
-
this.
|
3520
|
-
this.
|
3659
|
+
this.regionalService = inject(AXPRegionalService);
|
3660
|
+
this.store = inject(AXPRegionalStoreService);
|
3661
|
+
this.items = signal([]);
|
3521
3662
|
}
|
3522
3663
|
async ngOnInit() {
|
3523
|
-
const
|
3524
|
-
|
3525
|
-
take: 10000,
|
3526
|
-
// filter: {
|
3527
|
-
// field: 'type',
|
3528
|
-
// operator: { type: 'equal' },
|
3529
|
-
// value: 'promotion',
|
3530
|
-
// },
|
3531
|
-
});
|
3532
|
-
const filteredItems = channels.items.filter((x) => x.placement?.name == this.location);
|
3533
|
-
const mappedItems = await Promise.all(filteredItems.map(async (item) => {
|
3534
|
-
if (item.imageId != null) {
|
3535
|
-
const image = await this.fileStorage.getInfo(item.imageId);
|
3536
|
-
return {
|
3537
|
-
...item,
|
3538
|
-
image: image,
|
3539
|
-
};
|
3540
|
-
}
|
3541
|
-
else {
|
3542
|
-
return item;
|
3543
|
-
}
|
3544
|
-
}));
|
3545
|
-
this.listData.set(mappedItems);
|
3664
|
+
const items = await this.regionalService.getLocaleProfiles();
|
3665
|
+
this.items.set(items);
|
3546
3666
|
}
|
3547
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type:
|
3548
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type:
|
3667
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMLanguageSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
3668
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AXMLanguageSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<ax-button color=\"primary\">\n <ax-icon class=\"fa-regular fa-globe\"> </ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(lang of items(); track lang){\n <ax-button-item\n [text]=\"lang.title\"\n [selected]=\"store.profile() === lang.code\"\n (onClick)=\"store.changeProfile(lang.code)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-flag\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n</ax-button>\n", dependencies: [{ kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i1$1.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i3$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i3$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: CommonModule }] }); }
|
3549
3669
|
}
|
3550
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type:
|
3670
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMLanguageSlotComponent, decorators: [{
|
3551
3671
|
type: Component,
|
3552
|
-
args: [{
|
3672
|
+
args: [{ imports: [AXDropdownModule, AXDecoratorModule, AXPopoverModule, AXButtonModule, CommonModule], template: "<ax-button color=\"primary\">\n <ax-icon class=\"fa-regular fa-globe\"> </ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(lang of items(); track lang){\n <ax-button-item\n [text]=\"lang.title\"\n [selected]=\"store.profile() === lang.code\"\n (onClick)=\"store.changeProfile(lang.code)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-flag\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n</ax-button>\n" }]
|
3553
3673
|
}] });
|
3554
3674
|
|
3555
|
-
|
3556
|
-
|
3557
|
-
|
3558
|
-
|
3559
|
-
|
3560
|
-
|
3561
|
-
|
3562
|
-
|
3563
|
-
|
3564
|
-
|
3565
|
-
|
3566
|
-
|
3567
|
-
|
3568
|
-
return obj.map(item => sanitizeForStorage(item));
|
3569
|
-
}
|
3570
|
-
// Handle Date objects
|
3571
|
-
if (obj instanceof Date) {
|
3572
|
-
return obj;
|
3573
|
-
}
|
3574
|
-
// Handle File objects specially
|
3575
|
-
if (obj instanceof File) {
|
3576
|
-
// File objects are handled separately, return as is
|
3577
|
-
return obj;
|
3578
|
-
}
|
3579
|
-
// Handle Blob objects
|
3580
|
-
if (obj instanceof Blob) {
|
3581
|
-
// Blob objects are handled separately
|
3582
|
-
return obj;
|
3583
|
-
}
|
3584
|
-
// Handle regular objects
|
3585
|
-
const cleanedObj = {};
|
3586
|
-
for (const [key, value] of Object.entries(obj)) {
|
3587
|
-
// Skip functions, symbols and other non-serializable types
|
3588
|
-
if (typeof value === 'function' || typeof value === 'symbol') {
|
3589
|
-
continue;
|
3590
|
-
}
|
3591
|
-
// Handle null values
|
3592
|
-
if (value === null) {
|
3593
|
-
cleanedObj[key] = null;
|
3594
|
-
continue;
|
3595
|
-
}
|
3596
|
-
// Recursively sanitize objects
|
3597
|
-
if (typeof value === 'object') {
|
3598
|
-
cleanedObj[key] = sanitizeForStorage(value);
|
3599
|
-
}
|
3600
|
-
else {
|
3601
|
-
cleanedObj[key] = value;
|
3602
|
-
}
|
3603
|
-
}
|
3604
|
-
return cleanedObj;
|
3605
|
-
}
|
3606
|
-
async function promotionEntityFactory(injector) {
|
3607
|
-
const dataService = injector.get(AXMAppPromotionService);
|
3608
|
-
const i18n = RootConfig.config.i18n;
|
3609
|
-
const entityDef = {
|
3610
|
-
module: RootConfig.module.name,
|
3611
|
-
name: RootConfig.entities.promotion.name,
|
3612
|
-
source: '',
|
3613
|
-
title: RootConfig.entities.promotion.title,
|
3614
|
-
formats: {
|
3615
|
-
individual: RootConfig.entities.promotion.title,
|
3616
|
-
plural: RootConfig.entities.promotion.titlePlural,
|
3617
|
-
searchResult: {
|
3618
|
-
title: '{{ title }}',
|
3619
|
-
description: RootConfig.module.title,
|
3620
|
-
},
|
3621
|
-
},
|
3622
|
-
relatedEntities: [],
|
3623
|
-
groups: [
|
3624
|
-
{
|
3625
|
-
id: 'promotion',
|
3626
|
-
title: 'Promotion',
|
3627
|
-
},
|
3628
|
-
],
|
3629
|
-
properties: [
|
3630
|
-
{
|
3631
|
-
name: 'id',
|
3632
|
-
title: 'ID',
|
3633
|
-
schema: {
|
3634
|
-
dataType: 'uuid',
|
3635
|
-
hidden: true,
|
3636
|
-
nullable: false,
|
3637
|
-
readonly: true,
|
3638
|
-
unique: {
|
3639
|
-
enabled: true,
|
3640
|
-
},
|
3675
|
+
class AXPRegionalWidgetDataSourceProvider {
|
3676
|
+
constructor() {
|
3677
|
+
this.regionalService = inject(AXPRegionalService);
|
3678
|
+
//#region Country
|
3679
|
+
this.country = {
|
3680
|
+
name: 'countries',
|
3681
|
+
title: 'Countries',
|
3682
|
+
textField: 'title',
|
3683
|
+
valueField: 'code',
|
3684
|
+
columns: [
|
3685
|
+
{
|
3686
|
+
name: 'code',
|
3687
|
+
title: 'Code',
|
3641
3688
|
},
|
3642
|
-
|
3643
|
-
|
3644
|
-
|
3645
|
-
},
|
3689
|
+
{
|
3690
|
+
name: 'title',
|
3691
|
+
title: 'Title',
|
3646
3692
|
},
|
3647
|
-
|
3648
|
-
|
3649
|
-
|
3650
|
-
title: `t("title", { scope: "common" })`,
|
3651
|
-
groupId: 'promotion',
|
3652
|
-
schema: {
|
3653
|
-
dataType: 'string',
|
3654
|
-
interface: {
|
3655
|
-
type: AXPWidgetsCatalog.text,
|
3656
|
-
},
|
3657
|
-
},
|
3658
|
-
options: {
|
3659
|
-
sort: {
|
3660
|
-
enabled: true,
|
3661
|
-
},
|
3662
|
-
filter: {
|
3663
|
-
advance: {
|
3664
|
-
enabled: true,
|
3665
|
-
},
|
3666
|
-
inline: {
|
3667
|
-
enabled: true,
|
3668
|
-
},
|
3669
|
-
},
|
3670
|
-
},
|
3671
|
-
validations: [
|
3672
|
-
{
|
3673
|
-
rule: 'required',
|
3674
|
-
},
|
3675
|
-
],
|
3676
|
-
},
|
3677
|
-
{
|
3678
|
-
name: 'body',
|
3679
|
-
title: `t("body", { scope: "${i18n}" })`,
|
3680
|
-
groupId: 'promotion',
|
3681
|
-
schema: {
|
3682
|
-
dataType: 'string',
|
3683
|
-
interface: {
|
3684
|
-
type: AXPWidgetsCatalog.richText,
|
3685
|
-
},
|
3686
|
-
},
|
3687
|
-
validations: [
|
3688
|
-
{
|
3689
|
-
rule: 'required',
|
3690
|
-
},
|
3691
|
-
],
|
3692
|
-
},
|
3693
|
-
{
|
3694
|
-
name: 'imageId',
|
3695
|
-
title: `t("Gallery", { scope: "${i18n}" })`,
|
3696
|
-
groupId: 'promotion',
|
3697
|
-
schema: {
|
3698
|
-
dataType: 'string',
|
3699
|
-
interface: {
|
3700
|
-
type: AXPWidgetsCatalog.fileUploader,
|
3701
|
-
options: {
|
3702
|
-
multiple: false,
|
3703
|
-
},
|
3704
|
-
},
|
3705
|
-
},
|
3706
|
-
},
|
3707
|
-
{
|
3708
|
-
name: 'contentType',
|
3709
|
-
title: `t("contentType", { scope: "${i18n}" })`,
|
3710
|
-
groupId: 'promotion',
|
3711
|
-
schema: {
|
3712
|
-
dataType: 'string',
|
3713
|
-
interface: {
|
3714
|
-
type: AXPWidgetsCatalog.select,
|
3715
|
-
options: {
|
3716
|
-
valueField: 'name',
|
3717
|
-
textField: 'title',
|
3718
|
-
dataSource: [
|
3719
|
-
{ title: 'Media', name: 'media' },
|
3720
|
-
{ title: 'Text', name: 'text' },
|
3721
|
-
],
|
3722
|
-
direction: 'horizontal',
|
3723
|
-
multiple: false,
|
3724
|
-
},
|
3725
|
-
},
|
3726
|
-
},
|
3727
|
-
options: {
|
3728
|
-
sort: {
|
3729
|
-
enabled: true,
|
3730
|
-
},
|
3731
|
-
filter: {
|
3732
|
-
advance: {
|
3733
|
-
enabled: true,
|
3734
|
-
},
|
3735
|
-
},
|
3736
|
-
},
|
3737
|
-
validations: [
|
3738
|
-
{
|
3739
|
-
rule: 'required',
|
3740
|
-
},
|
3741
|
-
],
|
3742
|
-
},
|
3743
|
-
// {
|
3744
|
-
// name: 'shape',
|
3745
|
-
// title: `t("shape", { scope: "${i18n}" })`,
|
3746
|
-
// groupId: 'promotion',
|
3747
|
-
// schema: {
|
3748
|
-
// dataType: 'string',
|
3749
|
-
// interface: {
|
3750
|
-
// type: AXPWidgetsCatalog.select,
|
3751
|
-
// options: {
|
3752
|
-
// valueField: 'name',
|
3753
|
-
// textField: 'title',
|
3754
|
-
// dataSource: [
|
3755
|
-
// { title: 'Circle', name: 'circle' },
|
3756
|
-
// { title: 'Square', name: 'square' },
|
3757
|
-
// ],
|
3758
|
-
// direction: 'horizontal',
|
3759
|
-
// multiple: false,
|
3760
|
-
// accept: '',
|
3761
|
-
// },
|
3762
|
-
// },
|
3763
|
-
// },
|
3764
|
-
// validations: [
|
3765
|
-
// {
|
3766
|
-
// rule: 'required',
|
3767
|
-
// },
|
3768
|
-
// ],
|
3769
|
-
// },
|
3770
|
-
{
|
3771
|
-
name: 'placement',
|
3772
|
-
title: `t("placement", { scope: "${i18n}" })`,
|
3773
|
-
groupId: 'promotion',
|
3774
|
-
schema: {
|
3775
|
-
dataType: 'string',
|
3776
|
-
interface: {
|
3777
|
-
type: AXPWidgetsCatalog.select,
|
3778
|
-
options: {
|
3779
|
-
valueField: 'name',
|
3780
|
-
textField: 'title',
|
3781
|
-
dataSource: [
|
3782
|
-
{
|
3783
|
-
title: 'Side Menu Footer',
|
3784
|
-
name: 'side-menu-footer',
|
3785
|
-
options: AXM_COLUMN_DEF_WIDGET,
|
3786
|
-
},
|
3787
|
-
{
|
3788
|
-
title: 'Side Menu Header',
|
3789
|
-
name: 'side-menu-header',
|
3790
|
-
options: [
|
3791
|
-
{
|
3792
|
-
type: 'text-editor',
|
3793
|
-
mode: 'edit',
|
3794
|
-
path: 'name',
|
3795
|
-
options: {
|
3796
|
-
placeholder: 'Name',
|
3797
|
-
defaultValue: 'test',
|
3798
|
-
},
|
3799
|
-
},
|
3800
|
-
],
|
3801
|
-
},
|
3802
|
-
],
|
3803
|
-
direction: 'horizontal',
|
3804
|
-
multiple: false,
|
3805
|
-
},
|
3806
|
-
},
|
3807
|
-
},
|
3808
|
-
validations: [
|
3809
|
-
{
|
3810
|
-
rule: 'required',
|
3811
|
-
},
|
3812
|
-
],
|
3813
|
-
},
|
3814
|
-
// {
|
3815
|
-
// name: "metadaata",
|
3816
|
-
// title: "Meta Data",
|
3817
|
-
// groupId: 'promotion',
|
3818
|
-
// schema: {
|
3819
|
-
// dataType: 'object',
|
3820
|
-
// interface: {
|
3821
|
-
// type: AXPWidgetsCatalog.text,
|
3822
|
-
// // children: "{{ context.eval('placement').options }}" as any,
|
3823
|
-
// },
|
3824
|
-
// }
|
3825
|
-
//},
|
3826
|
-
// {
|
3827
|
-
// name: 'metadata',
|
3828
|
-
// title: `Meta Data`,
|
3829
|
-
// groupId: 'promotion',
|
3830
|
-
// schema: {
|
3831
|
-
// dataType: 'object',
|
3832
|
-
// interface: {
|
3833
|
-
// type: AXPWidgetsCatalog.blockLayout,
|
3834
|
-
// children: "{{ context.eval('placement')?.options ?? [] }}" as any,
|
3835
|
-
// },
|
3836
|
-
// },
|
3837
|
-
// },
|
3838
|
-
],
|
3839
|
-
columns: [{ name: 'title' }, { name: 'placement' }, { name: 'imageId' }],
|
3840
|
-
commands: {
|
3841
|
-
create: {
|
3842
|
-
execute: async (data) => {
|
3843
|
-
// First deeply sanitize the data object to remove non-serializable content
|
3844
|
-
data = sanitizeForStorage(data);
|
3845
|
-
// Convert array of File objects to serializable format for IndexedDB storage
|
3846
|
-
if (data.imageId && Array.isArray(data.imageId)) {
|
3847
|
-
const processedFiles = await Promise.all((data.imageId || []).map(async (file) => {
|
3848
|
-
if (file instanceof File) {
|
3849
|
-
return {
|
3850
|
-
name: file.name,
|
3851
|
-
type: file.type,
|
3852
|
-
size: file.size,
|
3853
|
-
lastModified: file.lastModified,
|
3854
|
-
// Convert File to base64 string for storage
|
3855
|
-
data: await new Promise((resolve) => {
|
3856
|
-
const reader = new FileReader();
|
3857
|
-
reader.onloadend = () => resolve(reader.result);
|
3858
|
-
reader.readAsDataURL(file);
|
3859
|
-
})
|
3860
|
-
};
|
3861
|
-
}
|
3862
|
-
// Handle new file structure with source.value containing the blob
|
3863
|
-
else if (file && file.source && file.source.value) {
|
3864
|
-
try {
|
3865
|
-
const blob = file.source.value;
|
3866
|
-
// Ensure we're working with a proper Blob object
|
3867
|
-
if (blob instanceof Blob) {
|
3868
|
-
return {
|
3869
|
-
id: file.id || null,
|
3870
|
-
name: file.name || 'file',
|
3871
|
-
type: file.type || blob.type || 'application/octet-stream',
|
3872
|
-
size: file.size || blob.size || 0,
|
3873
|
-
status: file.status || 'attached',
|
3874
|
-
// Convert Blob to base64 string for storage
|
3875
|
-
data: await new Promise((resolve) => {
|
3876
|
-
const reader = new FileReader();
|
3877
|
-
reader.onloadend = () => resolve(reader.result);
|
3878
|
-
reader.readAsDataURL(blob);
|
3879
|
-
})
|
3880
|
-
};
|
3881
|
-
}
|
3882
|
-
else {
|
3883
|
-
console.warn('Invalid blob in file.source.value', file);
|
3884
|
-
return {
|
3885
|
-
name: file.name || 'file',
|
3886
|
-
type: file.type || 'application/octet-stream',
|
3887
|
-
size: file.size || 0,
|
3888
|
-
status: file.status || 'attached'
|
3889
|
-
};
|
3890
|
-
}
|
3891
|
-
}
|
3892
|
-
catch (error) {
|
3893
|
-
console.error('Error processing file for storage', error);
|
3894
|
-
return {
|
3895
|
-
name: file.name || 'file',
|
3896
|
-
type: file.type || 'application/octet-stream',
|
3897
|
-
size: file.size || 0,
|
3898
|
-
status: file.status || 'attached'
|
3899
|
-
};
|
3900
|
-
}
|
3901
|
-
}
|
3902
|
-
// If it's already a serialized object with data property, keep it as is
|
3903
|
-
else if (file && file.data && typeof file.data === 'string') {
|
3904
|
-
return file;
|
3905
|
-
}
|
3906
|
-
// For any other format, return a clean version without complex objects
|
3907
|
-
else if (file) {
|
3908
|
-
return {
|
3909
|
-
id: file.id || null,
|
3910
|
-
name: file.name || 'unknown',
|
3911
|
-
type: file.type || 'application/octet-stream',
|
3912
|
-
size: file.size || 0,
|
3913
|
-
status: file.status || 'attached'
|
3914
|
-
};
|
3915
|
-
}
|
3916
|
-
return null;
|
3917
|
-
}));
|
3918
|
-
// Filter out nulls after awaiting the promise
|
3919
|
-
data.imageId = processedFiles.filter(Boolean);
|
3920
|
-
}
|
3921
|
-
const res = await dataService.insertOne(data);
|
3922
|
-
// Return the same ID format that was used for storage
|
3923
|
-
return { id: res };
|
3924
|
-
},
|
3925
|
-
},
|
3926
|
-
delete: {
|
3927
|
-
execute: async (id) => {
|
3928
|
-
return await dataService.deleteOne(id);
|
3929
|
-
},
|
3930
|
-
},
|
3931
|
-
update: {
|
3932
|
-
execute: async (data) => {
|
3933
|
-
// First deeply sanitize the data object to remove non-serializable content
|
3934
|
-
data = sanitizeForStorage(data);
|
3935
|
-
// Convert array of File objects to serializable format for IndexedDB storage
|
3936
|
-
if (data.imageId && Array.isArray(data.imageId)) {
|
3937
|
-
const processedFiles = await Promise.all((data.imageId || []).map(async (file) => {
|
3938
|
-
if (file instanceof File) {
|
3939
|
-
return {
|
3940
|
-
name: file.name,
|
3941
|
-
type: file.type,
|
3942
|
-
size: file.size,
|
3943
|
-
lastModified: file.lastModified,
|
3944
|
-
// Convert File to base64 string for storage
|
3945
|
-
data: await new Promise((resolve) => {
|
3946
|
-
const reader = new FileReader();
|
3947
|
-
reader.onloadend = () => resolve(reader.result);
|
3948
|
-
reader.readAsDataURL(file);
|
3949
|
-
})
|
3950
|
-
};
|
3951
|
-
}
|
3952
|
-
// Handle new file structure with source.value containing the blob
|
3953
|
-
else if (file && file.source && file.source.value) {
|
3954
|
-
try {
|
3955
|
-
const blob = file.source.value;
|
3956
|
-
// Ensure we're working with a proper Blob object
|
3957
|
-
if (blob instanceof Blob) {
|
3958
|
-
return {
|
3959
|
-
id: file.id || null,
|
3960
|
-
name: file.name || 'file',
|
3961
|
-
type: file.type || blob.type || 'application/octet-stream',
|
3962
|
-
size: file.size || blob.size || 0,
|
3963
|
-
status: file.status || 'attached',
|
3964
|
-
// Convert Blob to base64 string for storage
|
3965
|
-
data: await new Promise((resolve) => {
|
3966
|
-
const reader = new FileReader();
|
3967
|
-
reader.onloadend = () => resolve(reader.result);
|
3968
|
-
reader.readAsDataURL(blob);
|
3969
|
-
})
|
3970
|
-
};
|
3971
|
-
}
|
3972
|
-
else {
|
3973
|
-
console.warn('Invalid blob in file.source.value', file);
|
3974
|
-
return {
|
3975
|
-
name: file.name || 'file',
|
3976
|
-
type: file.type || 'application/octet-stream',
|
3977
|
-
size: file.size || 0,
|
3978
|
-
status: file.status || 'attached'
|
3979
|
-
};
|
3980
|
-
}
|
3981
|
-
}
|
3982
|
-
catch (error) {
|
3983
|
-
console.error('Error processing file for storage', error);
|
3984
|
-
return {
|
3985
|
-
name: file.name || 'file',
|
3986
|
-
type: file.type || 'application/octet-stream',
|
3987
|
-
size: file.size || 0,
|
3988
|
-
status: file.status || 'attached'
|
3989
|
-
};
|
3990
|
-
}
|
3991
|
-
}
|
3992
|
-
// If it's already a serialized object with data property, keep it as is
|
3993
|
-
else if (file && file.data && typeof file.data === 'string') {
|
3994
|
-
return file;
|
3995
|
-
}
|
3996
|
-
// For any other format, return a clean version without complex objects
|
3997
|
-
else if (file) {
|
3998
|
-
return {
|
3999
|
-
id: file.id || null,
|
4000
|
-
name: file.name || 'unknown',
|
4001
|
-
type: file.type || 'application/octet-stream',
|
4002
|
-
size: file.size || 0,
|
4003
|
-
status: file.status || 'attached'
|
4004
|
-
};
|
4005
|
-
}
|
4006
|
-
return null;
|
4007
|
-
}));
|
4008
|
-
// Filter out nulls after awaiting the promise
|
4009
|
-
data.imageId = processedFiles.filter(Boolean);
|
4010
|
-
}
|
4011
|
-
return await dataService.updateOne(data.id, data);
|
4012
|
-
},
|
4013
|
-
},
|
4014
|
-
},
|
4015
|
-
queries: {
|
4016
|
-
byKey: {
|
4017
|
-
execute: async (id) => {
|
4018
|
-
try {
|
4019
|
-
// Debug the incoming ID parameter
|
4020
|
-
console.log('byKey original id parameter:', id, typeof id);
|
4021
|
-
// Ensure id is a valid key for IndexedDB - needs to be string or number
|
4022
|
-
let validId;
|
4023
|
-
// If id is an object (e.g., from router params or complex structure)
|
4024
|
-
if (typeof id === 'object' && id !== null) {
|
4025
|
-
if ('id' in id) {
|
4026
|
-
validId = String(id.id);
|
4027
|
-
}
|
4028
|
-
else {
|
4029
|
-
validId = String(id);
|
4030
|
-
}
|
4031
|
-
console.warn('Converted object id to string:', validId);
|
4032
|
-
}
|
4033
|
-
else if (id === undefined || id === null) {
|
4034
|
-
console.error('Invalid id parameter: null or undefined');
|
4035
|
-
return null;
|
4036
|
-
}
|
4037
|
-
else {
|
4038
|
-
// Convert to string to ensure consistency
|
4039
|
-
validId = String(id);
|
4040
|
-
}
|
4041
|
-
// Log the ID being used for the query
|
4042
|
-
console.log('Fetching record with id:', validId, typeof validId);
|
4043
|
-
try {
|
4044
|
-
const data = await dataService.getOne(validId);
|
4045
|
-
console.log('getOne result:', data ? 'Data found' : 'No data found');
|
4046
|
-
// If no data was found
|
4047
|
-
if (!data) {
|
4048
|
-
console.warn(`No record found with id: ${validId}`);
|
4049
|
-
return null;
|
4050
|
-
}
|
4051
|
-
// Deserialize imageId field if it contains serialized file objects
|
4052
|
-
if (data.imageId && Array.isArray(data.imageId)) {
|
4053
|
-
data.imageId = await Promise.all(data.imageId.map(async (fileData) => {
|
4054
|
-
// Check if this is a serialized file
|
4055
|
-
if (fileData && fileData.data && fileData.name && fileData.type) {
|
4056
|
-
try {
|
4057
|
-
// Convert base64 string back to a Blob
|
4058
|
-
const response = await fetch(fileData.data);
|
4059
|
-
const blob = await response.blob();
|
4060
|
-
// Create a new File object
|
4061
|
-
return new File([blob], fileData.name, {
|
4062
|
-
type: fileData.type,
|
4063
|
-
lastModified: fileData.lastModified
|
4064
|
-
});
|
4065
|
-
}
|
4066
|
-
catch (error) {
|
4067
|
-
console.error('Failed to deserialize file:', fileData.name, error);
|
4068
|
-
return fileData; // Return original data if deserialization fails
|
4069
|
-
}
|
4070
|
-
}
|
4071
|
-
return fileData; // Return as is if not a serialized file
|
4072
|
-
})); // Cast to any to avoid type conflict
|
4073
|
-
}
|
4074
|
-
return data;
|
4075
|
-
}
|
4076
|
-
catch (error) {
|
4077
|
-
console.error(`Error fetching data with ID ${validId}:`, error);
|
4078
|
-
// Return null instead of throwing to avoid cascading errors
|
4079
|
-
return null;
|
4080
|
-
}
|
4081
|
-
}
|
4082
|
-
catch (error) {
|
4083
|
-
console.error('Critical error in byKey query:', error);
|
4084
|
-
return null; // Return null instead of throwing to avoid UI errors
|
4085
|
-
}
|
4086
|
-
},
|
4087
|
-
type: AXPEntityQueryType.Single,
|
4088
|
-
},
|
4089
|
-
list: {
|
4090
|
-
execute: async (e) => {
|
4091
|
-
return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });
|
4092
|
-
},
|
4093
|
-
type: AXPEntityQueryType.List,
|
4094
|
-
},
|
4095
|
-
},
|
4096
|
-
interfaces: {
|
4097
|
-
master: {
|
4098
|
-
create: {
|
4099
|
-
sections: [
|
4100
|
-
{
|
4101
|
-
id: 'promotion',
|
4102
|
-
},
|
4103
|
-
],
|
4104
|
-
properties: [
|
4105
|
-
{
|
4106
|
-
name: 'title',
|
4107
|
-
layout: {
|
4108
|
-
positions: {
|
4109
|
-
lg: {
|
4110
|
-
colSpan: 6,
|
4111
|
-
order: 1,
|
4112
|
-
},
|
4113
|
-
},
|
4114
|
-
},
|
4115
|
-
},
|
4116
|
-
{
|
4117
|
-
name: 'body',
|
4118
|
-
layout: {
|
4119
|
-
positions: {
|
4120
|
-
lg: {
|
4121
|
-
colSpan: 12,
|
4122
|
-
order: 5,
|
4123
|
-
},
|
4124
|
-
},
|
4125
|
-
},
|
4126
|
-
},
|
4127
|
-
{
|
4128
|
-
name: 'imageId',
|
4129
|
-
layout: {
|
4130
|
-
positions: {
|
4131
|
-
lg: {
|
4132
|
-
colSpan: 12,
|
4133
|
-
order: 6,
|
4134
|
-
},
|
4135
|
-
},
|
4136
|
-
},
|
4137
|
-
},
|
4138
|
-
{
|
4139
|
-
name: 'contentType',
|
4140
|
-
layout: {
|
4141
|
-
positions: {
|
4142
|
-
lg: {
|
4143
|
-
colSpan: 6,
|
4144
|
-
order: 2,
|
4145
|
-
},
|
4146
|
-
},
|
4147
|
-
},
|
4148
|
-
},
|
4149
|
-
{
|
4150
|
-
name: 'shape',
|
4151
|
-
layout: {
|
4152
|
-
positions: {
|
4153
|
-
lg: {
|
4154
|
-
colSpan: 6,
|
4155
|
-
order: 3,
|
4156
|
-
},
|
4157
|
-
},
|
4158
|
-
},
|
4159
|
-
},
|
4160
|
-
{
|
4161
|
-
name: 'placement',
|
4162
|
-
layout: {
|
4163
|
-
positions: {
|
4164
|
-
lg: {
|
4165
|
-
colSpan: 6,
|
4166
|
-
order: 4,
|
4167
|
-
},
|
4168
|
-
},
|
4169
|
-
},
|
4170
|
-
},
|
4171
|
-
{
|
4172
|
-
name: 'metadata',
|
4173
|
-
layout: {
|
4174
|
-
positions: {
|
4175
|
-
lg: {
|
4176
|
-
colSpan: 12,
|
4177
|
-
order: 10,
|
4178
|
-
},
|
4179
|
-
},
|
4180
|
-
},
|
4181
|
-
},
|
4182
|
-
],
|
4183
|
-
},
|
4184
|
-
update: {
|
4185
|
-
sections: [
|
4186
|
-
{
|
4187
|
-
id: 'promotion',
|
4188
|
-
},
|
4189
|
-
],
|
4190
|
-
properties: [
|
4191
|
-
{
|
4192
|
-
name: 'title',
|
4193
|
-
layout: {
|
4194
|
-
positions: {
|
4195
|
-
lg: {
|
4196
|
-
colSpan: 6,
|
4197
|
-
order: 1,
|
4198
|
-
},
|
4199
|
-
},
|
4200
|
-
},
|
4201
|
-
},
|
4202
|
-
{
|
4203
|
-
name: 'body',
|
4204
|
-
layout: {
|
4205
|
-
positions: {
|
4206
|
-
lg: {
|
4207
|
-
colSpan: 12,
|
4208
|
-
order: 5,
|
4209
|
-
},
|
4210
|
-
},
|
4211
|
-
},
|
4212
|
-
},
|
4213
|
-
{
|
4214
|
-
name: 'imageId',
|
4215
|
-
layout: {
|
4216
|
-
positions: {
|
4217
|
-
lg: {
|
4218
|
-
colSpan: 12,
|
4219
|
-
order: 6,
|
4220
|
-
},
|
4221
|
-
},
|
4222
|
-
},
|
4223
|
-
},
|
4224
|
-
{
|
4225
|
-
name: 'contentType',
|
4226
|
-
layout: {
|
4227
|
-
positions: {
|
4228
|
-
lg: {
|
4229
|
-
colSpan: 6,
|
4230
|
-
order: 2,
|
4231
|
-
},
|
4232
|
-
},
|
4233
|
-
},
|
4234
|
-
},
|
4235
|
-
{
|
4236
|
-
name: 'shape',
|
4237
|
-
layout: {
|
4238
|
-
positions: {
|
4239
|
-
lg: {
|
4240
|
-
colSpan: 6,
|
4241
|
-
order: 3,
|
4242
|
-
},
|
4243
|
-
},
|
4244
|
-
},
|
4245
|
-
},
|
4246
|
-
{
|
4247
|
-
name: 'placement',
|
4248
|
-
layout: {
|
4249
|
-
positions: {
|
4250
|
-
lg: {
|
4251
|
-
colSpan: 6,
|
4252
|
-
order: 4,
|
4253
|
-
},
|
4254
|
-
},
|
4255
|
-
},
|
4256
|
-
},
|
4257
|
-
// {
|
4258
|
-
// name: 'metadata',
|
4259
|
-
// layout: {
|
4260
|
-
// positions: {
|
4261
|
-
// lg: {
|
4262
|
-
// colSpan: 12,
|
4263
|
-
// order: 10,
|
4264
|
-
// },
|
4265
|
-
// },
|
4266
|
-
// },
|
4267
|
-
// },
|
4268
|
-
],
|
4269
|
-
},
|
4270
|
-
single: {
|
4271
|
-
title: '{{title}}',
|
4272
|
-
sections: [
|
4273
|
-
{
|
4274
|
-
id: 'promotion',
|
4275
|
-
},
|
4276
|
-
],
|
4277
|
-
properties: [
|
4278
|
-
{
|
4279
|
-
name: 'title',
|
4280
|
-
layout: {
|
4281
|
-
positions: {
|
4282
|
-
lg: {
|
4283
|
-
colSpan: 6,
|
4284
|
-
},
|
4285
|
-
},
|
4286
|
-
},
|
4287
|
-
},
|
4288
|
-
{
|
4289
|
-
name: 'body',
|
4290
|
-
layout: {
|
4291
|
-
positions: {
|
4292
|
-
lg: {
|
4293
|
-
colSpan: 6,
|
4294
|
-
},
|
4295
|
-
},
|
4296
|
-
},
|
4297
|
-
},
|
4298
|
-
{
|
4299
|
-
name: 'imageId',
|
4300
|
-
layout: {
|
4301
|
-
positions: {
|
4302
|
-
lg: {
|
4303
|
-
colSpan: 12,
|
4304
|
-
order: 2,
|
4305
|
-
},
|
4306
|
-
},
|
4307
|
-
},
|
4308
|
-
},
|
4309
|
-
{
|
4310
|
-
name: 'contentType',
|
4311
|
-
layout: {
|
4312
|
-
positions: {
|
4313
|
-
lg: {
|
4314
|
-
colSpan: 4,
|
4315
|
-
order: 4,
|
4316
|
-
},
|
4317
|
-
},
|
4318
|
-
},
|
4319
|
-
},
|
4320
|
-
{
|
4321
|
-
name: 'shape',
|
4322
|
-
layout: {
|
4323
|
-
positions: {
|
4324
|
-
lg: {
|
4325
|
-
colSpan: 4,
|
4326
|
-
order: 5,
|
4327
|
-
},
|
4328
|
-
},
|
4329
|
-
},
|
4330
|
-
},
|
4331
|
-
{
|
4332
|
-
name: 'placement',
|
4333
|
-
layout: {
|
4334
|
-
positions: {
|
4335
|
-
lg: {
|
4336
|
-
colSpan: 4,
|
4337
|
-
order: 6,
|
4338
|
-
},
|
4339
|
-
},
|
4340
|
-
},
|
4341
|
-
},
|
4342
|
-
],
|
4343
|
-
actions: [],
|
4344
|
-
},
|
4345
|
-
list: {
|
4346
|
-
actions: [
|
4347
|
-
{
|
4348
|
-
title: `t("create", { scope: "common" })`,
|
4349
|
-
command: 'create-entity',
|
4350
|
-
priority: 'primary',
|
4351
|
-
type: 'create',
|
4352
|
-
scope: AXPEntityCommandScope.TypeLevel,
|
4353
|
-
},
|
4354
|
-
{
|
4355
|
-
title: 't("deleteItems", { scope: "common" })',
|
4356
|
-
command: 'delete-entity',
|
4357
|
-
priority: 'primary',
|
4358
|
-
type: 'delete',
|
4359
|
-
scope: AXPEntityCommandScope.Selected,
|
4360
|
-
},
|
4361
|
-
{
|
4362
|
-
title: 't("detail", { scope: "common" })',
|
4363
|
-
command: 'open-entity',
|
4364
|
-
priority: 'primary',
|
4365
|
-
type: 'view',
|
4366
|
-
scope: AXPEntityCommandScope.Individual,
|
4367
|
-
},
|
4368
|
-
{
|
4369
|
-
title: 't("delete", { scope: "common" })',
|
4370
|
-
command: 'delete-entity',
|
4371
|
-
priority: 'primary',
|
4372
|
-
type: 'delete',
|
4373
|
-
scope: AXPEntityCommandScope.Individual,
|
4374
|
-
},
|
4375
|
-
{
|
4376
|
-
title: 't("entity.modify", { scope: "common" })',
|
4377
|
-
command: 'quick-modify-entity',
|
4378
|
-
priority: 'secondary',
|
4379
|
-
type: 'update',
|
4380
|
-
scope: AXPEntityCommandScope.Individual,
|
4381
|
-
},
|
4382
|
-
//TODO: add this to the entity
|
4383
|
-
{
|
4384
|
-
title: 't("upload.title", { scope: "common" })',
|
4385
|
-
command: {
|
4386
|
-
name: 'show-file-uploader-popup',
|
4387
|
-
options: {
|
4388
|
-
id: '{{ context.eval("id") }}',
|
4389
|
-
files: '{{ context.eval("imageId") }}',
|
4390
|
-
multiple: false,
|
4391
|
-
accept: 'image/*',
|
4392
|
-
key: 'imageId',
|
4393
|
-
}
|
4394
|
-
},
|
4395
|
-
priority: 'secondary',
|
4396
|
-
type: 'update',
|
4397
|
-
scope: AXPEntityCommandScope.Individual,
|
4398
|
-
},
|
4399
|
-
],
|
4400
|
-
views: [
|
4401
|
-
createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] }),
|
4402
|
-
createQueryView('media', `t("media", { scope: "${i18n}" })`, true, {
|
4403
|
-
conditions: [
|
4404
|
-
{
|
4405
|
-
name: 'contentType.name',
|
4406
|
-
operator: {
|
4407
|
-
type: 'equal',
|
4408
|
-
},
|
4409
|
-
value: 'media',
|
4410
|
-
},
|
4411
|
-
],
|
4412
|
-
}),
|
4413
|
-
createQueryView('text', `t("text", { scope: "${i18n}" })`, true, {
|
4414
|
-
conditions: [
|
4415
|
-
{
|
4416
|
-
name: 'contentType.name',
|
4417
|
-
operator: {
|
4418
|
-
type: 'equal',
|
4419
|
-
},
|
4420
|
-
value: 'text',
|
4421
|
-
},
|
4422
|
-
],
|
4423
|
-
}),
|
4424
|
-
],
|
4425
|
-
},
|
4426
|
-
},
|
4427
|
-
},
|
4428
|
-
};
|
4429
|
-
return entityDef;
|
4430
|
-
}
|
4431
|
-
|
4432
|
-
var index = /*#__PURE__*/Object.freeze({
|
4433
|
-
__proto__: null,
|
4434
|
-
AXMAppPromotionService: AXMAppPromotionService,
|
4435
|
-
AXMAppTermService: AXMAppTermService,
|
4436
|
-
AXMAppTermServiceImpl: AXMAppTermServiceImpl,
|
4437
|
-
AXMAppVersionService: AXMAppVersionService,
|
4438
|
-
AXMAppVersionServiceImpl: AXMAppVersionServiceImpl,
|
4439
|
-
AXMAppVersionSlotComponent: AXMAppVersionSlotComponent,
|
4440
|
-
AXMChangeLogPopupAction: AXMChangeLogPopupAction,
|
4441
|
-
AXMChangeLogUpdateSettingAction: AXMChangeLogUpdateSettingAction,
|
4442
|
-
AXMCheckNewVersionAction: AXMCheckNewVersionAction,
|
4443
|
-
AXMCheckNewVersionWorkflow: AXMCheckNewVersionWorkflow,
|
4444
|
-
AXMDataSourceService: AXMDataSourceService,
|
4445
|
-
AXMDataSourceServiceImpl: AXMDataSourceServiceImpl,
|
4446
|
-
AXMGlobalVariablesService: AXMGlobalVariablesService,
|
4447
|
-
AXMGlobalVariablesServiceImpl: AXMGlobalVariablesServiceImpl,
|
4448
|
-
AXMGlossaryService: AXMGlossaryService,
|
4449
|
-
AXMGlossaryServiceImpl: AXMGlossaryServiceImpl,
|
4450
|
-
AXMListTermsComponent: AXMListTermsComponent,
|
4451
|
-
AXMMetaDataDefinitionCategoryService: AXMMetaDataDefinitionCategoryService,
|
4452
|
-
AXMMetaDataDefinitionCategoryServiceImpl: AXMMetaDataDefinitionCategoryServiceImpl,
|
4453
|
-
AXMMetaDataDefinitionService: AXMMetaDataDefinitionService,
|
4454
|
-
AXMNewTermWorkflow: AXMNewTermWorkflow,
|
4455
|
-
AXMNotifyAppComponent: AXMNotifyAppComponent,
|
4456
|
-
AXMNotifyNewTermPopupAction: AXMNotifyNewTermPopupAction,
|
4457
|
-
AXMPMetaDataDefinitionServiceImpl: AXMPMetaDataDefinitionServiceImpl,
|
4458
|
-
AXMPromotionServiceImpl: AXMPromotionServiceImpl,
|
4459
|
-
AXMPromotionSlotComponent: AXMPromotionSlotComponent,
|
4460
|
-
AXMTermUpdateSettingAction: AXMTermUpdateSettingAction,
|
4461
|
-
AXMWhatsNewWorkflow: AXMWhatsNewWorkflow,
|
4462
|
-
appTermEntityEntityFactory: appTermEntityEntityFactory,
|
4463
|
-
appVersionEntityEntityFactory: appVersionEntityEntityFactory,
|
4464
|
-
dataSourceEntityFactory: dataSourceEntityFactory,
|
4465
|
-
globalVariableEntityFactory: globalVariableEntityFactory,
|
4466
|
-
glossaryEntityFactory: glossaryEntityFactory,
|
4467
|
-
metaDataDefinitionCategoryEntityFactory: metaDataDefinitionCategoryEntityFactory,
|
4468
|
-
metaDataDefinitionFactory: metaDataDefinitionFactory,
|
4469
|
-
promotionEntityFactory: promotionEntityFactory
|
4470
|
-
});
|
4471
|
-
|
4472
|
-
const path = 'regional:';
|
4473
|
-
var AXPRegionalSetting;
|
4474
|
-
(function (AXPRegionalSetting) {
|
4475
|
-
AXPRegionalSetting["LocaleProfile"] = "regional:locale-profile";
|
4476
|
-
AXPRegionalSetting["TimeZone"] = "regional:timezone";
|
4477
|
-
AXPRegionalSetting["Language"] = "regional:language";
|
4478
|
-
AXPRegionalSetting["Country"] = "regional:country";
|
4479
|
-
AXPRegionalSetting["Calendar"] = "regional:calendar";
|
4480
|
-
AXPRegionalSetting["FirstDayOfWeek"] = "regional:first-day-of-week";
|
4481
|
-
AXPRegionalSetting["WeekendDays"] = "regional:weekend-days";
|
4482
|
-
AXPRegionalSetting["ShortDate"] = "regional:short-date";
|
4483
|
-
AXPRegionalSetting["LongDate"] = "regional:long-date";
|
4484
|
-
AXPRegionalSetting["ShortTime"] = "regional:short-time";
|
4485
|
-
AXPRegionalSetting["LongTime"] = "regional:long-time";
|
4486
|
-
AXPRegionalSetting["MeasurementUnits"] = "regional:measurement-units";
|
4487
|
-
AXPRegionalSetting["TemperatureUnits"] = "regional:temperature-units";
|
4488
|
-
AXPRegionalSetting["DistanceUnits"] = "regional:distance-units";
|
4489
|
-
AXPRegionalSetting["WeightUnits"] = "regional:weight-units";
|
4490
|
-
AXPRegionalSetting["VolumeUnits"] = "regional:volume-units";
|
4491
|
-
AXPRegionalSetting["SpeedUnits"] = "regional:speed-units";
|
4492
|
-
AXPRegionalSetting["AreaUnits"] = "regional:area-units";
|
4493
|
-
})(AXPRegionalSetting || (AXPRegionalSetting = {}));
|
4494
|
-
|
4495
|
-
// Regional Store - Manages regional settings and system changes
|
4496
|
-
const AXPRegionalStoreService = signalStore({ providedIn: 'root' },
|
4497
|
-
// Initial State
|
4498
|
-
withState((localeService = inject(AXLocaleService)) => {
|
4499
|
-
const state = {
|
4500
|
-
profile: localeService.activeProfile().localeInfo.code,
|
4501
|
-
language: localeService.activeProfile().localeInfo.language,
|
4502
|
-
calendar: localeService.activeProfile().calendar.system,
|
4503
|
-
};
|
4504
|
-
return state;
|
4505
|
-
}),
|
4506
|
-
// Computed Signals
|
4507
|
-
// withComputed(({ }) => ({
|
4508
|
-
// })),
|
4509
|
-
// Methods for State Management
|
4510
|
-
withMethods((store, settingService = inject(AXPSettingService), localeService = inject(AXLocaleService), calendarService = inject(AXCalendarService), translateService = inject(AXTranslationService)) => {
|
4511
|
-
const applyChanges = async () => {
|
4512
|
-
const profile = localeService.activeProfile();
|
4513
|
-
const html = document.getElementsByTagName('html')[0];
|
4514
|
-
profile.i18nMeta?.rtl ? html.setAttribute('dir', 'rtl') : html.removeAttribute('dir');
|
4515
|
-
};
|
4516
|
-
return {
|
4517
|
-
async changeProfile(profileCode) {
|
4518
|
-
await localeService.setProfile(profileCode);
|
4519
|
-
const profile = localeService.activeProfile();
|
4520
|
-
//
|
4521
|
-
if (store.profile() != profile.localeInfo.code) {
|
4522
|
-
settingService.scope(AXPPlatformScope.User).set(AXPRegionalSetting.LocaleProfile, profile.localeInfo.code);
|
4523
|
-
settingService.scope(AXPPlatformScope.User).set(AXPRegionalSetting.Language, profile.localeInfo.code);
|
4524
|
-
patchState(store, { profile: profile.localeInfo.code });
|
4525
|
-
}
|
4526
|
-
//
|
4527
|
-
await applyChanges();
|
4528
|
-
},
|
4529
|
-
async loadSetting() {
|
4530
|
-
const profileCode = (await settingService.scope(AXPPlatformScope.User).get(AXPRegionalSetting.LocaleProfile));
|
4531
|
-
patchState(store, { profile: profileCode });
|
4532
|
-
await localeService.setProfile(profileCode);
|
4533
|
-
//
|
4534
|
-
// delay to ensure the profile is set and override the default
|
4535
|
-
setTimeout(async () => {
|
4536
|
-
const calendar = (await settingService.scope(AXPPlatformScope.User).get(AXPRegionalSetting.Calendar));
|
4537
|
-
patchState(store, { calendar: calendar });
|
4538
|
-
calendarService.setActiveCalendar(calendar);
|
4539
|
-
//
|
4540
|
-
const language = (await settingService.scope(AXPPlatformScope.User).get(AXPRegionalSetting.Language));
|
4541
|
-
patchState(store, { language: language });
|
4542
|
-
translateService.setActiveLang(language);
|
4543
|
-
//
|
4544
|
-
await applyChanges();
|
4545
|
-
});
|
4546
|
-
//
|
4547
|
-
},
|
4548
|
-
};
|
4549
|
-
}), withHooks((store, settingService = inject(AXPSettingService), translateService = inject(AXTranslationService)) => ({
|
4550
|
-
onInit() {
|
4551
|
-
settingService.onChanged.subscribe(async (setting) => {
|
4552
|
-
const keys = [
|
4553
|
-
AXPRegionalSetting.LocaleProfile,
|
4554
|
-
AXPRegionalSetting.Language,
|
4555
|
-
AXPRegionalSetting.Calendar
|
4556
|
-
];
|
4557
|
-
//
|
4558
|
-
if (keys.some(k => setting.keys.includes(k))) {
|
4559
|
-
await store.loadSetting();
|
4560
|
-
}
|
4561
|
-
});
|
4562
|
-
},
|
4563
|
-
onDestroy() { },
|
4564
|
-
})));
|
4565
|
-
|
4566
|
-
class AXMLanguageSlotComponent {
|
4567
|
-
constructor() {
|
4568
|
-
this.regionalService = inject(AXPRegionalService);
|
4569
|
-
this.store = inject(AXPRegionalStoreService);
|
4570
|
-
this.items = signal([]);
|
4571
|
-
}
|
4572
|
-
async ngOnInit() {
|
4573
|
-
const items = await this.regionalService.getLocaleProfiles();
|
4574
|
-
this.items.set(items);
|
4575
|
-
}
|
4576
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMLanguageSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
4577
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AXMLanguageSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<ax-button color=\"primary\">\n <ax-icon class=\"fa-regular fa-globe\"> </ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(lang of items(); track lang){\n <ax-button-item\n [text]=\"lang.title\"\n [selected]=\"store.profile() === lang.code\"\n (onClick)=\"store.changeProfile(lang.code)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-flag\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n</ax-button>\n", dependencies: [{ kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i1$1.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i3$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i3$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: CommonModule }] }); }
|
4578
|
-
}
|
4579
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMLanguageSlotComponent, decorators: [{
|
4580
|
-
type: Component,
|
4581
|
-
args: [{ imports: [AXDropdownModule, AXDecoratorModule, AXPopoverModule, AXButtonModule, CommonModule], template: "<ax-button color=\"primary\">\n <ax-icon class=\"fa-regular fa-globe\"> </ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(lang of items(); track lang){\n <ax-button-item\n [text]=\"lang.title\"\n [selected]=\"store.profile() === lang.code\"\n (onClick)=\"store.changeProfile(lang.code)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-flag\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n</ax-button>\n" }]
|
4582
|
-
}] });
|
4583
|
-
|
4584
|
-
class AXPRegionalWidgetDataSourceProvider {
|
4585
|
-
constructor() {
|
4586
|
-
this.regionalService = inject(AXPRegionalService);
|
4587
|
-
//#region Country
|
4588
|
-
this.country = {
|
4589
|
-
name: 'countries',
|
4590
|
-
title: 'Countries',
|
4591
|
-
textField: 'title',
|
4592
|
-
valueField: 'code',
|
4593
|
-
columns: [
|
4594
|
-
{
|
4595
|
-
name: 'code',
|
4596
|
-
title: 'Code',
|
4597
|
-
},
|
4598
|
-
{
|
4599
|
-
name: 'title',
|
4600
|
-
title: 'Title',
|
4601
|
-
},
|
4602
|
-
{
|
4603
|
-
name: 'timezone',
|
4604
|
-
title: 'Timezone',
|
3693
|
+
{
|
3694
|
+
name: 'timezone',
|
3695
|
+
title: 'Timezone',
|
4605
3696
|
},
|
4606
3697
|
],
|
4607
3698
|
source: async () => {
|
@@ -4805,7 +3896,7 @@ class AXMPlatformManagementCommonModule {
|
|
4805
3896
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
4806
3897
|
useFactory: async () => {
|
4807
3898
|
const injector = inject(Injector);
|
4808
|
-
const provider = (await import('./acorex-modules-platform-management-settings.provider-
|
3899
|
+
const provider = (await import('./acorex-modules-platform-management-settings.provider-CnGAUpof.mjs')).AXMRegionalSettingProvider;
|
4809
3900
|
return new provider(injector);
|
4810
3901
|
},
|
4811
3902
|
multi: true
|
@@ -4844,7 +3935,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
4844
3935
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
4845
3936
|
useFactory: async () => {
|
4846
3937
|
const injector = inject(Injector);
|
4847
|
-
const provider = (await import('./acorex-modules-platform-management-settings.provider-
|
3938
|
+
const provider = (await import('./acorex-modules-platform-management-settings.provider-CnGAUpof.mjs')).AXMRegionalSettingProvider;
|
4848
3939
|
return new provider(injector);
|
4849
3940
|
},
|
4850
3941
|
multi: true
|
@@ -4908,62 +3999,6 @@ class AXMDynamicDataSourceProvider {
|
|
4908
3999
|
}
|
4909
4000
|
}
|
4910
4001
|
|
4911
|
-
class AXMPromotionDataSourceDefinition {
|
4912
|
-
constructor() {
|
4913
|
-
this.promotionService = inject(AXMAppPromotionService);
|
4914
|
-
this.i18n = RootConfig.config.i18n;
|
4915
|
-
}
|
4916
|
-
items() {
|
4917
|
-
return Promise.resolve([
|
4918
|
-
{
|
4919
|
-
name: 'promotion',
|
4920
|
-
title: 'Promotion',
|
4921
|
-
source: () => {
|
4922
|
-
return new AXDataSource({
|
4923
|
-
load: async (_) => {
|
4924
|
-
try {
|
4925
|
-
const res = await this.promotionService.query();
|
4926
|
-
return {
|
4927
|
-
items: res.items,
|
4928
|
-
total: res.total,
|
4929
|
-
};
|
4930
|
-
}
|
4931
|
-
catch (e) {
|
4932
|
-
console.log(e);
|
4933
|
-
throw e;
|
4934
|
-
}
|
4935
|
-
},
|
4936
|
-
pageSize: 100,
|
4937
|
-
});
|
4938
|
-
},
|
4939
|
-
columns: [
|
4940
|
-
{
|
4941
|
-
name: 'id',
|
4942
|
-
title: 'ID',
|
4943
|
-
datatype: 'uuid',
|
4944
|
-
type: AXPWidgetsCatalog.text,
|
4945
|
-
},
|
4946
|
-
{
|
4947
|
-
name: 'title',
|
4948
|
-
//TODO translate
|
4949
|
-
title: `Title`,
|
4950
|
-
datatype: 'string',
|
4951
|
-
type: AXPWidgetsCatalog.text,
|
4952
|
-
},
|
4953
|
-
{
|
4954
|
-
name: 'body',
|
4955
|
-
title: `Body`,
|
4956
|
-
datatype: 'string',
|
4957
|
-
type: AXPWidgetsCatalog.richText,
|
4958
|
-
},
|
4959
|
-
],
|
4960
|
-
textField: 'title',
|
4961
|
-
valueField: 'id',
|
4962
|
-
},
|
4963
|
-
]);
|
4964
|
-
}
|
4965
|
-
}
|
4966
|
-
|
4967
4002
|
class AXMEntityLoader {
|
4968
4003
|
constructor() {
|
4969
4004
|
this.injector = inject(Injector);
|
@@ -4999,11 +4034,6 @@ class AXMEntityLoader {
|
|
4999
4034
|
resolve(entity(this.injector));
|
5000
4035
|
break;
|
5001
4036
|
}
|
5002
|
-
case RootConfig.entities.promotion.name: {
|
5003
|
-
const entity = (await Promise.resolve().then(function () { return index; })).promotionEntityFactory;
|
5004
|
-
resolve(entity(this.injector));
|
5005
|
-
break;
|
5006
|
-
}
|
5007
4037
|
case RootConfig.entities.dataSource.name: {
|
5008
4038
|
const entity = (await Promise.resolve().then(function () { return index; })).dataSourceEntityFactory;
|
5009
4039
|
resolve(entity(this.injector));
|
@@ -5089,7 +4119,7 @@ class AXMShowReleaseNotesPopupAction extends AXPWorkflowAction {
|
|
5089
4119
|
}
|
5090
4120
|
async execute(context) {
|
5091
4121
|
const scope = RootConfig.config.i18n;
|
5092
|
-
const comp = await (await import('./acorex-modules-platform-management-list-version.component-
|
4122
|
+
const comp = await (await import('./acorex-modules-platform-management-list-version.component-DhSicYd3.mjs')).AXMListVersionComponent;
|
5093
4123
|
this.popupService.open(comp, {
|
5094
4124
|
title: `t('release-notes',{scope: "${scope}"})`,
|
5095
4125
|
});
|
@@ -5349,15 +4379,6 @@ class AXMMenuProvider {
|
|
5349
4379
|
// requiredPermission: '',
|
5350
4380
|
},
|
5351
4381
|
},
|
5352
|
-
{
|
5353
|
-
priority: 9006,
|
5354
|
-
text: RootConfig.entities.promotion.title,
|
5355
|
-
path: this.entityService.createPath(RootConfig.module.name, RootConfig.entities.promotion.name),
|
5356
|
-
icon: RootConfig.entities.promotion.icon,
|
5357
|
-
data: {
|
5358
|
-
// requiredPermission: '',
|
5359
|
-
},
|
5360
|
-
},
|
5361
4382
|
{
|
5362
4383
|
priority: 9005,
|
5363
4384
|
text: RootConfig.entities.dataSource.title,
|
@@ -5529,10 +4550,6 @@ class AXMPlatformManagementModule {
|
|
5529
4550
|
provide: AXMAppTermService,
|
5530
4551
|
useClass: AXMAppTermServiceImpl,
|
5531
4552
|
},
|
5532
|
-
{
|
5533
|
-
provide: AXMAppPromotionService,
|
5534
|
-
useClass: AXMPromotionServiceImpl,
|
5535
|
-
},
|
5536
4553
|
{
|
5537
4554
|
provide: AXMDataSourceService,
|
5538
4555
|
useClass: AXMDataSourceServiceImpl,
|
@@ -5560,11 +4577,6 @@ class AXMPlatformManagementModule {
|
|
5560
4577
|
useClass: AXMDynamicDataSourceProvider,
|
5561
4578
|
multi: true,
|
5562
4579
|
},
|
5563
|
-
{
|
5564
|
-
provide: AXP_DATASOURCE_DEFINITION_PROVIDER,
|
5565
|
-
useClass: AXMPromotionDataSourceDefinition,
|
5566
|
-
multi: true,
|
5567
|
-
},
|
5568
4580
|
{
|
5569
4581
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
5570
4582
|
useClass: AXPReleaseNotesSettingProvider,
|
@@ -5599,23 +4611,23 @@ class AXMPlatformManagementModule {
|
|
5599
4611
|
}),
|
5600
4612
|
AXPComponentSlotModule.forChild({
|
5601
4613
|
'side-menu-footer': [
|
5602
|
-
|
5603
|
-
|
5604
|
-
|
5605
|
-
|
5606
|
-
|
5607
|
-
|
5608
|
-
|
4614
|
+
// {
|
4615
|
+
// name: 'side-menu-footer',
|
4616
|
+
// component: AXMPromotionSlotComponent,
|
4617
|
+
// options: {
|
4618
|
+
// location: 'side-menu-footer',
|
4619
|
+
// },
|
4620
|
+
// },
|
5609
4621
|
],
|
5610
4622
|
'side-menu-header': [
|
5611
|
-
|
5612
|
-
|
5613
|
-
|
5614
|
-
|
5615
|
-
|
5616
|
-
|
5617
|
-
|
5618
|
-
|
4623
|
+
// {
|
4624
|
+
// name: 'side-menu-header',
|
4625
|
+
// component: AXMPromotionSlotComponent,
|
4626
|
+
// priority: 2,
|
4627
|
+
// options: {
|
4628
|
+
// location: 'side-menu-header',
|
4629
|
+
// },
|
4630
|
+
// },
|
5619
4631
|
],
|
5620
4632
|
})] }); }
|
5621
4633
|
}
|
@@ -5645,23 +4657,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
5645
4657
|
}),
|
5646
4658
|
AXPComponentSlotModule.forChild({
|
5647
4659
|
'side-menu-footer': [
|
5648
|
-
|
5649
|
-
|
5650
|
-
|
5651
|
-
|
5652
|
-
|
5653
|
-
|
5654
|
-
|
4660
|
+
// {
|
4661
|
+
// name: 'side-menu-footer',
|
4662
|
+
// component: AXMPromotionSlotComponent,
|
4663
|
+
// options: {
|
4664
|
+
// location: 'side-menu-footer',
|
4665
|
+
// },
|
4666
|
+
// },
|
5655
4667
|
],
|
5656
4668
|
'side-menu-header': [
|
5657
|
-
|
5658
|
-
|
5659
|
-
|
5660
|
-
|
5661
|
-
|
5662
|
-
|
5663
|
-
|
5664
|
-
|
4669
|
+
// {
|
4670
|
+
// name: 'side-menu-header',
|
4671
|
+
// component: AXMPromotionSlotComponent,
|
4672
|
+
// priority: 2,
|
4673
|
+
// options: {
|
4674
|
+
// location: 'side-menu-header',
|
4675
|
+
// },
|
4676
|
+
// },
|
5665
4677
|
],
|
5666
4678
|
}),
|
5667
4679
|
],
|
@@ -5689,10 +4701,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
5689
4701
|
provide: AXMAppTermService,
|
5690
4702
|
useClass: AXMAppTermServiceImpl,
|
5691
4703
|
},
|
5692
|
-
{
|
5693
|
-
provide: AXMAppPromotionService,
|
5694
|
-
useClass: AXMPromotionServiceImpl,
|
5695
|
-
},
|
5696
4704
|
{
|
5697
4705
|
provide: AXMDataSourceService,
|
5698
4706
|
useClass: AXMDataSourceServiceImpl,
|
@@ -5720,11 +4728,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
5720
4728
|
useClass: AXMDynamicDataSourceProvider,
|
5721
4729
|
multi: true,
|
5722
4730
|
},
|
5723
|
-
{
|
5724
|
-
provide: AXP_DATASOURCE_DEFINITION_PROVIDER,
|
5725
|
-
useClass: AXMPromotionDataSourceDefinition,
|
5726
|
-
multi: true,
|
5727
|
-
},
|
5728
4731
|
{
|
5729
4732
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
5730
4733
|
useClass: AXPReleaseNotesSettingProvider,
|
@@ -5747,5 +4750,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
5747
4750
|
* Generated bundle index. Do not edit.
|
5748
4751
|
*/
|
5749
4752
|
|
5750
|
-
export { AXPRegionalSetting as A, AXMGlossaryServiceImpl as B, metaDataDefinitionFactory as C, AXMMetaDataDefinitionService as D, AXMPMetaDataDefinitionServiceImpl as E, metaDataDefinitionCategoryEntityFactory as F, AXMMetaDataDefinitionCategoryService as G, AXMMetaDataDefinitionCategoryServiceImpl as H,
|
5751
|
-
//# sourceMappingURL=acorex-modules-platform-management-acorex-modules-platform-management-
|
4753
|
+
export { AXPRegionalSetting as A, AXMGlossaryServiceImpl as B, metaDataDefinitionFactory as C, AXMMetaDataDefinitionService as D, AXMPMetaDataDefinitionServiceImpl as E, metaDataDefinitionCategoryEntityFactory as F, AXMMetaDataDefinitionCategoryService as G, AXMMetaDataDefinitionCategoryServiceImpl as H, AXPRegionalStoreService as I, AXMUpdaterModule as J, AXPUpdaterService as K, RootConfig as R, AXMAppVersionService as a, AXMPlatformManagementModule as b, appTermEntityEntityFactory as c, AXMAppTermService as d, AXMAppTermServiceImpl as e, AXMListTermsComponent as f, AXMNotifyNewTermPopupAction as g, AXMTermUpdateSettingAction as h, AXMNewTermWorkflow as i, appVersionEntityEntityFactory as j, AXMAppVersionServiceImpl as k, AXMNotifyAppComponent as l, AXMAppVersionSlotComponent as m, AXMChangeLogPopupAction as n, AXMChangeLogUpdateSettingAction as o, AXMWhatsNewWorkflow as p, AXMCheckNewVersionAction as q, AXMCheckNewVersionWorkflow as r, dataSourceEntityFactory as s, AXMDataSourceService as t, AXMDataSourceServiceImpl as u, globalVariableEntityFactory as v, AXMGlobalVariablesService as w, AXMGlobalVariablesServiceImpl as x, glossaryEntityFactory as y, AXMGlossaryService as z };
|
4754
|
+
//# sourceMappingURL=acorex-modules-platform-management-acorex-modules-platform-management-B8aACrqL.mjs.map
|