@acorex/components 21.0.3-next.21 → 21.0.3-next.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-components-conversation2.mjs +2253 -2237
- package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +2 -2
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +1 -1
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +5 -6
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +2 -2
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +2 -2
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/package.json +3 -3
- package/types/acorex-components-conversation2.d.ts +3 -3
|
@@ -47,7 +47,7 @@ class AXLoadingSpinnerComponent {
|
|
|
47
47
|
@if (text) {
|
|
48
48
|
<span> {{ text }} </span>
|
|
49
49
|
}
|
|
50
|
-
`, isInline: true, styles: ["@layer components{ax-loading-spinner .ax-loader{box-sizing:border-box;animation:var(--animate-spin,spin 1s linear infinite);border-color:var(--ax-comp-bg);border-radius:3.40282e38px;margin:auto;display:inline-block;border-bottom-color:#0000!important}ax-loading-spinner.ax-white .ax-loader{border-color:var(--color-white,#fff)}ax-loading-spinner.ax-default .ax-loader{border-color:var(--color-black,#000)}ax-loading-spinner.ax-default .ax-loader:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){border-color:var(--color-white,#fff)}ax-loading-spinner.ax-black .ax-loader{border-color:var(--color-black,#000)}}@keyframes spin{to{transform:rotate(360deg)}}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
50
|
+
`, isInline: true, styles: ["@layer components{ax-loading-spinner{display:flex}ax-loading-spinner .ax-loader{box-sizing:border-box;animation:var(--animate-spin,spin 1s linear infinite);border-color:var(--ax-comp-bg);border-radius:3.40282e38px;margin:auto;display:inline-block;border-bottom-color:#0000!important}ax-loading-spinner.ax-white .ax-loader{border-color:var(--color-white,#fff)}ax-loading-spinner.ax-default .ax-loader{border-color:var(--color-black,#000)}ax-loading-spinner.ax-default .ax-loader:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){border-color:var(--color-white,#fff)}ax-loading-spinner.ax-black .ax-loader{border-color:var(--color-black,#000)}}@keyframes spin{to{transform:rotate(360deg)}}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
51
51
|
}
|
|
52
52
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXLoadingSpinnerComponent, decorators: [{
|
|
53
53
|
type: Component,
|
|
@@ -62,7 +62,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
62
62
|
@if (text) {
|
|
63
63
|
<span> {{ text }} </span>
|
|
64
64
|
}
|
|
65
|
-
`, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXLoadingSpinnerComponent }], styles: ["@layer components{ax-loading-spinner .ax-loader{box-sizing:border-box;animation:var(--animate-spin,spin 1s linear infinite);border-color:var(--ax-comp-bg);border-radius:3.40282e38px;margin:auto;display:inline-block;border-bottom-color:#0000!important}ax-loading-spinner.ax-white .ax-loader{border-color:var(--color-white,#fff)}ax-loading-spinner.ax-default .ax-loader{border-color:var(--color-black,#000)}ax-loading-spinner.ax-default .ax-loader:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){border-color:var(--color-white,#fff)}ax-loading-spinner.ax-black .ax-loader{border-color:var(--color-black,#000)}}@keyframes spin{to{transform:rotate(360deg)}}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
65
|
+
`, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXLoadingSpinnerComponent }], styles: ["@layer components{ax-loading-spinner{display:flex}ax-loading-spinner .ax-loader{box-sizing:border-box;animation:var(--animate-spin,spin 1s linear infinite);border-color:var(--ax-comp-bg);border-radius:3.40282e38px;margin:auto;display:inline-block;border-bottom-color:#0000!important}ax-loading-spinner.ax-white .ax-loader{border-color:var(--color-white,#fff)}ax-loading-spinner.ax-default .ax-loader{border-color:var(--color-black,#000)}ax-loading-spinner.ax-default .ax-loader:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){border-color:var(--color-white,#fff)}ax-loading-spinner.ax-black .ax-loader{border-color:var(--color-black,#000)}}@keyframes spin{to{transform:rotate(360deg)}}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
66
66
|
}], propDecorators: { text: [{
|
|
67
67
|
type: Input
|
|
68
68
|
}], color: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-loading.mjs","sources":["../../../../packages/components/loading/src/lib/loading-spinner.component.ts","../../../../packages/components/loading/src/lib/loading.config.ts","../../../../packages/components/loading/src/lib/loading.component.ts","../../../../packages/components/loading/src/lib/loading.service.ts","../../../../packages/components/loading/src/lib/loading.directive.ts","../../../../packages/components/loading/src/lib/loading.module.ts","../../../../packages/components/loading/src/acorex-components-loading.ts"],"sourcesContent":["import { AXComponent, AXStyleColorType } from '@acorex/cdk/common';\nimport { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A loading spinner component that displays a rotating spinner icon.\n * @category Components\n */\n@Component({\n selector: 'ax-loading-spinner',\n template: `\n <span\n class=\"ax-loader\"\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [style.border-width.px]=\"stroke\"\n [style.border-color]=\"color\"\n ></span>\n @if (text) {\n <span> {{ text }} </span>\n }\n `,\n styleUrls: ['./loading-spinner.component.compiled.css'],\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXLoadingSpinnerComponent }],\n})\nexport class AXLoadingSpinnerComponent {\n /**\n * The text to display alongside the spinner.\n */\n @Input()\n text: string;\n\n /**\n * Color of the spinner. Can be a predefined style color or a custom color.\n * @defaultValue 'default'\n */\n @Input()\n color: AXStyleColorType | 'white' | 'black' = 'default';\n\n /**\n * Size of the spinner, in pixels. This determines both the width and height of the spinner.\n * @defaultValue 16\n */\n @Input() size = 16;\n\n /**\n * Thickness of the spinner's border, in pixels. This affects the visual weight of the spinner's outline.\n * @defaultValue 3\n */\n @Input() stroke = 3;\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): string {\n return `ax-${this.color}`;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\n\nexport interface AXLoadingConfig {\n spinner: unknown;\n}\n\nexport const AX_LOADING_CONFIG = new InjectionToken<AXLoadingConfig>('AX_LOADING_CONFIG', {\n providedIn: 'root',\n factory: () => AXLoadingDefaultConfig,\n});\n\nexport const AXLoadingDefaultConfig: AXLoadingConfig = {\n spinner: AXLoadingSpinnerComponent,\n};\n\nexport type PartialLoadingConfig = Partial<AXLoadingConfig>;\n\nexport function loadingConfig(config: PartialLoadingConfig = {}): AXLoadingConfig {\n const result = {\n ...AXLoadingDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport {\n CdkPortalOutlet,\n CdkPortalOutletAttachedRef,\n ComponentPortal,\n ComponentType,\n Portal,\n} from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { AXLoadingConfig, AX_LOADING_CONFIG } from './loading.config';\n\n/**\n * A component that displays a loading indicator.\n * @category Components\n */\n@Component({\n selector: 'ax-loading',\n template: ` <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttached($event)\"></ng-template> `,\n styleUrls: ['./loading.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkPortalOutlet],\n providers: [{ provide: AXComponent, useExisting: AXLoadingComponent }],\n})\nexport class AXLoadingComponent extends MXBaseComponent implements OnInit {\n private config: AXLoadingConfig = inject(AX_LOADING_CONFIG);\n\n /**\n * @ignore\n */\n protected _selectedPortal: Portal<unknown>;\n\n /**\n * Emits an event when the visibility state of the component changes.\n * @event\n */\n @Output()\n visibleChange: EventEmitter<boolean> = new EventEmitter();\n\n /**\n * @ignore\n */\n private _visible: boolean;\n\n /**\n * Determines whether the component is visible or not.\n */\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n /**\n * Sets the visibility of the component and emits a visibility change event.\n *\n * @param v - A boolean value indicating whether the component should be visible.\n */\n public set visible(v: boolean) {\n if (v != this._visible) {\n this._visible = v;\n v ? this.getHostElement().classList.remove('hidden') : this.getHostElement().classList.add('hidden');\n this.visibleChange.emit(v);\n }\n }\n\n /**\n * Specifies the type of loading indicator to display.\n * @defaultValue 'spinner'\n */\n @Input()\n type = 'spinner';\n\n /**\n * Provides additional context or data that may be used by the component.\n */\n @Input()\n context?: unknown;\n\n /**\n * @ignore\n */\n override ngOnInit() {\n super.ngOnInit();\n this._selectedPortal = new ComponentPortal(this.config.spinner as ComponentType<unknown>);\n this.cdr.markForCheck();\n }\n\n /**\n * @ignore\n */\n protected _handleAttached(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<unknown>;\n if (ref.instance && this.context) {\n Object.assign(ref.instance, this.context);\n }\n }\n}\n","import { AXOverlayService } from '@acorex/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { ComponentRef, Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, Observable, asyncScheduler } from 'rxjs';\nimport { finalize, observeOn } from 'rxjs/operators';\nimport { AXLoadingComponent } from './loading.component';\n\ntype LoadingContext = object;\ntype LoaderId = string | number; // expected enum values\nconst DEFAULT_LOADER_ID: LoaderId = '_DEFAULT';\n\ninterface LoadingOverlayEntry {\n dispose: () => void;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXLoadingService {\n // WeakMap will remove components from itself upon\n // their garbage collection by JS runtime.\n protected loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n // Both loading state maps are kept in-sync such that\n // they can be used by both sync and async methods.\n protected loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n\n private overlayService = inject(AXOverlayService);\n private document = inject(DOCUMENT);\n private activeOverlays = new Map<number, LoadingOverlayEntry>();\n\n /**\n * Shows a modal loading overlay.\n *\n * If a host element is provided via `config.location`, the overlay is attached to that\n * element; otherwise it is attached to `document.body`.\n *\n * @param config Optional configuration: host `location`, `type`, and `context` passed to the spinner instance.\n * @returns number Unique loading reference id to be used with {@link hide}.\n */\n show(config?: { location?: Element; type?: string; context?: unknown }): number {\n const ce = (config?.location ?? this.document.body) as HTMLElement;\n const id = new Date().getTime();\n const isElementLevel = ce !== this.document.body;\n\n const inputs: Record<string, unknown> = {};\n if (config?.type) inputs['type'] = config.type;\n if (config?.context) inputs['context'] = config.context;\n\n const entry: LoadingOverlayEntry = {\n dispose: () => {\n /* noop until overlay is created */\n },\n };\n this.activeOverlays.set(id, entry);\n\n this.overlayService\n .create<AXLoadingComponent>(AXLoadingComponent, {\n inputs,\n backdrop: isElementLevel\n ? { enabled: false }\n : {\n enabled: true,\n background: true,\n closeOnClick: false,\n backdropClass: 'ax-loading-overlay-backdrop',\n },\n panelClass: ['ax-loading-pane', 'animate-fadeIn'],\n })\n .then((overlayRef) => {\n if (overlayRef.instance instanceof ComponentRef) {\n const instance = overlayRef.instance.instance;\n instance.visible = true;\n instance.id = id.toString();\n }\n\n if (isElementLevel) {\n const backdrop = this.document.createElement('div');\n backdrop.classList.add('ax-loading-overlay-backdrop', 'animate-fadeIn');\n backdrop.style.position = 'absolute';\n backdrop.style.top = '0';\n backdrop.style.left = '0';\n backdrop.style.width = '100%';\n backdrop.style.height = '100%';\n\n ce.style.position = 'relative';\n\n const ov = overlayRef.overlayElement;\n if (ov) {\n ov.style.position = 'absolute';\n ce.appendChild(backdrop);\n ce.appendChild(ov);\n setTimeout(() => {\n ov.style.position = 'absolute';\n });\n }\n\n entry.dispose = () => {\n backdrop.remove();\n overlayRef.dispose();\n };\n } else {\n entry.dispose = () => overlayRef.dispose();\n }\n\n if (!this.activeOverlays.has(id)) {\n entry.dispose();\n }\n });\n\n return id;\n }\n\n /**\n * Hides a previously shown modal loading overlay.\n *\n * @param id Loading reference id returned by {@link show}.\n */\n hide(id: number): void {\n const entry = this.activeOverlays.get(id);\n if (entry) {\n entry.dispose();\n this.activeOverlays.delete(id);\n }\n }\n\n /**\n * Wraps an Observable and toggles loading for its duration.\n *\n * Starts loading before subscription settles and ends loading on finalize.\n *\n * @param source$ Source observable.\n * @param context Loading context key.\n * @param loaderId Optional id to scope multiple loaders per context.\n * @returns Observable<V> The original stream with loading side effects.\n */\n doLoading<V>(source$: Observable<V>, context: LoadingContext, loaderId?: LoaderId): Observable<V> {\n this.startLoading(context, loaderId);\n return source$.pipe(\n observeOn(asyncScheduler),\n finalize(() => this.endLoading(context, loaderId)),\n );\n }\n\n /**\n * Returns current loading state for the given context and optional loader id.\n *\n * @param context Loading context key.\n * @param loaderId Optional loader id.\n * @returns boolean True if any matching loader is active.\n */\n isLoading(context: LoadingContext, loaderId?: LoaderId): boolean {\n const loaderStates = this.loadingStates.get(context);\n\n if (!loaderStates) {\n return false;\n } else {\n if (loaderId !== undefined) {\n return loaderStates.get(this.getLoaderId(loaderId)) ?? false;\n } else {\n return [...loaderStates.values()].filter((state) => state).length > 0;\n }\n }\n }\n\n /**\n * Observable loading state for the given context and optional loader id.\n * Initializes the state if it does not exist yet.\n *\n * @param context Loading context key.\n * @param loaderId Optional loader id.\n * @returns Observable<boolean>\n */\n isLoading$(context: LoadingContext, loaderId?: LoaderId | any): Observable<boolean> {\n const coalescedLoaderId = this.getLoaderId(loaderId);\n\n if (!this.hasLoadingStates(context, coalescedLoaderId)) {\n this.setLoadingState(context, false, loaderId);\n }\n\n return this.loadingStates$.get(context).get(coalescedLoaderId);\n }\n\n /**\n * Sets loading state to true for the given context/loader id.\n *\n * @param context Loading context key.\n * @param loaderId Optional loader id.\n * @returns void\n */\n startLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, true, this.getLoaderId(loaderId));\n }\n\n /**\n * Sets loading state to false for the given context/loader id.\n *\n * @param context Loading context key.\n * @param loaderId Optional loader id.\n * @returns void\n */\n endLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, false, this.getLoaderId(loaderId));\n }\n\n /**\n * Clears all tracked loading states across all contexts.\n *\n * @returns void\n */\n clearLoadings(): void {\n this.loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n this.loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n }\n\n protected setLoadingState(context: LoadingContext, state: boolean, loaderId: LoaderId): void {\n if (!this.hasLoadingStates(context, loaderId)) {\n if (this.hasContextLoadingState(context)) {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).set(loaderId, new BehaviorSubject<boolean>(state));\n } else {\n this.loadingStates.set(context, new Map<LoaderId, boolean>([[loaderId, state]]));\n this.loadingStates$.set(\n context,\n new Map<LoaderId, BehaviorSubject<boolean>>([[loaderId, new BehaviorSubject<boolean>(state)]]),\n );\n }\n } else {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).get(loaderId).next(state);\n }\n }\n\n protected hasLoadingStates(context: LoadingContext, loaderId: LoaderId) {\n return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);\n }\n\n protected hasContextLoadingState(context: LoadingContext) {\n return this.loadingStates.has(context) && this.loadingStates$.has(context);\n }\n\n protected hasLoaderLoadingState(context: LoadingContext, loaderId: LoaderId) {\n return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);\n }\n\n protected getLoaderId(loaderId?: LoaderId): LoaderId {\n return loaderId ?? DEFAULT_LOADER_ID;\n }\n}\n","import { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { AXLoadingService } from './loading.service';\n\n// This directive places an overlay with a loading spinner over its host element\n// if isLoading equals to true and hides the overlay when isLoading becomes false.\n@Directive({ selector: '[axIsLoading]' })\nexport class AXLoadingDirective {\n protected readonly elementRef = inject(ElementRef);\n protected readonly loadingService = inject(AXLoadingService);\n\n private _hostElement!: HTMLDivElement;\n private _loadingRef!: number;\n\n private _isLoading: boolean;\n\n @Input('axIsLoading')\n public get isLoading(): boolean {\n return this._isLoading;\n }\n public set isLoading(v: boolean) {\n this._isLoading = v;\n if (v) {\n this._loadingRef = this.loadingService.show({\n location: this._hostElement,\n });\n } else {\n this.loadingService.hide(this._loadingRef);\n }\n }\n\n constructor() {\n this._hostElement = this.elementRef.nativeElement;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\nimport { AXLoadingComponent } from './loading.component';\nimport { AXLoadingDirective } from './loading.directive';\n\n@NgModule({\n imports: [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent],\n exports: [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent],\n})\nexport class AXLoadingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-loading.mjs","sources":["../../../../packages/components/loading/src/lib/loading-spinner.component.ts","../../../../packages/components/loading/src/lib/loading.config.ts","../../../../packages/components/loading/src/lib/loading.component.ts","../../../../packages/components/loading/src/lib/loading.service.ts","../../../../packages/components/loading/src/lib/loading.directive.ts","../../../../packages/components/loading/src/lib/loading.module.ts","../../../../packages/components/loading/src/acorex-components-loading.ts"],"sourcesContent":["import { AXComponent, AXStyleColorType } from '@acorex/cdk/common';\nimport { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A loading spinner component that displays a rotating spinner icon.\n * @category Components\n */\n@Component({\n selector: 'ax-loading-spinner',\n template: `\n <span\n class=\"ax-loader\"\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [style.border-width.px]=\"stroke\"\n [style.border-color]=\"color\"\n ></span>\n @if (text) {\n <span> {{ text }} </span>\n }\n `,\n styleUrls: ['./loading-spinner.component.compiled.css'],\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXLoadingSpinnerComponent }],\n})\nexport class AXLoadingSpinnerComponent {\n /**\n * The text to display alongside the spinner.\n */\n @Input()\n text: string;\n\n /**\n * Color of the spinner. Can be a predefined style color or a custom color.\n * @defaultValue 'default'\n */\n @Input()\n color: AXStyleColorType | 'white' | 'black' = 'default';\n\n /**\n * Size of the spinner, in pixels. This determines both the width and height of the spinner.\n * @defaultValue 16\n */\n @Input() size = 16;\n\n /**\n * Thickness of the spinner's border, in pixels. This affects the visual weight of the spinner's outline.\n * @defaultValue 3\n */\n @Input() stroke = 3;\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): string {\n return `ax-${this.color}`;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\n\nexport interface AXLoadingConfig {\n spinner: unknown;\n}\n\nexport const AX_LOADING_CONFIG = new InjectionToken<AXLoadingConfig>('AX_LOADING_CONFIG', {\n providedIn: 'root',\n factory: () => AXLoadingDefaultConfig,\n});\n\nexport const AXLoadingDefaultConfig: AXLoadingConfig = {\n spinner: AXLoadingSpinnerComponent,\n};\n\nexport type PartialLoadingConfig = Partial<AXLoadingConfig>;\n\nexport function loadingConfig(config: PartialLoadingConfig = {}): AXLoadingConfig {\n const result = {\n ...AXLoadingDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport {\n CdkPortalOutlet,\n CdkPortalOutletAttachedRef,\n ComponentPortal,\n ComponentType,\n Portal,\n} from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { AXLoadingConfig, AX_LOADING_CONFIG } from './loading.config';\n\n/**\n * A component that displays a loading indicator.\n * @category Components\n */\n@Component({\n selector: 'ax-loading',\n template: ` <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttached($event)\"></ng-template> `,\n styleUrls: ['./loading.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkPortalOutlet],\n providers: [{ provide: AXComponent, useExisting: AXLoadingComponent }],\n})\nexport class AXLoadingComponent extends MXBaseComponent implements OnInit {\n private config: AXLoadingConfig = inject(AX_LOADING_CONFIG);\n\n /**\n * @ignore\n */\n protected _selectedPortal: Portal<unknown>;\n\n /**\n * Emits an event when the visibility state of the component changes.\n * @event\n */\n @Output()\n visibleChange: EventEmitter<boolean> = new EventEmitter();\n\n /**\n * @ignore\n */\n private _visible: boolean;\n\n /**\n * Determines whether the component is visible or not.\n */\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n /**\n * Sets the visibility of the component and emits a visibility change event.\n *\n * @param v - A boolean value indicating whether the component should be visible.\n */\n public set visible(v: boolean) {\n if (v != this._visible) {\n this._visible = v;\n v ? this.getHostElement().classList.remove('hidden') : this.getHostElement().classList.add('hidden');\n this.visibleChange.emit(v);\n }\n }\n\n /**\n * Specifies the type of loading indicator to display.\n * @defaultValue 'spinner'\n */\n @Input()\n type = 'spinner';\n\n /**\n * Provides additional context or data that may be used by the component.\n */\n @Input()\n context?: unknown;\n\n /**\n * @ignore\n */\n override ngOnInit() {\n super.ngOnInit();\n this._selectedPortal = new ComponentPortal(this.config.spinner as ComponentType<unknown>);\n this.cdr.markForCheck();\n }\n\n /**\n * @ignore\n */\n protected _handleAttached(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<unknown>;\n if (ref.instance && this.context) {\n Object.assign(ref.instance, this.context);\n }\n }\n}\n","import { AXOverlayService } from '@acorex/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { ComponentRef, Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, Observable, asyncScheduler } from 'rxjs';\nimport { finalize, observeOn } from 'rxjs/operators';\nimport { AXLoadingComponent } from './loading.component';\n\ntype LoadingContext = object;\ntype LoaderId = string | number; // expected enum values\nconst DEFAULT_LOADER_ID: LoaderId = '_DEFAULT';\n\ninterface LoadingOverlayEntry {\n dispose: () => void;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXLoadingService {\n // WeakMap will remove components from itself upon\n // their garbage collection by JS runtime.\n protected loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n // Both loading state maps are kept in-sync such that\n // they can be used by both sync and async methods.\n protected loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n\n private overlayService = inject(AXOverlayService);\n private document = inject(DOCUMENT);\n private activeOverlays = new Map<number, LoadingOverlayEntry>();\n\n /**\n * Shows a modal loading overlay.\n *\n * If a host element is provided via `config.location`, the overlay is attached to that\n * element; otherwise it is attached to `document.body`.\n *\n * @param config Optional configuration: host `location`, `type`, and `context` passed to the spinner instance.\n * @returns number Unique loading reference id to be used with {@link hide}.\n */\n show(config?: { location?: Element; type?: string; context?: unknown }): number {\n const ce = (config?.location ?? this.document.body) as HTMLElement;\n const id = new Date().getTime();\n const isElementLevel = ce !== this.document.body;\n\n const inputs: Record<string, unknown> = {};\n if (config?.type) inputs['type'] = config.type;\n if (config?.context) inputs['context'] = config.context;\n\n const entry: LoadingOverlayEntry = {\n dispose: () => {\n /* noop until overlay is created */\n },\n };\n this.activeOverlays.set(id, entry);\n\n this.overlayService\n .create<AXLoadingComponent>(AXLoadingComponent, {\n inputs,\n backdrop: isElementLevel\n ? { enabled: false }\n : {\n enabled: true,\n background: true,\n closeOnClick: false,\n backdropClass: 'ax-loading-overlay-backdrop',\n },\n panelClass: ['ax-loading-pane', 'animate-fadeIn'],\n })\n .then((overlayRef) => {\n if (overlayRef.instance instanceof ComponentRef) {\n const instance = overlayRef.instance.instance;\n instance.visible = true;\n instance.id = id.toString();\n }\n\n if (isElementLevel) {\n const backdrop = this.document.createElement('div');\n backdrop.classList.add('ax-loading-overlay-backdrop', 'animate-fadeIn');\n backdrop.style.position = 'absolute';\n backdrop.style.top = '0';\n backdrop.style.left = '0';\n backdrop.style.width = '100%';\n backdrop.style.height = '100%';\n\n ce.style.position = 'relative';\n\n const ov = overlayRef.overlayElement;\n if (ov) {\n ov.style.position = 'absolute';\n ce.appendChild(backdrop);\n ce.appendChild(ov);\n setTimeout(() => {\n ov.style.position = 'absolute';\n });\n }\n\n entry.dispose = () => {\n backdrop.remove();\n overlayRef.dispose();\n };\n } else {\n entry.dispose = () => overlayRef.dispose();\n }\n\n if (!this.activeOverlays.has(id)) {\n entry.dispose();\n }\n });\n\n return id;\n }\n\n /**\n * Hides a previously shown modal loading overlay.\n *\n * @param id Loading reference id returned by {@link show}.\n */\n hide(id: number): void {\n const entry = this.activeOverlays.get(id);\n if (entry) {\n entry.dispose();\n this.activeOverlays.delete(id);\n }\n }\n\n /**\n * Wraps an Observable and toggles loading for its duration.\n *\n * Starts loading before subscription settles and ends loading on finalize.\n *\n * @param source$ Source observable.\n * @param context Loading context key.\n * @param loaderId Optional id to scope multiple loaders per context.\n * @returns Observable<V> The original stream with loading side effects.\n */\n doLoading<V>(source$: Observable<V>, context: LoadingContext, loaderId?: LoaderId): Observable<V> {\n this.startLoading(context, loaderId);\n return source$.pipe(\n observeOn(asyncScheduler),\n finalize(() => this.endLoading(context, loaderId)),\n );\n }\n\n /**\n * Returns current loading state for the given context and optional loader id.\n *\n * @param context Loading context key.\n * @param loaderId Optional loader id.\n * @returns boolean True if any matching loader is active.\n */\n isLoading(context: LoadingContext, loaderId?: LoaderId): boolean {\n const loaderStates = this.loadingStates.get(context);\n\n if (!loaderStates) {\n return false;\n } else {\n if (loaderId !== undefined) {\n return loaderStates.get(this.getLoaderId(loaderId)) ?? false;\n } else {\n return [...loaderStates.values()].filter((state) => state).length > 0;\n }\n }\n }\n\n /**\n * Observable loading state for the given context and optional loader id.\n * Initializes the state if it does not exist yet.\n *\n * @param context Loading context key.\n * @param loaderId Optional loader id.\n * @returns Observable<boolean>\n */\n isLoading$(context: LoadingContext, loaderId?: LoaderId | any): Observable<boolean> {\n const coalescedLoaderId = this.getLoaderId(loaderId);\n\n if (!this.hasLoadingStates(context, coalescedLoaderId)) {\n this.setLoadingState(context, false, loaderId);\n }\n\n return this.loadingStates$.get(context).get(coalescedLoaderId);\n }\n\n /**\n * Sets loading state to true for the given context/loader id.\n *\n * @param context Loading context key.\n * @param loaderId Optional loader id.\n * @returns void\n */\n startLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, true, this.getLoaderId(loaderId));\n }\n\n /**\n * Sets loading state to false for the given context/loader id.\n *\n * @param context Loading context key.\n * @param loaderId Optional loader id.\n * @returns void\n */\n endLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, false, this.getLoaderId(loaderId));\n }\n\n /**\n * Clears all tracked loading states across all contexts.\n *\n * @returns void\n */\n clearLoadings(): void {\n this.loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n this.loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n }\n\n protected setLoadingState(context: LoadingContext, state: boolean, loaderId: LoaderId): void {\n if (!this.hasLoadingStates(context, loaderId)) {\n if (this.hasContextLoadingState(context)) {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).set(loaderId, new BehaviorSubject<boolean>(state));\n } else {\n this.loadingStates.set(context, new Map<LoaderId, boolean>([[loaderId, state]]));\n this.loadingStates$.set(\n context,\n new Map<LoaderId, BehaviorSubject<boolean>>([[loaderId, new BehaviorSubject<boolean>(state)]]),\n );\n }\n } else {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).get(loaderId).next(state);\n }\n }\n\n protected hasLoadingStates(context: LoadingContext, loaderId: LoaderId) {\n return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);\n }\n\n protected hasContextLoadingState(context: LoadingContext) {\n return this.loadingStates.has(context) && this.loadingStates$.has(context);\n }\n\n protected hasLoaderLoadingState(context: LoadingContext, loaderId: LoaderId) {\n return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);\n }\n\n protected getLoaderId(loaderId?: LoaderId): LoaderId {\n return loaderId ?? DEFAULT_LOADER_ID;\n }\n}\n","import { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { AXLoadingService } from './loading.service';\n\n// This directive places an overlay with a loading spinner over its host element\n// if isLoading equals to true and hides the overlay when isLoading becomes false.\n@Directive({ selector: '[axIsLoading]' })\nexport class AXLoadingDirective {\n protected readonly elementRef = inject(ElementRef);\n protected readonly loadingService = inject(AXLoadingService);\n\n private _hostElement!: HTMLDivElement;\n private _loadingRef!: number;\n\n private _isLoading: boolean;\n\n @Input('axIsLoading')\n public get isLoading(): boolean {\n return this._isLoading;\n }\n public set isLoading(v: boolean) {\n this._isLoading = v;\n if (v) {\n this._loadingRef = this.loadingService.show({\n location: this._hostElement,\n });\n } else {\n this.loadingService.hide(this._loadingRef);\n }\n }\n\n constructor() {\n this._hostElement = this.elementRef.nativeElement;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\nimport { AXLoadingComponent } from './loading.component';\nimport { AXLoadingDirective } from './loading.directive';\n\n@NgModule({\n imports: [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent],\n exports: [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent],\n})\nexport class AXLoadingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -348,7 +348,7 @@ class AXPopupService {
|
|
|
348
348
|
closeOnBackdropClick: false,
|
|
349
349
|
data: {},
|
|
350
350
|
closeOnNavigation: true,
|
|
351
|
-
panelClass: ['animate-fadeIn', 'animate-
|
|
351
|
+
panelClass: ['animate-fadeIn', 'animate-fast'],
|
|
352
352
|
};
|
|
353
353
|
if (typeof arg2 === 'string') {
|
|
354
354
|
config.title = arg2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-popup.mjs","sources":["../../../../packages/components/popup/src/lib/popup.component.ts","../../../../packages/components/popup/src/lib/popup.component.html","../../../../packages/components/popup/src/lib/popup.interface.ts","../../../../packages/components/popup/src/lib/popup.service.ts","../../../../packages/components/popup/src/lib/popup.module.ts","../../../../packages/components/popup/src/acorex-components-popup.ts"],"sourcesContent":["import { AXPlatform } from '@acorex/core/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n DestroyRef,\n HostListener,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n signal,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\n\nimport { AXClosableComponent, AXComponent, AXComponentClosing, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';\nimport { AXDecoratorCloseButtonComponent } from '@acorex/components/decorators';\nimport { AXLoadingService } from '@acorex/components/loading';\nimport { AXComponentInputs, AXComponentService, AXComponentType } from '@acorex/core/components';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { AXPopupConfig, AXPopupContentType, AXPopupRef } from './popup.interface';\n\n/**\n * The Popup is a component which displays content in a dialog overlay\n *\n * @category Components\n */\n@Component({\n selector: 'ax-popup',\n templateUrl: './popup.component.html',\n styleUrls: ['./popup.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ax-popup-host',\n style: 'display: block; max-width: 100%;',\n },\n providers: [\n { provide: AXClosableComponent, useExisting: AXPopupComponent },\n { provide: AXComponent, useExisting: AXPopupComponent },\n ],\n imports: [AXDecoratorCloseButtonComponent, AsyncPipe, AXTranslatorPipe, AXFocusTrapDirective],\n})\nexport class AXPopupComponent extends MXBaseComponent implements OnInit, OnDestroy {\n private _zone = inject(NgZone);\n private loadingService = inject(AXLoadingService);\n private _platform = inject(AXPlatform);\n private componentService = inject(AXComponentService);\n private _router = inject(Router, { optional: true });\n private _destroyRef = inject(DestroyRef);\n\n @ViewChild('contentContainer', { read: ViewContainerRef, static: true })\n private contentContainerRef: ViewContainerRef;\n\n @ViewChild('contentContainer', { static: true })\n private contentContainerEl: { nativeElement: HTMLElement };\n\n // Inputs from overlay service\n readonly __content__ = input<AXPopupContentType>();\n readonly __config__ = input<AXPopupConfig>();\n readonly __popupRef__ = input<AXPopupRef>();\n readonly __id__ = input<number>();\n\n /**\n * Indicates whether the component is loading.\n * @defaultValue true\n */\n isLoading = true;\n\n /** @ignore */\n private _loadingId: number;\n\n /** @ignore */\n private _componentRef: ComponentRef<unknown> | null = null;\n\n /** Current title */\n protected title = signal<string>('');\n\n /** @ignore */\n protected isDragging = signal(false);\n\n /** @ignore */\n protected dragOffset = signal({ x: 0, y: 0 });\n\n /** @ignore */\n private dragStartPos = { x: 0, y: 0 };\n\n /** @ignore */\n private elementStartPos = { x: 0, y: 0 };\n\n /** @ignore */\n override ngOnInit() {\n super.ngOnInit();\n\n const config = this.__config__();\n if (this._platform.is('SM')) {\n // Disable dragging on small screens\n if (config) {\n config.draggable = false;\n }\n }\n\n this.title.set(config?.title ?? '');\n\n this._loadingId = this.loadingService.show({\n location: this.getHostElement(),\n });\n\n this._setupCloseOnNavigation();\n\n this.renderContent();\n }\n\n /**\n * Subscribes to router navigation events so the popup is closed automatically\n * when the user navigates to another route. Enabled by default; disable via\n * `closeOnNavigation: false` in the popup config.\n * @ignore\n */\n private _setupCloseOnNavigation() {\n if (!this._router) return;\n if (this.__config__()?.closeOnNavigation === false) return;\n\n this._router.events\n .pipe(\n filter((event): event is NavigationStart => event instanceof NavigationStart),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => {\n this.close();\n });\n }\n\n /** @ignore */\n private async renderContent() {\n const content = this.__content__();\n const config = this.__config__();\n\n if (!content) {\n this.loadingService.hide(this._loadingId);\n return;\n }\n\n if (content instanceof TemplateRef) {\n // Render template using ViewContainerRef (supports context)\n this.contentContainerRef.createEmbeddedView(content, {\n $implicit: config?.data,\n ref: this,\n });\n this.handleContentRendered();\n } else if (typeof content === 'function') {\n // Render component\n const componentRef = this.componentService.createFromComponent(content as AXComponentType<unknown>);\n this._componentRef = componentRef;\n\n // Expose component instance to the popup ref\n const popupRef = this.__popupRef__();\n if (popupRef) {\n popupRef.componentInstance = componentRef.instance;\n }\n\n // Get component input definitions to check before setting inputs\n const inputDefs = (componentRef.componentType as unknown as { ɵcmp?: { inputs?: Record<string, unknown> } })?.ɵcmp\n ?.inputs;\n\n // Set data inputs (only if the component has the input defined)\n if (config?.data && typeof config.data === 'object') {\n Object.entries(config.data).forEach(([key, value]) => {\n (componentRef.instance as Record<string, unknown>)[key] = value;\n });\n }\n\n if (config?.inputs && typeof config.inputs === 'object') {\n Object.entries(config.inputs).forEach(([key, value]) => {\n if (inputDefs && key in inputDefs) {\n componentRef.setInput(key, value);\n }\n });\n }\n\n // Set popup reference (only if the component has this input)\n if (inputDefs && '__popup__' in inputDefs) {\n componentRef.setInput('__popup__', this.__popupRef__());\n }\n\n // Move component to container\n const hostElement = componentRef.location.nativeElement;\n this.contentContainerEl.nativeElement.appendChild(hostElement);\n\n // Subscribe to close event if available\n const instance = componentRef.instance as {\n onClosed?: { subscribe: (fn: (e: { data?: unknown }) => void) => void };\n };\n if (instance.onClosed) {\n instance.onClosed.subscribe((e) => {\n this.close(e.data);\n });\n }\n\n this.handleContentRendered();\n }\n }\n\n /** @ignore */\n private handleContentRendered() {\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n const body = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-body-container');\n const content = body.children[0];\n\n if (!content || !body) return;\n\n const popHeader = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-header-container');\n const popFooter = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-footer-container');\n\n const footer = content.querySelector<HTMLDivElement>(':scope > ax-footer');\n const header = content.querySelector<HTMLDivElement>(':scope > ax-header');\n\n if (footer && popFooter) {\n popFooter.append(footer);\n }\n if (header && popHeader) {\n popHeader.innerHTML = '';\n popHeader.append(header);\n }\n this.focus();\n });\n });\n this.loadingService.hide(this._loadingId);\n this.cdr.markForCheck();\n }\n\n /** @ignore */\n @HostListener('keydown.escape')\n onKeydownHandler() {\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (this.__config__()?.closeButton && focusedOrHasFocused) {\n this.close();\n }\n }\n\n /** @ignore */\n protected _handleCloseClick() {\n this.close();\n }\n\n /** @ignore */\n ngOnDestroy() {\n this.loadingService.hide(this._loadingId);\n if (this._componentRef) {\n this._componentRef.destroy();\n this._componentRef = null;\n }\n }\n\n /**\n * Sets focus on the `.ax-popup` element within the host element after a short delay.\n */\n focus() {\n setTimeout(() => this.getHostElement().querySelector<HTMLDivElement>('.ax-popup')?.focus());\n }\n\n /**\n * Closes the popup, emitting component reference, host element, and optional data.\n * @param {unknown} [data]\n */\n close(data?: unknown) {\n const closeFn = () => {\n this.__popupRef__()?.close(data);\n };\n\n const componentInstance = this._componentRef?.instance as\n | { onClosing?: (e: AXComponentClosing) => void | Promise<void> }\n | undefined;\n\n if (typeof componentInstance?.onClosing === 'function') {\n const ee: AXComponentClosing = {\n cancel: false,\n data,\n };\n const closingResult = componentInstance.onClosing(ee);\n if (closingResult instanceof Promise) {\n closingResult.then(() => {\n if (!ee.cancel) {\n closeFn();\n }\n });\n } else {\n if (!ee.cancel) {\n closeFn();\n }\n }\n } else {\n closeFn();\n }\n }\n\n /**\n * Sets inputs on the content component.\n * @param values - Object containing input values to set\n */\n setContentInputs(values: AXComponentInputs) {\n const componentRef = this._componentRef;\n if (componentRef) {\n Object.entries(values).forEach(([key, value]) => {\n componentRef.setInput(key, value);\n });\n }\n }\n\n /**\n * Sets the popup title.\n * @param title - The new title\n */\n setTitle(title: string) {\n this.title.set(title);\n this.cdr.markForCheck();\n }\n\n // Drag functionality\n protected onDragStart(event: MouseEvent) {\n const config = this.__config__();\n if (!config?.draggable) return;\n\n this.isDragging.set(true);\n this.dragStartPos = { x: event.clientX, y: event.clientY };\n\n const popup = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup');\n if (popup) {\n const rect = popup.getBoundingClientRect();\n this.elementStartPos = { x: rect.left, y: rect.top };\n }\n\n event.preventDefault();\n }\n\n @HostListener('document:mousemove', ['$event'])\n onDragMove(event: MouseEvent) {\n if (!this.isDragging()) return;\n\n const deltaX = event.clientX - this.dragStartPos.x;\n const deltaY = event.clientY - this.dragStartPos.y;\n\n this.dragOffset.set({\n x: this.elementStartPos.x + deltaX,\n y: this.elementStartPos.y + deltaY,\n });\n }\n\n @HostListener('document:mouseup')\n onDragEnd() {\n this.isDragging.set(false);\n }\n}\n","<div class=\"ax-popup-wrapper\" aria-modal=\"true\" axFocusTrap>\n <div\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [style.position]=\"dragOffset().x || dragOffset().y ? 'fixed' : null\"\n [style.left.px]=\"dragOffset().x || null\"\n [style.top.px]=\"dragOffset().y || null\"\n [style.transform]=\"dragOffset().x || dragOffset().y ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable\"\n (mousedown)=\"onDragStart($event)\"\n >\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n @if (__config__()?.closeButton) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n </div>\n</div>\n","import { AXComponentInputs, AXComponentType } from '@acorex/core/components';\nimport { Directive, input, StaticProvider, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type AXPopupContentType = TemplateRef<unknown> | AXComponentType<unknown>;\n\nexport type AXPopupSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'fit';\n\nexport interface AXPopupConfig {\n title?: string;\n closeButton?: boolean;\n header?: boolean;\n maximizable?: boolean;\n size?: AXPopupSizeType;\n /** @deprecated Use `inputs` instead to pass data to the popup component. */\n data?: unknown;\n inputs?: unknown;\n draggable?: boolean;\n hasBackdrop?: boolean;\n backdropClass?: string;\n closeOnBackdropClick?: boolean;\n closeOnNavigation?: boolean;\n viewContainerRef?: ViewContainerRef;\n providers?: StaticProvider[];\n panelClass?: string[];\n direction?: 'rtl' | 'ltr';\n}\n\nexport interface AXPopupData {\n title: string;\n closeButton: boolean;\n header: boolean;\n maximizable: boolean;\n size: AXPopupSizeType;\n data?: unknown;\n draggable: boolean;\n content: AXPopupContentType;\n}\n\nexport interface AXPopupRef<TResult = any> {\n close: (data?: TResult) => void;\n setInputs: (values: AXComponentInputs) => void;\n setTitle: (title: string) => void;\n /** Brings this popup to the front of all other overlays */\n bringToFront: () => void;\n onClose: Subject<TResult>;\n /** The component instance rendered inside the popup (available after content is rendered) */\n componentInstance?: unknown;\n}\n\n@Directive()\nexport abstract class AXPopupComponentBase {\n __popup__ = input<AXPopupRef>();\n\n public close(data: any = null) {\n this.__popup__().close(data);\n }\n\n public setTitle(title: string) {\n this.__popup__().setTitle(title);\n }\n\n public bringToFront() {\n this.__popup__().bringToFront();\n }\n}\n","import { AXComponentClosedPromise } from '@acorex/cdk/common';\nimport { AXOverlayRef, AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { ComponentRef, inject, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupConfig, AXPopupContentType, AXPopupRef } from './popup.interface';\n\n/**\n * This is a service which you can create popup with it\n *\n * @category Components\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPopupService {\n private popupList = new Map<number, { overlay: AXOverlayRef<AXPopupComponent>; popup: AXPopupRef }>();\n private overlayService = inject(AXOverlayService);\n\n /**\n * Open popup 1\n */\n open(content: AXPopupContentType, title: string): AXComponentClosedPromise;\n /**\n * Open popup 2\n */\n open(content: AXPopupContentType, config?: AXPopupConfig): AXComponentClosedPromise;\n\n /**\n * @ignore\n */\n open(arg1: AXPopupContentType, arg2: string | AXPopupConfig): AXComponentClosedPromise {\n let config: AXPopupConfig = {\n closeButton: true,\n header: true,\n size: 'md',\n maximizable: false,\n draggable: true,\n hasBackdrop: true,\n closeOnBackdropClick: false,\n data: {},\n closeOnNavigation: true,\n panelClass: ['animate-fadeIn', 'animate-slow'],\n };\n if (typeof arg2 === 'string') {\n config.title = arg2;\n } else {\n config = Object.assign(config, arg2);\n }\n\n const promise = new AXComponentClosedPromise((resolve) => {\n this.openInternal(arg1, config).then((ref) => {\n ref.onClose.subscribe((data) => {\n if (resolve) {\n resolve({\n sender: ref.componentInstance,\n data: data,\n });\n }\n });\n });\n });\n\n return promise;\n }\n\n /**\n * Opens a popup with the specified content and configuration.\n * @param content - Component or template to display\n * @param config - Configuration options for the popup\n * @returns Promise<AXPopupRef> - Reference to the opened popup\n */\n private async openInternal<TResult = any>(\n content: AXPopupContentType,\n config: AXPopupConfig,\n ): Promise<AXPopupRef<TResult>> {\n const randomId = Math.floor(Math.random() * 100000000000);\n const onClose = new Subject<TResult>();\n\n const returnRef: AXPopupRef<TResult> = {\n close: (data) => {\n this.close(randomId, data);\n },\n setInputs: (values: AXComponentInputs) => {\n this.setInputs(randomId, values);\n },\n setTitle: (title: string) => {\n this.setTitle(randomId, title);\n },\n bringToFront: () => {\n this.bringToFront(randomId);\n },\n onClose,\n };\n\n // Build panel classes\n const panelClasses = ['ax-popup-overlay'];\n if (config.panelClass) {\n panelClasses.push(...config.panelClass);\n }\n\n const ref = await this.overlayService.create(AXPopupComponent, {\n backdrop: {\n enabled: config.hasBackdrop ?? true,\n background: true,\n closeOnClick: config.closeOnBackdropClick ?? false,\n },\n panelClass: panelClasses,\n inputs: {\n __content__: content,\n __config__: config,\n __popupRef__: returnRef,\n __id__: randomId,\n },\n });\n\n this.popupList.set(randomId, { overlay: ref, popup: returnRef });\n\n return returnRef;\n }\n\n /**\n * Closes a popup by its ID.\n * @param id - The popup ID to close\n * @param data - Optional data to pass to the close event\n */\n close<TResult = any>(id: number, data?: TResult): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.popup.onClose.next(data);\n ref.popup.onClose.complete();\n ref.overlay.dispose();\n this.popupList.delete(id);\n }\n\n /**\n * Sets input values for a popup by its ID.\n * @param id - The popup ID\n * @param values - Object containing input values to set\n */\n setInputs(id: number, values: AXComponentInputs): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setContentInputs(values);\n }\n }\n\n /**\n * Sets the title for a popup by its ID.\n * @param id - The popup ID\n * @param title - The new title\n */\n setTitle(id: number, title: string): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setTitle(title);\n }\n }\n\n /**\n * Brings a popup to the front of all other overlays.\n * @param id - The popup ID to bring to front\n */\n bringToFront(id: number): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.overlay.bringToFront();\n }\n}\n","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupService } from './popup.service';\n\nconst COMPONENT = [AXPopupComponent];\nconst MODULES = [CommonModule, AXCommonModule, AXDecoratorModule, AXTranslationModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXPopupService],\n})\nexport class AXPopupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-popup.mjs","sources":["../../../../packages/components/popup/src/lib/popup.component.ts","../../../../packages/components/popup/src/lib/popup.component.html","../../../../packages/components/popup/src/lib/popup.interface.ts","../../../../packages/components/popup/src/lib/popup.service.ts","../../../../packages/components/popup/src/lib/popup.module.ts","../../../../packages/components/popup/src/acorex-components-popup.ts"],"sourcesContent":["import { AXPlatform } from '@acorex/core/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n DestroyRef,\n HostListener,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n signal,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\n\nimport { AXClosableComponent, AXComponent, AXComponentClosing, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';\nimport { AXDecoratorCloseButtonComponent } from '@acorex/components/decorators';\nimport { AXLoadingService } from '@acorex/components/loading';\nimport { AXComponentInputs, AXComponentService, AXComponentType } from '@acorex/core/components';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { AXPopupConfig, AXPopupContentType, AXPopupRef } from './popup.interface';\n\n/**\n * The Popup is a component which displays content in a dialog overlay\n *\n * @category Components\n */\n@Component({\n selector: 'ax-popup',\n templateUrl: './popup.component.html',\n styleUrls: ['./popup.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ax-popup-host',\n style: 'display: block; max-width: 100%;',\n },\n providers: [\n { provide: AXClosableComponent, useExisting: AXPopupComponent },\n { provide: AXComponent, useExisting: AXPopupComponent },\n ],\n imports: [AXDecoratorCloseButtonComponent, AsyncPipe, AXTranslatorPipe, AXFocusTrapDirective],\n})\nexport class AXPopupComponent extends MXBaseComponent implements OnInit, OnDestroy {\n private _zone = inject(NgZone);\n private loadingService = inject(AXLoadingService);\n private _platform = inject(AXPlatform);\n private componentService = inject(AXComponentService);\n private _router = inject(Router, { optional: true });\n private _destroyRef = inject(DestroyRef);\n\n @ViewChild('contentContainer', { read: ViewContainerRef, static: true })\n private contentContainerRef: ViewContainerRef;\n\n @ViewChild('contentContainer', { static: true })\n private contentContainerEl: { nativeElement: HTMLElement };\n\n // Inputs from overlay service\n readonly __content__ = input<AXPopupContentType>();\n readonly __config__ = input<AXPopupConfig>();\n readonly __popupRef__ = input<AXPopupRef>();\n readonly __id__ = input<number>();\n\n /**\n * Indicates whether the component is loading.\n * @defaultValue true\n */\n isLoading = true;\n\n /** @ignore */\n private _loadingId: number;\n\n /** @ignore */\n private _componentRef: ComponentRef<unknown> | null = null;\n\n /** Current title */\n protected title = signal<string>('');\n\n /** @ignore */\n protected isDragging = signal(false);\n\n /** @ignore */\n protected dragOffset = signal({ x: 0, y: 0 });\n\n /** @ignore */\n private dragStartPos = { x: 0, y: 0 };\n\n /** @ignore */\n private elementStartPos = { x: 0, y: 0 };\n\n /** @ignore */\n override ngOnInit() {\n super.ngOnInit();\n\n const config = this.__config__();\n if (this._platform.is('SM')) {\n // Disable dragging on small screens\n if (config) {\n config.draggable = false;\n }\n }\n\n this.title.set(config?.title ?? '');\n\n this._loadingId = this.loadingService.show({\n location: this.getHostElement(),\n });\n\n this._setupCloseOnNavigation();\n\n this.renderContent();\n }\n\n /**\n * Subscribes to router navigation events so the popup is closed automatically\n * when the user navigates to another route. Enabled by default; disable via\n * `closeOnNavigation: false` in the popup config.\n * @ignore\n */\n private _setupCloseOnNavigation() {\n if (!this._router) return;\n if (this.__config__()?.closeOnNavigation === false) return;\n\n this._router.events\n .pipe(\n filter((event): event is NavigationStart => event instanceof NavigationStart),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => {\n this.close();\n });\n }\n\n /** @ignore */\n private async renderContent() {\n const content = this.__content__();\n const config = this.__config__();\n\n if (!content) {\n this.loadingService.hide(this._loadingId);\n return;\n }\n\n if (content instanceof TemplateRef) {\n // Render template using ViewContainerRef (supports context)\n this.contentContainerRef.createEmbeddedView(content, {\n $implicit: config?.data,\n ref: this,\n });\n this.handleContentRendered();\n } else if (typeof content === 'function') {\n // Render component\n const componentRef = this.componentService.createFromComponent(content as AXComponentType<unknown>);\n this._componentRef = componentRef;\n\n // Expose component instance to the popup ref\n const popupRef = this.__popupRef__();\n if (popupRef) {\n popupRef.componentInstance = componentRef.instance;\n }\n\n // Get component input definitions to check before setting inputs\n const inputDefs = (componentRef.componentType as unknown as { ɵcmp?: { inputs?: Record<string, unknown> } })?.ɵcmp\n ?.inputs;\n\n // Set data inputs (only if the component has the input defined)\n if (config?.data && typeof config.data === 'object') {\n Object.entries(config.data).forEach(([key, value]) => {\n (componentRef.instance as Record<string, unknown>)[key] = value;\n });\n }\n\n if (config?.inputs && typeof config.inputs === 'object') {\n Object.entries(config.inputs).forEach(([key, value]) => {\n if (inputDefs && key in inputDefs) {\n componentRef.setInput(key, value);\n }\n });\n }\n\n // Set popup reference (only if the component has this input)\n if (inputDefs && '__popup__' in inputDefs) {\n componentRef.setInput('__popup__', this.__popupRef__());\n }\n\n // Move component to container\n const hostElement = componentRef.location.nativeElement;\n this.contentContainerEl.nativeElement.appendChild(hostElement);\n\n // Subscribe to close event if available\n const instance = componentRef.instance as {\n onClosed?: { subscribe: (fn: (e: { data?: unknown }) => void) => void };\n };\n if (instance.onClosed) {\n instance.onClosed.subscribe((e) => {\n this.close(e.data);\n });\n }\n\n this.handleContentRendered();\n }\n }\n\n /** @ignore */\n private handleContentRendered() {\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n const body = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-body-container');\n const content = body.children[0];\n\n if (!content || !body) return;\n\n const popHeader = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-header-container');\n const popFooter = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-footer-container');\n\n const footer = content.querySelector<HTMLDivElement>(':scope > ax-footer');\n const header = content.querySelector<HTMLDivElement>(':scope > ax-header');\n\n if (footer && popFooter) {\n popFooter.append(footer);\n }\n if (header && popHeader) {\n popHeader.innerHTML = '';\n popHeader.append(header);\n }\n this.focus();\n });\n });\n this.loadingService.hide(this._loadingId);\n this.cdr.markForCheck();\n }\n\n /** @ignore */\n @HostListener('keydown.escape')\n onKeydownHandler() {\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (this.__config__()?.closeButton && focusedOrHasFocused) {\n this.close();\n }\n }\n\n /** @ignore */\n protected _handleCloseClick() {\n this.close();\n }\n\n /** @ignore */\n ngOnDestroy() {\n this.loadingService.hide(this._loadingId);\n if (this._componentRef) {\n this._componentRef.destroy();\n this._componentRef = null;\n }\n }\n\n /**\n * Sets focus on the `.ax-popup` element within the host element after a short delay.\n */\n focus() {\n setTimeout(() => this.getHostElement().querySelector<HTMLDivElement>('.ax-popup')?.focus());\n }\n\n /**\n * Closes the popup, emitting component reference, host element, and optional data.\n * @param {unknown} [data]\n */\n close(data?: unknown) {\n const closeFn = () => {\n this.__popupRef__()?.close(data);\n };\n\n const componentInstance = this._componentRef?.instance as\n | { onClosing?: (e: AXComponentClosing) => void | Promise<void> }\n | undefined;\n\n if (typeof componentInstance?.onClosing === 'function') {\n const ee: AXComponentClosing = {\n cancel: false,\n data,\n };\n const closingResult = componentInstance.onClosing(ee);\n if (closingResult instanceof Promise) {\n closingResult.then(() => {\n if (!ee.cancel) {\n closeFn();\n }\n });\n } else {\n if (!ee.cancel) {\n closeFn();\n }\n }\n } else {\n closeFn();\n }\n }\n\n /**\n * Sets inputs on the content component.\n * @param values - Object containing input values to set\n */\n setContentInputs(values: AXComponentInputs) {\n const componentRef = this._componentRef;\n if (componentRef) {\n Object.entries(values).forEach(([key, value]) => {\n componentRef.setInput(key, value);\n });\n }\n }\n\n /**\n * Sets the popup title.\n * @param title - The new title\n */\n setTitle(title: string) {\n this.title.set(title);\n this.cdr.markForCheck();\n }\n\n // Drag functionality\n protected onDragStart(event: MouseEvent) {\n const config = this.__config__();\n if (!config?.draggable) return;\n\n this.isDragging.set(true);\n this.dragStartPos = { x: event.clientX, y: event.clientY };\n\n const popup = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup');\n if (popup) {\n const rect = popup.getBoundingClientRect();\n this.elementStartPos = { x: rect.left, y: rect.top };\n }\n\n event.preventDefault();\n }\n\n @HostListener('document:mousemove', ['$event'])\n onDragMove(event: MouseEvent) {\n if (!this.isDragging()) return;\n\n const deltaX = event.clientX - this.dragStartPos.x;\n const deltaY = event.clientY - this.dragStartPos.y;\n\n this.dragOffset.set({\n x: this.elementStartPos.x + deltaX,\n y: this.elementStartPos.y + deltaY,\n });\n }\n\n @HostListener('document:mouseup')\n onDragEnd() {\n this.isDragging.set(false);\n }\n}\n","<div class=\"ax-popup-wrapper\" aria-modal=\"true\" axFocusTrap>\n <div\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [style.position]=\"dragOffset().x || dragOffset().y ? 'fixed' : null\"\n [style.left.px]=\"dragOffset().x || null\"\n [style.top.px]=\"dragOffset().y || null\"\n [style.transform]=\"dragOffset().x || dragOffset().y ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable\"\n (mousedown)=\"onDragStart($event)\"\n >\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n @if (__config__()?.closeButton) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n </div>\n</div>\n","import { AXComponentInputs, AXComponentType } from '@acorex/core/components';\nimport { Directive, input, StaticProvider, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type AXPopupContentType = TemplateRef<unknown> | AXComponentType<unknown>;\n\nexport type AXPopupSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'fit';\n\nexport interface AXPopupConfig {\n title?: string;\n closeButton?: boolean;\n header?: boolean;\n maximizable?: boolean;\n size?: AXPopupSizeType;\n /** @deprecated Use `inputs` instead to pass data to the popup component. */\n data?: unknown;\n inputs?: unknown;\n draggable?: boolean;\n hasBackdrop?: boolean;\n backdropClass?: string;\n closeOnBackdropClick?: boolean;\n closeOnNavigation?: boolean;\n viewContainerRef?: ViewContainerRef;\n providers?: StaticProvider[];\n panelClass?: string[];\n direction?: 'rtl' | 'ltr';\n}\n\nexport interface AXPopupData {\n title: string;\n closeButton: boolean;\n header: boolean;\n maximizable: boolean;\n size: AXPopupSizeType;\n data?: unknown;\n draggable: boolean;\n content: AXPopupContentType;\n}\n\nexport interface AXPopupRef<TResult = any> {\n close: (data?: TResult) => void;\n setInputs: (values: AXComponentInputs) => void;\n setTitle: (title: string) => void;\n /** Brings this popup to the front of all other overlays */\n bringToFront: () => void;\n onClose: Subject<TResult>;\n /** The component instance rendered inside the popup (available after content is rendered) */\n componentInstance?: unknown;\n}\n\n@Directive()\nexport abstract class AXPopupComponentBase {\n __popup__ = input<AXPopupRef>();\n\n public close(data: any = null) {\n this.__popup__().close(data);\n }\n\n public setTitle(title: string) {\n this.__popup__().setTitle(title);\n }\n\n public bringToFront() {\n this.__popup__().bringToFront();\n }\n}\n","import { AXComponentClosedPromise } from '@acorex/cdk/common';\nimport { AXOverlayRef, AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { ComponentRef, inject, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupConfig, AXPopupContentType, AXPopupRef } from './popup.interface';\n\n/**\n * This is a service which you can create popup with it\n *\n * @category Components\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPopupService {\n private popupList = new Map<number, { overlay: AXOverlayRef<AXPopupComponent>; popup: AXPopupRef }>();\n private overlayService = inject(AXOverlayService);\n\n /**\n * Open popup 1\n */\n open(content: AXPopupContentType, title: string): AXComponentClosedPromise;\n /**\n * Open popup 2\n */\n open(content: AXPopupContentType, config?: AXPopupConfig): AXComponentClosedPromise;\n\n /**\n * @ignore\n */\n open(arg1: AXPopupContentType, arg2: string | AXPopupConfig): AXComponentClosedPromise {\n let config: AXPopupConfig = {\n closeButton: true,\n header: true,\n size: 'md',\n maximizable: false,\n draggable: true,\n hasBackdrop: true,\n closeOnBackdropClick: false,\n data: {},\n closeOnNavigation: true,\n panelClass: ['animate-fadeIn', 'animate-fast'],\n };\n if (typeof arg2 === 'string') {\n config.title = arg2;\n } else {\n config = Object.assign(config, arg2);\n }\n\n const promise = new AXComponentClosedPromise((resolve) => {\n this.openInternal(arg1, config).then((ref) => {\n ref.onClose.subscribe((data) => {\n if (resolve) {\n resolve({\n sender: ref.componentInstance,\n data: data,\n });\n }\n });\n });\n });\n\n return promise;\n }\n\n /**\n * Opens a popup with the specified content and configuration.\n * @param content - Component or template to display\n * @param config - Configuration options for the popup\n * @returns Promise<AXPopupRef> - Reference to the opened popup\n */\n private async openInternal<TResult = any>(\n content: AXPopupContentType,\n config: AXPopupConfig,\n ): Promise<AXPopupRef<TResult>> {\n const randomId = Math.floor(Math.random() * 100000000000);\n const onClose = new Subject<TResult>();\n\n const returnRef: AXPopupRef<TResult> = {\n close: (data) => {\n this.close(randomId, data);\n },\n setInputs: (values: AXComponentInputs) => {\n this.setInputs(randomId, values);\n },\n setTitle: (title: string) => {\n this.setTitle(randomId, title);\n },\n bringToFront: () => {\n this.bringToFront(randomId);\n },\n onClose,\n };\n\n // Build panel classes\n const panelClasses = ['ax-popup-overlay'];\n if (config.panelClass) {\n panelClasses.push(...config.panelClass);\n }\n\n const ref = await this.overlayService.create(AXPopupComponent, {\n backdrop: {\n enabled: config.hasBackdrop ?? true,\n background: true,\n closeOnClick: config.closeOnBackdropClick ?? false,\n },\n panelClass: panelClasses,\n inputs: {\n __content__: content,\n __config__: config,\n __popupRef__: returnRef,\n __id__: randomId,\n },\n });\n\n this.popupList.set(randomId, { overlay: ref, popup: returnRef });\n\n return returnRef;\n }\n\n /**\n * Closes a popup by its ID.\n * @param id - The popup ID to close\n * @param data - Optional data to pass to the close event\n */\n close<TResult = any>(id: number, data?: TResult): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.popup.onClose.next(data);\n ref.popup.onClose.complete();\n ref.overlay.dispose();\n this.popupList.delete(id);\n }\n\n /**\n * Sets input values for a popup by its ID.\n * @param id - The popup ID\n * @param values - Object containing input values to set\n */\n setInputs(id: number, values: AXComponentInputs): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setContentInputs(values);\n }\n }\n\n /**\n * Sets the title for a popup by its ID.\n * @param id - The popup ID\n * @param title - The new title\n */\n setTitle(id: number, title: string): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setTitle(title);\n }\n }\n\n /**\n * Brings a popup to the front of all other overlays.\n * @param id - The popup ID to bring to front\n */\n bringToFront(id: number): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.overlay.bringToFront();\n }\n}\n","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupService } from './popup.service';\n\nconst COMPONENT = [AXPopupComponent];\nconst MODULES = [CommonModule, AXCommonModule, AXDecoratorModule, AXTranslationModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXPopupService],\n})\nexport class AXPopupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { MXSelectionValueComponent, MXLookComponent, AXHotkeysService, convertAr
|
|
|
2
2
|
import { AXDecoratorGenericComponent, AXDecoratorCloseButtonComponent, AXDecoratorModule } from '@acorex/components/decorators';
|
|
3
3
|
import { MXDropdownBoxBaseComponent, AXDropdownBoxComponent, AXDropdownModule } from '@acorex/components/dropdown';
|
|
4
4
|
import { AXListComponent, AXListModule } from '@acorex/components/list';
|
|
5
|
-
import { AXLoadingComponent, AXLoadingModule } from '@acorex/components/loading';
|
|
5
|
+
import { AXLoadingSpinnerComponent, AXLoadingComponent, AXLoadingModule } from '@acorex/components/loading';
|
|
6
6
|
import { AXSearchBoxComponent } from '@acorex/components/search-box';
|
|
7
7
|
import { AXTagComponent } from '@acorex/components/tag';
|
|
8
8
|
import { AXTranslatorPipe, AXTranslationModule } from '@acorex/core/translation';
|
|
@@ -324,9 +324,7 @@ class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelecti
|
|
|
324
324
|
const label = item.querySelector('.ax-label-container span');
|
|
325
325
|
if (label) {
|
|
326
326
|
const labelContainer = label.parentElement;
|
|
327
|
-
const horizontalPadding = labelContainer
|
|
328
|
-
? item.offsetWidth - labelContainer.clientWidth
|
|
329
|
-
: 0;
|
|
327
|
+
const horizontalPadding = labelContainer ? item.offsetWidth - labelContainer.clientWidth : 0;
|
|
330
328
|
contentWidth = Math.max(contentWidth, label.scrollWidth + horizontalPadding);
|
|
331
329
|
}
|
|
332
330
|
else {
|
|
@@ -436,7 +434,7 @@ class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelecti
|
|
|
436
434
|
useClass: MXSelectionBridgeService,
|
|
437
435
|
},
|
|
438
436
|
AXUnsubscriber,
|
|
439
|
-
], queries: [{ propertyName: "searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true }], viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "list", first: true, predicate: AXListComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: AXDropdownBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-dropdown-box\n [class.ax-state-multiple]=\"multiple\"\n (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n [disabled]=\"disabled\"\n [look]=\"look\"\n [popoverWidth]=\"dropdownWidth()\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div\n class=\"ax-editor ax-chips-container ax-content ax-input\"\n [class.ax-state-multiple]=\"multiple\"\n [tabindex]=\"tabIndex\"\n >\n @if (selectedItems.length === 0) {\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder | translate | async }}\n </div>\n }\n @for (item of selectedItems; track $index) {\n @if (selectedTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: item } }\"\n ></ng-template>\n } @else {\n @if (multiple) {\n <!-- <div class=\"bg-surface border-surface flex items-center justify-center gap-2 rounded-full border px-2 py-1\">\n <ax-text>{{ getDisplayText(item) | translate | async }}</ax-text>\n @if (!disabled && !readonly && multiple) {\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"></span>\n }\n </div> -->\n <ax-tag [text]=\"getDisplayText(item) | translate | async\" look=\"twotone\">\n @if (!disabled && !readonly && multiple) {\n <ax-suffix>\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"></span>\n </ax-suffix>\n }\n </ax-tag>\n } @else {\n {{ getDisplayText(item) | translate | async }}\n }\n }\n }\n </div>\n @if (selectedItems?.length && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-general-button-icon\">\n @if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <span\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': !isOpen,\n 'ax-icon-chevron-up': isOpen,\n }\"\n ></span>\n }\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div\n #panel\n class=\"ax-select-box-panel\"\n [class.ax-no-truncate]=\"!isItemTruncated()\"\n [style.min-width]=\"_dropdownWidth()\"\n >\n @if (dropdown.isActionsheetStyle) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption || placeholder || '@acorex:selectbox.popover.title' | translate | async }}</ax-title>\n <ax-close-button [icon]=\"multiple ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n @if (searchBox && (!minRecordsForSearch || _listDataSource.totalCount >= minRecordsForSearch || searchValue())) {\n <div class=\"ax-search-container\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n }\n @if (renderList()) {\n <ax-list\n [name]=\"name\"\n [ngModel]=\"value\"\n [readonly]=\"readonly\"\n [multiple]=\"multiple\"\n [textField]=\"textField\"\n [selectionMode]=\"'item'\"\n [valueField]=\"valueField\"\n [itemHeight]=\"itemHeight()\"\n [itemTemplate]=\"itemTemplate\"\n [textTemplate]=\"textTemplate\"\n [dataSource]=\"_listDataSource\"\n [style.height]=\"_dropdownHeight()\"\n [loadingTemplate]=\"loadingTemplate\"\n [isItemTruncated]=\"isItemTruncated()\"\n [showItemTooltip]=\"showItemTooltip()\"\n (onItemClick)=\"_handleItemClick($event)\"\n [emptyTemplate]=\"emptyTemplate ?? empty\"\n (onValueChanged)=\"_handleValueChanged($event)\"\n (onItemSelected)=\"_handleItemSelected($event)\"\n >\n </ax-list>\n <ng-template #empty>\n {{ '@acorex:common.general.no-result-found' | translate | async }}\n </ng-template>\n }\n\n @if (isLoading()) {\n @if (loadingTemplate) {\n <ng-template [ngTemplateOutlet]=\"loadingTemplate\"></ng-template>\n }\n }\n\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-outline-style:solid;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial}}}@layer components{ax-select-box .ax-editor-container{padding-block:0}ax-select-box .ax-editor-container.ax-state-multiple{padding-inline:var(--spacing,.25rem)}ax-select-box .ax-editor-container.ax-state-multiple .ax-placeholder{padding-inline-start:calc(var(--spacing,.25rem) * 2)}ax-select-box .ax-editor-container .ax-input,ax-select-box .ax-editor-container .ax-editor{padding-block:var(--spacing,.25rem)}ax-select-box ax-dropdown-box.ax-state-multiple{--ax-comp-editor-space-start-size:0;height:auto!important}ax-select-box .ax-chips-container{justify-content:flex-start;align-items:center;gap:var(--ax-comp-select-box-chips-gap,.25rem);min-width:0;padding-top:var(--spacing,.25rem);outline-style:var(--tw-outline-style);-webkit-user-select:none;user-select:none;outline-width:0;outline-color:#0000;flex-wrap:wrap;flex:1;display:flex;cursor:pointer!important}ax-select-box .ax-chips-container .ax-selectbox-input{opacity:0;width:0}ax-select-box .ax-chips-container ax-tag ax-prefix,ax-select-box .ax-chips-container ax-tag ax-suffix{padding:0!important}.ax-select-box-panel{height:fit-content}.ax-select-box-panel.ax-no-truncate .ax-label-container span:not(.ax-truncated){white-space:nowrap}.ax-select-box-panel .ax-select-box-loading-container{padding:calc(var(--spacing,.25rem) * 4);justify-content:center;align-items:center;display:flex}.ax-select-box-panel>ax-header .ax-icon-check{color:rgba(var(--ax-sys-color-primary-surface))}.ax-select-box-panel>ax-header.ax-solid{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-select-box-panel>ax-header.ax-solid ax-title{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-leading:calc(var(--spacing,.25rem) * 6);line-height:calc(var(--spacing,.25rem) * 6);--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}@media(max-width:40rem){.ax-select-box-panel .list-item{padding:calc(var(--spacing,.25rem) * 4)}}}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXDropdownBoxComponent, selector: "ax-dropdown-box", inputs: ["disabled", "look", "hasInput", "popoverWidth"], outputs: ["disabledChange", "onBlur", "onFocus", "onClick", "onOpened", "onClosed"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: 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: "component", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "component", type: AXListComponent, selector: "ax-list", inputs: ["id", "name", "disabled", "readonly", "valueField", "textField", "textTemplate", "disabledField", "multiple", "selectionMode", "isItemTruncated", "showItemTooltip", "dataSource", "itemHeight", "itemTemplate", "emptyTemplate", "loadingTemplate", "checkbox"], outputs: ["onValueChanged", "disabledChange", "readonlyChange", "onBlur", "onFocus", "onItemClick", "onItemSelected", "onScrolledIndexChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: AXTagComponent, selector: "ax-tag", inputs: ["color", "look", "text"], outputs: ["onClick", "onDblClick", "onContextMenu"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
437
|
+
], queries: [{ propertyName: "searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true }], viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "list", first: true, predicate: AXListComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: AXDropdownBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-dropdown-box\n [class.ax-state-multiple]=\"multiple\"\n (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n [disabled]=\"disabled\"\n [look]=\"look\"\n [popoverWidth]=\"dropdownWidth()\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div\n class=\"ax-editor ax-chips-container ax-content ax-input\"\n [class.ax-state-multiple]=\"multiple\"\n [tabindex]=\"tabIndex\"\n >\n @if (selectedItems.length === 0) {\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder | translate | async }}\n </div>\n }\n @for (item of selectedItems; track $index) {\n @if (selectedTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: item } }\"\n ></ng-template>\n } @else {\n @if (multiple) {\n <!-- <div class=\"bg-surface border-surface flex items-center justify-center gap-2 rounded-full border px-2 py-1\">\n <ax-text>{{ getDisplayText(item) | translate | async }}</ax-text>\n @if (!disabled && !readonly && multiple) {\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"></span>\n }\n </div> -->\n <ax-tag [text]=\"getDisplayText(item) | translate | async\" look=\"twotone\">\n @if (!disabled && !readonly && multiple) {\n <ax-suffix>\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"></span>\n </ax-suffix>\n }\n </ax-tag>\n } @else {\n {{ getDisplayText(item) | translate | async }}\n }\n }\n }\n </div>\n @if (selectedItems?.length && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-general-button-icon\">\n @if (isLoading()) {\n <ax-loading-spinner [size]=\"16\" [stroke]=\"1\"></ax-loading-spinner>\n } @else {\n <span\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': !isOpen,\n 'ax-icon-chevron-up': isOpen,\n }\"\n ></span>\n }\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div\n #panel\n class=\"ax-select-box-panel\"\n [class.ax-no-truncate]=\"!isItemTruncated()\"\n [style.min-width]=\"_dropdownWidth()\"\n >\n @if (dropdown.isActionsheetStyle) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption || placeholder || '@acorex:selectbox.popover.title' | translate | async }}</ax-title>\n <ax-close-button [icon]=\"multiple ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n @if (searchBox && (!minRecordsForSearch || _listDataSource.totalCount >= minRecordsForSearch || searchValue())) {\n <div class=\"ax-search-container\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n }\n @if (renderList()) {\n <ax-list\n [name]=\"name\"\n [ngModel]=\"value\"\n [readonly]=\"readonly\"\n [multiple]=\"multiple\"\n [textField]=\"textField\"\n [selectionMode]=\"'item'\"\n [valueField]=\"valueField\"\n [itemHeight]=\"itemHeight()\"\n [itemTemplate]=\"itemTemplate\"\n [textTemplate]=\"textTemplate\"\n [dataSource]=\"_listDataSource\"\n [style.height]=\"_dropdownHeight()\"\n [loadingTemplate]=\"loadingTemplate\"\n [isItemTruncated]=\"isItemTruncated()\"\n [showItemTooltip]=\"showItemTooltip()\"\n (onItemClick)=\"_handleItemClick($event)\"\n [emptyTemplate]=\"emptyTemplate ?? empty\"\n (onValueChanged)=\"_handleValueChanged($event)\"\n (onItemSelected)=\"_handleItemSelected($event)\"\n >\n </ax-list>\n <ng-template #empty>\n {{ '@acorex:common.general.no-result-found' | translate | async }}\n </ng-template>\n }\n\n @if (isLoading()) {\n @if (loadingTemplate) {\n <ng-template [ngTemplateOutlet]=\"loadingTemplate\"></ng-template>\n }\n }\n\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-outline-style:solid;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial}}}@layer components{ax-select-box .ax-editor-container{padding-block:0}ax-select-box .ax-editor-container.ax-state-multiple{padding-inline:var(--spacing,.25rem)}ax-select-box .ax-editor-container.ax-state-multiple .ax-placeholder{padding-inline-start:calc(var(--spacing,.25rem) * 2)}ax-select-box .ax-editor-container .ax-input,ax-select-box .ax-editor-container .ax-editor{padding-block:var(--spacing,.25rem)}ax-select-box ax-dropdown-box.ax-state-multiple{--ax-comp-editor-space-start-size:0;height:auto!important}ax-select-box .ax-chips-container{justify-content:flex-start;align-items:center;gap:var(--ax-comp-select-box-chips-gap,.25rem);min-width:0;padding-top:var(--spacing,.25rem);outline-style:var(--tw-outline-style);-webkit-user-select:none;user-select:none;outline-width:0;outline-color:#0000;flex-wrap:wrap;flex:1;display:flex;cursor:pointer!important}ax-select-box .ax-chips-container .ax-selectbox-input{opacity:0;width:0}ax-select-box .ax-chips-container ax-tag ax-prefix,ax-select-box .ax-chips-container ax-tag ax-suffix{padding:0!important}.ax-select-box-panel{height:fit-content}.ax-select-box-panel.ax-no-truncate .ax-label-container span:not(.ax-truncated){white-space:nowrap}.ax-select-box-panel .ax-select-box-loading-container{padding:calc(var(--spacing,.25rem) * 4);justify-content:center;align-items:center;display:flex}.ax-select-box-panel>ax-header .ax-icon-check{color:rgba(var(--ax-sys-color-primary-surface))}.ax-select-box-panel>ax-header.ax-solid{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-select-box-panel>ax-header.ax-solid ax-title{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-leading:calc(var(--spacing,.25rem) * 6);line-height:calc(var(--spacing,.25rem) * 6);--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}@media(max-width:40rem){.ax-select-box-panel .list-item{padding:calc(var(--spacing,.25rem) * 4)}}}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXDropdownBoxComponent, selector: "ax-dropdown-box", inputs: ["disabled", "look", "hasInput", "popoverWidth"], outputs: ["disabledChange", "onBlur", "onFocus", "onClick", "onOpened", "onClosed"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: 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: "component", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "component", type: AXListComponent, selector: "ax-list", inputs: ["id", "name", "disabled", "readonly", "valueField", "textField", "textTemplate", "disabledField", "multiple", "selectionMode", "isItemTruncated", "showItemTooltip", "dataSource", "itemHeight", "itemTemplate", "emptyTemplate", "loadingTemplate", "checkbox"], outputs: ["onValueChanged", "disabledChange", "readonlyChange", "onBlur", "onFocus", "onItemClick", "onItemSelected", "onScrolledIndexChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXTagComponent, selector: "ax-tag", inputs: ["color", "look", "text"], outputs: ["onClick", "onDblClick", "onContextMenu"] }, { kind: "component", type: AXLoadingSpinnerComponent, selector: "ax-loading-spinner", inputs: ["text", "color", "size", "stroke"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
440
438
|
}
|
|
441
439
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSelectBoxComponent, decorators: [{
|
|
442
440
|
type: Component,
|
|
@@ -500,7 +498,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
500
498
|
AsyncPipe,
|
|
501
499
|
AXTranslatorPipe,
|
|
502
500
|
AXTagComponent,
|
|
503
|
-
|
|
501
|
+
AXLoadingSpinnerComponent,
|
|
502
|
+
], template: "<ax-dropdown-box\n [class.ax-state-multiple]=\"multiple\"\n (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n [disabled]=\"disabled\"\n [look]=\"look\"\n [popoverWidth]=\"dropdownWidth()\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div\n class=\"ax-editor ax-chips-container ax-content ax-input\"\n [class.ax-state-multiple]=\"multiple\"\n [tabindex]=\"tabIndex\"\n >\n @if (selectedItems.length === 0) {\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder | translate | async }}\n </div>\n }\n @for (item of selectedItems; track $index) {\n @if (selectedTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: item } }\"\n ></ng-template>\n } @else {\n @if (multiple) {\n <!-- <div class=\"bg-surface border-surface flex items-center justify-center gap-2 rounded-full border px-2 py-1\">\n <ax-text>{{ getDisplayText(item) | translate | async }}</ax-text>\n @if (!disabled && !readonly && multiple) {\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"></span>\n }\n </div> -->\n <ax-tag [text]=\"getDisplayText(item) | translate | async\" look=\"twotone\">\n @if (!disabled && !readonly && multiple) {\n <ax-suffix>\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"></span>\n </ax-suffix>\n }\n </ax-tag>\n } @else {\n {{ getDisplayText(item) | translate | async }}\n }\n }\n }\n </div>\n @if (selectedItems?.length && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-general-button-icon\">\n @if (isLoading()) {\n <ax-loading-spinner [size]=\"16\" [stroke]=\"1\"></ax-loading-spinner>\n } @else {\n <span\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': !isOpen,\n 'ax-icon-chevron-up': isOpen,\n }\"\n ></span>\n }\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div\n #panel\n class=\"ax-select-box-panel\"\n [class.ax-no-truncate]=\"!isItemTruncated()\"\n [style.min-width]=\"_dropdownWidth()\"\n >\n @if (dropdown.isActionsheetStyle) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption || placeholder || '@acorex:selectbox.popover.title' | translate | async }}</ax-title>\n <ax-close-button [icon]=\"multiple ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n @if (searchBox && (!minRecordsForSearch || _listDataSource.totalCount >= minRecordsForSearch || searchValue())) {\n <div class=\"ax-search-container\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n }\n @if (renderList()) {\n <ax-list\n [name]=\"name\"\n [ngModel]=\"value\"\n [readonly]=\"readonly\"\n [multiple]=\"multiple\"\n [textField]=\"textField\"\n [selectionMode]=\"'item'\"\n [valueField]=\"valueField\"\n [itemHeight]=\"itemHeight()\"\n [itemTemplate]=\"itemTemplate\"\n [textTemplate]=\"textTemplate\"\n [dataSource]=\"_listDataSource\"\n [style.height]=\"_dropdownHeight()\"\n [loadingTemplate]=\"loadingTemplate\"\n [isItemTruncated]=\"isItemTruncated()\"\n [showItemTooltip]=\"showItemTooltip()\"\n (onItemClick)=\"_handleItemClick($event)\"\n [emptyTemplate]=\"emptyTemplate ?? empty\"\n (onValueChanged)=\"_handleValueChanged($event)\"\n (onItemSelected)=\"_handleItemSelected($event)\"\n >\n </ax-list>\n <ng-template #empty>\n {{ '@acorex:common.general.no-result-found' | translate | async }}\n </ng-template>\n }\n\n @if (isLoading()) {\n @if (loadingTemplate) {\n <ng-template [ngTemplateOutlet]=\"loadingTemplate\"></ng-template>\n }\n }\n\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-outline-style:solid;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial}}}@layer components{ax-select-box .ax-editor-container{padding-block:0}ax-select-box .ax-editor-container.ax-state-multiple{padding-inline:var(--spacing,.25rem)}ax-select-box .ax-editor-container.ax-state-multiple .ax-placeholder{padding-inline-start:calc(var(--spacing,.25rem) * 2)}ax-select-box .ax-editor-container .ax-input,ax-select-box .ax-editor-container .ax-editor{padding-block:var(--spacing,.25rem)}ax-select-box ax-dropdown-box.ax-state-multiple{--ax-comp-editor-space-start-size:0;height:auto!important}ax-select-box .ax-chips-container{justify-content:flex-start;align-items:center;gap:var(--ax-comp-select-box-chips-gap,.25rem);min-width:0;padding-top:var(--spacing,.25rem);outline-style:var(--tw-outline-style);-webkit-user-select:none;user-select:none;outline-width:0;outline-color:#0000;flex-wrap:wrap;flex:1;display:flex;cursor:pointer!important}ax-select-box .ax-chips-container .ax-selectbox-input{opacity:0;width:0}ax-select-box .ax-chips-container ax-tag ax-prefix,ax-select-box .ax-chips-container ax-tag ax-suffix{padding:0!important}.ax-select-box-panel{height:fit-content}.ax-select-box-panel.ax-no-truncate .ax-label-container span:not(.ax-truncated){white-space:nowrap}.ax-select-box-panel .ax-select-box-loading-container{padding:calc(var(--spacing,.25rem) * 4);justify-content:center;align-items:center;display:flex}.ax-select-box-panel>ax-header .ax-icon-check{color:rgba(var(--ax-sys-color-primary-surface))}.ax-select-box-panel>ax-header.ax-solid{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-select-box-panel>ax-header.ax-solid ax-title{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-leading:calc(var(--spacing,.25rem) * 6);line-height:calc(var(--spacing,.25rem) * 6);--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}@media(max-width:40rem){.ax-select-box-panel .list-item{padding:calc(var(--spacing,.25rem) * 4)}}}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
504
503
|
}], propDecorators: { isItemTruncated: [{ type: i0.Input, args: [{ isSignal: true, alias: "isItemTruncated", required: false }] }], showItemTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "showItemTooltip", required: false }] }], itemHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemHeight", required: false }] }], maxVisibleItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxVisibleItems", required: false }] }], dataSource: [{
|
|
505
504
|
type: Input
|
|
506
505
|
}], placeholder: [{
|