pdm-ui-kit 0.1.50 → 0.2.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 (46) hide show
  1. package/README.md +189 -2
  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/calendar/calendar.component.mjs +3 -3
  5. package/esm2020/lib/components/card/card.component.mjs +36 -53
  6. package/esm2020/lib/components/command/command.component.mjs +3 -3
  7. package/esm2020/lib/components/context-menu/context-menu.component.mjs +3 -3
  8. package/esm2020/lib/components/data-table/data-table.component.mjs +214 -16
  9. package/esm2020/lib/components/dialog/dialog.component.mjs +133 -17
  10. package/esm2020/lib/components/draggable-table/draggable-table.component.mjs +300 -0
  11. package/esm2020/lib/components/drawer/drawer.component.mjs +123 -16
  12. package/esm2020/lib/components/dropdown-menu/dropdown-menu.component.mjs +3 -2
  13. package/esm2020/lib/components/hover-card/hover-card.component.mjs +3 -3
  14. package/esm2020/lib/components/menubar/menubar.component.mjs +3 -3
  15. package/esm2020/lib/components/navigation-menu/navigation-menu.component.mjs +25 -3
  16. package/esm2020/lib/components/pagination/pagination.component.mjs +3 -3
  17. package/esm2020/lib/components/popover/popover.component.mjs +5 -3
  18. package/esm2020/lib/components/select/select.component.mjs +5 -3
  19. package/esm2020/lib/components/sheet/sheet.component.mjs +68 -12
  20. package/esm2020/lib/components/sidebar/sidebar.component.mjs +52 -5
  21. package/esm2020/lib/components/table/table.component.mjs +152 -188
  22. package/esm2020/lib/components/tabs/tabs.component.mjs +3 -3
  23. package/esm2020/lib/components/tooltip/tooltip.component.mjs +3 -3
  24. package/esm2020/lib/pdm-ui-kit.module.mjs +5 -1
  25. package/esm2020/lib/utils/responsive.mjs +143 -0
  26. package/esm2020/lib/utils/z-index.mjs +93 -0
  27. package/esm2020/public-api.mjs +4 -1
  28. package/fesm2015/pdm-ui-kit.mjs +1430 -371
  29. package/fesm2015/pdm-ui-kit.mjs.map +1 -1
  30. package/fesm2020/pdm-ui-kit.mjs +1428 -369
  31. package/fesm2020/pdm-ui-kit.mjs.map +1 -1
  32. package/lib/components/breadcrumb/breadcrumb.component.d.ts +23 -1
  33. package/lib/components/card/card.component.d.ts +32 -19
  34. package/lib/components/data-table/data-table.component.d.ts +172 -14
  35. package/lib/components/dialog/dialog.component.d.ts +35 -1
  36. package/lib/components/draggable-table/draggable-table.component.d.ts +74 -0
  37. package/lib/components/drawer/drawer.component.d.ts +65 -7
  38. package/lib/components/navigation-menu/navigation-menu.component.d.ts +22 -1
  39. package/lib/components/sheet/sheet.component.d.ts +30 -3
  40. package/lib/components/sidebar/sidebar.component.d.ts +39 -1
  41. package/lib/components/table/table.component.d.ts +46 -25
  42. package/lib/pdm-ui-kit.module.d.ts +42 -41
  43. package/lib/utils/responsive.d.ts +107 -0
  44. package/lib/utils/z-index.d.ts +73 -0
  45. package/package.json +5 -3
  46. package/public-api.d.ts +3 -0
@@ -1,209 +1,173 @@
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;
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
+ */
7
31
  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]';
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
+ */
10
43
  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();
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' : '',
59
+ ...baseClasses,
60
+ ...strategyClasses,
61
+ ...variantClasses,
31
62
  this.className
32
- ];
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 ['[&_td]:whitespace-normal', '[&_th]:whitespace-normal', 'sm:[&_td]:whitespace-nowrap', 'sm:[&_th]:whitespace-nowrap'];
150
+ }
151
+ if (this.responsiveStrategy === 'wrap') {
152
+ // En wrap, siempre permitir wrap
153
+ return ['[&_td]:whitespace-normal', '[&_td]:break-words', '[&_th]:whitespace-normal'];
154
+ }
155
+ // Default: nowrap (comportamiento anterior para backward compatibility)
156
+ return [];
188
157
  }
189
158
  }
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 });
159
+ PdmTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
160
+ 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", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
192
161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTableComponent, decorators: [{
193
162
  type: Component,
194
163
  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: [{
164
+ }], propDecorators: { variant: [{
196
165
  type: Input
197
- }], reorderRows: [{
198
- type: Input
199
- }], dragHandleSelector: [{
166
+ }], responsiveStrategy: [{
200
167
  type: Input
201
168
  }], className: [{
202
169
  type: Input
203
- }], rowOrderChange: [{
204
- type: Output
205
- }], tableElement: [{
206
- type: ViewChild,
207
- args: ['tableElement']
170
+ }], fullBleed: [{
171
+ type: Input
208
172
  }] } });
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7OztBQVN2QixNQUFNLE9BQU8saUJBQWlCO0lBYTVCLFlBQTZCLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFadkMsWUFBTyxHQUFvQixTQUFTLENBQUM7UUFDckMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsdUJBQWtCLEdBQUcseUZBQXlGLENBQUM7UUFDL0csY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNkLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUloRCxxQkFBZ0IsR0FBc0IsRUFBRSxDQUFDO1FBRXpDLGVBQVUsR0FBK0IsSUFBSSxDQUFDO0lBRUgsQ0FBQztJQUVwRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDaEQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTztZQUNMLCtCQUErQjtZQUMvQixJQUFJLENBQUMsT0FBTyxLQUFLLGFB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O0lBQ3BDLENBQUM7OzhHQXpPVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixpV0N0QjlCLHVSQUtBOzJGRGlCYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNO2dHQUd0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUVvQixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgUGRtVGFibGVWYXJpYW50ID0gJ2RlZmF1bHQnIHwgJ2RhdGEnIHwgJ2ludGVyYWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGRtVGFibGVDb21wb25lbnQge1xuICBASW5wdXQoKSB2YXJpYW50OiBQZG1UYWJsZVZhcmlhbnQgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIHJlb3JkZXJSb3dzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRyYWdIYW5kbGVTZWxlY3RvciA9ICdbZGF0YS1kcmFnLWhhbmRsZV0sW2RhdGEtc2xvdD1yb3ctZHJhZy1oYW5kbGVdLC5yb3ctZHJhZy1oYW5kbGUsW2RhdGEtYXV0by1kcmFnLWhhbmRsZV0nO1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcbiAgQE91dHB1dCgpIHJvd09yZGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICBAVmlld0NoaWxkKCd0YWJsZUVsZW1lbnQnKSB0YWJsZUVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxUYWJsZUVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgY2xlYW51cExpc3RlbmVyczogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcbiAgcHJpdmF0ZSBvYnNlcnZlcj86IE11dGF0aW9uT2JzZXJ2ZXI7XG4gIHByaXZhdGUgZHJhZ2dlZFJvdzogSFRNTFRhYmxlUm93RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zeW5jUmVvcmRlckJlaGF2aW9yKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Jlb3JkZXJSb3dzJ10gfHwgY2hhbmdlc1sndmFyaWFudCddKSB7XG4gICAgICB0aGlzLnN5bmNSZW9yZGVyQmVoYXZpb3IoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFudXBSZW9yZGVyQmVoYXZpb3IoKTtcbiAgfVxuXG4gIGdldCB3cmFwcGVyQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdyZWxhdGl2ZSB3LWZ1bGwgb3ZlcmZsb3ctYXV0bycsXG4gICAgICB0aGlzLnZhcmlhbnQgPT09ICdpbnRlcmFjdGl2ZScgPyAnb3ZlcmZsb3cteC1hdXRvIG92ZXJmbG93LXktaGlkZGVuIHJvdW5kZWQteGwgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCcgOiAnJyxcbiAgICAgIHRoaXMudmFyaWFudCA9PT0gJ2RhdGEnID8gJ292ZXJmbG93LWhpZGRlbiByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQnIDogJycsXG4gICAgICB0aGlzLmNsYXNzTmFtZVxuICAgIF07XG4gIH1cblxuICBnZXQgdGFibGVDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ3ctZnVsbCBjYXB0aW9uLWJvdHRvbSB0ZXh0LXNtJyxcbiAgICAgIHRoaXMudmFyaWFudCA9PT0gJ2RhdGEnXG4gICAgICAgID8gJ2JvcmRlci1jb2xsYXBzZSB0ZXh0LWZvcmVncm91bmQgWyZfdGhlYWRfdHJdOmJvcmRlci1iIFsmX3RoZWFkX3RyXTpib3JkZXItYm9yZGVyIFsmX3Rib2R5X3RyXTpib3JkZXItYiBbJl90Ym9keV90cl06Ym9yZGVyLWJvcmRlciBbJl90Ym9keV90cjpsYXN0LWNoaWxkXTpib3JkZXItYi0wIFsmX3RoXTpoLTEwIFsmX3RoXTpweC0yIFsmX3RoXTp0ZXh0LWxlZnQgWyZfdGhdOmFsaWduLW1pZGRsZSBbJl90aF06Zm9udC1tZWRpdW0gWyZfdGRdOnAtMiBbJl90ZF06YWxpZ24tbWlkZGxlJ1xuICAgICAgICA6ICcnLFxuICAgICAgdGhpcy52YXJpYW50ID09PSAnaW50ZXJhY3RpdmUnXG4gICAgICAgID8gJ3RleHQtZm9yZWdyb3VuZCBbJl90aGVhZF06c3RpY2t5IFsmX3RoZWFkXTp0b3AtMCBbJl90aGVhZF06ei0xMCBbJl90aGVhZF06YmctbXV0ZWQvNzAgWyZfdGhlYWRfdHJdOmJvcmRlci1iIFsmX3RoZWFkX3RyXTpib3JkZXItYm9yZGVyIFsmX3RoXTpoLTEyIFsmX3RoXTpweC00IFsmX3RoXTp0ZXh0LWxlZnQgWyZfdGhdOmFsaWduLW1pZGRsZSBbJl90aF06dGV4dC1zbSBbJl90aF06Zm9udC1tZWRpdW0gWyZfdGhdOndoaXRlc3BhY2Utbm93cmFwIFsmX3Rib2R5X3RyXTpib3JkZXItYiBbJl90Ym9keV90cl06Ym9yZGVyLWJvcmRlciBbJl90Ym9keV90cl06dHJhbnNpdGlvbi1jb2xvcnMgWyZfdGJvZHlfdHI6aG92ZXJdOmJnLW11dGVkLzUwIFsmX3Rib2R5X3RyOmxhc3QtY2hpbGRdOmJvcmRlci1iLTAgWyZfdGRdOmgtMTQgWyZfdGRdOnB4LTQgWyZfdGRdOmFsaWduLW1pZGRsZSBbJl90ZF06dGV4dC1zbSBbJl90ZF06d2hpdGVzcGFjZS1ub3dyYXAgWyZfdGQ6Zmlyc3QtY2hpbGRdOnctMTAgWyZfdGQ6bGFzdC1jaGlsZF06dy0xMCBbJl9zdmddOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCdcbiAgICAgICAgOiAnJ1xuICAgIF07XG4gIH1cblxuICBwcml2YXRlIHN5bmNSZW9yZGVyQmVoYXZpb3IoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhbnVwUmVvcmRlckJlaGF2aW9yKCk7XG5cbiAgICBpZiAoIXRoaXMuaXNSZW9yZGVyRW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRib2R5ID0gdGhpcy5nZXRUYm9keSgpO1xuICAgIGlmICghdGJvZHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldFJvd3NEcmFnZ2FibGUodGJvZHksIHRydWUpO1xuXG4gICAgdGhpcy5jbGVhbnVwTGlzdGVuZXJzLnB1c2goXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0Ym9keSwgJ21vdXNlZG93bicsIChldmVudDogTW91c2VFdmVudCkgPT4gdGhpcy5hcm1EcmFnRnJvbUhhbmRsZShldmVudCkpLFxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGJvZHksICdkcmFnc3RhcnQnLCAoZXZlbnQ6IERyYWdFdmVudCkgPT4gdGhpcy5vbkRyYWdTdGFydChldmVudCkpLFxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGJvZHksICdkcmFnb3ZlcicsIChldmVudDogRHJhZ0V2ZW50KSA9PiB0aGlzLm9uRHJhZ092ZXIoZXZlbnQsIHRib2R5KSksXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0Ym9keSwgJ2Ryb3AnLCAoZXZlbnQ6IERyYWdFdmVudCkgPT4gdGhpcy5vbkRyb3AoZXZlbnQpKSxcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRib2R5LCAnZHJhZ2VuZCcsICgpID0+IHRoaXMub25EcmFnRW5kKCkpXG4gICAgKTtcblxuICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB0aGlzLnNldFJvd3NEcmFnZ2FibGUodGJvZHksIHRydWUpKTtcbiAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGJvZHksIHsgY2hpbGRMaXN0OiB0cnVlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwUmVvcmRlckJlaGF2aW9yKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYW51cExpc3RlbmVycy5mb3JFYWNoKChkaXNwb3NlKSA9PiBkaXNwb3NlKCkpO1xuICAgIHRoaXMuY2xlYW51cExpc3RlbmVycyA9IFtdO1xuXG4gICAgaWYgKHRoaXMub2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgdGhpcy5vYnNlcnZlciA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCB0Ym9keSA9IHRoaXMuZ2V0VGJvZHkoKTtcbiAgICBpZiAodGJvZHkpIHtcbiAgICAgIHRoaXMuc2V0Um93c0RyYWdnYWJsZSh0Ym9keSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHRoaXMuZHJhZ2dlZFJvdyA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldCBpc1Jlb3JkZXJFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlb3JkZXJSb3dzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYm9keSgpOiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnRhYmxlRWxlbWVudD8ubmF0aXZlRWxlbWVudC50Qm9kaWVzLml0ZW0oMCkgPz8gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Um93c0RyYWdnYWJsZSh0Ym9keTogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQsIGVuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCByb3dzID0gQXJyYXkuZnJvbSh0Ym9keS5yb3dzKTtcbiAgICByb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgdGhpcy5zeW5jQXV0b0RyYWdIYW5kbGUocm93LCBlbmFibGVkKTtcbiAgICAgIHJvdy5kcmFnZ2FibGUgPSBmYWxzZTtcbiAgICAgIGlmICghZW5hYmxlZCkge1xuICAgICAgICBkZWxldGUgcm93LmRhdGFzZXRbJ2RyYWdnaW5nJ107XG4gICAgICAgIGRlbGV0ZSByb3cuZGF0YXNldFsnZHJhZ0FybWVkJ107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN5bmNBdXRvRHJhZ0hhbmRsZShyb3c6IEhUTUxUYWJsZVJvd0VsZW1lbnQsIGVuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdENlbGwgPSByb3cuY2VsbHMuaXRlbSgwKTtcbiAgICBpZiAoIWZpcnN0Q2VsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nQXV0b0hhbmRsZSA9IGZpcnN0Q2VsbC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1hdXRvLWRyYWctaGFuZGxlXScpO1xuICAgIGlmICghZW5hYmxlZCkge1xuICAgICAgZXhpc3RpbmdBdXRvSGFuZGxlPy5yZW1vdmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNDdXN0b21IYW5kbGUgPSAhIWZpcnN0Q2VsbC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1kcmFnLWhhbmRsZV0sW2RhdGEtc2xvdD1yb3ctZHJhZy1oYW5kbGVdLC5yb3ctZHJhZy1oYW5kbGUnKTtcbiAgICBpZiAoaGFzQ3VzdG9tSGFuZGxlIHx8IGV4aXN0aW5nQXV0b0hhbmRsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1dHRvbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnYnV0dG9uJykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoYnV0dG9uLCAndHlwZScsICdidXR0b24nKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShidXR0b24sICdhcmlhLWxhYmVsJywgJ0RyYWcgcm93Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoYnV0dG9uLCAnZGF0YS1hdXRvLWRyYWctaGFuZGxlJywgJ3RydWUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ1dHRvbiwgJ2lubGluZS1mbGV4Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhidXR0b24sICdoLTcnKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ1dHRvbiwgJ3ctNycpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCAnaXRlbXMtY2VudGVyJyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhidXR0b24sICdqdXN0aWZ5LWNlbnRlcicpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCAnY3Vyc29yLWdyYWInKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ1dHRvbiwgJ2FjdGl2ZTpjdXJzb3ItZ3JhYmJpbmcnKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ1dHRvbiwgJ3RleHQtbXV0ZWQtZm9yZWdyb3VuZCcpO1xuXG4gICAgY29uc3QgZG90cyA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG90cywgJ3RleHQtc20nKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvdHMsICdsZWFkaW5nLW5vbmUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KGRvdHMsICd0ZXh0Q29udGVudCcsICfii67ii64nKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGJ1dHRvbiwgZG90cyk7XG5cbiAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShmaXJzdENlbGwsIGJ1dHRvbiwgZmlyc3RDZWxsLmZpcnN0Q2hpbGQpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkRyYWdTdGFydChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICBjb25zdCByb3cgPSB0YXJnZXQ/LmNsb3Nlc3QoJ3RyJyk7XG4gICAgaWYgKCFyb3cpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGUgPSB0YXJnZXQ/LmNsb3Nlc3QodGhpcy5kcmFnSGFuZGxlU2VsZWN0b3IpO1xuICAgIGNvbnN0IGlzQXJtZWQgPSByb3cuZGF0YXNldFsnZHJhZ0FybWVkJ10gPT09ICd0cnVlJztcbiAgICBpZiAoKCFoYW5kbGUgfHwgIXJvdy5jb250YWlucyhoYW5kbGUpKSAmJiAhaXNBcm1lZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRyYWdnZWRSb3cgPSByb3cgYXMgSFRNTFRhYmxlUm93RWxlbWVudDtcbiAgICB0aGlzLmRyYWdnZWRSb3cuZGF0YXNldFsnZHJhZ2dpbmcnXSA9ICd0cnVlJztcblxuICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIpIHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gJ21vdmUnO1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCAnJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQsIHRib2R5OiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcmFnZ2VkUm93KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGNvbnN0IHRhcmdldFJvdyA9IHRhcmdldD8uY2xvc2VzdCgndHInKSBhcyBIVE1MVGFibGVSb3dFbGVtZW50IHwgbnVsbDtcblxuICAgIGlmICghdGFyZ2V0Um93IHx8IHRhcmdldFJvdyA9PT0gdGhpcy5kcmFnZ2VkUm93KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVjdCA9IHRhcmdldFJvdy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBzaG91bGRJbnNlcnRCZWZvcmUgPSBldmVudC5jbGllbnRZIDwgcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDI7XG4gICAgdGJvZHkuaW5zZXJ0QmVmb3JlKHRoaXMuZHJhZ2dlZFJvdywgc2hvdWxkSW5zZXJ0QmVmb3JlID8gdGFyZ2V0Um93IDogdGFyZ2V0Um93Lm5leHRTaWJsaW5nKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkRyYWdFbmQoKTogdm9pZCB7XG4gICAgY29uc3QgdGJvZHkgPSB0aGlzLmdldFRib2R5KCk7XG4gICAgaWYgKHRib2R5KSB7XG4gICAgICBBcnJheS5mcm9tKHRib2R5LnJvd3MpLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICByb3cuZHJhZ2dhYmxlID0gZmFsc2U7XG4gICAgICAgIGRlbGV0ZSByb3cuZGF0YXNldFsnZHJhZ0FybWVkJ107XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kcmFnZ2VkUm93KSB7XG4gICAgICBkZWxldGUgdGhpcy5kcmFnZ2VkUm93LmRhdGFzZXRbJ2RyYWdnaW5nJ107XG4gICAgICB0aGlzLmRyYWdnZWRSb3cgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICghdGJvZHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvcmRlciA9IEFycmF5LmZyb20odGJvZHkucm93cykubWFwKChyb3csIGluZGV4KSA9PiByb3cuZ2V0QXR0cmlidXRlKCdkYXRhLXJvdy1pZCcpIHx8IFN0cmluZyhpbmRleCkpO1xuICAgIHRoaXMucm93T3JkZXJDaGFuZ2UuZW1pdChvcmRlcik7XG4gIH1cblxuICBwcml2YXRlIGFybURyYWdGcm9tSGFuZGxlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICBjb25zdCBoYW5kbGUgPSB0YXJnZXQ/LmNsb3Nlc3QodGhpcy5kcmFnSGFuZGxlU2VsZWN0b3IpO1xuICAgIGlmICghaGFuZGxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgcm93ID0gaGFuZGxlLmNsb3Nlc3QoJ3RyJykgYXMgSFRNTFRhYmxlUm93RWxlbWVudCB8IG51bGw7XG4gICAgaWYgKCFyb3cpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByb3cuZHJhZ2dhYmxlID0gdHJ1ZTtcbiAgICByb3cuZGF0YXNldFsnZHJhZ0FybWVkJ10gPSAndHJ1ZSc7XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwid3JhcHBlckNsYXNzZXNcIiBbYXR0ci5kYXRhLXNsb3RdPVwidmFyaWFudCA9PT0gJ2ludGVyYWN0aXZlJyA/ICd0YWJsZS1jb250YWluZXInIDogbnVsbFwiPlxuICA8dGFibGUgI3RhYmxlRWxlbWVudCBbbmdDbGFzc109XCJ0YWJsZUNsYXNzZXNcIiBbYXR0ci5kYXRhLXNsb3RdPVwidmFyaWFudCA9PT0gJ2ludGVyYWN0aXZlJyA/ICd0YWJsZScgOiBudWxsXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQTJCLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUluRjs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFNSCxNQUFNLE9BQU8saUJBQWlCO0lBTDlCO1FBTUU7Ozs7O1dBS0c7UUFDTSxZQUFPLEdBQW9CLFNBQVMsQ0FBQztRQUU5Qzs7Ozs7O1dBTUc7UUFDTSx1QkFBa0IsR0FBNEIsUUFBUSxDQUFDO1FBRWhFOztXQUVHO1FBQ00sY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUV4Qjs7O1dBR0c7UUFDTSxjQUFTLEdBQUcsS0FBSyxDQUFDO0tBaUk1QjtJQS9IQyxJQUFJLGNBQWM7UUFDaEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0MsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDNUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFdkQsNENBQTRDO1FBQzVDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEtBQUssUUFBUSxFQUFFO1lBQzFELFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDekQ7UUFFRCxPQUFPO1lBQ0wsR0FBRyxXQUFXO1lBQ2Qs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QUN4Qyx3REFBd0Q7WUFDeEQsT0FBTyxDQUFDLDBCQUEwQixFQUFFLDBCQUEwQixFQUFFLDZCQUE2QixFQUFFLDZCQUE2QixDQUFDLENBQUM7U0FDL0g7UUFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxNQUFNLEVBQUU7WUFDdEMsaUNBQWlDO1lBQ2pDLE9BQU8sQ0FBQywwQkFBMEIsRUFBRSxvQkFBb0IsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1NBQ3ZGO1FBRUQsd0VBQXdFO1FBQ3hFLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7OEdBM0pVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDJLQzVCOUIsdVJBS0E7MkZEdUJhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxXQUFXLG1CQUVKLHVCQUF1QixDQUFDLE1BQU07OEJBU3RDLE9BQU87c0JBQWYsS0FBSztnQkFTRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFNRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlUmVzcG9uc2l2ZVN0cmF0ZWd5LCBUQUJMRV9SRVNQT05TSVZFIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVzcG9uc2l2ZSc7XG5cbmV4cG9ydCB0eXBlIFBkbVRhYmxlVmFyaWFudCA9ICdkZWZhdWx0JyB8ICdkYXRhJyB8ICdpbnRlcmFjdGl2ZSc7XG5cbi8qKlxuICogQ29tcG9uZW50ZSBiYXNlIGRlIHRhYmxhIGNvbiBzb3BvcnRlIHJlc3BvbnNpdmVcbiAqIFxuICogU0lNUExJRklDQURPOiBZYSBubyBpbmNsdXllIGRyYWcgJiBkcm9wICh1c2FyIHBkbS1kcmFnZ2FibGUtdGFibGUgcGFyYSBlc28pXG4gKiBcbiAqIEBleGFtcGxlXG4gKiAvLyBUYWJsYSBzaW1wbGUgY29uIHNjcm9sbCBob3Jpem9udGFsXG4gKiA8cGRtLXRhYmxlIHZhcmlhbnQ9XCJkZWZhdWx0XCI+XG4gKiAgIDx0aGVhZD48dHI+PHRoPk5hbWU8L3RoPjx0aD5FbWFpbDwvdGg+PC90cj48L3RoZWFkPlxuICogICA8dGJvZHk+PHRyPjx0ZD5Kb2huPC90ZD48dGQ+am9obkBleGFtcGxlLmNvbTwvdGQ+PC90cj48L3Rib2R5PlxuICogPC9wZG0tdGFibGU+XG4gKiBcbiAqIEBleGFtcGxlXG4gKiAvLyBUYWJsYSBpbnRlcmFjdGl2YSBjb24gd3JhcCBlbiBtb2JpbGVcbiAqIDxwZG0tdGFibGUgdmFyaWFudD1cImludGVyYWN0aXZlXCIgcmVzcG9uc2l2ZVN0cmF0ZWd5PVwid3JhcFwiPlxuICogICAuLi5cbiAqIDwvcGRtLXRhYmxlPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZG0tdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1UYWJsZUNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBWYXJpYW50ZSB2aXN1YWwgZGUgbGEgdGFibGFcbiAgICogLSBkZWZhdWx0OiB0YWJsYSBiw6FzaWNhIHNpbiBlc3RpbG9zIGV4dHJhXG4gICAqIC0gZGF0YTogdGFibGEgY29uIGJvcmRlcyB5IGVzcGFjaWFkbyBwYXJhIGRhdGFcbiAgICogLSBpbnRlcmFjdGl2ZTogdGFibGEgY29uIGhvdmVyLCBzdGlja3kgaGVhZGVyIHkgZXN0aWxvcyBpbnRlcmFjdGl2b3NcbiAgICovXG4gIEBJbnB1dCgpIHZhcmlhbnQ6IFBkbVRhYmxlVmFyaWFudCA9ICdkZWZhdWx0JztcbiAgXG4gIC8qKlxuICAgKiBFc3RyYXRlZ2lhIHJlc3BvbnNpdmUgcGFyYSBsYSB0YWJsYVxuICAgKiAtIHNjcm9sbDogc2Nyb2xsIGhvcml6b250YWwgZW4gbW9iaWxlIChkZWZhdWx0LCBtw6FzIHNpbXBsZSlcbiAgICogLSB3cmFwOiBwZXJtaXRlIHF1ZSBlbCBjb250ZW5pZG8gaGFnYSB3cmFwXG4gICAqIC0gc3RhY2s6IGNvbnZpZXJ0ZSBmaWxhcyBlbiBjYXJkcyBlbiBtb2JpbGUgKHJlcXVpZXJlIGRhdGEtbGFiZWwgZW4gY2VsZGFzKVxuICAgKiAtIGNvbGxhcHNlOiBvY3VsdGEgY29sdW1uYXMgbWVub3MgaW1wb3J0YW50ZXMgZW4gbW9iaWxlXG4gICAqL1xuICBASW5wdXQoKSByZXNwb25zaXZlU3RyYXRlZ3k6IFRhYmxlUmVzcG9uc2l2ZVN0cmF0ZWd5ID0gJ3Njcm9sbCc7XG4gIFxuICAvKipcbiAgICogQ2xhc2VzIENTUyBhZGljaW9uYWxlcyBwYXJhIGVsIHdyYXBwZXJcbiAgICovXG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuICBcbiAgLyoqXG4gICAqIFNpIGVzIHRydWUsIGFwbGljYSBwYWRkaW5nIG5lZ2F0aXZvIGVuIG1vYmlsZSBwYXJhIHNjcm9sbCBlZGdlLXRvLWVkZ2VcbiAgICogw5p0aWwgY3VhbmRvIGxhIHRhYmxhIGVzdMOhIGRlbnRybyBkZSB1biBjb250YWluZXIgY29uIHBhZGRpbmdcbiAgICovXG4gIEBJbnB1dCgpIGZ1bGxCbGVlZCA9IGZhbHNlO1xuXG4gIGdldCB3cmFwcGVyQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgYmFzZUNsYXNzZXMgPSBbJ3JlbGF0aXZlJywgJ3ctZnVsbCddO1xuICAgIGNvbnN0IHN0cmF0ZWd5Q2xhc3NlcyA9IHRoaXMuZ2V0UmVzcG9uc2l2ZVN0cmF0ZWd5Q2xhc3NlcygpO1xuICAgIGNvbnN0IHZhcmlhbnRDbGFzc2VzID0gdGhpcy5nZXRWYXJpYW50V3JhcHBlckNsYXNzZXMoKTtcbiAgICBcbiAgICAvLyBGdWxsIGJsZWVkOiBzY3JvbGwgZWRnZS10by1lZGdlIGVuIG1vYmlsZVxuICAgIGlmICh0aGlzLmZ1bGxCbGVlZCAmJiB0aGlzLnJlc3BvbnNpdmVTdHJhdGVneSA9PT0gJ3Njcm9sbCcpIHtcbiAgICAgIGJhc2VDbGFzc2VzLnB1c2goJy1teC00JywgJ3B4LTQnLCAnc206bXgtMCcsICdzbTpweC0wJyk7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBbXG4gICAgICAuLi5iYXNlQ2xhc3NlcyxcbiAgICAgIC4uLnN0cmF0ZWd5Q2xhc3NlcyxcbiAgICAgIC4uLnZhcmlhbnRDbGFzc2VzLFxuICAgICAgdGhpcy5jbGFzc05hbWVcbiAgICBdLmZpbHRlcihCb29sZWFuKTtcbiAgfVxuXG4gIGdldCB0YWJsZUNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGJhc2VDbGFzc2VzID0gWyd3LWZ1bGwnLCAnY2FwdGlvbi1ib3R0b20nLCAndGV4dC1zbSddO1xuICAgIGNvbnN0IHZhcmlhbnRDbGFzc2VzID0gdGhpcy5nZXRWYXJpYW50VGFibGVDbGFzc2VzKCk7XG4gICAgY29uc3QgY2VsbENsYXNzZXMgPSB0aGlzLmdldENlbGxDbGFzc2VzKCk7XG4gICAgXG4gICAgcmV0dXJuIFsuLi5iYXNlQ2xhc3NlcywgLi4udmFyaWFudENsYXNzZXMsIC4uLmNlbGxDbGFzc2VzXS5maWx0ZXIoQm9vbGVhbik7XG4gIH1cblxuICBwcml2YXRlIGdldFJlc3BvbnNpdmVTdHJhdGVneUNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHN0cmF0ZWd5ID0gVEFCTEVfUkVTUE9OU0lWRVt0aGlzLnJlc3BvbnNpdmVTdHJhdGVneV07XG4gICAgXG4gICAgaWYgKHRoaXMucmVzcG9uc2l2ZVN0cmF0ZWd5ID09PSAnc2Nyb2xsJykge1xuICAgICAgcmV0dXJuIFsnb3ZlcmZsb3cteC1hdXRvJ107XG4gICAgfVxuICAgIFxuICAgIGlmICh0aGlzLnJlc3BvbnNpdmVTdHJhdGVneSA9PT0gJ3dyYXAnKSB7XG4gICAgICByZXR1cm4gWydvdmVyZmxvdy14LWF1dG8nXTtcbiAgICB9XG4gICAgXG4gICAgaWYgKHRoaXMucmVzcG9uc2l2ZVN0cmF0ZWd5ID09PSAnc3RhY2snKSB7XG4gICAgICAvLyBTdGFjayByZXF1aWVyZSBsw7NnaWNhIGVuIGVsIHRlbXBsYXRlLCBhcXXDrSBzb2xvIGVsIHdyYXBwZXJcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgXG4gICAgaWYgKHRoaXMucmVzcG9uc2l2ZVN0cmF0ZWd5ID09PSAnY29sbGFwc2UnKSB7XG4gICAgICByZXR1cm4gWydvdmVyZmxvdy14LWF1dG8nXTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIFsnb3ZlcmZsb3ctYXV0byddO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYXJpYW50V3JhcHBlckNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdpbnRlcmFjdGl2ZScpIHtcbiAgICAgIHJldHVybiBbJ3JvdW5kZWQteGwnLCAnYm9yZGVyJywgJ2JvcmRlci1ib3JkZXInLCAnYmctYmFja2dyb3VuZCddO1xuICAgIH1cbiAgICBcbiAgICBpZiAodGhpcy52YXJpYW50ID09PSAnZGF0YScpIHtcbiAgICAgIHJldHVybiBbJ3JvdW5kZWQtbWQnLCAnYm9yZGVyJywgJ2JvcmRlci1ib3JkZXInLCAnYmctYmFja2dyb3VuZCddO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIGdldFZhcmlhbnRUYWJsZUNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdkYXRhJykge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgJ2JvcmRlci1jb2xsYXBzZScsXG4gICAgICAgICd0ZXh0LWZvcmVncm91bmQnLFxuICAgICAgICAnWyZfdGhlYWRfdHJdOmJvcmRlci1iJyxcbiAgICAgICAgJ1smX3RoZWFkX3RyXTpib3JkZXItYm9yZGVyJyxcbiAgICAgICAgJ1smX3Rib2R5X3RyXTpib3JkZXItYicsXG4gICAgICAgICdbJl90Ym9keV90cl06Ym9yZGVyLWJvcmRlcicsXG4gICAgICAgICdbJl90Ym9keV90cjpsYXN0LWNoaWxkXTpib3JkZXItYi0wJyxcbiAgICAgICAgJ1smX3RoXTpoLTEwJyxcbiAgICAgICAgJ1smX3RoXTpweC0yJyxcbiAgICAgICAgJ1smX3RoXTp0ZXh0LWxlZnQnLFxuICAgICAgICAnWyZfdGhdOmFsaWduLW1pZGRsZScsXG4gICAgICAgICdbJl90aF06Zm9udC1tZWRpdW0nLFxuICAgICAgICAnWyZfdGRdOnAtMicsXG4gICAgICAgICdbJl90ZF06YWxpZ24tbWlkZGxlJ1xuICAgICAgXTtcbiAgICB9XG4gICAgXG4gICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ2ludGVyYWN0aXZlJykge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgJ3RleHQtZm9yZWdyb3VuZCcsXG4gICAgICAgICdbJl90aGVhZF06c3RpY2t5JyxcbiAgICAgICAgJ1smX3RoZWFkXTp0b3AtMCcsXG4gICAgICAgICdbJl90aGVhZF06ei0xMCcsXG4gICAgICAgICdbJl90aGVhZF06YmctbXV0ZWQvNzAnLFxuICAgICAgICAnWyZfdGhlYWRfdHJdOmJvcmRlci1iJyxcbiAgICAgICAgJ1smX3RoZWFkX3RyXTpib3JkZXItYm9yZGVyJyxcbiAgICAgICAgJ1smX3RoXTpoLTEyJyxcbiAgICAgICAgJ1smX3RoXTpweC00JyxcbiAgICAgICAgJ1smX3RoXTp0ZXh0LWxlZnQnLFxuICAgICAgICAnWyZfdGhdOmFsaWduLW1pZGRsZScsXG4gICAgICAgICdbJl90aF06dGV4dC1zbScsXG4gICAgICAgICdbJl90aF06Zm9udC1tZWRpdW0nLFxuICAgICAgICAnWyZfdGJvZHlfdHJdOmJvcmRlci1iJyxcbiAgICAgICAgJ1smX3Rib2R5X3RyXTpib3JkZXItYm9yZGVyJyxcbiAgICAgICAgJ1smX3Rib2R5X3RyXTp0cmFuc2l0aW9uLWNvbG9ycycsXG4gICAgICAgICdbJl90Ym9keV90cjpob3Zlcl06YmctbXV0ZWQvNTAnLFxuICAgICAgICAnWyZfdGJvZHlfdHI6bGFzdC1jaGlsZF06Ym9yZGVyLWItMCcsXG4gICAgICAgICdbJl90ZF06aC0xNCcsXG4gICAgICAgICdbJl90ZF06cHgtNCcsXG4gICAgICAgICdbJl90ZF06YWxpZ24tbWlkZGxlJyxcbiAgICAgICAgJ1smX3RkXTp0ZXh0LXNtJyxcbiAgICAgICAgJ1smX3N2Z106dGV4dC1tdXRlZC1mb3JlZ3JvdW5kJ1xuICAgICAgXTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDZWxsQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgLy8gTWFuZWpvIHJlc3BvbnNpdmUgZGUgd2hpdGVzcGFjZVxuICAgIGlmICh0aGlzLnJlc3BvbnNpdmVTdHJhdGVneSA9PT0gJ3Njcm9sbCcpIHtcbiAgICAgIC8vIEVuIHNjcm9sbCwgcGVybWl0aXIgd3JhcCBlbiBtb2JpbGUsIG5vd3JhcCBlbiBkZXNrdG9wXG4gICAgICByZXR1cm4gWydbJl90ZF06d2hpdGVzcGFjZS1ub3JtYWwnLCAnWyZfdGhdOndoaXRlc3BhY2Utbm9ybWFsJywgJ3NtOlsmX3RkXTp3aGl0ZXNwYWNlLW5vd3JhcCcsICdzbTpbJl90aF06d2hpdGVzcGFjZS1ub3dyYXAnXTtcbiAgICB9XG4gICAgXG4gICAgaWYgKHRoaXMucmVzcG9uc2l2ZVN0cmF0ZWd5ID09PSAnd3JhcCcpIHtcbiAgICAgIC8vIEVuIHdyYXAsIHNpZW1wcmUgcGVybWl0aXIgd3JhcFxuICAgICAgcmV0dXJuIFsnWyZfdGRdOndoaXRlc3BhY2Utbm9ybWFsJywgJ1smX3RkXTpicmVhay13b3JkcycsICdbJl90aF06d2hpdGVzcGFjZS1ub3JtYWwnXTtcbiAgICB9XG4gICAgXG4gICAgLy8gRGVmYXVsdDogbm93cmFwIChjb21wb3J0YW1pZW50byBhbnRlcmlvciBwYXJhIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpXG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cIndyYXBwZXJDbGFzc2VzXCIgW2F0dHIuZGF0YS1zbG90XT1cInZhcmlhbnQgPT09ICdpbnRlcmFjdGl2ZScgPyAndGFibGUtY29udGFpbmVyJyA6IG51bGxcIj5cbiAgPHRhYmxlICN0YWJsZUVsZW1lbnQgW25nQ2xhc3NdPVwidGFibGVDbGFzc2VzXCIgW2F0dHIuZGF0YS1zbG90XT1cInZhcmlhbnQgPT09ICdpbnRlcmFjdGl2ZScgPyAndGFibGUnIDogbnVsbFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC90YWJsZT5cbjwvZGl2PlxuIl19
@@ -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", 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" }]
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFicy90YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJzL3RhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQWFuSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQTZCLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBRTFDLFVBQUssR0FBaUIsRUFBRSxDQUFDO1FBQ3pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBTkcsQ0FBQztJQVF2RCxNQUFNLENBQUMsSUFBZ0I7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7NkdBZlUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsNkpDYjdCLHdtQ0F3QkE7MkZEWGEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLFVBQVUsbUJBRUgsdUJBQXVCLENBQUMsTUFBTTt3R0FLdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGRtVGFiSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLXRhYnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFicy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbVRhYnNDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgQElucHV0KCkgaXRlbXM6IFBkbVRhYkl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBzZWxlY3QoaXRlbTogUGRtVGFiSXRlbSk6IHZvaWQge1xuICAgIGlmICghaXRlbS5kaXNhYmxlZCkge1xuICAgICAgdGhpcy52YWx1ZSA9IGl0ZW0udmFsdWU7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaXRlbS52YWx1ZSk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiWyd3LWZ1bGwnLCBjbGFzc05hbWVdXCI+XG4gIDxkaXZcbiAgICByb2xlPVwidGFibGlzdFwiXG4gICAgY2xhc3M9XCJpbmxpbmUtZmxleCBoLTggdy1mdWxsIGl0ZW1zLWNlbnRlciBvdmVyZmxvdy14LWF1dG8gc2Nyb2xsYmFyLXRoaW4gcm91bmRlZC1sZyBiZy1tdXRlZCBwLVszcHhdIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBtZDp3LWZpdFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgICByb2xlPVwidGFiXCJcbiAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwidmFsdWUgPT09IGl0ZW0udmFsdWVcIlxuICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAncmVsYXRpdmUgaW5saW5lLWZsZXggaC1bY2FsYygxMDAlLTFweCldIGFwcGVhcmFuY2Utbm9uZSBmbGV4LTEgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0xLjUgd2hpdGVzcGFjZS1ub3dyYXAgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXRyYW5zcGFyZW50IHB4LTMgcHktMC41IHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1hbGwgZm9jdXMtdmlzaWJsZTpib3JkZXItcmluZyBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOm91dGxpbmUtcmluZyBmb2N1cy12aXNpYmxlOnJpbmctWzNweF0gZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcvNTAgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwIG1kOmZsZXgtaW5pdGlhbCBtZDpweC00JyxcbiAgICAgICAgdmFsdWUgPT09IGl0ZW0udmFsdWUgPyAnYmctYmFja2dyb3VuZCB0ZXh0LWZvcmVncm91bmQgc2hhZG93LXNtJyA6ICdiZy10cmFuc3BhcmVudCB0ZXh0LW11dGVkLWZvcmVncm91bmQnXG4gICAgICBdXCJcbiAgICAgIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm10LTRcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -19,10 +19,10 @@ export class PdmTooltipComponent {
19
19
  }
20
20
  }
21
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 });
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-[70] 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 });
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmTooltipComponent, decorators: [{
24
24
  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" }]
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-[70] 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
26
  }], propDecorators: { text: [{
27
27
  type: Input
28
28
  }], side: [{
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
30
30
  }], className: [{
31
31
  type: Input
32
32
  }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU8xRSxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTVcsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLFNBQUksR0FBd0MsS0FBSyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDeEIsU0FBSSxHQUFHLEtBQUssQ0FBQztLQVFkO0lBTkMsSUFBSSxhQUFhO1FBQ2YsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFBRSxPQUFPLHlDQUF5QyxDQUFDO1FBQzdFLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQUUsT0FBTywwQ0FBMEMsQ0FBQztRQUM1RSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTztZQUFFLE9BQU8seUNBQXlDLENBQUM7UUFDNUUsT0FBTyw0Q0FBNEMsQ0FBQztJQUN0RCxDQUFDOztnSEFYVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixtSENQaEMsNGJBTUE7MkZEQ2EsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGFBQWEsbUJBRU4sdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLXRvb2x0aXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbVRvb2x0aXBDb21wb25lbnQge1xuICBASW5wdXQoKSB0ZXh0ID0gJyc7XG4gIEBJbnB1dCgpIHNpZGU6ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnID0gJ3RvcCc7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuICBvcGVuID0gZmFsc2U7XG5cbiAgZ2V0IHBvc2l0aW9uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zaWRlID09PSAnYm90dG9tJykgcmV0dXJuICd0b3AtZnVsbCBsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtMS8yIG10LTInO1xuICAgIGlmICh0aGlzLnNpZGUgPT09ICdsZWZ0JykgcmV0dXJuICdyaWdodC1mdWxsIHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiBtci0yJztcbiAgICBpZiAodGhpcy5zaWRlID09PSAncmlnaHQnKSByZXR1cm4gJ2xlZnQtZnVsbCB0b3AtMS8yIC10cmFuc2xhdGUteS0xLzIgbWwtMic7XG4gICAgcmV0dXJuICdib3R0b20tZnVsbCBsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtMS8yIG1iLTInO1xuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cInJlbGF0aXZlIGlubGluZS1mbGV4XCIgW25nQ2xhc3NdPVwiY2xhc3NOYW1lXCIgKG1vdXNlZW50ZXIpPVwib3BlbiA9IHRydWVcIiAobW91c2VsZWF2ZSk9XCJvcGVuID0gZmFsc2VcIiAoZm9jdXNpbik9XCJvcGVuID0gdHJ1ZVwiIChmb2N1c291dCk9XCJvcGVuID0gZmFsc2VcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8c3BhbiAqbmdJZj1cIm9wZW5cIiBbbmdDbGFzc109XCJbJ3BvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgei01MCBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC1tZCBiZy1mb3JlZ3JvdW5kIHB4LTMgcHktMS41IHRleHQteHMgdGV4dC1iYWNrZ3JvdW5kIGFuaW1hdGUtaW4gZmFkZS1pbi0wIHpvb20taW4tOTUnLCBwb3NpdGlvbkNsYXNzXVwiPlxuICAgIHt7IHRleHQgfX1cbiAgPC9zcGFuPlxuPC9zcGFuPlxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU8xRSxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTVcsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLFNBQUksR0FBd0MsS0FBSyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDeEIsU0FBSSxHQUFHLEtBQUssQ0FBQztLQVFkO0lBTkMsSUFBSSxhQUFhO1FBQ2YsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFBRSxPQUFPLHlDQUF5QyxDQUFDO1FBQzdFLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQUUsT0FBTywwQ0FBMEMsQ0FBQztRQUM1RSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTztZQUFFLE9BQU8seUNBQXlDLENBQUM7UUFDNUUsT0FBTyw0Q0FBNEMsQ0FBQztJQUN0RCxDQUFDOztnSEFYVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixtSENQaEMsOGJBTUE7MkZEQ2EsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGFBQWEsbUJBRU4sdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLXRvb2x0aXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbVRvb2x0aXBDb21wb25lbnQge1xuICBASW5wdXQoKSB0ZXh0ID0gJyc7XG4gIEBJbnB1dCgpIHNpZGU6ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnID0gJ3RvcCc7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuICBvcGVuID0gZmFsc2U7XG5cbiAgZ2V0IHBvc2l0aW9uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zaWRlID09PSAnYm90dG9tJykgcmV0dXJuICd0b3AtZnVsbCBsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtMS8yIG10LTInO1xuICAgIGlmICh0aGlzLnNpZGUgPT09ICdsZWZ0JykgcmV0dXJuICdyaWdodC1mdWxsIHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiBtci0yJztcbiAgICBpZiAodGhpcy5zaWRlID09PSAncmlnaHQnKSByZXR1cm4gJ2xlZnQtZnVsbCB0b3AtMS8yIC10cmFuc2xhdGUteS0xLzIgbWwtMic7XG4gICAgcmV0dXJuICdib3R0b20tZnVsbCBsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtMS8yIG1iLTInO1xuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cInJlbGF0aXZlIGlubGluZS1mbGV4XCIgW25nQ2xhc3NdPVwiY2xhc3NOYW1lXCIgKG1vdXNlZW50ZXIpPVwib3BlbiA9IHRydWVcIiAobW91c2VsZWF2ZSk9XCJvcGVuID0gZmFsc2VcIiAoZm9jdXNpbik9XCJvcGVuID0gdHJ1ZVwiIChmb2N1c291dCk9XCJvcGVuID0gZmFsc2VcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8c3BhbiAqbmdJZj1cIm9wZW5cIiBbbmdDbGFzc109XCJbJ3BvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgei1bNzBdIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLW1kIGJnLWZvcmVncm91bmQgcHgtMyBweS0xLjUgdGV4dC14cyB0ZXh0LWJhY2tncm91bmQgYW5pbWF0ZS1pbiBmYWRlLWluLTAgem9vbS1pbi05NScsIHBvc2l0aW9uQ2xhc3NdXCI+XG4gICAge3sgdGV4dCB9fVxuICA8L3NwYW4+XG48L3NwYW4+XG4iXX0=