@acorex/platform 19.3.0-next.4 → 19.3.0

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 (67) hide show
  1. package/common/lib/app/index.d.ts +0 -1
  2. package/common/lib/common.module.d.ts +1 -1
  3. package/common/lib/configs/app.config.d.ts +12 -3
  4. package/common/lib/home-page/home-page.service.d.ts +6 -0
  5. package/common/lib/layout/logo/logo.component.d.ts +4 -0
  6. package/common/lib/settings/settings.service.d.ts +4 -1
  7. package/common/lib/utils/regional-util.service.d.ts +2 -2
  8. package/common/lib/utils/regional.types.d.ts +6 -16
  9. package/core/lib/index.d.ts +1 -0
  10. package/{common/lib/app → core/lib/startup}/app-startup.service.d.ts +1 -5
  11. package/core/lib/startup/app-startup.types.d.ts +6 -0
  12. package/core/lib/startup/index.d.ts +2 -0
  13. package/core/lib/types/logo.types.d.ts +5 -9
  14. package/fesm2022/acorex-platform-auth.mjs +5 -1
  15. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-common.mjs +130 -85
  17. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-core.mjs +42 -13
  19. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-builder.mjs +17 -0
  21. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-designer.mjs +2 -2
  23. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-layout-entity.mjs +51 -24
  25. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  26. package/fesm2022/acorex-platform-layout-search.mjs +4 -3
  27. package/fesm2022/acorex-platform-layout-search.mjs.map +1 -1
  28. package/fesm2022/acorex-platform-layout-setting.mjs +5 -4
  29. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
  30. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CuyWAi6X.mjs → acorex-platform-themes-default-entity-master-list-view.component-Ol8haGqF.mjs} +5 -4
  31. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-Ol8haGqF.mjs.map +1 -0
  32. package/fesm2022/acorex-platform-themes-default.mjs +18 -20
  33. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  34. package/fesm2022/acorex-platform-themes-shared.mjs +22 -18
  35. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  36. package/fesm2022/acorex-platform-widgets.mjs +770 -123
  37. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  38. package/layout/builder/lib/builder/context-store.service.d.ts +2 -1
  39. package/layout/builder/lib/builder/widget-base.component.d.ts +1 -0
  40. package/layout/builder/lib/builder/widget-container.component.d.ts +1 -0
  41. package/layout/builder/lib/builder/widget-map.d.ts +1 -0
  42. package/layout/builder/lib/builder/widget-renderer.directive.d.ts +1 -0
  43. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +1 -0
  44. package/layout/entity/lib/entity.module.d.ts +1 -1
  45. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.d.ts +1 -1
  46. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +2 -0
  47. package/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.d.ts +0 -5
  48. package/layout/search/lib/search.module.d.ts +1 -1
  49. package/layout/setting/lib/settings.module.d.ts +1 -1
  50. package/package.json +4 -2
  51. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +12 -3
  52. package/themes/default/lib/layouts/root-layout/horizontal/horizontal-layout.component.d.ts +12 -6
  53. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +2 -1
  54. package/themes/default/lib/layouts/root-layout/vertical/vertical-layout.component.d.ts +14 -5
  55. package/themes/shared/lib/shared.module.d.ts +1 -1
  56. package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget.component.d.ts +31 -0
  57. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart-widget.component.d.ts +18 -12
  58. package/widgets/lib/widgets/charts/index.d.ts +11 -0
  59. package/widgets/lib/widgets/charts/line-chart/index.d.ts +3 -0
  60. package/widgets/lib/widgets/charts/line-chart/line-chart-widget.component.d.ts +76 -0
  61. package/widgets/lib/widgets/charts/line-chart/line-chart-widget.config.d.ts +7 -0
  62. package/widgets/lib/widgets/charts/line-chart/line-chart.type.d.ts +41 -0
  63. package/widgets/lib/widgets/charts/shared/index.d.ts +3 -0
  64. package/widgets/lib/widgets/charts/weather/index.d.ts +0 -1
  65. package/widgets/lib/widgets/index.d.ts +3 -1
  66. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CuyWAi6X.mjs.map +0 -1
  67. package/widgets/lib/widgets/charts/weather/weather.module.d.ts +0 -11
@@ -1,10 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, provideAppInitializer, inject, InjectionToken, Injector, makeEnvironmentProviders, NgModule, ErrorHandler, Input, Directive, EventEmitter, Output, runInInjectionContext, Optional, Inject, Component, computed, ViewEncapsulation, signal, model, linkedSignal, afterNextRender } from '@angular/core';
3
- import { kebabCase, merge, cloneDeep, get, sortBy, omit } from 'lodash-es';
4
- import { ROUTES, Router, RouterModule } from '@angular/router';
5
- import { AXPSessionService } from '@acorex/platform/auth';
6
- import { Subject, merge as merge$1 } from 'rxjs';
7
- import { AXPPlatformScope, AXPBroadcastEventService, objectKeyValueTransforms, AXPComponentLogoConfig, AXPFontIconLogoConfig, AXPImageUrlLogoConfig, AXPTextLogoConfig } from '@acorex/platform/core';
2
+ import { InjectionToken, inject, Injectable, Injector, makeEnvironmentProviders, NgModule, ErrorHandler, Input, Directive, EventEmitter, Output, runInInjectionContext, Optional, Inject, Component, computed, ViewEncapsulation, signal, model, linkedSignal, afterNextRender } from '@angular/core';
3
+ import { kebabCase, merge, sortBy, cloneDeep, get, omit } from 'lodash-es';
4
+ import { Router, ROUTES, RouterModule } from '@angular/router';
5
+ import { AXPSessionService, AXPSessionStatus } from '@acorex/platform/auth';
6
+ import { Subject, distinctUntilChanged, merge as merge$1 } from 'rxjs';
7
+ import * as i1$1 from '@acorex/platform/core';
8
+ import { AXPPlatformScope, AXPBroadcastEventService, objectKeyValueTransforms, AXPComponentLogoConfig, AXPImageUrlLogoConfig, AXPAppStartUpProvider } from '@acorex/platform/core';
8
9
  import { AXTranslationService } from '@acorex/core/translation';
9
10
  import { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
10
11
  import { AXPopupModule, AXPopupService } from '@acorex/components/popup';
@@ -16,6 +17,7 @@ import * as i4 from '@acorex/components/decorators';
16
17
  import { AXDecoratorModule } from '@acorex/components/decorators';
17
18
  import * as i2 from '@acorex/components/image';
18
19
  import { AXImageModule } from '@acorex/components/image';
20
+ import { AXPlatform } from '@acorex/core/platform';
19
21
  import * as i1 from '@angular/common';
20
22
  import { CommonModule } from '@angular/common';
21
23
  import { signalStore, withState, withMethods, patchState, withHooks } from '@ngrx/signals';
@@ -32,45 +34,9 @@ import * as i2$1 from '@acorex/components/number-box';
32
34
  import { AXNumberBoxModule } from '@acorex/components/number-box';
33
35
  import { AXBasePageComponent } from '@acorex/components/page';
34
36
  import { AXTextBoxModule } from '@acorex/components/text-box';
35
- import * as i1$1 from '@angular/forms';
37
+ import * as i1$2 from '@angular/forms';
36
38
  import { FormsModule } from '@angular/forms';
37
39
 
38
- class AXPAppStartUpService {
39
- constructor() {
40
- this.tasks = [];
41
- }
42
- registerTask(task) {
43
- this.tasks.push(task);
44
- }
45
- async runAllTasks() {
46
- for (const task of this.tasks) {
47
- this.updateStatus(task.statusText);
48
- await task.run();
49
- }
50
- }
51
- updateStatus(status) {
52
- const loadingText = document.querySelector('#loadingText');
53
- if (loadingText) {
54
- loadingText.innerHTML = status;
55
- }
56
- }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAppStartUpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
58
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAppStartUpService, providedIn: 'root' }); }
59
- }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAppStartUpService, decorators: [{
61
- type: Injectable,
62
- args: [{
63
- providedIn: 'root',
64
- }]
65
- }] });
66
- function initAppFactory(appInitService) {
67
- return () => appInitService.runAllTasks();
68
- }
69
- const AXPAppStartUpProvider = provideAppInitializer(() => {
70
- const initializerFn = initAppFactory(inject(AXPAppStartUpService));
71
- return initializerFn();
72
- });
73
-
74
40
  const AXP_APP_VERSION_PROVIDER = new InjectionToken('AXP_APP_VERSION_PROVIDER', {
75
41
  providedIn: 'root',
76
42
  factory: () => {
@@ -428,7 +394,7 @@ class AXPSettingDefinitionProviderService {
428
394
  }))
429
395
  .filter((group) => group.sections.length > 0 || group.groups.length > 0); // Keep groups with valid sections or nested groups
430
396
  };
431
- return filterByScope(this.cache, scope);
397
+ return sortBy(filterByScope(this.cache, scope), 'title');
432
398
  }
433
399
  async defaultValues() {
434
400
  const defaults = {};
@@ -502,22 +468,38 @@ class AXPSettingDefaultValueProvider {
502
468
  const AXP_SETTING_VALUE_PROVIDER = new InjectionToken('AXP_SETTING_VALUE_PROVIDER', {
503
469
  providedIn: 'root',
504
470
  factory: () => {
471
+ const injector = inject(Injector);
505
472
  return [
506
- new AXPSettingValueProviderDefault(AXPPlatformScope.Tenant),
507
- new AXPSettingValueProviderDefault(AXPPlatformScope.User)
473
+ new AXPSettingValueProviderDefault(AXPPlatformScope.Tenant, injector),
474
+ new AXPSettingValueProviderDefault(AXPPlatformScope.User, injector)
508
475
  ];
509
476
  }
510
477
  });
511
478
  class AXPSettingValueProviderDefault {
512
- get scope() {
513
- return this._scope;
514
- }
515
- constructor(_scope) {
479
+ constructor(_scope, injector) {
516
480
  this._scope = _scope;
481
+ this.injector = injector;
517
482
  this.cache = new Map();
518
- this.localStorageKey = `AXP_SETTINGS_SCOPE(${this.scope})`;
483
+ this.localStorageKey = null;
484
+ this.sessionService = this.injector.get(AXPSessionService);
485
+ this.sessionService.status$.subscribe((status) => {
486
+ if (status === AXPSessionStatus.Authorized || status === AXPSessionStatus.Authenticated) {
487
+ if (this.scope === AXPPlatformScope.User) {
488
+ this.localStorageKey = `AXP_SETTINGS_SCOPE(${this.sessionService.user?.id ?? 'U'})`;
489
+ }
490
+ else {
491
+ this.localStorageKey = `AXP_SETTINGS_SCOPE(${this.sessionService.tenant?.id ?? 'T'})`;
492
+ }
493
+ }
494
+ });
495
+ }
496
+ get scope() {
497
+ return this._scope;
519
498
  }
520
499
  async load() {
500
+ if (!this.localStorageKey) {
501
+ return Promise.resolve([]);
502
+ }
521
503
  // Load settings from localStorage as a single key
522
504
  const storedSettings = localStorage.getItem(this.localStorageKey);
523
505
  if (storedSettings) {
@@ -543,22 +525,32 @@ class AXPSettingValueProviderDefault {
543
525
  await this.saveToLocalStorage();
544
526
  }
545
527
  async saveToLocalStorage() {
528
+ if (!this.localStorageKey) {
529
+ return;
530
+ }
546
531
  const settingsObject = {};
547
532
  this.cache.forEach((value, key) => {
548
533
  settingsObject[key] = value;
549
534
  });
550
535
  localStorage.setItem(this.localStorageKey, JSON.stringify(settingsObject));
551
536
  }
537
+ async clear() {
538
+ if (!this.localStorageKey) {
539
+ return;
540
+ }
541
+ localStorage.removeItem(this.localStorageKey);
542
+ }
552
543
  }
553
544
 
554
545
  class AXPSettingService {
555
546
  constructor() {
556
547
  this.providers = inject(AXP_SETTING_VALUE_PROVIDER);
557
- //private readonly definitionService = inject(AXPSettingDefinitionProviderService);
558
548
  this.injector = inject(Injector);
559
549
  this.eventService = inject(AXPBroadcastEventService);
550
+ this.sessionService = inject(AXPSessionService);
560
551
  this.scopedSettingsCache = new Map();
561
552
  this.onChanged = new Subject();
553
+ this.onLoaded = new Subject();
562
554
  // Initialize scoped caches for dynamic scopes
563
555
  const staticScopes = [
564
556
  AXPPlatformScope.Environment,
@@ -579,18 +571,28 @@ class AXPSettingService {
579
571
  });
580
572
  this.onChanged.next(data); // Notify subscribers in the current tab
581
573
  });
574
+ // reload settings when user is authenticated
575
+ this.sessionService.isAuthenticated$.pipe(distinctUntilChanged()).subscribe(async (isAuthenticated) => {
576
+ if (isAuthenticated) {
577
+ await this.reload();
578
+ }
579
+ });
580
+ }
581
+ async reload() {
582
+ await this.load();
582
583
  }
583
584
  async load() {
584
585
  try {
585
586
  const settingsList = [];
586
587
  for (const provider of this.providers) {
587
- const scopeCache = this.scopedSettingsCache.get(provider.scope);
588
+ const scopeCache = this.scopedSettingsCache.get(provider.scope) ?? new Map();
588
589
  const providerSettings = await provider.load();
589
590
  providerSettings.forEach((setting) => {
590
591
  scopeCache.set(setting.key, setting.value);
591
592
  });
592
593
  settingsList.push(...providerSettings);
593
594
  }
595
+ this.onLoaded.next();
594
596
  return settingsList;
595
597
  }
596
598
  catch (error) {
@@ -736,6 +738,9 @@ class AXPHomePageService {
736
738
  this.candidates = inject(AXP_HOME_PAGES, { optional: true }) ?? [];
737
739
  this.settingsService = inject(AXPSettingService);
738
740
  this.sessionService = inject(AXPSessionService);
741
+ this.injector = inject(Injector);
742
+ this.originalConfig = null;
743
+ this.loginPath = 'auth/login';
739
744
  // remove circular dependency
740
745
  setTimeout(async () => {
741
746
  await this.init();
@@ -748,11 +753,13 @@ class AXPHomePageService {
748
753
  this.settingsService.onChanged.subscribe(async (c) => {
749
754
  if (keys.some((k) => c.keys.includes(k))) {
750
755
  await this.load();
756
+ this.refreshRoutes();
751
757
  }
752
758
  });
753
759
  //
754
- merge$1(this.sessionService.status$, this.sessionService.application$, this.sessionService.tenant$).subscribe(async () => {
760
+ merge$1(this.sessionService.status$, this.sessionService.application$, this.sessionService.tenant$).subscribe(async (data) => {
755
761
  await this.load();
762
+ this.refreshRoutes();
756
763
  });
757
764
  }
758
765
  async load() {
@@ -764,7 +771,7 @@ class AXPHomePageService {
764
771
  getRegisteredRoutes() {
765
772
  const defaultHomePage = this.flatCandidates.find((c) => c.key === this.defaultHomePageKey);
766
773
  const home = this.flatCandidates.find((c) => this.userHomePageKey && c.key === this.userHomePageKey) ?? defaultHomePage;
767
- if (home && home.route) {
774
+ if (home && home.route && this.sessionService.application?.name) {
768
775
  const fullPath = this.findPath(home.route);
769
776
  return [
770
777
  { path: '', redirectTo: fullPath, pathMatch: 'full' },
@@ -772,14 +779,22 @@ class AXPHomePageService {
772
779
  { ...home?.route, ...{ data: { key: home?.key, title: home?.title, path: fullPath } } },
773
780
  ];
774
781
  }
775
- return [];
782
+ return [
783
+ { path: '', redirectTo: this.loginPath, pathMatch: 'full' },
784
+ ];
776
785
  }
777
786
  getCurrent() {
778
787
  const key = this.userHomePageKey ?? this.defaultHomePageKey;
779
788
  const homePage = this.getRegisteredRoutes().find((c) => c.data?.['key'] === key);
789
+ if (homePage) {
790
+ return {
791
+ path: homePage.data?.['path'],
792
+ title: homePage.data?.['title'],
793
+ };
794
+ }
780
795
  return {
781
- path: homePage.data?.['path'],
782
- title: homePage.data?.['title'],
796
+ path: this.loginPath,
797
+ title: '',
783
798
  };
784
799
  }
785
800
  findPath(target) {
@@ -801,6 +816,38 @@ class AXPHomePageService {
801
816
  }
802
817
  return segments;
803
818
  }
819
+ refreshRoutes() {
820
+ const router = this.injector.get(Router);
821
+ // 👇 On first call, remember what was there before:
822
+ if (!this.originalConfig) {
823
+ this.originalConfig = router.config;
824
+ }
825
+ this.applyMergedConfig(router);
826
+ }
827
+ applyMergedConfig(router) {
828
+ const newHomeRoutes = this.getRegisteredRoutes(); // your 3 home entries
829
+ // Filter the original routes to drop the old home placeholders.
830
+ // We know your dynamic routes always have path === '' or ':app'
831
+ // or carry a `data.key` matching one of your home-page keys.
832
+ const otherRoutes = (this.originalConfig ?? [])
833
+ .filter(r => r.path !== '' &&
834
+ r.path !== ':app' &&
835
+ !(r.data && typeof r.data['key'] === 'string'));
836
+ // Build the new merged tree
837
+ const merged = [
838
+ ...newHomeRoutes,
839
+ ...otherRoutes
840
+ ];
841
+ router.resetConfig(merged);
842
+ }
843
+ async navigateTo() {
844
+ // wait for the router to be initialized
845
+ setTimeout(() => {
846
+ const router = this.injector.get(Router);
847
+ const current = this.getCurrent();
848
+ router.navigate([current.path]);
849
+ }, 100);
850
+ }
804
851
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPHomePageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
805
852
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPHomePageService, providedIn: 'root' }); }
806
853
  }
@@ -1358,17 +1405,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
1358
1405
  }] }] });
1359
1406
 
1360
1407
  class AXPLogoComponent {
1408
+ constructor() {
1409
+ this.platform = inject(AXPlatform);
1410
+ }
1361
1411
  ngOnInit() {
1412
+ this.setLogoType();
1413
+ this.platform.themeMode$.subscribe(() => {
1414
+ this.setLogoTheme();
1415
+ });
1416
+ }
1417
+ ngOnChanges() {
1418
+ this.setLogoTheme();
1419
+ }
1420
+ setLogoType() {
1362
1421
  switch (true) {
1363
- case this.source instanceof AXPTextLogoConfig:
1364
- this.logoType = 'text';
1365
- break;
1366
1422
  case this.source instanceof AXPImageUrlLogoConfig:
1367
1423
  this.logoType = 'url';
1368
1424
  break;
1369
- case this.source instanceof AXPFontIconLogoConfig:
1370
- this.logoType = 'iconClass';
1371
- break;
1372
1425
  case this.source instanceof AXPComponentLogoConfig:
1373
1426
  this.logoType = 'component';
1374
1427
  break;
@@ -1376,12 +1429,17 @@ class AXPLogoComponent {
1376
1429
  break;
1377
1430
  }
1378
1431
  }
1432
+ setLogoTheme() {
1433
+ if (this.source && this.source.dark && this.source.light) {
1434
+ this.source = this.platform.isDark() ? this.source.dark : this.source.light;
1435
+ }
1436
+ }
1379
1437
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLogoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1380
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPLogoComponent, isStandalone: true, selector: "axp-logo", inputs: { source: "source" }, host: { classAttribute: "ax-flex ax-justify-center" }, ngImport: i0, template: "@switch (logoType) {\n@case ('text') {\n<span class=\"ax-font-bold ax-select-none\">{{ source.text }}</span>\n}\n@case ('url') {\n<ax-image [src]=\"source.url\"></ax-image>\n} @case ('iconClass') {\n<ax-icon class=\"{{ source.classIcon }}\"></ax-icon>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n}\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i2.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }] }); }
1438
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPLogoComponent, isStandalone: true, selector: "axp-logo", inputs: { source: "source" }, host: { classAttribute: "ax-flex ax-justify-center" }, usesOnChanges: true, ngImport: i0, template: "@switch (logoType) { @case ('url') {\n<ax-image [width]=\"source.width\" [height]=\"source.height\" [src]=\"source.url\"></ax-image>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n} }\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i2.AXImageComponent, selector: "ax-image", inputs: ["width", "height", "overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXDecoratorModule }] }); }
1381
1439
  }
1382
1440
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLogoComponent, decorators: [{
1383
1441
  type: Component,
1384
- args: [{ selector: 'axp-logo', imports: [CommonModule, AXImageModule, AXDecoratorModule], host: { class: 'ax-flex ax-justify-center' }, template: "@switch (logoType) {\n@case ('text') {\n<span class=\"ax-font-bold ax-select-none\">{{ source.text }}</span>\n}\n@case ('url') {\n<ax-image [src]=\"source.url\"></ax-image>\n} @case ('iconClass') {\n<ax-icon class=\"{{ source.classIcon }}\"></ax-icon>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n}\n}" }]
1442
+ args: [{ selector: 'axp-logo', imports: [CommonModule, AXImageModule, AXDecoratorModule], host: { class: 'ax-flex ax-justify-center' }, template: "@switch (logoType) { @case ('url') {\n<ax-image [width]=\"source.width\" [height]=\"source.height\" [src]=\"source.url\"></ax-image>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n} }\n" }]
1385
1443
  }], propDecorators: { source: [{
1386
1444
  type: Input
1387
1445
  }] } });
@@ -2173,21 +2231,13 @@ class AXPCommonModule {
2173
2231
  appInitService.registerTask({
2174
2232
  name: 'Settings',
2175
2233
  statusText: 'Loading Settings ...',
2234
+ priority: 1,
2176
2235
  run: async () => {
2177
2236
  await settingsService.load();
2178
2237
  },
2179
2238
  });
2180
- //
2181
- //
2182
- // appInitService.registerTask({
2183
- // name: 'Seeder',
2184
- // statusText: 'Seed Data ...',
2185
- // run: async () => {
2186
- // await seederService.seed();
2187
- // },
2188
- // });
2189
- }
2190
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCommonModule, deps: [{ token: 'AXPCommonModuleFactory' }, { token: AXPAppStartUpService }, { token: AXPSettingService }], target: i0.ɵɵFactoryTarget.NgModule }); }
2239
+ }
2240
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCommonModule, deps: [{ token: 'AXPCommonModuleFactory' }, { token: i1$1.AXPAppStartUpService }, { token: AXPSettingService }], target: i0.ɵɵFactoryTarget.NgModule }); }
2191
2241
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXPCommonModule, imports: [i3.AXPWorkflowModule, AXPopupModule,
2192
2242
  AXDateTimeModule,
2193
2243
  AXToastModule], exports: [RouterModule] }); }
@@ -2277,7 +2327,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
2277
2327
  }], ctorParameters: () => [{ type: undefined, decorators: [{
2278
2328
  type: Inject,
2279
2329
  args: ['AXPCommonModuleFactory']
2280
- }] }, { type: AXPAppStartUpService }, { type: AXPSettingService }] });
2330
+ }] }, { type: i1$1.AXPAppStartUpService }, { type: AXPSettingService }] });
2281
2331
 
2282
2332
  const ENVIRONMENT = new InjectionToken('ENVIRONMENT');
2283
2333
  const AXP_PLATFORM_CONFIG_TOKEN = new InjectionToken('AXP_PLATFORM_CONFIG_TOKEN', {
@@ -2289,11 +2339,6 @@ const AXP_PLATFORM_CONFIG_TOKEN = new InjectionToken('AXP_PLATFORM_CONFIG_TOKEN'
2289
2339
  const AXPPlatformDefaultConfigs = {
2290
2340
  copyright: 'ACoreX @ 2024',
2291
2341
  title: 'ACoreX Platform',
2292
- logo: {
2293
- dark: new AXPTextLogoConfig('ACoreX'),
2294
- light: new AXPTextLogoConfig('ACoreX'),
2295
- colored: new AXPTextLogoConfig('ACoreX'),
2296
- },
2297
2342
  network: {
2298
2343
  timeOut: 5000,
2299
2344
  },
@@ -2618,7 +2663,7 @@ class AXMOrgChartPrintPage extends AXBasePageComponent {
2618
2663
  <ax-icon class="fa-solid fa-print"> </ax-icon>
2619
2664
  </ax-button>
2620
2665
  </ax-suffix>
2621
- </ax-footer>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i2$1.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "type", "changeOnScroll", "thousandsSeparator", "padDecimalZeros", "step", "decimals", "decimalStep", "showSpinButtons", "minValue", "maxValue", "class"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.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: AXButtonModule }, { kind: "component", type: i5.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: "ngmodule", type: AXColorBoxModule }, { kind: "component", type: i6.AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "showBadge", "showValue", "showClearButton", "showIcon"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange"] }] }); }
2666
+ </ax-footer>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i2$1.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "type", "changeOnScroll", "thousandsSeparator", "padDecimalZeros", "step", "decimals", "decimalStep", "showSpinButtons", "minValue", "maxValue", "class"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.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: AXButtonModule }, { kind: "component", type: i5.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: "ngmodule", type: AXColorBoxModule }, { kind: "component", type: i6.AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "showBadge", "showValue", "showClearButton", "showIcon"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange"] }] }); }
2622
2667
  }
2623
2668
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMOrgChartPrintPage, decorators: [{
2624
2669
  type: Component,
@@ -2808,5 +2853,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
2808
2853
  * Generated bundle index. Do not edit.
2809
2854
  */
2810
2855
 
2811
- export { ALL_DEFAULT_OPERATORS, AXMWorkflowErrorHandler, AXPAppStartUpProvider, AXPAppStartUpService, AXPCleanNestedFilters, AXPClipBoardService, AXPCommonModule, AXPComponentSlotDirective, AXPComponentSlotLoaderService, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataGenerator, AXPDataProvider, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityQueryType, AXPErrorHandlerRegistryService, AXPExportService, AXPFileStorageService, AXPFileStorageStatus, AXPFileTypeProviderService, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFiltersProviderService, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPGridLayoutDirective, AXPHomePageModule, AXPHomePageService, AXPLogoComponent, AXPMenuBadgeHelper, AXPMenuProviderService, AXPMenuSearchDefinitionProvider, AXPMenuSearchProvider, AXPMenuService, AXPNavBarSlotComponent, AXPNavigateWorkflow, AXPPlatformDefaultConfigs, AXPRedirectEvent, AXPRefreshEvent, AXPRegionalService, AXPRelationshipCardinality, AXPRelationshipKind, AXPSearchCommandProvider, AXPSearchDefinitionActionBuilder, AXPSearchDefinitionBuilder, AXPSearchDefinitionProviderContext, AXPSearchDefinitionProviderService, AXPSearchService, AXPSettingDefaultValueProvider, AXPSettingDefinitionGroupBuilder, AXPSettingDefinitionProviderContext, AXPSettingDefinitionProviderService, AXPSettingDefinitionSectionBuilder, AXPSettingService, AXPStickyDirective, AXPTaskBadgeProvider, AXPTaskBadgeService, AXPToastAction, AXPWorkflowNavigateAction, AXPWorkflowRouterNavigateAction, AXP_APP_VERSION_PROVIDER, AXP_FILE_TYPE_INFO_PROVIDER, AXP_HOME_PAGES, AXP_HOME_PAGE_DEFAULT_KEY, AXP_MENU_PROVIDER, AXP_PLATFORM_CONFIG_TOKEN, AXP_ROOT_CONFIG_TOKEN, AXP_SEARCH_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SETTING_VALUE_PROVIDER, AXP_TASK_BADGE_PROVIDERS, BETWEEN_OPER, BOOLEAN_OPERATORS, CONTAINS_OPER, DATE_OPERATORS, ENDS_WITH_OPER, ENVIRONMENT, EQ_OPER, GTE_OPER, GT_OPER, IS_EMPTY_OPER, IS_NOT_EMPTY_OPER, LTE_OPER, LT_OPER, NOT_CONTAINS_OPER, NOT_EQ_OPER, NUMBER_OPERATORS, STARTS_WITH_OPER, STRING_OPERATORS, configPlatform, createAllQueryView, createQueryView, getEntityInfo, provideDynamicHomePage, resolveActionLook };
2856
+ export { ALL_DEFAULT_OPERATORS, AXMWorkflowErrorHandler, AXPCleanNestedFilters, AXPClipBoardService, AXPCommonModule, AXPComponentSlotDirective, AXPComponentSlotLoaderService, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataGenerator, AXPDataProvider, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityQueryType, AXPErrorHandlerRegistryService, AXPExportService, AXPFileStorageService, AXPFileStorageStatus, AXPFileTypeProviderService, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFiltersProviderService, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPGridLayoutDirective, AXPHomePageModule, AXPHomePageService, AXPLogoComponent, AXPMenuBadgeHelper, AXPMenuProviderService, AXPMenuSearchDefinitionProvider, AXPMenuSearchProvider, AXPMenuService, AXPNavBarSlotComponent, AXPNavigateWorkflow, AXPPlatformDefaultConfigs, AXPRedirectEvent, AXPRefreshEvent, AXPRegionalService, AXPRelationshipCardinality, AXPRelationshipKind, AXPSearchCommandProvider, AXPSearchDefinitionActionBuilder, AXPSearchDefinitionBuilder, AXPSearchDefinitionProviderContext, AXPSearchDefinitionProviderService, AXPSearchService, AXPSettingDefaultValueProvider, AXPSettingDefinitionGroupBuilder, AXPSettingDefinitionProviderContext, AXPSettingDefinitionProviderService, AXPSettingDefinitionSectionBuilder, AXPSettingService, AXPStickyDirective, AXPTaskBadgeProvider, AXPTaskBadgeService, AXPToastAction, AXPWorkflowNavigateAction, AXPWorkflowRouterNavigateAction, AXP_APP_VERSION_PROVIDER, AXP_FILE_TYPE_INFO_PROVIDER, AXP_HOME_PAGES, AXP_HOME_PAGE_DEFAULT_KEY, AXP_MENU_PROVIDER, AXP_PLATFORM_CONFIG_TOKEN, AXP_ROOT_CONFIG_TOKEN, AXP_SEARCH_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SETTING_VALUE_PROVIDER, AXP_TASK_BADGE_PROVIDERS, BETWEEN_OPER, BOOLEAN_OPERATORS, CONTAINS_OPER, DATE_OPERATORS, ENDS_WITH_OPER, ENVIRONMENT, EQ_OPER, GTE_OPER, GT_OPER, IS_EMPTY_OPER, IS_NOT_EMPTY_OPER, LTE_OPER, LT_OPER, NOT_CONTAINS_OPER, NOT_EQ_OPER, NUMBER_OPERATORS, STARTS_WITH_OPER, STRING_OPERATORS, configPlatform, createAllQueryView, createQueryView, getEntityInfo, provideDynamicHomePage, resolveActionLook };
2812
2857
  //# sourceMappingURL=acorex-platform-common.mjs.map