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,209 +1,182 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, Input } from "@angular/core";
2
+ import { TABLE_RESPONSIVE, } from "../../utils/responsive";
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "@angular/common";
5
+ /**
6
+ * Componente base de tabla con soporte responsive
7
+ *
8
+ * SIMPLIFICADO: Ya no incluye drag & drop (usar pdm-draggable-table para eso)
9
+ *
10
+ * @example
11
+ * // Tabla simple con scroll horizontal
12
+ * <pdm-table variant="default">
13
+ * <thead><tr><th>Name</th><th>Email</th></tr></thead>
14
+ * <tbody><tr><td>John</td><td>john@example.com</td></tr></tbody>
15
+ * </pdm-table>
16
+ *
17
+ * @example
18
+ * // Tabla interactiva con wrap en mobile
19
+ * <pdm-table variant="interactive" responsiveStrategy="wrap">
20
+ * ...
21
+ * </pdm-table>
22
+ */
4
23
  export class PdmTableComponent {
5
- constructor(renderer) {
6
- this.renderer = renderer;
7
- this.variant = 'default';
8
- this.reorderRows = false;
9
- this.dragHandleSelector = '[data-drag-handle],[data-slot=row-drag-handle],.row-drag-handle,[data-auto-drag-handle]';
10
- this.className = '';
11
- this.rowOrderChange = new EventEmitter();
12
- this.cleanupListeners = [];
13
- this.draggedRow = null;
14
- }
15
- ngAfterViewInit() {
16
- this.syncReorderBehavior();
17
- }
18
- ngOnChanges(changes) {
19
- if (changes['reorderRows'] || changes['variant']) {
20
- this.syncReorderBehavior();
21
- }
22
- }
23
- ngOnDestroy() {
24
- this.cleanupReorderBehavior();
24
+ constructor() {
25
+ /**
26
+ * Variante visual de la tabla
27
+ * - default: tabla básica sin estilos extra
28
+ * - data: tabla con bordes y espaciado para data
29
+ * - interactive: tabla con hover, sticky header y estilos interactivos
30
+ */
31
+ this.variant = "default";
32
+ /**
33
+ * Estrategia responsive para la tabla
34
+ * - scroll: scroll horizontal en mobile (default, más simple)
35
+ * - wrap: permite que el contenido haga wrap
36
+ * - stack: convierte filas en cards en mobile (requiere data-label en celdas)
37
+ * - collapse: oculta columnas menos importantes en mobile
38
+ */
39
+ this.responsiveStrategy = "scroll";
40
+ /**
41
+ * Clases CSS adicionales para el wrapper
42
+ */
43
+ this.className = "";
44
+ /**
45
+ * Si es true, aplica padding negativo en mobile para scroll edge-to-edge
46
+ * Útil cuando la tabla está dentro de un container con padding
47
+ */
48
+ this.fullBleed = false;
25
49
  }
26
50
  get wrapperClasses() {
51
+ const baseClasses = ["relative", "w-full"];
52
+ const strategyClasses = this.getResponsiveStrategyClasses();
53
+ const variantClasses = this.getVariantWrapperClasses();
54
+ // Full bleed: scroll edge-to-edge en mobile
55
+ if (this.fullBleed && this.responsiveStrategy === "scroll") {
56
+ baseClasses.push("-mx-4", "px-4", "sm:mx-0", "sm:px-0");
57
+ }
27
58
  return [
28
- 'relative w-full overflow-auto',
29
- this.variant === 'interactive' ? 'overflow-x-auto overflow-y-hidden rounded-xl border border-border bg-background' : '',
30
- this.variant === 'data' ? 'overflow-hidden rounded-md border border-border bg-background' : '',
31
- this.className
32
- ];
59
+ ...baseClasses,
60
+ ...strategyClasses,
61
+ ...variantClasses,
62
+ this.className,
63
+ ].filter(Boolean);
33
64
  }
34
65
  get tableClasses() {
35
- return [
36
- 'w-full caption-bottom text-sm',
37
- this.variant === 'data'
38
- ? 'border-collapse text-foreground [&_thead_tr]:border-b [&_thead_tr]:border-border [&_tbody_tr]:border-b [&_tbody_tr]:border-border [&_tbody_tr:last-child]:border-b-0 [&_th]:h-10 [&_th]:px-2 [&_th]:text-left [&_th]:align-middle [&_th]:font-medium [&_td]:p-2 [&_td]:align-middle'
39
- : '',
40
- this.variant === 'interactive'
41
- ? 'text-foreground [&_thead]:sticky [&_thead]:top-0 [&_thead]:z-10 [&_thead]:bg-muted/70 [&_thead_tr]:border-b [&_thead_tr]:border-border [&_th]:h-12 [&_th]:px-4 [&_th]:text-left [&_th]:align-middle [&_th]:text-sm [&_th]:font-medium [&_th]:whitespace-nowrap [&_tbody_tr]:border-b [&_tbody_tr]:border-border [&_tbody_tr]:transition-colors [&_tbody_tr:hover]:bg-muted/50 [&_tbody_tr:last-child]:border-b-0 [&_td]:h-14 [&_td]:px-4 [&_td]:align-middle [&_td]:text-sm [&_td]:whitespace-nowrap [&_td:first-child]:w-10 [&_td:last-child]:w-10 [&_svg]:text-muted-foreground'
42
- : ''
43
- ];
44
- }
45
- syncReorderBehavior() {
46
- this.cleanupReorderBehavior();
47
- if (!this.isReorderEnabled) {
48
- return;
49
- }
50
- const tbody = this.getTbody();
51
- if (!tbody) {
52
- return;
53
- }
54
- this.setRowsDraggable(tbody, true);
55
- this.cleanupListeners.push(this.renderer.listen(tbody, 'mousedown', (event) => this.armDragFromHandle(event)), this.renderer.listen(tbody, 'dragstart', (event) => this.onDragStart(event)), this.renderer.listen(tbody, 'dragover', (event) => this.onDragOver(event, tbody)), this.renderer.listen(tbody, 'drop', (event) => this.onDrop(event)), this.renderer.listen(tbody, 'dragend', () => this.onDragEnd()));
56
- this.observer = new MutationObserver(() => this.setRowsDraggable(tbody, true));
57
- this.observer.observe(tbody, { childList: true });
58
- }
59
- cleanupReorderBehavior() {
60
- this.cleanupListeners.forEach((dispose) => dispose());
61
- this.cleanupListeners = [];
62
- if (this.observer) {
63
- this.observer.disconnect();
64
- this.observer = undefined;
65
- }
66
- const tbody = this.getTbody();
67
- if (tbody) {
68
- this.setRowsDraggable(tbody, false);
69
- }
70
- this.draggedRow = null;
71
- }
72
- get isReorderEnabled() {
73
- return this.reorderRows;
74
- }
75
- getTbody() {
76
- return this.tableElement?.nativeElement.tBodies.item(0) ?? null;
77
- }
78
- setRowsDraggable(tbody, enabled) {
79
- const rows = Array.from(tbody.rows);
80
- rows.forEach((row) => {
81
- this.syncAutoDragHandle(row, enabled);
82
- row.draggable = false;
83
- if (!enabled) {
84
- delete row.dataset['dragging'];
85
- delete row.dataset['dragArmed'];
86
- }
87
- });
88
- }
89
- syncAutoDragHandle(row, enabled) {
90
- const firstCell = row.cells.item(0);
91
- if (!firstCell) {
92
- return;
93
- }
94
- const existingAutoHandle = firstCell.querySelector('[data-auto-drag-handle]');
95
- if (!enabled) {
96
- existingAutoHandle?.remove();
97
- return;
98
- }
99
- const hasCustomHandle = !!firstCell.querySelector('[data-drag-handle],[data-slot=row-drag-handle],.row-drag-handle');
100
- if (hasCustomHandle || existingAutoHandle) {
101
- return;
102
- }
103
- const button = this.renderer.createElement('button');
104
- this.renderer.setAttribute(button, 'type', 'button');
105
- this.renderer.setAttribute(button, 'aria-label', 'Drag row');
106
- this.renderer.setAttribute(button, 'data-auto-drag-handle', 'true');
107
- this.renderer.addClass(button, 'inline-flex');
108
- this.renderer.addClass(button, 'h-7');
109
- this.renderer.addClass(button, 'w-7');
110
- this.renderer.addClass(button, 'items-center');
111
- this.renderer.addClass(button, 'justify-center');
112
- this.renderer.addClass(button, 'cursor-grab');
113
- this.renderer.addClass(button, 'active:cursor-grabbing');
114
- this.renderer.addClass(button, 'text-muted-foreground');
115
- const dots = this.renderer.createElement('span');
116
- this.renderer.addClass(dots, 'text-sm');
117
- this.renderer.addClass(dots, 'leading-none');
118
- this.renderer.setProperty(dots, 'textContent', '⋮⋮');
119
- this.renderer.appendChild(button, dots);
120
- this.renderer.insertBefore(firstCell, button, firstCell.firstChild);
121
- }
122
- onDragStart(event) {
123
- const target = event.target;
124
- const row = target?.closest('tr');
125
- if (!row) {
126
- return;
127
- }
128
- const handle = target?.closest(this.dragHandleSelector);
129
- const isArmed = row.dataset['dragArmed'] === 'true';
130
- if ((!handle || !row.contains(handle)) && !isArmed) {
131
- event.preventDefault();
132
- return;
133
- }
134
- this.draggedRow = row;
135
- this.draggedRow.dataset['dragging'] = 'true';
136
- if (event.dataTransfer) {
137
- event.dataTransfer.effectAllowed = 'move';
138
- event.dataTransfer.setData('text/plain', '');
139
- }
140
- }
141
- onDragOver(event, tbody) {
142
- if (!this.draggedRow) {
143
- return;
144
- }
145
- event.preventDefault();
146
- const target = event.target;
147
- const targetRow = target?.closest('tr');
148
- if (!targetRow || targetRow === this.draggedRow) {
149
- return;
150
- }
151
- const rect = targetRow.getBoundingClientRect();
152
- const shouldInsertBefore = event.clientY < rect.top + rect.height / 2;
153
- tbody.insertBefore(this.draggedRow, shouldInsertBefore ? targetRow : targetRow.nextSibling);
154
- }
155
- onDrop(event) {
156
- event.preventDefault();
157
- }
158
- onDragEnd() {
159
- const tbody = this.getTbody();
160
- if (tbody) {
161
- Array.from(tbody.rows).forEach((row) => {
162
- row.draggable = false;
163
- delete row.dataset['dragArmed'];
164
- });
165
- }
166
- if (this.draggedRow) {
167
- delete this.draggedRow.dataset['dragging'];
168
- this.draggedRow = null;
169
- }
170
- if (!tbody) {
171
- return;
172
- }
173
- const order = Array.from(tbody.rows).map((row, index) => row.getAttribute('data-row-id') || String(index));
174
- this.rowOrderChange.emit(order);
175
- }
176
- armDragFromHandle(event) {
177
- const target = event.target;
178
- const handle = target?.closest(this.dragHandleSelector);
179
- if (!handle) {
180
- return;
181
- }
182
- const row = handle.closest('tr');
183
- if (!row) {
184
- return;
185
- }
186
- row.draggable = true;
187
- row.dataset['dragArmed'] = 'true';
66
+ const baseClasses = ["w-full", "caption-bottom", "text-sm"];
67
+ const variantClasses = this.getVariantTableClasses();
68
+ const cellClasses = this.getCellClasses();
69
+ return [...baseClasses, ...variantClasses, ...cellClasses].filter(Boolean);
70
+ }
71
+ getResponsiveStrategyClasses() {
72
+ const strategy = TABLE_RESPONSIVE[this.responsiveStrategy];
73
+ if (this.responsiveStrategy === "scroll") {
74
+ return ["overflow-x-auto"];
75
+ }
76
+ if (this.responsiveStrategy === "wrap") {
77
+ return ["overflow-x-auto"];
78
+ }
79
+ if (this.responsiveStrategy === "stack") {
80
+ // Stack requiere lógica en el template, aquí solo el wrapper
81
+ return [];
82
+ }
83
+ if (this.responsiveStrategy === "collapse") {
84
+ return ["overflow-x-auto"];
85
+ }
86
+ return ["overflow-auto"];
87
+ }
88
+ getVariantWrapperClasses() {
89
+ if (this.variant === "interactive") {
90
+ return ["rounded-xl", "border", "border-border", "bg-background"];
91
+ }
92
+ if (this.variant === "data") {
93
+ return ["rounded-md", "border", "border-border", "bg-background"];
94
+ }
95
+ return [];
96
+ }
97
+ getVariantTableClasses() {
98
+ if (this.variant === "data") {
99
+ return [
100
+ "border-collapse",
101
+ "text-foreground",
102
+ "[&_thead_tr]:border-b",
103
+ "[&_thead_tr]:border-border",
104
+ "[&_tbody_tr]:border-b",
105
+ "[&_tbody_tr]:border-border",
106
+ "[&_tbody_tr:last-child]:border-b-0",
107
+ "[&_th]:h-10",
108
+ "[&_th]:px-2",
109
+ "[&_th]:text-left",
110
+ "[&_th]:align-middle",
111
+ "[&_th]:font-medium",
112
+ "[&_td]:p-2",
113
+ "[&_td]:align-middle",
114
+ ];
115
+ }
116
+ if (this.variant === "interactive") {
117
+ return [
118
+ "text-foreground",
119
+ "[&_thead]:sticky",
120
+ "[&_thead]:top-0",
121
+ "[&_thead]:z-10",
122
+ "[&_thead]:bg-muted/70",
123
+ "[&_thead_tr]:border-b",
124
+ "[&_thead_tr]:border-border",
125
+ "[&_th]:h-12",
126
+ "[&_th]:px-4",
127
+ "[&_th]:text-left",
128
+ "[&_th]:align-middle",
129
+ "[&_th]:text-sm",
130
+ "[&_th]:font-medium",
131
+ "[&_tbody_tr]:border-b",
132
+ "[&_tbody_tr]:border-border",
133
+ "[&_tbody_tr]:transition-colors",
134
+ "[&_tbody_tr:hover]:bg-muted/50",
135
+ "[&_tbody_tr:last-child]:border-b-0",
136
+ "[&_td]:h-14",
137
+ "[&_td]:px-4",
138
+ "[&_td]:align-middle",
139
+ "[&_td]:text-sm",
140
+ "[&_svg]:text-muted-foreground",
141
+ ];
142
+ }
143
+ return [];
144
+ }
145
+ getCellClasses() {
146
+ // Manejo responsive de whitespace
147
+ if (this.responsiveStrategy === "scroll") {
148
+ // En scroll, permitir wrap en mobile, nowrap en desktop
149
+ return [
150
+ "[&_td]:whitespace-normal",
151
+ "[&_th]:whitespace-normal",
152
+ "sm:[&_td]:whitespace-nowrap",
153
+ "sm:[&_th]:whitespace-nowrap",
154
+ ];
155
+ }
156
+ if (this.responsiveStrategy === "wrap") {
157
+ // En wrap, siempre permitir wrap
158
+ return [
159
+ "[&_td]:whitespace-normal",
160
+ "[&_td]:break-words",
161
+ "[&_th]:whitespace-normal",
162
+ ];
163
+ }
164
+ // Default: nowrap (comportamiento anterior para backward compatibility)
165
+ return [];
188
166
  }
189
167
  }
190
- PdmTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTableComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
191
- PdmTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmTableComponent, selector: "pdm-table", inputs: { variant: "variant", reorderRows: "reorderRows", dragHandleSelector: "dragHandleSelector", className: "className" }, outputs: { rowOrderChange: "rowOrderChange" }, viewQueries: [{ propertyName: "tableElement", first: true, predicate: ["tableElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"wrapperClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table-container' : null\">\n <table #tableElement [ngClass]=\"tableClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table' : null\">\n <ng-content></ng-content>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
168
+ PdmTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
169
+ PdmTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmTableComponent, selector: "pdm-table", inputs: { variant: "variant", responsiveStrategy: "responsiveStrategy", className: "className", fullBleed: "fullBleed" }, ngImport: i0, template: "<div [ngClass]=\"wrapperClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table-container' : null\">\n <table #tableElement [ngClass]=\"tableClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table' : null\">\n <ng-content></ng-content>\n </table>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
192
170
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTableComponent, decorators: [{
193
171
  type: Component,
194
- args: [{ selector: 'pdm-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"wrapperClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table-container' : null\">\n <table #tableElement [ngClass]=\"tableClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table' : null\">\n <ng-content></ng-content>\n </table>\n</div>\n" }]
195
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { variant: [{
172
+ args: [{ selector: "pdm-table", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"wrapperClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table-container' : null\">\n <table #tableElement [ngClass]=\"tableClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table' : null\">\n <ng-content></ng-content>\n </table>\n</div>\n", styles: [":host{display:block}\n"] }]
173
+ }], propDecorators: { variant: [{
196
174
  type: Input
197
- }], reorderRows: [{
198
- type: Input
199
- }], dragHandleSelector: [{
175
+ }], responsiveStrategy: [{
200
176
  type: Input
201
177
  }], className: [{
202
178
  type: Input
203
- }], rowOrderChange: [{
204
- type: Output
205
- }], tableElement: [{
206
- type: ViewChild,
207
- args: ['tableElement']
179
+ }], fullBleed: [{
180
+ type: Input
208
181
  }] } });
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7OztBQVN2QixNQUFNLE9BQU8saUJBQWlCO0lBYTVCLFlBQTZCLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFadkMsWUFBTyxHQUFvQixTQUFTLENBQUM7UUFDckMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsdUJBQWtCLEdBQUcseUZBQXlGLENBQUM7UUFDL0csY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNkLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUloRCxxQkFBZ0IsR0FBc0IsRUFBRSxDQUFDO1FBRXpDLGVBQVUsR0FBK0IsSUFBSSxDQUFDO0lBRUgsQ0FBQztJQUVwRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDaEQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTztZQUNMLCtCQUErQjtZQUMvQixJQUFJLENBQUMsT0FBTyxLQUFLLGFB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O0lBQ3BDLENBQUM7OzhHQXpPVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixpV0N0QjlCLHVSQUtBOzJGRGlCYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNO2dHQUd0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUVvQixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgUGRtVGFibGVWYXJpYW50ID0gJ2RlZmF1bHQnIHwgJ2RhdGEnIHwgJ2ludGVyYWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGRtVGFibGVDb21wb25lbnQge1xuICBASW5wdXQoKSB2YXJpYW50OiBQZG1UYWJsZVZhcmlhbnQgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIHJlb3JkZXJSb3dzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRyYWdIYW5kbGVTZWxlY3RvciA9ICdbZGF0YS1kcmFnLWhhbmRsZV0sW2RhdGEtc2xvdD1yb3ctZHJhZy1oYW5kbGVdLC5yb3ctZHJhZy1oYW5kbGUsW2RhdGEtYXV0by1kcmFnLWhhbmRsZV0nO1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcbiAgQE91dHB1dCgpIHJvd09yZGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICBAVmlld0NoaWxkKCd0YWJsZUVsZW1lbnQnKSB0YWJsZUVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxUYWJsZUVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgY2xlYW51cExpc3RlbmVyczogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcbiAgcHJpdmF0ZSBvYnNlcnZlcj86IE11dGF0aW9uT2JzZXJ2ZXI7XG4gIHByaXZhdGUgZHJhZ2dlZFJvdzogSFRNTFRhYmxlUm93RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zeW5jUmVvcmRlckJlaGF2aW9yKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Jlb3JkZXJSb3dzJ10gfHwgY2hhbmdlc1sndmFyaWFudCddKSB7XG4gICAgICB0aGlzLnN5bmNSZW9yZGVyQmVoYXZpb3IoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFudXBSZW9yZGVyQmVoYXZpb3IoKTtcbiAgfVxuXG4gIGdldCB3cmFwcGVyQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdyZWxhdGl2ZSB3LWZ1bGwgb3ZlcmZsb3ctYXV0bycsXG4gICAgICB0aGlzLnZhcmlhbnQgPT09ICdpbnRlcmFjdGl2ZScgPyAnb3ZlcmZsb3cteC1hdXRvIG92ZXJmbG93LXktaGlkZGVuIHJvdW5kZWQteGwgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCcgOiAnJyxcbiAgICAgIHRoaXMudmFyaWFudCA9PT0gJ2RhdGEnID8gJ292ZXJmbG93LWhpZGRlbiByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQnIDogJycsXG4gICAgICB0aGlzLmNsYXNzTmFtZVxuICAgIF07XG4gIH1cblxuICBnZXQgdGFibGVDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ3ctZnVsbCBjYXB0aW9uLWJvdHRvbSB0ZXh0LXNtJyxcbiAgICAgIHRoaXMudmFyaWFudCA9PT0gJ2RhdGEnXG4gICAgICAgID8gJ2JvcmRlci1jb2xsYXBzZSB0ZXh0LWZvcmVncm91bmQgWyZfdGhlYWRfdHJdOmJvcmRlci1iIFsmX3RoZWFkX3RyXTpib3JkZXItYm9yZGVyIFsmX3Rib2R5X3RyXTpib3JkZXItYiBbJl90Ym9keV90cl06Ym9yZGVyLWJvcmRlciBbJl90Ym9keV90cjpsYXN0LWNoaWxkXTpib3JkZXItYi0wIFsmX3RoXTpoLTEwIFsmX3RoXTpweC0yIFsmX3RoXTp0ZXh0LWxlZnQgWyZfdGhdOmFsaWduLW1pZGRsZSBbJl90aF06Zm9udC1tZWRpdW0gWyZfdGRdOnAtMiBbJl90ZF06YWxpZ24tbWlkZGxlJ1xuICAgICAgICA6ICcnLFxuICAgICAgdGhpcy52YXJpYW50ID09PSAnaW50ZXJhY3RpdmUnXG4gICAgICAgID8gJ3RleHQtZm9yZWdyb3VuZCBbJl90aGVhZF06c3RpY2t5IFsmX3RoZWFkXTp0b3AtMCBbJl90aGVhZF06ei0xMCBbJl90aGVhZF06YmctbXV0ZWQvNzAgWyZfdGhlYWRfdHJdOmJvcmRlci1iIFsmX3RoZWFkX3RyXTpib3JkZXItYm9yZGVyIFsmX3RoXTpoLTEyIFsmX3RoXTpweC00IFsmX3RoXTp0ZXh0LWxlZnQgWyZfdGhdOmFsaWduLW1pZGRsZSBbJl90aF06dGV4dC1zbSBbJl90aF06Zm9udC1tZWRpdW0gWyZfdGhdOndoaXRlc3BhY2Utbm93cmFwIFsmX3Rib2R5X3RyXTpib3JkZXItYiBbJl90Ym9keV90cl06Ym9yZGVyLWJvcmRlciBbJl90Ym9keV90cl06dHJhbnNpdGlvbi1jb2xvcnMgWyZfdGJvZHlfdHI6aG92ZXJdOmJnLW11dGVkLzUwIFsmX3Rib2R5X3RyOmxhc3QtY2hpbGRdOmJvcmRlci1iLTAgWyZfdGRdOmgtMTQgWyZfdGRdOnB4LTQgWyZfdGRdOmFsaWduLW1pZGRsZSBbJl90ZF06dGV4dC1zbSBbJl90ZF06d2hpdGVzcGFjZS1ub3dyYXAgWyZfdGQ6Zmlyc3QtY2hpbGRdOnctMTAgWyZfdGQ6bGFzdC1jaGlsZF06dy0xMCBbJl9zdmddOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCdcbiAgICAgICAgOiAnJ1xuICAgIF07XG4gIH1cblxuICBwcml2YXRlIHN5bmNSZW9yZGVyQmVoYXZpb3IoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhbnVwUmVvcmRlckJlaGF2aW9yKCk7XG5cbiAgICBpZiAoIXRoaXMuaXNSZW9yZGVyRW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRib2R5ID0gdGhpcy5nZXRUYm9keSgpO1xuICAgIGlmICghdGJvZHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldFJvd3NEcmFnZ2FibGUodGJvZHksIHRydWUpO1xuXG4gICAgdGhpcy5jbGVhbnVwTGlzdGVuZXJzLnB1c2goXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0Ym9keSwgJ21vdXNlZG93bicsIChldmVudDogTW91c2VFdmVudCkgPT4gdGhpcy5hcm1EcmFnRnJvbUhhbmRsZShldmVudCkpLFxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGJvZHksICdkcmFnc3RhcnQnLCAoZXZlbnQ6IERyYWdFdmVudCkgPT4gdGhpcy5vbkRyYWdTdGFydChldmVudCkpLFxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGJvZHksICdkcmFnb3ZlcicsIChldmVudDogRHJhZ0V2ZW50KSA9PiB0aGlzLm9uRHJhZ092ZXIoZXZlbnQsIHRib2R5KSksXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0Ym9keSwgJ2Ryb3AnLCAoZXZlbnQ6IERyYWdFdmVudCkgPT4gdGhpcy5vbkRyb3AoZXZlbnQpKSxcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRib2R5LCAnZHJhZ2VuZCcsICgpID0+IHRoaXMub25EcmFnRW5kKCkpXG4gICAgKTtcblxuICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB0aGlzLnNldFJvd3NEcmFnZ2FibGUodGJvZHksIHRydWUpKTtcbiAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGJvZHksIHsgY2hpbGRMaXN0OiB0cnVlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwUmVvcmRlckJlaGF2aW9yKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYW51cExpc3RlbmVycy5mb3JFYWNoKChkaXNwb3NlKSA9PiBkaXNwb3NlKCkpO1xuICAgIHRoaXMuY2xlYW51cExpc3RlbmVycyA9IFtdO1xuXG4gICAgaWYgKHRoaXMub2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgdGhpcy5vYnNlcnZlciA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCB0Ym9keSA9IHRoaXMuZ2V0VGJvZHkoKTtcbiAgICBpZiAodGJvZHkpIHtcbiAgICAgIHRoaXMuc2V0Um93c0RyYWdnYWJsZSh0Ym9keSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHRoaXMuZHJhZ2dlZFJvdyA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldCBpc1Jlb3JkZXJFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlb3JkZXJSb3dzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYm9keSgpOiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnRhYmxlRWxlbWVudD8ubmF0aXZlRWxlbWVudC50Qm9kaWVzLml0ZW0oMCkgPz8gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Um93c0RyYWdnYWJsZSh0Ym9keTogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQsIGVuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCByb3dzID0gQXJyYXkuZnJvbSh0Ym9keS5yb3dzKTtcbiAgICByb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgdGhpcy5zeW5jQXV0b0RyYWdIYW5kbGUocm93LCBlbmFibGVkKTtcbiAgICAgIHJvdy5kcmFnZ2FibGUgPSBmYWxzZTtcbiAgICAgIGlmICghZW5hYmxlZCkge1xuICAgICAgICBkZWxldGUgcm93LmRhdGFzZXRbJ2RyYWdnaW5nJ107XG4gICAgICAgIGRlbGV0ZSByb3cuZGF0YXNldFsnZHJhZ0FybWVkJ107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN5bmNBdXRvRHJhZ0hhbmRsZShyb3c6IEhUTUxUYWJsZVJvd0VsZW1lbnQsIGVuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdENlbGwgPSByb3cuY2VsbHMuaXRlbSgwKTtcbiAgICBpZiAoIWZpcnN0Q2VsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nQXV0b0hhbmRsZSA9IGZpcnN0Q2VsbC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1hdXRvLWRyYWctaGFuZGxlXScpO1xuICAgIGlmICghZW5hYmxlZCkge1xuICAgICAgZXhpc3RpbmdBdXRvSGFuZGxlPy5yZW1vdmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNDdXN0b21IYW5kbGUgPSAhIWZpcnN0Q2VsbC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1kcmFnLWhhbmRsZV0sW2RhdGEtc2xvdD1yb3ctZHJhZy1oYW5kbGVdLC5yb3ctZHJhZy1oYW5kbGUnKTtcbiAgICBpZiAoaGFzQ3VzdG9tSGFuZGxlIHx8IGV4aXN0aW5nQXV0b0hhbmRsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1dHRvbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnYnV0dG9uJykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoYnV0dG9uLCAndHlwZScsICdidXR0b24nKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShidXR0b24sICdhcmlhLWxhYmVsJywgJ0RyYWcgcm93Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoYnV0dG9uLCAnZGF0YS1hdXRvLWRyYWctaGFuZGxlJywgJ3RydWUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ1dHRvbiwgJ2lubGluZS1mbGV4Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhidXR0b24sICdoLTcnKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ1dHRvbiwgJ3ctNycpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCAnaXRlbXMtY2VudGVyJyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhidXR0b24sICdqdXN0aWZ5LWNlbnRlcicpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCAnY3Vyc29yLWdyYWInKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ1dHRvbiwgJ2FjdGl2ZTpjdXJzb3ItZ3JhYmJpbmcnKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ1dHRvbiwgJ3RleHQtbXV0ZWQtZm9yZWdyb3VuZCcpO1xuXG4gICAgY29uc3QgZG90cyA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG90cywgJ3RleHQtc20nKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvdHMsICdsZWFkaW5nLW5vbmUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KGRvdHMsICd0ZXh0Q29udGVudCcsICfii67ii64nKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGJ1dHRvbiwgZG90cyk7XG5cbiAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShmaXJzdENlbGwsIGJ1dHRvbiwgZmlyc3RDZWxsLmZpcnN0Q2hpbGQpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkRyYWdTdGFydChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICBjb25zdCByb3cgPSB0YXJnZXQ/LmNsb3Nlc3QoJ3RyJyk7XG4gICAgaWYgKCFyb3cpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGUgPSB0YXJnZXQ/LmNsb3Nlc3QodGhpcy5kcmFnSGFuZGxlU2VsZWN0b3IpO1xuICAgIGNvbnN0IGlzQXJtZWQgPSByb3cuZGF0YXNldFsnZHJhZ0FybWVkJ10gPT09ICd0cnVlJztcbiAgICBpZiAoKCFoYW5kbGUgfHwgIXJvdy5jb250YWlucyhoYW5kbGUpKSAmJiAhaXNBcm1lZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRyYWdnZWRSb3cgPSByb3cgYXMgSFRNTFRhYmxlUm93RWxlbWVudDtcbiAgICB0aGlzLmRyYWdnZWRSb3cuZGF0YXNldFsnZHJhZ2dpbmcnXSA9ICd0cnVlJztcblxuICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIpIHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gJ21vdmUnO1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCAnJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQsIHRib2R5OiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcmFnZ2VkUm93KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGNvbnN0IHRhcmdldFJvdyA9IHRhcmdldD8uY2xvc2VzdCgndHInKSBhcyBIVE1MVGFibGVSb3dFbGVtZW50IHwgbnVsbDtcblxuICAgIGlmICghdGFyZ2V0Um93IHx8IHRhcmdldFJvdyA9PT0gdGhpcy5kcmFnZ2VkUm93KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVjdCA9IHRhcmdldFJvdy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBzaG91bGRJbnNlcnRCZWZvcmUgPSBldmVudC5jbGllbnRZIDwgcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDI7XG4gICAgdGJvZHkuaW5zZXJ0QmVmb3JlKHRoaXMuZHJhZ2dlZFJvdywgc2hvdWxkSW5zZXJ0QmVmb3JlID8gdGFyZ2V0Um93IDogdGFyZ2V0Um93Lm5leHRTaWJsaW5nKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkRyYWdFbmQoKTogdm9pZCB7XG4gICAgY29uc3QgdGJvZHkgPSB0aGlzLmdldFRib2R5KCk7XG4gICAgaWYgKHRib2R5KSB7XG4gICAgICBBcnJheS5mcm9tKHRib2R5LnJvd3MpLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICByb3cuZHJhZ2dhYmxlID0gZmFsc2U7XG4gICAgICAgIGRlbGV0ZSByb3cuZGF0YXNldFsnZHJhZ0FybWVkJ107XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kcmFnZ2VkUm93KSB7XG4gICAgICBkZWxldGUgdGhpcy5kcmFnZ2VkUm93LmRhdGFzZXRbJ2RyYWdnaW5nJ107XG4gICAgICB0aGlzLmRyYWdnZWRSb3cgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICghdGJvZHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvcmRlciA9IEFycmF5LmZyb20odGJvZHkucm93cykubWFwKChyb3csIGluZGV4KSA9PiByb3cuZ2V0QXR0cmlidXRlKCdkYXRhLXJvdy1pZCcpIHx8IFN0cmluZyhpbmRleCkpO1xuICAgIHRoaXMucm93T3JkZXJDaGFuZ2UuZW1pdChvcmRlcik7XG4gIH1cblxuICBwcml2YXRlIGFybURyYWdGcm9tSGFuZGxlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICBjb25zdCBoYW5kbGUgPSB0YXJnZXQ/LmNsb3Nlc3QodGhpcy5kcmFnSGFuZGxlU2VsZWN0b3IpO1xuICAgIGlmICghaGFuZGxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgcm93ID0gaGFuZGxlLmNsb3Nlc3QoJ3RyJykgYXMgSFRNTFRhYmxlUm93RWxlbWVudCB8IG51bGw7XG4gICAgaWYgKCFyb3cpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByb3cuZHJhZ2dhYmxlID0gdHJ1ZTtcbiAgICByb3cuZGF0YXNldFsnZHJhZ0FybWVkJ10gPSAndHJ1ZSc7XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwid3JhcHBlckNsYXNzZXNcIiBbYXR0ci5kYXRhLXNsb3RdPVwidmFyaWFudCA9PT0gJ2ludGVyYWN0aXZlJyA/ICd0YWJsZS1jb250YWluZXInIDogbnVsbFwiPlxuICA8dGFibGUgI3RhYmxlRWxlbWVudCBbbmdDbGFzc109XCJ0YWJsZUNsYXNzZXNcIiBbYXR0ci5kYXRhLXNsb3RdPVwidmFyaWFudCA9PT0gJ2ludGVyYWN0aXZlJyA/ICd0YWJsZScgOiBudWxsXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBRU4sZ0JBQWdCLEdBQ2hCLE1BQU0sd0JBQXdCLENBQUM7OztBQUloQzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFPSCxNQUFNLE9BQU8saUJBQWlCO0lBTjlCO1FBT0M7Ozs7O1dBS0c7UUFDTSxZQUFPLEdBQW9CLFNBQVMsQ0FBQztRQUU5Qzs7Ozs7O1dBTUc7UUFDTSx1QkFBa0IsR0FBNEIsUUFBUSxDQUFDO1FBRWhFOztXQUVHO1FBQ00sY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUV4Qjs7O1dBR0c7UUFDTSxjQUFTLEdBQUcsS0FBSyxDQUFDO0tBMEkzQjtJQXhJQSxJQUFJLGNBQWM7UUFDakIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0MsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDNUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFdkQsNENBQTRDO1FBQzVDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEtBQUssUUFBUSxFQUFFO1lBQzNELFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxPQUFPO1lBQ04sR0FBRyxXQUFXO1lBQ2Qs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QUN6Qyx3REFBd0Q7WUFDeEQsT0FBTztnQkFDTiwwQkFBMEI7Z0JBQzFCLDBCQUEwQjtnQkFDMUIsNkJBQTZCO2dCQUM3Qiw2QkFBNkI7YUFDN0IsQ0FBQztTQUNGO1FBRUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEtBQUssTUFBTSxFQUFFO1lBQ3ZDLGlDQUFpQztZQUNqQyxPQUFPO2dCQUNOLDBCQUEwQjtnQkFDMUIsb0JBQW9CO2dCQUNwQiwwQkFBMEI7YUFDMUIsQ0FBQztTQUNGO1FBRUQsd0VBQXdFO1FBQ3hFLE9BQU8sRUFBRSxDQUFDO0lBQ1gsQ0FBQzs7OEdBcEtXLGlCQUFpQjtrR0FBakIsaUJBQWlCLDJLQ2hDOUIsdVJBS0E7MkZEMkJhLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDQyxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU07OEJBU3RDLE9BQU87c0JBQWYsS0FBSztnQkFTRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFNRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcblx0dHlwZSBUYWJsZVJlc3BvbnNpdmVTdHJhdGVneSxcblx0VEFCTEVfUkVTUE9OU0lWRSxcbn0gZnJvbSBcIi4uLy4uL3V0aWxzL3Jlc3BvbnNpdmVcIjtcblxuZXhwb3J0IHR5cGUgUGRtVGFibGVWYXJpYW50ID0gXCJkZWZhdWx0XCIgfCBcImRhdGFcIiB8IFwiaW50ZXJhY3RpdmVcIjtcblxuLyoqXG4gKiBDb21wb25lbnRlIGJhc2UgZGUgdGFibGEgY29uIHNvcG9ydGUgcmVzcG9uc2l2ZVxuICpcbiAqIFNJTVBMSUZJQ0FETzogWWEgbm8gaW5jbHV5ZSBkcmFnICYgZHJvcCAodXNhciBwZG0tZHJhZ2dhYmxlLXRhYmxlIHBhcmEgZXNvKVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUYWJsYSBzaW1wbGUgY29uIHNjcm9sbCBob3Jpem9udGFsXG4gKiA8cGRtLXRhYmxlIHZhcmlhbnQ9XCJkZWZhdWx0XCI+XG4gKiAgIDx0aGVhZD48dHI+PHRoPk5hbWU8L3RoPjx0aD5FbWFpbDwvdGg+PC90cj48L3RoZWFkPlxuICogICA8dGJvZHk+PHRyPjx0ZD5Kb2huPC90ZD48dGQ+am9obkBleGFtcGxlLmNvbTwvdGQ+PC90cj48L3Rib2R5PlxuICogPC9wZG0tdGFibGU+XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRhYmxhIGludGVyYWN0aXZhIGNvbiB3cmFwIGVuIG1vYmlsZVxuICogPHBkbS10YWJsZSB2YXJpYW50PVwiaW50ZXJhY3RpdmVcIiByZXNwb25zaXZlU3RyYXRlZ3k9XCJ3cmFwXCI+XG4gKiAgIC4uLlxuICogPC9wZG0tdGFibGU+XG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJwZG0tdGFibGVcIixcblx0dGVtcGxhdGVVcmw6IFwiLi90YWJsZS5jb21wb25lbnQuaHRtbFwiLFxuXHRzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogYmxvY2s7IH1cIl0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZG1UYWJsZUNvbXBvbmVudCB7XG5cdC8qKlxuXHQgKiBWYXJpYW50ZSB2aXN1YWwgZGUgbGEgdGFibGFcblx0ICogLSBkZWZhdWx0OiB0YWJsYSBiw6FzaWNhIHNpbiBlc3RpbG9zIGV4dHJhXG5cdCAqIC0gZGF0YTogdGFibGEgY29uIGJvcmRlcyB5IGVzcGFjaWFkbyBwYXJhIGRhdGFcblx0ICogLSBpbnRlcmFjdGl2ZTogdGFibGEgY29uIGhvdmVyLCBzdGlja3kgaGVhZGVyIHkgZXN0aWxvcyBpbnRlcmFjdGl2b3Ncblx0ICovXG5cdEBJbnB1dCgpIHZhcmlhbnQ6IFBkbVRhYmxlVmFyaWFudCA9IFwiZGVmYXVsdFwiO1xuXG5cdC8qKlxuXHQgKiBFc3RyYXRlZ2lhIHJlc3BvbnNpdmUgcGFyYSBsYSB0YWJsYVxuXHQgKiAtIHNjcm9sbDogc2Nyb2xsIGhvcml6b250YWwgZW4gbW9iaWxlIChkZWZhdWx0LCBtw6FzIHNpbXBsZSlcblx0ICogLSB3cmFwOiBwZXJtaXRlIHF1ZSBlbCBjb250ZW5pZG8gaGFnYSB3cmFwXG5cdCAqIC0gc3RhY2s6IGNvbnZpZXJ0ZSBmaWxhcyBlbiBjYXJkcyBlbiBtb2JpbGUgKHJlcXVpZXJlIGRhdGEtbGFiZWwgZW4gY2VsZGFzKVxuXHQgKiAtIGNvbGxhcHNlOiBvY3VsdGEgY29sdW1uYXMgbWVub3MgaW1wb3J0YW50ZXMgZW4gbW9iaWxlXG5cdCAqL1xuXHRASW5wdXQoKSByZXNwb25zaXZlU3RyYXRlZ3k6IFRhYmxlUmVzcG9uc2l2ZVN0cmF0ZWd5ID0gXCJzY3JvbGxcIjtcblxuXHQvKipcblx0ICogQ2xhc2VzIENTUyBhZGljaW9uYWxlcyBwYXJhIGVsIHdyYXBwZXJcblx0ICovXG5cdEBJbnB1dCgpIGNsYXNzTmFtZSA9IFwiXCI7XG5cblx0LyoqXG5cdCAqIFNpIGVzIHRydWUsIGFwbGljYSBwYWRkaW5nIG5lZ2F0aXZvIGVuIG1vYmlsZSBwYXJhIHNjcm9sbCBlZGdlLXRvLWVkZ2Vcblx0ICogw5p0aWwgY3VhbmRvIGxhIHRhYmxhIGVzdMOhIGRlbnRybyBkZSB1biBjb250YWluZXIgY29uIHBhZGRpbmdcblx0ICovXG5cdEBJbnB1dCgpIGZ1bGxCbGVlZCA9IGZhbHNlO1xuXG5cdGdldCB3cmFwcGVyQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG5cdFx0Y29uc3QgYmFzZUNsYXNzZXMgPSBbXCJyZWxhdGl2ZVwiLCBcInctZnVsbFwiXTtcblx0XHRjb25zdCBzdHJhdGVneUNsYXNzZXMgPSB0aGlzLmdldFJlc3BvbnNpdmVTdHJhdGVneUNsYXNzZXMoKTtcblx0XHRjb25zdCB2YXJpYW50Q2xhc3NlcyA9IHRoaXMuZ2V0VmFyaWFudFdyYXBwZXJDbGFzc2VzKCk7XG5cblx0XHQvLyBGdWxsIGJsZWVkOiBzY3JvbGwgZWRnZS10by1lZGdlIGVuIG1vYmlsZVxuXHRcdGlmICh0aGlzLmZ1bGxCbGVlZCAmJiB0aGlzLnJlc3BvbnNpdmVTdHJhdGVneSA9PT0gXCJzY3JvbGxcIikge1xuXHRcdFx0YmFzZUNsYXNzZXMucHVzaChcIi1teC00XCIsIFwicHgtNFwiLCBcInNtOm14LTBcIiwgXCJzbTpweC0wXCIpO1xuXHRcdH1cblxuXHRcdHJldHVybiBbXG5cdFx0XHQuLi5iYXNlQ2xhc3Nlcyxcblx0XHRcdC4uLnN0cmF0ZWd5Q2xhc3Nlcyxcblx0XHRcdC4uLnZhcmlhbnRDbGFzc2VzLFxuXHRcdFx0dGhpcy5jbGFzc05hbWUsXG5cdFx0XS5maWx0ZXIoQm9vbGVhbik7XG5cdH1cblxuXHRnZXQgdGFibGVDbGFzc2VzKCk6IHN0cmluZ1tdIHtcblx0XHRjb25zdCBiYXNlQ2xhc3NlcyA9IFtcInctZnVsbFwiLCBcImNhcHRpb24tYm90dG9tXCIsIFwidGV4dC1zbVwiXTtcblx0XHRjb25zdCB2YXJpYW50Q2xhc3NlcyA9IHRoaXMuZ2V0VmFyaWFudFRhYmxlQ2xhc3NlcygpO1xuXHRcdGNvbnN0IGNlbGxDbGFzc2VzID0gdGhpcy5nZXRDZWxsQ2xhc3NlcygpO1xuXG5cdFx0cmV0dXJuIFsuLi5iYXNlQ2xhc3NlcywgLi4udmFyaWFudENsYXNzZXMsIC4uLmNlbGxDbGFzc2VzXS5maWx0ZXIoQm9vbGVhbik7XG5cdH1cblxuXHRwcml2YXRlIGdldFJlc3BvbnNpdmVTdHJhdGVneUNsYXNzZXMoKTogc3RyaW5nW10ge1xuXHRcdGNvbnN0IHN0cmF0ZWd5ID0gVEFCTEVfUkVTUE9OU0lWRVt0aGlzLnJlc3BvbnNpdmVTdHJhdGVneV07XG5cblx0XHRpZiAodGhpcy5yZXNwb25zaXZlU3RyYXRlZ3kgPT09IFwic2Nyb2xsXCIpIHtcblx0XHRcdHJldHVybiBbXCJvdmVyZmxvdy14LWF1dG9cIl07XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMucmVzcG9uc2l2ZVN0cmF0ZWd5ID09PSBcIndyYXBcIikge1xuXHRcdFx0cmV0dXJuIFtcIm92ZXJmbG93LXgtYXV0b1wiXTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5yZXNwb25zaXZlU3RyYXRlZ3kgPT09IFwic3RhY2tcIikge1xuXHRcdFx0Ly8gU3RhY2sgcmVxdWllcmUgbMOzZ2ljYSBlbiBlbCB0ZW1wbGF0ZSwgYXF1w60gc29sbyBlbCB3cmFwcGVyXG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMucmVzcG9uc2l2ZVN0cmF0ZWd5ID09PSBcImNvbGxhcHNlXCIpIHtcblx0XHRcdHJldHVybiBbXCJvdmVyZmxvdy14LWF1dG9cIl07XG5cdFx0fVxuXG5cdFx0cmV0dXJuIFtcIm92ZXJmbG93LWF1dG9cIl07XG5cdH1cblxuXHRwcml2YXRlIGdldFZhcmlhbnRXcmFwcGVyQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG5cdFx0aWYgKHRoaXMudmFyaWFudCA9PT0gXCJpbnRlcmFjdGl2ZVwiKSB7XG5cdFx0XHRyZXR1cm4gW1wicm91bmRlZC14bFwiLCBcImJvcmRlclwiLCBcImJvcmRlci1ib3JkZXJcIiwgXCJiZy1iYWNrZ3JvdW5kXCJdO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnZhcmlhbnQgPT09IFwiZGF0YVwiKSB7XG5cdFx0XHRyZXR1cm4gW1wicm91bmRlZC1tZFwiLCBcImJvcmRlclwiLCBcImJvcmRlci1ib3JkZXJcIiwgXCJiZy1iYWNrZ3JvdW5kXCJdO1xuXHRcdH1cblxuXHRcdHJldHVybiBbXTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0VmFyaWFudFRhYmxlQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG5cdFx0aWYgKHRoaXMudmFyaWFudCA9PT0gXCJkYXRhXCIpIHtcblx0XHRcdHJldHVybiBbXG5cdFx0XHRcdFwiYm9yZGVyLWNvbGxhcHNlXCIsXG5cdFx0XHRcdFwidGV4dC1mb3JlZ3JvdW5kXCIsXG5cdFx0XHRcdFwiWyZfdGhlYWRfdHJdOmJvcmRlci1iXCIsXG5cdFx0XHRcdFwiWyZfdGhlYWRfdHJdOmJvcmRlci1ib3JkZXJcIixcblx0XHRcdFx0XCJbJl90Ym9keV90cl06Ym9yZGVyLWJcIixcblx0XHRcdFx0XCJbJl90Ym9keV90cl06Ym9yZGVyLWJvcmRlclwiLFxuXHRcdFx0XHRcIlsmX3Rib2R5X3RyOmxhc3QtY2hpbGRdOmJvcmRlci1iLTBcIixcblx0XHRcdFx0XCJbJl90aF06aC0xMFwiLFxuXHRcdFx0XHRcIlsmX3RoXTpweC0yXCIsXG5cdFx0XHRcdFwiWyZfdGhdOnRleHQtbGVmdFwiLFxuXHRcdFx0XHRcIlsmX3RoXTphbGlnbi1taWRkbGVcIixcblx0XHRcdFx0XCJbJl90aF06Zm9udC1tZWRpdW1cIixcblx0XHRcdFx0XCJbJl90ZF06cC0yXCIsXG5cdFx0XHRcdFwiWyZfdGRdOmFsaWduLW1pZGRsZVwiLFxuXHRcdFx0XTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy52YXJpYW50ID09PSBcImludGVyYWN0aXZlXCIpIHtcblx0XHRcdHJldHVybiBbXG5cdFx0XHRcdFwidGV4dC1mb3JlZ3JvdW5kXCIsXG5cdFx0XHRcdFwiWyZfdGhlYWRdOnN0aWNreVwiLFxuXHRcdFx0XHRcIlsmX3RoZWFkXTp0b3AtMFwiLFxuXHRcdFx0XHRcIlsmX3RoZWFkXTp6LTEwXCIsXG5cdFx0XHRcdFwiWyZfdGhlYWRdOmJnLW11dGVkLzcwXCIsXG5cdFx0XHRcdFwiWyZfdGhlYWRfdHJdOmJvcmRlci1iXCIsXG5cdFx0XHRcdFwiWyZfdGhlYWRfdHJdOmJvcmRlci1ib3JkZXJcIixcblx0XHRcdFx0XCJbJl90aF06aC0xMlwiLFxuXHRcdFx0XHRcIlsmX3RoXTpweC00XCIsXG5cdFx0XHRcdFwiWyZfdGhdOnRleHQtbGVmdFwiLFxuXHRcdFx0XHRcIlsmX3RoXTphbGlnbi1taWRkbGVcIixcblx0XHRcdFx0XCJbJl90aF06dGV4dC1zbVwiLFxuXHRcdFx0XHRcIlsmX3RoXTpmb250LW1lZGl1bVwiLFxuXHRcdFx0XHRcIlsmX3Rib2R5X3RyXTpib3JkZXItYlwiLFxuXHRcdFx0XHRcIlsmX3Rib2R5X3RyXTpib3JkZXItYm9yZGVyXCIsXG5cdFx0XHRcdFwiWyZfdGJvZHlfdHJdOnRyYW5zaXRpb24tY29sb3JzXCIsXG5cdFx0XHRcdFwiWyZfdGJvZHlfdHI6aG92ZXJdOmJnLW11dGVkLzUwXCIsXG5cdFx0XHRcdFwiWyZfdGJvZHlfdHI6bGFzdC1jaGlsZF06Ym9yZGVyLWItMFwiLFxuXHRcdFx0XHRcIlsmX3RkXTpoLTE0XCIsXG5cdFx0XHRcdFwiWyZfdGRdOnB4LTRcIixcblx0XHRcdFx0XCJbJl90ZF06YWxpZ24tbWlkZGxlXCIsXG5cdFx0XHRcdFwiWyZfdGRdOnRleHQtc21cIixcblx0XHRcdFx0XCJbJl9zdmddOnRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiLFxuXHRcdFx0XTtcblx0XHR9XG5cblx0XHRyZXR1cm4gW107XG5cdH1cblxuXHRwcml2YXRlIGdldENlbGxDbGFzc2VzKCk6IHN0cmluZ1tdIHtcblx0XHQvLyBNYW5lam8gcmVzcG9uc2l2ZSBkZSB3aGl0ZXNwYWNlXG5cdFx0aWYgKHRoaXMucmVzcG9uc2l2ZVN0cmF0ZWd5ID09PSBcInNjcm9sbFwiKSB7XG5cdFx0XHQvLyBFbiBzY3JvbGwsIHBlcm1pdGlyIHdyYXAgZW4gbW9iaWxlLCBub3dyYXAgZW4gZGVza3RvcFxuXHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XCJbJl90ZF06d2hpdGVzcGFjZS1ub3JtYWxcIixcblx0XHRcdFx0XCJbJl90aF06d2hpdGVzcGFjZS1ub3JtYWxcIixcblx0XHRcdFx0XCJzbTpbJl90ZF06d2hpdGVzcGFjZS1ub3dyYXBcIixcblx0XHRcdFx0XCJzbTpbJl90aF06d2hpdGVzcGFjZS1ub3dyYXBcIixcblx0XHRcdF07XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMucmVzcG9uc2l2ZVN0cmF0ZWd5ID09PSBcIndyYXBcIikge1xuXHRcdFx0Ly8gRW4gd3JhcCwgc2llbXByZSBwZXJtaXRpciB3cmFwXG5cdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcIlsmX3RkXTp3aGl0ZXNwYWNlLW5vcm1hbFwiLFxuXHRcdFx0XHRcIlsmX3RkXTpicmVhay13b3Jkc1wiLFxuXHRcdFx0XHRcIlsmX3RoXTp3aGl0ZXNwYWNlLW5vcm1hbFwiLFxuXHRcdFx0XTtcblx0XHR9XG5cblx0XHQvLyBEZWZhdWx0OiBub3dyYXAgKGNvbXBvcnRhbWllbnRvIGFudGVyaW9yIHBhcmEgYmFja3dhcmQgY29tcGF0aWJpbGl0eSlcblx0XHRyZXR1cm4gW107XG5cdH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwid3JhcHBlckNsYXNzZXNcIiBbYXR0ci5kYXRhLXNsb3RdPVwidmFyaWFudCA9PT0gJ2ludGVyYWN0aXZlJyA/ICd0YWJsZS1jb250YWluZXInIDogbnVsbFwiPlxuICA8dGFibGUgI3RhYmxlRWxlbWVudCBbbmdDbGFzc109XCJ0YWJsZUNsYXNzZXNcIiBbYXR0ci5kYXRhLXNsb3RdPVwidmFyaWFudCA9PT0gJ2ludGVyYWN0aXZlJyA/ICd0YWJsZScgOiBudWxsXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
@@ -1,12 +1,12 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } 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
4
  export class PdmTabsComponent {
5
5
  constructor(cdr) {
6
6
  this.cdr = cdr;
7
7
  this.items = [];
8
- this.value = '';
9
- this.className = '';
8
+ this.value = "";
9
+ this.className = "";
10
10
  this.valueChange = new EventEmitter();
11
11
  }
12
12
  select(item) {
@@ -18,10 +18,10 @@ export class PdmTabsComponent {
18
18
  }
19
19
  }
20
20
  PdmTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTabsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
21
- PdmTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmTabsComponent, selector: "pdm-tabs", inputs: { items: "items", value: "value", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['w-full', className]\">\n <div role=\"tablist\" class=\"inline-flex h-8 w-fit items-center justify-center rounded-lg bg-muted p-[3px] text-muted-foreground\">\n <button\n *ngFor=\"let item of items\"\n role=\"tab\"\n [attr.aria-selected]=\"value === item.value\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'relative inline-flex h-[calc(100%-1px)] appearance-none flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium transition-all focus-visible:border-ring focus-visible:outline-none focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50',\n value === item.value ? 'bg-background text-foreground shadow-sm' : 'bg-transparent text-muted-foreground'\n ]\"\n (click)=\"select(item)\"\n type=\"button\"\n >\n {{ item.label }}\n </button>\n </div>\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
21
+ PdmTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmTabsComponent, selector: "pdm-tabs", inputs: { items: "items", value: "value", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['w-full', className]\">\n <div\n role=\"tablist\"\n class=\"inline-flex h-8 w-full items-center overflow-x-auto scrollbar-thin rounded-lg bg-muted p-[3px] text-muted-foreground md:w-fit\"\n >\n <button\n *ngFor=\"let item of items\"\n role=\"tab\"\n [attr.aria-selected]=\"value === item.value\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'relative inline-flex h-[calc(100%-1px)] appearance-none flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-md border border-transparent px-3 py-0.5 text-sm font-medium transition-all focus-visible:border-ring focus-visible:outline-none focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 md:flex-initial md:px-4',\n value === item.value ? 'bg-background text-foreground shadow-sm' : 'bg-transparent text-muted-foreground'\n ]\"\n (click)=\"select(item)\"\n type=\"button\"\n >\n {{ item.label }}\n </button>\n </div>\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
22
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTabsComponent, decorators: [{
23
23
  type: Component,
24
- args: [{ selector: 'pdm-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['w-full', className]\">\n <div role=\"tablist\" class=\"inline-flex h-8 w-fit items-center justify-center rounded-lg bg-muted p-[3px] text-muted-foreground\">\n <button\n *ngFor=\"let item of items\"\n role=\"tab\"\n [attr.aria-selected]=\"value === item.value\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'relative inline-flex h-[calc(100%-1px)] appearance-none flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium transition-all focus-visible:border-ring focus-visible:outline-none focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50',\n value === item.value ? 'bg-background text-foreground shadow-sm' : 'bg-transparent text-muted-foreground'\n ]\"\n (click)=\"select(item)\"\n type=\"button\"\n >\n {{ item.label }}\n </button>\n </div>\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
24
+ args: [{ selector: "pdm-tabs", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['w-full', className]\">\n <div\n role=\"tablist\"\n class=\"inline-flex h-8 w-full items-center overflow-x-auto scrollbar-thin rounded-lg bg-muted p-[3px] text-muted-foreground md:w-fit\"\n >\n <button\n *ngFor=\"let item of items\"\n role=\"tab\"\n [attr.aria-selected]=\"value === item.value\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'relative inline-flex h-[calc(100%-1px)] appearance-none flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-md border border-transparent px-3 py-0.5 text-sm font-medium transition-all focus-visible:border-ring focus-visible:outline-none focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 md:flex-initial md:px-4',\n value === item.value ? 'bg-background text-foreground shadow-sm' : 'bg-transparent text-muted-foreground'\n ]\"\n (click)=\"select(item)\"\n type=\"button\"\n >\n {{ item.label }}\n </button>\n </div>\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host{display:block}\n"] }]
25
25
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
26
26
  type: Input
27
27
  }], value: [{
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
31
31
  }], valueChange: [{
32
32
  type: Output
33
33
  }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFicy90YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJzL3RhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQWFuSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQTZCLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBRTFDLFVBQUssR0FBaUIsRUFBRSxDQUFDO1FBQ3pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBTkcsQ0FBQztJQVF2RCxNQUFNLENBQUMsSUFBZ0I7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7NkdBZlUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsNkpDYjdCLDBpQ0FxQkE7MkZEUmEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLFVBQVUsbUJBRUgsdUJBQXVCLENBQUMsTUFBTTt3R0FLdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGRtVGFiSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLXRhYnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFicy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbVRhYnNDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgQElucHV0KCkgaXRlbXM6IFBkbVRhYkl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBzZWxlY3QoaXRlbTogUGRtVGFiSXRlbSk6IHZvaWQge1xuICAgIGlmICghaXRlbS5kaXNhYmxlZCkge1xuICAgICAgdGhpcy52YWx1ZSA9IGl0ZW0udmFsdWU7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaXRlbS52YWx1ZSk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiWyd3LWZ1bGwnLCBjbGFzc05hbWVdXCI+XG4gIDxkaXYgcm9sZT1cInRhYmxpc3RcIiBjbGFzcz1cImlubGluZS1mbGV4IGgtOCB3LWZpdCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBiZy1tdXRlZCBwLVszcHhdIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCJcbiAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ2YWx1ZSA9PT0gaXRlbS52YWx1ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICBbbmdDbGFzc109XCJbXG4gICAgICAgICdyZWxhdGl2ZSBpbmxpbmUtZmxleCBoLVtjYWxjKDEwMCUtMXB4KV0gYXBwZWFyYW5jZS1ub25lIGZsZXgtMSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTEuNSB3aGl0ZXNwYWNlLW5vd3JhcCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgcHgtMS41IHB5LTAuNSB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tYWxsIGZvY3VzLXZpc2libGU6Ym9yZGVyLXJpbmcgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLVszcHhdIGZvY3VzLXZpc2libGU6cmluZy1yaW5nLzUwIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6b3BhY2l0eS01MCcsXG4gICAgICAgIHZhbHVlID09PSBpdGVtLnZhbHVlID8gJ2JnLWJhY2tncm91bmQgdGV4dC1mb3JlZ3JvdW5kIHNoYWRvdy1zbScgOiAnYmctdHJhbnNwYXJlbnQgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kJ1xuICAgICAgXVwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtdC00XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFicy90YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJzL3RhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7OztBQWN2QixNQUFNLE9BQU8sZ0JBQWdCO0lBQzVCLFlBQTZCLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBRTFDLFVBQUssR0FBaUIsRUFBRSxDQUFDO1FBQ3pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBTkcsQ0FBQztJQVF2RCxNQUFNLENBQUMsSUFBZ0I7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3hCO0lBQ0YsQ0FBQzs7NkdBZlcsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsNkpDckI3Qix3bUNBd0JBOzJGREhhLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDQyxVQUFVLG1CQUdILHVCQUF1QixDQUFDLE1BQU07d0dBS3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5wdXQsXG5cdE91dHB1dCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQZG1UYWJJdGVtIHtcblx0bGFiZWw6IHN0cmluZztcblx0dmFsdWU6IHN0cmluZztcblx0ZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwicGRtLXRhYnNcIixcblx0dGVtcGxhdGVVcmw6IFwiLi90YWJzLmNvbXBvbmVudC5odG1sXCIsXG5cdHN0eWxlczogW1wiOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfVwiXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBkbVRhYnNDb21wb25lbnQge1xuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cblx0QElucHV0KCkgaXRlbXM6IFBkbVRhYkl0ZW1bXSA9IFtdO1xuXHRASW5wdXQoKSB2YWx1ZSA9IFwiXCI7XG5cdEBJbnB1dCgpIGNsYXNzTmFtZSA9IFwiXCI7XG5cblx0QE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cblx0c2VsZWN0KGl0ZW06IFBkbVRhYkl0ZW0pOiB2b2lkIHtcblx0XHRpZiAoIWl0ZW0uZGlzYWJsZWQpIHtcblx0XHRcdHRoaXMudmFsdWUgPSBpdGVtLnZhbHVlO1xuXHRcdFx0dGhpcy52YWx1ZUNoYW5nZS5lbWl0KGl0ZW0udmFsdWUpO1xuXHRcdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdFx0fVxuXHR9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cIlsndy1mdWxsJywgY2xhc3NOYW1lXVwiPlxuICA8ZGl2XG4gICAgcm9sZT1cInRhYmxpc3RcIlxuICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaC04IHctZnVsbCBpdGVtcy1jZW50ZXIgb3ZlcmZsb3cteC1hdXRvIHNjcm9sbGJhci10aGluIHJvdW5kZWQtbGcgYmctbXV0ZWQgcC1bM3B4XSB0ZXh0LW11dGVkLWZvcmVncm91bmQgbWQ6dy1maXRcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxuICAgICAgcm9sZT1cInRhYlwiXG4gICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInZhbHVlID09PSBpdGVtLnZhbHVlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICAgJ3JlbGF0aXZlIGlubGluZS1mbGV4IGgtW2NhbGMoMTAwJS0xcHgpXSBhcHBlYXJhbmNlLW5vbmUgZmxleC0xIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMS41IHdoaXRlc3BhY2Utbm93cmFwIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBweC0zIHB5LTAuNSB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tYWxsIGZvY3VzLXZpc2libGU6Ym9yZGVyLXJpbmcgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLVszcHhdIGZvY3VzLXZpc2libGU6cmluZy1yaW5nLzUwIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6b3BhY2l0eS01MCBtZDpmbGV4LWluaXRpYWwgbWQ6cHgtNCcsXG4gICAgICAgIHZhbHVlID09PSBpdGVtLnZhbHVlID8gJ2JnLWJhY2tncm91bmQgdGV4dC1mb3JlZ3JvdW5kIHNoYWRvdy1zbScgOiAnYmctdHJhbnNwYXJlbnQgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kJ1xuICAgICAgXVwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtdC00XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,11 +1,11 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } 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
4
  export class PdmToggleGroupComponent {
5
5
  constructor() {
6
6
  this.items = [];
7
- this.value = '';
8
- this.className = '';
7
+ this.value = "";
8
+ this.className = "";
9
9
  this.valueChange = new EventEmitter();
10
10
  }
11
11
  onSelect(next, disabled) {
@@ -15,10 +15,10 @@ export class PdmToggleGroupComponent {
15
15
  }
16
16
  }
17
17
  PdmToggleGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmToggleGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- PdmToggleGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmToggleGroupComponent, selector: "pdm-toggle-group", inputs: { items: "items", value: "value", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['inline-flex items-center rounded-md border border-border p-1', className]\" role=\"group\">\n <button\n *ngFor=\"let item of items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [attr.aria-pressed]=\"item.value === value\"\n [ngClass]=\"[\n 'inline-flex h-8 appearance-none items-center justify-center rounded-sm border-0 bg-transparent px-2.5 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n item.value === value\n ? 'bg-accent text-accent-foreground'\n : 'text-foreground hover:bg-accent hover:text-accent-foreground'\n ]\"\n (click)=\"onSelect(item.value, item.disabled)\"\n >\n {{ item.label }}\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18
+ PdmToggleGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmToggleGroupComponent, selector: "pdm-toggle-group", inputs: { items: "items", value: "value", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div\n [ngClass]=\"[\n 'flex flex-wrap items-center rounded-md border border-border p-1 gap-1',\n className,\n ]\"\n role=\"group\"\n>\n <button\n *ngFor=\"let item of items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [attr.aria-pressed]=\"item.value === value\"\n [ngClass]=\"[\n 'inline-flex h-8 appearance-none items-center justify-center rounded-sm border-0 bg-transparent px-2.5 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n item.value === value\n ? 'bg-accent text-accent-foreground'\n : 'text-foreground hover:bg-accent hover:text-accent-foreground',\n ]\"\n (click)=\"onSelect(item.value, item.disabled)\"\n >\n {{ item.label }}\n </button>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmToggleGroupComponent, decorators: [{
20
20
  type: Component,
21
- args: [{ selector: 'pdm-toggle-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['inline-flex items-center rounded-md border border-border p-1', className]\" role=\"group\">\n <button\n *ngFor=\"let item of items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [attr.aria-pressed]=\"item.value === value\"\n [ngClass]=\"[\n 'inline-flex h-8 appearance-none items-center justify-center rounded-sm border-0 bg-transparent px-2.5 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n item.value === value\n ? 'bg-accent text-accent-foreground'\n : 'text-foreground hover:bg-accent hover:text-accent-foreground'\n ]\"\n (click)=\"onSelect(item.value, item.disabled)\"\n >\n {{ item.label }}\n </button>\n</div>\n" }]
21
+ args: [{ selector: "pdm-toggle-group", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [ngClass]=\"[\n 'flex flex-wrap items-center rounded-md border border-border p-1 gap-1',\n className,\n ]\"\n role=\"group\"\n>\n <button\n *ngFor=\"let item of items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [attr.aria-pressed]=\"item.value === value\"\n [ngClass]=\"[\n 'inline-flex h-8 appearance-none items-center justify-center rounded-sm border-0 bg-transparent px-2.5 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n item.value === value\n ? 'bg-accent text-accent-foreground'\n : 'text-foreground hover:bg-accent hover:text-accent-foreground',\n ]\"\n (click)=\"onSelect(item.value, item.disabled)\"\n >\n {{ item.label }}\n </button>\n</div>\n", styles: [":host{display:block}\n"] }]
22
22
  }], propDecorators: { items: [{
23
23
  type: Input
24
24
  }], value: [{
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
28
28
  }], valueChange: [{
29
29
  type: Output
30
30
  }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtZ3JvdXAvdG9nZ2xlLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtZ3JvdXAvdG9nZ2xlLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQWFoRyxNQUFNLE9BQU8sdUJBQXVCO0lBTHBDO1FBTVcsVUFBSyxHQUF5QixFQUFFLENBQUM7UUFDakMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FPcEQ7SUFMQyxRQUFRLENBQUMsSUFBWSxFQUFFLFFBQWtCO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0I7SUFDSCxDQUFDOztvSEFYVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixxS0NicEMsKzFCQWlCQTsyRkRKYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUVYLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGRtVG9nZ2xlR3JvdXBJdGVtIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZG0tdG9nZ2xlLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvZ2dsZS1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbVRvZ2dsZUdyb3VwQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaXRlbXM6IFBkbVRvZ2dsZUdyb3VwSXRlbVtdID0gW107XG4gIEBJbnB1dCgpIHZhbHVlID0gJyc7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIG9uU2VsZWN0KG5leHQ6IHN0cmluZywgZGlzYWJsZWQ/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKCFkaXNhYmxlZCAmJiBuZXh0ICE9PSB0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobmV4dCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cIlsnaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgcC0xJywgY2xhc3NOYW1lXVwiIHJvbGU9XCJncm91cFwiPlxuICA8YnV0dG9uXG4gICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiaXRlbS52YWx1ZSA9PT0gdmFsdWVcIlxuICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICdpbmxpbmUtZmxleCBoLTggYXBwZWFyYW5jZS1ub25lIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLXNtIGJvcmRlci0wIGJnLXRyYW5zcGFyZW50IHB4LTIuNSB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tY29sb3JzIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6b3BhY2l0eS01MCByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMicsXG4gICAgICBpdGVtLnZhbHVlID09PSB2YWx1ZVxuICAgICAgICA/ICdiZy1hY2NlbnQgdGV4dC1hY2NlbnQtZm9yZWdyb3VuZCdcbiAgICAgICAgOiAndGV4dC1mb3JlZ3JvdW5kIGhvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJ1xuICAgIF1cIlxuICAgIChjbGljayk9XCJvblNlbGVjdChpdGVtLnZhbHVlLCBpdGVtLmRpc2FibGVkKVwiXG4gID5cbiAgICB7eyBpdGVtLmxhYmVsIH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtZ3JvdXAvdG9nZ2xlLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtZ3JvdXAvdG9nZ2xlLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDOzs7QUFjdkIsTUFBTSxPQUFPLHVCQUF1QjtJQU5wQztRQU9VLFVBQUssR0FBeUIsRUFBRSxDQUFDO1FBQ2pDLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBT25EO0lBTEEsUUFBUSxDQUFDLElBQVksRUFBRSxRQUFrQjtRQUN4QyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzVCO0lBQ0YsQ0FBQzs7b0hBWFcsdUJBQXVCO3dHQUF2Qix1QkFBdUIscUtDcEJwQyxpNEJBdUJBOzJGREhhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDQyxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFdmVudEVtaXR0ZXIsXG5cdElucHV0LFxuXHRPdXRwdXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGRtVG9nZ2xlR3JvdXBJdGVtIHtcblx0bGFiZWw6IHN0cmluZztcblx0dmFsdWU6IHN0cmluZztcblx0ZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwicGRtLXRvZ2dsZS1ncm91cFwiLFxuXHR0ZW1wbGF0ZVVybDogXCIuL3RvZ2dsZS1ncm91cC5jb21wb25lbnQuaHRtbFwiLFxuXHRzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogYmxvY2s7IH1cIl0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZG1Ub2dnbGVHcm91cENvbXBvbmVudCB7XG5cdEBJbnB1dCgpIGl0ZW1zOiBQZG1Ub2dnbGVHcm91cEl0ZW1bXSA9IFtdO1xuXHRASW5wdXQoKSB2YWx1ZSA9IFwiXCI7XG5cdEBJbnB1dCgpIGNsYXNzTmFtZSA9IFwiXCI7XG5cblx0QE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cblx0b25TZWxlY3QobmV4dDogc3RyaW5nLCBkaXNhYmxlZD86IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAoIWRpc2FibGVkICYmIG5leHQgIT09IHRoaXMudmFsdWUpIHtcblx0XHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdChuZXh0KTtcblx0XHR9XG5cdH1cbn1cbiIsIjxkaXZcbiAgW25nQ2xhc3NdPVwiW1xuICAgICdmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJvcmRlciBwLTEgZ2FwLTEnLFxuICAgIGNsYXNzTmFtZSxcbiAgXVwiXG4gIHJvbGU9XCJncm91cFwiXG4+XG4gIDxidXR0b25cbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgIFthdHRyLmFyaWEtcHJlc3NlZF09XCJpdGVtLnZhbHVlID09PSB2YWx1ZVwiXG4gICAgW25nQ2xhc3NdPVwiW1xuICAgICAgJ2lubGluZS1mbGV4IGgtOCBhcHBlYXJhbmNlLW5vbmUgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtc20gYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgcHgtMi41IHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnMgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwIHJpbmctb2Zmc2V0LWJhY2tncm91bmQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yJyxcbiAgICAgIGl0ZW0udmFsdWUgPT09IHZhbHVlXG4gICAgICAgID8gJ2JnLWFjY2VudCB0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJ1xuICAgICAgICA6ICd0ZXh0LWZvcmVncm91bmQgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQnLFxuICAgIF1cIlxuICAgIChjbGljayk9XCJvblNlbGVjdChpdGVtLnZhbHVlLCBpdGVtLmRpc2FibGVkKVwiXG4gID5cbiAgICB7eyBpdGVtLmxhYmVsIH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=