pdm-ui-kit 0.1.50 → 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 +356 -4
- package/esm2020/lib/components/alert-dialog/alert-dialog.component.mjs +3 -3
- package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +37 -4
- package/esm2020/lib/components/button-group/button-group.component.mjs +208 -182
- package/esm2020/lib/components/calendar/calendar.component.mjs +3 -3
- package/esm2020/lib/components/card/card.component.mjs +36 -53
- package/esm2020/lib/components/combobox/combobox.component.mjs +136 -14
- package/esm2020/lib/components/command/command.component.mjs +3 -3
- package/esm2020/lib/components/context-menu/context-menu.component.mjs +121 -42
- package/esm2020/lib/components/data-table/data-table.component.mjs +214 -16
- package/esm2020/lib/components/date-picker/date-picker.component.mjs +66 -54
- package/esm2020/lib/components/dialog/dialog.component.mjs +171 -38
- package/esm2020/lib/components/draggable-table/draggable-table.component.mjs +300 -0
- package/esm2020/lib/components/drawer/drawer.component.mjs +123 -16
- package/esm2020/lib/components/dropdown-menu/dropdown-menu.component.mjs +3 -2
- 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/navigation-menu/navigation-menu.component.mjs +25 -3
- package/esm2020/lib/components/pagination/pagination.component.mjs +3 -3
- package/esm2020/lib/components/popover/popover.component.mjs +107 -73
- package/esm2020/lib/components/select/select.component.mjs +26 -23
- package/esm2020/lib/components/sheet/sheet.component.mjs +68 -12
- package/esm2020/lib/components/sidebar/sidebar.component.mjs +52 -5
- package/esm2020/lib/components/table/table.component.mjs +165 -192
- 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/pdm-ui-kit.module.mjs +5 -1
- package/esm2020/lib/utils/responsive.mjs +143 -0
- package/esm2020/lib/utils/z-index.mjs +90 -0
- package/esm2020/public-api.mjs +67 -63
- package/fesm2015/pdm-ui-kit.mjs +2628 -847
- package/fesm2015/pdm-ui-kit.mjs.map +1 -1
- package/fesm2020/pdm-ui-kit.mjs +2630 -845
- package/fesm2020/pdm-ui-kit.mjs.map +1 -1
- package/lib/components/breadcrumb/breadcrumb.component.d.ts +23 -1
- package/lib/components/button-group/button-group.component.d.ts +8 -2
- package/lib/components/card/card.component.d.ts +32 -19
- 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/data-table/data-table.component.d.ts +172 -14
- package/lib/components/date-picker/date-picker.component.d.ts +5 -6
- package/lib/components/dialog/dialog.component.d.ts +38 -4
- package/lib/components/draggable-table/draggable-table.component.d.ts +74 -0
- package/lib/components/drawer/drawer.component.d.ts +65 -7
- 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/navigation-menu/navigation-menu.component.d.ts +22 -1
- package/lib/components/popover/popover.component.d.ts +13 -12
- package/lib/components/select/select.component.d.ts +4 -5
- package/lib/components/sheet/sheet.component.d.ts +30 -3
- package/lib/components/sidebar/sidebar.component.d.ts +39 -1
- package/lib/components/table/table.component.d.ts +47 -26
- 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/pdm-ui-kit.module.d.ts +42 -41
- package/lib/utils/responsive.d.ts +107 -0
- package/lib/utils/z-index.d.ts +69 -0
- package/package.json +10 -8
- package/public-api.d.ts +66 -62
- package/src/lib/styles/tokens.css +182 -0
|
@@ -2,14 +2,38 @@ import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input,
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
4
|
import * as i2 from "../icon/icon.component";
|
|
5
|
+
/**
|
|
6
|
+
* Sheet/Side panel component con soporte responsive
|
|
7
|
+
*
|
|
8
|
+
* MEJORADO en v0.2.0:
|
|
9
|
+
* - Tamaños configurables
|
|
10
|
+
* - Mejor manejo de overflow
|
|
11
|
+
* - Responsive sizes
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* <pdm-sheet [open]="isOpen" side="right" size="md">
|
|
15
|
+
* <h3>Settings</h3>
|
|
16
|
+
* <p>Content here</p>
|
|
17
|
+
* </pdm-sheet>
|
|
18
|
+
*/
|
|
5
19
|
export class PdmSheetComponent {
|
|
6
20
|
constructor() {
|
|
7
21
|
this.open = false;
|
|
22
|
+
/**
|
|
23
|
+
* Lado desde donde aparece el sheet
|
|
24
|
+
*/
|
|
8
25
|
this.side = 'right';
|
|
26
|
+
/**
|
|
27
|
+
* Tamaño del sheet
|
|
28
|
+
* - sm: 320px (side) / 40vh (top/bottom)
|
|
29
|
+
* - md: 400px (side) / 50vh (top/bottom) (default)
|
|
30
|
+
* - lg: 500px (side) / 66vh (top/bottom)
|
|
31
|
+
* - xl: 640px (side) / 80vh (top/bottom)
|
|
32
|
+
* - full: 100%
|
|
33
|
+
*/
|
|
34
|
+
this.size = 'md';
|
|
9
35
|
this.className = '';
|
|
10
|
-
/** Close when the ESC key is pressed. Default: `true`. */
|
|
11
36
|
this.closeOnEsc = true;
|
|
12
|
-
/** Close when the backdrop is clicked. Default: `true`. */
|
|
13
37
|
this.closeOnBackdropClick = true;
|
|
14
38
|
this.openChange = new EventEmitter();
|
|
15
39
|
}
|
|
@@ -27,24 +51,56 @@ export class PdmSheetComponent {
|
|
|
27
51
|
this.openChange.emit(false);
|
|
28
52
|
}
|
|
29
53
|
get panelClass() {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
54
|
+
const base = 'absolute bg-background border-border shadow-lg overflow-auto';
|
|
55
|
+
const position = this.getPositionClass();
|
|
56
|
+
const sizing = this.getSizingClass();
|
|
57
|
+
return `${base} ${position} ${sizing} ${this.className}`.trim();
|
|
58
|
+
}
|
|
59
|
+
getPositionClass() {
|
|
60
|
+
const map = {
|
|
61
|
+
left: 'left-0 top-0 h-full border-r',
|
|
62
|
+
right: 'right-0 top-0 h-full border-l',
|
|
63
|
+
top: 'top-0 left-0 w-full border-b',
|
|
64
|
+
bottom: 'bottom-0 left-0 w-full border-t'
|
|
65
|
+
};
|
|
66
|
+
return map[this.side];
|
|
67
|
+
}
|
|
68
|
+
getSizingClass() {
|
|
69
|
+
if (this.size === 'full') {
|
|
70
|
+
return 'w-full h-full';
|
|
71
|
+
}
|
|
72
|
+
const isHorizontal = this.side === 'left' || this.side === 'right';
|
|
73
|
+
if (isHorizontal) {
|
|
74
|
+
const widthMap = {
|
|
75
|
+
sm: 'w-full max-w-[320px] sm:max-w-[320px]',
|
|
76
|
+
md: 'w-full max-w-[360px] sm:max-w-[400px]',
|
|
77
|
+
lg: 'w-full max-w-[400px] sm:max-w-[500px]',
|
|
78
|
+
xl: 'w-full max-w-[500px] sm:max-w-[640px]'
|
|
79
|
+
};
|
|
80
|
+
return widthMap[this.size] || widthMap.md;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const heightMap = {
|
|
84
|
+
sm: 'max-h-[40vh]',
|
|
85
|
+
md: 'max-h-[50vh]',
|
|
86
|
+
lg: 'max-h-[66vh]',
|
|
87
|
+
xl: 'max-h-[80vh]'
|
|
88
|
+
};
|
|
89
|
+
return heightMap[this.size] || heightMap.md;
|
|
90
|
+
}
|
|
37
91
|
}
|
|
38
92
|
}
|
|
39
93
|
PdmSheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
-
PdmSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSheetComponent, selector: "pdm-sheet", inputs: { open: "open", side: "side", className: "className", closeOnEsc: "closeOnEsc", closeOnBackdropClick: "closeOnBackdropClick" }, outputs: { openChange: "openChange" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\">\n <button type=\"button\" class=\"absolute inset-0 appearance-none border-0 bg-foreground/80 p-0\" aria-label=\"Close sheet\" (click)=\"onBackdropClick()\"></button>\n\n <section [ngClass]=\"['absolute border border-border bg-background p-6 shadow-lg', panelClass, className]\" role=\"dialog\" aria-modal=\"true\">\n <button type=\"button\" class=\"absolute right-3 top-3 appearance-none rounded-sm border-0 bg-transparent p-0 opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\" (click)=\"close()\">\n <pdm-icon name=\"x\" [size]=\"16\"></pdm-icon>\n </button>\n <ng-content></ng-content>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
94
|
+
PdmSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSheetComponent, selector: "pdm-sheet", inputs: { open: "open", side: "side", size: "size", className: "className", closeOnEsc: "closeOnEsc", closeOnBackdropClick: "closeOnBackdropClick" }, outputs: { openChange: "openChange" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\">\n <button type=\"button\" class=\"absolute inset-0 appearance-none border-0 bg-foreground/80 p-0\" aria-label=\"Close sheet\" (click)=\"onBackdropClick()\"></button>\n\n <section [ngClass]=\"['absolute z-[60] border border-border bg-background p-6 shadow-lg', panelClass, className]\" role=\"dialog\" aria-modal=\"true\">\n <button type=\"button\" class=\"absolute right-3 top-3 appearance-none rounded-sm border-0 bg-transparent p-0 opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\" (click)=\"close()\">\n <pdm-icon name=\"x\" [size]=\"16\"></pdm-icon>\n </button>\n <ng-content></ng-content>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
41
95
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSheetComponent, decorators: [{
|
|
42
96
|
type: Component,
|
|
43
|
-
args: [{ selector: 'pdm-sheet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\">\n <button type=\"button\" class=\"absolute inset-0 appearance-none border-0 bg-foreground/80 p-0\" aria-label=\"Close sheet\" (click)=\"onBackdropClick()\"></button>\n\n <section [ngClass]=\"['absolute border border-border bg-background p-6 shadow-lg', panelClass, className]\" role=\"dialog\" aria-modal=\"true\">\n <button type=\"button\" class=\"absolute right-3 top-3 appearance-none rounded-sm border-0 bg-transparent p-0 opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\" (click)=\"close()\">\n <pdm-icon name=\"x\" [size]=\"16\"></pdm-icon>\n </button>\n <ng-content></ng-content>\n </section>\n</div>\n" }]
|
|
97
|
+
args: [{ selector: 'pdm-sheet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\">\n <button type=\"button\" class=\"absolute inset-0 appearance-none border-0 bg-foreground/80 p-0\" aria-label=\"Close sheet\" (click)=\"onBackdropClick()\"></button>\n\n <section [ngClass]=\"['absolute z-[60] border border-border bg-background p-6 shadow-lg', panelClass, className]\" role=\"dialog\" aria-modal=\"true\">\n <button type=\"button\" class=\"absolute right-3 top-3 appearance-none rounded-sm border-0 bg-transparent p-0 opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\" (click)=\"close()\">\n <pdm-icon name=\"x\" [size]=\"16\"></pdm-icon>\n </button>\n <ng-content></ng-content>\n </section>\n</div>\n" }]
|
|
44
98
|
}], propDecorators: { open: [{
|
|
45
99
|
type: Input
|
|
46
100
|
}], side: [{
|
|
47
101
|
type: Input
|
|
102
|
+
}], size: [{
|
|
103
|
+
type: Input
|
|
48
104
|
}], className: [{
|
|
49
105
|
type: Input
|
|
50
106
|
}], closeOnEsc: [{
|
|
@@ -57,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
57
113
|
type: HostListener,
|
|
58
114
|
args: ['document:keydown.escape']
|
|
59
115
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3NoZWV0L3NoZWV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zaGVldC9zaGVldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUs5Rzs7Ozs7Ozs7Ozs7OztHQWFHO0FBTUgsTUFBTSxPQUFPLGlCQUFpQjtJQUw5QjtRQU1XLFNBQUksR0FBRyxLQUFLLENBQUM7UUFFdEI7O1dBRUc7UUFDTSxTQUFJLEdBQWlCLE9BQU8sQ0FBQztRQUV0Qzs7Ozs7OztXQU9HO1FBQ00sU0FBSSxHQUFpQixJQUFJLENBQUM7UUFFMUIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIseUJBQW9CLEdBQUcsSUFBSSxDQUFDO1FBRTNCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0tBK0RwRDtJQTVEQyxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osTUFBTSxJQUFJLEdBQUcsOERBQThELENBQUM7UUFDNUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXJDLE9BQU8sR0FBRyxJQUFJLElBQUksUUFBUSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLEdBQUcsR0FBaUM7WUFDeEMsSUFBSSxFQUFFLDhCQUE4QjtZQUNwQyxLQUFLLEVBQUUsK0JBQStCO1lBQ3RDLEdBQUcsRUFBRSw4QkFBOEI7WUFDbkMsTUFBTSxFQUFFLGlDQUFpQztTQUMxQyxDQUFDO1FBRUYsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDeEIsT0FBTyxlQUFlLENBQUM7U0FDeEI7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztRQUVuRSxJQUFJLFlBQVksRUFBRTtZQUNoQixNQUFNLFFBQVEsR0FBRztnQkFDZixFQUFFLEVBQUUsdUNBQXVDO2dCQUMzQyxFQUFFLEVBQUUsdUNBQXVDO2dCQUMzQyxFQUFFLEVBQUUsdUNBQXVDO2dCQUMzQyxFQUFFLEVBQUUsdUNBQXVDO2FBQzVDLENBQUM7WUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLEVBQUUsQ0FBQztTQUMzQzthQUFNO1lBQ0wsTUFBTSxTQUFTLEdBQUc7Z0JBQ2hCLEVBQUUsRUFBRSxjQUFjO2dCQUNsQixFQUFFLEVBQUUsY0FBYztnQkFDbEIsRUFBRSxFQUFFLGNBQWM7Z0JBQ2xCLEVBQUUsRUFBRSxjQUFjO2FBQ25CLENBQUM7WUFDRixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQztTQUM3QztJQUNILENBQUM7OzhHQXBGVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiw2U0N4QjlCLHF5QkFVQTsyRkRjYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQVVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBR1AsS0FBSztzQkFESixZQUFZO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIFBkbVNoZWV0U2lkZSA9ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnO1xuZXhwb3J0IHR5cGUgUGRtU2hlZXRTaXplID0gJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyB8ICdmdWxsJztcblxuLyoqXG4gKiBTaGVldC9TaWRlIHBhbmVsIGNvbXBvbmVudCBjb24gc29wb3J0ZSByZXNwb25zaXZlXG4gKiBcbiAqIE1FSk9SQURPIGVuIHYwLjIuMDpcbiAqIC0gVGFtYcOxb3MgY29uZmlndXJhYmxlc1xuICogLSBNZWpvciBtYW5lam8gZGUgb3ZlcmZsb3dcbiAqIC0gUmVzcG9uc2l2ZSBzaXplc1xuICogXG4gKiBAZXhhbXBsZVxuICogPHBkbS1zaGVldCBbb3Blbl09XCJpc09wZW5cIiBzaWRlPVwicmlnaHRcIiBzaXplPVwibWRcIj5cbiAqICAgPGgzPlNldHRpbmdzPC9oMz5cbiAqICAgPHA+Q29udGVudCBoZXJlPC9wPlxuICogPC9wZG0tc2hlZXQ+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkbS1zaGVldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGVldC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbVNoZWV0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgb3BlbiA9IGZhbHNlO1xuICBcbiAgLyoqXG4gICAqIExhZG8gZGVzZGUgZG9uZGUgYXBhcmVjZSBlbCBzaGVldFxuICAgKi9cbiAgQElucHV0KCkgc2lkZTogUGRtU2hlZXRTaWRlID0gJ3JpZ2h0JztcbiAgXG4gIC8qKlxuICAgKiBUYW1hw7FvIGRlbCBzaGVldFxuICAgKiAtIHNtOiAzMjBweCAoc2lkZSkgLyA0MHZoICh0b3AvYm90dG9tKVxuICAgKiAtIG1kOiA0MDBweCAoc2lkZSkgLyA1MHZoICh0b3AvYm90dG9tKSAoZGVmYXVsdClcbiAgICogLSBsZzogNTAwcHggKHNpZGUpIC8gNjZ2aCAodG9wL2JvdHRvbSlcbiAgICogLSB4bDogNjQwcHggKHNpZGUpIC8gODB2aCAodG9wL2JvdHRvbSlcbiAgICogLSBmdWxsOiAxMDAlXG4gICAqL1xuICBASW5wdXQoKSBzaXplOiBQZG1TaGVldFNpemUgPSAnbWQnO1xuICBcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG4gIEBJbnB1dCgpIGNsb3NlT25Fc2MgPSB0cnVlO1xuICBASW5wdXQoKSBjbG9zZU9uQmFja2Ryb3BDbGljayA9IHRydWU7XG5cbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnKVxuICBvbkVzYygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcGVuICYmIHRoaXMuY2xvc2VPbkVzYykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQmFja2Ryb3BDbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbG9zZU9uQmFja2Ryb3BDbGljaykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIGdldCBwYW5lbENsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZSA9ICdhYnNvbHV0ZSBiZy1iYWNrZ3JvdW5kIGJvcmRlci1ib3JkZXIgc2hhZG93LWxnIG92ZXJmbG93LWF1dG8nO1xuICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5nZXRQb3NpdGlvbkNsYXNzKCk7XG4gICAgY29uc3Qgc2l6aW5nID0gdGhpcy5nZXRTaXppbmdDbGFzcygpO1xuICAgIFxuICAgIHJldHVybiBgJHtiYXNlfSAke3Bvc2l0aW9ufSAke3NpemluZ30gJHt0aGlzLmNsYXNzTmFtZX1gLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UG9zaXRpb25DbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1hcDogUmVjb3JkPFBkbVNoZWV0U2lkZSwgc3RyaW5nPiA9IHtcbiAgICAgIGxlZnQ6ICdsZWZ0LTAgdG9wLTAgaC1mdWxsIGJvcmRlci1yJyxcbiAgICAgIHJpZ2h0OiAncmlnaHQtMCB0b3AtMCBoLWZ1bGwgYm9yZGVyLWwnLFxuICAgICAgdG9wOiAndG9wLTAgbGVmdC0wIHctZnVsbCBib3JkZXItYicsXG4gICAgICBib3R0b206ICdib3R0b20tMCBsZWZ0LTAgdy1mdWxsIGJvcmRlci10J1xuICAgIH07XG4gICAgXG4gICAgcmV0dXJuIG1hcFt0aGlzLnNpZGVdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTaXppbmdDbGFzcygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNpemUgPT09ICdmdWxsJykge1xuICAgICAgcmV0dXJuICd3LWZ1bGwgaC1mdWxsJztcbiAgICB9XG5cbiAgICBjb25zdCBpc0hvcml6b250YWwgPSB0aGlzLnNpZGUgPT09ICdsZWZ0JyB8fCB0aGlzLnNpZGUgPT09ICdyaWdodCc7XG4gICAgXG4gICAgaWYgKGlzSG9yaXpvbnRhbCkge1xuICAgICAgY29uc3Qgd2lkdGhNYXAgPSB7XG4gICAgICAgIHNtOiAndy1mdWxsIG1heC13LVszMjBweF0gc206bWF4LXctWzMyMHB4XScsXG4gICAgICAgIG1kOiAndy1mdWxsIG1heC13LVszNjBweF0gc206bWF4LXctWzQwMHB4XScsXG4gICAgICAgIGxnOiAndy1mdWxsIG1heC13LVs0MDBweF0gc206bWF4LXctWzUwMHB4XScsXG4gICAgICAgIHhsOiAndy1mdWxsIG1heC13LVs1MDBweF0gc206bWF4LXctWzY0MHB4XSdcbiAgICAgIH07XG4gICAgICByZXR1cm4gd2lkdGhNYXBbdGhpcy5zaXplXSB8fCB3aWR0aE1hcC5tZDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaGVpZ2h0TWFwID0ge1xuICAgICAgICBzbTogJ21heC1oLVs0MHZoXScsXG4gICAgICAgIG1kOiAnbWF4LWgtWzUwdmhdJyxcbiAgICAgICAgbGc6ICdtYXgtaC1bNjZ2aF0nLFxuICAgICAgICB4bDogJ21heC1oLVs4MHZoXSdcbiAgICAgIH07XG4gICAgICByZXR1cm4gaGVpZ2h0TWFwW3RoaXMuc2l6ZV0gfHwgaGVpZ2h0TWFwLm1kO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIm9wZW5cIiBjbGFzcz1cImZpeGVkIGluc2V0LTAgei01MFwiPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImFic29sdXRlIGluc2V0LTAgYXBwZWFyYW5jZS1ub25lIGJvcmRlci0wIGJnLWZvcmVncm91bmQvODAgcC0wXCIgYXJpYS1sYWJlbD1cIkNsb3NlIHNoZWV0XCIgKGNsaWNrKT1cIm9uQmFja2Ryb3BDbGljaygpXCI+PC9idXR0b24+XG5cbiAgPHNlY3Rpb24gW25nQ2xhc3NdPVwiWydhYnNvbHV0ZSB6LVs2MF0gYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCBwLTYgc2hhZG93LWxnJywgcGFuZWxDbGFzcywgY2xhc3NOYW1lXVwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLW1vZGFsPVwidHJ1ZVwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYWJzb2x1dGUgcmlnaHQtMyB0b3AtMyBhcHBlYXJhbmNlLW5vbmUgcm91bmRlZC1zbSBib3JkZXItMCBiZy10cmFuc3BhcmVudCBwLTAgb3BhY2l0eS03MCByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tb3BhY2l0eSBob3ZlcjpvcGFjaXR5LTEwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctcmluZyBmb2N1czpyaW5nLW9mZnNldC0yIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmVcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgPHBkbS1pY29uIG5hbWU9XCJ4XCIgW3NpemVdPVwiMTZcIj48L3BkbS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,20 +1,67 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
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
|
+
/**
|
|
5
|
+
* Sidebar component - Navegación lateral responsive
|
|
6
|
+
*
|
|
7
|
+
* MEJORAS en v0.2.0:
|
|
8
|
+
* - Mobile drawer mode: overlay fullscreen en mobile, sidebar fijo en desktop
|
|
9
|
+
* - Sidebar mode: sidebar persistente con widths responsive
|
|
10
|
+
* - Backdrop automático en mobile drawer mode
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* <!-- Mobile drawer (default) -->
|
|
14
|
+
* <pdm-sidebar [open]="sidebarOpen" (openChange)="sidebarOpen = $event">
|
|
15
|
+
* <nav>Menu items...</nav>
|
|
16
|
+
* </pdm-sidebar>
|
|
17
|
+
*
|
|
18
|
+
* <!-- Sidebar persistente -->
|
|
19
|
+
* <pdm-sidebar mobileMode="sidebar" [collapsed]="collapsed">
|
|
20
|
+
* <nav>Menu items...</nav>
|
|
21
|
+
* </pdm-sidebar>
|
|
22
|
+
*/
|
|
4
23
|
export class PdmSidebarComponent {
|
|
5
24
|
constructor() {
|
|
25
|
+
/**
|
|
26
|
+
* Mobile behavior: 'drawer' (overlay) o 'sidebar' (persistente)
|
|
27
|
+
* @default 'drawer'
|
|
28
|
+
*/
|
|
29
|
+
this.mobileMode = 'drawer';
|
|
30
|
+
/**
|
|
31
|
+
* Collapsed state (solo aplica en mobileMode="sidebar")
|
|
32
|
+
*/
|
|
6
33
|
this.collapsed = false;
|
|
34
|
+
/**
|
|
35
|
+
* Open state (solo aplica en mobileMode="drawer")
|
|
36
|
+
*/
|
|
37
|
+
this.open = false;
|
|
7
38
|
this.className = '';
|
|
39
|
+
/**
|
|
40
|
+
* Emite cuando el drawer se cierra (solo en mobileMode="drawer")
|
|
41
|
+
*/
|
|
42
|
+
this.openChange = new EventEmitter();
|
|
43
|
+
}
|
|
44
|
+
onBackdropClick() {
|
|
45
|
+
if (this.mobileMode === 'drawer') {
|
|
46
|
+
this.open = false;
|
|
47
|
+
this.openChange.emit(false);
|
|
48
|
+
}
|
|
8
49
|
}
|
|
9
50
|
}
|
|
10
51
|
PdmSidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11
|
-
PdmSidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSidebarComponent, selector: "pdm-sidebar", inputs: { collapsed: "collapsed", className: "className" }, ngImport: i0, template: "<aside [ngClass]=\"['h-full border-r border-border bg-background transition-all'
|
|
52
|
+
PdmSidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSidebarComponent, selector: "pdm-sidebar", inputs: { mobileMode: "mobileMode", collapsed: "collapsed", open: "open", className: "className" }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<!-- Mobile drawer mode -->\n<ng-container *ngIf=\"mobileMode === 'drawer'\">\n <!-- Backdrop -->\n <div\n *ngIf=\"open\"\n class=\"fixed inset-0 z-40 bg-black/50 lg:hidden\"\n (click)=\"onBackdropClick()\"\n ></div>\n \n <!-- Drawer -->\n <aside\n [ngClass]=\"[\n 'fixed inset-y-0 left-0 z-50 h-full w-64 transform border-r border-border bg-background transition-transform duration-300 lg:relative lg:z-auto lg:translate-x-0',\n open ? 'translate-x-0' : '-translate-x-full',\n className\n ]\"\n >\n <ng-content></ng-content>\n </aside>\n</ng-container>\n\n<!-- Sidebar persistente mode -->\n<aside\n *ngIf=\"mobileMode === 'sidebar'\"\n [ngClass]=\"[\n 'h-full border-r border-border bg-background transition-all',\n collapsed ? 'w-14 sm:w-14' : 'w-48 sm:w-56 lg:w-64',\n className\n ]\"\n>\n <ng-content></ng-content>\n</aside>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
12
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSidebarComponent, decorators: [{
|
|
13
54
|
type: Component,
|
|
14
|
-
args: [{ selector: 'pdm-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<aside [ngClass]=\"['h-full border-r border-border bg-background transition-all'
|
|
15
|
-
}], propDecorators: {
|
|
55
|
+
args: [{ selector: 'pdm-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Mobile drawer mode -->\n<ng-container *ngIf=\"mobileMode === 'drawer'\">\n <!-- Backdrop -->\n <div\n *ngIf=\"open\"\n class=\"fixed inset-0 z-40 bg-black/50 lg:hidden\"\n (click)=\"onBackdropClick()\"\n ></div>\n \n <!-- Drawer -->\n <aside\n [ngClass]=\"[\n 'fixed inset-y-0 left-0 z-50 h-full w-64 transform border-r border-border bg-background transition-transform duration-300 lg:relative lg:z-auto lg:translate-x-0',\n open ? 'translate-x-0' : '-translate-x-full',\n className\n ]\"\n >\n <ng-content></ng-content>\n </aside>\n</ng-container>\n\n<!-- Sidebar persistente mode -->\n<aside\n *ngIf=\"mobileMode === 'sidebar'\"\n [ngClass]=\"[\n 'h-full border-r border-border bg-background transition-all',\n collapsed ? 'w-14 sm:w-14' : 'w-48 sm:w-56 lg:w-64',\n className\n ]\"\n>\n <ng-content></ng-content>\n</aside>\n" }]
|
|
56
|
+
}], propDecorators: { mobileMode: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], collapsed: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], open: [{
|
|
16
61
|
type: Input
|
|
17
62
|
}], className: [{
|
|
18
63
|
type: Input
|
|
64
|
+
}], openChange: [{
|
|
65
|
+
type: Output
|
|
19
66
|
}] } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBSWhHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFNSCxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTUU7OztXQUdHO1FBQ00sZUFBVSxHQUF5QixRQUFRLENBQUM7UUFFckQ7O1dBRUc7UUFDTSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRTNCOztXQUVHO1FBQ00sU0FBSSxHQUFHLEtBQUssQ0FBQztRQUViLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFeEI7O1dBRUc7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztLQVFwRDtJQU5DLGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQzs7Z0hBN0JVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDhMQzVCaEMsdTNCQWdDQTsyRkRKYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYSxtQkFFTix1QkFBdUIsQ0FBQyxNQUFNOzhCQU90QyxVQUFVO3NCQUFsQixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBQZG1TaWRlYmFyTW9iaWxlTW9kZSA9ICdkcmF3ZXInIHwgJ3NpZGViYXInO1xuXG4vKipcbiAqIFNpZGViYXIgY29tcG9uZW50IC0gTmF2ZWdhY2nDs24gbGF0ZXJhbCByZXNwb25zaXZlXG4gKiBcbiAqIE1FSk9SQVMgZW4gdjAuMi4wOlxuICogLSBNb2JpbGUgZHJhd2VyIG1vZGU6IG92ZXJsYXkgZnVsbHNjcmVlbiBlbiBtb2JpbGUsIHNpZGViYXIgZmlqbyBlbiBkZXNrdG9wXG4gKiAtIFNpZGViYXIgbW9kZTogc2lkZWJhciBwZXJzaXN0ZW50ZSBjb24gd2lkdGhzIHJlc3BvbnNpdmVcbiAqIC0gQmFja2Ryb3AgYXV0b23DoXRpY28gZW4gbW9iaWxlIGRyYXdlciBtb2RlXG4gKiBcbiAqIEBleGFtcGxlXG4gKiA8IS0tIE1vYmlsZSBkcmF3ZXIgKGRlZmF1bHQpIC0tPlxuICogPHBkbS1zaWRlYmFyIFtvcGVuXT1cInNpZGViYXJPcGVuXCIgKG9wZW5DaGFuZ2UpPVwic2lkZWJhck9wZW4gPSAkZXZlbnRcIj5cbiAqICAgPG5hdj5NZW51IGl0ZW1zLi4uPC9uYXY+XG4gKiA8L3BkbS1zaWRlYmFyPlxuICogXG4gKiA8IS0tIFNpZGViYXIgcGVyc2lzdGVudGUgLS0+XG4gKiA8cGRtLXNpZGViYXIgbW9iaWxlTW9kZT1cInNpZGViYXJcIiBbY29sbGFwc2VkXT1cImNvbGxhcHNlZFwiPlxuICogICA8bmF2Pk1lbnUgaXRlbXMuLi48L25hdj5cbiAqIDwvcGRtLXNpZGViYXI+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkbS1zaWRlYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1TaWRlYmFyQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIE1vYmlsZSBiZWhhdmlvcjogJ2RyYXdlcicgKG92ZXJsYXkpIG8gJ3NpZGViYXInIChwZXJzaXN0ZW50ZSlcbiAgICogQGRlZmF1bHQgJ2RyYXdlcidcbiAgICovXG4gIEBJbnB1dCgpIG1vYmlsZU1vZGU6IFBkbVNpZGViYXJNb2JpbGVNb2RlID0gJ2RyYXdlcic7XG4gIFxuICAvKipcbiAgICogQ29sbGFwc2VkIHN0YXRlIChzb2xvIGFwbGljYSBlbiBtb2JpbGVNb2RlPVwic2lkZWJhclwiKVxuICAgKi9cbiAgQElucHV0KCkgY29sbGFwc2VkID0gZmFsc2U7XG4gIFxuICAvKipcbiAgICogT3BlbiBzdGF0ZSAoc29sbyBhcGxpY2EgZW4gbW9iaWxlTW9kZT1cImRyYXdlclwiKVxuICAgKi9cbiAgQElucHV0KCkgb3BlbiA9IGZhbHNlO1xuICBcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG4gIFxuICAvKipcbiAgICogRW1pdGUgY3VhbmRvIGVsIGRyYXdlciBzZSBjaWVycmEgKHNvbG8gZW4gbW9iaWxlTW9kZT1cImRyYXdlclwiKVxuICAgKi9cbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIFxuICBvbkJhY2tkcm9wQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMubW9iaWxlTW9kZSA9PT0gJ2RyYXdlcicpIHtcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuIiwiPCEtLSBNb2JpbGUgZHJhd2VyIG1vZGUgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwibW9iaWxlTW9kZSA9PT0gJ2RyYXdlcidcIj5cbiAgPCEtLSBCYWNrZHJvcCAtLT5cbiAgPGRpdlxuICAgICpuZ0lmPVwib3BlblwiXG4gICAgY2xhc3M9XCJmaXhlZCBpbnNldC0wIHotNDAgYmctYmxhY2svNTAgbGc6aGlkZGVuXCJcbiAgICAoY2xpY2spPVwib25CYWNrZHJvcENsaWNrKClcIlxuICA+PC9kaXY+XG4gIFxuICA8IS0tIERyYXdlciAtLT5cbiAgPGFzaWRlXG4gICAgW25nQ2xhc3NdPVwiW1xuICAgICAgJ2ZpeGVkIGluc2V0LXktMCBsZWZ0LTAgei01MCBoLWZ1bGwgdy02NCB0cmFuc2Zvcm0gYm9yZGVyLXIgYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBsZzpyZWxhdGl2ZSBsZzp6LWF1dG8gbGc6dHJhbnNsYXRlLXgtMCcsXG4gICAgICBvcGVuID8gJ3RyYW5zbGF0ZS14LTAnIDogJy10cmFuc2xhdGUteC1mdWxsJyxcbiAgICAgIGNsYXNzTmFtZVxuICAgIF1cIlxuICA+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2FzaWRlPlxuPC9uZy1jb250YWluZXI+XG5cbjwhLS0gU2lkZWJhciBwZXJzaXN0ZW50ZSBtb2RlIC0tPlxuPGFzaWRlXG4gICpuZ0lmPVwibW9iaWxlTW9kZSA9PT0gJ3NpZGViYXInXCJcbiAgW25nQ2xhc3NdPVwiW1xuICAgICdoLWZ1bGwgYm9yZGVyLXIgYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tYWxsJyxcbiAgICBjb2xsYXBzZWQgPyAndy0xNCBzbTp3LTE0JyA6ICd3LTQ4IHNtOnctNTYgbGc6dy02NCcsXG4gICAgY2xhc3NOYW1lXG4gIF1cIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2FzaWRlPlxuIl19
|