@acorex/modules 19.1.2 → 19.1.3

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.
Files changed (36) hide show
  1. package/auth/lib/account/profile/profile-slot.component.d.ts +1 -0
  2. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-D8WcF6Jp.mjs → acorex-modules-auth-acorex-modules-auth-BF2gZWhA.mjs} +37 -25
  3. package/fesm2022/acorex-modules-auth-acorex-modules-auth-BF2gZWhA.mjs.map +1 -0
  4. package/fesm2022/{acorex-modules-auth-app-chooser.component-0TpgRa-v.mjs → acorex-modules-auth-app-chooser.component-BAGIEa63.mjs} +5 -5
  5. package/fesm2022/{acorex-modules-auth-app-chooser.component-0TpgRa-v.mjs.map → acorex-modules-auth-app-chooser.component-BAGIEa63.mjs.map} +1 -1
  6. package/fesm2022/{acorex-modules-auth-login.module-CziF_sE7.mjs → acorex-modules-auth-login.module-Cn2-BTEJ.mjs} +4 -4
  7. package/fesm2022/{acorex-modules-auth-login.module-CziF_sE7.mjs.map → acorex-modules-auth-login.module-Cn2-BTEJ.mjs.map} +1 -1
  8. package/fesm2022/{acorex-modules-auth-master.layout-Ds4LxKSf.mjs → acorex-modules-auth-master.layout-BeEYC1aO.mjs} +2 -2
  9. package/fesm2022/{acorex-modules-auth-master.layout-Ds4LxKSf.mjs.map → acorex-modules-auth-master.layout-BeEYC1aO.mjs.map} +1 -1
  10. package/fesm2022/{acorex-modules-auth-password.component-BVVvl8So.mjs → acorex-modules-auth-password.component-07yk91SI.mjs} +4 -4
  11. package/fesm2022/{acorex-modules-auth-password.component-BVVvl8So.mjs.map → acorex-modules-auth-password.component-07yk91SI.mjs.map} +1 -1
  12. package/fesm2022/{acorex-modules-auth-password.component-9TFb-AHn.mjs → acorex-modules-auth-password.component-dIFcmwBw.mjs} +2 -2
  13. package/fesm2022/{acorex-modules-auth-password.component-9TFb-AHn.mjs.map → acorex-modules-auth-password.component-dIFcmwBw.mjs.map} +1 -1
  14. package/fesm2022/{acorex-modules-auth-routes-TdAn72Pa.mjs → acorex-modules-auth-routes-BqvlenNN.mjs} +2 -2
  15. package/fesm2022/{acorex-modules-auth-routes-TdAn72Pa.mjs.map → acorex-modules-auth-routes-BqvlenNN.mjs.map} +1 -1
  16. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-CorZ4Z7h.mjs → acorex-modules-auth-tenant-chooser.component-CFT3i6iA.mjs} +5 -5
  17. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-CorZ4Z7h.mjs.map → acorex-modules-auth-tenant-chooser.component-CFT3i6iA.mjs.map} +1 -1
  18. package/fesm2022/{acorex-modules-auth-two-factor.module-BE2uEne7.mjs → acorex-modules-auth-two-factor.module-B4AMkhOD.mjs} +2 -2
  19. package/fesm2022/{acorex-modules-auth-two-factor.module-BE2uEne7.mjs.map → acorex-modules-auth-two-factor.module-B4AMkhOD.mjs.map} +1 -1
  20. package/fesm2022/acorex-modules-auth.mjs +1 -1
  21. package/fesm2022/acorex-modules-form-template-management.mjs +9 -3
  22. package/fesm2022/acorex-modules-form-template-management.mjs.map +1 -1
  23. package/fesm2022/{acorex-modules-platform-management-regional-formats-BSMV12dQ.mjs → acorex-modules-platform-management-regional-formats-BaHofjWg.mjs} +3 -3
  24. package/fesm2022/{acorex-modules-platform-management-regional-formats-BSMV12dQ.mjs.map → acorex-modules-platform-management-regional-formats-BaHofjWg.mjs.map} +1 -1
  25. package/fesm2022/acorex-modules-platform-management.mjs +261 -43
  26. package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
  27. package/fesm2022/acorex-modules-text-template-management.mjs +3 -3
  28. package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -1
  29. package/package.json +5 -5
  30. package/platform-management/lib/common/organizarion/setting.keys.d.ts +16 -0
  31. package/platform-management/lib/common/organizarion/settings.provider.d.ts +4 -0
  32. package/platform-management/lib/common/regional/language-slot/language-slot.component.d.ts +1 -1
  33. package/platform-management/lib/common/regional/regional-store.service.d.ts +1 -1
  34. package/platform-management/lib/common/regional/setting.provider.d.ts +1 -1
  35. package/platform-management/lib/menu.provider.d.ts +1 -0
  36. package/fesm2022/acorex-modules-auth-acorex-modules-auth-D8WcF6Jp.mjs.map +0 -1
@@ -3,9 +3,9 @@ import { AXPSettingValueProviderService, AXP_SETTING_DEFINITION_PROVIDER, AXPCom
3
3
  import { AXP_ENTITY_DEFINITION_LOADER, AXPEntityService } from '@acorex/platform/layout/entity';
4
4
  import * as i0 from '@angular/core';
5
5
  import { inject, Injector, Injectable, signal, Component, NgModule } from '@angular/core';
6
- import { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
6
+ import { objectKeyValueTransforms, AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
7
7
  import { AXTranslationService } from '@acorex/core/translation';
8
- import { signalStore, withState, withMethods, patchState } from '@ngrx/signals';
8
+ import { signalStore, withState, withMethods, patchState, withHooks } from '@ngrx/signals';
9
9
  import * as i3 from '@acorex/components/button';
10
10
  import { AXButtonModule } from '@acorex/components/button';
11
11
  import * as i2 from '@acorex/components/decorators';
@@ -14,6 +14,7 @@ import * as i1 from '@acorex/components/dropdown';
14
14
  import { AXDropdownModule } from '@acorex/components/dropdown';
15
15
  import { AXPopoverModule } from '@acorex/components/popover';
16
16
  import { CommonModule } from '@angular/common';
17
+ import { AXPSessionService } from '@acorex/platform/auth';
17
18
 
18
19
  class AXMCommonModuleEntityProvider {
19
20
  constructor() {
@@ -34,7 +35,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
34
35
  type: Injectable
35
36
  }] });
36
37
 
37
- const path = 'settings:regional:';
38
+ const path$1 = 'settings:regional:';
38
39
  var AXPRegionalSetting;
39
40
  (function (AXPRegionalSetting) {
40
41
  AXPRegionalSetting["TimeZone"] = "settings:regional:timezone";
@@ -65,16 +66,19 @@ withState((translationService = inject(AXTranslationService)) => {
65
66
  // Methods for State Management
66
67
  withMethods((store, settingService = inject(AXPSettingValueProviderService), translationService = inject(AXTranslationService)) => {
67
68
  return {
68
- changeLanguage(lang) {
69
- settingService.set(AXPRegionalSetting.Language, lang);
69
+ async changeLanguage(lang) {
70
+ if (lang != store.language()) {
71
+ settingService.set(AXPRegionalSetting.Language, lang);
72
+ patchState(store, { language: lang });
73
+ }
70
74
  translationService.setActiveLang(lang);
71
- patchState(store, { language: lang });
75
+ const reg = await (await this.getRegionalFormats()).find(c => c.locale == lang);
76
+ const html = document.getElementsByTagName('html')[0];
77
+ reg?.layout == 'rtl' ? html.setAttribute('dir', 'rtl') : html.removeAttribute('dir');
72
78
  },
73
79
  async loadSetting() {
74
80
  const lang = (await settingService.get(AXPRegionalSetting.Language)) ?? translationService.getDefaultLang();
75
- settingService.set(AXPRegionalSetting.Language, lang);
76
- translationService.setActiveLang(lang);
77
- patchState(store, { language: lang });
81
+ await this.changeLanguage(lang);
78
82
  },
79
83
  async getCountries() {
80
84
  const { countries } = await import('./acorex-modules-platform-management-countries-CuJVdPLt.mjs');
@@ -89,7 +93,7 @@ withMethods((store, settingService = inject(AXPSettingValueProviderService), tra
89
93
  return currencies;
90
94
  },
91
95
  async getRegionalFormats() {
92
- const { regionalFormats } = await import('./acorex-modules-platform-management-regional-formats-BSMV12dQ.mjs');
96
+ const { regionalFormats } = await import('./acorex-modules-platform-management-regional-formats-BaHofjWg.mjs');
93
97
  return regionalFormats;
94
98
  },
95
99
  async getLanguages() {
@@ -100,7 +104,17 @@ withMethods((store, settingService = inject(AXPSettingValueProviderService), tra
100
104
  return (await this.getLanguages()).filter(c => ['fa-IR', 'en-US'].some(e => e == c.code));
101
105
  }
102
106
  };
103
- }));
107
+ }), withHooks((store, settingService = inject(AXPSettingValueProviderService)) => ({
108
+ onInit() {
109
+ settingService.onChanged.subscribe(async (setting) => {
110
+ if (setting.keys.includes(AXPRegionalSetting.Language)) {
111
+ await store.loadSetting();
112
+ }
113
+ });
114
+ },
115
+ onDestroy() {
116
+ },
117
+ })));
104
118
 
105
119
  const timeZones = [
106
120
  { code: 'UTC-5', title: 'UTC-5 (Eastern Time)', offset: '-05:00' },
@@ -144,8 +158,10 @@ class AXMRegionalSettingProvider {
144
158
  .addSetting({
145
159
  key: AXPRegionalSetting.TimeZone,
146
160
  title: 'Time Zone',
147
- scope: 'G',
161
+ scope: 'T',
162
+ isInherited: true,
148
163
  defaultValue: await getBrowserTimeZoneCode(),
164
+ valueTransforms: objectKeyValueTransforms('code'),
149
165
  widget: {
150
166
  type: AXPWidgetsCatalog.select,
151
167
  options: {
@@ -156,13 +172,15 @@ class AXMRegionalSettingProvider {
156
172
  description: 'Set the default time zone for the application.',
157
173
  })
158
174
  .endSection()
159
- // Language Section
160
- .addSection('language', 'Language', 'Configure display language settings.')
175
+ // Region Section
176
+ .addSection('region', 'Region', 'Configure regional format and preferences.')
161
177
  .addSetting({
162
178
  key: AXPRegionalSetting.Language,
163
179
  title: 'Display Language',
164
180
  scope: 'U',
181
+ isInherited: true,
165
182
  defaultValue: 'en-US',
183
+ valueTransforms: objectKeyValueTransforms('code'),
166
184
  widget: {
167
185
  type: AXPWidgetsCatalog.select,
168
186
  options: {
@@ -171,54 +189,54 @@ class AXMRegionalSettingProvider {
171
189
  },
172
190
  },
173
191
  description: 'Set the preferred display language for the user.',
174
- })
175
- .endSection()
176
- // Region Section
177
- .addSection('region', 'Region', 'Configure regional format and preferences.')
178
- .addSetting({
179
- key: AXPRegionalSetting.Country,
180
- title: 'Country',
181
- scope: 'G',
182
- defaultValue: 'US',
183
- widget: {
184
- type: AXPWidgetsCatalog.select,
185
- options: {
186
- valueField: 'code',
187
- dataSource: await this.store.getCountries(),
188
- },
189
- },
190
- description: 'Set the default country for the application.',
191
192
  })
192
193
  .addSetting({
193
194
  key: AXPRegionalSetting.Regional,
194
195
  title: 'Regional Format',
195
196
  scope: 'U',
196
- defaultValue: 'English (United States)',
197
+ isInherited: true,
198
+ defaultValue: await this.store.language(),
199
+ valueTransforms: objectKeyValueTransforms('locale'),
197
200
  widget: {
198
201
  type: AXPWidgetsCatalog.select,
199
202
  options: {
200
- dataSource: ['English (United States)', 'English (United Kingdom)', 'French (France)', 'German (Germany)'],
203
+ valueField: 'locale',
204
+ dataSource: await this.store.getRegionalFormats(),
201
205
  },
206
+ triggers: [
207
+ {
208
+ event: `{{ events.context('${AXPRegionalSetting.Language}') }}`,
209
+ action: `{{ widget.setValue(context.eval('${AXPRegionalSetting.Language}')) }}`,
210
+ },
211
+ ],
202
212
  },
203
213
  description: 'Set the regional format for numbers, dates, and times.',
204
214
  })
205
215
  .addSetting({
206
216
  key: AXPRegionalSetting.Calendar,
207
217
  title: 'Calendar',
208
- scope: 'G',
218
+ scope: 'U',
219
+ isInherited: true,
209
220
  defaultValue: 'Gregorian',
210
221
  widget: {
211
222
  type: AXPWidgetsCatalog.select,
212
223
  options: {
213
224
  dataSource: ['Gregorian', 'Hijri'],
214
225
  },
226
+ triggers: [
227
+ {
228
+ event: `{{ events.context('${AXPRegionalSetting.Regional}') }}`,
229
+ action: `{{ console.log(widget.find('${AXPRegionalSetting.Regional}').output('selectedItems')[0]) }}`,
230
+ },
231
+ ],
215
232
  },
216
233
  description: 'Select the calendar type for the application.',
217
234
  })
218
235
  .addSetting({
219
236
  key: AXPRegionalSetting.FirstDayOfWeek,
220
237
  title: 'First Day of Week',
221
- scope: 'U',
238
+ scope: 'T',
239
+ isInherited: false,
222
240
  defaultValue: 'Monday',
223
241
  widget: {
224
242
  type: AXPWidgetsCatalog.select,
@@ -231,7 +249,8 @@ class AXMRegionalSettingProvider {
231
249
  .addSetting({
232
250
  key: AXPRegionalSetting.WorkDays,
233
251
  title: 'Work Days',
234
- scope: 'U',
252
+ scope: 'T',
253
+ isInherited: false,
235
254
  defaultValue: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'],
236
255
  widget: {
237
256
  type: AXPWidgetsCatalog.selectionList,
@@ -246,6 +265,7 @@ class AXMRegionalSettingProvider {
246
265
  key: AXPRegionalSetting.ShortDate,
247
266
  title: 'Short Date Format',
248
267
  scope: 'U',
268
+ isInherited: true,
249
269
  defaultValue: 'MM/dd/yyyy',
250
270
  widget: {
251
271
  type: AXPWidgetsCatalog.select,
@@ -259,6 +279,7 @@ class AXMRegionalSettingProvider {
259
279
  key: AXPRegionalSetting.LongDate,
260
280
  title: 'Long Date Format',
261
281
  scope: 'U',
282
+ isInherited: true,
262
283
  defaultValue: 'MMMM dd, yyyy',
263
284
  widget: {
264
285
  type: AXPWidgetsCatalog.select,
@@ -272,6 +293,7 @@ class AXMRegionalSettingProvider {
272
293
  key: AXPRegionalSetting.ShortTime,
273
294
  title: 'Short Time Format',
274
295
  scope: 'U',
296
+ isInherited: true,
275
297
  defaultValue: 'hh:mm a',
276
298
  widget: {
277
299
  type: AXPWidgetsCatalog.select,
@@ -289,6 +311,7 @@ class AXMRegionalSettingProvider {
289
311
  key: AXPRegionalSetting.LongTime,
290
312
  title: 'Long Time Format',
291
313
  scope: 'U',
314
+ isInherited: true,
292
315
  defaultValue: 'hh:mm:ss a',
293
316
  widget: {
294
317
  type: AXPWidgetsCatalog.select,
@@ -324,6 +347,178 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
324
347
  args: [{ imports: [AXDropdownModule, AXDecoratorModule, AXPopoverModule, AXButtonModule, CommonModule], template: "<ax-button look=\"blank\">\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 [text]=\"lang.title\" [selected]=\"store.language()===lang.code\"\n (onClick)=\"store.changeLanguage(lang.code)\">\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>" }]
325
348
  }] });
326
349
 
350
+ const path = 'settings:organization:';
351
+ var AXPOrganizationSetting;
352
+ (function (AXPOrganizationSetting) {
353
+ AXPOrganizationSetting["OrganizationName"] = "settings:organization:organization-name";
354
+ AXPOrganizationSetting["OrganizationID"] = "settings:organization:organization-id";
355
+ AXPOrganizationSetting["ContactEmail"] = "settings:organization:contact-email";
356
+ AXPOrganizationSetting["ContactPhone"] = "settings:organization:contact-phone";
357
+ AXPOrganizationSetting["OrganizationAddress"] = "settings:organization:organization-address";
358
+ AXPOrganizationSetting["OrganizationCity"] = "settings:organization:organization-city";
359
+ AXPOrganizationSetting["OrganizationCountry"] = "settings:organization:organization-country";
360
+ AXPOrganizationSetting["BrandingColor"] = "settings:organization:branding-color";
361
+ AXPOrganizationSetting["BrandingLogo"] = "settings:organization:branding-logo";
362
+ AXPOrganizationSetting["CopyrightText"] = "settings:organization:copyright-text";
363
+ AXPOrganizationSetting["ApplicationHeaderTitle"] = "settings:organization:application-header-title";
364
+ AXPOrganizationSetting["SupportEmail"] = "settings:organization:support-email";
365
+ AXPOrganizationSetting["InfoEmail"] = "settings:organization:info-email";
366
+ AXPOrganizationSetting["FaxNumber"] = "settings:organization:fax-number";
367
+ })(AXPOrganizationSetting || (AXPOrganizationSetting = {}));
368
+
369
+ class AXMOrganizationSettingProvider {
370
+ async provide(context) {
371
+ context
372
+ .addGroup('organization-settings', 'Organization Settings', 'Manage organizational preferences.', 'fa-solid fa-building')
373
+ // Branding Section
374
+ .addSection('branding', 'Branding', 'Configure company branding.')
375
+ .addSetting({
376
+ key: AXPOrganizationSetting.OrganizationName,
377
+ title: 'Company Name',
378
+ scope: 'G',
379
+ defaultValue: '',
380
+ widget: {
381
+ type: AXPWidgetsCatalog.text,
382
+ },
383
+ description: 'Specify the official name of the company.',
384
+ })
385
+ .addSetting({
386
+ key: 'branding-color',
387
+ title: 'Primary Color',
388
+ scope: 'G',
389
+ defaultValue: '#000000',
390
+ widget: {
391
+ type: AXPWidgetsCatalog.color,
392
+ },
393
+ description: 'Primary brand color used across the application.',
394
+ })
395
+ .addSetting({
396
+ key: 'branding-logo',
397
+ title: 'Company Logo',
398
+ scope: 'G',
399
+ defaultValue: '',
400
+ widget: {
401
+ type: AXPWidgetsCatalog.file,
402
+ options: {
403
+ fileTypes: ['image/png', 'image/jpeg'],
404
+ },
405
+ },
406
+ description: 'Upload the company logo.',
407
+ })
408
+ .addSetting({
409
+ key: 'copyright-text',
410
+ title: 'Copyright Text',
411
+ scope: 'G',
412
+ defaultValue: '© 2024 Your Company',
413
+ widget: {
414
+ type: AXPWidgetsCatalog.text,
415
+ },
416
+ description: 'Text displayed in the footer of the application.',
417
+ })
418
+ .addSetting({
419
+ key: 'application-header-title',
420
+ title: 'Application Header Title',
421
+ scope: 'G',
422
+ defaultValue: 'Your Application',
423
+ widget: {
424
+ type: AXPWidgetsCatalog.text,
425
+ },
426
+ description: 'Title displayed in the application header.',
427
+ })
428
+ .endSection()
429
+ // Contact Details Section
430
+ .addSection('contact', 'Contact Details', 'Set company contact information.')
431
+ .addSetting({
432
+ key: AXPOrganizationSetting.ContactEmail,
433
+ title: 'Company Email',
434
+ scope: 'G',
435
+ defaultValue: '',
436
+ widget: {
437
+ type: AXPWidgetsCatalog.email,
438
+ },
439
+ description: 'Primary email address for the company.',
440
+ })
441
+ .addSetting({
442
+ key: 'support-email',
443
+ title: 'Support Email',
444
+ scope: 'G',
445
+ defaultValue: '',
446
+ widget: {
447
+ type: AXPWidgetsCatalog.email,
448
+ },
449
+ description: 'Support email address for customer inquiries.',
450
+ })
451
+ .addSetting({
452
+ key: 'info-email',
453
+ title: 'Info Email',
454
+ scope: 'G',
455
+ defaultValue: '',
456
+ widget: {
457
+ type: AXPWidgetsCatalog.email,
458
+ },
459
+ description: 'General information email address.',
460
+ })
461
+ .addSetting({
462
+ key: AXPOrganizationSetting.ContactPhone,
463
+ title: 'Company Phone',
464
+ scope: 'G',
465
+ defaultValue: '',
466
+ widget: {
467
+ type: AXPWidgetsCatalog.phone,
468
+ },
469
+ description: 'Primary contact phone number.',
470
+ })
471
+ .addSetting({
472
+ key: 'fax-number',
473
+ title: 'Fax Number',
474
+ scope: 'G',
475
+ defaultValue: '',
476
+ widget: {
477
+ type: AXPWidgetsCatalog.phone,
478
+ },
479
+ description: 'Fax number for the company.',
480
+ })
481
+ .endSection()
482
+ // Address Section
483
+ .addSection('address', 'Address', 'Manage company address details.')
484
+ .addSetting({
485
+ key: AXPOrganizationSetting.OrganizationAddress,
486
+ title: 'Street Address',
487
+ scope: 'G',
488
+ defaultValue: '',
489
+ widget: {
490
+ type: AXPWidgetsCatalog.text,
491
+ },
492
+ description: 'Street address of the company.',
493
+ })
494
+ .addSetting({
495
+ key: AXPOrganizationSetting.OrganizationCity,
496
+ title: 'City',
497
+ scope: 'G',
498
+ defaultValue: '',
499
+ widget: {
500
+ type: AXPWidgetsCatalog.text,
501
+ },
502
+ description: 'City where the company is located.',
503
+ })
504
+ .addSetting({
505
+ key: AXPOrganizationSetting.OrganizationCountry,
506
+ title: 'Country',
507
+ scope: 'G',
508
+ defaultValue: '',
509
+ widget: {
510
+ type: AXPWidgetsCatalog.select,
511
+ options: {
512
+ dataSource: ['United States', 'United Kingdom', 'France', 'Germany', 'Japan', 'China'],
513
+ },
514
+ },
515
+ description: 'Country where the company is based.',
516
+ })
517
+ .endSection()
518
+ .endGroup();
519
+ }
520
+ }
521
+
327
522
  class AXMPlatformManagementCommonModule {
328
523
  constructor(appInitService, injector) {
329
524
  const service = injector.get(AXPRegionalStoreService);
@@ -348,6 +543,11 @@ class AXMPlatformManagementCommonModule {
348
543
  useClass: AXMRegionalSettingProvider,
349
544
  multi: true
350
545
  },
546
+ {
547
+ provide: AXP_SETTING_DEFINITION_PROVIDER,
548
+ useClass: AXMOrganizationSettingProvider,
549
+ multi: true
550
+ },
351
551
  ], imports: [AXPComponentSlotModule.forChild({
352
552
  'header-end': [
353
553
  {
@@ -383,6 +583,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
383
583
  useClass: AXMRegionalSettingProvider,
384
584
  multi: true
385
585
  },
586
+ {
587
+ provide: AXP_SETTING_DEFINITION_PROVIDER,
588
+ useClass: AXMOrganizationSettingProvider,
589
+ multi: true
590
+ },
386
591
  ],
387
592
  }]
388
593
  }], ctorParameters: () => [{ type: i1$1.AXPAppStartUpService }, { type: i0.Injector }] });
@@ -464,7 +669,7 @@ async function globalVariableEntityFactory(injector) {
464
669
  ],
465
670
  },
466
671
  {
467
- name: 'dataValue',
672
+ name: 'value',
468
673
  title: 'Data Value',
469
674
  groupId: 'section',
470
675
  schema: {
@@ -510,11 +715,11 @@ async function globalVariableEntityFactory(injector) {
510
715
  ],
511
716
  },
512
717
  ],
513
- columns: [{ name: 'title' }, { name: 'dataValue' }, { name: 'dataType' }],
718
+ columns: [{ name: 'title' }, { name: 'value' }, { name: 'dataType' }],
514
719
  commands: {
515
720
  create: {
516
721
  execute: async (data) => {
517
- return Promise.resolve(dataService.insertOne(data));
722
+ return Promise.resolve({ id: await dataService.insertOne(data) });
518
723
  },
519
724
  },
520
725
  delete: {
@@ -585,7 +790,7 @@ async function globalVariableEntityFactory(injector) {
585
790
  },
586
791
  },
587
792
  {
588
- name: 'dataValue',
793
+ name: 'value',
589
794
  layout: {
590
795
  positions: {
591
796
  lg: {
@@ -634,7 +839,7 @@ async function globalVariableEntityFactory(injector) {
634
839
  },
635
840
  },
636
841
  {
637
- name: 'dataValue',
842
+ name: 'value',
638
843
  layout: {
639
844
  positions: {
640
845
  lg: {
@@ -684,7 +889,7 @@ async function globalVariableEntityFactory(injector) {
684
889
  },
685
890
  },
686
891
  {
687
- name: 'dataValue',
892
+ name: 'value',
688
893
  layout: {
689
894
  positions: {
690
895
  lg: {
@@ -782,15 +987,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
782
987
  class AXMPlatformManagmentModuleMenuProvider {
783
988
  constructor() {
784
989
  this.entityService = inject(AXPEntityService);
990
+ this.sessionService = inject(AXPSessionService);
785
991
  }
786
992
  async provide(context) {
787
993
  const scope = AXMPlatformManagementModuleConst.i18n;
994
+ const appName = this.sessionService.application?.name;
788
995
  context.addItems([
789
996
  {
790
997
  name: 'administration-group',
791
998
  priority: 2000,
792
999
  text: `t('administration',{scope: "${scope}"})`,
793
1000
  type: 'group',
1001
+ data: {
1002
+ // requiredPermission: 'admin',
1003
+ },
1004
+ },
1005
+ {
1006
+ name: 'tenant-application-settings',
1007
+ priority: 10000,
1008
+ text: `t('settings')`,
1009
+ type: 'menu',
1010
+ icon: 'fa-solid fa-gear',
1011
+ path: `/${appName}/settings/tenant`,
794
1012
  data: {
795
1013
  requiredPermission: 'admin',
796
1014
  },
@@ -801,7 +1019,7 @@ class AXMPlatformManagmentModuleMenuProvider {
801
1019
  type: 'menu',
802
1020
  priority: 9100,
803
1021
  data: {
804
- // requiredPermission: 'demo.admin.settings',
1022
+ requiredPermission: 'platform',
805
1023
  },
806
1024
  children: [
807
1025
  {