@acorex/components 22.3.7 → 22.3.9
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.
|
@@ -1,27 +1,74 @@
|
|
|
1
|
-
import { AXComponent, MXBaseComponent, AXClosableComponent, AXComponentClosedPromise, NXComponent, AXCommonModule } from '@acorex/cdk/common';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
|
-
import {
|
|
2
|
+
import { input, ChangeDetectionStrategy, Component, computed, Directive, inject, NgZone, viewChild, viewChildren, effect, signal, afterNextRender, TemplateRef, ViewContainerRef, HostListener, ViewChild, ViewEncapsulation, Injector, runInInjectionContext, ComponentRef, Injectable, ElementRef, afterRenderEffect, contentChild, NgModule } from '@angular/core';
|
|
3
|
+
import { MXBaseComponent, AXClosableComponent, AXComponent, AXComponentClosedPromise, NXComponent, AXCommonModule } from '@acorex/cdk/common';
|
|
4
|
+
import { AXDragHandleDirective, AXDragDirective, moveItemInArray, AX_DRAG_PARENT, AXDropListDirective } from '@acorex/cdk/drag-drop';
|
|
5
|
+
import { AXButtonComponent, AXButtonModule } from '@acorex/components/button';
|
|
6
|
+
import { DOCUMENT, NgTemplateOutlet, AsyncPipe, CommonModule } from '@angular/common';
|
|
4
7
|
import { AXOverlayService } from '@acorex/cdk/overlay';
|
|
5
8
|
import { Subject } from 'rxjs';
|
|
6
9
|
import { AXPlatform } from '@acorex/core/platform';
|
|
7
|
-
import { AXDragHandleDirective, AXDragDirective } from '@acorex/cdk/drag-drop';
|
|
8
10
|
import { AXResizableDirective } from '@acorex/cdk/resizable';
|
|
9
11
|
import { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';
|
|
10
|
-
import { AXDecoratorCloseButtonComponent, AXButtonComponent, AXButtonModule } from '@acorex/components/button';
|
|
11
|
-
import { AXDecoratorIconComponent, AXDecoratorModule } from '@acorex/components/decorators';
|
|
12
12
|
import { AXLoadingService } from '@acorex/components/loading';
|
|
13
13
|
import { AXSkeletonComponent } from '@acorex/components/skeleton';
|
|
14
14
|
import { AXTranslatorPipe, AXTranslationModule } from '@acorex/core/translation';
|
|
15
|
-
import {
|
|
15
|
+
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Windows-style window caption glyphs: minimize, maximize, restore, close.
|
|
19
|
+
*/
|
|
20
|
+
class AXPopupCaptionIconComponent {
|
|
21
|
+
constructor() {
|
|
22
|
+
this.name = input.required(/* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupCaptionIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXPopupCaptionIconComponent, isStandalone: true, selector: "ax-popup-caption-icon", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "aria-hidden": "true" }, properties: { "attr.data-name": "name()" }, classAttribute: "ax-popup-caption-icon" }, ngImport: i0, template: `
|
|
27
|
+
<svg viewBox="0 0 10 10" focusable="false">
|
|
28
|
+
@switch (name()) {
|
|
29
|
+
@case ('minimize') {
|
|
30
|
+
<path d="M1.6 5h6.8" />
|
|
31
|
+
}
|
|
32
|
+
@case ('maximize') {
|
|
33
|
+
<rect x="1.4" y="1.4" width="7.2" height="7.2" rx="1" />
|
|
34
|
+
}
|
|
35
|
+
@case ('restore') {
|
|
36
|
+
<path d="M3.15 2.85V1.4h5.45v5.45H7.15" />
|
|
37
|
+
<rect x="1.4" y="3.15" width="5.45" height="5.45" rx="0.7" />
|
|
38
|
+
}
|
|
39
|
+
@case ('close') {
|
|
40
|
+
<path d="M2.05 2.05l5.9 5.9M7.95 2.05l-5.9 5.9" />
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
</svg>
|
|
44
|
+
`, isInline: true, styles: [":host{display:inline-flex;width:12px;height:12px}svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:square;stroke-linejoin:miter}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
45
|
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type:
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupCaptionIconComponent, decorators: [{
|
|
22
47
|
type: Component,
|
|
23
|
-
args: [{ selector: 'ax-popup-
|
|
24
|
-
|
|
48
|
+
args: [{ selector: 'ax-popup-caption-icon', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
49
|
+
class: 'ax-popup-caption-icon',
|
|
50
|
+
'[attr.data-name]': 'name()',
|
|
51
|
+
'aria-hidden': 'true',
|
|
52
|
+
}, template: `
|
|
53
|
+
<svg viewBox="0 0 10 10" focusable="false">
|
|
54
|
+
@switch (name()) {
|
|
55
|
+
@case ('minimize') {
|
|
56
|
+
<path d="M1.6 5h6.8" />
|
|
57
|
+
}
|
|
58
|
+
@case ('maximize') {
|
|
59
|
+
<rect x="1.4" y="1.4" width="7.2" height="7.2" rx="1" />
|
|
60
|
+
}
|
|
61
|
+
@case ('restore') {
|
|
62
|
+
<path d="M3.15 2.85V1.4h5.45v5.45H7.15" />
|
|
63
|
+
<rect x="1.4" y="3.15" width="5.45" height="5.45" rx="0.7" />
|
|
64
|
+
}
|
|
65
|
+
@case ('close') {
|
|
66
|
+
<path d="M2.05 2.05l5.9 5.9M7.95 2.05l-5.9 5.9" />
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
</svg>
|
|
70
|
+
`, styles: [":host{display:inline-flex;width:12px;height:12px}svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:square;stroke-linejoin:miter}\n"] }]
|
|
71
|
+
}], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }] } });
|
|
25
72
|
|
|
26
73
|
const AX_POPUP_DEFAULT_RESIZE_HANDLES = [
|
|
27
74
|
'top',
|
|
@@ -37,6 +84,14 @@ class AXPopupComponentBase {
|
|
|
37
84
|
constructor() {
|
|
38
85
|
this.__popup__ = input(/* @ts-ignore */
|
|
39
86
|
...(ngDevMode ? [undefined, { debugName: "__popup__" }] : /* istanbul ignore next */ []));
|
|
87
|
+
this.popupState = computed(() => this.__popup__()?.state() ?? 'normal', /* @ts-ignore */
|
|
88
|
+
...(ngDevMode ? [{ debugName: "popupState" }] : /* istanbul ignore next */ []));
|
|
89
|
+
this.isMinimized = computed(() => this.__popup__()?.isMinimized() ?? false, /* @ts-ignore */
|
|
90
|
+
...(ngDevMode ? [{ debugName: "isMinimized" }] : /* istanbul ignore next */ []));
|
|
91
|
+
this.isMaximized = computed(() => this.__popup__()?.isMaximized() ?? false, /* @ts-ignore */
|
|
92
|
+
...(ngDevMode ? [{ debugName: "isMaximized" }] : /* istanbul ignore next */ []));
|
|
93
|
+
this.popupTitle = computed(() => this.__popup__()?.title() ?? '', /* @ts-ignore */
|
|
94
|
+
...(ngDevMode ? [{ debugName: "popupTitle" }] : /* istanbul ignore next */ []));
|
|
40
95
|
}
|
|
41
96
|
close(data = null) {
|
|
42
97
|
this.__popup__()?.close(data);
|
|
@@ -81,6 +136,7 @@ function resolvePopupMinimize(config) {
|
|
|
81
136
|
return {
|
|
82
137
|
enable: config?.buttons?.minimize?.enable ?? false,
|
|
83
138
|
position: config?.buttons?.minimize?.position ?? 'bottom-right',
|
|
139
|
+
dock: config?.buttons?.minimize?.dock ?? 'default',
|
|
84
140
|
};
|
|
85
141
|
}
|
|
86
142
|
/** Resolves resize config. Disabled for `size: 'full'` and when `resizable` is false/omitted. */
|
|
@@ -213,11 +269,15 @@ class AXPopupComponent extends MXBaseComponent {
|
|
|
213
269
|
...(ngDevMode ? [{ debugName: "minimizeLeft" }] : /* istanbul ignore next */ []));
|
|
214
270
|
this.minimizeRight = signal(null, /* @ts-ignore */
|
|
215
271
|
...(ngDevMode ? [{ debugName: "minimizeRight" }] : /* istanbul ignore next */ []));
|
|
272
|
+
this.minimizeSide = computed(() => resolvePopupMinimize(this.__config__()).position, /* @ts-ignore */
|
|
273
|
+
...(ngDevMode ? [{ debugName: "minimizeSide" }] : /* istanbul ignore next */ []));
|
|
216
274
|
this.fullscreenChangeHandler = () => {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
275
|
+
const isFullscreen = !!document.fullscreenElement;
|
|
276
|
+
this.fullScreenState.set(isFullscreen);
|
|
277
|
+
if (this.__popupRef__()?.state() !== 'minimized') {
|
|
278
|
+
this.__popupRef__()?._setState?.(isFullscreen ? 'maximized' : 'normal');
|
|
220
279
|
}
|
|
280
|
+
this.cdr.markForCheck();
|
|
221
281
|
};
|
|
222
282
|
this.closeEnabled = () => resolvePopupCloseButton(this.__config__());
|
|
223
283
|
this.maximizeEnabled = () => resolvePopupMaximizable(this.__config__());
|
|
@@ -435,70 +495,114 @@ class AXPopupComponent extends MXBaseComponent {
|
|
|
435
495
|
}
|
|
436
496
|
}
|
|
437
497
|
/**
|
|
438
|
-
* Minimizes the popup
|
|
498
|
+
* Minimizes the popup. Routes through the popup ref so a registered dock can host the tab.
|
|
439
499
|
*/
|
|
440
500
|
minimize() {
|
|
501
|
+
this.__popupRef__()?.minimize();
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Maximizes the popup using the Fullscreen API.
|
|
505
|
+
*/
|
|
506
|
+
maximize() {
|
|
507
|
+
this.__popupRef__()?.maximize();
|
|
508
|
+
}
|
|
509
|
+
/**
|
|
510
|
+
* Restores the popup from minimized or fullscreen state.
|
|
511
|
+
*/
|
|
512
|
+
restore() {
|
|
513
|
+
this.__popupRef__()?.restore();
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* Applies the minimized visual. When `docked` is true the overlay is hidden by the service
|
|
517
|
+
* and the window stays at normal size for the next restore.
|
|
518
|
+
* @internal
|
|
519
|
+
*/
|
|
520
|
+
enterMinimized(docked) {
|
|
441
521
|
if (this.fullScreenState() && document.fullscreenElement) {
|
|
442
522
|
document.exitFullscreen().catch(() => undefined);
|
|
443
523
|
}
|
|
524
|
+
if (docked) {
|
|
525
|
+
this.minimizeLeft.set(null);
|
|
526
|
+
this.minimizeRight.set(null);
|
|
527
|
+
this.popupSizeState.set('normal');
|
|
528
|
+
this.cdr.markForCheck();
|
|
529
|
+
return;
|
|
530
|
+
}
|
|
444
531
|
const el = this.popupEl()?.nativeElement;
|
|
445
532
|
if (!el)
|
|
446
533
|
return;
|
|
447
|
-
this.
|
|
448
|
-
this.minimizeRight.set(null);
|
|
534
|
+
const position = resolvePopupMinimize(this.__config__()).position;
|
|
449
535
|
this.popupSizeState.set('minimize');
|
|
536
|
+
if (position === 'bottom-right') {
|
|
537
|
+
this.minimizeLeft.set(null);
|
|
538
|
+
this.minimizeRight.set('0px');
|
|
539
|
+
}
|
|
540
|
+
else {
|
|
541
|
+
this.minimizeRight.set(null);
|
|
542
|
+
this.minimizeLeft.set('0px');
|
|
543
|
+
}
|
|
450
544
|
this.cdr.markForCheck();
|
|
451
545
|
requestAnimationFrame(() => {
|
|
546
|
+
if (this.popupSizeState() !== 'minimize') {
|
|
547
|
+
return;
|
|
548
|
+
}
|
|
452
549
|
if (this.resizeActive()) {
|
|
453
550
|
el.style.height = '';
|
|
454
551
|
el.style.width = '';
|
|
455
552
|
}
|
|
456
553
|
const width = el.offsetWidth;
|
|
457
554
|
const index = this.__popupRef__()?._getStackIndex?.() ?? 0;
|
|
458
|
-
const
|
|
555
|
+
const offset = `${index * (width + 10)}px`;
|
|
459
556
|
if (position === 'bottom-right') {
|
|
460
557
|
this.minimizeLeft.set(null);
|
|
461
|
-
this.minimizeRight.set(
|
|
558
|
+
this.minimizeRight.set(offset);
|
|
462
559
|
}
|
|
463
560
|
else {
|
|
464
561
|
this.minimizeRight.set(null);
|
|
465
|
-
this.minimizeLeft.set(
|
|
562
|
+
this.minimizeLeft.set(offset);
|
|
466
563
|
}
|
|
467
564
|
this.cdr.markForCheck();
|
|
468
565
|
});
|
|
469
566
|
}
|
|
470
567
|
/**
|
|
471
|
-
*
|
|
568
|
+
* Restores the window from the legacy bottom bar.
|
|
569
|
+
* @internal
|
|
472
570
|
*/
|
|
473
|
-
|
|
571
|
+
exitMinimized() {
|
|
572
|
+
this.minimizeLeft.set(null);
|
|
573
|
+
this.minimizeRight.set(null);
|
|
574
|
+
this.popupSizeState.set('normal');
|
|
575
|
+
this.cdr.markForCheck();
|
|
576
|
+
}
|
|
577
|
+
/**
|
|
578
|
+
* Enters or toggles the Fullscreen API on the popup element.
|
|
579
|
+
* @internal
|
|
580
|
+
*/
|
|
581
|
+
enterMaximized() {
|
|
474
582
|
const el = this.popupEl()?.nativeElement;
|
|
475
583
|
if (!el)
|
|
476
584
|
return;
|
|
477
|
-
if (this.popupSizeState() === 'minimize') {
|
|
478
|
-
this.restore();
|
|
479
|
-
}
|
|
480
585
|
if (!document.fullscreenElement) {
|
|
481
|
-
el.requestFullscreen()
|
|
586
|
+
el.requestFullscreen()
|
|
587
|
+
.then(() => {
|
|
482
588
|
this.fullScreenState.set(true);
|
|
589
|
+
this.__popupRef__()?._setState?.('maximized');
|
|
483
590
|
this.cdr.markForCheck();
|
|
484
|
-
})
|
|
591
|
+
})
|
|
592
|
+
.catch(() => undefined);
|
|
485
593
|
}
|
|
486
594
|
else {
|
|
487
595
|
document.exitFullscreen().catch(() => undefined);
|
|
488
596
|
}
|
|
489
597
|
}
|
|
490
598
|
/**
|
|
491
|
-
*
|
|
599
|
+
* Leaves fullscreen.
|
|
600
|
+
* @internal
|
|
492
601
|
*/
|
|
493
|
-
|
|
602
|
+
exitMaximized() {
|
|
494
603
|
if (this.fullScreenState() && document.fullscreenElement) {
|
|
495
604
|
document.exitFullscreen().catch(() => undefined);
|
|
496
|
-
return;
|
|
497
605
|
}
|
|
498
|
-
this.minimizeLeft.set(null);
|
|
499
|
-
this.minimizeRight.set(null);
|
|
500
|
-
this.popupSizeState.set('normal');
|
|
501
|
-
this.cdr.markForCheck();
|
|
502
606
|
}
|
|
503
607
|
/**
|
|
504
608
|
* Sets inputs on the content component.
|
|
@@ -522,7 +626,7 @@ class AXPopupComponent extends MXBaseComponent {
|
|
|
522
626
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXPopupComponent, isStandalone: true, selector: "ax-popup", inputs: { __content__: { classPropertyName: "__content__", publicName: "__content__", isSignal: true, isRequired: false, transformFunction: null }, __config__: { classPropertyName: "__config__", publicName: "__config__", isSignal: true, isRequired: false, transformFunction: null }, __popupRef__: { classPropertyName: "__popupRef__", publicName: "__popupRef__", isSignal: true, isRequired: false, transformFunction: null }, __id__: { classPropertyName: "__id__", publicName: "__id__", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown.escape": "onKeydownHandler()" }, styleAttribute: "display: block; max-width: 100%;", classAttribute: "ax-popup-host" }, providers: [
|
|
523
627
|
{ provide: AXClosableComponent, useExisting: AXPopupComponent },
|
|
524
628
|
{ provide: AXComponent, useExisting: AXPopupComponent },
|
|
525
|
-
], viewQueries: [{ propertyName: "popupEl", first: true, predicate: ["popupEl"], descendants: true, isSignal: true }, { propertyName: "projectedHandles", predicate: AXDragHandleDirective, descendants: true, isSignal: true }, { propertyName: "contentContainerRef", first: true, predicate: ["contentOutlet"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "contentContainerEl", first: true, predicate: ["contentContainer"], descendants: true, static: true }, { propertyName: "dragDir", first: true, predicate: ["popupEl"], descendants: true, read: AXDragDirective, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n axDrag\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [dragDisabled]=\"dragDisabled()\"\n [dragBoundary]=\"dragBoundary()\"\n [dragResetOnDblClick]=\"false\"\n [axResizable]=\"resizeEnabled()\"\n [handles]=\"resizeConfig().handles\"\n [minWidth]=\"resizeConfig().minWidth\"\n [minHeight]=\"resizeConfig().minHeight\"\n [maxWidth]=\"resizeMaxWidth()\"\n [maxHeight]=\"resizeMaxHeight()\"\n [lockAspectRatio]=\"resizeConfig().lockAspectRatio\"\n [dblClickAction]=\"resizeConfig().dblClickAction\"\n [class.ax-popup-resizable]=\"resizeActive()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.position]=\"popupSizeState() === 'minimize' ? 'fixed' : null\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n [style.bottom]=\"popupSizeState() === 'minimize' ? '0' : null\"\n >\n <div class=\"ax-popup-header-container\">\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\" axDragHandle>\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n\n <div class=\"ax-popup-header-actions\" (pointerdown)=\"$event.stopPropagation()\">\n @if (minimizeEnabled() && popupSizeState() !== 'minimize') {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"minimize()\">\n <ax-icon class=\"ax-icon ax-icon-minimize text-xl\"></ax-icon>\n </ax-button>\n }\n\n @if (popupSizeState() !== 'normal' || fullScreenState()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"restore()\">\n <ax-icon class=\"ax-icon ax-icon-maximize text-lg\"></ax-icon>\n </ax-button>\n }\n\n @if (maximizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"maximize()\">\n <ax-icon class=\"ax-icon ax-icon-full-screen text-xl\"></ax-icon>\n </ax-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button class=\"ax-sm text-xl\" tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n </div>\n }\n </div>\n\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer>\n @if (showSkeleton()) {\n <div class=\"ax-popup-skeleton-container\" #skeletonEl>\n @if (skeletonTemplate()) {\n <ng-container [ngTemplateOutlet]=\"skeletonTemplate()\"></ng-container>\n } @else {\n <div class=\"ax-popup-skeleton-default\">\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-title\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line ax-popup-skeleton-bar-line-short\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n </div>\n }\n </div>\n }\n\n <ng-container #contentOutlet />\n </div>\n\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-overlay.ax-overlay-centered{pointer-events:none}.ax-popup-overlay.ax-overlay-centered .ax-overlay-content{display:flex;max-height:100%;min-height:calc(var(--spacing, .25rem) * 0);flex-direction:column;align-items:center;justify-content:center;width:100%!important;height:100%!important;max-width:none!important;overflow:visible!important;pointer-events:none}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host{width:fit-content;flex-shrink:0;align-self:center;pointer-events:auto}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-full){width:100%;max-width:100vw}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-minimized){width:fit-content!important}.ax-popup-wrapper{display:block;width:fit-content;max-width:100%}.ax-popup-wrapper.ax-popup-minimized-host{width:fit-content!important}.ax-popup.ax-dragging{-webkit-user-select:none;user-select:none}.ax-popup.ax-popup-minimized,.ax-popup.ax-popup-fullscreen{translate:none!important}.ax-popup.ax-popup-fullscreen{max-height:100vh!important;width:100vw!important;border-radius:0!important}.ax-popup-header-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 1)}.ax-popup{--ax-comp-popup-shadow-rest: var(--ax-sys-effect-modal);--ax-comp-popup-highlight-rest: var(--ax-sys-highlight-surface);--ax-comp-popup-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-popup-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-popup-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-popup-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-popup-background-image-rest: var(--ax-sys-gradient-surface);--ax-comp-popup-surface-overlay-rest: var(--ax-sys-surface-overlay-modal);position:relative;box-sizing:border-box;display:flex;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 0);outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));box-shadow:var(--ax-comp-popup-contrast-inner-border-rest),var(--ax-comp-popup-inner-border-rest),var(--ax-comp-popup-highlight-rest),var(--ax-comp-popup-shadow-rest);background-image:linear-gradient(var(--ax-comp-popup-contrast-surface-overlay-rest),var(--ax-comp-popup-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-popup-surface-overlay-rest),var(--ax-comp-popup-surface-overlay-rest)),var(--ax-comp-popup-background-image-rest);backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{flex-shrink:0}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-header-border-color))}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 7);line-height:calc(var(--spacing, .25rem) * 7)}}.ax-popup ax-footer{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;min-height:calc(var(--spacing, .25rem) * 0);flex:1;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{min-height:calc(var(--spacing, .25rem) * 0);flex:1;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-skeleton-container{overflow:hidden;padding:calc(var(--spacing, .25rem) * 4)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar{display:block;border-radius:var(--radius-md, .375rem)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-title{height:calc(var(--spacing, .25rem) * 5);width:40%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line{height:calc(var(--spacing, .25rem) * 3.5);width:100%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line-short{width:80%}.ax-popup .ax-popup-main-container .ax-popup-footer-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{height:calc(100 * var(--ax-vh));max-height:calc(100 * var(--ax-vh));width:100vw;border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:calc(100 * var(--ax-vh))}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs:not(.ax-popup-resizable){width:18vw!important;max-width:100vw}.ax-popup.ax-popup-sm:not(.ax-popup-resizable){width:25vw!important;max-width:100vw}.ax-popup.ax-popup-md:not(.ax-popup-resizable){width:40vw!important;max-width:100vw}.ax-popup.ax-popup-lg:not(.ax-popup-resizable){width:65vw!important;max-width:100vw}.ax-popup.ax-popup-xl:not(.ax-popup-resizable){width:75vw!important;max-width:100vw}.ax-popup.ax-popup-2xl:not(.ax-popup-resizable){width:85vw!important;max-width:100vw}.ax-popup.ax-popup-resizable{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));--ax-comp-resizable-corner-size: 12px}.ax-popup.ax-popup-resizable.ax-popup-xs{width:18vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-sm{width:25vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-md{width:40vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-lg{width:65vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-xl{width:75vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-2xl{width:85vw;max-width:100vw}.ax-popup.ax-popup-minimized{z-index:55;width:fit-content!important;max-width:min(90vw,24rem)!important;border-top-left-radius:var(--radius-2xl, 1rem);border-top-right-radius:var(--radius-2xl, 1rem);border-bottom-right-radius:0!important;border-bottom-left-radius:0!important;min-width:0;max-height:none;height:auto!important;min-height:0}.ax-popup.ax-popup-minimized .ax-popup-main-container{display:none}.ax-popup.ax-popup-minimized .ax-popup-header{max-width:100%;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}}@media screen and (max-width:768px){.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable){width:93vw!important;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important;border-radius:var(--ax-comp-popup-border-radius)}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable):not(.ax-popup-full) .ax-popup-body-container>ng-component>div{width:100%}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable).ax-popup-full{height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius)!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}}:root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-outline-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@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-border-style: solid;--tw-outline-style: solid;--tw-font-weight: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXFocusTrapDirective, selector: "[axFocusTrap]", inputs: ["axFocusTrapArrowNavigation"] }, { kind: "component", type: AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXDragHandleDirective, selector: "[axDragHandle]" }, { kind: "directive", type: AXResizableDirective, selector: "[axResizable]", inputs: ["axResizable", "handles", "minWidth", "maxWidth", "minHeight", "maxHeight", "dblClickAction", "width", "defaultWidth", "height", "defaultHeight", "lockAspectRatio"], outputs: ["axResizableChange", "handlesChange", "minWidthChange", "maxWidthChange", "minHeightChange", "maxHeightChange", "dblClickActionChange", "widthChange", "defaultWidthChange", "heightChange", "defaultHeightChange", "lockAspectRatioChange", "onResizingStarted", "onResizingEnded", "onResizingDblClick"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
629
|
+
], viewQueries: [{ propertyName: "popupEl", first: true, predicate: ["popupEl"], descendants: true, isSignal: true }, { propertyName: "projectedHandles", predicate: AXDragHandleDirective, descendants: true, isSignal: true }, { propertyName: "contentContainerRef", first: true, predicate: ["contentOutlet"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "contentContainerEl", first: true, predicate: ["contentContainer"], descendants: true, static: true }, { propertyName: "dragDir", first: true, predicate: ["popupEl"], descendants: true, read: AXDragDirective, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n axDrag\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [dragDisabled]=\"dragDisabled()\"\n [dragBoundary]=\"dragBoundary()\"\n [dragResetOnDblClick]=\"false\"\n [axResizable]=\"resizeEnabled()\"\n [handles]=\"resizeConfig().handles\"\n [minWidth]=\"resizeConfig().minWidth\"\n [minHeight]=\"resizeConfig().minHeight\"\n [maxWidth]=\"resizeMaxWidth()\"\n [maxHeight]=\"resizeMaxHeight()\"\n [lockAspectRatio]=\"resizeConfig().lockAspectRatio\"\n [dblClickAction]=\"resizeConfig().dblClickAction\"\n [class.ax-popup-resizable]=\"resizeActive()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-minimized-end]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-right'\"\n [class.ax-popup-minimized-start]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-left'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n >\n <div class=\"ax-popup-header-container\">\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\" axDragHandle>\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n\n <div class=\"ax-popup-header-actions\" (pointerdown)=\"$event.stopPropagation()\">\n @if (minimizeEnabled() && popupSizeState() !== 'minimize') {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Minimize\" (onClick)=\"minimize()\">\n <ax-popup-caption-icon name=\"minimize\" />\n </ax-button>\n }\n\n @if (popupSizeState() === 'minimize' || fullScreenState()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Restore\" (onClick)=\"restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-button>\n } @else if (maximizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Maximize\" (onClick)=\"maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-button>\n }\n\n @if (closeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Close\" tabindex=\"1\" (onClick)=\"_handleCloseClick()\">\n <ax-popup-caption-icon name=\"close\" />\n </ax-button>\n }\n </div>\n </div>\n }\n </div>\n\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer>\n @if (showSkeleton()) {\n <div class=\"ax-popup-skeleton-container\" #skeletonEl>\n @if (skeletonTemplate()) {\n <ng-container [ngTemplateOutlet]=\"skeletonTemplate()\"></ng-container>\n } @else {\n <div class=\"ax-popup-skeleton-default\">\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-title\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line ax-popup-skeleton-bar-line-short\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n </div>\n }\n </div>\n }\n\n <ng-container #contentOutlet />\n </div>\n\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-overlay-hidden,.ax-overlay-backdrop.ax-popup-overlay-hidden{display:none!important;pointer-events:none!important}.ax-popup-overlay.ax-overlay-centered{pointer-events:none}.ax-popup-overlay.ax-overlay-centered .ax-overlay-content{display:flex;max-height:100%;min-height:calc(var(--spacing, .25rem) * 0);flex-direction:column;align-items:center;justify-content:center;width:100%!important;height:100%!important;max-width:none!important;overflow:visible!important;pointer-events:none}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host{width:fit-content;flex-shrink:0;align-self:center;pointer-events:auto}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-full){width:100%;max-width:100vw}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-minimized){width:fit-content!important}.ax-popup-wrapper{display:block;width:fit-content;max-width:100%}.ax-popup-wrapper.ax-popup-minimized-host{width:fit-content!important}.ax-popup.ax-dragging{-webkit-user-select:none;user-select:none}.ax-popup.ax-popup-minimized,.ax-popup.ax-popup-fullscreen{translate:none!important}.ax-popup.ax-popup-fullscreen{max-height:100vh!important;width:100vw!important;border-radius:0!important}.ax-popup-header-actions{display:flex;flex-shrink:0;align-items:center;gap:0}.ax-popup{--ax-comp-popup-shadow-rest: var(--ax-sys-effect-modal);--ax-comp-popup-highlight-rest: var(--ax-sys-highlight-surface);--ax-comp-popup-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-popup-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-popup-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-popup-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-popup-background-image-rest: var(--ax-sys-gradient-surface);--ax-comp-popup-surface-overlay-rest: var(--ax-sys-surface-overlay-modal);position:relative;box-sizing:border-box;display:flex;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 0);outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));box-shadow:var(--ax-comp-popup-contrast-inner-border-rest),var(--ax-comp-popup-inner-border-rest),var(--ax-comp-popup-highlight-rest),var(--ax-comp-popup-shadow-rest);background-image:linear-gradient(var(--ax-comp-popup-contrast-surface-overlay-rest),var(--ax-comp-popup-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-popup-surface-overlay-rest),var(--ax-comp-popup-surface-overlay-rest)),var(--ax-comp-popup-background-image-rest);backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{flex-shrink:0}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-header-border-color))}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 7);line-height:calc(var(--spacing, .25rem) * 7)}}.ax-popup ax-footer{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;min-height:calc(var(--spacing, .25rem) * 0);flex:1;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{min-height:calc(var(--spacing, .25rem) * 0);flex:1;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-skeleton-container{overflow:hidden;padding:calc(var(--spacing, .25rem) * 4)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar{display:block;border-radius:var(--radius-md, .375rem)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-title{height:calc(var(--spacing, .25rem) * 5);width:40%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line{height:calc(var(--spacing, .25rem) * 3.5);width:100%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line-short{width:80%}.ax-popup .ax-popup-main-container .ax-popup-footer-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{height:calc(100 * var(--ax-vh));max-height:calc(100 * var(--ax-vh));width:100vw;border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:calc(100 * var(--ax-vh))}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs:not(.ax-popup-resizable){width:18vw!important;max-width:100vw}.ax-popup.ax-popup-sm:not(.ax-popup-resizable){width:25vw!important;max-width:100vw}.ax-popup.ax-popup-md:not(.ax-popup-resizable){width:40vw!important;max-width:100vw}.ax-popup.ax-popup-lg:not(.ax-popup-resizable){width:65vw!important;max-width:100vw}.ax-popup.ax-popup-xl:not(.ax-popup-resizable){width:75vw!important;max-width:100vw}.ax-popup.ax-popup-2xl:not(.ax-popup-resizable){width:85vw!important;max-width:100vw}.ax-popup.ax-popup-resizable{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));--ax-comp-resizable-corner-size: 12px}.ax-popup.ax-popup-resizable.ax-popup-xs{width:18vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-sm{width:25vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-md{width:40vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-lg{width:65vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-xl{width:75vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-2xl{width:85vw;max-width:100vw}.ax-popup.ax-popup-minimized{z-index:55;width:fit-content!important;max-width:min(90vw,24rem)!important;border-top-left-radius:var(--radius-2xl, 1rem);border-top-right-radius:var(--radius-2xl, 1rem);border-bottom-right-radius:0!important;border-bottom-left-radius:0!important;position:fixed!important;bottom:0!important;min-width:0;max-height:none;height:auto!important;min-height:0}.ax-popup.ax-popup-minimized .ax-popup-main-container{display:none}.ax-popup.ax-popup-minimized .ax-popup-header{max-width:100%;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}}.ax-popup.ax-popup-minimized-end{right:0}.ax-popup.ax-popup-minimized-start{left:0}@media screen and (max-width:768px){.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable){width:93vw!important;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important;border-radius:var(--ax-comp-popup-border-radius)}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable):not(.ax-popup-full) .ax-popup-body-container>ng-component>div{width:100%}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable).ax-popup-full{height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius)!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}}:root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-outline-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@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-border-style: solid;--tw-outline-style: solid;--tw-font-weight: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXPopupCaptionIconComponent, selector: "ax-popup-caption-icon", inputs: ["name"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXFocusTrapDirective, selector: "[axFocusTrap]", inputs: ["axFocusTrapArrowNavigation"] }, { kind: "component", type: AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXDragHandleDirective, selector: "[axDragHandle]" }, { kind: "directive", type: AXResizableDirective, selector: "[axResizable]", inputs: ["axResizable", "handles", "minWidth", "maxWidth", "minHeight", "maxHeight", "dblClickAction", "width", "defaultWidth", "height", "defaultHeight", "lockAspectRatio"], outputs: ["axResizableChange", "handlesChange", "minWidthChange", "maxWidthChange", "minHeightChange", "maxHeightChange", "dblClickActionChange", "widthChange", "defaultWidthChange", "heightChange", "defaultHeightChange", "lockAspectRatioChange", "onResizingStarted", "onResizingEnded", "onResizingDblClick"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
526
630
|
}
|
|
527
631
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupComponent, decorators: [{
|
|
528
632
|
type: Component,
|
|
@@ -533,8 +637,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
533
637
|
{ provide: AXClosableComponent, useExisting: AXPopupComponent },
|
|
534
638
|
{ provide: AXComponent, useExisting: AXPopupComponent },
|
|
535
639
|
], imports: [
|
|
536
|
-
|
|
537
|
-
AXDecoratorIconComponent,
|
|
640
|
+
AXPopupCaptionIconComponent,
|
|
538
641
|
AXButtonComponent,
|
|
539
642
|
AsyncPipe,
|
|
540
643
|
NgTemplateOutlet,
|
|
@@ -544,7 +647,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
544
647
|
AXDragDirective,
|
|
545
648
|
AXDragHandleDirective,
|
|
546
649
|
AXResizableDirective,
|
|
547
|
-
], template: "<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n axDrag\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [dragDisabled]=\"dragDisabled()\"\n [dragBoundary]=\"dragBoundary()\"\n [dragResetOnDblClick]=\"false\"\n [axResizable]=\"resizeEnabled()\"\n [handles]=\"resizeConfig().handles\"\n [minWidth]=\"resizeConfig().minWidth\"\n [minHeight]=\"resizeConfig().minHeight\"\n [maxWidth]=\"resizeMaxWidth()\"\n [maxHeight]=\"resizeMaxHeight()\"\n [lockAspectRatio]=\"resizeConfig().lockAspectRatio\"\n [dblClickAction]=\"resizeConfig().dblClickAction\"\n [class.ax-popup-resizable]=\"resizeActive()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.position]=\"popupSizeState() === 'minimize' ? 'fixed' : null\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n [style.bottom]=\"popupSizeState() === 'minimize' ? '0' : null\"\n >\n <div class=\"ax-popup-header-container\">\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\" axDragHandle>\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n\n <div class=\"ax-popup-header-actions\" (pointerdown)=\"$event.stopPropagation()\">\n @if (minimizeEnabled() && popupSizeState() !== 'minimize') {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"minimize()\">\n <ax-icon class=\"ax-icon ax-icon-minimize text-xl\"></ax-icon>\n </ax-button>\n }\n\n @if (popupSizeState() !== 'normal' || fullScreenState()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"restore()\">\n <ax-icon class=\"ax-icon ax-icon-maximize text-lg\"></ax-icon>\n </ax-button>\n }\n\n @if (maximizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"maximize()\">\n <ax-icon class=\"ax-icon ax-icon-full-screen text-xl\"></ax-icon>\n </ax-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button class=\"ax-sm text-xl\" tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n </div>\n }\n </div>\n\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer>\n @if (showSkeleton()) {\n <div class=\"ax-popup-skeleton-container\" #skeletonEl>\n @if (skeletonTemplate()) {\n <ng-container [ngTemplateOutlet]=\"skeletonTemplate()\"></ng-container>\n } @else {\n <div class=\"ax-popup-skeleton-default\">\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-title\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line ax-popup-skeleton-bar-line-short\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n </div>\n }\n </div>\n }\n\n <ng-container #contentOutlet />\n </div>\n\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-overlay.ax-overlay-centered{pointer-events:none}.ax-popup-overlay.ax-overlay-centered .ax-overlay-content{display:flex;max-height:100%;min-height:calc(var(--spacing, .25rem) * 0);flex-direction:column;align-items:center;justify-content:center;width:100%!important;height:100%!important;max-width:none!important;overflow:visible!important;pointer-events:none}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host{width:fit-content;flex-shrink:0;align-self:center;pointer-events:auto}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-full){width:100%;max-width:100vw}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-minimized){width:fit-content!important}.ax-popup-wrapper{display:block;width:fit-content;max-width:100%}.ax-popup-wrapper.ax-popup-minimized-host{width:fit-content!important}.ax-popup.ax-dragging{-webkit-user-select:none;user-select:none}.ax-popup.ax-popup-minimized,.ax-popup.ax-popup-fullscreen{translate:none!important}.ax-popup.ax-popup-fullscreen{max-height:100vh!important;width:100vw!important;border-radius:0!important}.ax-popup-header-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 1)}.ax-popup{--ax-comp-popup-shadow-rest: var(--ax-sys-effect-modal);--ax-comp-popup-highlight-rest: var(--ax-sys-highlight-surface);--ax-comp-popup-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-popup-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-popup-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-popup-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-popup-background-image-rest: var(--ax-sys-gradient-surface);--ax-comp-popup-surface-overlay-rest: var(--ax-sys-surface-overlay-modal);position:relative;box-sizing:border-box;display:flex;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 0);outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));box-shadow:var(--ax-comp-popup-contrast-inner-border-rest),var(--ax-comp-popup-inner-border-rest),var(--ax-comp-popup-highlight-rest),var(--ax-comp-popup-shadow-rest);background-image:linear-gradient(var(--ax-comp-popup-contrast-surface-overlay-rest),var(--ax-comp-popup-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-popup-surface-overlay-rest),var(--ax-comp-popup-surface-overlay-rest)),var(--ax-comp-popup-background-image-rest);backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{flex-shrink:0}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-header-border-color))}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 7);line-height:calc(var(--spacing, .25rem) * 7)}}.ax-popup ax-footer{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;min-height:calc(var(--spacing, .25rem) * 0);flex:1;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{min-height:calc(var(--spacing, .25rem) * 0);flex:1;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-skeleton-container{overflow:hidden;padding:calc(var(--spacing, .25rem) * 4)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar{display:block;border-radius:var(--radius-md, .375rem)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-title{height:calc(var(--spacing, .25rem) * 5);width:40%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line{height:calc(var(--spacing, .25rem) * 3.5);width:100%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line-short{width:80%}.ax-popup .ax-popup-main-container .ax-popup-footer-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{height:calc(100 * var(--ax-vh));max-height:calc(100 * var(--ax-vh));width:100vw;border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:calc(100 * var(--ax-vh))}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs:not(.ax-popup-resizable){width:18vw!important;max-width:100vw}.ax-popup.ax-popup-sm:not(.ax-popup-resizable){width:25vw!important;max-width:100vw}.ax-popup.ax-popup-md:not(.ax-popup-resizable){width:40vw!important;max-width:100vw}.ax-popup.ax-popup-lg:not(.ax-popup-resizable){width:65vw!important;max-width:100vw}.ax-popup.ax-popup-xl:not(.ax-popup-resizable){width:75vw!important;max-width:100vw}.ax-popup.ax-popup-2xl:not(.ax-popup-resizable){width:85vw!important;max-width:100vw}.ax-popup.ax-popup-resizable{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));--ax-comp-resizable-corner-size: 12px}.ax-popup.ax-popup-resizable.ax-popup-xs{width:18vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-sm{width:25vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-md{width:40vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-lg{width:65vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-xl{width:75vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-2xl{width:85vw;max-width:100vw}.ax-popup.ax-popup-minimized{z-index:55;width:fit-content!important;max-width:min(90vw,24rem)!important;border-top-left-radius:var(--radius-2xl, 1rem);border-top-right-radius:var(--radius-2xl, 1rem);border-bottom-right-radius:0!important;border-bottom-left-radius:0!important;min-width:0;max-height:none;height:auto!important;min-height:0}.ax-popup.ax-popup-minimized .ax-popup-main-container{display:none}.ax-popup.ax-popup-minimized .ax-popup-header{max-width:100%;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}}@media screen and (max-width:768px){.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable){width:93vw!important;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important;border-radius:var(--ax-comp-popup-border-radius)}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable):not(.ax-popup-full) .ax-popup-body-container>ng-component>div{width:100%}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable).ax-popup-full{height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius)!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}}:root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-outline-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@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-border-style: solid;--tw-outline-style: solid;--tw-font-weight: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
650
|
+
], template: "<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n axDrag\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [dragDisabled]=\"dragDisabled()\"\n [dragBoundary]=\"dragBoundary()\"\n [dragResetOnDblClick]=\"false\"\n [axResizable]=\"resizeEnabled()\"\n [handles]=\"resizeConfig().handles\"\n [minWidth]=\"resizeConfig().minWidth\"\n [minHeight]=\"resizeConfig().minHeight\"\n [maxWidth]=\"resizeMaxWidth()\"\n [maxHeight]=\"resizeMaxHeight()\"\n [lockAspectRatio]=\"resizeConfig().lockAspectRatio\"\n [dblClickAction]=\"resizeConfig().dblClickAction\"\n [class.ax-popup-resizable]=\"resizeActive()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-minimized-end]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-right'\"\n [class.ax-popup-minimized-start]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-left'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n >\n <div class=\"ax-popup-header-container\">\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\" axDragHandle>\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n\n <div class=\"ax-popup-header-actions\" (pointerdown)=\"$event.stopPropagation()\">\n @if (minimizeEnabled() && popupSizeState() !== 'minimize') {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Minimize\" (onClick)=\"minimize()\">\n <ax-popup-caption-icon name=\"minimize\" />\n </ax-button>\n }\n\n @if (popupSizeState() === 'minimize' || fullScreenState()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Restore\" (onClick)=\"restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-button>\n } @else if (maximizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Maximize\" (onClick)=\"maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-button>\n }\n\n @if (closeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Close\" tabindex=\"1\" (onClick)=\"_handleCloseClick()\">\n <ax-popup-caption-icon name=\"close\" />\n </ax-button>\n }\n </div>\n </div>\n }\n </div>\n\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer>\n @if (showSkeleton()) {\n <div class=\"ax-popup-skeleton-container\" #skeletonEl>\n @if (skeletonTemplate()) {\n <ng-container [ngTemplateOutlet]=\"skeletonTemplate()\"></ng-container>\n } @else {\n <div class=\"ax-popup-skeleton-default\">\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-title\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line ax-popup-skeleton-bar-line-short\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n </div>\n }\n </div>\n }\n\n <ng-container #contentOutlet />\n </div>\n\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-overlay-hidden,.ax-overlay-backdrop.ax-popup-overlay-hidden{display:none!important;pointer-events:none!important}.ax-popup-overlay.ax-overlay-centered{pointer-events:none}.ax-popup-overlay.ax-overlay-centered .ax-overlay-content{display:flex;max-height:100%;min-height:calc(var(--spacing, .25rem) * 0);flex-direction:column;align-items:center;justify-content:center;width:100%!important;height:100%!important;max-width:none!important;overflow:visible!important;pointer-events:none}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host{width:fit-content;flex-shrink:0;align-self:center;pointer-events:auto}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-full){width:100%;max-width:100vw}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-minimized){width:fit-content!important}.ax-popup-wrapper{display:block;width:fit-content;max-width:100%}.ax-popup-wrapper.ax-popup-minimized-host{width:fit-content!important}.ax-popup.ax-dragging{-webkit-user-select:none;user-select:none}.ax-popup.ax-popup-minimized,.ax-popup.ax-popup-fullscreen{translate:none!important}.ax-popup.ax-popup-fullscreen{max-height:100vh!important;width:100vw!important;border-radius:0!important}.ax-popup-header-actions{display:flex;flex-shrink:0;align-items:center;gap:0}.ax-popup{--ax-comp-popup-shadow-rest: var(--ax-sys-effect-modal);--ax-comp-popup-highlight-rest: var(--ax-sys-highlight-surface);--ax-comp-popup-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-popup-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-popup-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-popup-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-popup-background-image-rest: var(--ax-sys-gradient-surface);--ax-comp-popup-surface-overlay-rest: var(--ax-sys-surface-overlay-modal);position:relative;box-sizing:border-box;display:flex;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 0);outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));box-shadow:var(--ax-comp-popup-contrast-inner-border-rest),var(--ax-comp-popup-inner-border-rest),var(--ax-comp-popup-highlight-rest),var(--ax-comp-popup-shadow-rest);background-image:linear-gradient(var(--ax-comp-popup-contrast-surface-overlay-rest),var(--ax-comp-popup-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-popup-surface-overlay-rest),var(--ax-comp-popup-surface-overlay-rest)),var(--ax-comp-popup-background-image-rest);backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{flex-shrink:0}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-header-border-color))}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 7);line-height:calc(var(--spacing, .25rem) * 7)}}.ax-popup ax-footer{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;min-height:calc(var(--spacing, .25rem) * 0);flex:1;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{min-height:calc(var(--spacing, .25rem) * 0);flex:1;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-skeleton-container{overflow:hidden;padding:calc(var(--spacing, .25rem) * 4)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar{display:block;border-radius:var(--radius-md, .375rem)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-title{height:calc(var(--spacing, .25rem) * 5);width:40%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line{height:calc(var(--spacing, .25rem) * 3.5);width:100%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line-short{width:80%}.ax-popup .ax-popup-main-container .ax-popup-footer-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{height:calc(100 * var(--ax-vh));max-height:calc(100 * var(--ax-vh));width:100vw;border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:calc(100 * var(--ax-vh))}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs:not(.ax-popup-resizable){width:18vw!important;max-width:100vw}.ax-popup.ax-popup-sm:not(.ax-popup-resizable){width:25vw!important;max-width:100vw}.ax-popup.ax-popup-md:not(.ax-popup-resizable){width:40vw!important;max-width:100vw}.ax-popup.ax-popup-lg:not(.ax-popup-resizable){width:65vw!important;max-width:100vw}.ax-popup.ax-popup-xl:not(.ax-popup-resizable){width:75vw!important;max-width:100vw}.ax-popup.ax-popup-2xl:not(.ax-popup-resizable){width:85vw!important;max-width:100vw}.ax-popup.ax-popup-resizable{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));--ax-comp-resizable-corner-size: 12px}.ax-popup.ax-popup-resizable.ax-popup-xs{width:18vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-sm{width:25vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-md{width:40vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-lg{width:65vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-xl{width:75vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-2xl{width:85vw;max-width:100vw}.ax-popup.ax-popup-minimized{z-index:55;width:fit-content!important;max-width:min(90vw,24rem)!important;border-top-left-radius:var(--radius-2xl, 1rem);border-top-right-radius:var(--radius-2xl, 1rem);border-bottom-right-radius:0!important;border-bottom-left-radius:0!important;position:fixed!important;bottom:0!important;min-width:0;max-height:none;height:auto!important;min-height:0}.ax-popup.ax-popup-minimized .ax-popup-main-container{display:none}.ax-popup.ax-popup-minimized .ax-popup-header{max-width:100%;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}}.ax-popup.ax-popup-minimized-end{right:0}.ax-popup.ax-popup-minimized-start{left:0}@media screen and (max-width:768px){.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable){width:93vw!important;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important;border-radius:var(--ax-comp-popup-border-radius)}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable):not(.ax-popup-full) .ax-popup-body-container>ng-component>div{width:100%}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable).ax-popup-full{height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius)!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}}:root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-outline-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@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-border-style: solid;--tw-outline-style: solid;--tw-font-weight: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
548
651
|
}], ctorParameters: () => [], propDecorators: { contentContainerRef: [{
|
|
549
652
|
type: ViewChild,
|
|
550
653
|
args: ['contentOutlet', { read: ViewContainerRef, static: true }]
|
|
@@ -559,6 +662,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
559
662
|
args: ['keydown.escape']
|
|
560
663
|
}] } });
|
|
561
664
|
|
|
665
|
+
const OVERLAY_HIDDEN_CLASS = 'ax-popup-overlay-hidden';
|
|
562
666
|
/**
|
|
563
667
|
* This is a service which you can create popup with it
|
|
564
668
|
*
|
|
@@ -568,6 +672,11 @@ class AXPopupService {
|
|
|
568
672
|
constructor() {
|
|
569
673
|
this.popupList = new Map();
|
|
570
674
|
this.overlayService = inject(AXOverlayService);
|
|
675
|
+
this.injector = inject(Injector);
|
|
676
|
+
this.dockCounts = signal({}, /* @ts-ignore */
|
|
677
|
+
...(ngDevMode ? [{ debugName: "dockCounts" }] : /* istanbul ignore next */ []));
|
|
678
|
+
this.minimizedByDock = signal({}, /* @ts-ignore */
|
|
679
|
+
...(ngDevMode ? [{ debugName: "minimizedByDock" }] : /* istanbul ignore next */ []));
|
|
571
680
|
}
|
|
572
681
|
/**
|
|
573
682
|
* @ignore
|
|
@@ -594,6 +703,50 @@ class AXPopupService {
|
|
|
594
703
|
async openRef(content, config) {
|
|
595
704
|
return this.openInternal(content, this.mergeConfig(config));
|
|
596
705
|
}
|
|
706
|
+
hasDock(name) {
|
|
707
|
+
return (this.dockCounts()[name] ?? 0) > 0;
|
|
708
|
+
}
|
|
709
|
+
registerDock(name) {
|
|
710
|
+
this.dockCounts.update((counts) => ({
|
|
711
|
+
...counts,
|
|
712
|
+
[name]: (counts[name] ?? 0) + 1,
|
|
713
|
+
}));
|
|
714
|
+
}
|
|
715
|
+
unregisterDock(name) {
|
|
716
|
+
const remaining = Math.max(0, (this.dockCounts()[name] ?? 0) - 1);
|
|
717
|
+
this.dockCounts.update((counts) => ({
|
|
718
|
+
...counts,
|
|
719
|
+
[name]: remaining,
|
|
720
|
+
}));
|
|
721
|
+
if (remaining > 0) {
|
|
722
|
+
return;
|
|
723
|
+
}
|
|
724
|
+
const ids = this.minimizedByDock()[name] ?? [];
|
|
725
|
+
for (const id of [...ids]) {
|
|
726
|
+
const instance = this.getPopupInstance(id);
|
|
727
|
+
instance?.enterMinimized(false);
|
|
728
|
+
this.setOverlayVisible(id, true);
|
|
729
|
+
}
|
|
730
|
+
this.minimizedByDock.update((map) => {
|
|
731
|
+
if (!(name in map)) {
|
|
732
|
+
return map;
|
|
733
|
+
}
|
|
734
|
+
const next = { ...map };
|
|
735
|
+
delete next[name];
|
|
736
|
+
return next;
|
|
737
|
+
});
|
|
738
|
+
}
|
|
739
|
+
minimizedInDock(dock) {
|
|
740
|
+
const ids = this.minimizedByDock()[dock] ?? [];
|
|
741
|
+
return ids.map((id) => this.toDockItem(id)).filter((item) => !!item);
|
|
742
|
+
}
|
|
743
|
+
reorderMinimized(dock, fromIndex, toIndex) {
|
|
744
|
+
this.minimizedByDock.update((map) => {
|
|
745
|
+
const list = [...(map[dock] ?? [])];
|
|
746
|
+
moveItemInArray(list, fromIndex, toIndex);
|
|
747
|
+
return { ...map, [dock]: list };
|
|
748
|
+
});
|
|
749
|
+
}
|
|
597
750
|
mergeConfig(arg2) {
|
|
598
751
|
const config = {
|
|
599
752
|
closeButton: true,
|
|
@@ -612,6 +765,7 @@ class AXPopupService {
|
|
|
612
765
|
minimize: {
|
|
613
766
|
enable: false,
|
|
614
767
|
position: 'bottom-right',
|
|
768
|
+
dock: 'default',
|
|
615
769
|
},
|
|
616
770
|
},
|
|
617
771
|
};
|
|
@@ -628,6 +782,7 @@ class AXPopupService {
|
|
|
628
782
|
minimize: {
|
|
629
783
|
enable: false,
|
|
630
784
|
position: 'bottom-right',
|
|
785
|
+
dock: 'default',
|
|
631
786
|
...config.buttons?.minimize,
|
|
632
787
|
...buttons.minimize,
|
|
633
788
|
},
|
|
@@ -642,6 +797,14 @@ class AXPopupService {
|
|
|
642
797
|
async openInternal(content, config) {
|
|
643
798
|
const randomId = Math.floor(Math.random() * 100000000000);
|
|
644
799
|
const onClose = new Subject();
|
|
800
|
+
const onStateChange = new Subject();
|
|
801
|
+
const state = signal('normal', /* @ts-ignore */
|
|
802
|
+
...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
|
|
803
|
+
const title = signal(config.title ?? '', /* @ts-ignore */
|
|
804
|
+
...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
805
|
+
const isMinimized = runInInjectionContext(this.injector, () => computed(() => state() === 'minimized'));
|
|
806
|
+
const isMaximized = runInInjectionContext(this.injector, () => computed(() => state() === 'maximized'));
|
|
807
|
+
const dock = resolvePopupMinimize(config).dock;
|
|
645
808
|
const returnRef = {
|
|
646
809
|
close: (data) => {
|
|
647
810
|
this.close(randomId, data);
|
|
@@ -649,8 +812,9 @@ class AXPopupService {
|
|
|
649
812
|
setInputs: (values) => {
|
|
650
813
|
this.setInputs(randomId, values);
|
|
651
814
|
},
|
|
652
|
-
setTitle: (
|
|
653
|
-
|
|
815
|
+
setTitle: (value) => {
|
|
816
|
+
title.set(value);
|
|
817
|
+
this.setTitle(randomId, value);
|
|
654
818
|
},
|
|
655
819
|
minimize: () => {
|
|
656
820
|
this.minimize(randomId);
|
|
@@ -665,7 +829,19 @@ class AXPopupService {
|
|
|
665
829
|
this.bringToFront(randomId);
|
|
666
830
|
},
|
|
667
831
|
onClose,
|
|
832
|
+
onStateChange,
|
|
833
|
+
state: state.asReadonly(),
|
|
834
|
+
title: title.asReadonly(),
|
|
835
|
+
isMinimized,
|
|
836
|
+
isMaximized,
|
|
668
837
|
_getStackIndex: () => this.getMapIndexOf(randomId),
|
|
838
|
+
_setState: (next) => {
|
|
839
|
+
if (state() === next) {
|
|
840
|
+
return;
|
|
841
|
+
}
|
|
842
|
+
state.set(next);
|
|
843
|
+
onStateChange.next(next);
|
|
844
|
+
},
|
|
669
845
|
};
|
|
670
846
|
if (config._bindContentInputs) {
|
|
671
847
|
config.inputs = {
|
|
@@ -684,7 +860,6 @@ class AXPopupService {
|
|
|
684
860
|
backdrop: {
|
|
685
861
|
enabled: config.hasBackdrop ?? true,
|
|
686
862
|
background: true,
|
|
687
|
-
// Dispose is handled via onDispose so close goes through onClose.
|
|
688
863
|
closeOnClick: config.closeOnBackdropClick ?? false,
|
|
689
864
|
backdropClass: config.backdropClass,
|
|
690
865
|
},
|
|
@@ -697,33 +872,35 @@ class AXPopupService {
|
|
|
697
872
|
__id__: randomId,
|
|
698
873
|
},
|
|
699
874
|
onDispose: () => {
|
|
700
|
-
// Backdrop click (or external dispose) — complete close pipeline if still open.
|
|
701
875
|
const entry = this.popupList.get(randomId);
|
|
702
876
|
if (!entry)
|
|
703
877
|
return;
|
|
878
|
+
this.removeFromDock(randomId);
|
|
704
879
|
this.popupList.delete(randomId);
|
|
705
880
|
entry.popup.onClose.next(undefined);
|
|
706
881
|
entry.popup.onClose.complete();
|
|
882
|
+
entry.popup.onStateChange.complete();
|
|
707
883
|
},
|
|
708
884
|
});
|
|
709
|
-
this.popupList.set(randomId, {
|
|
885
|
+
this.popupList.set(randomId, {
|
|
886
|
+
overlay: ref,
|
|
887
|
+
popup: returnRef,
|
|
888
|
+
dock,
|
|
889
|
+
data: config.data,
|
|
890
|
+
});
|
|
710
891
|
return returnRef;
|
|
711
892
|
}
|
|
712
|
-
/**
|
|
713
|
-
* Closes a popup by its ID.
|
|
714
|
-
*/
|
|
715
893
|
close(id, data) {
|
|
716
894
|
const ref = this.popupList.get(id);
|
|
717
895
|
if (!ref)
|
|
718
896
|
return;
|
|
897
|
+
this.removeFromDock(id);
|
|
719
898
|
this.popupList.delete(id);
|
|
720
899
|
ref.popup.onClose.next(data);
|
|
721
900
|
ref.popup.onClose.complete();
|
|
901
|
+
ref.popup.onStateChange.complete();
|
|
722
902
|
ref.overlay.dispose();
|
|
723
903
|
}
|
|
724
|
-
/**
|
|
725
|
-
* Sets input values for a popup by its ID.
|
|
726
|
-
*/
|
|
727
904
|
setInputs(id, values) {
|
|
728
905
|
const ref = this.popupList.get(id)?.overlay.instance;
|
|
729
906
|
if (!ref)
|
|
@@ -733,9 +910,6 @@ class AXPopupService {
|
|
|
733
910
|
componentInstance.setContentInputs(values);
|
|
734
911
|
}
|
|
735
912
|
}
|
|
736
|
-
/**
|
|
737
|
-
* Sets the title for a popup by its ID.
|
|
738
|
-
*/
|
|
739
913
|
setTitle(id, title) {
|
|
740
914
|
const ref = this.popupList.get(id)?.overlay.instance;
|
|
741
915
|
if (!ref)
|
|
@@ -746,20 +920,47 @@ class AXPopupService {
|
|
|
746
920
|
}
|
|
747
921
|
}
|
|
748
922
|
minimize(id) {
|
|
923
|
+
const entry = this.popupList.get(id);
|
|
749
924
|
const instance = this.getPopupInstance(id);
|
|
750
|
-
instance
|
|
925
|
+
if (!entry || !instance || entry.popup.state() === 'minimized')
|
|
926
|
+
return;
|
|
927
|
+
const docked = this.hasDock(entry.dock);
|
|
928
|
+
instance.enterMinimized(docked);
|
|
929
|
+
entry.popup._setState?.('minimized');
|
|
930
|
+
if (docked) {
|
|
931
|
+
this.addToDock(id, entry.dock);
|
|
932
|
+
this.setOverlayVisible(id, false);
|
|
933
|
+
}
|
|
751
934
|
}
|
|
752
935
|
maximize(id) {
|
|
936
|
+
const entry = this.popupList.get(id);
|
|
753
937
|
const instance = this.getPopupInstance(id);
|
|
754
|
-
instance
|
|
938
|
+
if (!entry || !instance)
|
|
939
|
+
return;
|
|
940
|
+
if (entry.popup.state() === 'minimized') {
|
|
941
|
+
this.restore(id);
|
|
942
|
+
}
|
|
943
|
+
instance.enterMaximized();
|
|
755
944
|
}
|
|
756
945
|
restore(id) {
|
|
946
|
+
const entry = this.popupList.get(id);
|
|
757
947
|
const instance = this.getPopupInstance(id);
|
|
758
|
-
instance
|
|
948
|
+
if (!entry || !instance)
|
|
949
|
+
return;
|
|
950
|
+
const current = entry.popup.state();
|
|
951
|
+
if (current === 'normal') {
|
|
952
|
+
return;
|
|
953
|
+
}
|
|
954
|
+
if (current === 'maximized') {
|
|
955
|
+
instance.exitMaximized();
|
|
956
|
+
return;
|
|
957
|
+
}
|
|
958
|
+
instance.exitMinimized();
|
|
959
|
+
this.removeFromDock(id);
|
|
960
|
+
this.setOverlayVisible(id, true);
|
|
961
|
+
entry.popup._setState?.('normal');
|
|
962
|
+
this.bringToFront(id);
|
|
759
963
|
}
|
|
760
|
-
/**
|
|
761
|
-
* Gets the index of a popup in the open stack (used for minimized bar positioning).
|
|
762
|
-
*/
|
|
763
964
|
getMapIndexOf(targetKey) {
|
|
764
965
|
let index = 0;
|
|
765
966
|
for (const key of this.popupList.keys()) {
|
|
@@ -770,15 +971,66 @@ class AXPopupService {
|
|
|
770
971
|
}
|
|
771
972
|
return -1;
|
|
772
973
|
}
|
|
773
|
-
/**
|
|
774
|
-
* Brings a popup to the front of all other overlays.
|
|
775
|
-
*/
|
|
776
974
|
bringToFront(id) {
|
|
777
975
|
const ref = this.popupList.get(id);
|
|
778
976
|
if (!ref)
|
|
779
977
|
return;
|
|
780
978
|
ref.overlay.bringToFront();
|
|
781
979
|
}
|
|
980
|
+
markMaximized(id, maximized) {
|
|
981
|
+
const entry = this.popupList.get(id);
|
|
982
|
+
if (!entry || entry.popup.state() === 'minimized') {
|
|
983
|
+
return;
|
|
984
|
+
}
|
|
985
|
+
entry.popup._setState?.(maximized ? 'maximized' : 'normal');
|
|
986
|
+
}
|
|
987
|
+
addToDock(id, dock) {
|
|
988
|
+
this.minimizedByDock.update((map) => {
|
|
989
|
+
const list = map[dock] ?? [];
|
|
990
|
+
if (list.includes(id)) {
|
|
991
|
+
return map;
|
|
992
|
+
}
|
|
993
|
+
return { ...map, [dock]: [...list, id] };
|
|
994
|
+
});
|
|
995
|
+
}
|
|
996
|
+
removeFromDock(id) {
|
|
997
|
+
this.minimizedByDock.update((map) => {
|
|
998
|
+
let changed = false;
|
|
999
|
+
const next = {};
|
|
1000
|
+
for (const [dock, ids] of Object.entries(map)) {
|
|
1001
|
+
const filtered = ids.filter((item) => item !== id);
|
|
1002
|
+
next[dock] = filtered;
|
|
1003
|
+
if (filtered.length !== ids.length) {
|
|
1004
|
+
changed = true;
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
return changed ? next : map;
|
|
1008
|
+
});
|
|
1009
|
+
}
|
|
1010
|
+
setOverlayVisible(id, visible) {
|
|
1011
|
+
const overlay = this.popupList.get(id)?.overlay;
|
|
1012
|
+
if (!overlay)
|
|
1013
|
+
return;
|
|
1014
|
+
overlay.overlayElement?.classList.toggle(OVERLAY_HIDDEN_CLASS, !visible);
|
|
1015
|
+
overlay.backdropElement?.classList.toggle(OVERLAY_HIDDEN_CLASS, !visible);
|
|
1016
|
+
overlay.overlayElement?.toggleAttribute('aria-hidden', !visible);
|
|
1017
|
+
overlay.backdropElement?.toggleAttribute('aria-hidden', !visible);
|
|
1018
|
+
}
|
|
1019
|
+
toDockItem(id) {
|
|
1020
|
+
const entry = this.popupList.get(id);
|
|
1021
|
+
if (!entry) {
|
|
1022
|
+
return null;
|
|
1023
|
+
}
|
|
1024
|
+
return {
|
|
1025
|
+
id,
|
|
1026
|
+
title: entry.popup.title,
|
|
1027
|
+
data: entry.data,
|
|
1028
|
+
ref: entry.popup,
|
|
1029
|
+
restore: () => entry.popup.restore(),
|
|
1030
|
+
maximize: () => entry.popup.maximize(),
|
|
1031
|
+
close: () => entry.popup.close(),
|
|
1032
|
+
};
|
|
1033
|
+
}
|
|
782
1034
|
getPopupInstance(id) {
|
|
783
1035
|
const ref = this.popupList.get(id)?.overlay.instance;
|
|
784
1036
|
if (!ref)
|
|
@@ -798,6 +1050,111 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
798
1050
|
}]
|
|
799
1051
|
}] });
|
|
800
1052
|
|
|
1053
|
+
/**
|
|
1054
|
+
* Binds `[axDragHandle]` nodes inside a dock tab (including projected templates)
|
|
1055
|
+
* to the parent `axDrag` wrapper.
|
|
1056
|
+
*/
|
|
1057
|
+
class AXPopupDockItemDirective {
|
|
1058
|
+
constructor() {
|
|
1059
|
+
this.host = inject(ElementRef);
|
|
1060
|
+
this.drag = inject(AXDragDirective);
|
|
1061
|
+
this.injector = Injector.create({
|
|
1062
|
+
parent: inject(Injector),
|
|
1063
|
+
providers: [{ provide: AX_DRAG_PARENT, useValue: this.drag }],
|
|
1064
|
+
});
|
|
1065
|
+
afterRenderEffect(() => {
|
|
1066
|
+
this.host.nativeElement.querySelectorAll('[axDragHandle]').forEach((element) => {
|
|
1067
|
+
this.drag.registerHandle(element);
|
|
1068
|
+
});
|
|
1069
|
+
});
|
|
1070
|
+
}
|
|
1071
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupDockItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1072
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: AXPopupDockItemDirective, isStandalone: true, selector: "[axPopupDockItem]", exportAs: ["axPopupDockItem"], ngImport: i0 }); }
|
|
1073
|
+
}
|
|
1074
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupDockItemDirective, decorators: [{
|
|
1075
|
+
type: Directive,
|
|
1076
|
+
args: [{
|
|
1077
|
+
selector: '[axPopupDockItem]',
|
|
1078
|
+
exportAs: 'axPopupDockItem',
|
|
1079
|
+
}]
|
|
1080
|
+
}], ctorParameters: () => [] });
|
|
1081
|
+
|
|
1082
|
+
/**
|
|
1083
|
+
* Page-hosted dock for minimized popups. Place it anywhere in the app; matching
|
|
1084
|
+
* `buttons.minimize.dock` names send hidden windows here as reorderable tabs.
|
|
1085
|
+
*
|
|
1086
|
+
* @example
|
|
1087
|
+
* ```html
|
|
1088
|
+
* <ax-popup-dock name="taskbar">
|
|
1089
|
+
* <ng-template let-item>
|
|
1090
|
+
* <button axDragHandle (click)="item.restore()">{{ item.title() }}</button>
|
|
1091
|
+
* <button (click)="item.close()">Close</button>
|
|
1092
|
+
* </ng-template>
|
|
1093
|
+
* </ax-popup-dock>
|
|
1094
|
+
* ```
|
|
1095
|
+
*/
|
|
1096
|
+
class AXPopupDockComponent extends NXComponent {
|
|
1097
|
+
constructor() {
|
|
1098
|
+
super();
|
|
1099
|
+
this.popupService = inject(AXPopupService);
|
|
1100
|
+
/**
|
|
1101
|
+
* Dock name matched against `buttons.minimize.dock`.
|
|
1102
|
+
* @defaultValue 'default'
|
|
1103
|
+
*/
|
|
1104
|
+
this.name = input('default', /* @ts-ignore */
|
|
1105
|
+
...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
1106
|
+
/**
|
|
1107
|
+
* Layout of the tab strip.
|
|
1108
|
+
* @defaultValue 'horizontal'
|
|
1109
|
+
*/
|
|
1110
|
+
this.orientation = input('horizontal', /* @ts-ignore */
|
|
1111
|
+
...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
1112
|
+
this.itemTemplate = contentChild(TemplateRef, /* @ts-ignore */
|
|
1113
|
+
...(ngDevMode ? [{ debugName: "itemTemplate" }] : /* istanbul ignore next */ []));
|
|
1114
|
+
this.items = computed(() => this.popupService.minimizedInDock(this.name()), /* @ts-ignore */
|
|
1115
|
+
...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
1116
|
+
effect((onCleanup) => {
|
|
1117
|
+
const name = this.name();
|
|
1118
|
+
this.popupService.registerDock(name);
|
|
1119
|
+
onCleanup(() => this.popupService.unregisterDock(name));
|
|
1120
|
+
});
|
|
1121
|
+
}
|
|
1122
|
+
onDropped(event) {
|
|
1123
|
+
if (event.previousIndex < 0 || event.currentIndex < 0 || event.previousIndex === event.currentIndex) {
|
|
1124
|
+
return;
|
|
1125
|
+
}
|
|
1126
|
+
this.popupService.reorderMinimized(this.name(), event.previousIndex, event.currentIndex);
|
|
1127
|
+
}
|
|
1128
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupDockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1129
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXPopupDockComponent, isStandalone: true, selector: "ax-popup-dock", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ax-popup-dock-empty": "items().length === 0", "class.ax-popup-dock-vertical": "orientation() === \"vertical\"", "class.ax-popup-dock-horizontal": "orientation() === \"horizontal\"" }, classAttribute: "ax-popup-dock" }, providers: [{ provide: AXComponent, useExisting: AXPopupDockComponent }], queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-popup-dock-list\"\n axDropList\n [dropListOrientation]=\"orientation()\"\n (dropListDropped)=\"onDropped($event)\"\n>\n @for (item of items(); track item.id) {\n <div\n axDrag\n axPopupDockItem\n #dockItem=\"axPopupDockItem\"\n class=\"ax-popup-dock-item\"\n [dragData]=\"item.id\"\n dragCursor=\"grab\"\n >\n @if (itemTemplate(); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n [ngTemplateOutletInjector]=\"dockItem.injector\"\n />\n } @else {\n <div class=\"ax-popup-dock-tab\">\n <span axDragHandle class=\"ax-popup-dock-tab-title\" (click)=\"item.restore()\">\n {{ item.title() }}\n </span>\n <div class=\"ax-popup-dock-tab-actions\" (pointerdown)=\"$event.stopPropagation()\">\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Restore\" (onClick)=\"item.restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-button>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Maximize\" (onClick)=\"item.maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-button>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Close\" (onClick)=\"item.close()\">\n <ax-popup-caption-icon name=\"close\" />\n </ax-button>\n </div>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-dock{pointer-events:auto;display:flex;max-width:100%;z-index:10000}.ax-popup-dock.ax-popup-dock-empty{display:none}.ax-popup-dock-list{display:flex;max-width:100%;align-items:stretch;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup-dock-horizontal .ax-popup-dock-list{flex-direction:row;overflow:auto}.ax-popup-dock-vertical .ax-popup-dock-list{flex-direction:column}.ax-popup-dock-tab{display:flex;max-width:calc(var(--spacing, .25rem) * 72);min-width:calc(var(--spacing, .25rem) * 40);align-items:center;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-default);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 1);--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);background-color:rgba(var(--ax-comp-popup-header-bg-color));color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup-dock-tab-title{min-width:calc(var(--spacing, .25rem) * 0);flex:1;cursor:grab;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);-webkit-user-select:none;user-select:none}.ax-popup-dock-tab-actions{display:flex;flex-shrink:0;align-items:center}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXDragHandleDirective, selector: "[axDragHandle]" }, { kind: "directive", type: AXDropListDirective, selector: "[axDropList]", inputs: ["axDropList", "sortingDisabled", "dropListGroup", "dropListOrientation"], outputs: ["dropListDropped", "sortPreviewChanged"], exportAs: ["axDropList"] }, { kind: "directive", type: AXPopupDockItemDirective, selector: "[axPopupDockItem]", exportAs: ["axPopupDockItem"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXPopupCaptionIconComponent, selector: "ax-popup-caption-icon", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1130
|
+
}
|
|
1131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupDockComponent, decorators: [{
|
|
1132
|
+
type: Component,
|
|
1133
|
+
args: [{ selector: 'ax-popup-dock', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
1134
|
+
class: 'ax-popup-dock',
|
|
1135
|
+
'[class.ax-popup-dock-empty]': 'items().length === 0',
|
|
1136
|
+
'[class.ax-popup-dock-vertical]': 'orientation() === "vertical"',
|
|
1137
|
+
'[class.ax-popup-dock-horizontal]': 'orientation() === "horizontal"',
|
|
1138
|
+
}, imports: [
|
|
1139
|
+
NgTemplateOutlet,
|
|
1140
|
+
AXDragDirective,
|
|
1141
|
+
AXDragHandleDirective,
|
|
1142
|
+
AXDropListDirective,
|
|
1143
|
+
AXPopupDockItemDirective,
|
|
1144
|
+
AXButtonComponent,
|
|
1145
|
+
AXPopupCaptionIconComponent,
|
|
1146
|
+
], providers: [{ provide: AXComponent, useExisting: AXPopupDockComponent }], template: "<div\n class=\"ax-popup-dock-list\"\n axDropList\n [dropListOrientation]=\"orientation()\"\n (dropListDropped)=\"onDropped($event)\"\n>\n @for (item of items(); track item.id) {\n <div\n axDrag\n axPopupDockItem\n #dockItem=\"axPopupDockItem\"\n class=\"ax-popup-dock-item\"\n [dragData]=\"item.id\"\n dragCursor=\"grab\"\n >\n @if (itemTemplate(); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n [ngTemplateOutletInjector]=\"dockItem.injector\"\n />\n } @else {\n <div class=\"ax-popup-dock-tab\">\n <span axDragHandle class=\"ax-popup-dock-tab-title\" (click)=\"item.restore()\">\n {{ item.title() }}\n </span>\n <div class=\"ax-popup-dock-tab-actions\" (pointerdown)=\"$event.stopPropagation()\">\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Restore\" (onClick)=\"item.restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-button>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Maximize\" (onClick)=\"item.maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-button>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Close\" (onClick)=\"item.close()\">\n <ax-popup-caption-icon name=\"close\" />\n </ax-button>\n </div>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-dock{pointer-events:auto;display:flex;max-width:100%;z-index:10000}.ax-popup-dock.ax-popup-dock-empty{display:none}.ax-popup-dock-list{display:flex;max-width:100%;align-items:stretch;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup-dock-horizontal .ax-popup-dock-list{flex-direction:row;overflow:auto}.ax-popup-dock-vertical .ax-popup-dock-list{flex-direction:column}.ax-popup-dock-tab{display:flex;max-width:calc(var(--spacing, .25rem) * 72);min-width:calc(var(--spacing, .25rem) * 40);align-items:center;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-default);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 1);--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);background-color:rgba(var(--ax-comp-popup-header-bg-color));color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup-dock-tab-title{min-width:calc(var(--spacing, .25rem) * 0);flex:1;cursor:grab;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);-webkit-user-select:none;user-select:none}.ax-popup-dock-tab-actions{display:flex;flex-shrink:0;align-items:center}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
1147
|
+
}], ctorParameters: () => [], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
1148
|
+
|
|
1149
|
+
class AXPopupFooterComponent {
|
|
1150
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1151
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.6", type: AXPopupFooterComponent, isStandalone: true, selector: "ax-popup-footer", providers: [{ provide: AXComponent, useExisting: AXPopupFooterComponent }], ngImport: i0, template: "<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<ng-content></ng-content>\n", styles: ["@layer components{ax-popup-footer{display:flex;width:100%;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1152
|
+
}
|
|
1153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupFooterComponent, decorators: [{
|
|
1154
|
+
type: Component,
|
|
1155
|
+
args: [{ selector: 'ax-popup-footer', encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXPopupFooterComponent }], template: "<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<ng-content></ng-content>\n", styles: ["@layer components{ax-popup-footer{display:flex;width:100%;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
1156
|
+
}] });
|
|
1157
|
+
|
|
801
1158
|
/**
|
|
802
1159
|
* Declarative popup host. Project content and call `open()` / `close()` on the component instance.
|
|
803
1160
|
*
|
|
@@ -889,12 +1246,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
889
1246
|
}]
|
|
890
1247
|
}], propDecorators: { template: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
891
1248
|
|
|
892
|
-
const COMPONENT = [
|
|
1249
|
+
const COMPONENT = [
|
|
1250
|
+
AXPopupComponent,
|
|
1251
|
+
AXPopupHostComponent,
|
|
1252
|
+
AXPopupFooterComponent,
|
|
1253
|
+
AXPopupDockComponent,
|
|
1254
|
+
AXPopupCaptionIconComponent,
|
|
1255
|
+
];
|
|
893
1256
|
const MODULES = [CommonModule, AXCommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule];
|
|
894
1257
|
class AXPopupModule {
|
|
895
1258
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
896
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: AXPopupModule, imports: [CommonModule, AXCommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule, AXPopupComponent,
|
|
897
|
-
|
|
1259
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: AXPopupModule, imports: [CommonModule, AXCommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule, AXPopupComponent,
|
|
1260
|
+
AXPopupHostComponent,
|
|
1261
|
+
AXPopupFooterComponent,
|
|
1262
|
+
AXPopupDockComponent,
|
|
1263
|
+
AXPopupCaptionIconComponent], exports: [AXPopupComponent,
|
|
1264
|
+
AXPopupHostComponent,
|
|
1265
|
+
AXPopupFooterComponent,
|
|
1266
|
+
AXPopupDockComponent,
|
|
1267
|
+
AXPopupCaptionIconComponent] }); }
|
|
1268
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupModule, providers: [AXPopupService], imports: [MODULES, AXPopupComponent,
|
|
1269
|
+
AXPopupDockComponent] }); }
|
|
898
1270
|
}
|
|
899
1271
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupModule, decorators: [{
|
|
900
1272
|
type: NgModule,
|
|
@@ -909,5 +1281,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
909
1281
|
* Generated bundle index. Do not edit.
|
|
910
1282
|
*/
|
|
911
1283
|
|
|
912
|
-
export { AXPopupComponent, AXPopupComponentBase, AXPopupFooterComponent, AXPopupHostComponent, AXPopupModule, AXPopupService, AX_POPUP_DEFAULT_RESIZE_HANDLES, resolvePopupCloseButton, resolvePopupMaximizable, resolvePopupMinimize, resolvePopupResizable };
|
|
1284
|
+
export { AXPopupCaptionIconComponent, AXPopupComponent, AXPopupComponentBase, AXPopupDockComponent, AXPopupFooterComponent, AXPopupHostComponent, AXPopupModule, AXPopupService, AX_POPUP_DEFAULT_RESIZE_HANDLES, resolvePopupCloseButton, resolvePopupMaximizable, resolvePopupMinimize, resolvePopupResizable };
|
|
913
1285
|
//# sourceMappingURL=acorex-components-popup.mjs.map
|