@acorex-platform/framework-client 2.0.0-next.25 → 2.0.0-next.27

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 (34) hide show
  1. package/fesm2022/acorex-platform-framework-client-common.mjs +558 -106
  2. package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-Bte8Trz3.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-DmkFxSuJ.mjs} +18 -11
  4. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-DmkFxSuJ.mjs.map +1 -0
  5. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-bCZHSHRa.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-BV5WLQVo.mjs} +2 -2
  6. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-bCZHSHRa.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-BV5WLQVo.mjs.map} +1 -1
  7. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-BRN0AcG-.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-O8zdiHRH.mjs} +2 -2
  8. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-BRN0AcG-.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-O8zdiHRH.mjs.map} +1 -1
  9. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-BXAl2p0t.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-B3-0gJTQ.mjs} +2 -2
  10. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-BXAl2p0t.mjs.map → acorex-platform-framework-client-layout-entity-file-list-popup.component-B3-0gJTQ.mjs.map} +1 -1
  11. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-Cc2kuwvV.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-CjfLUBPZ.mjs} +2 -2
  12. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-Cc2kuwvV.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-CjfLUBPZ.mjs.map} +1 -1
  13. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
  14. package/fesm2022/acorex-platform-framework-client-layout-views.mjs +24 -8
  15. package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
  16. package/fesm2022/{acorex-platform-framework-client-themes-default-error-401.component-1lfBpY_d.mjs → acorex-platform-framework-client-themes-default-error-401.component-DszlyIaw.mjs} +5 -11
  17. package/fesm2022/acorex-platform-framework-client-themes-default-error-401.component-DszlyIaw.mjs.map +1 -0
  18. package/fesm2022/{acorex-platform-framework-client-themes-default-error-404.component-BeWyRCJr.mjs → acorex-platform-framework-client-themes-default-error-404.component-BusKNAit.mjs} +5 -11
  19. package/fesm2022/acorex-platform-framework-client-themes-default-error-404.component-BusKNAit.mjs.map +1 -0
  20. package/fesm2022/{acorex-platform-framework-client-themes-default-error-offline.component-PvveUj5c.mjs → acorex-platform-framework-client-themes-default-error-offline.component-Abf14p44.mjs} +15 -4
  21. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-Abf14p44.mjs.map +1 -0
  22. package/fesm2022/acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs +19 -0
  23. package/fesm2022/acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs.map +1 -0
  24. package/fesm2022/acorex-platform-framework-client-themes-default.mjs +15 -6
  25. package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
  26. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +10 -4
  27. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
  28. package/package.json +2 -2
  29. package/types/acorex-platform-framework-client-common.d.ts +122 -7
  30. package/types/acorex-platform-framework-client-layout-entity.d.ts +1 -0
  31. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-Bte8Trz3.mjs.map +0 -1
  32. package/fesm2022/acorex-platform-framework-client-themes-default-error-401.component-1lfBpY_d.mjs.map +0 -1
  33. package/fesm2022/acorex-platform-framework-client-themes-default-error-404.component-BeWyRCJr.mjs.map +0 -1
  34. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-PvveUj5c.mjs.map +0 -1
@@ -3,18 +3,20 @@ import { AXButtonModule } from '@acorex/components/button';
3
3
  import * as i2 from '@acorex/core/translation';
4
4
  import { AXTranslationModule } from '@acorex/core/translation';
5
5
  import { AXPSessionService } from '@acorex-platform/framework-client/auth';
6
- import { AXPHomePageService } from '@acorex-platform/framework-client/common';
6
+ import { AXPHomePageService, AXPTabNavigationService } from '@acorex-platform/framework-client/common';
7
7
  import * as i1 from '@angular/common';
8
8
  import { CommonModule } from '@angular/common';
9
9
  import * as i0 from '@angular/core';
10
10
  import { inject, ChangeDetectionStrategy, Component } from '@angular/core';
11
11
  import { Router } from '@angular/router';
12
+ import { a as axpGoHomeFromErrorPage } from './acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs';
12
13
 
13
14
  class AXPError401Component {
14
15
  constructor() {
15
16
  //#region ---- Services & Dependencies ----
16
17
  this.sessionService = inject(AXPSessionService);
17
18
  this.homePageService = inject(AXPHomePageService);
19
+ this.tabNavigation = inject(AXPTabNavigationService);
18
20
  this.router = inject(Router);
19
21
  //#endregion
20
22
  //#region ---- State ----
@@ -23,15 +25,7 @@ class AXPError401Component {
23
25
  //#endregion
24
26
  //#region ---- UI Handlers ----
25
27
  async goHome() {
26
- if (this.sessionService.tenant?.id == null) {
27
- await this.router.navigate(['/auth/account/tenant-chooser']);
28
- return;
29
- }
30
- if (this.sessionService.application?.id == null) {
31
- await this.router.navigate(['/auth/account/app-chooser']);
32
- return;
33
- }
34
- await this.homePageService.navigateTo();
28
+ await axpGoHomeFromErrorPage(this.sessionService, this.router, this.tabNavigation, this.homePageService);
35
29
  }
36
30
  async signIn() {
37
31
  await this.router.navigate(['/auth/login']);
@@ -45,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
45
39
  }] });
46
40
 
47
41
  export { AXPError401Component };
48
- //# sourceMappingURL=acorex-platform-framework-client-themes-default-error-401.component-1lfBpY_d.mjs.map
42
+ //# sourceMappingURL=acorex-platform-framework-client-themes-default-error-401.component-DszlyIaw.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-framework-client-themes-default-error-401.component-DszlyIaw.mjs","sources":["../../../../../libs/framework/client/themes/default/src/lib/pages/errors/error-401/error-401.component.ts","../../../../../libs/framework/client/themes/default/src/lib/pages/errors/error-401/error-401.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPHomePageService, AXPTabNavigationService } from '@acorex-platform/framework-client/common';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { axpGoHomeFromErrorPage } from '../error-page-go-home';\n\n@Component({\n selector: 'axp-error-401',\n templateUrl: './error-401.component.html',\n styleUrls: ['./error-401.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXButtonModule, AXTranslationModule],\n})\nexport class AXPError401Component {\n //#region ---- Services & Dependencies ----\n\n private readonly sessionService = inject(AXPSessionService);\n private readonly homePageService = inject(AXPHomePageService);\n private readonly tabNavigation = inject(AXPTabNavigationService);\n private readonly router = inject(Router);\n\n //#endregion\n\n //#region ---- State ----\n\n protected readonly isAuthorized$ = this.sessionService.isAuthorized$;\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n protected async goHome(): Promise<void> {\n await axpGoHomeFromErrorPage(\n this.sessionService,\n this.router,\n this.tabNavigation,\n this.homePageService,\n );\n }\n\n protected async signIn(): Promise<void> {\n await this.router.navigate(['/auth/login']);\n }\n\n //#endregion\n}\n","<div\n class=\"axp-error-401 h-full flex flex-col gap-8 items-center justify-center bg-lightest dark:bg-darkest\"\n>\n <img\n class=\"axp-error-401__image w-3/4 md:w-1/2 lg:w-1/3 xl:w-1/4\"\n src=\"/assets/images/pages/error/401.svg\"\n [attr.alt]=\"'@general:errors.401.image-alt' | translate | async\"\n />\n <div class=\"flex flex-col items-center gap-2 md:gap-4 text-center px-4\">\n <h1 class=\"font-bold text-2xl md:text-4xl text-neutral-900 dark:text-neutral-50\">\n {{ '@general:errors.401.title' | translate | async }}\n </h1>\n <p class=\"md:text-lg text-neutral-500 dark:text-neutral-300\">\n {{ '@general:errors.401.description' | translate | async }}\n </p>\n </div>\n <div class=\"flex flex-col gap-2 md:gap-4 md:flex-row\">\n @if (isAuthorized$ | async) {\n <ax-button\n (onClick)=\"goHome()\"\n class=\"px-4\"\n color=\"primary\"\n [text]=\"'@general:errors.401.actions.go-home.title' | translate | async\"\n ></ax-button>\n } @else {\n <ax-button\n (onClick)=\"signIn()\"\n class=\"px-4\"\n color=\"primary\"\n [text]=\"'@general:errors.401.actions.sign-in.title' | translate | async\"\n ></ax-button>\n }\n </div>\n</div>\n"],"names":["i2","i3"],"mappings":";;;;;;;;;;;;;MAgBa,oBAAoB,CAAA;AAPjC,IAAA,WAAA,GAAA;;AAUmB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1C,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC5C,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC/C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;;;AAMrB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa;AAoBrE,IAAA;;;AAdW,IAAA,MAAM,MAAM,GAAA;AACpB,QAAA,MAAM,sBAAsB,CAC1B,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,eAAe,CACrB;IACH;AAEU,IAAA,MAAM,MAAM,GAAA;QACpB,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;IAC7C;8GA7BW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,yEChBjC,kvCAkCA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDpBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,qXAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEhD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACE,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,YAAY,EAAE,cAAc,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,kvCAAA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA;;;"}
@@ -3,32 +3,26 @@ import { AXButtonModule } from '@acorex/components/button';
3
3
  import * as i2 from '@acorex/core/translation';
4
4
  import { AXTranslationModule } from '@acorex/core/translation';
5
5
  import { AXPSessionService } from '@acorex-platform/framework-client/auth';
6
- import { AXPHomePageService } from '@acorex-platform/framework-client/common';
6
+ import { AXPHomePageService, AXPTabNavigationService } from '@acorex-platform/framework-client/common';
7
7
  import * as i1 from '@angular/common';
8
8
  import { CommonModule } from '@angular/common';
9
9
  import * as i0 from '@angular/core';
10
10
  import { inject, ChangeDetectionStrategy, Component } from '@angular/core';
11
11
  import { Router } from '@angular/router';
12
+ import { a as axpGoHomeFromErrorPage } from './acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs';
12
13
 
13
14
  class AXPError404Component {
14
15
  constructor() {
15
16
  //#region ---- Services & Dependencies ----
16
17
  this.sessionService = inject(AXPSessionService);
17
18
  this.homePageService = inject(AXPHomePageService);
19
+ this.tabNavigation = inject(AXPTabNavigationService);
18
20
  this.router = inject(Router);
19
21
  }
20
22
  //#endregion
21
23
  //#region ---- UI Handlers ----
22
24
  async goHome() {
23
- if (this.sessionService.tenant?.id == null) {
24
- await this.router.navigate(['/auth/account/tenant-chooser']);
25
- return;
26
- }
27
- if (this.sessionService.application?.id == null) {
28
- await this.router.navigate(['/auth/account/app-chooser']);
29
- return;
30
- }
31
- await this.homePageService.navigateTo();
25
+ await axpGoHomeFromErrorPage(this.sessionService, this.router, this.tabNavigation, this.homePageService);
32
26
  }
33
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPError404Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
28
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPError404Component, isStandalone: true, selector: "axp-error-404", ngImport: i0, template: "<div class=\"axp-error-404 h-full flex flex-col gap-8 items-center justify-center bg-lightest dark:bg-darkest\">\n <img\n class=\"axp-error-404__image w-3/4 md:w-1/2 lg:w-1/3 xl:w-1/3\"\n src=\"/assets/images/pages/error/404.svg\"\n [attr.alt]=\"'@general:errors.404.image-alt' | translate | async\"\n />\n <div class=\"flex flex-col items-center gap-2 md:gap-4 text-center px-4\">\n <h1 class=\"font-bold text-2xl md:text-4xl text-neutral-900 dark:text-neutral-50\">\n {{ '@general:errors.404.title' | translate | async }}\n </h1>\n <p class=\"md:text-lg text-neutral-500 dark:text-neutral-300\">\n {{ '@general:errors.404.description' | translate | async }}\n </p>\n </div>\n <div class=\"flex flex-col gap-2 md:gap-4 md:flex-row\">\n <ax-button\n (onClick)=\"goHome()\"\n class=\"px-4\"\n color=\"primary\"\n [text]=\"'@general:errors.404.actions.go-home.title' | translate | async\"\n ></ax-button>\n <ax-button\n class=\"px-4\"\n color=\"default\"\n [text]=\"'@general:errors.404.actions.contact-us.title' | translate | async\"\n ></ax-button>\n </div>\n</div>\n", styles: [".axp-error-404__image{filter:none}.axp-error-404__image:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){opacity:90%}:host-context(.dark) .axp-error-404__image,.dark .axp-error-404__image{filter:brightness(.92) contrast(1.05)}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -39,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
39
33
  }] });
40
34
 
41
35
  export { AXPError404Component };
42
- //# sourceMappingURL=acorex-platform-framework-client-themes-default-error-404.component-BeWyRCJr.mjs.map
36
+ //# sourceMappingURL=acorex-platform-framework-client-themes-default-error-404.component-BusKNAit.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-framework-client-themes-default-error-404.component-BusKNAit.mjs","sources":["../../../../../libs/framework/client/themes/default/src/lib/pages/errors/error-404/error-404.component.ts","../../../../../libs/framework/client/themes/default/src/lib/pages/errors/error-404/error-404.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPHomePageService, AXPTabNavigationService } from '@acorex-platform/framework-client/common';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { axpGoHomeFromErrorPage } from '../error-page-go-home';\n\n@Component({\n selector: 'axp-error-404',\n templateUrl: './error-404.component.html',\n styleUrls: ['./error-404.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXButtonModule, AXTranslationModule],\n})\nexport class AXPError404Component {\n //#region ---- Services & Dependencies ----\n\n private readonly sessionService = inject(AXPSessionService);\n private readonly homePageService = inject(AXPHomePageService);\n private readonly tabNavigation = inject(AXPTabNavigationService);\n private readonly router = inject(Router);\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n protected async goHome(): Promise<void> {\n await axpGoHomeFromErrorPage(\n this.sessionService,\n this.router,\n this.tabNavigation,\n this.homePageService,\n );\n }\n\n //#endregion\n}\n","<div class=\"axp-error-404 h-full flex flex-col gap-8 items-center justify-center bg-lightest dark:bg-darkest\">\n <img\n class=\"axp-error-404__image w-3/4 md:w-1/2 lg:w-1/3 xl:w-1/3\"\n src=\"/assets/images/pages/error/404.svg\"\n [attr.alt]=\"'@general:errors.404.image-alt' | translate | async\"\n />\n <div class=\"flex flex-col items-center gap-2 md:gap-4 text-center px-4\">\n <h1 class=\"font-bold text-2xl md:text-4xl text-neutral-900 dark:text-neutral-50\">\n {{ '@general:errors.404.title' | translate | async }}\n </h1>\n <p class=\"md:text-lg text-neutral-500 dark:text-neutral-300\">\n {{ '@general:errors.404.description' | translate | async }}\n </p>\n </div>\n <div class=\"flex flex-col gap-2 md:gap-4 md:flex-row\">\n <ax-button\n (onClick)=\"goHome()\"\n class=\"px-4\"\n color=\"primary\"\n [text]=\"'@general:errors.404.actions.go-home.title' | translate | async\"\n ></ax-button>\n <ax-button\n class=\"px-4\"\n color=\"default\"\n [text]=\"'@general:errors.404.actions.contact-us.title' | translate | async\"\n ></ax-button>\n </div>\n</div>\n"],"names":["i2","i3"],"mappings":";;;;;;;;;;;;;MAgBa,oBAAoB,CAAA;AAPjC,IAAA,WAAA,GAAA;;AAUmB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1C,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC5C,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC/C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAgBzC,IAAA;;;AAVW,IAAA,MAAM,MAAM,GAAA;AACpB,QAAA,MAAM,sBAAsB,CAC1B,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,eAAe,CACrB;IACH;8GAnBW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,yEChBjC,ioCA4BA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDdY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,qXAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEhD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACE,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,YAAY,EAAE,cAAc,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,ioCAAA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA;;;"}
@@ -2,14 +2,25 @@ import * as i3 from '@acorex/components/button';
2
2
  import { AXButtonModule } from '@acorex/components/button';
3
3
  import * as i2 from '@acorex/core/translation';
4
4
  import { AXTranslationModule } from '@acorex/core/translation';
5
+ import { AXPSessionService } from '@acorex-platform/framework-client/auth';
6
+ import { AXPHomePageService, AXPTabNavigationService } from '@acorex-platform/framework-client/common';
5
7
  import { AsyncPipe } from '@angular/common';
6
8
  import * as i0 from '@angular/core';
7
- import { ChangeDetectionStrategy, Component } from '@angular/core';
9
+ import { inject, ChangeDetectionStrategy, Component } from '@angular/core';
10
+ import { Router } from '@angular/router';
11
+ import { a as axpGoHomeFromErrorPage } from './acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs';
8
12
 
9
13
  class AXPErrorOfflineComponent {
10
- constructor() { }
14
+ constructor() {
15
+ this.sessionService = inject(AXPSessionService);
16
+ this.homePageService = inject(AXPHomePageService);
17
+ this.tabNavigation = inject(AXPTabNavigationService);
18
+ this.router = inject(Router);
19
+ }
11
20
  ngOnInit() { }
12
- goHome() { }
21
+ async goHome() {
22
+ await axpGoHomeFromErrorPage(this.sessionService, this.router, this.tabNavigation, this.homePageService);
23
+ }
13
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPErrorOfflineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
25
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPErrorOfflineComponent, isStandalone: true, selector: "axp-error-offline", ngImport: i0, template: "<div class=\"h-full flex flex-col gap-8 items-center justify-center\">\n <img class=\"w-3/4 md:w-1/2 lg:w-1/3 xl:w-1/4\" src=\"/assets/images/pages/error/offline.png\"\n [attr.alt]=\"('@general:errors.offline.image-alt' | translate | async) ?? ''\">\n <div class=\"flex flex-col items-center gap-2 md:gap-4\">\n <h1 class=\"font-bold text-2xl md:text-4xl\">{{ '@general:errors.offline.title' | translate | async }}</h1>\n <p class=\"md:text-lg text-neutral-400\">{{ '@general:errors.offline.description' | translate | async }}</p>\n\n </div>\n <div class=\"flex flex-col gap-2 md:gap-4 md:flex-row\">\n <ax-button (onClick)=\"goHome()\" class=\"px-4\" color=\"primary\" [text]=\"('@general:errors.offline.actions.go-home.title' | translate | async) ?? ''\"></ax-button>\n <ax-button class=\"px-4\" [color]=\"'default'\" [text]=\"('@general:errors.offline.actions.contact-us.title' | translate | async) ?? ''\"></ax-button>\n </div>\n</div>\n", styles: ["/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
15
26
  }
@@ -19,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
19
30
  }], ctorParameters: () => [] });
20
31
 
21
32
  export { AXPErrorOfflineComponent };
22
- //# sourceMappingURL=acorex-platform-framework-client-themes-default-error-offline.component-PvveUj5c.mjs.map
33
+ //# sourceMappingURL=acorex-platform-framework-client-themes-default-error-offline.component-Abf14p44.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-framework-client-themes-default-error-offline.component-Abf14p44.mjs","sources":["../../../../../libs/framework/client/themes/default/src/lib/pages/errors/error-offline/error-offline.component.ts","../../../../../libs/framework/client/themes/default/src/lib/pages/errors/error-offline/error-offline.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPHomePageService, AXPTabNavigationService } from '@acorex-platform/framework-client/common';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, OnInit, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { axpGoHomeFromErrorPage } from '../error-page-go-home';\n\n@Component({\n selector: 'axp-error-offline',\n templateUrl: './error-offline.component.html',\n styleUrls: ['./error-offline.component.css'],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [AXButtonModule, AXTranslationModule, AsyncPipe]\n})\nexport class AXPErrorOfflineComponent implements OnInit {\n private readonly sessionService = inject(AXPSessionService);\n private readonly homePageService = inject(AXPHomePageService);\n private readonly tabNavigation = inject(AXPTabNavigationService);\n private readonly router = inject(Router);\n\n constructor() {}\n ngOnInit(): void {}\n\n async goHome(): Promise<void> {\n await axpGoHomeFromErrorPage(\n this.sessionService,\n this.router,\n this.tabNavigation,\n this.homePageService,\n );\n }\n}\n","<div class=\"h-full flex flex-col gap-8 items-center justify-center\">\n <img class=\"w-3/4 md:w-1/2 lg:w-1/3 xl:w-1/4\" src=\"/assets/images/pages/error/offline.png\"\n [attr.alt]=\"('@general:errors.offline.image-alt' | translate | async) ?? ''\">\n <div class=\"flex flex-col items-center gap-2 md:gap-4\">\n <h1 class=\"font-bold text-2xl md:text-4xl\">{{ '@general:errors.offline.title' | translate | async }}</h1>\n <p class=\"md:text-lg text-neutral-400\">{{ '@general:errors.offline.description' | translate | async }}</p>\n\n </div>\n <div class=\"flex flex-col gap-2 md:gap-4 md:flex-row\">\n <ax-button (onClick)=\"goHome()\" class=\"px-4\" color=\"primary\" [text]=\"('@general:errors.offline.actions.go-home.title' | translate | async) ?? ''\"></ax-button>\n <ax-button class=\"px-4\" [color]=\"'default'\" [text]=\"('@general:errors.offline.actions.contact-us.title' | translate | async) ?? ''\"></ax-button>\n </div>\n</div>\n"],"names":["i1"],"mappings":";;;;;;;;;;;;MAgBa,wBAAwB,CAAA;AAMnC,IAAA,WAAA,GAAA;AALiB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1C,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC5C,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC/C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAEzB;AACf,IAAA,QAAQ,KAAU;AAElB,IAAA,MAAM,MAAM,GAAA;AACV,QAAA,MAAM,sBAAsB,CAC1B,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,eAAe,CACrB;IACH;8GAhBW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,6EChBrC,i+BAaA,EAAA,MAAA,EAAA,CAAA,qEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDCc,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,0FAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA,CAAA;;2FAE/C,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;+BACI,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,KAAK,EAAA,OAAA,EACrC,CAAC,cAAc,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,i+BAAA,EAAA,MAAA,EAAA,CAAA,qEAAA,CAAA,EAAA;;;"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Leaves a 401/404/offline page for Home and removes that error tab.
3
+ * The tab must not stay in the strip after Go home.
4
+ */
5
+ async function axpGoHomeFromErrorPage(sessionService, router, tabNavigation, homePageService) {
6
+ if (sessionService.tenant?.id == null) {
7
+ await router.navigate(['/auth/account/tenant-chooser']);
8
+ return;
9
+ }
10
+ if (sessionService.application?.id == null) {
11
+ await router.navigate(['/auth/account/app-chooser']);
12
+ return;
13
+ }
14
+ tabNavigation.closeActiveErrorTab();
15
+ await homePageService.navigateTo();
16
+ }
17
+
18
+ export { axpGoHomeFromErrorPage as a };
19
+ //# sourceMappingURL=acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs","sources":["../../../../../libs/framework/client/themes/default/src/lib/pages/errors/error-page-go-home.ts"],"sourcesContent":["import { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPHomePageService, AXPTabNavigationService } from '@acorex-platform/framework-client/common';\nimport type { Router } from '@angular/router';\n\n/**\n * Leaves a 401/404/offline page for Home and removes that error tab.\n * The tab must not stay in the strip after Go home.\n */\nexport async function axpGoHomeFromErrorPage(\n sessionService: AXPSessionService,\n router: Router,\n tabNavigation: AXPTabNavigationService,\n homePageService: AXPHomePageService,\n): Promise<void> {\n if (sessionService.tenant?.id == null) {\n await router.navigate(['/auth/account/tenant-chooser']);\n return;\n }\n\n if (sessionService.application?.id == null) {\n await router.navigate(['/auth/account/app-chooser']);\n return;\n }\n\n tabNavigation.closeActiveErrorTab();\n await homePageService.navigateTo();\n}\n"],"names":[],"mappings":"AAIA;;;AAGG;AACI,eAAe,sBAAsB,CAC1C,cAAiC,EACjC,MAAc,EACd,aAAsC,EACtC,eAAmC,EAAA;IAEnC,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,IAAI,IAAI,EAAE;QACrC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,8BAA8B,CAAC,CAAC;QACvD;IACF;IAEA,IAAI,cAAc,CAAC,WAAW,EAAE,EAAE,IAAI,IAAI,EAAE;QAC1C,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC,CAAC;QACpD;IACF;IAEA,aAAa,CAAC,mBAAmB,EAAE;AACnC,IAAA,MAAM,eAAe,CAAC,UAAU,EAAE;AACpC;;"}
@@ -48,7 +48,7 @@ import { RouterModule, Router, ActivatedRoute, NavigationStart, NavigationEnd, R
48
48
  import { Subject, takeUntil, filter, combineLatest, firstValueFrom, take } from 'rxjs';
49
49
  import { runtimeCommandPayloadData, isThemeSurfaceClass, isRuntimeHexSurfaceClass, AXP_THEME_SURFACE_STYLES, createRandomUuid, AXPKeyboardShortcutPriority } from '@acorex-platform/framework-shared/core';
50
50
  import * as i1$2 from '@acorex/core/platform';
51
- import { AXPSettingsService, AXPCommonSettings, axpIsEntityListRoute, axpReplaceEntityListRouteQueryParams, axpIsEntityListPath, AXPTabNavigationService, AXPTabPreviewService, AXP_HOME_TAB_KEY, axpResolveTabTitleParts, AXPMenuService, AXPMenuVisibilityService, axpMenuPathsMatch, AXPPlatformBrandingService, AXPTabRouteCacheRegistry, axpResolveTabKeyFromSnapshot, axpSnapshotDeclaresTabScope, axpPathFromSnapshot, axpEntityListNavigationTabKey, axpIsTabEligibleUrl, axpResolveTabKeyFromRouteConfig, AXP_PROTECTED_ROUTE_GUARDS, AXPCommonModule } from '@acorex-platform/framework-client/common';
51
+ import { AXPSettingsService, AXPCommonSettings, axpIsEntityListRoute, axpReplaceEntityListRouteQueryParams, axpIsEntityListPath, AXPTabNavigationService, AXPTabPreviewService, AXP_HOME_TAB_KEY, axpResolveTabTitleParts, AXPMenuService, AXPMenuVisibilityService, axpMenuPathsMatch, AXPPlatformBrandingService, AXPTabRouteCacheRegistry, axpResolveTabKeyFromSnapshot, axpSnapshotDeclaresTabScope, axpPathFromSnapshot, axpEntityListNavigationTabKey, axpIsTabEligibleUrl, axpInTabErrorSourceUrl, axpResolveTabKey, axpResolveTabKeyFromRouteConfig, AXP_PROTECTED_ROUTE_GUARDS, AXPCommonModule } from '@acorex-platform/framework-client/common';
52
52
  import { DragDropModule, CdkDropList, CdkDrag, CdkDragHandle, CdkDragPreview } from '@angular/cdk/drag-drop';
53
53
  import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
54
54
  import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase } from '@acorex-platform/framework-client/layout/views';
@@ -4567,7 +4567,7 @@ class AXPEntityReuseStrategy {
4567
4567
  //#endregion
4568
4568
  //#region ---- Detach / Attach ----
4569
4569
  shouldDetach(route) {
4570
- if (!this.routeCache.isEnabled() || !this.isTabCacheRoute(route)) {
4570
+ if (!this.routeCache.isEnabled() || !this.routeCache.canCache() || !this.isTabCacheRoute(route)) {
4571
4571
  return false;
4572
4572
  }
4573
4573
  const scopedKey = this.scopedTabKeyFor(route);
@@ -4595,7 +4595,10 @@ class AXPEntityReuseStrategy {
4595
4595
  }
4596
4596
  }
4597
4597
  shouldAttach(route) {
4598
- if (!this.routeCache.isEnabled() || !this.isTabCacheRoute(route)) {
4598
+ if (!this.routeCache.isEnabled() ||
4599
+ !this.routeCache.canCache() ||
4600
+ this.routeCache.isAttachSuspended() ||
4601
+ !this.isTabCacheRoute(route)) {
4599
4602
  return false;
4600
4603
  }
4601
4604
  const key = this.routeCacheKeyFor(route);
@@ -4779,6 +4782,10 @@ class AXPEntityReuseStrategy {
4779
4782
  return true;
4780
4783
  }
4781
4784
  const targetUrl = router.serializeUrl(navigation.finalUrl);
4785
+ const errorSource = axpInTabErrorSourceUrl(targetUrl);
4786
+ if (errorSource) {
4787
+ return currentScoped !== axpResolveTabKey(router, errorSource);
4788
+ }
4782
4789
  const targetPath = targetUrl.split('?')[0].split('#')[0];
4783
4790
  const futureBase = axpResolveTabKeyFromRouteConfig(router.config, targetPath) ??
4784
4791
  (targetPath.startsWith('/') ? targetPath : `/${targetPath}`);
@@ -4850,18 +4857,20 @@ function routesFacory() {
4850
4857
  },
4851
4858
  {
4852
4859
  path: 'error',
4860
+ data: { rootLayout: true },
4861
+ loadComponent: () => Promise.resolve().then(function () { return rootLayout_component; }).then((c) => c.AXPRootLayoutComponent),
4853
4862
  children: [
4854
4863
  {
4855
4864
  path: 'offline',
4856
- loadComponent: () => import('./acorex-platform-framework-client-themes-default-error-offline.component-PvveUj5c.mjs').then((c) => c.AXPErrorOfflineComponent),
4865
+ loadComponent: () => import('./acorex-platform-framework-client-themes-default-error-offline.component-Abf14p44.mjs').then((c) => c.AXPErrorOfflineComponent),
4857
4866
  },
4858
4867
  {
4859
4868
  path: '404',
4860
- loadComponent: () => import('./acorex-platform-framework-client-themes-default-error-404.component-BeWyRCJr.mjs').then((c) => c.AXPError404Component),
4869
+ loadComponent: () => import('./acorex-platform-framework-client-themes-default-error-404.component-BusKNAit.mjs').then((c) => c.AXPError404Component),
4861
4870
  },
4862
4871
  {
4863
4872
  path: '401',
4864
- loadComponent: () => import('./acorex-platform-framework-client-themes-default-error-401.component-1lfBpY_d.mjs').then((c) => c.AXPError401Component),
4873
+ loadComponent: () => import('./acorex-platform-framework-client-themes-default-error-401.component-DszlyIaw.mjs').then((c) => c.AXPError401Component),
4865
4874
  },
4866
4875
  ],
4867
4876
  },