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.
Files changed (68) hide show
  1. package/README.md +356 -4
  2. package/esm2020/lib/components/alert-dialog/alert-dialog.component.mjs +3 -3
  3. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +37 -4
  4. package/esm2020/lib/components/button-group/button-group.component.mjs +208 -182
  5. package/esm2020/lib/components/calendar/calendar.component.mjs +3 -3
  6. package/esm2020/lib/components/card/card.component.mjs +36 -53
  7. package/esm2020/lib/components/combobox/combobox.component.mjs +136 -14
  8. package/esm2020/lib/components/command/command.component.mjs +3 -3
  9. package/esm2020/lib/components/context-menu/context-menu.component.mjs +121 -42
  10. package/esm2020/lib/components/data-table/data-table.component.mjs +214 -16
  11. package/esm2020/lib/components/date-picker/date-picker.component.mjs +66 -54
  12. package/esm2020/lib/components/dialog/dialog.component.mjs +171 -38
  13. package/esm2020/lib/components/draggable-table/draggable-table.component.mjs +300 -0
  14. package/esm2020/lib/components/drawer/drawer.component.mjs +123 -16
  15. package/esm2020/lib/components/dropdown-menu/dropdown-menu.component.mjs +3 -2
  16. package/esm2020/lib/components/hover-card/hover-card.component.mjs +185 -24
  17. package/esm2020/lib/components/input/input.component.mjs +15 -15
  18. package/esm2020/lib/components/input-group/input-group.component.mjs +14 -14
  19. package/esm2020/lib/components/menubar/menubar.component.mjs +105 -29
  20. package/esm2020/lib/components/navigation-menu/navigation-menu.component.mjs +25 -3
  21. package/esm2020/lib/components/pagination/pagination.component.mjs +3 -3
  22. package/esm2020/lib/components/popover/popover.component.mjs +107 -73
  23. package/esm2020/lib/components/select/select.component.mjs +26 -23
  24. package/esm2020/lib/components/sheet/sheet.component.mjs +68 -12
  25. package/esm2020/lib/components/sidebar/sidebar.component.mjs +52 -5
  26. package/esm2020/lib/components/table/table.component.mjs +165 -192
  27. package/esm2020/lib/components/tabs/tabs.component.mjs +6 -6
  28. package/esm2020/lib/components/toggle-group/toggle-group.component.mjs +6 -6
  29. package/esm2020/lib/components/tooltip/tooltip.component.mjs +162 -19
  30. package/esm2020/lib/overlay/z-index-helper.mjs +69 -0
  31. package/esm2020/lib/pdm-ui-kit.module.mjs +5 -1
  32. package/esm2020/lib/utils/responsive.mjs +143 -0
  33. package/esm2020/lib/utils/z-index.mjs +90 -0
  34. package/esm2020/public-api.mjs +67 -63
  35. package/fesm2015/pdm-ui-kit.mjs +2628 -847
  36. package/fesm2015/pdm-ui-kit.mjs.map +1 -1
  37. package/fesm2020/pdm-ui-kit.mjs +2630 -845
  38. package/fesm2020/pdm-ui-kit.mjs.map +1 -1
  39. package/lib/components/breadcrumb/breadcrumb.component.d.ts +23 -1
  40. package/lib/components/button-group/button-group.component.d.ts +8 -2
  41. package/lib/components/card/card.component.d.ts +32 -19
  42. package/lib/components/combobox/combobox.component.d.ts +20 -3
  43. package/lib/components/context-menu/context-menu.component.d.ts +17 -8
  44. package/lib/components/data-table/data-table.component.d.ts +172 -14
  45. package/lib/components/date-picker/date-picker.component.d.ts +5 -6
  46. package/lib/components/dialog/dialog.component.d.ts +38 -4
  47. package/lib/components/draggable-table/draggable-table.component.d.ts +74 -0
  48. package/lib/components/drawer/drawer.component.d.ts +65 -7
  49. package/lib/components/hover-card/hover-card.component.d.ts +27 -4
  50. package/lib/components/input/input.component.d.ts +3 -3
  51. package/lib/components/input-group/input-group.component.d.ts +1 -1
  52. package/lib/components/menubar/menubar.component.d.ts +16 -8
  53. package/lib/components/navigation-menu/navigation-menu.component.d.ts +22 -1
  54. package/lib/components/popover/popover.component.d.ts +13 -12
  55. package/lib/components/select/select.component.d.ts +4 -5
  56. package/lib/components/sheet/sheet.component.d.ts +30 -3
  57. package/lib/components/sidebar/sidebar.component.d.ts +39 -1
  58. package/lib/components/table/table.component.d.ts +47 -26
  59. package/lib/components/tabs/tabs.component.d.ts +1 -1
  60. package/lib/components/toggle-group/toggle-group.component.d.ts +1 -1
  61. package/lib/components/tooltip/tooltip.component.d.ts +21 -3
  62. package/lib/overlay/z-index-helper.d.ts +36 -0
  63. package/lib/pdm-ui-kit.module.d.ts +42 -41
  64. package/lib/utils/responsive.d.ts +107 -0
  65. package/lib/utils/z-index.d.ts +69 -0
  66. package/package.json +10 -8
  67. package/public-api.d.ts +66 -62
  68. package/src/lib/styles/tokens.css +182 -0
@@ -1,33 +1,176 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
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/common";
5
+ import * as i1 from "@angular/cdk/overlay";
6
+ import * as i2 from "@angular/common";
4
7
  export class PdmTooltipComponent {
5
- constructor() {
6
- this.text = '';
7
- this.side = 'top';
8
- this.className = '';
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
- get positionClass() {
12
- if (this.side === 'bottom')
13
- return 'top-full left-1/2 -translate-x-1/2 mt-2';
14
- if (this.side === 'left')
15
- return 'right-full top-1/2 -translate-y-1/2 mr-2';
16
- if (this.side === 'right')
17
- return 'left-full top-1/2 -translate-y-1/2 ml-2';
18
- return 'bottom-full left-1/2 -translate-x-1/2 mb-2';
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 class=\"relative inline-flex\" [ngClass]=\"className\" (mouseenter)=\"open = true\" (mouseleave)=\"open = false\" (focusin)=\"open = true\" (focusout)=\"open = false\">\n <ng-content></ng-content>\n <span *ngIf=\"open\" [ngClass]=\"['pointer-events-none absolute z-50 overflow-hidden rounded-md bg-foreground px-3 py-1.5 text-xs text-background animate-in fade-in-0 zoom-in-95', positionClass]\">\n {{ text }}\n </span>\n</span>\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 });
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: 'pdm-tooltip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"relative inline-flex\" [ngClass]=\"className\" (mouseenter)=\"open = true\" (mouseleave)=\"open = false\" (focusin)=\"open = true\" (focusout)=\"open = false\">\n <ng-content></ng-content>\n <span *ngIf=\"open\" [ngClass]=\"['pointer-events-none absolute z-50 overflow-hidden rounded-md bg-foreground px-3 py-1.5 text-xs text-background animate-in fade-in-0 zoom-in-95', positionClass]\">\n {{ text }}\n </span>\n</span>\n" }]
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU8xRSxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTVcsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLFNBQUksR0FBd0MsS0FBSyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDeEIsU0FBSSxHQUFHLEtBQUssQ0FBQztLQVFkO0lBTkMsSUFBSSxhQUFhO1FBQ2YsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFBRSxPQUFPLHlDQUF5QyxDQUFDO1FBQzdFLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQUUsT0FBTywwQ0FBMEMsQ0FBQztRQUM1RSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTztZQUFFLE9BQU8seUNBQXlDLENBQUM7UUFDNUUsT0FBTyw0Q0FBNEMsQ0FBQztJQUN0RCxDQUFDOztnSEFYVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixtSENQaEMsNGJBTUE7MkZEQ2EsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGFBQWEsbUJBRU4sdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLXRvb2x0aXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbVRvb2x0aXBDb21wb25lbnQge1xuICBASW5wdXQoKSB0ZXh0ID0gJyc7XG4gIEBJbnB1dCgpIHNpZGU6ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnID0gJ3RvcCc7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuICBvcGVuID0gZmFsc2U7XG5cbiAgZ2V0IHBvc2l0aW9uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zaWRlID09PSAnYm90dG9tJykgcmV0dXJuICd0b3AtZnVsbCBsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtMS8yIG10LTInO1xuICAgIGlmICh0aGlzLnNpZGUgPT09ICdsZWZ0JykgcmV0dXJuICdyaWdodC1mdWxsIHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiBtci0yJztcbiAgICBpZiAodGhpcy5zaWRlID09PSAncmlnaHQnKSByZXR1cm4gJ2xlZnQtZnVsbCB0b3AtMS8yIC10cmFuc2xhdGUteS0xLzIgbWwtMic7XG4gICAgcmV0dXJuICdib3R0b20tZnVsbCBsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtMS8yIG1iLTInO1xuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cInJlbGF0aXZlIGlubGluZS1mbGV4XCIgW25nQ2xhc3NdPVwiY2xhc3NOYW1lXCIgKG1vdXNlZW50ZXIpPVwib3BlbiA9IHRydWVcIiAobW91c2VsZWF2ZSk9XCJvcGVuID0gZmFsc2VcIiAoZm9jdXNpbik9XCJvcGVuID0gdHJ1ZVwiIChmb2N1c291dCk9XCJvcGVuID0gZmFsc2VcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8c3BhbiAqbmdJZj1cIm9wZW5cIiBbbmdDbGFzc109XCJbJ3BvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgei01MCBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC1tZCBiZy1mb3JlZ3JvdW5kIHB4LTMgcHktMS41IHRleHQteHMgdGV4dC1iYWNrZ3JvdW5kIGFuaW1hdGUtaW4gZmFkZS1pbi0wIHpvb20taW4tOTUnLCBwb3NpdGlvbkNsYXNzXVwiPlxuICAgIHt7IHRleHQgfX1cbiAgPC9zcGFuPlxuPC9zcGFuPlxuIl19
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==
@@ -22,6 +22,7 @@ import { PdmContextMenuComponent } from './components/context-menu/context-menu.
22
22
  import { PdmDataTableComponent } from './components/data-table/data-table.component';
23
23
  import { PdmDatePickerComponent } from './components/date-picker/date-picker.component';
24
24
  import { PdmDialogComponent } from './components/dialog/dialog.component';
25
+ import { PdmDraggableTableComponent } from './components/draggable-table/draggable-table.component';
25
26
  import { PdmDropdownMenuComponent } from './components/dropdown-menu/dropdown-menu.component';
26
27
  import { PdmDrawerComponent } from './components/drawer/drawer.component';
27
28
  import { PdmEmptyComponent } from './components/empty/empty.component';
@@ -83,6 +84,7 @@ const COMPONENTS = [
83
84
  PdmDataTableComponent,
84
85
  PdmDatePickerComponent,
85
86
  PdmDialogComponent,
87
+ PdmDraggableTableComponent,
86
88
  PdmDropdownMenuComponent,
87
89
  PdmDrawerComponent,
88
90
  PdmEmptyComponent,
@@ -146,6 +148,7 @@ PdmUiKitModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
146
148
  PdmDataTableComponent,
147
149
  PdmDatePickerComponent,
148
150
  PdmDialogComponent,
151
+ PdmDraggableTableComponent,
149
152
  PdmDropdownMenuComponent,
150
153
  PdmDrawerComponent,
151
154
  PdmEmptyComponent,
@@ -204,6 +207,7 @@ PdmUiKitModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
204
207
  PdmDataTableComponent,
205
208
  PdmDatePickerComponent,
206
209
  PdmDialogComponent,
210
+ PdmDraggableTableComponent,
207
211
  PdmDropdownMenuComponent,
208
212
  PdmDrawerComponent,
209
213
  PdmEmptyComponent,
@@ -251,4 +255,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
251
255
  exports: COMPONENTS
252
256
  }]
253
257
  }] });
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRtLXVpLWtpdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3BkbS11aS1raXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixP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QUFhLENBQUM7b0JBQ3RDLFlBQVksRUFBRSxVQUFVO29CQUN4QixPQUFPLEVBQUUsVUFBVTtpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBQZG1BY2NvcmRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtQWxlcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWxlcnQvYWxlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUFsZXJ0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FsZXJ0LWRpYWxvZy9hbGVydC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUFzcGVjdFJhdGlvQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8uY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1CYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUJ1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1DYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtQ2Fyb3VzZWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUNhcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1DaGFydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGFydC9jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUNvbGxhcHNpYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxhcHNpYmxlL2NvbGxhcHNpYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1Db21ib2JveENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb21ib2JveC9jb21ib2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtQ29tbWFuZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb21tYW5kL2NvbW1hbmQuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUNvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbURhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbURhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1Ecm9wZG93bk1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1EcmF3ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJhd2VyL2RyYXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtRW1wdHlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZW1wdHkvZW1wdHkuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpZWxkL2ZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1Ib3ZlckNhcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaG92ZXItY2FyZC9ob3Zlci1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1JY29uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pdGVtL2l0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1JbnB1dFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2lucHV0LXBhc3N3b3JkL2lucHV0LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1JbnB1dEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2lucHV0LWdyb3VwL2lucHV0LWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1JbnB1dE90cENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC1vdHAvaW5wdXQtb3RwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1LYmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMva2JkL2tiZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGFiZWwvbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbU1lbnViYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1OYXRpdmVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbmF0aXZlLXNlbGVjdC9uYXRpdmUtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1OYXZpZ2F0aW9uTWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9uYXZpZ2F0aW9uLW1lbnUvbmF2aWdhdGlvbi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1PdXRzaWRlQ2xpY2tEaXJlY3RpdmUgfSBmcm9tICcuL292ZXJsYXkvcGRtLW91dHNpZGUtY2xpY2suZGlyZWN0aXZlJztcbmltcG9ydCB7IFBkbVBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1Qb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtUHJvZ3Jlc3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVJhZGlvR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmFkaW8tZ3JvdXAvcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVNjcm9sbEFyZWFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2Nyb2xsLWFyZWEvc2Nyb2xsLWFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1TZWxlY3RPcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC1vcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFBkbVNlcGFyYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZXBhcmF0b3Ivc2VwYXJhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1TaGVldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaGVldC9zaGVldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NrZWxldG9uL3NrZWxldG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1TbGlkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2xpZGVyL3NsaWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtU29ubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Nvbm5lci9zb25uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1Td2l0Y2hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3dpdGNoL3N3aXRjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVRhYnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFicy90YWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1UZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVRvZ2dsZUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RvZ2dsZS1ncm91cC90b2dnbGUtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTVBPTkVOVFMgPSBbXG4gIFBkbUFjY29yZGlvbkNvbXBvbmVudCxcbiAgUGRtQWxlcnRDb21wb25lbnQsXG4gIFBkbUFsZXJ0RGlhbG9nQ29tcG9uZW50LFxuICBQZG1Bc3BlY3RSYXRpb0NvbXBvbmVudCxcbiAgUGRtQXZhdGFyQ29tcG9uZW50LFxuICBQZG1CYWRnZUNvbXBvbmVudCxcbiAgUGRtQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgUGRtQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gIFBkbUJ1dHRvbkNvbXBvbmVudCxcbiAgUGRtQ2FsZW5kYXJDb21wb25lbnQsXG4gIFBkbUNhcm91c2VsQ29tcG9uZW50LFxuICBQZG1DYXJkQ29tcG9uZW50LFxuICBQZG1DaGFydENvbXBvbmVudCxcbiAgUGRtQ2hlY2tib3hDb21wb25lbnQsXG4gIFBkbUNvbGxhcHNpYmxlQ29tcG9uZW50LFxuICBQZG1Db21ib2JveENvbXBvbmVudCxcbiAgUGRtQ29tbWFuZENvbXBvbmVudCxcbiAgUGRtQ29udGV4dE1lbnVDb21wb25lbnQsXG4gIFBkbURhdGFUYWJsZUNvbXBvbmVudCxcbiAgUGRtRGF0ZVBpY2tlckNvbXBvbmVudCxcbiAgUGRtRGlhbG9nQ29tcG9uZW50LFxuICBQZG1Ecm9wZG93bk1lbnVDb21wb25lbnQsXG4gIFBkbURyYXdlckNvbXBvbmVudCxcbiAgUGRtRW1wdHlDb21wb25lbnQsXG4gIFBkbUZpZWxkQ29tcG9uZW50LFxuICBQZG1Ib3ZlckNhcmRDb21wb25lbnQsXG4gIFBkbUljb25Db21wb25lbnQsXG4gIFBkbUl0ZW1Db21wb25lbnQsXG4gIFBkbUlucHV0Q29tcG9uZW50LFxuICBQZG1JbnB1dFBhc3N3b3JkQ29tcG9uZW50LFxuICBQZG1JbnB1dEdyb3VwQ29tcG9uZW50LFxuICBQZG1JbnB1dE90cENvbXBvbmVudCxcbiAgUGRtS2JkQ29tcG9uZW50LFxuICBQZG1MYWJlbENvbXBvbmVudCxcbiAgUGRtTWVudWJhckNvbXBvbmVudCxcbiAgUGRtTmF0aXZlU2VsZWN0Q29tcG9uZW50LFxuICBQZG1OYXZpZ2F0aW9uTWVudUNvbXBvbmVudCxcbiAgUGRtT3V0c2lkZUNsaWNrRGlyZWN0aXZlLFxuICBQZG1QYWdpbmF0aW9uQ29tcG9uZW50LFxuICBQZG1Qb3BvdmVyQ29tcG9uZW50LFxuICBQZG1Qcm9ncmVzc0NvbXBvbmVudCxcbiAgUGRtUmFkaW9Hcm91cENvbXBvbmVudCxcbiAgUGRtU2Nyb2xsQXJlYUNvbXBvbmVudCxcbiAgUGRtU2VsZWN0Q29tcG9uZW50LFxuICBQZG1TZWxlY3RPcHRpb25EaXJlY3RpdmUsXG4gIFBkbVNlcGFyYXRvckNvbXBvbmVudCxcbiAgUGRtU2hlZXRDb21wb25lbnQsXG4gIFBkbVNpZGViYXJDb21wb25lbnQsXG4gIFBkbVNrZWxldG9uQ29tcG9uZW50LFxuICBQZG1TbGlkZXJDb21wb25lbnQsXG4gIFBkbVNvbm5lckNvbXBvbmVudCxcbiAgUGRtU3Bpbm5lckNvbXBvbmVudCxcbiAgUGRtU3dpdGNoQ29tcG9uZW50LFxuICBQZG1UYWJsZUNvbXBvbmVudCxcbiAgUGRtVGFic0NvbXBvbmVudCxcbiAgUGRtVGV4dGFyZWFDb21wb25lbnQsXG4gIFBkbVRvZ2dsZUNvbXBvbmVudCxcbiAgUGRtVG9nZ2xlR3JvdXBDb21wb25lbnQsXG4gIFBkbVRvb2x0aXBDb21wb25lbnRcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE92ZXJsYXlNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IENPTVBPTkVOVFMsXG4gIGV4cG9ydHM6IENPTVBPTkVOVFNcbn0pXG5leHBvcnQgY2xhc3MgUGRtVWlLaXRNb2R1bGUge31cbiJdfQ==
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRtLXVpLWtpdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3BkbS11aS1raXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixP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YyxZQUpmLFlBQVksRUFBRSxhQUFhOzJGQUkxQixjQUFjO2tCQUwxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7b0JBQ3RDLFlBQVksRUFBRSxVQUFVO29CQUN4QixPQUFPLEVBQUUsVUFBVTtpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBQZG1BY2NvcmRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtQWxlcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWxlcnQvYWxlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUFsZXJ0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FsZXJ0LWRpYWxvZy9hbGVydC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUFzcGVjdFJhdGlvQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8uY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1CYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUJ1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1DYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtQ2Fyb3VzZWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUNhcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1DaGFydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGFydC9jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUNvbGxhcHNpYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxhcHNpYmxlL2NvbGxhcHNpYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1Db21ib2JveENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb21ib2JveC9jb21ib2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtQ29tbWFuZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb21tYW5kL2NvbW1hbmQuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUNvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbURhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbURhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1EcmFnZ2FibGVUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kcmFnZ2FibGUtdGFibGUvZHJhZ2dhYmxlLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1Ecm9wZG93bk1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1EcmF3ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJhd2VyL2RyYXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtRW1wdHlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZW1wdHkvZW1wdHkuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpZWxkL2ZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1Ib3ZlckNhcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaG92ZXItY2FyZC9ob3Zlci1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1JY29uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pdGVtL2l0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFBkbUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1JbnB1dFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2lucHV0LXBhc3N3b3JkL2lucHV0LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1JbnB1dEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2lucHV0LWdyb3VwL2lucHV0LWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1JbnB1dE90cENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC1vdHAvaW5wdXQtb3RwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1LYmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMva2JkL2tiZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGFiZWwvbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbU1lbnViYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1OYXRpdmVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbmF0aXZlLXNlbGVjdC9uYXRpdmUtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1OYXZpZ2F0aW9uTWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9uYXZpZ2F0aW9uLW1lbnUvbmF2aWdhdGlvbi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1PdXRzaWRlQ2xpY2tEaXJlY3RpdmUgfSBmcm9tICcuL292ZXJsYXkvcGRtLW91dHNpZGUtY2xpY2suZGlyZWN0aXZlJztcbmltcG9ydCB7IFBkbVBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1Qb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtUHJvZ3Jlc3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVJhZGlvR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmFkaW8tZ3JvdXAvcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVNjcm9sbEFyZWFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2Nyb2xsLWFyZWEvc2Nyb2xsLWFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1TZWxlY3RPcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC1vcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFBkbVNlcGFyYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZXBhcmF0b3Ivc2VwYXJhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1TaGVldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaGVldC9zaGVldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NrZWxldG9uL3NrZWxldG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1TbGlkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2xpZGVyL3NsaWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtU29ubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Nvbm5lci9zb25uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1Td2l0Y2hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3dpdGNoL3N3aXRjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVRhYnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFicy90YWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZG1UZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRtVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVRvZ2dsZUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RvZ2dsZS1ncm91cC90b2dnbGUtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFBkbVRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTVBPTkVOVFMgPSBbXG4gIFBkbUFjY29yZGlvbkNvbXBvbmVudCxcbiAgUGRtQWxlcnRDb21wb25lbnQsXG4gIFBkbUFsZXJ0RGlhbG9nQ29tcG9uZW50LFxuICBQZG1Bc3BlY3RSYXRpb0NvbXBvbmVudCxcbiAgUGRtQXZhdGFyQ29tcG9uZW50LFxuICBQZG1CYWRnZUNvbXBvbmVudCxcbiAgUGRtQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgUGRtQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gIFBkbUJ1dHRvbkNvbXBvbmVudCxcbiAgUGRtQ2FsZW5kYXJDb21wb25lbnQsXG4gIFBkbUNhcm91c2VsQ29tcG9uZW50LFxuICBQZG1DYXJkQ29tcG9uZW50LFxuICBQZG1DaGFydENvbXBvbmVudCxcbiAgUGRtQ2hlY2tib3hDb21wb25lbnQsXG4gIFBkbUNvbGxhcHNpYmxlQ29tcG9uZW50LFxuICBQZG1Db21ib2JveENvbXBvbmVudCxcbiAgUGRtQ29tbWFuZENvbXBvbmVudCxcbiAgUGRtQ29udGV4dE1lbnVDb21wb25lbnQsXG4gIFBkbURhdGFUYWJsZUNvbXBvbmVudCxcbiAgUGRtRGF0ZVBpY2tlckNvbXBvbmVudCxcbiAgUGRtRGlhbG9nQ29tcG9uZW50LFxuICBQZG1EcmFnZ2FibGVUYWJsZUNvbXBvbmVudCxcbiAgUGRtRHJvcGRvd25NZW51Q29tcG9uZW50LFxuICBQZG1EcmF3ZXJDb21wb25lbnQsXG4gIFBkbUVtcHR5Q29tcG9uZW50LFxuICBQZG1GaWVsZENvbXBvbmVudCxcbiAgUGRtSG92ZXJDYXJkQ29tcG9uZW50LFxuICBQZG1JY29uQ29tcG9uZW50LFxuICBQZG1JdGVtQ29tcG9uZW50LFxuICBQZG1JbnB1dENvbXBvbmVudCxcbiAgUGRtSW5wdXRQYXNzd29yZENvbXBvbmVudCxcbiAgUGRtSW5wdXRHcm91cENvbXBvbmVudCxcbiAgUGRtSW5wdXRPdHBDb21wb25lbnQsXG4gIFBkbUtiZENvbXBvbmVudCxcbiAgUGRtTGFiZWxDb21wb25lbnQsXG4gIFBkbU1lbnViYXJDb21wb25lbnQsXG4gIFBkbU5hdGl2ZVNlbGVjdENvbXBvbmVudCxcbiAgUGRtTmF2aWdhdGlvbk1lbnVDb21wb25lbnQsXG4gIFBkbU91dHNpZGVDbGlja0RpcmVjdGl2ZSxcbiAgUGRtUGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgUGRtUG9wb3ZlckNvbXBvbmVudCxcbiAgUGRtUHJvZ3Jlc3NDb21wb25lbnQsXG4gIFBkbVJhZGlvR3JvdXBDb21wb25lbnQsXG4gIFBkbVNjcm9sbEFyZWFDb21wb25lbnQsXG4gIFBkbVNlbGVjdENvbXBvbmVudCxcbiAgUGRtU2VsZWN0T3B0aW9uRGlyZWN0aXZlLFxuICBQZG1TZXBhcmF0b3JDb21wb25lbnQsXG4gIFBkbVNoZWV0Q29tcG9uZW50LFxuICBQZG1TaWRlYmFyQ29tcG9uZW50LFxuICBQZG1Ta2VsZXRvbkNvbXBvbmVudCxcbiAgUGRtU2xpZGVyQ29tcG9uZW50LFxuICBQZG1Tb25uZXJDb21wb25lbnQsXG4gIFBkbVNwaW5uZXJDb21wb25lbnQsXG4gIFBkbVN3aXRjaENvbXBvbmVudCxcbiAgUGRtVGFibGVDb21wb25lbnQsXG4gIFBkbVRhYnNDb21wb25lbnQsXG4gIFBkbVRleHRhcmVhQ29tcG9uZW50LFxuICBQZG1Ub2dnbGVDb21wb25lbnQsXG4gIFBkbVRvZ2dsZUdyb3VwQ29tcG9uZW50LFxuICBQZG1Ub29sdGlwQ29tcG9uZW50XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBPdmVybGF5TW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBDT01QT05FTlRTLFxuICBleHBvcnRzOiBDT01QT05FTlRTXG59KVxuZXhwb3J0IGNsYXNzIFBkbVVpS2l0TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Sistema de responsive utilities para PDM UI Kit
3
+ *
4
+ * Proporciona constantes, tipos y helpers para manejar responsive design
5
+ * de forma consistente en todos los componentes.
6
+ */
7
+ /**
8
+ * Breakpoints estándar de Tailwind CSS
9
+ * Mobile-first approach: los estilos base son para mobile, los breakpoints son MIN-WIDTH
10
+ */
11
+ export const BREAKPOINTS = {
12
+ sm: '640px',
13
+ md: '768px',
14
+ lg: '1024px',
15
+ xl: '1280px',
16
+ '2xl': '1536px' // extra large desktop
17
+ };
18
+ /**
19
+ * Helper para generar clases responsive de forma programática
20
+ *
21
+ * @example
22
+ * responsive({ default: 'block', sm: 'flex', lg: 'grid' })
23
+ * // Returns: 'block sm:flex lg:grid'
24
+ */
25
+ export function responsive(config) {
26
+ const classes = [];
27
+ if (config.default) {
28
+ classes.push(config.default);
29
+ }
30
+ ['sm', 'md', 'lg', 'xl', '2xl'].forEach(bp => {
31
+ if (config[bp]) {
32
+ classes.push(`${bp}:${config[bp]}`);
33
+ }
34
+ });
35
+ return classes.join(' ');
36
+ }
37
+ /**
38
+ * Helper para overflow responsive
39
+ * Maneja el caso común de scroll en mobile, auto en desktop
40
+ *
41
+ * @example
42
+ * overflowResponsive('x', 'scroll', 'auto')
43
+ * // Returns: 'overflow-x-scroll sm:overflow-x-auto'
44
+ */
45
+ export function overflowResponsive(axis, mobile, desktop) {
46
+ const axisClass = axis === 'both' ? 'overflow' : `overflow-${axis}`;
47
+ const mobileClass = `${axisClass}-${mobile}`;
48
+ if (!desktop || desktop === mobile) {
49
+ return mobileClass;
50
+ }
51
+ return `${mobileClass} sm:${axisClass}-${desktop}`;
52
+ }
53
+ /**
54
+ * Helper para spacing responsive
55
+ * Útil para padding/margin que necesita ajustarse por breakpoint
56
+ *
57
+ * @example
58
+ * spacingResponsive('px', { default: '4', sm: '6', lg: '8' })
59
+ * // Returns: 'px-4 sm:px-6 lg:px-8'
60
+ */
61
+ export function spacingResponsive(property, values) {
62
+ return responsive(Object.entries(values).reduce((acc, [key, value]) => {
63
+ acc[key] = `${property}-${value}`;
64
+ return acc;
65
+ }, {}));
66
+ }
67
+ /**
68
+ * Helper para width responsive
69
+ *
70
+ * @example
71
+ * widthResponsive({ default: 'full', sm: 'auto', lg: '1/2' })
72
+ * // Returns: 'w-full sm:w-auto lg:w-1/2'
73
+ */
74
+ export function widthResponsive(values) {
75
+ return responsive(Object.entries(values).reduce((acc, [key, value]) => {
76
+ acc[key] = `w-${value}`;
77
+ return acc;
78
+ }, {}));
79
+ }
80
+ /**
81
+ * Clases comunes para containers responsive
82
+ * Pensadas para wrappers que contienen contenido que puede desbordar
83
+ */
84
+ export const RESPONSIVE_CONTAINER = {
85
+ // Container con scroll horizontal en mobile, contenido visible en desktop
86
+ tableWrapper: 'relative w-full overflow-x-auto sm:overflow-x-visible',
87
+ // Container con padding negativo en mobile para scroll edge-to-edge
88
+ tableWrapperFullBleed: 'relative w-full -mx-4 px-4 overflow-x-auto sm:mx-0 sm:px-0 sm:overflow-x-visible',
89
+ // Container con max-width responsive
90
+ contentWrapper: 'w-full mx-auto px-4 sm:px-6 lg:px-8 max-w-screen-2xl',
91
+ // Container para modals/dialogs
92
+ modalWrapper: 'w-full max-w-lg mx-auto px-4 sm:px-0',
93
+ // Container para forms
94
+ formWrapper: 'w-full max-w-md mx-auto space-y-4'
95
+ };
96
+ /**
97
+ * Clases comunes para display responsive
98
+ */
99
+ export const RESPONSIVE_DISPLAY = {
100
+ // Ocultar en mobile, mostrar en desktop
101
+ hideOnMobile: 'hidden sm:block',
102
+ // Mostrar solo en mobile
103
+ showOnMobile: 'block sm:hidden',
104
+ // Stack en mobile, flex en desktop
105
+ stackToFlex: 'flex flex-col sm:flex-row',
106
+ // Stack en mobile, grid en desktop
107
+ stackToGrid: 'grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3'
108
+ };
109
+ /**
110
+ * Clases para table responsive strategies
111
+ */
112
+ export const TABLE_RESPONSIVE = {
113
+ // Scroll horizontal (default, más simple)
114
+ scroll: {
115
+ wrapper: 'relative w-full overflow-x-auto',
116
+ table: 'w-full min-w-full',
117
+ cell: 'whitespace-nowrap'
118
+ },
119
+ // Permitir wrap del contenido
120
+ wrap: {
121
+ wrapper: 'relative w-full overflow-x-auto',
122
+ table: 'w-full',
123
+ cell: 'whitespace-normal break-words'
124
+ },
125
+ // Stack en mobile (cada fila se convierte en card)
126
+ // Requiere lógica adicional en el componente
127
+ stack: {
128
+ wrapper: 'relative w-full',
129
+ table: 'w-full',
130
+ row: 'block sm:table-row border-b sm:border-b-0',
131
+ cell: 'block sm:table-cell py-2 sm:py-0 before:content-[attr(data-label)] before:font-medium before:inline-block before:w-32 sm:before:content-none'
132
+ },
133
+ // Collapse: ocultar columnas menos importantes en mobile
134
+ // Se usa con clases de visibility en las columnas específicas
135
+ collapse: {
136
+ wrapper: 'relative w-full overflow-x-auto',
137
+ table: 'w-full',
138
+ cell: 'whitespace-nowrap',
139
+ // Estas clases se aplican a columnas opcionales
140
+ optionalColumn: 'hidden md:table-cell'
141
+ }
142
+ };
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvcmVzcG9uc2l2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVIOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixFQUFFLEVBQUUsT0FBTztJQUNYLEVBQUUsRUFBRSxPQUFPO0lBQ1gsRUFBRSxFQUFFLFFBQVE7SUFDWixFQUFFLEVBQUUsUUFBUTtJQUNaLEtBQUssRUFBRSxRQUFRLENBQUMsc0JBQXNCO0NBQzlCLENBQUM7QUFzQlg7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsTUFBa0Q7SUFFbEQsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO0lBRTdCLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtRQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUM5QjtJQUVBLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDN0QsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsSUFBd0IsRUFDeEIsTUFBd0IsRUFDeEIsT0FBMEI7SUFFMUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENB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XG4gKiBTaXN0ZW1hIGRlIHJlc3BvbnNpdmUgdXRpbGl0aWVzIHBhcmEgUERNIFVJIEtpdFxuICogXG4gKiBQcm9wb3JjaW9uYSBjb25zdGFudGVzLCB0aXBvcyB5IGhlbHBlcnMgcGFyYSBtYW5lamFyIHJlc3BvbnNpdmUgZGVzaWduXG4gKiBkZSBmb3JtYSBjb25zaXN0ZW50ZSBlbiB0b2RvcyBsb3MgY29tcG9uZW50ZXMuXG4gKi9cblxuLyoqXG4gKiBCcmVha3BvaW50cyBlc3TDoW5kYXIgZGUgVGFpbHdpbmQgQ1NTXG4gKiBNb2JpbGUtZmlyc3QgYXBwcm9hY2g6IGxvcyBlc3RpbG9zIGJhc2Ugc29uIHBhcmEgbW9iaWxlLCBsb3MgYnJlYWtwb2ludHMgc29uIE1JTi1XSURUSFxuICovXG5leHBvcnQgY29uc3QgQlJFQUtQT0lOVFMgPSB7XG4gIHNtOiAnNjQwcHgnLCAgIC8vIHRhYmxldCBwb3J0cmFpdFxuICBtZDogJzc2OHB4JywgICAvLyB0YWJsZXQgbGFuZHNjYXBlXG4gIGxnOiAnMTAyNHB4JywgIC8vIGRlc2t0b3BcbiAgeGw6ICcxMjgwcHgnLCAgLy8gbGFyZ2UgZGVza3RvcFxuICAnMnhsJzogJzE1MzZweCcgLy8gZXh0cmEgbGFyZ2UgZGVza3RvcFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQnJlYWtwb2ludCA9IGtleW9mIHR5cGVvZiBCUkVBS1BPSU5UUztcblxuLyoqXG4gKiBFc3RyYXRlZ2lhcyBkZSBvdmVyZmxvdyBwYXJhIGNvbXBvbmVudGVzIHF1ZSBwdWVkZW4gZGVzYm9yZGFyXG4gKi9cbmV4cG9ydCB0eXBlIE92ZXJmbG93U3RyYXRlZ3kgPSBcbiAgfCAnYXV0bycgICAgICAgIC8vIFNjcm9sbCBhdXRvbcOhdGljbyBjdWFuZG8gc2VhIG5lY2VzYXJpb1xuICB8ICdzY3JvbGwnICAgICAgLy8gU2llbXByZSBzY3JvbGxcbiAgfCAnaGlkZGVuJyAgICAgIC8vIE9jdWx0YXIgY29udGVuaWRvIHF1ZSBkZXNib3JkYVxuICB8ICd2aXNpYmxlJzsgICAgLy8gUGVybWl0aXIgZGVzYm9yZGFtaWVudG9cblxuLyoqXG4gKiBFc3RyYXRlZ2lhcyByZXNwb25zaXZlIHBhcmEgdGFibGFzXG4gKi9cbmV4cG9ydCB0eXBlIFRhYmxlUmVzcG9uc2l2ZVN0cmF0ZWd5ID0gXG4gIHwgJ3Njcm9sbCcgICAgICAvLyBTY3JvbGwgaG9yaXpvbnRhbCBlbiBtb2JpbGUgKGRlZmF1bHQsIG3DoXMgc2ltcGxlKVxuICB8ICdzdGFjaycgICAgICAgLy8gQ29udmVydGlyIGZpbGFzIGVuIGNhcmRzIHZlcnRpY2FsZXMgZW4gbW9iaWxlXG4gIHwgJ3dyYXAnICAgICAgICAvLyBQZXJtaXRpciBxdWUgZWwgY29udGVuaWRvIGhhZ2Egd3JhcFxuICB8ICdjb2xsYXBzZSc7ICAgLy8gQ29sYXBzYXIgY29sdW1uYXMgbWVub3MgaW1wb3J0YW50ZXMgZW4gbW9iaWxlXG5cbi8qKlxuICogSGVscGVyIHBhcmEgZ2VuZXJhciBjbGFzZXMgcmVzcG9uc2l2ZSBkZSBmb3JtYSBwcm9ncmFtw6F0aWNhXG4gKiBcbiAqIEBleGFtcGxlXG4gKiByZXNwb25zaXZlKHsgZGVmYXVsdDogJ2Jsb2NrJywgc206ICdmbGV4JywgbGc6ICdncmlkJyB9KVxuICogLy8gUmV0dXJuczogJ2Jsb2NrIHNtOmZsZXggbGc6Z3JpZCdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc3BvbnNpdmU8VCBleHRlbmRzIHN0cmluZz4oXG4gIGNvbmZpZzogUGFydGlhbDxSZWNvcmQ8QnJlYWtwb2ludCB8ICdkZWZhdWx0JywgVD4+XG4pOiBzdHJpbmcge1xuICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICBcbiAgaWYgKGNvbmZpZy5kZWZhdWx0KSB7XG4gICAgY2xhc3Nlcy5wdXNoKGNvbmZpZy5kZWZhdWx0KTtcbiAgfVxuICBcbiAgKFsnc20nLCAnbWQnLCAnbGcnLCAneGwnLCAnMnhsJ10gYXMgQnJlYWtwb2ludFtdKS5mb3JFYWNoKGJwID0+IHtcbiAgICBpZiAoY29uZmlnW2JwXSkge1xuICAgICAgY2xhc3Nlcy5wdXNoKGAke2JwfToke2NvbmZpZ1ticF19YCk7XG4gICAgfVxuICB9KTtcbiAgXG4gIHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgcGFyYSBvdmVyZmxvdyByZXNwb25zaXZlXG4gKiBNYW5lamEgZWwgY2FzbyBjb23Dum4gZGUgc2Nyb2xsIGVuIG1vYmlsZSwgYXV0byBlbiBkZXNrdG9wXG4gKiBcbiAqIEBleGFtcGxlXG4gKiBvdmVyZmxvd1Jlc3BvbnNpdmUoJ3gnLCAnc2Nyb2xsJywgJ2F1dG8nKVxuICogLy8gUmV0dXJuczogJ292ZXJmbG93LXgtc2Nyb2xsIHNtOm92ZXJmbG93LXgtYXV0bydcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG92ZXJmbG93UmVzcG9uc2l2ZShcbiAgYXhpczogJ3gnIHwgJ3knIHwgJ2JvdGgnLFxuICBtb2JpbGU6IE92ZXJmbG93U3RyYXRlZ3ksXG4gIGRlc2t0b3A/OiBPdmVyZmxvd1N0cmF0ZWd5XG4pOiBzdHJpbmcge1xuICBjb25zdCBheGlzQ2xhc3MgPSBheGlzID09PSAnYm90aCcgPyAnb3ZlcmZsb3cnIDogYG92ZXJmbG93LSR7YXhpc31gO1xuICBjb25zdCBtb2JpbGVDbGFzcyA9IGAke2F4aXNDbGFzc30tJHttb2JpbGV9YDtcbiAgXG4gIGlmICghZGVza3RvcCB8fCBkZXNrdG9wID09PSBtb2JpbGUpIHtcbiAgICByZXR1cm4gbW9iaWxlQ2xhc3M7XG4gIH1cbiAgXG4gIHJldHVybiBgJHttb2JpbGVDbGFzc30gc206JHtheGlzQ2xhc3N9LSR7ZGVza3RvcH1gO1xufVxuXG4vKipcbiAqIEhlbHBlciBwYXJhIHNwYWNpbmcgcmVzcG9uc2l2ZVxuICogw5p0aWwgcGFyYSBwYWRkaW5nL21hcmdpbiBxdWUgbmVjZXNpdGEgYWp1c3RhcnNlIHBvciBicmVha3BvaW50XG4gKiBcbiAqIEBleGFtcGxlXG4gKiBzcGFjaW5nUmVzcG9uc2l2ZSgncHgnLCB7IGRlZmF1bHQ6ICc0Jywgc206ICc2JywgbGc6ICc4JyB9KVxuICogLy8gUmV0dXJuczogJ3B4LTQgc206cHgtNiBsZzpweC04J1xuICovXG5leHBvcnQgZnVuY3Rpb24gc3BhY2luZ1Jlc3BvbnNpdmUoXG4gIHByb3BlcnR5OiAncCcgfCAncHgnIHwgJ3B5JyB8ICdwdCcgfCAncHInIHwgJ3BiJyB8ICdwbCcgfCAnbScgfCAnbXgnIHwgJ215JyB8ICdtdCcgfCAnbXInIHwgJ21iJyB8ICdtbCcsXG4gIHZhbHVlczogUGFydGlhbDxSZWNvcmQ8QnJlYWtwb2ludCB8ICdkZWZhdWx0Jywgc3RyaW5nPj5cbik6IHN0cmluZyB7XG4gIHJldHVybiByZXNwb25zaXZlKFxuICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlcykucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgYWNjW2tleSBhcyBCcmVha3BvaW50IHwgJ2RlZmF1bHQnXSA9IGAke3Byb3BlcnR5fS0ke3ZhbHVlfWAgYXMgYW55O1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBSZWNvcmQ8QnJlYWtwb2ludCB8ICdkZWZhdWx0Jywgc3RyaW5nPilcbiAgKTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgcGFyYSB3aWR0aCByZXNwb25zaXZlXG4gKiBcbiAqIEBleGFtcGxlXG4gKiB3aWR0aFJlc3BvbnNpdmUoeyBkZWZhdWx0OiAnZnVsbCcsIHNtOiAnYXV0bycsIGxnOiAnMS8yJyB9KVxuICogLy8gUmV0dXJuczogJ3ctZnVsbCBzbTp3LWF1dG8gbGc6dy0xLzInXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aWR0aFJlc3BvbnNpdmUoXG4gIHZhbHVlczogUGFydGlhbDxSZWNvcmQ8QnJlYWtwb2ludCB8ICdkZWZhdWx0Jywgc3RyaW5nPj5cbik6IHN0cmluZyB7XG4gIHJldHVybiByZXNwb25zaXZlKFxuICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlcykucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgYWNjW2tleSBhcyBCcmVha3BvaW50IHwgJ2RlZmF1bHQnXSA9IGB3LSR7dmFsdWV9YCBhcyBhbnk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIFJlY29yZDxCcmVha3BvaW50IHwgJ2RlZmF1bHQnLCBzdHJpbmc+KVxuICApO1xufVxuXG4vKipcbiAqIENsYXNlcyBjb211bmVzIHBhcmEgY29udGFpbmVycyByZXNwb25zaXZlXG4gKiBQZW5zYWRhcyBwYXJhIHdyYXBwZXJzIHF1ZSBjb250aWVuZW4gY29udGVuaWRvIHF1ZSBwdWVkZSBkZXNib3JkYXJcbiAqL1xuZXhwb3J0IGNvbnN0IFJFU1BPTlNJVkVfQ09OVEFJTkVSID0ge1xuICAvLyBDb250YWluZXIgY29uIHNjcm9sbCBob3Jpem9udGFsIGVuIG1vYmlsZSwgY29udGVuaWRvIHZpc2libGUgZW4gZGVza3RvcFxuICB0YWJsZVdyYXBwZXI6ICdyZWxhdGl2ZSB3LWZ1bGwgb3ZlcmZsb3cteC1hdXRvIHNtOm92ZXJmbG93LXgtdmlzaWJsZScsXG4gIFxuICAvLyBDb250YWluZXIgY29uIHBhZGRpbmcgbmVnYXRpdm8gZW4gbW9iaWxlIHBhcmEgc2Nyb2xsIGVkZ2UtdG8tZWRnZVxuICB0YWJsZVdyYXBwZXJGdWxsQmxlZWQ6ICdyZWxhdGl2ZSB3LWZ1bGwgLW14LTQgcHgtNCBvdmVyZmxvdy14LWF1dG8gc206bXgtMCBzbTpweC0wIHNtOm92ZXJmbG93LXgtdmlzaWJsZScsXG4gIFxuICAvLyBDb250YWluZXIgY29uIG1heC13aWR0aCByZXNwb25zaXZlXG4gIGNvbnRlbnRXcmFwcGVyOiAndy1mdWxsIG14LWF1dG8gcHgtNCBzbTpweC02IGxnOnB4LTggbWF4LXctc2NyZWVuLTJ4bCcsXG4gIFxuICAvLyBDb250YWluZXIgcGFyYSBtb2RhbHMvZGlhbG9nc1xuICBtb2RhbFdyYXBwZXI6ICd3LWZ1bGwgbWF4LXctbGcgbXgtYXV0byBweC00IHNtOnB4LTAnLFxuICBcbiAgLy8gQ29udGFpbmVyIHBhcmEgZm9ybXNcbiAgZm9ybVdyYXBwZXI6ICd3LWZ1bGwgbWF4LXctbWQgbXgtYXV0byBzcGFjZS15LTQnXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIENsYXNlcyBjb211bmVzIHBhcmEgZGlzcGxheSByZXNwb25zaXZlXG4gKi9cbmV4cG9ydCBjb25zdCBSRVNQT05TSVZFX0RJU1BMQVkgPSB7XG4gIC8vIE9jdWx0YXIgZW4gbW9iaWxlLCBtb3N0cmFyIGVuIGRlc2t0b3BcbiAgaGlkZU9uTW9iaWxlOiAnaGlkZGVuIHNtOmJsb2NrJyxcbiAgXG4gIC8vIE1vc3RyYXIgc29sbyBlbiBtb2JpbGVcbiAgc2hvd09uTW9iaWxlOiAnYmxvY2sgc206aGlkZGVuJyxcbiAgXG4gIC8vIFN0YWNrIGVuIG1vYmlsZSwgZmxleCBlbiBkZXNrdG9wXG4gIHN0YWNrVG9GbGV4OiAnZmxleCBmbGV4LWNvbCBzbTpmbGV4LXJvdycsXG4gIFxuICAvLyBTdGFjayBlbiBtb2JpbGUsIGdyaWQgZW4gZGVza3RvcFxuICBzdGFja1RvR3JpZDogJ2dyaWQgZ3JpZC1jb2xzLTEgc206Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTMnXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIENsYXNlcyBwYXJhIHRhYmxlIHJlc3BvbnNpdmUgc3RyYXRlZ2llc1xuICovXG5leHBvcnQgY29uc3QgVEFCTEVfUkVTUE9OU0lWRSA9IHtcbiAgLy8gU2Nyb2xsIGhvcml6b250YWwgKGRlZmF1bHQsIG3DoXMgc2ltcGxlKVxuICBzY3JvbGw6IHtcbiAgICB3cmFwcGVyOiAncmVsYXRpdmUgdy1mdWxsIG92ZXJmbG93LXgtYXV0bycsXG4gICAgdGFibGU6ICd3LWZ1bGwgbWluLXctZnVsbCcsXG4gICAgY2VsbDogJ3doaXRlc3BhY2Utbm93cmFwJ1xuICB9LFxuICBcbiAgLy8gUGVybWl0aXIgd3JhcCBkZWwgY29udGVuaWRvXG4gIHdyYXA6IHtcbiAgICB3cmFwcGVyOiAncmVsYXRpdmUgdy1mdWxsIG92ZXJmbG93LXgtYXV0bycsXG4gICAgdGFibGU6ICd3LWZ1bGwnLFxuICAgIGNlbGw6ICd3aGl0ZXNwYWNlLW5vcm1hbCBicmVhay13b3JkcydcbiAgfSxcbiAgXG4gIC8vIFN0YWNrIGVuIG1vYmlsZSAoY2FkYSBmaWxhIHNlIGNvbnZpZXJ0ZSBlbiBjYXJkKVxuICAvLyBSZXF1aWVyZSBsw7NnaWNhIGFkaWNpb25hbCBlbiBlbCBjb21wb25lbnRlXG4gIHN0YWNrOiB7XG4gICAgd3JhcHBlcjogJ3JlbGF0aXZlIHctZnVsbCcsXG4gICAgdGFibGU6ICd3LWZ1bGwnLFxuICAgIHJvdzogJ2Jsb2NrIHNtOnRhYmxlLXJvdyBib3JkZXItYiBzbTpib3JkZXItYi0wJyxcbiAgICBjZWxsOiAnYmxvY2sgc206dGFibGUtY2VsbCBweS0yIHNtOnB5LTAgYmVmb3JlOmNvbnRlbnQtW2F0dHIoZGF0YS1sYWJlbCldIGJlZm9yZTpmb250LW1lZGl1bSBiZWZvcmU6aW5saW5lLWJsb2NrIGJlZm9yZTp3LTMyIHNtOmJlZm9yZTpjb250ZW50LW5vbmUnXG4gIH0sXG4gIFxuICAvLyBDb2xsYXBzZTogb2N1bHRhciBjb2x1bW5hcyBtZW5vcyBpbXBvcnRhbnRlcyBlbiBtb2JpbGVcbiAgLy8gU2UgdXNhIGNvbiBjbGFzZXMgZGUgdmlzaWJpbGl0eSBlbiBsYXMgY29sdW1uYXMgZXNwZWPDrWZpY2FzXG4gIGNvbGxhcHNlOiB7XG4gICAgd3JhcHBlcjogJ3JlbGF0aXZlIHctZnVsbCBvdmVyZmxvdy14LWF1dG8nLFxuICAgIHRhYmxlOiAndy1mdWxsJyxcbiAgICBjZWxsOiAnd2hpdGVzcGFjZS1ub3dyYXAnLFxuICAgIC8vIEVzdGFzIGNsYXNlcyBzZSBhcGxpY2FuIGEgY29sdW1uYXMgb3BjaW9uYWxlc1xuICAgIG9wdGlvbmFsQ29sdW1uOiAnaGlkZGVuIG1kOnRhYmxlLWNlbGwnXG4gIH1cbn0gYXMgY29uc3Q7XG4iXX0=