pdm-ui-kit 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +168 -3
- package/esm2020/lib/components/button-group/button-group.component.mjs +208 -182
- package/esm2020/lib/components/combobox/combobox.component.mjs +136 -14
- package/esm2020/lib/components/context-menu/context-menu.component.mjs +121 -42
- package/esm2020/lib/components/data-table/data-table.component.mjs +3 -3
- package/esm2020/lib/components/date-picker/date-picker.component.mjs +66 -54
- package/esm2020/lib/components/dialog/dialog.component.mjs +111 -94
- package/esm2020/lib/components/hover-card/hover-card.component.mjs +185 -24
- package/esm2020/lib/components/input/input.component.mjs +15 -15
- package/esm2020/lib/components/input-group/input-group.component.mjs +14 -14
- package/esm2020/lib/components/menubar/menubar.component.mjs +105 -29
- package/esm2020/lib/components/popover/popover.component.mjs +107 -75
- package/esm2020/lib/components/select/select.component.mjs +23 -22
- package/esm2020/lib/components/table/table.component.mjs +77 -68
- package/esm2020/lib/components/tabs/tabs.component.mjs +6 -6
- package/esm2020/lib/components/toggle-group/toggle-group.component.mjs +6 -6
- package/esm2020/lib/components/tooltip/tooltip.component.mjs +162 -19
- package/esm2020/lib/overlay/z-index-helper.mjs +69 -0
- package/esm2020/lib/utils/z-index.mjs +25 -28
- package/esm2020/public-api.mjs +67 -66
- package/fesm2015/pdm-ui-kit.mjs +1376 -654
- package/fesm2015/pdm-ui-kit.mjs.map +1 -1
- package/fesm2020/pdm-ui-kit.mjs +1380 -654
- package/fesm2020/pdm-ui-kit.mjs.map +1 -1
- package/lib/components/button-group/button-group.component.d.ts +8 -2
- package/lib/components/combobox/combobox.component.d.ts +20 -3
- package/lib/components/context-menu/context-menu.component.d.ts +17 -8
- package/lib/components/date-picker/date-picker.component.d.ts +5 -6
- package/lib/components/dialog/dialog.component.d.ts +5 -5
- package/lib/components/hover-card/hover-card.component.d.ts +27 -4
- package/lib/components/input/input.component.d.ts +3 -3
- package/lib/components/input-group/input-group.component.d.ts +1 -1
- package/lib/components/menubar/menubar.component.d.ts +16 -8
- package/lib/components/popover/popover.component.d.ts +13 -12
- package/lib/components/select/select.component.d.ts +4 -5
- package/lib/components/table/table.component.d.ts +2 -2
- package/lib/components/tabs/tabs.component.d.ts +1 -1
- package/lib/components/toggle-group/toggle-group.component.d.ts +1 -1
- package/lib/components/tooltip/tooltip.component.d.ts +21 -3
- package/lib/overlay/z-index-helper.d.ts +36 -0
- package/lib/utils/z-index.d.ts +14 -18
- package/package.json +6 -6
- package/public-api.d.ts +66 -65
- package/src/lib/styles/tokens.css +182 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
4
|
export class PdmToggleGroupComponent {
|
|
5
5
|
constructor() {
|
|
6
6
|
this.items = [];
|
|
7
|
-
this.value =
|
|
8
|
-
this.className =
|
|
7
|
+
this.value = "";
|
|
8
|
+
this.className = "";
|
|
9
9
|
this.valueChange = new EventEmitter();
|
|
10
10
|
}
|
|
11
11
|
onSelect(next, disabled) {
|
|
@@ -15,10 +15,10 @@ export class PdmToggleGroupComponent {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
PdmToggleGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmToggleGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
-
PdmToggleGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmToggleGroupComponent, selector: "pdm-toggle-group", inputs: { items: "items", value: "value", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div
|
|
18
|
+
PdmToggleGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmToggleGroupComponent, selector: "pdm-toggle-group", inputs: { items: "items", value: "value", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div\n [ngClass]=\"[\n 'flex flex-wrap items-center rounded-md border border-border p-1 gap-1',\n className,\n ]\"\n role=\"group\"\n>\n <button\n *ngFor=\"let item of items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [attr.aria-pressed]=\"item.value === value\"\n [ngClass]=\"[\n 'inline-flex h-8 appearance-none items-center justify-center rounded-sm border-0 bg-transparent px-2.5 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n item.value === value\n ? 'bg-accent text-accent-foreground'\n : 'text-foreground hover:bg-accent hover:text-accent-foreground',\n ]\"\n (click)=\"onSelect(item.value, item.disabled)\"\n >\n {{ item.label }}\n </button>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmToggleGroupComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
|
-
args: [{ selector:
|
|
21
|
+
args: [{ selector: "pdm-toggle-group", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [ngClass]=\"[\n 'flex flex-wrap items-center rounded-md border border-border p-1 gap-1',\n className,\n ]\"\n role=\"group\"\n>\n <button\n *ngFor=\"let item of items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [attr.aria-pressed]=\"item.value === value\"\n [ngClass]=\"[\n 'inline-flex h-8 appearance-none items-center justify-center rounded-sm border-0 bg-transparent px-2.5 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n item.value === value\n ? 'bg-accent text-accent-foreground'\n : 'text-foreground hover:bg-accent hover:text-accent-foreground',\n ]\"\n (click)=\"onSelect(item.value, item.disabled)\"\n >\n {{ item.label }}\n </button>\n</div>\n", styles: [":host{display:block}\n"] }]
|
|
22
22
|
}], propDecorators: { items: [{
|
|
23
23
|
type: Input
|
|
24
24
|
}], value: [{
|
|
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
28
28
|
}], valueChange: [{
|
|
29
29
|
type: Output
|
|
30
30
|
}] } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtZ3JvdXAvdG9nZ2xlLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtZ3JvdXAvdG9nZ2xlLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDOzs7QUFjdkIsTUFBTSxPQUFPLHVCQUF1QjtJQU5wQztRQU9VLFVBQUssR0FBeUIsRUFBRSxDQUFDO1FBQ2pDLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBT25EO0lBTEEsUUFBUSxDQUFDLElBQVksRUFBRSxRQUFrQjtRQUN4QyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzVCO0lBQ0YsQ0FBQzs7b0hBWFcsdUJBQXVCO3dHQUF2Qix1QkFBdUIscUtDcEJwQyxpNEJBdUJBOzJGREhhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDQyxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFdmVudEVtaXR0ZXIsXG5cdElucHV0LFxuXHRPdXRwdXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGRtVG9nZ2xlR3JvdXBJdGVtIHtcblx0bGFiZWw6IHN0cmluZztcblx0dmFsdWU6IHN0cmluZztcblx0ZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwicGRtLXRvZ2dsZS1ncm91cFwiLFxuXHR0ZW1wbGF0ZVVybDogXCIuL3RvZ2dsZS1ncm91cC5jb21wb25lbnQuaHRtbFwiLFxuXHRzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogYmxvY2s7IH1cIl0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZG1Ub2dnbGVHcm91cENvbXBvbmVudCB7XG5cdEBJbnB1dCgpIGl0ZW1zOiBQZG1Ub2dnbGVHcm91cEl0ZW1bXSA9IFtdO1xuXHRASW5wdXQoKSB2YWx1ZSA9IFwiXCI7XG5cdEBJbnB1dCgpIGNsYXNzTmFtZSA9IFwiXCI7XG5cblx0QE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cblx0b25TZWxlY3QobmV4dDogc3RyaW5nLCBkaXNhYmxlZD86IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAoIWRpc2FibGVkICYmIG5leHQgIT09IHRoaXMudmFsdWUpIHtcblx0XHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdChuZXh0KTtcblx0XHR9XG5cdH1cbn1cbiIsIjxkaXZcbiAgW25nQ2xhc3NdPVwiW1xuICAgICdmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJvcmRlciBwLTEgZ2FwLTEnLFxuICAgIGNsYXNzTmFtZSxcbiAgXVwiXG4gIHJvbGU9XCJncm91cFwiXG4+XG4gIDxidXR0b25cbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgIFthdHRyLmFyaWEtcHJlc3NlZF09XCJpdGVtLnZhbHVlID09PSB2YWx1ZVwiXG4gICAgW25nQ2xhc3NdPVwiW1xuICAgICAgJ2lubGluZS1mbGV4IGgtOCBhcHBlYXJhbmNlLW5vbmUgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtc20gYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgcHgtMi41IHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnMgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwIHJpbmctb2Zmc2V0LWJhY2tncm91bmQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yJyxcbiAgICAgIGl0ZW0udmFsdWUgPT09IHZhbHVlXG4gICAgICAgID8gJ2JnLWFjY2VudCB0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJ1xuICAgICAgICA6ICd0ZXh0LWZvcmVncm91bmQgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQnLFxuICAgIF1cIlxuICAgIChjbGljayk9XCJvblNlbGVjdChpdGVtLnZhbHVlLCBpdGVtLmRpc2FibGVkKVwiXG4gID5cbiAgICB7eyBpdGVtLmxhYmVsIH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,33 +1,176 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostListener, Input, ViewChild, } from "@angular/core";
|
|
2
|
+
import { TemplatePortal } from "@angular/cdk/portal";
|
|
3
|
+
import { mergeOverlayPanelClass, OVERLAY_BASE_Z_INDEX, } from "../../overlay/z-index-helper";
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/
|
|
5
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
4
7
|
export class PdmTooltipComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.
|
|
7
|
-
this.
|
|
8
|
-
this.
|
|
8
|
+
constructor(overlay, viewContainerRef, elementRef, cdr) {
|
|
9
|
+
this.overlay = overlay;
|
|
10
|
+
this.viewContainerRef = viewContainerRef;
|
|
11
|
+
this.elementRef = elementRef;
|
|
12
|
+
this.cdr = cdr;
|
|
13
|
+
this.text = "";
|
|
14
|
+
this.side = "top";
|
|
15
|
+
this.className = "";
|
|
9
16
|
this.open = false;
|
|
17
|
+
this.overlayRef = null;
|
|
10
18
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
ngOnDestroy() {
|
|
20
|
+
this.destroyOverlay();
|
|
21
|
+
}
|
|
22
|
+
onMouseEnter() {
|
|
23
|
+
this.show();
|
|
24
|
+
}
|
|
25
|
+
onMouseLeave() {
|
|
26
|
+
this.hide();
|
|
27
|
+
}
|
|
28
|
+
onFocusIn() {
|
|
29
|
+
this.show();
|
|
30
|
+
}
|
|
31
|
+
onFocusOut() {
|
|
32
|
+
this.hide();
|
|
33
|
+
}
|
|
34
|
+
show() {
|
|
35
|
+
if (this.open || !this.text)
|
|
36
|
+
return;
|
|
37
|
+
this.open = true;
|
|
38
|
+
this.cdr.markForCheck();
|
|
39
|
+
this.createOverlay();
|
|
40
|
+
}
|
|
41
|
+
hide() {
|
|
42
|
+
if (!this.open)
|
|
43
|
+
return;
|
|
44
|
+
this.open = false;
|
|
45
|
+
this.cdr.markForCheck();
|
|
46
|
+
this.destroyOverlay();
|
|
47
|
+
}
|
|
48
|
+
createOverlay() {
|
|
49
|
+
if (this.overlayRef)
|
|
50
|
+
return;
|
|
51
|
+
const triggerEl = this.elementRef.nativeElement.querySelector(":scope > *") ||
|
|
52
|
+
this.elementRef.nativeElement;
|
|
53
|
+
const positionStrategy = this.overlay
|
|
54
|
+
.position()
|
|
55
|
+
.flexibleConnectedTo(triggerEl)
|
|
56
|
+
.withPositions(this.getPositionConfigs())
|
|
57
|
+
.withFlexibleDimensions(false)
|
|
58
|
+
.withPush(true);
|
|
59
|
+
const panelClass = mergeOverlayPanelClass(OVERLAY_BASE_Z_INDEX);
|
|
60
|
+
this.overlayRef = this.overlay.create({
|
|
61
|
+
positionStrategy,
|
|
62
|
+
panelClass,
|
|
63
|
+
});
|
|
64
|
+
const portal = new TemplatePortal(this.tooltipTemplate, this.viewContainerRef);
|
|
65
|
+
this.overlayRef.attach(portal);
|
|
66
|
+
}
|
|
67
|
+
destroyOverlay() {
|
|
68
|
+
if (this.overlayRef) {
|
|
69
|
+
this.overlayRef.detach();
|
|
70
|
+
this.overlayRef.dispose();
|
|
71
|
+
this.overlayRef = null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
getPositionConfigs() {
|
|
75
|
+
const offset = 4;
|
|
76
|
+
switch (this.side) {
|
|
77
|
+
case "bottom":
|
|
78
|
+
return [
|
|
79
|
+
{
|
|
80
|
+
originX: "center",
|
|
81
|
+
originY: "bottom",
|
|
82
|
+
overlayX: "center",
|
|
83
|
+
overlayY: "top",
|
|
84
|
+
offsetY: offset,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
originX: "center",
|
|
88
|
+
originY: "top",
|
|
89
|
+
overlayX: "center",
|
|
90
|
+
overlayY: "bottom",
|
|
91
|
+
offsetY: -offset,
|
|
92
|
+
},
|
|
93
|
+
];
|
|
94
|
+
case "left":
|
|
95
|
+
return [
|
|
96
|
+
{
|
|
97
|
+
originX: "start",
|
|
98
|
+
originY: "center",
|
|
99
|
+
overlayX: "end",
|
|
100
|
+
overlayY: "center",
|
|
101
|
+
offsetX: -offset,
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
originX: "end",
|
|
105
|
+
originY: "center",
|
|
106
|
+
overlayX: "start",
|
|
107
|
+
overlayY: "center",
|
|
108
|
+
offsetX: offset,
|
|
109
|
+
},
|
|
110
|
+
];
|
|
111
|
+
case "right":
|
|
112
|
+
return [
|
|
113
|
+
{
|
|
114
|
+
originX: "end",
|
|
115
|
+
originY: "center",
|
|
116
|
+
overlayX: "start",
|
|
117
|
+
overlayY: "center",
|
|
118
|
+
offsetX: offset,
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
originX: "start",
|
|
122
|
+
originY: "center",
|
|
123
|
+
overlayX: "end",
|
|
124
|
+
overlayY: "center",
|
|
125
|
+
offsetX: -offset,
|
|
126
|
+
},
|
|
127
|
+
];
|
|
128
|
+
case "top":
|
|
129
|
+
default:
|
|
130
|
+
return [
|
|
131
|
+
{
|
|
132
|
+
originX: "center",
|
|
133
|
+
originY: "top",
|
|
134
|
+
overlayX: "center",
|
|
135
|
+
overlayY: "bottom",
|
|
136
|
+
offsetY: -offset,
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
originX: "center",
|
|
140
|
+
originY: "bottom",
|
|
141
|
+
overlayX: "center",
|
|
142
|
+
overlayY: "top",
|
|
143
|
+
offsetY: offset,
|
|
144
|
+
},
|
|
145
|
+
];
|
|
146
|
+
}
|
|
19
147
|
}
|
|
20
148
|
}
|
|
21
|
-
PdmTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
-
PdmTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmTooltipComponent, selector: "pdm-tooltip", inputs: { text: "text", side: "side", className: "className" }, ngImport: i0, template: "<span
|
|
149
|
+
PdmTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTooltipComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
150
|
+
PdmTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmTooltipComponent, selector: "pdm-tooltip", inputs: { text: "text", side: "side", className: "className" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "focusin": "onFocusIn()", "focusout": "onFocusOut()" } }, viewQueries: [{ propertyName: "tooltipTemplate", first: true, predicate: ["tooltipTemplate"], descendants: true }], ngImport: i0, template: "<span\n class=\"relative inline-flex\"\n [ngClass]=\"className\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut()\"\n>\n <ng-content></ng-content>\n\n <!-- Template for CDK Overlay -->\n <ng-template #tooltipTemplate>\n <span\n class=\"pointer-events-none overflow-hidden rounded-md bg-foreground px-3 py-1.5 text-xs text-background animate-in fade-in-0 zoom-in-95\"\n >\n {{ text }}\n </span>\n </ng-template>\n</span>\n", styles: [":host{display:inline-flex}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
23
151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTooltipComponent, decorators: [{
|
|
24
152
|
type: Component,
|
|
25
|
-
args: [{ selector:
|
|
26
|
-
}], propDecorators: { text: [{
|
|
153
|
+
args: [{ selector: "pdm-tooltip", changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"relative inline-flex\"\n [ngClass]=\"className\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut()\"\n>\n <ng-content></ng-content>\n\n <!-- Template for CDK Overlay -->\n <ng-template #tooltipTemplate>\n <span\n class=\"pointer-events-none overflow-hidden rounded-md bg-foreground px-3 py-1.5 text-xs text-background animate-in fade-in-0 zoom-in-95\"\n >\n {{ text }}\n </span>\n </ng-template>\n</span>\n", styles: [":host{display:inline-flex}\n"] }]
|
|
154
|
+
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { text: [{
|
|
27
155
|
type: Input
|
|
28
156
|
}], side: [{
|
|
29
157
|
type: Input
|
|
30
158
|
}], className: [{
|
|
31
159
|
type: Input
|
|
160
|
+
}], tooltipTemplate: [{
|
|
161
|
+
type: ViewChild,
|
|
162
|
+
args: ["tooltipTemplate"]
|
|
163
|
+
}], onMouseEnter: [{
|
|
164
|
+
type: HostListener,
|
|
165
|
+
args: ["mouseenter"]
|
|
166
|
+
}], onMouseLeave: [{
|
|
167
|
+
type: HostListener,
|
|
168
|
+
args: ["mouseleave"]
|
|
169
|
+
}], onFocusIn: [{
|
|
170
|
+
type: HostListener,
|
|
171
|
+
args: ["focusin"]
|
|
172
|
+
}], onFocusOut: [{
|
|
173
|
+
type: HostListener,
|
|
174
|
+
args: ["focusout"]
|
|
32
175
|
}] } });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU8xRSxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTVcsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLFNBQUksR0FBd0MsS0FBSyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDeEIsU0FBSSxHQUFHLEtBQUssQ0FBQztLQVFkO0lBTkMsSUFBSSxhQUFhO1FBQ2YsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFBRSxPQUFPLHlDQUF5QyxDQUFDO1FBQzdFLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQUUsT0FBTywwQ0FBMEMsQ0FBQztRQUM1RSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTztZQUFFLE9BQU8seUNBQXlDLENBQUM7UUFDNUUsT0FBTyw0Q0FBNEMsQ0FBQztJQUN0RCxDQUFDOztnSEFYVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixtSENQaEMsOGJBTUE7MkZEQ2EsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGFBQWEsbUJBRU4sdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLXRvb2x0aXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbVRvb2x0aXBDb21wb25lbnQge1xuICBASW5wdXQoKSB0ZXh0ID0gJyc7XG4gIEBJbnB1dCgpIHNpZGU6ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnID0gJ3RvcCc7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuICBvcGVuID0gZmFsc2U7XG5cbiAgZ2V0IHBvc2l0aW9uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zaWRlID09PSAnYm90dG9tJykgcmV0dXJuICd0b3AtZnVsbCBsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtMS8yIG10LTInO1xuICAgIGlmICh0aGlzLnNpZGUgPT09ICdsZWZ0JykgcmV0dXJuICdyaWdodC1mdWxsIHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiBtci0yJztcbiAgICBpZiAodGhpcy5zaWRlID09PSAncmlnaHQnKSByZXR1cm4gJ2xlZnQtZnVsbCB0b3AtMS8yIC10cmFuc2xhdGUteS0xLzIgbWwtMic7XG4gICAgcmV0dXJuICdib3R0b20tZnVsbCBsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtMS8yIG1iLTInO1xuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cInJlbGF0aXZlIGlubGluZS1mbGV4XCIgW25nQ2xhc3NdPVwiY2xhc3NOYW1lXCIgKG1vdXNlZW50ZXIpPVwib3BlbiA9IHRydWVcIiAobW91c2VsZWF2ZSk9XCJvcGVuID0gZmFsc2VcIiAoZm9jdXNpbik9XCJvcGVuID0gdHJ1ZVwiIChmb2N1c291dCk9XCJvcGVuID0gZmFsc2VcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8c3BhbiAqbmdJZj1cIm9wZW5cIiBbbmdDbGFzc109XCJbJ3BvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgei1bNzBdIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLW1kIGJnLWZvcmVncm91bmQgcHgtMyBweS0xLjUgdGV4dC14cyB0ZXh0LWJhY2tncm91bmQgYW5pbWF0ZS1pbiBmYWRlLWluLTAgem9vbS1pbi05NScsIHBvc2l0aW9uQ2xhc3NdXCI+XG4gICAge3sgdGV4dCB9fVxuICA8L3NwYW4+XG48L3NwYW4+XG4iXX0=
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxTQUFTLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsb0JBQW9CLEdBQ3BCLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFRdEMsTUFBTSxPQUFPLG1CQUFtQjtJQVUvQixZQUNrQixPQUFnQixFQUNoQixnQkFBa0MsRUFDbEMsVUFBbUMsRUFDbkMsR0FBc0I7UUFIdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQ25DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBYi9CLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixTQUFJLEdBQXdDLEtBQUssQ0FBQztRQUNsRCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBSXhCLFNBQUksR0FBRyxLQUFLLENBQUM7UUFDTCxlQUFVLEdBQXNCLElBQUksQ0FBQztJQU8xQyxDQUFDO0lBRUosV0FBVztRQUNWLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBR0QsWUFBWTtRQUNYLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFHRCxZQUFZO1FBQ1gsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2IsQ0FB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aUI7Z0JBaUI1QixZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWTtnQkFNMUIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVk7Z0JBTTFCLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTO2dCQU12QixVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRIb3N0TGlzdGVuZXIsXG5cdElucHV0LFxuXHRPbkRlc3Ryb3ksXG5cdFZpZXdDaGlsZCxcblx0Vmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYsIENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge1xuXHRtZXJnZU92ZXJsYXlQYW5lbENsYXNzLFxuXHRPVkVSTEFZX0JBU0VfWl9JTkRFWCxcbn0gZnJvbSBcIi4uLy4uL292ZXJsYXkvei1pbmRleC1oZWxwZXJcIjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcInBkbS10b29sdGlwXCIsXG5cdHRlbXBsYXRlVXJsOiBcIi4vdG9vbHRpcC5jb21wb25lbnQuaHRtbFwiLFxuXHRzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cIl0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZG1Ub29sdGlwQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblx0QElucHV0KCkgdGV4dCA9IFwiXCI7XG5cdEBJbnB1dCgpIHNpZGU6IFwidG9wXCIgfCBcInJpZ2h0XCIgfCBcImJvdHRvbVwiIHwgXCJsZWZ0XCIgPSBcInRvcFwiO1xuXHRASW5wdXQoKSBjbGFzc05hbWUgPSBcIlwiO1xuXG5cdEBWaWV3Q2hpbGQoXCJ0b29sdGlwVGVtcGxhdGVcIikgdG9vbHRpcFRlbXBsYXRlOiBhbnk7XG5cblx0b3BlbiA9IGZhbHNlO1xuXHRwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXk6IE92ZXJsYXksXG5cdFx0cHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG5cdFx0cHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuXHQpIHt9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5kZXN0cm95T3ZlcmxheSgpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIilcblx0b25Nb3VzZUVudGVyKCk6IHZvaWQge1xuXHRcdHRoaXMuc2hvdygpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIilcblx0b25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuXHRcdHRoaXMuaGlkZSgpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImZvY3VzaW5cIilcblx0b25Gb2N1c0luKCk6IHZvaWQge1xuXHRcdHRoaXMuc2hvdygpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImZvY3Vzb3V0XCIpXG5cdG9uRm9jdXNPdXQoKTogdm9pZCB7XG5cdFx0dGhpcy5oaWRlKCk7XG5cdH1cblxuXHRwcml2YXRlIHNob3coKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMub3BlbiB8fCAhdGhpcy50ZXh0KSByZXR1cm47XG5cblx0XHR0aGlzLm9wZW4gPSB0cnVlO1xuXHRcdHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXHRcdHRoaXMuY3JlYXRlT3ZlcmxheSgpO1xuXHR9XG5cblx0cHJpdmF0ZSBoaWRlKCk6IHZvaWQge1xuXHRcdGlmICghdGhpcy5vcGVuKSByZXR1cm47XG5cblx0XHR0aGlzLm9wZW4gPSBmYWxzZTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0XHR0aGlzLmRlc3Ryb3lPdmVybGF5KCk7XG5cdH1cblxuXHRwcml2YXRlIGNyZWF0ZU92ZXJsYXkoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMub3ZlcmxheVJlZikgcmV0dXJuO1xuXG5cdFx0Y29uc3QgdHJpZ2dlckVsID1cblx0XHRcdHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCI6c2NvcGUgPiAqXCIpIHx8XG5cdFx0XHR0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuXHRcdGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcblx0XHRcdC5wb3NpdGlvbigpXG5cdFx0XHQuZmxleGlibGVDb25uZWN0ZWRUbyh0cmlnZ2VyRWwpXG5cdFx0XHQud2l0aFBvc2l0aW9ucyh0aGlzLmdldFBvc2l0aW9uQ29uZmlncygpKVxuXHRcdFx0LndpdGhGbGV4aWJsZURpbWVuc2lvbnMoZmFsc2UpXG5cdFx0XHQud2l0aFB1c2godHJ1ZSk7XG5cblx0XHRjb25zdCBwYW5lbENsYXNzID0gbWVyZ2VPdmVybGF5UGFuZWxDbGFzcyhPVkVSTEFZX0JBU0VfWl9JTkRFWCk7XG5cblx0XHR0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcblx0XHRcdHBvc2l0aW9uU3RyYXRlZ3ksXG5cdFx0XHRwYW5lbENsYXNzLFxuXHRcdH0pO1xuXG5cdFx0Y29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKFxuXHRcdFx0dGhpcy50b29sdGlwVGVtcGxhdGUsXG5cdFx0XHR0aGlzLnZpZXdDb250YWluZXJSZWYsXG5cdFx0KTtcblx0XHR0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG5cdH1cblxuXHRwcml2YXRlIGRlc3Ryb3lPdmVybGF5KCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcblx0XHRcdHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcblx0XHRcdHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG5cdFx0XHR0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgZ2V0UG9zaXRpb25Db25maWdzKCk6IENvbm5lY3RlZFBvc2l0aW9uW10ge1xuXHRcdGNvbnN0IG9mZnNldCA9IDQ7XG5cblx0XHRzd2l0Y2ggKHRoaXMuc2lkZSkge1xuXHRcdFx0Y2FzZSBcImJvdHRvbVwiOlxuXHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdG9yaWdpblg6IFwiY2VudGVyXCIsXG5cdFx0XHRcdFx0XHRvcmlnaW5ZOiBcImJvdHRvbVwiLFxuXHRcdFx0XHRcdFx0b3ZlcmxheVg6IFwiY2VudGVyXCIsXG5cdFx0XHRcdFx0XHRvdmVybGF5WTogXCJ0b3BcIixcblx0XHRcdFx0XHRcdG9mZnNldFk6IG9mZnNldCxcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdG9yaWdpblg6IFwiY2VudGVyXCIsXG5cdFx0XHRcdFx0XHRvcmlnaW5ZOiBcInRvcFwiLFxuXHRcdFx0XHRcdFx0b3ZlcmxheVg6IFwiY2VudGVyXCIsXG5cdFx0XHRcdFx0XHRvdmVybGF5WTogXCJib3R0b21cIixcblx0XHRcdFx0XHRcdG9mZnNldFk6IC1vZmZzZXQsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XTtcblx0XHRcdGNhc2UgXCJsZWZ0XCI6XG5cdFx0XHRcdHJldHVybiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0b3JpZ2luWDogXCJzdGFydFwiLFxuXHRcdFx0XHRcdFx0b3JpZ2luWTogXCJjZW50ZXJcIixcblx0XHRcdFx0XHRcdG92ZXJsYXlYOiBcImVuZFwiLFxuXHRcdFx0XHRcdFx0b3ZlcmxheVk6IFwiY2VudGVyXCIsXG5cdFx0XHRcdFx0XHRvZmZzZXRYOiAtb2Zmc2V0LFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0b3JpZ2luWDogXCJlbmRcIixcblx0XHRcdFx0XHRcdG9yaWdpblk6IFwiY2VudGVyXCIsXG5cdFx0XHRcdFx0XHRvdmVybGF5WDogXCJzdGFydFwiLFxuXHRcdFx0XHRcdFx0b3ZlcmxheVk6IFwiY2VudGVyXCIsXG5cdFx0XHRcdFx0XHRvZmZzZXRYOiBvZmZzZXQsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XTtcblx0XHRcdGNhc2UgXCJyaWdodFwiOlxuXHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdG9yaWdpblg6IFwiZW5kXCIsXG5cdFx0XHRcdFx0XHRvcmlnaW5ZOiBcImNlbnRlclwiLFxuXHRcdFx0XHRcdFx0b3ZlcmxheVg6IFwic3RhcnRcIixcblx0XHRcdFx0XHRcdG92ZXJsYXlZOiBcImNlbnRlclwiLFxuXHRcdFx0XHRcdFx0b2Zmc2V0WDogb2Zmc2V0LFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0b3JpZ2luWDogXCJzdGFydFwiLFxuXHRcdFx0XHRcdFx0b3JpZ2luWTogXCJjZW50ZXJcIixcblx0XHRcdFx0XHRcdG92ZXJsYXlYOiBcImVuZFwiLFxuXHRcdFx0XHRcdFx0b3ZlcmxheVk6IFwiY2VudGVyXCIsXG5cdFx0XHRcdFx0XHRvZmZzZXRYOiAtb2Zmc2V0LFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdF07XG5cdFx0XHRjYXNlIFwidG9wXCI6XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdG9yaWdpblg6IFwiY2VudGVyXCIsXG5cdFx0XHRcdFx0XHRvcmlnaW5ZOiBcInRvcFwiLFxuXHRcdFx0XHRcdFx0b3ZlcmxheVg6IFwiY2VudGVyXCIsXG5cdFx0XHRcdFx0XHRvdmVybGF5WTogXCJib3R0b21cIixcblx0XHRcdFx0XHRcdG9mZnNldFk6IC1vZmZzZXQsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRvcmlnaW5YOiBcImNlbnRlclwiLFxuXHRcdFx0XHRcdFx0b3JpZ2luWTogXCJib3R0b21cIixcblx0XHRcdFx0XHRcdG92ZXJsYXlYOiBcImNlbnRlclwiLFxuXHRcdFx0XHRcdFx0b3ZlcmxheVk6IFwidG9wXCIsXG5cdFx0XHRcdFx0XHRvZmZzZXRZOiBvZmZzZXQsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XTtcblx0XHR9XG5cdH1cbn1cbiIsIjxzcGFuXG4gIGNsYXNzPVwicmVsYXRpdmUgaW5saW5lLWZsZXhcIlxuICBbbmdDbGFzc109XCJjbGFzc05hbWVcIlxuICAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoKVwiXG4gIChtb3VzZWxlYXZlKT1cIm9uTW91c2VMZWF2ZSgpXCJcbiAgKGZvY3VzaW4pPVwib25Gb2N1c0luKClcIlxuICAoZm9jdXNvdXQpPVwib25Gb2N1c091dCgpXCJcbj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gIDwhLS0gVGVtcGxhdGUgZm9yIENESyBPdmVybGF5IC0tPlxuICA8bmctdGVtcGxhdGUgI3Rvb2x0aXBUZW1wbGF0ZT5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJwb2ludGVyLWV2ZW50cy1ub25lIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLW1kIGJnLWZvcmVncm91bmQgcHgtMyBweS0xLjUgdGV4dC14cyB0ZXh0LWJhY2tncm91bmQgYW5pbWF0ZS1pbiBmYWRlLWluLTAgem9vbS1pbi05NVwiXG4gICAgPlxuICAgICAge3sgdGV4dCB9fVxuICAgIDwvc3Bhbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvc3Bhbj5cbiJdfQ==
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Z-Index helper for overlay components.
|
|
3
|
+
*
|
|
4
|
+
* CRITICAL: Consumer custom panelClass MUST NOT replace the base z-index.
|
|
5
|
+
* This helper ensures z-index is preserved when merging custom classes.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Base z-index class for overlays - MUST be included in any overlay panel.
|
|
9
|
+
* This ensures overlays appear above modals (z-50) and drawers (z-40).
|
|
10
|
+
*/
|
|
11
|
+
export const OVERLAY_BASE_Z_INDEX = "z-[70]";
|
|
12
|
+
/**
|
|
13
|
+
* Merge consumer's panelClass with our base z-index.
|
|
14
|
+
* Consumer classes are APPENDED, not replacing our z-index guarantee.
|
|
15
|
+
*
|
|
16
|
+
* @param baseZIndex - Base z-index class to enforce (default: OVERLAY_BASE_Z_INDEX)
|
|
17
|
+
* @param consumerClasses - Optional additional classes from consumer
|
|
18
|
+
* @returns Array of classes safe for CDK Overlay panelClass
|
|
19
|
+
*/
|
|
20
|
+
export function mergeOverlayPanelClass(baseZIndex = OVERLAY_BASE_Z_INDEX, consumerClasses) {
|
|
21
|
+
const baseClasses = baseZIndex.split(" ");
|
|
22
|
+
if (!consumerClasses) {
|
|
23
|
+
return baseClasses;
|
|
24
|
+
}
|
|
25
|
+
const consumerClassArray = Array.isArray(consumerClasses)
|
|
26
|
+
? consumerClasses
|
|
27
|
+
: consumerClasses.split(" ");
|
|
28
|
+
// Consumer classes are appended AFTER base classes
|
|
29
|
+
// This ensures z-index from baseClasses is preserved first
|
|
30
|
+
return [...baseClasses, ...consumerClassArray];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create OverlayConfig with guaranteed z-index.
|
|
34
|
+
* Use this instead of direct OverlayConfig to ensure z-index enforcement.
|
|
35
|
+
*
|
|
36
|
+
* @param baseConfig - Base overlay configuration
|
|
37
|
+
* @param consumerPanelClass - Optional consumer panelClass to merge
|
|
38
|
+
* @returns OverlayConfig with z-index guarantee
|
|
39
|
+
*/
|
|
40
|
+
export function createZIndexEnforcedOverlay(baseConfig, consumerPanelClass) {
|
|
41
|
+
const mergedClasses = mergeOverlayPanelClass(OVERLAY_BASE_Z_INDEX, consumerPanelClass);
|
|
42
|
+
const existingPanelClass = baseConfig.panelClass;
|
|
43
|
+
if (existingPanelClass) {
|
|
44
|
+
const existingArray = Array.isArray(existingPanelClass)
|
|
45
|
+
? existingPanelClass
|
|
46
|
+
: existingPanelClass.split(" ");
|
|
47
|
+
return {
|
|
48
|
+
...baseConfig,
|
|
49
|
+
panelClass: [...mergedClasses, ...existingArray],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
...baseConfig,
|
|
54
|
+
panelClass: mergedClasses,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Helper to extract z-index from a class string for debugging.
|
|
59
|
+
*/
|
|
60
|
+
export function extractZIndex(classes) {
|
|
61
|
+
const classArray = Array.isArray(classes) ? classes : classes.split(" ");
|
|
62
|
+
for (const cls of classArray) {
|
|
63
|
+
if (cls.startsWith("z-") || cls.startsWith("z-[")) {
|
|
64
|
+
return cls;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiei1pbmRleC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL292ZXJsYXkvei1pbmRleC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0E7Ozs7O0dBS0c7QUFFSDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxRQUFRLENBQUM7QUFFN0M7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FDckMsYUFBcUIsb0JBQW9CLEVBQ3pDLGVBQW1DO0lBRW5DLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFMUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtRQUNyQixPQUFPLFdBQVcsQ0FBQztLQUNuQjtJQUVELE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDeEQsQ0FBQyxDQUFDLGVBQWU7UUFDakIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFOUIsbURBQW1EO0lBQ25ELDJEQUEyRDtJQUMzRCxPQUFPLENBQUMsR0FBRyxXQUFXLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQixDQUMxQyxVQUF5QixFQUN6QixrQkFBc0M7SUFFdEMsTUFBTSxhQUFhLEdBQUcsc0JBQXNCLENBQzNDLG9CQUFvQixFQUNwQixrQkFBa0IsQ0FDbEIsQ0FBQztJQUVGLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQztJQUVqRCxJQUFJLGtCQUFrQixFQUFFO1FBQ3ZCLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7WUFDdEQsQ0FBQyxDQUFDLGtCQUFrQjtZQUNwQixDQUFDLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWpDLE9BQU87WUFDTixHQUFHLFVBQVU7WUFDYixVQUFVLEVBQUUsQ0FBQyxHQUFHLGFBQWEsRUFBRSxHQUFHLGFBQWEsQ0FBQztTQUNoRCxDQUFDO0tBQ0Y7SUFFRCxPQUFPO1FBQ04sR0FBRyxVQUFVO1FBQ2IsVUFBVSxFQUFFLGFBQWE7S0FDekIsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsT0FBMEI7SUFDdkQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXpFLEtBQUssTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFO1FBQzdCLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xELE9BQU8sR0FBRyxDQUFDO1NBQ1g7S0FDRDtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgT3ZlcmxheUNvbmZpZyB7XG5cdHBhbmVsQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcblx0Ly8gLi4uIG90aGVyIHByb3BlcnRpZXNcbn1cblxuLyoqXG4gKiBaLUluZGV4IGhlbHBlciBmb3Igb3ZlcmxheSBjb21wb25lbnRzLlxuICpcbiAqIENSSVRJQ0FMOiBDb25zdW1lciBjdXN0b20gcGFuZWxDbGFzcyBNVVNUIE5PVCByZXBsYWNlIHRoZSBiYXNlIHotaW5kZXguXG4gKiBUaGlzIGhlbHBlciBlbnN1cmVzIHotaW5kZXggaXMgcHJlc2VydmVkIHdoZW4gbWVyZ2luZyBjdXN0b20gY2xhc3Nlcy5cbiAqL1xuXG4vKipcbiAqIEJhc2Ugei1pbmRleCBjbGFzcyBmb3Igb3ZlcmxheXMgLSBNVVNUIGJlIGluY2x1ZGVkIGluIGFueSBvdmVybGF5IHBhbmVsLlxuICogVGhpcyBlbnN1cmVzIG92ZXJsYXlzIGFwcGVhciBhYm92ZSBtb2RhbHMgKHotNTApIGFuZCBkcmF3ZXJzICh6LTQwKS5cbiAqL1xuZXhwb3J0IGNvbnN0IE9WRVJMQVlfQkFTRV9aX0lOREVYID0gXCJ6LVs3MF1cIjtcblxuLyoqXG4gKiBNZXJnZSBjb25zdW1lcidzIHBhbmVsQ2xhc3Mgd2l0aCBvdXIgYmFzZSB6LWluZGV4LlxuICogQ29uc3VtZXIgY2xhc3NlcyBhcmUgQVBQRU5ERUQsIG5vdCByZXBsYWNpbmcgb3VyIHotaW5kZXggZ3VhcmFudGVlLlxuICpcbiAqIEBwYXJhbSBiYXNlWkluZGV4IC0gQmFzZSB6LWluZGV4IGNsYXNzIHRvIGVuZm9yY2UgKGRlZmF1bHQ6IE9WRVJMQVlfQkFTRV9aX0lOREVYKVxuICogQHBhcmFtIGNvbnN1bWVyQ2xhc3NlcyAtIE9wdGlvbmFsIGFkZGl0aW9uYWwgY2xhc3NlcyBmcm9tIGNvbnN1bWVyXG4gKiBAcmV0dXJucyBBcnJheSBvZiBjbGFzc2VzIHNhZmUgZm9yIENESyBPdmVybGF5IHBhbmVsQ2xhc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlT3ZlcmxheVBhbmVsQ2xhc3MoXG5cdGJhc2VaSW5kZXg6IHN0cmluZyA9IE9WRVJMQVlfQkFTRV9aX0lOREVYLFxuXHRjb25zdW1lckNsYXNzZXM/OiBzdHJpbmcgfCBzdHJpbmdbXSxcbik6IHN0cmluZ1tdIHtcblx0Y29uc3QgYmFzZUNsYXNzZXMgPSBiYXNlWkluZGV4LnNwbGl0KFwiIFwiKTtcblxuXHRpZiAoIWNvbnN1bWVyQ2xhc3Nlcykge1xuXHRcdHJldHVybiBiYXNlQ2xhc3Nlcztcblx0fVxuXG5cdGNvbnN0IGNvbnN1bWVyQ2xhc3NBcnJheSA9IEFycmF5LmlzQXJyYXkoY29uc3VtZXJDbGFzc2VzKVxuXHRcdD8gY29uc3VtZXJDbGFzc2VzXG5cdFx0OiBjb25zdW1lckNsYXNzZXMuc3BsaXQoXCIgXCIpO1xuXG5cdC8vIENvbnN1bWVyIGNsYXNzZXMgYXJlIGFwcGVuZGVkIEFGVEVSIGJhc2UgY2xhc3Nlc1xuXHQvLyBUaGlzIGVuc3VyZXMgei1pbmRleCBmcm9tIGJhc2VDbGFzc2VzIGlzIHByZXNlcnZlZCBmaXJzdFxuXHRyZXR1cm4gWy4uLmJhc2VDbGFzc2VzLCAuLi5jb25zdW1lckNsYXNzQXJyYXldO1xufVxuXG4vKipcbiAqIENyZWF0ZSBPdmVybGF5Q29uZmlnIHdpdGggZ3VhcmFudGVlZCB6LWluZGV4LlxuICogVXNlIHRoaXMgaW5zdGVhZCBvZiBkaXJlY3QgT3ZlcmxheUNvbmZpZyB0byBlbnN1cmUgei1pbmRleCBlbmZvcmNlbWVudC5cbiAqXG4gKiBAcGFyYW0gYmFzZUNvbmZpZyAtIEJhc2Ugb3ZlcmxheSBjb25maWd1cmF0aW9uXG4gKiBAcGFyYW0gY29uc3VtZXJQYW5lbENsYXNzIC0gT3B0aW9uYWwgY29uc3VtZXIgcGFuZWxDbGFzcyB0byBtZXJnZVxuICogQHJldHVybnMgT3ZlcmxheUNvbmZpZyB3aXRoIHotaW5kZXggZ3VhcmFudGVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVaSW5kZXhFbmZvcmNlZE92ZXJsYXkoXG5cdGJhc2VDb25maWc6IE92ZXJsYXlDb25maWcsXG5cdGNvbnN1bWVyUGFuZWxDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdLFxuKTogT3ZlcmxheUNvbmZpZyB7XG5cdGNvbnN0IG1lcmdlZENsYXNzZXMgPSBtZXJnZU92ZXJsYXlQYW5lbENsYXNzKFxuXHRcdE9WRVJMQVlfQkFTRV9aX0lOREVYLFxuXHRcdGNvbnN1bWVyUGFuZWxDbGFzcyxcblx0KTtcblxuXHRjb25zdCBleGlzdGluZ1BhbmVsQ2xhc3MgPSBiYXNlQ29uZmlnLnBhbmVsQ2xhc3M7XG5cblx0aWYgKGV4aXN0aW5nUGFuZWxDbGFzcykge1xuXHRcdGNvbnN0IGV4aXN0aW5nQXJyYXkgPSBBcnJheS5pc0FycmF5KGV4aXN0aW5nUGFuZWxDbGFzcylcblx0XHRcdD8gZXhpc3RpbmdQYW5lbENsYXNzXG5cdFx0XHQ6IGV4aXN0aW5nUGFuZWxDbGFzcy5zcGxpdChcIiBcIik7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0Li4uYmFzZUNvbmZpZyxcblx0XHRcdHBhbmVsQ2xhc3M6IFsuLi5tZXJnZWRDbGFzc2VzLCAuLi5leGlzdGluZ0FycmF5XSxcblx0XHR9O1xuXHR9XG5cblx0cmV0dXJuIHtcblx0XHQuLi5iYXNlQ29uZmlnLFxuXHRcdHBhbmVsQ2xhc3M6IG1lcmdlZENsYXNzZXMsXG5cdH07XG59XG5cbi8qKlxuICogSGVscGVyIHRvIGV4dHJhY3Qgei1pbmRleCBmcm9tIGEgY2xhc3Mgc3RyaW5nIGZvciBkZWJ1Z2dpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0WkluZGV4KGNsYXNzZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nIHwgbnVsbCB7XG5cdGNvbnN0IGNsYXNzQXJyYXkgPSBBcnJheS5pc0FycmF5KGNsYXNzZXMpID8gY2xhc3NlcyA6IGNsYXNzZXMuc3BsaXQoXCIgXCIpO1xuXG5cdGZvciAoY29uc3QgY2xzIG9mIGNsYXNzQXJyYXkpIHtcblx0XHRpZiAoY2xzLnN0YXJ0c1dpdGgoXCJ6LVwiKSB8fCBjbHMuc3RhcnRzV2l0aChcInotW1wiKSkge1xuXHRcdFx0cmV0dXJuIGNscztcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gbnVsbDtcbn1cbiJdfQ==
|
|
@@ -5,15 +5,15 @@
|
|
|
5
5
|
* 1. base (z-0) - Elementos normales del DOM
|
|
6
6
|
* 2. dropdown (z-10) - Selects, combobox, date-pickers
|
|
7
7
|
* 3. sticky (z-20) - Headers, navigation bars
|
|
8
|
-
* 4.
|
|
8
|
+
* 4. drawerBackdrop (z-30) - Backdrop de drawers
|
|
9
9
|
* 5. drawer (z-40) - Sidebar drawer, sheets laterales
|
|
10
|
-
* 6.
|
|
11
|
-
* 7. modal
|
|
12
|
-
* 8. popover (z-
|
|
10
|
+
* 6. modalBackdrop (z-40) - Backdrop de modals ( mismo nivel que drawer)
|
|
11
|
+
* 7. modal (z-50) - Dialogs, alert-dialogs
|
|
12
|
+
* 8. popover (z-[70]) - Tooltips, dropdowns DENTRO de modals
|
|
13
13
|
* 9. toast (z-[100]) - Notificaciones que deben estar sobre TODO
|
|
14
14
|
*
|
|
15
15
|
* REGLA CRÍTICA:
|
|
16
|
-
* - Componentes overlay (select options, dropdown menu, tooltip) SIEMPRE z-
|
|
16
|
+
* - Componentes overlay (select options, dropdown menu, tooltip) SIEMPRE z-[70] o mayor
|
|
17
17
|
* - Esto permite que funcionen DENTRO de modals (z-50)
|
|
18
18
|
* - Backdrop de modal debe ser z-40 para estar DEBAJO del contenido del modal (z-50)
|
|
19
19
|
*/
|
|
@@ -21,57 +21,53 @@ export const Z_INDEX = {
|
|
|
21
21
|
/**
|
|
22
22
|
* Base - contenido normal del DOM
|
|
23
23
|
*/
|
|
24
|
-
base:
|
|
24
|
+
base: "z-0",
|
|
25
25
|
/**
|
|
26
26
|
* Dropdown - Selects, combobox, date-pickers
|
|
27
|
-
* Debe estar SOBRE contenido normal pero BAJO
|
|
27
|
+
* Debe estar SOBRE contenido normal pero BAJO overlays
|
|
28
28
|
*/
|
|
29
|
-
dropdown:
|
|
29
|
+
dropdown: "z-10",
|
|
30
30
|
/**
|
|
31
31
|
* Sticky - Headers, navigation fija
|
|
32
32
|
*/
|
|
33
|
-
sticky:
|
|
34
|
-
/**
|
|
35
|
-
* Overlay - Popovers, hover cards, context menus
|
|
36
|
-
* Debe estar SOBRE sticky pero BAJO modals
|
|
37
|
-
*/
|
|
38
|
-
overlay: 'z-30',
|
|
33
|
+
sticky: "z-20",
|
|
39
34
|
/**
|
|
40
35
|
* Drawer backdrop - Backdrop de sidebar drawer
|
|
41
|
-
* Debe estar DEBAJO del drawer panel
|
|
36
|
+
* Debe estar DEBAJO del drawer panel y DEBAJO de modals
|
|
42
37
|
*/
|
|
43
|
-
drawerBackdrop:
|
|
38
|
+
drawerBackdrop: "z-30",
|
|
44
39
|
/**
|
|
45
40
|
* Drawer - Sidebar drawer, sheets laterales
|
|
46
41
|
* Debe estar SOBRE su backdrop pero BAJO modals
|
|
47
42
|
*/
|
|
48
|
-
drawer:
|
|
43
|
+
drawer: "z-40",
|
|
49
44
|
/**
|
|
50
45
|
* Modal backdrop - Backdrop de dialogs
|
|
51
|
-
*
|
|
46
|
+
* Mismo nivel que drawer backdrop (z-40)
|
|
52
47
|
*/
|
|
53
|
-
modalBackdrop:
|
|
48
|
+
modalBackdrop: "z-40",
|
|
54
49
|
/**
|
|
55
|
-
* Modal - Dialogs, alert-dialogs
|
|
50
|
+
* Modal - Dialogs, alert-dialogs
|
|
56
51
|
* Debe estar SOBRE su backdrop
|
|
57
52
|
*/
|
|
58
|
-
modal:
|
|
53
|
+
modal: "z-50",
|
|
59
54
|
/**
|
|
60
55
|
* Popover - Tooltips, dropdowns, selects options DENTRO de modals
|
|
61
56
|
* CRÍTICO: Debe ser MAYOR que modal (z-50) para aparecer sobre modals
|
|
57
|
+
* USAR SIEMPRE mergeOverlayPanelClass() para asegurar este valor
|
|
62
58
|
*/
|
|
63
|
-
popover:
|
|
59
|
+
popover: "z-[70]",
|
|
64
60
|
/**
|
|
65
61
|
* Toast - Notificaciones globales
|
|
66
62
|
* Debe estar sobre TODO
|
|
67
63
|
*/
|
|
68
|
-
toast:
|
|
64
|
+
toast: "z-[100]",
|
|
69
65
|
};
|
|
70
66
|
/**
|
|
71
67
|
* Helper para debugging z-index issues
|
|
72
68
|
*/
|
|
73
69
|
export function logZIndexStack(element) {
|
|
74
|
-
if (typeof window ===
|
|
70
|
+
if (typeof window === "undefined")
|
|
75
71
|
return;
|
|
76
72
|
let current = element;
|
|
77
73
|
const stack = [];
|
|
@@ -79,15 +75,16 @@ export function logZIndexStack(element) {
|
|
|
79
75
|
const computed = window.getComputedStyle(current);
|
|
80
76
|
const zIndex = computed.zIndex;
|
|
81
77
|
const position = computed.position;
|
|
82
|
-
if (zIndex !==
|
|
78
|
+
if (zIndex !== "auto") {
|
|
83
79
|
stack.push({
|
|
84
|
-
element: current.tagName +
|
|
80
|
+
element: current.tagName +
|
|
81
|
+
(current.className ? `.${current.className.split(" ")[0]}` : ""),
|
|
85
82
|
zIndex,
|
|
86
|
-
position
|
|
83
|
+
position,
|
|
87
84
|
});
|
|
88
85
|
}
|
|
89
86
|
current = current.parentElement;
|
|
90
87
|
}
|
|
91
88
|
console.table(stack);
|
|
92
89
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiei1pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvei1pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUgsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3RCOztPQUVHO0lBQ0gsSUFBSSxFQUFFLEtBQUs7SUFFWDs7O09BR0c7SUFDSCxRQUFRLEVBQUUsTUFBTTtJQUVoQjs7T0FFRztJQUNILE1BQU0sRUFBRSxNQUFNO0lBRWQ7OztPQUdHO0lBQ0gsY0FBYyxFQUFFLE1BQU07SUFFdEI7OztPQUdHO0lBQ0gsTUFBTSxFQUFFLE1BQU07SUFFZDs7O09BR0c7SUFDSCxhQUFhLEVBQUUsTUFBTTtJQUVyQjs7O09BR0c7SUFDSCxLQUFLLEVBQUUsTUFBTTtJQUViOzs7O09BSUc7SUFDSCxPQUFPLEVBQUUsUUFBUTtJQUVqQjs7O09BR0c7SUFDSCxLQUFLLEVBQUUsU0FBUztDQUNQLENBQUM7QUFFWDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBb0I7SUFDbEQsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXO1FBQUUsT0FBTztJQUUxQyxJQUFJLE9BQU8sR0FBdUIsT0FBTyxDQUFDO0lBQzFDLE1BQU0sS0FBSyxHQUNWLEVBQUUsQ0FBQztJQUVKLE9BQU8sT0FBTyxJQUFJLE9BQU8sS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFO1FBQzVDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQy9CLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFFbkMsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFO1lBQ3RCLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ1YsT0FBTyxFQUNOLE9BQU8sQ0FBQyxPQUFPO29CQUNmLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pFLE1BQU07Z0JBQ04sUUFBUTthQUNSLENBQUMsQ0FBQztTQUNIO1FBRUQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7S0FDaEM7SUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFotSW5kZXggU2NhbGUgLSBTaXN0ZW1hIGNlbnRyYWxpemFkbyBkZSB6LWluZGV4XG4gKlxuICogSkVSQVJRVcONQSAoZGUgbWVub3IgYSBtYXlvcik6XG4gKiAxLiBiYXNlICh6LTApIC0gRWxlbWVudG9zIG5vcm1hbGVzIGRlbCBET01cbiAqIDIuIGRyb3Bkb3duICh6LTEwKSAtIFNlbGVjdHMsIGNvbWJvYm94LCBkYXRlLXBpY2tlcnNcbiAqIDMuIHN0aWNreSAoei0yMCkgLSBIZWFkZXJzLCBuYXZpZ2F0aW9uIGJhcnNcbiAqIDQuIGRyYXdlckJhY2tkcm9wICh6LTMwKSAtIEJhY2tkcm9wIGRlIGRyYXdlcnNcbiAqIDUuIGRyYXdlciAoei00MCkgLSBTaWRlYmFyIGRyYXdlciwgc2hlZXRzIGxhdGVyYWxlc1xuICogNi4gbW9kYWxCYWNrZHJvcCAoei00MCkgLSBCYWNrZHJvcCBkZSBtb2RhbHMgKCBtaXNtbyBuaXZlbCBxdWUgZHJhd2VyKVxuICogNy4gbW9kYWwgKHotNTApIC0gRGlhbG9ncywgYWxlcnQtZGlhbG9nc1xuICogOC4gcG9wb3ZlciAoei1bNzBdKSAtIFRvb2x0aXBzLCBkcm9wZG93bnMgREVOVFJPIGRlIG1vZGFsc1xuICogOS4gdG9hc3QgKHotWzEwMF0pIC0gTm90aWZpY2FjaW9uZXMgcXVlIGRlYmVuIGVzdGFyIHNvYnJlIFRPRE9cbiAqXG4gKiBSRUdMQSBDUsONVElDQTpcbiAqIC0gQ29tcG9uZW50ZXMgb3ZlcmxheSAoc2VsZWN0IG9wdGlvbnMsIGRyb3Bkb3duIG1lbnUsIHRvb2x0aXApIFNJRU1QUkUgei1bNzBdIG8gbWF5b3JcbiAqIC0gRXN0byBwZXJtaXRlIHF1ZSBmdW5jaW9uZW4gREVOVFJPIGRlIG1vZGFscyAoei01MClcbiAqIC0gQmFja2Ryb3AgZGUgbW9kYWwgZGViZSBzZXIgei00MCBwYXJhIGVzdGFyIERFQkFKTyBkZWwgY29udGVuaWRvIGRlbCBtb2RhbCAoei01MClcbiAqL1xuXG5leHBvcnQgY29uc3QgWl9JTkRFWCA9IHtcblx0LyoqXG5cdCAqIEJhc2UgLSBjb250ZW5pZG8gbm9ybWFsIGRlbCBET01cblx0ICovXG5cdGJhc2U6IFwiei0wXCIsXG5cblx0LyoqXG5cdCAqIERyb3Bkb3duIC0gU2VsZWN0cywgY29tYm9ib3gsIGRhdGUtcGlja2Vyc1xuXHQgKiBEZWJlIGVzdGFyIFNPQlJFIGNvbnRlbmlkbyBub3JtYWwgcGVybyBCQUpPIG92ZXJsYXlzXG5cdCAqL1xuXHRkcm9wZG93bjogXCJ6LTEwXCIsXG5cblx0LyoqXG5cdCAqIFN0aWNreSAtIEhlYWRlcnMsIG5hdmlnYXRpb24gZmlqYVxuXHQgKi9cblx0c3RpY2t5OiBcInotMjBcIixcblxuXHQvKipcblx0ICogRHJhd2VyIGJhY2tkcm9wIC0gQmFja2Ryb3AgZGUgc2lkZWJhciBkcmF3ZXJcblx0ICogRGViZSBlc3RhciBERUJBSk8gZGVsIGRyYXdlciBwYW5lbCB5IERFQkFKTyBkZSBtb2RhbHNcblx0ICovXG5cdGRyYXdlckJhY2tkcm9wOiBcInotMzBcIixcblxuXHQvKipcblx0ICogRHJhd2VyIC0gU2lkZWJhciBkcmF3ZXIsIHNoZWV0cyBsYXRlcmFsZXNcblx0ICogRGViZSBlc3RhciBTT0JSRSBzdSBiYWNrZHJvcCBwZXJvIEJBSk8gbW9kYWxzXG5cdCAqL1xuXHRkcmF3ZXI6IFwiei00MFwiLFxuXG5cdC8qKlxuXHQgKiBNb2RhbCBiYWNrZHJvcCAtIEJhY2tkcm9wIGRlIGRpYWxvZ3Ncblx0ICogTWlzbW8gbml2ZWwgcXVlIGRyYXdlciBiYWNrZHJvcCAoei00MClcblx0ICovXG5cdG1vZGFsQmFja2Ryb3A6IFwiei00MFwiLFxuXG5cdC8qKlxuXHQgKiBNb2RhbCAtIERpYWxvZ3MsIGFsZXJ0LWRpYWxvZ3Ncblx0ICogRGViZSBlc3RhciBTT0JSRSBzdSBiYWNrZHJvcFxuXHQgKi9cblx0bW9kYWw6IFwiei01MFwiLFxuXG5cdC8qKlxuXHQgKiBQb3BvdmVyIC0gVG9vbHRpcHMsIGRyb3Bkb3ducywgc2VsZWN0cyBvcHRpb25zIERFTlRSTyBkZSBtb2RhbHNcblx0ICogQ1LDjVRJQ086IERlYmUgc2VyIE1BWU9SIHF1ZSBtb2RhbCAoei01MCkgcGFyYSBhcGFyZWNlciBzb2JyZSBtb2RhbHNcblx0ICogVVNBUiBTSUVNUFJFIG1lcmdlT3ZlcmxheVBhbmVsQ2xhc3MoKSBwYXJhIGFzZWd1cmFyIGVzdGUgdmFsb3Jcblx0ICovXG5cdHBvcG92ZXI6IFwiei1bNzBdXCIsXG5cblx0LyoqXG5cdCAqIFRvYXN0IC0gTm90aWZpY2FjaW9uZXMgZ2xvYmFsZXNcblx0ICogRGViZSBlc3RhciBzb2JyZSBUT0RPXG5cdCAqL1xuXHR0b2FzdDogXCJ6LVsxMDBdXCIsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEhlbHBlciBwYXJhIGRlYnVnZ2luZyB6LWluZGV4IGlzc3Vlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbG9nWkluZGV4U3RhY2soZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcblx0aWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcblxuXHRsZXQgY3VycmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDtcblx0Y29uc3Qgc3RhY2s6IEFycmF5PHsgZWxlbWVudDogc3RyaW5nOyB6SW5kZXg6IHN0cmluZzsgcG9zaXRpb246IHN0cmluZyB9PiA9XG5cdFx0W107XG5cblx0d2hpbGUgKGN1cnJlbnQgJiYgY3VycmVudCAhPT0gZG9jdW1lbnQuYm9keSkge1xuXHRcdGNvbnN0IGNvbXB1dGVkID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoY3VycmVudCk7XG5cdFx0Y29uc3QgekluZGV4ID0gY29tcHV0ZWQuekluZGV4O1xuXHRcdGNvbnN0IHBvc2l0aW9uID0gY29tcHV0ZWQucG9zaXRpb247XG5cblx0XHRpZiAoekluZGV4ICE9PSBcImF1dG9cIikge1xuXHRcdFx0c3RhY2sucHVzaCh7XG5cdFx0XHRcdGVsZW1lbnQ6XG5cdFx0XHRcdFx0Y3VycmVudC50YWdOYW1lICtcblx0XHRcdFx0XHQoY3VycmVudC5jbGFzc05hbWUgPyBgLiR7Y3VycmVudC5jbGFzc05hbWUuc3BsaXQoXCIgXCIpWzBdfWAgOiBcIlwiKSxcblx0XHRcdFx0ekluZGV4LFxuXHRcdFx0XHRwb3NpdGlvbixcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudEVsZW1lbnQ7XG5cdH1cblxuXHRjb25zb2xlLnRhYmxlKHN0YWNrKTtcbn1cbiJdfQ==
|