@acorex/platform 20.8.21 → 20.8.23

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.
@@ -1816,7 +1816,7 @@ declare class AXPUserAvatarComponent implements OnInit, OnDestroy {
1816
1816
  protected userInfo: _angular_core.WritableSignal<AXPUserAvatarData | null>;
1817
1817
  size: _angular_core.InputSignal<number>;
1818
1818
  userId: _angular_core.InputSignal<string>;
1819
- src: _angular_core.WritableSignal<string>;
1819
+ avatarUrl: _angular_core.WritableSignal<string>;
1820
1820
  userName: _angular_core.Signal<string>;
1821
1821
  firstName: _angular_core.Signal<string>;
1822
1822
  lastName: _angular_core.Signal<string>;
@@ -1824,19 +1824,26 @@ declare class AXPUserAvatarComponent implements OnInit, OnDestroy {
1824
1824
  isOnline: _angular_core.Signal<boolean>;
1825
1825
  avatarText: _angular_core.Signal<string>;
1826
1826
  avatarColor: _angular_core.Signal<string>;
1827
- protected hasAvatar: _angular_core.Signal<boolean>;
1827
+ protected hasAvatarUrl: _angular_core.Signal<boolean>;
1828
1828
  protected isAvatarLoaded: _angular_core.WritableSignal<boolean>;
1829
- protected isLoading: _angular_core.Signal<boolean>;
1830
- protected onImageError(event: AXHtmlEvent<ErrorEvent>): void;
1831
- protected onImageLoad(event: AXHtmlEvent<Event>): void;
1829
+ protected hasImageError: _angular_core.WritableSignal<boolean>;
1830
+ protected showImage: _angular_core.Signal<boolean>;
1831
+ protected showPlaceholder: _angular_core.Signal<boolean>;
1832
+ protected onImageError(_event: AXHtmlEvent<ErrorEvent>): void;
1833
+ protected onImageLoad(_event: AXHtmlEvent<Event>): void;
1832
1834
  ngOnInit(): void;
1833
1835
  ngOnDestroy(): void;
1834
1836
  private loadUserData;
1835
1837
  /**
1836
- * Generate avatar image source
1837
- * This is a placeholder - implement based on your actual requirements
1838
+ * Resolves avatar image URL from user data and resets load state.
1838
1839
  */
1839
1840
  private generateAvatarSrc;
1841
+ /**
1842
+ * Preloads avatar image without breaking ax-avatar content projection.
1843
+ */
1844
+ private preloadAvatar;
1845
+ private markImageAsLoaded;
1846
+ private markImageAsFailed;
1840
1847
  /**
1841
1848
  * Get initials from first and last name
1842
1849
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/platform",
3
- "version": "20.8.21",
3
+ "version": "20.8.23",
4
4
  "peerDependencies": {
5
5
  "@acorex/cdk": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0 || ^21.0.2-next.0",
6
6
  "@acorex/core": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0 || ^21.0.2-next.0",
@@ -43,14 +43,14 @@
43
43
  "types": "./domain/index.d.ts",
44
44
  "default": "./fesm2022/acorex-platform-domain.mjs"
45
45
  },
46
- "./native": {
47
- "types": "./native/index.d.ts",
48
- "default": "./fesm2022/acorex-platform-native.mjs"
49
- },
50
46
  "./runtime": {
51
47
  "types": "./runtime/index.d.ts",
52
48
  "default": "./fesm2022/acorex-platform-runtime.mjs"
53
49
  },
50
+ "./native": {
51
+ "types": "./native/index.d.ts",
52
+ "default": "./fesm2022/acorex-platform-native.mjs"
53
+ },
54
54
  "./workflow": {
55
55
  "types": "./workflow/index.d.ts",
56
56
  "default": "./fesm2022/acorex-platform-workflow.mjs"
@@ -83,13 +83,13 @@
83
83
  "types": "./layout/widgets/index.d.ts",
84
84
  "default": "./fesm2022/acorex-platform-layout-widgets.mjs"
85
85
  },
86
- "./themes/shared": {
87
- "types": "./themes/shared/index.d.ts",
88
- "default": "./fesm2022/acorex-platform-themes-shared.mjs"
89
- },
90
86
  "./themes/default": {
91
87
  "types": "./themes/default/index.d.ts",
92
88
  "default": "./fesm2022/acorex-platform-themes-default.mjs"
89
+ },
90
+ "./themes/shared": {
91
+ "types": "./themes/shared/index.d.ts",
92
+ "default": "./fesm2022/acorex-platform-themes-shared.mjs"
93
93
  }
94
94
  }
95
95
  }
@@ -1,31 +0,0 @@
1
- import * as i3 from '@acorex/components/button';
2
- import { AXButtonModule } from '@acorex/components/button';
3
- import { AXPSessionService } from '@acorex/platform/auth';
4
- import * as i1 from '@angular/common';
5
- import { CommonModule } from '@angular/common';
6
- import * as i0 from '@angular/core';
7
- import { inject, Component } from '@angular/core';
8
- import { Router } from '@angular/router';
9
-
10
- class AXPError401Component {
11
- constructor() {
12
- this.sessionService = inject(AXPSessionService);
13
- this.router = inject(Router);
14
- this.isAuthorized$ = this.sessionService.isAuthorized$;
15
- }
16
- handleHomeClick() {
17
- this.router.navigate([`/${this.sessionService.application?.name}/home`]);
18
- }
19
- handleSignInClick() {
20
- this.router.navigate([`/auth/login`]);
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPError401Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPError401Component, isStandalone: true, selector: "axp-error-401", ngImport: i0, template: "<div class=\"ax-h-full ax-flex ax-flex-col ax-gap-8 ax-items-center ax-justify-center\">\n <img class=\"ax-w-3/4 md:ax-w-1/2 lg:ax-w-1/3 xl:ax-w-1/4\" src=\"/assets/images/error/error-401.svg\"\n alt=\"Oops! Error 404. No result found.\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2 md:ax-gap-4\">\n <h1 class=\"ax-font-bold ax-text-2xl md:ax-text-4xl\">Hold on a second!</h1>\n <p class=\"md:ax-text-lg ax-text-neutral-400\">Sorry, but you are not authorized to view this page.</p>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2 md:ax-gap-4 md:ax-flex-row\">\n @if((isAuthorized$ | async))\n {\n <ax-button (onClick)=\"handleHomeClick()\" class=\"ax-px-4\" color=\"primary\" text=\"Go back to home\"></ax-button>\n } @else {\n <ax-button (onClick)=\"handleSignInClick()\" class=\"ax-px-4\" color=\"primary\" text=\"Sign Up / Sign In\"></ax-button>\n }\n <ax-button class=\"ax-px-4\" [color]=\"'default'\" text=\"Contact us\"></ax-button>\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.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: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPError401Component, decorators: [{
26
- type: Component,
27
- args: [{ selector: 'axp-error-401', imports: [AXButtonModule, CommonModule], template: "<div class=\"ax-h-full ax-flex ax-flex-col ax-gap-8 ax-items-center ax-justify-center\">\n <img class=\"ax-w-3/4 md:ax-w-1/2 lg:ax-w-1/3 xl:ax-w-1/4\" src=\"/assets/images/error/error-401.svg\"\n alt=\"Oops! Error 404. No result found.\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2 md:ax-gap-4\">\n <h1 class=\"ax-font-bold ax-text-2xl md:ax-text-4xl\">Hold on a second!</h1>\n <p class=\"md:ax-text-lg ax-text-neutral-400\">Sorry, but you are not authorized to view this page.</p>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2 md:ax-gap-4 md:ax-flex-row\">\n @if((isAuthorized$ | async))\n {\n <ax-button (onClick)=\"handleHomeClick()\" class=\"ax-px-4\" color=\"primary\" text=\"Go back to home\"></ax-button>\n } @else {\n <ax-button (onClick)=\"handleSignInClick()\" class=\"ax-px-4\" color=\"primary\" text=\"Sign Up / Sign In\"></ax-button>\n }\n <ax-button class=\"ax-px-4\" [color]=\"'default'\" text=\"Contact us\"></ax-button>\n </div>\n</div>" }]
28
- }] });
29
-
30
- export { AXPError401Component };
31
- //# sourceMappingURL=acorex-platform-themes-default-error-401.component-53VB-PS_.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-themes-default-error-401.component-53VB-PS_.mjs","sources":["../tmp-esm2022/themes/default/lib/pages/errors/error-401/error-401.component.js"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button\";\nimport * as i2 from \"@angular/common\";\nexport class AXPError401Component {\n constructor() {\n this.sessionService = inject(AXPSessionService);\n this.router = inject(Router);\n this.isAuthorized$ = this.sessionService.isAuthorized$;\n }\n handleHomeClick() {\n this.router.navigate([`/${this.sessionService.application?.name}/home`]);\n }\n handleSignInClick() {\n this.router.navigate([`/auth/login`]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.19\", ngImport: i0, type: AXPError401Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.19\", type: AXPError401Component, isStandalone: true, selector: \"axp-error-401\", ngImport: i0, template: \"<div class=\\\"ax-h-full ax-flex ax-flex-col ax-gap-8 ax-items-center ax-justify-center\\\">\\n <img class=\\\"ax-w-3/4 md:ax-w-1/2 lg:ax-w-1/3 xl:ax-w-1/4\\\" src=\\\"/assets/images/error/error-401.svg\\\"\\n alt=\\\"Oops! Error 404. No result found.\\\">\\n <div class=\\\"ax-flex ax-flex-col ax-items-center ax-gap-2 md:ax-gap-4\\\">\\n <h1 class=\\\"ax-font-bold ax-text-2xl md:ax-text-4xl\\\">Hold on a second!</h1>\\n <p class=\\\"md:ax-text-lg ax-text-neutral-400\\\">Sorry, but you are not authorized to view this page.</p>\\n </div>\\n <div class=\\\"ax-flex ax-flex-col ax-gap-2 md:ax-gap-4 md:ax-flex-row\\\">\\n @if((isAuthorized$ | async))\\n {\\n <ax-button (onClick)=\\\"handleHomeClick()\\\" class=\\\"ax-px-4\\\" color=\\\"primary\\\" text=\\\"Go back to home\\\"></ax-button>\\n } @else {\\n <ax-button (onClick)=\\\"handleSignInClick()\\\" class=\\\"ax-px-4\\\" color=\\\"primary\\\" text=\\\"Sign Up / Sign In\\\"></ax-button>\\n }\\n <ax-button class=\\\"ax-px-4\\\" [color]=\\\"'default'\\\" text=\\\"Contact us\\\"></ax-button>\\n </div>\\n</div>\", dependencies: [{ kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i1.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: CommonModule }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.19\", ngImport: i0, type: AXPError401Component, decorators: [{\n type: Component,\n args: [{ selector: 'axp-error-401', imports: [AXButtonModule, CommonModule], template: \"<div class=\\\"ax-h-full ax-flex ax-flex-col ax-gap-8 ax-items-center ax-justify-center\\\">\\n <img class=\\\"ax-w-3/4 md:ax-w-1/2 lg:ax-w-1/3 xl:ax-w-1/4\\\" src=\\\"/assets/images/error/error-401.svg\\\"\\n alt=\\\"Oops! Error 404. No result found.\\\">\\n <div class=\\\"ax-flex ax-flex-col ax-items-center ax-gap-2 md:ax-gap-4\\\">\\n <h1 class=\\\"ax-font-bold ax-text-2xl md:ax-text-4xl\\\">Hold on a second!</h1>\\n <p class=\\\"md:ax-text-lg ax-text-neutral-400\\\">Sorry, but you are not authorized to view this page.</p>\\n </div>\\n <div class=\\\"ax-flex ax-flex-col ax-gap-2 md:ax-gap-4 md:ax-flex-row\\\">\\n @if((isAuthorized$ | async))\\n {\\n <ax-button (onClick)=\\\"handleHomeClick()\\\" class=\\\"ax-px-4\\\" color=\\\"primary\\\" text=\\\"Go back to home\\\"></ax-button>\\n } @else {\\n <ax-button (onClick)=\\\"handleSignInClick()\\\" class=\\\"ax-px-4\\\" color=\\\"primary\\\" text=\\\"Sign Up / Sign In\\\"></ax-button>\\n }\\n <ax-button class=\\\"ax-px-4\\\" [color]=\\\"'default'\\\" text=\\\"Contact us\\\"></ax-button>\\n </div>\\n</div>\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItNDAxLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdGhlbWVzL2RlZmF1bHQvc3JjL2xpYi9wYWdlcy9lcnJvcnMvZXJyb3ItNDAxL2Vycm9yLTQwMS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RoZW1lcy9kZWZhdWx0L3NyYy9saWIvcGFnZXMvZXJyb3JzL2Vycm9yLTQwMS9lcnJvci00MDEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFPekMsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQU9VLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDM0MsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QixrQkFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO0tBUzdEO0lBUFcsZUFBZTtRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFUyxpQkFBaUI7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7K0dBWlUsb0JBQW9CO21HQUFwQixvQkFBb0IseUVDWmpDLHdpQ0FnQk0sMkNETlEsY0FBYyw2WEFBRSxZQUFZOzs0RkFFN0Isb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNJLGVBQWUsV0FFaEIsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhwLWVycm9yLTQwMScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Vycm9yLTQwMS5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW0FYQnV0dG9uTW9kdWxlLCBDb21tb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEFYUEVycm9yNDAxQ29tcG9uZW50IHtcblxuICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJvdGVjdGVkIGlzQXV0aG9yaXplZCQgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmlzQXV0aG9yaXplZCQ7XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUhvbWVDbGljaygpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC8ke3RoaXMuc2Vzc2lvblNlcnZpY2UuYXBwbGljYXRpb24/Lm5hbWV9L2hvbWVgXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlU2lnbkluQ2xpY2soKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvYXV0aC9sb2dpbmBdKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWgtZnVsbCBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC04IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgIDxpbWcgY2xhc3M9XCJheC13LTMvNCBtZDpheC13LTEvMiBsZzpheC13LTEvMyB4bDpheC13LTEvNFwiIHNyYz1cIi9hc3NldHMvaW1hZ2VzL2Vycm9yL2Vycm9yLTQwMS5zdmdcIlxuICAgICAgICBhbHQ9XCJPb3BzISBFcnJvciA0MDQuIE5vIHJlc3VsdCBmb3VuZC5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTIgbWQ6YXgtZ2FwLTRcIj5cbiAgICAgICAgPGgxIGNsYXNzPVwiYXgtZm9udC1ib2xkIGF4LXRleHQtMnhsIG1kOmF4LXRleHQtNHhsXCI+SG9sZCBvbiBhIHNlY29uZCE8L2gxPlxuICAgICAgICA8cCBjbGFzcz1cIm1kOmF4LXRleHQtbGcgYXgtdGV4dC1uZXV0cmFsLTQwMFwiPlNvcnJ5LCBidXQgeW91IGFyZSBub3QgYXV0aG9yaXplZCB0byB2aWV3IHRoaXMgcGFnZS48L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTIgbWQ6YXgtZ2FwLTQgbWQ6YXgtZmxleC1yb3dcIj5cbiAgICAgICAgQGlmKChpc0F1dGhvcml6ZWQkIHwgYXN5bmMpKVxuICAgICAgICB7XG4gICAgICAgIDxheC1idXR0b24gKG9uQ2xpY2spPVwiaGFuZGxlSG9tZUNsaWNrKClcIiBjbGFzcz1cImF4LXB4LTRcIiBjb2xvcj1cInByaW1hcnlcIiB0ZXh0PVwiR28gYmFjayB0byBob21lXCI+PC9heC1idXR0b24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8YXgtYnV0dG9uIChvbkNsaWNrKT1cImhhbmRsZVNpZ25JbkNsaWNrKClcIiBjbGFzcz1cImF4LXB4LTRcIiBjb2xvcj1cInByaW1hcnlcIiB0ZXh0PVwiU2lnbiBVcCAvIFNpZ24gSW5cIj48L2F4LWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgtcHgtNFwiIFtjb2xvcl09XCInZGVmYXVsdCdcIiB0ZXh0PVwiQ29udGFjdCB1c1wiPjwvYXgtYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+Il19"],"names":["i1","i2"],"mappings":";;;;;;;;;AAQO,MAAM,oBAAoB,CAAC;AAClC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACpC,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa;AAC9D,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAChF,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7C,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACvL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,wiCAAwiC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACtuD;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,wiCAAwiC,EAAE;AAC7oC,SAAS,CAAC,EAAE,CAAC;;;;"}