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,13 +1,68 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
+ import { Z_INDEX } from '../../utils/z-index';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "@angular/common";
5
+ /**
6
+ * Drawer/Sheet component con soporte responsive
7
+ *
8
+ * MEJORADO en v0.2.0:
9
+ * - Posicionamiento configurable (bottom, left, right, top)
10
+ * - Tamaños predefinidos
11
+ * - Responsive: bottom sheet en mobile, side panel en desktop
12
+ * - Contenido genérico via ng-content
13
+ *
14
+ * @example
15
+ * // Drawer simple desde el bottom
16
+ * <pdm-drawer [open]="isOpen" position="bottom">
17
+ * <h3>Title</h3>
18
+ * <p>Content</p>
19
+ * </pdm-drawer>
20
+ *
21
+ * @example
22
+ * // Side panel desde la right
23
+ * <pdm-drawer [open]="isOpen" position="right" size="md">
24
+ * <p>Content</p>
25
+ * </pdm-drawer>
26
+ */
4
27
  export class PdmDrawerComponent {
5
28
  constructor() {
6
29
  this.open = false;
30
+ /**
31
+ * Posición del drawer
32
+ * - bottom: desde abajo (default, mejor para mobile)
33
+ * - left: side panel desde izquierda
34
+ * - right: side panel desde derecha
35
+ * - top: desde arriba (poco común)
36
+ */
37
+ this.position = 'bottom';
38
+ /**
39
+ * Tamaño del drawer
40
+ * - sm: 400px (side) / 50vh (bottom/top)
41
+ * - md: 500px (side) / 66vh (bottom/top) (default)
42
+ * - lg: 640px (side) / 80vh (bottom/top)
43
+ * - full: 100% ancho/alto
44
+ */
45
+ this.size = 'md';
46
+ /**
47
+ * @deprecated Use position="bottom" instead
48
+ */
7
49
  this.variant = 'drawer';
8
50
  this.className = '';
9
51
  this.title = '';
10
52
  this.description = '';
53
+ /**
54
+ * Mostrar handle visual (línea para arrastrar)
55
+ * Solo tiene sentido en position="bottom"
56
+ */
57
+ this.showHandle = true;
58
+ /**
59
+ * Mostrar botón de cerrar
60
+ */
61
+ this.showCloseButton = true;
62
+ this.closeOnEsc = true;
63
+ this.closeOnBackdropClick = true;
64
+ this.openChange = new EventEmitter();
65
+ // DEPRECATED: contenido específico que se movió a ng-content
11
66
  this.value = '';
12
67
  this.unit = '';
13
68
  this.decrementLabel = '-';
@@ -21,14 +76,9 @@ export class PdmDrawerComponent {
21
76
  this.usernameLabel = 'Username';
22
77
  this.usernameValue = '';
23
78
  this.responsivePrimaryLabel = '';
24
- /** Close when the ESC key is pressed. Default: `true`. */
25
- this.closeOnEsc = true;
26
- /** Close when the backdrop is clicked. Default: `true`. */
27
- this.closeOnBackdropClick = true;
28
- this.openChange = new EventEmitter();
79
+ this.bars = [];
29
80
  this.primaryAction = new EventEmitter();
30
81
  this.secondaryAction = new EventEmitter();
31
- this.bars = [];
32
82
  }
33
83
  onEsc() {
34
84
  if (this.open && this.closeOnEsc) {
@@ -49,14 +99,67 @@ export class PdmDrawerComponent {
49
99
  onSecondaryAction() {
50
100
  this.secondaryAction.emit();
51
101
  }
102
+ get containerClassName() {
103
+ return `fixed inset-0 ${Z_INDEX.drawer} ${this.className}`;
104
+ }
105
+ get panelClassName() {
106
+ const base = [
107
+ 'absolute',
108
+ 'bg-background',
109
+ 'border',
110
+ 'border-border',
111
+ 'shadow-lg',
112
+ 'overflow-auto'
113
+ ];
114
+ // Posicionamiento
115
+ const positionClasses = this.getPositionClasses();
116
+ // Tamaño
117
+ const sizeClasses = this.getSizeClasses();
118
+ return [...base, ...positionClasses, ...sizeClasses].filter(Boolean).join(' ');
119
+ }
120
+ getPositionClasses() {
121
+ const map = {
122
+ bottom: ['inset-x-0', 'bottom-0', 'rounded-t-xl'],
123
+ top: ['inset-x-0', 'top-0', 'rounded-b-xl'],
124
+ left: ['inset-y-0', 'left-0', 'rounded-r-xl'],
125
+ right: ['inset-y-0', 'right-0', 'rounded-l-xl']
126
+ };
127
+ return map[this.position] || map.bottom;
128
+ }
129
+ getSizeClasses() {
130
+ const isVertical = this.position === 'bottom' || this.position === 'top';
131
+ if (this.size === 'full') {
132
+ return ['w-full', 'h-full'];
133
+ }
134
+ const sizeMap = {
135
+ sm: isVertical ? 'max-h-[50vh]' : 'max-w-[400px]',
136
+ md: isVertical ? 'max-h-[66vh]' : 'max-w-[500px]',
137
+ lg: isVertical ? 'max-h-[80vh]' : 'max-w-[640px]'
138
+ };
139
+ const maxDimension = sizeMap[this.size] || sizeMap.md;
140
+ if (isVertical) {
141
+ return ['w-full', maxDimension];
142
+ }
143
+ else {
144
+ return ['h-full', maxDimension];
145
+ }
146
+ }
147
+ get showLegacyContent() {
148
+ // Mostrar contenido legacy si variant está siendo usado
149
+ return this.variant === 'drawer' || this.variant === 'responsive-dialog';
150
+ }
52
151
  }
53
152
  PdmDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
- PdmDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDrawerComponent, selector: "pdm-drawer", inputs: { open: "open", variant: "variant", className: "className", title: "title", description: "description", value: "value", unit: "unit", decrementLabel: "decrementLabel", incrementLabel: "incrementLabel", primaryLabel: "primaryLabel", secondaryLabel: "secondaryLabel", profileTitle: "profileTitle", profileDescription: "profileDescription", nameLabel: "nameLabel", nameValue: "nameValue", usernameLabel: "usernameLabel", usernameValue: "usernameValue", responsivePrimaryLabel: "responsivePrimaryLabel", closeOnEsc: "closeOnEsc", closeOnBackdropClick: "closeOnBackdropClick", bars: "bars" }, outputs: { openChange: "openChange", primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\" [ngClass]=\"className\">\n <div class=\"absolute inset-0 bg-foreground/30\" (click)=\"onBackdropClick()\"></div>\n\n <section\n *ngIf=\"variant === 'drawer'; else responsiveDialog\"\n class=\"absolute inset-x-0 bottom-0 mx-auto w-full max-w-6xl rounded-t-lg border border-border bg-background p-6 shadow-lg\"\n >\n <div class=\"mx-auto mb-4 h-1 w-10 rounded-full bg-border\"></div>\n\n <div class=\"mx-auto flex max-w-sm flex-col items-center\">\n <h3 class=\"m-0 text-sm font-semibold text-foreground\">{{ title }}</h3>\n <p class=\"m-0 mt-1 text-xs text-muted-foreground\">{{ description }}</p>\n\n <div class=\"mt-3 flex w-full items-center justify-center gap-4\">\n <button type=\"button\" class=\"inline-flex h-6 w-6 appearance-none items-center justify-center rounded-full border border-border bg-transparent p-0 text-muted-foreground\">{{ decrementLabel }}</button>\n <div class=\"text-center\">\n <div class=\"text-5xl font-semibold leading-none text-foreground\">{{ value }}</div>\n <div class=\"mt-1 text-xs tracking-wide text-muted-foreground\">{{ unit }}</div>\n </div>\n <button type=\"button\" class=\"inline-flex h-6 w-6 appearance-none items-center justify-center rounded-full border border-border bg-transparent p-0 text-muted-foreground\">{{ incrementLabel }}</button>\n </div>\n\n <div *ngIf=\"bars.length\" class=\"mt-3 flex h-14 w-full items-end gap-1\">\n <div *ngFor=\"let bar of bars\" class=\"flex-1 bg-foreground\" [style.height.px]=\"bar\"></div>\n </div>\n\n <button *ngIf=\"primaryLabel\" type=\"button\" class=\"mt-3 h-9 w-full appearance-none rounded-md bg-primary text-sm font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ primaryLabel }}</button>\n <button *ngIf=\"secondaryLabel\" type=\"button\" class=\"mt-2 h-9 w-full appearance-none rounded-md border border-input bg-background text-sm font-medium text-foreground\" (click)=\"onSecondaryAction()\">{{ secondaryLabel }}</button>\n </div>\n </section>\n\n <ng-template #responsiveDialog>\n <section class=\"absolute left-1/2 top-1/2 w-full max-w-lg -translate-x-1/2 -translate-y-1/2 rounded-lg border border-border bg-background p-6 shadow-lg\">\n <div class=\"flex items-start justify-between\">\n <div>\n <h3 class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">{{ profileTitle }}</h3>\n <p class=\"m-0 mt-1 text-sm text-muted-foreground\">{{ profileDescription }}</p>\n </div>\n <button type=\"button\" class=\"h-5 w-5 appearance-none border-0 bg-transparent p-0 text-muted-foreground\" (click)=\"close()\">\u00D7</button>\n </div>\n\n <div class=\"mt-3 flex flex-col gap-3\">\n <div>\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ nameLabel }}</label>\n <div class=\"h-8 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground\">{{ nameValue }}</div>\n </div>\n <div>\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ usernameLabel }}</label>\n <div class=\"h-8 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground\">{{ usernameValue }}</div>\n </div>\n </div>\n\n <button *ngIf=\"responsivePrimaryLabel\" type=\"button\" class=\"mt-3 h-8 w-full appearance-none rounded-md bg-primary text-xs font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ responsivePrimaryLabel }}</button>\n </section>\n </ng-template>\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"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
153
+ PdmDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDrawerComponent, selector: "pdm-drawer", inputs: { open: "open", position: "position", size: "size", variant: "variant", className: "className", title: "title", description: "description", showHandle: "showHandle", showCloseButton: "showCloseButton", closeOnEsc: "closeOnEsc", closeOnBackdropClick: "closeOnBackdropClick", value: "value", unit: "unit", decrementLabel: "decrementLabel", incrementLabel: "incrementLabel", primaryLabel: "primaryLabel", secondaryLabel: "secondaryLabel", profileTitle: "profileTitle", profileDescription: "profileDescription", nameLabel: "nameLabel", nameValue: "nameValue", usernameLabel: "usernameLabel", usernameValue: "usernameValue", responsivePrimaryLabel: "responsivePrimaryLabel", bars: "bars" }, outputs: { openChange: "openChange", primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<div *ngIf=\"open\" [ngClass]=\"containerClassName\">\n <!-- Backdrop -->\n <div class=\"absolute inset-0 bg-foreground/30 backdrop-blur-sm\" (click)=\"onBackdropClick()\"></div>\n\n <!-- Panel -->\n <section [ngClass]=\"panelClassName\">\n <!-- Handle visual (solo para bottom) -->\n <div \n *ngIf=\"showHandle && position === 'bottom'\" \n class=\"mx-auto mb-4 mt-2 h-1 w-10 rounded-full bg-border\">\n </div>\n\n <!-- Header (opcional) -->\n <div *ngIf=\"title || description || showCloseButton\" class=\"flex items-start justify-between gap-4 p-6 pb-4\">\n <div *ngIf=\"title || description\" class=\"flex-1 min-w-0\">\n <h3 *ngIf=\"title\" class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">\n {{ title }}\n </h3>\n <p *ngIf=\"description\" class=\"m-0 mt-1 text-sm text-muted-foreground\">\n {{ description }}\n </p>\n </div>\n \n <button\n *ngIf=\"showCloseButton\"\n type=\"button\"\n class=\"inline-flex h-6 w-6 flex-shrink-0 appearance-none items-center justify-center rounded-sm border-0 bg-transparent p-0 text-foreground opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\"\n (click)=\"close()\"\n aria-label=\"Close drawer\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <!-- Content -->\n <div class=\"px-6 pb-6\">\n <!-- Contenido gen\u00E9rico -->\n <ng-container *ngIf=\"!showLegacyContent\">\n <ng-content></ng-content>\n </ng-container>\n\n <!-- LEGACY: contenido espec\u00EDfico hardcodeado (backward compatibility) -->\n <ng-container *ngIf=\"showLegacyContent\">\n <!-- Variant: drawer -->\n <div *ngIf=\"variant === 'drawer'\" class=\"mx-auto flex max-w-sm flex-col items-center\">\n <div *ngIf=\"value !== ''\" class=\"mt-3 flex w-full items-center justify-center gap-4\">\n <button type=\"button\" class=\"inline-flex h-6 w-6 appearance-none items-center justify-center rounded-full border border-border bg-transparent p-0 text-muted-foreground\">{{ decrementLabel }}</button>\n <div class=\"text-center\">\n <div class=\"text-5xl font-semibold leading-none text-foreground\">{{ value }}</div>\n <div *ngIf=\"unit\" class=\"mt-1 text-xs tracking-wide text-muted-foreground\">{{ unit }}</div>\n </div>\n <button type=\"button\" class=\"inline-flex h-6 w-6 appearance-none items-center justify-center rounded-full border border-border bg-transparent p-0 text-muted-foreground\">{{ incrementLabel }}</button>\n </div>\n\n <div *ngIf=\"bars.length\" class=\"mt-3 flex h-14 w-full items-end gap-1\">\n <div *ngFor=\"let bar of bars\" class=\"flex-1 bg-foreground\" [style.height.px]=\"bar\"></div>\n </div>\n\n <button *ngIf=\"primaryLabel\" type=\"button\" class=\"mt-3 h-9 w-full appearance-none rounded-md bg-primary text-sm font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ primaryLabel }}</button>\n <button *ngIf=\"secondaryLabel\" type=\"button\" class=\"mt-2 h-9 w-full appearance-none rounded-md border border-input bg-background text-sm font-medium text-foreground\" (click)=\"onSecondaryAction()\">{{ secondaryLabel }}</button>\n </div>\n\n <!-- Variant: responsive-dialog -->\n <div *ngIf=\"variant === 'responsive-dialog'\" class=\"flex flex-col gap-3\">\n <div *ngIf=\"nameLabel && nameValue\">\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ nameLabel }}</label>\n <div class=\"h-8 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground\">{{ nameValue }}</div>\n </div>\n <div *ngIf=\"usernameLabel && usernameValue\">\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ usernameLabel }}</label>\n <div class=\"h-8 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground\">{{ usernameValue }}</div>\n </div>\n\n <button *ngIf=\"responsivePrimaryLabel\" type=\"button\" class=\"mt-3 h-8 w-full appearance-none rounded-md bg-primary text-xs font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ responsivePrimaryLabel }}</button>\n </div>\n </ng-container>\n </div>\n </section>\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"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
154
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDrawerComponent, decorators: [{
56
155
  type: Component,
57
- args: [{ selector: 'pdm-drawer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\" [ngClass]=\"className\">\n <div class=\"absolute inset-0 bg-foreground/30\" (click)=\"onBackdropClick()\"></div>\n\n <section\n *ngIf=\"variant === 'drawer'; else responsiveDialog\"\n class=\"absolute inset-x-0 bottom-0 mx-auto w-full max-w-6xl rounded-t-lg border border-border bg-background p-6 shadow-lg\"\n >\n <div class=\"mx-auto mb-4 h-1 w-10 rounded-full bg-border\"></div>\n\n <div class=\"mx-auto flex max-w-sm flex-col items-center\">\n <h3 class=\"m-0 text-sm font-semibold text-foreground\">{{ title }}</h3>\n <p class=\"m-0 mt-1 text-xs text-muted-foreground\">{{ description }}</p>\n\n <div class=\"mt-3 flex w-full items-center justify-center gap-4\">\n <button type=\"button\" class=\"inline-flex h-6 w-6 appearance-none items-center justify-center rounded-full border border-border bg-transparent p-0 text-muted-foreground\">{{ decrementLabel }}</button>\n <div class=\"text-center\">\n <div class=\"text-5xl font-semibold leading-none text-foreground\">{{ value }}</div>\n <div class=\"mt-1 text-xs tracking-wide text-muted-foreground\">{{ unit }}</div>\n </div>\n <button type=\"button\" class=\"inline-flex h-6 w-6 appearance-none items-center justify-center rounded-full border border-border bg-transparent p-0 text-muted-foreground\">{{ incrementLabel }}</button>\n </div>\n\n <div *ngIf=\"bars.length\" class=\"mt-3 flex h-14 w-full items-end gap-1\">\n <div *ngFor=\"let bar of bars\" class=\"flex-1 bg-foreground\" [style.height.px]=\"bar\"></div>\n </div>\n\n <button *ngIf=\"primaryLabel\" type=\"button\" class=\"mt-3 h-9 w-full appearance-none rounded-md bg-primary text-sm font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ primaryLabel }}</button>\n <button *ngIf=\"secondaryLabel\" type=\"button\" class=\"mt-2 h-9 w-full appearance-none rounded-md border border-input bg-background text-sm font-medium text-foreground\" (click)=\"onSecondaryAction()\">{{ secondaryLabel }}</button>\n </div>\n </section>\n\n <ng-template #responsiveDialog>\n <section class=\"absolute left-1/2 top-1/2 w-full max-w-lg -translate-x-1/2 -translate-y-1/2 rounded-lg border border-border bg-background p-6 shadow-lg\">\n <div class=\"flex items-start justify-between\">\n <div>\n <h3 class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">{{ profileTitle }}</h3>\n <p class=\"m-0 mt-1 text-sm text-muted-foreground\">{{ profileDescription }}</p>\n </div>\n <button type=\"button\" class=\"h-5 w-5 appearance-none border-0 bg-transparent p-0 text-muted-foreground\" (click)=\"close()\">\u00D7</button>\n </div>\n\n <div class=\"mt-3 flex flex-col gap-3\">\n <div>\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ nameLabel }}</label>\n <div class=\"h-8 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground\">{{ nameValue }}</div>\n </div>\n <div>\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ usernameLabel }}</label>\n <div class=\"h-8 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground\">{{ usernameValue }}</div>\n </div>\n </div>\n\n <button *ngIf=\"responsivePrimaryLabel\" type=\"button\" class=\"mt-3 h-8 w-full appearance-none rounded-md bg-primary text-xs font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ responsivePrimaryLabel }}</button>\n </section>\n </ng-template>\n</div>\n" }]
156
+ args: [{ selector: 'pdm-drawer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" [ngClass]=\"containerClassName\">\n <!-- Backdrop -->\n <div class=\"absolute inset-0 bg-foreground/30 backdrop-blur-sm\" (click)=\"onBackdropClick()\"></div>\n\n <!-- Panel -->\n <section [ngClass]=\"panelClassName\">\n <!-- Handle visual (solo para bottom) -->\n <div \n *ngIf=\"showHandle && position === 'bottom'\" \n class=\"mx-auto mb-4 mt-2 h-1 w-10 rounded-full bg-border\">\n </div>\n\n <!-- Header (opcional) -->\n <div *ngIf=\"title || description || showCloseButton\" class=\"flex items-start justify-between gap-4 p-6 pb-4\">\n <div *ngIf=\"title || description\" class=\"flex-1 min-w-0\">\n <h3 *ngIf=\"title\" class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">\n {{ title }}\n </h3>\n <p *ngIf=\"description\" class=\"m-0 mt-1 text-sm text-muted-foreground\">\n {{ description }}\n </p>\n </div>\n \n <button\n *ngIf=\"showCloseButton\"\n type=\"button\"\n class=\"inline-flex h-6 w-6 flex-shrink-0 appearance-none items-center justify-center rounded-sm border-0 bg-transparent p-0 text-foreground opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\"\n (click)=\"close()\"\n aria-label=\"Close drawer\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <!-- Content -->\n <div class=\"px-6 pb-6\">\n <!-- Contenido gen\u00E9rico -->\n <ng-container *ngIf=\"!showLegacyContent\">\n <ng-content></ng-content>\n </ng-container>\n\n <!-- LEGACY: contenido espec\u00EDfico hardcodeado (backward compatibility) -->\n <ng-container *ngIf=\"showLegacyContent\">\n <!-- Variant: drawer -->\n <div *ngIf=\"variant === 'drawer'\" class=\"mx-auto flex max-w-sm flex-col items-center\">\n <div *ngIf=\"value !== ''\" class=\"mt-3 flex w-full items-center justify-center gap-4\">\n <button type=\"button\" class=\"inline-flex h-6 w-6 appearance-none items-center justify-center rounded-full border border-border bg-transparent p-0 text-muted-foreground\">{{ decrementLabel }}</button>\n <div class=\"text-center\">\n <div class=\"text-5xl font-semibold leading-none text-foreground\">{{ value }}</div>\n <div *ngIf=\"unit\" class=\"mt-1 text-xs tracking-wide text-muted-foreground\">{{ unit }}</div>\n </div>\n <button type=\"button\" class=\"inline-flex h-6 w-6 appearance-none items-center justify-center rounded-full border border-border bg-transparent p-0 text-muted-foreground\">{{ incrementLabel }}</button>\n </div>\n\n <div *ngIf=\"bars.length\" class=\"mt-3 flex h-14 w-full items-end gap-1\">\n <div *ngFor=\"let bar of bars\" class=\"flex-1 bg-foreground\" [style.height.px]=\"bar\"></div>\n </div>\n\n <button *ngIf=\"primaryLabel\" type=\"button\" class=\"mt-3 h-9 w-full appearance-none rounded-md bg-primary text-sm font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ primaryLabel }}</button>\n <button *ngIf=\"secondaryLabel\" type=\"button\" class=\"mt-2 h-9 w-full appearance-none rounded-md border border-input bg-background text-sm font-medium text-foreground\" (click)=\"onSecondaryAction()\">{{ secondaryLabel }}</button>\n </div>\n\n <!-- Variant: responsive-dialog -->\n <div *ngIf=\"variant === 'responsive-dialog'\" class=\"flex flex-col gap-3\">\n <div *ngIf=\"nameLabel && nameValue\">\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ nameLabel }}</label>\n <div class=\"h-8 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground\">{{ nameValue }}</div>\n </div>\n <div *ngIf=\"usernameLabel && usernameValue\">\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ usernameLabel }}</label>\n <div class=\"h-8 rounded-md border border-border bg-background px-2 py-1 text-xs text-foreground\">{{ usernameValue }}</div>\n </div>\n\n <button *ngIf=\"responsivePrimaryLabel\" type=\"button\" class=\"mt-3 h-8 w-full appearance-none rounded-md bg-primary text-xs font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ responsivePrimaryLabel }}</button>\n </div>\n </ng-container>\n </div>\n </section>\n</div>\n" }]
58
157
  }], propDecorators: { open: [{
59
158
  type: Input
159
+ }], position: [{
160
+ type: Input
161
+ }], size: [{
162
+ type: Input
60
163
  }], variant: [{
61
164
  type: Input
62
165
  }], className: [{
@@ -65,6 +168,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
65
168
  type: Input
66
169
  }], description: [{
67
170
  type: Input
171
+ }], showHandle: [{
172
+ type: Input
173
+ }], showCloseButton: [{
174
+ type: Input
175
+ }], closeOnEsc: [{
176
+ type: Input
177
+ }], closeOnBackdropClick: [{
178
+ type: Input
179
+ }], openChange: [{
180
+ type: Output
68
181
  }], value: [{
69
182
  type: Input
70
183
  }], unit: [{
@@ -91,20 +204,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
91
204
  type: Input
92
205
  }], responsivePrimaryLabel: [{
93
206
  type: Input
94
- }], closeOnEsc: [{
95
- type: Input
96
- }], closeOnBackdropClick: [{
207
+ }], bars: [{
97
208
  type: Input
98
- }], openChange: [{
99
- type: Output
100
209
  }], primaryAction: [{
101
210
  type: Output
102
211
  }], secondaryAction: [{
103
212
  type: Output
104
- }], bars: [{
105
- type: Input
106
213
  }], onEsc: [{
107
214
  type: HostListener,
108
215
  args: ['document:keydown.escape']
109
216
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTOUcsTUFBTSxPQUFPLGtCQUFrQjtJQUwvQjtRQU1XLFNBQUksR0FBRyxLQUFLLENBQUM7UUFDYixZQUFPLEdBQXFCLFFBQVEsQ0FBQztRQUNyQyxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBQzVCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixtQkFBYyxHQUFHLEdBQUcsQ0FBQztRQUNyQixtQkFBYyxHQUFHLEdBQUcsQ0FBQztRQUNyQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQix1QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDeEIsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQUNuQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2Ysa0JBQWEsR0FBRyxVQUFVLENBQUM7UUFDM0Isa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsMkJBQXNCLEdBQUcsRUFBRSxDQUFDO1FBRXJDLDBEQUEwRDtRQUNqRCxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQzNCLDJEQUEyRDtRQUNsRCx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFFM0IsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDekMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3pDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU1QyxTQUFJLEdBQWEsRUFBRSxDQUFDO0tBMEI5QjtJQXZCQyxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7K0dBdkRVLGtCQUFrQjttR0FBbEIsa0JBQWtCLGd6QkNUL0IsaWxIQXdEQTsyRkQvQ2Esa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLFlBQVksbUJBRUwsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFFRSxJQUFJO3NCQUFaLEtBQUs7Z0JBR04sS0FBSztzQkFESixZQUFZO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIFBkbURyYXdlclZhcmlhbnQgPSAnZHJhd2VyJyB8ICdyZXNwb25zaXZlLWRpYWxvZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkbS1kcmF3ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGRtRHJhd2VyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgb3BlbiA9IGZhbHNlO1xuICBASW5wdXQoKSB2YXJpYW50OiBQZG1EcmF3ZXJWYXJpYW50ID0gJ2RyYXdlcic7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbiA9ICcnO1xuICBASW5wdXQoKSB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHVuaXQgPSAnJztcbiAgQElucHV0KCkgZGVjcmVtZW50TGFiZWwgPSAnLSc7XG4gIEBJbnB1dCgpIGluY3JlbWVudExhYmVsID0gJysnO1xuICBASW5wdXQoKSBwcmltYXJ5TGFiZWwgPSAnJztcbiAgQElucHV0KCkgc2Vjb25kYXJ5TGFiZWwgPSAnJztcblxuICBASW5wdXQoKSBwcm9maWxlVGl0bGUgPSAnJztcbiAgQElucHV0KCkgcHJvZmlsZURlc2NyaXB0aW9uID0gJyc7XG4gIEBJbnB1dCgpIG5hbWVMYWJlbCA9ICdOYW1lJztcbiAgQElucHV0KCkgbmFtZVZhbHVlID0gJyc7XG4gIEBJbnB1dCgpIHVzZXJuYW1lTGFiZWwgPSAnVXNlcm5hbWUnO1xuICBASW5wdXQoKSB1c2VybmFtZVZhbHVlID0gJyc7XG4gIEBJbnB1dCgpIHJlc3BvbnNpdmVQcmltYXJ5TGFiZWwgPSAnJztcblxuICAvKiogQ2xvc2Ugd2hlbiB0aGUgRVNDIGtleSBpcyBwcmVzc2VkLiBEZWZhdWx0OiBgdHJ1ZWAuICovXG4gIEBJbnB1dCgpIGNsb3NlT25Fc2MgPSB0cnVlO1xuICAvKiogQ2xvc2Ugd2hlbiB0aGUgYmFja2Ryb3AgaXMgY2xpY2tlZC4gRGVmYXVsdDogYHRydWVgLiAqL1xuICBASW5wdXQoKSBjbG9zZU9uQmFja2Ryb3BDbGljayA9IHRydWU7XG5cbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBwcmltYXJ5QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc2Vjb25kYXJ5QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBJbnB1dCgpIGJhcnM6IG51bWJlcltdID0gW107XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnKVxuICBvbkVzYygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcGVuICYmIHRoaXMuY2xvc2VPbkVzYykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQmFja2Ryb3BDbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbG9zZU9uQmFja2Ryb3BDbGljaykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIG9uUHJpbWFyeUFjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnByaW1hcnlBY3Rpb24uZW1pdCgpO1xuICB9XG5cbiAgb25TZWNvbmRhcnlBY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWNvbmRhcnlBY3Rpb24uZW1pdCgpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwib3BlblwiIGNsYXNzPVwiZml4ZWQgaW5zZXQtMCB6LTUwXCIgW25nQ2xhc3NdPVwiY2xhc3NOYW1lXCI+XG4gIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWZvcmVncm91bmQvMzBcIiAoY2xpY2spPVwib25CYWNrZHJvcENsaWNrKClcIj48L2Rpdj5cblxuICA8c2VjdGlvblxuICAgICpuZ0lmPVwidmFyaWFudCA9PT0gJ2RyYXdlcic7IGVsc2UgcmVzcG9uc2l2ZURpYWxvZ1wiXG4gICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC14LTAgYm90dG9tLTAgbXgtYXV0byB3LWZ1bGwgbWF4LXctNnhsIHJvdW5kZWQtdC1sZyBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHAtNiBzaGFkb3ctbGdcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cIm14LWF1dG8gbWItNCBoLTEgdy0xMCByb3VuZGVkLWZ1bGwgYmctYm9yZGVyXCI+PC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibXgtYXV0byBmbGV4IG1heC13LXNtIGZsZXgtY29sIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGgzIGNsYXNzPVwibS0wIHRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWZvcmVncm91bmRcIj57eyB0aXRsZSB9fTwvaDM+XG4gICAgICA8cCBjbGFzcz1cIm0tMCBtdC0xIHRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e3sgZGVzY3JpcHRpb24gfX08L3A+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIGZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtNFwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImlubGluZS1mbGV4IGgtNiB3LTYgYXBwZWFyYW5jZS1ub25lIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctdHJhbnNwYXJlbnQgcC0wIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IGRlY3JlbWVudExhYmVsIH19PC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LTV4bCBmb250LXNlbWlib2xkIGxlYWRpbmctbm9uZSB0ZXh0LWZvcmVncm91bmRcIj57eyB2YWx1ZSB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xIHRleHQteHMgdHJhY2tpbmctd2lkZSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyB1bml0IH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImlubGluZS1mbGV4IGgtNiB3LTYgYXBwZWFyYW5jZS1ub25lIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctdHJhbnNwYXJlbnQgcC0wIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IGluY3JlbWVudExhYmVsIH19PC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cImJhcnMubGVuZ3RoXCIgY2xhc3M9XCJtdC0zIGZsZXggaC0xNCB3LWZ1bGwgaXRlbXMtZW5kIGdhcC0xXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGJhciBvZiBiYXJzXCIgY2xhc3M9XCJmbGV4LTEgYmctZm9yZWdyb3VuZFwiIFtzdHlsZS5oZWlnaHQucHhdPVwiYmFyXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGJ1dHRvbiAqbmdJZj1cInByaW1hcnlMYWJlbFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm10LTMgaC05IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgcm91bmRlZC1tZCBiZy1wcmltYXJ5IHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1wcmltYXJ5LWZvcmVncm91bmRcIiAoY2xpY2spPVwib25QcmltYXJ5QWN0aW9uKClcIj57eyBwcmltYXJ5TGFiZWwgfX08L2J1dHRvbj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJzZWNvbmRhcnlMYWJlbFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm10LTIgaC05IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWlucHV0IGJnLWJhY2tncm91bmQgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmRcIiAoY2xpY2spPVwib25TZWNvbmRhcnlBY3Rpb24oKVwiPnt7IHNlY29uZGFyeUxhYmVsIH19PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cblxuICA8bmctdGVtcGxhdGUgI3Jlc3BvbnNpdmVEaWFsb2c+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJhYnNvbHV0ZSBsZWZ0LTEvMiB0b3AtMS8yIHctZnVsbCBtYXgtdy1sZyAtdHJhbnNsYXRlLXgtMS8yIC10cmFuc2xhdGUteS0xLzIgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHAtNiBzaGFkb3ctbGdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxoMyBjbGFzcz1cIm0tMCB0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbGVhZGluZy1ub25lIHRyYWNraW5nLXRpZ2h0IHRleHQtZm9yZWdyb3VuZFwiPnt7IHByb2ZpbGVUaXRsZSB9fTwvaDM+XG4gICAgICAgICAgPHAgY2xhc3M9XCJtLTAgbXQtMSB0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IHByb2ZpbGVEZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaC01IHctNSBhcHBlYXJhbmNlLW5vbmUgYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgcC0wIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiIChjbGljayk9XCJjbG9zZSgpXCI+w5c8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMyBmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwibWItMSBibG9jayB0ZXh0LXhzIGZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZFwiPnt7IG5hbWVMYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImgtOCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQgcHgtMiBweS0xIHRleHQteHMgdGV4dC1mb3JlZ3JvdW5kXCI+e3sgbmFtZVZhbHVlIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm1iLTEgYmxvY2sgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmRcIj57eyB1c2VybmFtZUxhYmVsIH19PC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC04IHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCBweC0yIHB5LTEgdGV4dC14cyB0ZXh0LWZvcmVncm91bmRcIj57eyB1c2VybmFtZVZhbHVlIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJyZXNwb25zaXZlUHJpbWFyeUxhYmVsXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwibXQtMyBoLTggdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSByb3VuZGVkLW1kIGJnLXByaW1hcnkgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZFwiIChjbGljayk9XCJvblByaW1hcnlBY3Rpb24oKVwiPnt7IHJlc3BvbnNpdmVQcmltYXJ5TGFiZWwgfX08L2J1dHRvbj5cbiAgICA8L3NlY3Rpb24+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBVTlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFNSCxNQUFNLE9BQU8sa0JBQWtCO0lBTC9CO1FBTVcsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUV0Qjs7Ozs7O1dBTUc7UUFDTSxhQUFRLEdBQXNCLFFBQVEsQ0FBQztRQUVoRDs7Ozs7O1dBTUc7UUFDTSxTQUFJLEdBQWtCLElBQUksQ0FBQztRQUVwQzs7V0FFRztRQUNNLFlBQU8sR0FBcUIsUUFBUSxDQUFDO1FBRXJDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFMUI7OztXQUdHO1FBQ00sZUFBVSxHQUFHLElBQUksQ0FBQztRQUUzQjs7V0FFRztRQUNNLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIseUJBQW9CLEdBQUcsSUFBSSxDQUFDO1FBRTNCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRW5ELDZEQUE2RDtRQUNwRCxVQUFLLEdBQW9CLEVBQUUsQ0FBQztRQUM1QixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsbUJBQWMsR0FBRyxHQUFH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LGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBR1AsS0FBSztzQkFESixZQUFZO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByZXNwb25zaXZlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVzcG9uc2l2ZSc7XG5pbXBvcnQgeyBaX0lOREVYIH0gZnJvbSAnLi4vLi4vdXRpbHMvei1pbmRleCc7XG5cbmV4cG9ydCB0eXBlIFBkbURyYXdlclBvc2l0aW9uID0gJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCc7XG5leHBvcnQgdHlwZSBQZG1EcmF3ZXJTaXplID0gJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ2Z1bGwnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzcGVjaWZpYyBkcmF3ZXIgdHlwZXMuIFdpbGwgYmUgcmVtb3ZlZCBpbiB2MC4zLjBcbiAqL1xuZXhwb3J0IHR5cGUgUGRtRHJhd2VyVmFyaWFudCA9ICdkcmF3ZXInIHwgJ3Jlc3BvbnNpdmUtZGlhbG9nJztcblxuLyoqXG4gKiBEcmF3ZXIvU2hlZXQgY29tcG9uZW50IGNvbiBzb3BvcnRlIHJlc3BvbnNpdmVcbiAqIFxuICogTUVKT1JBRE8gZW4gdjAuMi4wOlxuICogLSBQb3NpY2lvbmFtaWVudG8gY29uZmlndXJhYmxlIChib3R0b20sIGxlZnQsIHJpZ2h0LCB0b3ApXG4gKiAtIFRhbWHDsW9zIHByZWRlZmluaWRvc1xuICogLSBSZXNwb25zaXZlOiBib3R0b20gc2hlZXQgZW4gbW9iaWxlLCBzaWRlIHBhbmVsIGVuIGRlc2t0b3BcbiAqIC0gQ29udGVuaWRvIGdlbsOpcmljbyB2aWEgbmctY29udGVudFxuICogXG4gKiBAZXhhbXBsZVxuICogLy8gRHJhd2VyIHNpbXBsZSBkZXNkZSBlbCBib3R0b21cbiAqIDxwZG0tZHJhd2VyIFtvcGVuXT1cImlzT3BlblwiIHBvc2l0aW9uPVwiYm90dG9tXCI+XG4gKiAgIDxoMz5UaXRsZTwvaDM+XG4gKiAgIDxwPkNvbnRlbnQ8L3A+XG4gKiA8L3BkbS1kcmF3ZXI+XG4gKiBcbiAqIEBleGFtcGxlXG4gKiAvLyBTaWRlIHBhbmVsIGRlc2RlIGxhIHJpZ2h0XG4gKiA8cGRtLWRyYXdlciBbb3Blbl09XCJpc09wZW5cIiBwb3NpdGlvbj1cInJpZ2h0XCIgc2l6ZT1cIm1kXCI+XG4gKiAgIDxwPkNvbnRlbnQ8L3A+XG4gKiA8L3BkbS1kcmF3ZXI+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkbS1kcmF3ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGRtRHJhd2VyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgb3BlbiA9IGZhbHNlO1xuICBcbiAgLyoqXG4gICAqIFBvc2ljacOzbiBkZWwgZHJhd2VyXG4gICAqIC0gYm90dG9tOiBkZXNkZSBhYmFqbyAoZGVmYXVsdCwgbWVqb3IgcGFyYSBtb2JpbGUpXG4gICAqIC0gbGVmdDogc2lkZSBwYW5lbCBkZXNkZSBpenF1aWVyZGFcbiAgICogLSByaWdodDogc2lkZSBwYW5lbCBkZXNkZSBkZXJlY2hhXG4gICAqIC0gdG9wOiBkZXNkZSBhcnJpYmEgKHBvY28gY29tw7puKVxuICAgKi9cbiAgQElucHV0KCkgcG9zaXRpb246IFBkbURyYXdlclBvc2l0aW9uID0gJ2JvdHRvbSc7XG4gIFxuICAvKipcbiAgICogVGFtYcOxbyBkZWwgZHJhd2VyXG4gICAqIC0gc206IDQwMHB4IChzaWRlKSAvIDUwdmggKGJvdHRvbS90b3ApXG4gICAqIC0gbWQ6IDUwMHB4IChzaWRlKSAvIDY2dmggKGJvdHRvbS90b3ApIChkZWZhdWx0KVxuICAgKiAtIGxnOiA2NDBweCAoc2lkZSkgLyA4MHZoIChib3R0b20vdG9wKVxuICAgKiAtIGZ1bGw6IDEwMCUgYW5jaG8vYWx0b1xuICAgKi9cbiAgQElucHV0KCkgc2l6ZTogUGRtRHJhd2VyU2l6ZSA9ICdtZCc7XG4gIFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHBvc2l0aW9uPVwiYm90dG9tXCIgaW5zdGVhZFxuICAgKi9cbiAgQElucHV0KCkgdmFyaWFudDogUGRtRHJhd2VyVmFyaWFudCA9ICdkcmF3ZXInO1xuICBcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJyc7XG4gIFxuICAvKipcbiAgICogTW9zdHJhciBoYW5kbGUgdmlzdWFsIChsw61uZWEgcGFyYSBhcnJhc3RyYXIpXG4gICAqIFNvbG8gdGllbmUgc2VudGlkbyBlbiBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAqL1xuICBASW5wdXQoKSBzaG93SGFuZGxlID0gdHJ1ZTtcbiAgXG4gIC8qKlxuICAgKiBNb3N0cmFyIGJvdMOzbiBkZSBjZXJyYXJcbiAgICovXG4gIEBJbnB1dCgpIHNob3dDbG9zZUJ1dHRvbiA9IHRydWU7XG4gIFxuICBASW5wdXQoKSBjbG9zZU9uRXNjID0gdHJ1ZTtcbiAgQElucHV0KCkgY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8vIERFUFJFQ0FURUQ6IGNvbnRlbmlkbyBlc3BlY8OtZmljbyBxdWUgc2UgbW92acOzIGEgbmctY29udGVudFxuICBASW5wdXQoKSB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHVuaXQgPSAnJztcbiAgQElucHV0KCkgZGVjcmVtZW50TGFiZWwgPSAnLSc7XG4gIEBJbnB1dCgpIGluY3JlbWVudExhYmVsID0gJysnO1xuICBASW5wdXQoKSBwcmltYXJ5TGFiZWwgPSAnJztcbiAgQElucHV0KCkgc2Vjb25kYXJ5TGFiZWwgPSAnJztcbiAgQElucHV0KCkgcHJvZmlsZVRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIHByb2ZpbGVEZXNjcmlwdGlvbiA9ICcnO1xuICBASW5wdXQoKSBuYW1lTGFiZWwgPSAnTmFtZSc7XG4gIEBJbnB1dCgpIG5hbWVWYWx1ZSA9ICcnO1xuICBASW5wdXQoKSB1c2VybmFtZUxhYmVsID0gJ1VzZXJuYW1lJztcbiAgQElucHV0KCkgdXNlcm5hbWVWYWx1ZSA9ICcnO1xuICBASW5wdXQoKSByZXNwb25zaXZlUHJpbWFyeUxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIGJhcnM6IG51bWJlcltdID0gW107XG4gIEBPdXRwdXQoKSBwcmltYXJ5QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc2Vjb25kYXJ5QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJylcbiAgb25Fc2MoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3BlbiAmJiB0aGlzLmNsb3NlT25Fc2MpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBvbkJhY2tkcm9wQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2xvc2VPbkJhY2tkcm9wQ2xpY2spIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG4gIH1cblxuICBvblByaW1hcnlBY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5wcmltYXJ5QWN0aW9uLmVtaXQoKTtcbiAgfVxuXG4gIG9uU2Vjb25kYXJ5QWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2Vjb25kYXJ5QWN0aW9uLmVtaXQoKTtcbiAgfVxuXG4gIGdldCBjb250YWluZXJDbGFzc05hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGZpeGVkIGluc2V0LTAgJHtaX0lOREVYLmRyYXdlcn0gJHt0aGlzLmNsYXNzTmFtZX1gO1xuICB9XG5cbiAgZ2V0IHBhbmVsQ2xhc3NOYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZSA9IFtcbiAgICAgICdhYnNvbHV0ZScsXG4gICAgICAnYmctYmFja2dyb3VuZCcsXG4gICAgICAnYm9yZGVyJyxcbiAgICAgICdib3JkZXItYm9yZGVyJyxcbiAgICAgICdzaGFkb3ctbGcnLFxuICAgICAgJ292ZXJmbG93LWF1dG8nXG4gICAgXTtcblxuICAgIC8vIFBvc2ljaW9uYW1pZW50b1xuICAgIGNvbnN0IHBvc2l0aW9uQ2xhc3NlcyA9IHRoaXMuZ2V0UG9zaXRpb25DbGFzc2VzKCk7XG4gICAgXG4gICAgLy8gVGFtYcOxb1xuICAgIGNvbnN0IHNpemVDbGFzc2VzID0gdGhpcy5nZXRTaXplQ2xhc3NlcygpO1xuXG4gICAgcmV0dXJuIFsuLi5iYXNlLCAuLi5wb3NpdGlvbkNsYXNzZXMsIC4uLnNpemVDbGFzc2VzXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQb3NpdGlvbkNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IG1hcDogUmVjb3JkPFBkbURyYXdlclBvc2l0aW9uLCBzdHJpbmdbXT4gPSB7XG4gICAgICBib3R0b206IFsnaW5zZXQteC0wJywgJ2JvdHRvbS0wJywgJ3JvdW5kZWQtdC14bCddLFxuICAgICAgdG9wOiBbJ2luc2V0LXgtMCcsICd0b3AtMCcsICdyb3VuZGVkLWIteGwnXSxcbiAgICAgIGxlZnQ6IFsnaW5zZXQteS0wJywgJ2xlZnQtMCcsICdyb3VuZGVkLXIteGwnXSxcbiAgICAgIHJpZ2h0OiBbJ2luc2V0LXktMCcsICdyaWdodC0wJywgJ3JvdW5kZWQtbC14bCddXG4gICAgfTtcblxuICAgIHJldHVybiBtYXBbdGhpcy5wb3NpdGlvbl0gfHwgbWFwLmJvdHRvbTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2l6ZUNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGlzVmVydGljYWwgPSB0aGlzLnBvc2l0aW9uID09PSAnYm90dG9tJyB8fCB0aGlzLnBvc2l0aW9uID09PSAndG9wJztcbiAgICBcbiAgICBpZiAodGhpcy5zaXplID09PSAnZnVsbCcpIHtcbiAgICAgIHJldHVybiBbJ3ctZnVsbCcsICdoLWZ1bGwnXTtcbiAgICB9XG5cbiAgICBjb25zdCBzaXplTWFwID0ge1xuICAgICAgc206IGlzVmVydGljYWwgPyAnbWF4LWgtWzUwdmhdJyA6ICdtYXgtdy1bNDAwcHhdJyxcbiAgICAgIG1kOiBpc1ZlcnRpY2FsID8gJ21heC1oLVs2NnZoXScgOiAnbWF4LXctWzUwMHB4XScsXG4gICAgICBsZzogaXNWZXJ0aWNhbCA/ICdtYXgtaC1bODB2aF0nIDogJ21heC13LVs2NDBweF0nXG4gICAgfTtcblxuICAgIGNvbnN0IG1heERpbWVuc2lvbiA9IHNpemVNYXBbdGhpcy5zaXplXSB8fCBzaXplTWFwLm1kO1xuXG4gICAgaWYgKGlzVmVydGljYWwpIHtcbiAgICAgIHJldHVybiBbJ3ctZnVsbCcsIG1heERpbWVuc2lvbl07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbJ2gtZnVsbCcsIG1heERpbWVuc2lvbl07XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNob3dMZWdhY3lDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8vIE1vc3RyYXIgY29udGVuaWRvIGxlZ2FjeSBzaSB2YXJpYW50IGVzdMOhIHNpZW5kbyB1c2Fkb1xuICAgIHJldHVybiB0aGlzLnZhcmlhbnQgPT09ICdkcmF3ZXInIHx8IHRoaXMudmFyaWFudCA9PT0gJ3Jlc3BvbnNpdmUtZGlhbG9nJztcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIm9wZW5cIiBbbmdDbGFzc109XCJjb250YWluZXJDbGFzc05hbWVcIj5cbiAgPCEtLSBCYWNrZHJvcCAtLT5cbiAgPGRpdiBjbGFzcz1cImFic29sdXRlIGluc2V0LTAgYmctZm9yZWdyb3VuZC8zMCBiYWNrZHJvcC1ibHVyLXNtXCIgKGNsaWNrKT1cIm9uQmFja2Ryb3BDbGljaygpXCI+PC9kaXY+XG5cbiAgPCEtLSBQYW5lbCAtLT5cbiAgPHNlY3Rpb24gW25nQ2xhc3NdPVwicGFuZWxDbGFzc05hbWVcIj5cbiAgICA8IS0tIEhhbmRsZSB2aXN1YWwgKHNvbG8gcGFyYSBib3R0b20pIC0tPlxuICAgIDxkaXYgXG4gICAgICAqbmdJZj1cInNob3dIYW5kbGUgJiYgcG9zaXRpb24gPT09ICdib3R0b20nXCIgXG4gICAgICBjbGFzcz1cIm14LWF1dG8gbWItNCBtdC0yIGgtMSB3LTEwIHJvdW5kZWQtZnVsbCBiZy1ib3JkZXJcIj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gSGVhZGVyIChvcGNpb25hbCkgLS0+XG4gICAgPGRpdiAqbmdJZj1cInRpdGxlIHx8IGRlc2NyaXB0aW9uIHx8IHNob3dDbG9zZUJ1dHRvblwiIGNsYXNzPVwiZmxleCBpdGVtcy1zdGFydCBqdXN0aWZ5LWJldHdlZW4gZ2FwLTQgcC02IHBiLTRcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJ0aXRsZSB8fCBkZXNjcmlwdGlvblwiIGNsYXNzPVwiZmxleC0xIG1pbi13LTBcIj5cbiAgICAgICAgPGgzICpuZ0lmPVwidGl0bGVcIiBjbGFzcz1cIm0tMCB0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbGVhZGluZy1ub25lIHRyYWNraW5nLXRpZ2h0IHRleHQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgIHt7IHRpdGxlIH19XG4gICAgICAgIDwvaDM+XG4gICAgICAgIDxwICpuZ0lmPVwiZGVzY3JpcHRpb25cIiBjbGFzcz1cIm0tMCBtdC0xIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgICAge3sgZGVzY3JpcHRpb24gfX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJzaG93Q2xvc2VCdXR0b25cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBoLTYgdy02IGZsZXgtc2hyaW5rLTAgYXBwZWFyYW5jZS1ub25lIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLXNtIGJvcmRlci0wIGJnLXRyYW5zcGFyZW50IHAtMCB0ZXh0LWZvcmVncm91bmQgb3BhY2l0eS03MCByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tb3BhY2l0eSBob3ZlcjpvcGFjaXR5LTEwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctcmluZyBmb2N1czpyaW5nLW9mZnNldC0yXCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2UgZHJhd2VyXCJcbiAgICAgID5cbiAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgY2xhc3M9XCJoLTQgdy00XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk02IDZMMTggMThNMTggNkw2IDE4XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQ29udGVudCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwicHgtNiBwYi02XCI+XG4gICAgICA8IS0tIENvbnRlbmlkbyBnZW7DqXJpY28gLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dMZWdhY3lDb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIExFR0FDWTogY29udGVuaWRvIGVzcGVjw61maWNvIGhhcmRjb2RlYWRvIChiYWNrd2FyZCBjb21wYXRpYmlsaXR5KSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93TGVnYWN5Q29udGVudFwiPlxuICAgICAgICA8IS0tIFZhcmlhbnQ6IGRyYXdlciAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cInZhcmlhbnQgPT09ICdkcmF3ZXInXCIgY2xhc3M9XCJteC1hdXRvIGZsZXggbWF4LXctc20gZmxleC1jb2wgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cInZhbHVlICE9PSAnJ1wiIGNsYXNzPVwibXQtMyBmbGV4IHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaW5saW5lLWZsZXggaC02IHctNiBhcHBlYXJhbmNlLW5vbmUgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtZnVsbCBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy10cmFuc3BhcmVudCBwLTAgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e3sgZGVjcmVtZW50TGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC01eGwgZm9udC1zZW1pYm9sZCBsZWFkaW5nLW5vbmUgdGV4dC1mb3JlZ3JvdW5kXCI+e3sgdmFsdWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInVuaXRcIiBjbGFzcz1cIm10LTEgdGV4dC14cyB0cmFja2luZy13aWRlIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IHVuaXQgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbmxpbmUtZmxleCBoLTYgdy02IGFwcGVhcmFuY2Utbm9uZSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLXRyYW5zcGFyZW50IHAtMCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBpbmNyZW1lbnRMYWJlbCB9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImJhcnMubGVuZ3RoXCIgY2xhc3M9XCJtdC0zIGZsZXggaC0xNCB3LWZ1bGwgaXRlbXMtZW5kIGdhcC0xXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBiYXIgb2YgYmFyc1wiIGNsYXNzPVwiZmxleC0xIGJnLWZvcmVncm91bmRcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImJhclwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInByaW1hcnlMYWJlbFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm10LTMgaC05IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgcm91bmRlZC1tZCBiZy1wcmltYXJ5IHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1wcmltYXJ5LWZvcmVncm91bmRcIiAoY2xpY2spPVwib25QcmltYXJ5QWN0aW9uKClcIj57eyBwcmltYXJ5TGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2Vjb25kYXJ5TGFiZWxcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJtdC0yIGgtOSB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kXCIgKGNsaWNrKT1cIm9uU2Vjb25kYXJ5QWN0aW9uKClcIj57eyBzZWNvbmRhcnlMYWJlbCB9fTwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIFZhcmlhbnQ6IHJlc3BvbnNpdmUtZGlhbG9nIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidmFyaWFudCA9PT0gJ3Jlc3BvbnNpdmUtZGlhbG9nJ1wiIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJuYW1lTGFiZWwgJiYgbmFtZVZhbHVlXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtYi0xIGJsb2NrIHRleHQteHMgZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kXCI+e3sgbmFtZUxhYmVsIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTggcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHB4LTIgcHktMSB0ZXh0LXhzIHRleHQtZm9yZWdyb3VuZFwiPnt7IG5hbWVWYWx1ZSB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VybmFtZUxhYmVsICYmIHVzZXJuYW1lVmFsdWVcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm1iLTEgYmxvY2sgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmRcIj57eyB1c2VybmFtZUxhYmVsIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTggcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHB4LTIgcHktMSB0ZXh0LXhzIHRleHQtZm9yZWdyb3VuZFwiPnt7IHVzZXJuYW1lVmFsdWUgfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJyZXNwb25zaXZlUHJpbWFyeUxhYmVsXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwibXQtMyBoLTggdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSByb3VuZGVkLW1kIGJnLXByaW1hcnkgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZFwiIChjbGljayk9XCJvblByaW1hcnlBY3Rpb24oKVwiPnt7IHJlc3BvbnNpdmVQcmltYXJ5TGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
2
2
  import { TemplatePortal } from '@angular/cdk/portal';
3
3
  import { createFlexiblePositionStrategy } from '../../overlay/create-flexible-position-strategy';
4
+ import { Z_INDEX } from '../../utils/z-index';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@angular/cdk/overlay";
6
7
  import * as i2 from "@angular/common";
@@ -118,7 +119,7 @@ export class PdmDropdownMenuComponent {
118
119
  const positionStrategy = createFlexiblePositionStrategy(this.overlay, triggerEl, 8);
119
120
  // Resolve panelClass: overlayOptions.panelClass wins; otherwise map panelClassName.
120
121
  const resolvedPanelClass = this.overlayOptions?.panelClass
121
- ?? (this.panelClassName ? ['block', this.panelClassName] : ['block']);
122
+ ?? (this.panelClassName ? [Z_INDEX.popover, this.panelClassName] : [Z_INDEX.popover]);
122
123
  this.overlayRef = this.overlay.create({
123
124
  positionStrategy,
124
125
  scrollStrategy: this.overlay.scrollStrategies.reposition(),
@@ -188,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
188
189
  type: HostListener,
189
190
  args: ['document:keydown.escape']
190
191
  }] } });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHckQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7QUFxQmpHLE1BQU0sT0FBTyx3QkFBd0I7SUFrQ25DLFlBQ21CLFVBQW1DLEVBQ25DLEdBQXNCLEVBQ3RCLE9BQWdCLEVBQ2hCLGdCQUFrQztRQUhsQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFyQzVDLGdCQUFXLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLFlBQU8sR0FBMkIsU0FBUyxDQUFDO1FBQzVDLFVBQUssR0FBa0IsRUFBRSxDQUFDO1FBQzFCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzlCOzs7V0FHRztRQUNNLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDeEI7Ozs7V0FJRztRQUNNLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBUW5CLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3hDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVB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QURKLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQZG1PdmVybGF5T3B0aW9ucyB9IGZyb20gJy4uLy4uL292ZXJsYXkvcGRtLW92ZXJsYXktb3B0aW9ucyc7XG5pbXBvcnQgeyBjcmVhdGVGbGV4aWJsZVBvc2l0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9vdmVybGF5L2NyZWF0ZS1mbGV4aWJsZS1wb3NpdGlvbi1zdHJhdGVneSc7XG5cbmV4cG9ydCB0eXBlIFBkbURyb3Bkb3duTWVudVZhcmlhbnQgPSAnZGVmYXVsdCcgfCAnY2hlY2tib3hlcycgfCAncmFkaW8tZ3JvdXAnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBkbU1lbnVJdGVtIHtcbiAgdHlwZT86ICdpdGVtJyB8ICdsYWJlbCcgfCAnc2VwYXJhdG9yJztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nO1xuICBzaG9ydGN1dD86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpbnNldD86IGJvb2xlYW47XG4gIHNob3dDaGV2cm9uPzogYm9vbGVhbjtcbiAgY2hlY2tlZD86IGJvb2xlYW47XG4gIHJhZGlvU2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZG0tZHJvcGRvd24tbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGRtRHJvcGRvd25NZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdHJpZ2dlclRleHQgPSAnT3Blbic7XG4gIEBJbnB1dCgpIHZhcmlhbnQ6IFBkbURyb3Bkb3duTWVudVZhcmlhbnQgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIGl0ZW1zOiBQZG1NZW51SXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGNsb3NlT25TZWxlY3QgPSB0cnVlO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBDU1MgY2xhc3NlcyBhcHBsaWVkIHRvIHRoZSB0cmlnZ2VyIHdyYXBwZXIgZWxlbWVudC5cbiAgICogUHJlc2VydmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICAgKi9cbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIENTUyBjbGFzc2VzIGFwcGxpZWQgdG8gdGhlIG92ZXJsYXkgcGFuZWwuXG4gICAqIEJhY2t3YXJkLWNvbXBhdGlibGU6IG1hcHBlZCB0byBgb3ZlcmxheU9wdGlvbnMucGFuZWxDbGFzc2Agd2hlbiBgb3ZlcmxheU9wdGlvbnNgIGlzIG5vdCBzZXQuXG4gICAqIFdoZW4gYm90aCBhcmUgc3VwcGxpZWQsIGBvdmVybGF5T3B0aW9ucy5wYW5lbENsYXNzYCB0YWtlcyBwcmVjZWRlbmNlLlxuICAgKi9cbiAgQElucHV0KCkgcGFuZWxDbGFzc05hbWUgPSAnJztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIENESyBPdmVybGF5Q29uZmlnIG92ZXJyaWRlcy5cbiAgICogU2hhbGxvdy1tZXJnZWQgb24gdG9wIG9mIGNvbXBvbmVudCBkZWZhdWx0cyDigJQgY29uc3VtZXIgYWx3YXlzIHdpbnMuXG4gICAqIFByb3ZpZGluZyBgcG9zaXRpb25TdHJhdGVneWAgb3IgYHNjcm9sbFN0cmF0ZWd5YCByZXBsYWNlcyB0aGUgY29tcG9uZW50IGRlZmF1bHQgZW50aXJlbHkuXG4gICAqL1xuICBASW5wdXQoKSBvdmVybGF5T3B0aW9ucz86IFBkbU92ZXJsYXlPcHRpb25zO1xuXG4gIEBPdXRwdXQoKSBpdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBpdGVtc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGRtTWVudUl0ZW1bXT4oKTtcblxuICBvcGVuID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgndHJpZ2dlckVsJykgcHJpdmF0ZSB0cmlnZ2VyUmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3BhbmVsVGVtcGxhdGUnKSBwcml2YXRlIHBhbmVsVGVtcGxhdGVSZWYhOiBhbnk7XG5cbiAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgYmFja2Ryb3BTdWI6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcbiAgfVxuXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICB0aGlzLmNsb3NlUGFuZWwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuUGFuZWwoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRJdGVtcygpOiBQZG1NZW51SXRlbVtdIHtcbiAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLml0ZW1zO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdjaGVja2JveGVzJykge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiAnbGFiZWwnLCBsYWJlbDogJ0FwcGVhcmFuY2UnIH0sXG4gICAgICAgIHsgdHlwZTogJ3NlcGFyYXRvcicgfSxcbiAgICAgICAgeyB0eXBlOiAnaXRlbScsIGxhYmVsOiAnU3RhdHVzIEJhcicsIHZhbHVlOiAnc3RhdHVzLWJhcicsIGNoZWNrZWQ6IHRydWUgfSxcbiAgICAgICAgeyB0eXBlOiAnaXRlbScsIGxhYmVsOiAnQWN0aXZpdHkgQmFyJywgdmFsdWU6ICdhY3Rpdml0eS1iYXInLCBjaGVja2VkOiBmYWxzZSB9LFxuICAgICAgICB7IHR5cGU6ICdpdGVtJywgbGFiZWw6ICdQYW5lbCcsIHZhbHVlOiAncGFuZWwnLCBjaGVja2VkOiBmYWxzZSB9XG4gICAgICBdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdyYWRpby1ncm91cCcpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogJ2xhYmVsJywgbGFiZWw6ICdQYW5lbCBQb3NpdGlvbicgfSxcbiAgICAgICAgeyB0eXBlOiAnc2VwYXJhdG9yJyB9LFxuICAgICAgICB7IHR5cGU6ICdpdGVtJywgbGFiZWw6ICdUb3AnLCB2YWx1ZTogJ3RvcCcsIHJhZGlvU2VsZWN0ZWQ6IHRydWUgfSxcbiAgICAgICAgeyB0eXBlOiAnaXRlbScsIGxhYmVsOiAnQm90dG9tJywgdmFsdWU6ICdib3R0b20nLCByYWRpb1NlbGVjdGVkOiBmYWxzZSB9LFxuICAgICAgICB7IHR5cGU6ICdpdGVtJywgbGFiZWw6ICdSaWdodCcsIHZhbHVlOiAncmlnaHQnLCByYWRpb1NlbGVjdGVkOiBmYWxzZSB9XG4gICAgICBdO1xuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICB7IHR5cGU6ICdsYWJlbCcsIGxhYmVsOiAnTXkgQWNjb3VudCcsIGluc2V0OiB0cnVlIH0sXG4gICAgICB7IHR5cGU6ICdzZXBhcmF0b3InIH0sXG4gICAgICB7IHR5cGU6ICdpdGVtJywgbGFiZWw6ICdQcm9maWxlJywgdmFsdWU6ICdwcm9maWxlJywgc2hvcnRjdXQ6ICfih6fijJhQJyB9LFxuICAgICAgeyB0eXBlOiAnaXRlbScsIGxhYmVsOiAnQmlsbGluZycsIHZhbHVlOiAnYmlsbGluZycsIHNob3J0Y3V0OiAn4oyYQicgfSxcbiAgICAgIHsgdHlwZTogJ2l0ZW0nLCBsYWJlbDogJ1NldHRpbmdzJywgdmFsdWU6ICdzZXR0aW5ncycsIHNob3J0Y3V0OiAn4oyYUycgfSxcbiAgICAgIHsgdHlwZTogJ2l0ZW0nLCBsYWJlbDogJ0tleWJvYXJkIHNob3J0Y3V0cycsIHZhbHVlOiAnc2hvcnRjdXRzJywgc2hvcnRjdXQ6ICfijJhLJyB9LFxuICAgICAgeyB0eXBlOiAnc2VwYXJhdG9yJyB9LFxuICAgICAgeyB0eXBlOiAnaXRlbScsIGxhYmVsOiAnVGVhbScsIHZhbHVlOiAndGVhbScgfSxcbiAgICAgIHsgdHlwZTogJ2l0ZW0nLCBsYWJlbDogJ0ludml0ZSB1c2VycycsIHZhbHVlOiAnaW52aXRlJywgc2hvd0NoZXZyb246IHRydWUgfSxcbiAgICAgIHsgdHlwZTogJ2l0ZW0nLCBsYWJlbDogJ05ldyBUZWFtJywgdmFsdWU6ICduZXctdGVhbScsIHNob3J0Y3V0OiAn4oyYK1QnIH0sXG4gICAgICB7IHR5cGU6ICdzZXBhcmF0b3InIH0sXG4gICAgICB7IHR5cGU6ICdpdGVtJywgbGFiZWw6ICdHaXRIdWInLCB2YWx1ZTogJ2dpdGh1YicgfSxcbiAgICAgIHsgdHlwZTogJ2l0ZW0nLCBsYWJlbDogJ1N1cHBvcnQnLCB2YWx1ZTogJ3N1cHBvcnQnIH0sXG4gICAgICB7IHR5cGU6ICdpdGVtJywgbGFiZWw6ICdBUEknLCB2YWx1ZTogJ2FwaScsIGRpc2FibGVkOiB0cnVlIH0sXG4gICAgICB7IHR5cGU6ICdzZXBhcmF0b3InIH0sXG4gICAgICB7IHR5cGU6ICdpdGVtJywgbGFiZWw6ICdMb2cgb3V0JywgdmFsdWU6ICdsb2dvdXQnLCBzaG9ydGN1dDogJ+KHp+KMmFEnIH1cbiAgICBdO1xuICB9XG5cbiAgc2VsZWN0KGl0ZW06IFBkbU1lbnVJdGVtKTogdm9pZCB7XG4gICAgaWYgKGl0ZW0uZGlzYWJsZWQgfHwgaXRlbS50eXBlID09PSAnc2VwYXJhdG9yJyB8fCBpdGVtLnR5cGUgPT09ICdsYWJlbCcgfHwgIWl0ZW0udmFsdWUpIHJldHVybjtcblxuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdjaGVja2JveGVzJykge1xuICAgICAgY29uc3QgdXBkYXRlZCA9IHRoaXMucmVzb2x2ZWRJdGVtcy5tYXAoKGVudHJ5KSA9PlxuICAgICAgICBlbnRyeS52YWx1ZSA9PT0gaXRlbS52YWx1ZSA/IHsgLi4uZW50cnksIGNoZWNrZWQ6ICFlbnRyeS5jaGVja2VkIH0gOiBlbnRyeVxuICAgICAgKTtcbiAgICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh1cGRhdGVkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy52YXJpYW50ID09PSAncmFkaW8tZ3JvdXAnKSB7XG4gICAgICBjb25zdCB1cGRhdGVkID0gdGhpcy5yZXNvbHZlZEl0ZW1zLm1hcCgoZW50cnkpID0+XG4gICAgICAgIGVudHJ5LnR5cGUgPT09ICdpdGVtJ1xuICAgICAgICAgID8geyAuLi5lbnRyeSwgcmFkaW9TZWxlY3RlZDogZW50cnkudmFsdWUgPT09IGl0ZW0udmFsdWUgfVxuICAgICAgICAgIDogZW50cnlcbiAgICAgICk7XG4gICAgICB0aGlzLml0ZW1zQ2hhbmdlLmVtaXQodXBkYXRlZCk7XG4gICAgfVxuXG4gICAgdGhpcy5pdGVtU2VsZWN0LmVtaXQoaXRlbS52YWx1ZSk7XG5cbiAgICBjb25zdCBzaG91bGRDbG9zZSA9IHRoaXMudmFyaWFudCA9PT0gJ2RlZmF1bHQnID8gdGhpcy5jbG9zZU9uU2VsZWN0IDogZmFsc2U7XG4gICAgaWYgKHNob3VsZENsb3NlKSB7XG4gICAgICB0aGlzLmNsb3NlUGFuZWwoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScpXG4gIG9uRXNjKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgIHRoaXMuY2xvc2VQYW5lbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3BlblBhbmVsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHJldHVybjtcblxuICAgIGNvbnN0IHRyaWdnZXJFbCA9IHRoaXMudHJpZ2dlclJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIXRyaWdnZXJFbCkgcmV0dXJuO1xuXG4gICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSBjcmVhdGVGbGV4aWJsZVBvc2l0aW9uU3RyYXRlZ3koXG4gICAgICB0aGlzLm92ZXJsYXksXG4gICAgICB0cmlnZ2VyRWwsXG4gICAgICA4XG4gICAgKTtcblxuICAgIC8vIFJlc29sdmUgcGFuZWxDbGFzczogb3ZlcmxheU9wdGlvbnMucGFuZWxDbGFzcyB3aW5zOyBvdGhlcndpc2UgbWFwIHBhbmVsQ2xhc3NOYW1lLlxuICAgIGNvbnN0IHJlc29sdmVkUGFuZWxDbGFzcyA9IHRoaXMub3ZlcmxheU9wdGlvbnM/LnBhbmVsQ2xhc3NcbiAgICAgID8/ICh0aGlzLnBhbmVsQ2xhc3NOYW1lID8gWydibG9jaycsIHRoaXMucGFuZWxDbGFzc05hbWVdIDogWydibG9jayddKTtcblxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICAvLyBDb25zdW1lciBvdmVycmlkZXMgYXJlIHNwcmVhZCBsYXN0IOKAlCB0aGV5IHdpbiBvdmVyIGV2ZXJ5IGRlZmF1bHQgYWJvdmUuXG4gICAgICAuLi50aGlzLm92ZXJsYXlPcHRpb25zLFxuICAgICAgLy8gcGFuZWxDbGFzcyBhbHdheXMgb3ZlcnJpZGVzIGxhc3Q6IGl0IGFscmVhZHkgbWVyZ2VzIHBhbmVsQ2xhc3NOYW1lICsgb3ZlcmxheU9wdGlvbnMuXG4gICAgICBwYW5lbENsYXNzOiByZXNvbHZlZFBhbmVsQ2xhc3NcbiAgICB9KTtcblxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnBhbmVsVGVtcGxhdGVSZWYsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG4gICAgdGhpcy5iYWNrZHJvcFN1YiA9IHRoaXMub3ZlcmxheVJlZi5vdXRzaWRlUG9pbnRlckV2ZW50cygpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBOb2RlO1xuICAgICAgaWYgKCF0cmlnZ2VyRWwuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICB0aGlzLmNsb3NlUGFuZWwoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZVBhbmVsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSByZXR1cm47XG5cbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmRlc3Ryb3lPdmVybGF5KCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmJhY2tkcm9wU3ViKSB7XG4gICAgICB0aGlzLmJhY2tkcm9wU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLmJhY2tkcm9wU3ViID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XG4gICAgfVxuICB9XG59XG4iLCI8YnV0dG9uXG4gICN0cmlnZ2VyRWxcbiAgdHlwZT1cImJ1dHRvblwiXG4gIFtuZ0NsYXNzXT1cIltcbiAgICAnaW5saW5lLWZsZXggaC05IGFwcGVhcmFuY2Utbm9uZSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWlucHV0IGJnLWJhY2tncm91bmQgcHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kIHNoYWRvdy1zbSByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tY29sb3JzIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMicsXG4gICAgY2xhc3NOYW1lXG4gIF1cIlxuICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW5cIlxuICAoY2xpY2spPVwidG9nZ2xlKClcIlxuPlxuICB7eyB0cmlnZ2VyVGV4dCB9fVxuPC9idXR0b24+XG5cbjxuZy10ZW1wbGF0ZSAjcGFuZWxUZW1wbGF0ZT5cbiAgPGRpdlxuICAgIGNsYXNzPVwibWluLXctMzIgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctcG9wb3ZlciBwLTEgdGV4dC1wb3BvdmVyLWZvcmVncm91bmQgc2hhZG93LW1kXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcmVzb2x2ZWRJdGVtc1wiPlxuICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ3NlcGFyYXRvcidcIiBjbGFzcz1cIi1teC0xIG15LTEgaC1weCBiZy1tdXRlZFwiPjwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSAnbGFiZWwnXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiWydweC0yIHB5LTEuNSB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1mb3JlZ3JvdW5kJywgaXRlbS5pbnNldCA/ICdwbC04JyA6ICcnXVwiXG4gICAgICA+XG4gICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT09ICdpdGVtJ1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICAgICAncmVsYXRpdmUgZmxleCB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIGN1cnNvci1kZWZhdWx0IHNlbGVjdC1ub25lIGl0ZW1zLWNlbnRlciBnYXAtMiByb3VuZGVkLXNtIGJvcmRlci0wIGJnLXRyYW5zcGFyZW50IHB4LTIgcHktMS41IHRleHQtbGVmdCB0ZXh0LXNtIHRleHQtZm9yZWdyb3VuZCBvdXRsaW5lLW5vbmUgdHJhbnNpdGlvbi1jb2xvcnMgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQgZm9jdXMtdmlzaWJsZTpiZy1hY2NlbnQgZm9jdXMtdmlzaWJsZTp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6b3BhY2l0eS01MCcsXG4gICAgICAgICAgaXRlbS5pbnNldCA/ICdwbC04JyA6ICcnXG4gICAgICAgIF1cIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmxpbmUtZmxleCBoLTQgdy00IHNocmluay0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5jaGVja2VkXCJcbiAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgY2xhc3M9XCJoLTMuNSB3LTMuNSB0ZXh0LWZvcmVncm91bmRcIlxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHBhdGggZD1cIk01IDEyLjVMOS4yIDE2LjdMMTkgN1wiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuOFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0ucmFkaW9TZWxlY3RlZFwiIGNsYXNzPVwiaC0yIHctMiByb3VuZGVkLWZ1bGwgYmctZm9yZWdyb3VuZFwiPjwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1pbi13LTAgZmxleC0xIHRydW5jYXRlXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnNob3J0Y3V0XCIgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IGl0ZW0uc2hvcnRjdXQgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5zaG93Q2hldnJvblwiIGNsYXNzPVwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj7igLo8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHckQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDakcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBcUI5QyxNQUFNLE9BQU8sd0JBQXdCO0lBa0NuQyxZQUNtQixVQUFtQyxFQUNuQyxHQUFzQixFQUN0QixPQUFnQixFQUNoQixnQkFBa0M7UUFIbEMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBckM1QyxnQkFBVyxHQUFHLE1BQU0sQ0FBQztRQUNyQixZQUFPLEdBQTJCLFNBQVMsQ0FBQztRQUM1QyxVQUFLLEdBQWtCLEVBQUUsQ0FBQztRQUMxQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUM5Qjs7O1dBR0c7UUFDTSxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3hCOzs7O1dBSUc7UUFDTSxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQVFuQixlQUFVLEdBQUcsSUFBSSxZ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O3VCQUFDLFdBQVc7Z0JBQ2MsZ0JBQWdCO3NCQUFuRCxTQUFTO3VCQUFDLGVBQWU7Z0JBaUcxQixLQUFLO3NCQURKLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQZG1PdmVybGF5T3B0aW9ucyB9IGZyb20gJy4uLy4uL292ZXJsYXkvcGRtLW92ZXJsYXktb3B0aW9ucyc7XG5pbXBvcnQgeyBjcmVhdGVGbGV4aWJsZVBvc2l0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9vdmVybGF5L2NyZWF0ZS1mbGV4aWJsZS1wb3NpdGlvbi1zdHJhdGVneSc7XG5pbXBvcnQgeyBaX0lOREVYIH0gZnJvbSAnLi4vLi4vdXRpbHMvei1pbmRleCc7XG5cbmV4cG9ydCB0eXBlIFBkbURyb3Bkb3duTWVudVZhcmlhbnQgPSAnZGVmYXVsdCcgfCAnY2hlY2tib3hlcycgfCAncmFkaW8tZ3JvdXAnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBkbU1lbnVJdGVtIHtcbiAgdHlwZT86ICdpdGVtJyB8ICdsYWJlbCcgfCAnc2VwYXJhdG9yJztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nO1xuICBzaG9ydGN1dD86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpbnNldD86IGJvb2xlYW47XG4gIHNob3dDaGV2cm9uPzogYm9vbGVhbjtcbiAgY2hlY2tlZD86IGJvb2xlYW47XG4gIHJhZGlvU2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZG0tZHJvcGRvd24tbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGRtRHJvcGRvd25NZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdHJpZ2dlclRleHQgPSAnT3Blbic7XG4gIEBJbnB1dCgpIHZhcmlhbnQ6IFBkbURyb3Bkb3duTWVudVZhcmlhbnQgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIGl0ZW1zOiBQZG1NZW51SXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGNsb3NlT25TZWxlY3QgPSB0cnVlO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBDU1MgY2xhc3NlcyBhcHBsaWVkIHRvIHRoZSB0cmlnZ2VyIHdyYXBwZXIgZWxlbWVudC5cbiAgICogUHJlc2VydmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICAgKi9cbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIENTUyBjbGFzc2VzIGFwcGxpZWQgdG8gdGhlIG92ZXJsYXkgcGFuZWwuXG4gICAqIEJhY2t3YXJkLWNvbXBhdGlibGU6IG1hcHBlZCB0byBgb3ZlcmxheU9wdGlvbnMucGFuZWxDbGFzc2Agd2hlbiBgb3ZlcmxheU9wdGlvbnNgIGlzIG5vdCBzZXQuXG4gICAqIFdoZW4gYm90aCBhcmUgc3VwcGxpZWQsIGBvdmVybGF5T3B0aW9ucy5wYW5lbENsYXNzYCB0YWtlcyBwcmVjZWRlbmNlLlxuICAgKi9cbiAgQElucHV0KCkgcGFuZWxDbGFzc05hbWUgPSAnJztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIENESyBPdmVybGF5Q29uZmlnIG92ZXJyaWRlcy5cbiAgICogU2hhbGxvdy1tZXJnZWQgb24gdG9wIG9mIGNvbXBvbmVudCBkZWZhdWx0cyDigJQgY29uc3VtZXIgYWx3YXlzIHdpbnMuXG4gICAqIFByb3ZpZGluZyBgcG9zaXRpb25TdHJhdGVneWAgb3IgYHNjcm9sbFN0cmF0ZWd5YCByZXBsYWNlcyB0aGUgY29tcG9uZW50IGRlZmF1bHQgZW50aXJlbHkuXG4gICAqL1xuICBASW5wdXQoKSBvdmVybGF5T3B0aW9ucz86IFBkbU92ZXJsYXlPcHRpb25zO1xuXG4gIEBPdXRwdXQoKSBpdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBpdGVtc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGRtTWVudUl0ZW1bXT4oKTtcblxuICBvcGVuID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgndHJpZ2dlckVsJykgcHJpdmF0ZSB0cmlnZ2VyUmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3BhbmVsVGVtcGxhdGUnKSBwcml2YXRlIHBhbmVsVGVtcGxhdGVSZWYhOiBhbnk7XG5cbiAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgYmFja2Ryb3BTdWI6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcbiAgfVxuXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICB0aGlzLmNsb3NlUGFuZWwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuUGFuZWwoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRJdGVtcygpOiBQZG1NZW51SXRlbVtdIHtcbiAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLml0ZW1zO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdjaGVja2JveGVzJykge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgeyB0eXBlOiAnbGFiZWwnLCBsYWJlbDogJ0FwcGVhcmFuY2UnIH0sXG4gICAgICAgIHsgdHlwZTogJ3NlcGFyYXRvcicgfSxcbiAgICAgICAgeyB0eXBlOiAnaXRlbScsIGxhYmVsOiAnU3RhdHVzIEJhcicsIHZhbHVlOiAnc3RhdHVzLWJhcicsIGNoZWNrZWQ6IHRydWUgfSxcbiAgICAgICAgeyB0eXBlOiAnaXRlbScsIGxhYmVsOiAnQWN0aXZpdHkgQmFyJywgdmFsdWU6ICdhY3Rpdml0eS1iYXInLCBjaGVja2VkOiBmYWxzZSB9LFxuICAgICAgICB7IHR5cGU6ICdpdGVtJywgbGFiZWw6ICdQYW5lbCcsIHZhbHVlOiAncGFuZWwnLCBjaGVja2VkOiBmYWxzZSB9XG4gICAgICBdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdyYWRpby1ncm91cCcpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHsgdHlwZTogJ2xhYmVsJywgbGFiZWw6ICdQYW5lbCBQb3NpdGlvbicgfSxcbiAgICAgICAgeyB0eXBlOiAnc2VwYXJhdG9yJyB9LFxuICAgICAgICB7IHR5cGU6ICdpdGVtJywgbGFiZWw6ICdUb3AnLCB2YWx1ZTogJ3RvcCcsIHJhZGlvU2VsZWN0ZWQ6IHRydWUgfSxcbiAgICAgICAgeyB0eXBlOiAnaXRlbScsIGxhYmVsOiAnQm90dG9tJywgdmFsdWU6ICdib3R0b20nLCByYWRpb1NlbGVjdGVkOiBmYWxzZSB9LFxuICAgICAgICB7IHR5cGU6ICdpdGVtJywgbGFiZWw6ICdSaWdodCcsIHZhbHVlOiAncmlnaHQnLCByYWRpb1NlbGVjdGVkOiBmYWxzZSB9XG4gICAgICBdO1xuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICB7IHR5cGU6ICdsYWJlbCcsIGxhYmVsOiAnTXkgQWNjb3VudCcsIGluc2V0OiB0cnVlIH0sXG4gICAgICB7IHR5cGU6ICdzZXBhcmF0b3InIH0sXG4gICAgICB7IHR5cGU6ICdpdGVtJywgbGFiZWw6ICdQcm9maWxlJywgdmFsdWU6ICdwcm9maWxlJywgc2hvcnRjdXQ6ICfih6fijJhQJyB9LFxuICAgICAgeyB0eXBlOiAnaXRlbScsIGxhYmVsOiAnQmlsbGluZycsIHZhbHVlOiAnYmlsbGluZycsIHNob3J0Y3V0OiAn4oyYQicgfSxcbiAgICAgIHsgdHlwZTogJ2l0ZW0nLCBsYWJlbDogJ1NldHRpbmdzJywgdmFsdWU6ICdzZXR0aW5ncycsIHNob3J0Y3V0OiAn4oyYUycgfSxcbiAgICAgIHsgdHlwZTogJ2l0ZW0nLCBsYWJlbDogJ0tleWJvYXJkIHNob3J0Y3V0cycsIHZhbHVlOiAnc2hvcnRjdXRzJywgc2hvcnRjdXQ6ICfijJhLJyB9LFxuICAgICAgeyB0eXBlOiAnc2VwYXJhdG9yJyB9LFxuICAgICAgeyB0eXBlOiAnaXRlbScsIGxhYmVsOiAnVGVhbScsIHZhbHVlOiAndGVhbScgfSxcbiAgICAgIHsgdHlwZTogJ2l0ZW0nLCBsYWJlbDogJ0ludml0ZSB1c2VycycsIHZhbHVlOiAnaW52aXRlJywgc2hvd0NoZXZyb246IHRydWUgfSxcbiAgICAgIHsgdHlwZTogJ2l0ZW0nLCBsYWJlbDogJ05ldyBUZWFtJywgdmFsdWU6ICduZXctdGVhbScsIHNob3J0Y3V0OiAn4oyYK1QnIH0sXG4gICAgICB7IHR5cGU6ICdzZXBhcmF0b3InIH0sXG4gICAgICB7IHR5cGU6ICdpdGVtJywgbGFiZWw6ICdHaXRIdWInLCB2YWx1ZTogJ2dpdGh1YicgfSxcbiAgICAgIHsgdHlwZTogJ2l0ZW0nLCBsYWJlbDogJ1N1cHBvcnQnLCB2YWx1ZTogJ3N1cHBvcnQnIH0sXG4gICAgICB7IHR5cGU6ICdpdGVtJywgbGFiZWw6ICdBUEknLCB2YWx1ZTogJ2FwaScsIGRpc2FibGVkOiB0cnVlIH0sXG4gICAgICB7IHR5cGU6ICdzZXBhcmF0b3InIH0sXG4gICAgICB7IHR5cGU6ICdpdGVtJywgbGFiZWw6ICdMb2cgb3V0JywgdmFsdWU6ICdsb2dvdXQnLCBzaG9ydGN1dDogJ+KHp+KMmFEnIH1cbiAgICBdO1xuICB9XG5cbiAgc2VsZWN0KGl0ZW06IFBkbU1lbnVJdGVtKTogdm9pZCB7XG4gICAgaWYgKGl0ZW0uZGlzYWJsZWQgfHwgaXRlbS50eXBlID09PSAnc2VwYXJhdG9yJyB8fCBpdGVtLnR5cGUgPT09ICdsYWJlbCcgfHwgIWl0ZW0udmFsdWUpIHJldHVybjtcblxuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdjaGVja2JveGVzJykge1xuICAgICAgY29uc3QgdXBkYXRlZCA9IHRoaXMucmVzb2x2ZWRJdGVtcy5tYXAoKGVudHJ5KSA9PlxuICAgICAgICBlbnRyeS52YWx1ZSA9PT0gaXRlbS52YWx1ZSA/IHsgLi4uZW50cnksIGNoZWNrZWQ6ICFlbnRyeS5jaGVja2VkIH0gOiBlbnRyeVxuICAgICAgKTtcbiAgICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh1cGRhdGVkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy52YXJpYW50ID09PSAncmFkaW8tZ3JvdXAnKSB7XG4gICAgICBjb25zdCB1cGRhdGVkID0gdGhpcy5yZXNvbHZlZEl0ZW1zLm1hcCgoZW50cnkpID0+XG4gICAgICAgIGVudHJ5LnR5cGUgPT09ICdpdGVtJ1xuICAgICAgICAgID8geyAuLi5lbnRyeSwgcmFkaW9TZWxlY3RlZDogZW50cnkudmFsdWUgPT09IGl0ZW0udmFsdWUgfVxuICAgICAgICAgIDogZW50cnlcbiAgICAgICk7XG4gICAgICB0aGlzLml0ZW1zQ2hhbmdlLmVtaXQodXBkYXRlZCk7XG4gICAgfVxuXG4gICAgdGhpcy5pdGVtU2VsZWN0LmVtaXQoaXRlbS52YWx1ZSk7XG5cbiAgICBjb25zdCBzaG91bGRDbG9zZSA9IHRoaXMudmFyaWFudCA9PT0gJ2RlZmF1bHQnID8gdGhpcy5jbG9zZU9uU2VsZWN0IDogZmFsc2U7XG4gICAgaWYgKHNob3VsZENsb3NlKSB7XG4gICAgICB0aGlzLmNsb3NlUGFuZWwoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScpXG4gIG9uRXNjKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgIHRoaXMuY2xvc2VQYW5lbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3BlblBhbmVsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHJldHVybjtcblxuICAgIGNvbnN0IHRyaWdnZXJFbCA9IHRoaXMudHJpZ2dlclJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIXRyaWdnZXJFbCkgcmV0dXJuO1xuXG4gICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSBjcmVhdGVGbGV4aWJsZVBvc2l0aW9uU3RyYXRlZ3koXG4gICAgICB0aGlzLm92ZXJsYXksXG4gICAgICB0cmlnZ2VyRWwsXG4gICAgICA4XG4gICAgKTtcblxuICAgIC8vIFJlc29sdmUgcGFuZWxDbGFzczogb3ZlcmxheU9wdGlvbnMucGFuZWxDbGFzcyB3aW5zOyBvdGhlcndpc2UgbWFwIHBhbmVsQ2xhc3NOYW1lLlxuICAgIGNvbnN0IHJlc29sdmVkUGFuZWxDbGFzcyA9IHRoaXMub3ZlcmxheU9wdGlvbnM/LnBhbmVsQ2xhc3NcbiAgICAgID8/ICh0aGlzLnBhbmVsQ2xhc3NOYW1lID8gW1pfSU5ERVgucG9wb3ZlciwgdGhpcy5wYW5lbENsYXNzTmFtZV0gOiBbWl9JTkRFWC5wb3BvdmVyXSk7XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgLy8gQ29uc3VtZXIgb3ZlcnJpZGVzIGFyZSBzcHJlYWQgbGFzdCDigJQgdGhleSB3aW4gb3ZlciBldmVyeSBkZWZhdWx0IGFib3ZlLlxuICAgICAgLi4udGhpcy5vdmVybGF5T3B0aW9ucyxcbiAgICAgIC8vIHBhbmVsQ2xhc3MgYWx3YXlzIG92ZXJyaWRlcyBsYXN0OiBpdCBhbHJlYWR5IG1lcmdlcyBwYW5lbENsYXNzTmFtZSArIG92ZXJsYXlPcHRpb25zLlxuICAgICAgcGFuZWxDbGFzczogcmVzb2x2ZWRQYW5lbENsYXNzXG4gICAgfSk7XG5cbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5wYW5lbFRlbXBsYXRlUmVmLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblxuICAgIHRoaXMuYmFja2Ryb3BTdWIgPSB0aGlzLm92ZXJsYXlSZWYub3V0c2lkZVBvaW50ZXJFdmVudHMoKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgTm9kZTtcbiAgICAgIGlmICghdHJpZ2dlckVsLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VQYW5lbCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3ZlcmxheVJlZikgcmV0dXJuO1xuXG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5kZXN0cm95T3ZlcmxheSgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95T3ZlcmxheSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5iYWNrZHJvcFN1Yikge1xuICAgICAgdGhpcy5iYWNrZHJvcFN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5iYWNrZHJvcFN1YiA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuIiwiPGJ1dHRvblxuICAjdHJpZ2dlckVsXG4gIHR5cGU9XCJidXR0b25cIlxuICBbbmdDbGFzc109XCJbXG4gICAgJ2lubGluZS1mbGV4IGgtOSBhcHBlYXJhbmNlLW5vbmUgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIHB4LTQgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZCBzaGFkb3ctc20gcmluZy1vZmZzZXQtYmFja2dyb3VuZCB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZyBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LTInLFxuICAgIGNsYXNzTmFtZVxuICBdXCJcbiAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuXCJcbiAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbj5cbiAge3sgdHJpZ2dlclRleHQgfX1cbjwvYnV0dG9uPlxuXG48bmctdGVtcGxhdGUgI3BhbmVsVGVtcGxhdGU+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1pbi13LTMyIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLXBvcG92ZXIgcC0xIHRleHQtcG9wb3Zlci1mb3JlZ3JvdW5kIHNoYWRvdy1tZFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJlc29sdmVkSXRlbXNcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdzZXBhcmF0b3InXCIgY2xhc3M9XCItbXgtMSBteS0xIGgtcHggYmctbXV0ZWRcIj48L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2xhYmVsJ1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIlsncHgtMiBweS0xLjUgdGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtZm9yZWdyb3VuZCcsIGl0ZW0uaW5zZXQgPyAncGwtOCcgOiAnJ11cIlxuICAgICAgPlxuICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIiFpdGVtLnR5cGUgfHwgaXRlbS50eXBlID09PSAnaXRlbSdcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICBbbmdDbGFzc109XCJbXG4gICAgICAgICAgJ3JlbGF0aXZlIGZsZXggdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSBjdXJzb3ItZGVmYXVsdCBzZWxlY3Qtbm9uZSBpdGVtcy1jZW50ZXIgZ2FwLTIgcm91bmRlZC1zbSBib3JkZXItMCBiZy10cmFuc3BhcmVudCBweC0yIHB5LTEuNSB0ZXh0LWxlZnQgdGV4dC1zbSB0ZXh0LWZvcmVncm91bmQgb3V0bGluZS1ub25lIHRyYW5zaXRpb24tY29sb3JzIGhvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIGZvY3VzLXZpc2libGU6YmctYWNjZW50IGZvY3VzLXZpc2libGU6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOm9wYWNpdHktNTAnLFxuICAgICAgICAgIGl0ZW0uaW5zZXQgPyAncGwtOCcgOiAnJ1xuICAgICAgICBdXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaW5saW5lLWZsZXggaC00IHctNCBzaHJpbmstMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uY2hlY2tlZFwiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiaC0zLjUgdy0zLjUgdGV4dC1mb3JlZ3JvdW5kXCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSAxMi41TDkuMiAxNi43TDE5IDdcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnJhZGlvU2VsZWN0ZWRcIiBjbGFzcz1cImgtMiB3LTIgcm91bmRlZC1mdWxsIGJnLWZvcmVncm91bmRcIj48L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtaW4tdy0wIGZsZXgtMSB0cnVuY2F0ZVwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5zaG9ydGN1dFwiIGNsYXNzPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBpdGVtLnNob3J0Y3V0IH19PC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0uc2hvd0NoZXZyb25cIiBjbGFzcz1cInRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+4oC6PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -26,10 +26,10 @@ export class PdmHoverCardComponent {
26
26
  }
27
27
  }
28
28
  PdmHoverCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmHoverCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
- PdmHoverCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmHoverCardComponent, selector: "pdm-hover-card", inputs: { className: "className", panelClassName: "panelClassName", side: "side", align: "align", panelWidth: "panelWidth" }, ngImport: i0, template: "<div\n class=\"relative inline-flex\"\n [ngClass]=\"className\"\n (mouseenter)=\"open = true\"\n (mouseleave)=\"open = false\"\n (focusin)=\"open = true\"\n (focusout)=\"open = false\"\n>\n <div>\n <ng-content select=\"[pdmHoverTrigger]\"></ng-content>\n </div>\n\n <section\n *ngIf=\"open\"\n [style.width.px]=\"panelWidth\"\n [ngClass]=\"[\n 'absolute z-30 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md',\n positionClass,\n panelClassName\n ]\"\n >\n <ng-content select=\"[pdmHoverContent]\"></ng-content>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
29
+ PdmHoverCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmHoverCardComponent, selector: "pdm-hover-card", inputs: { className: "className", panelClassName: "panelClassName", side: "side", align: "align", panelWidth: "panelWidth" }, ngImport: i0, template: "<div\n class=\"relative inline-flex\"\n [ngClass]=\"className\"\n (mouseenter)=\"open = true\"\n (mouseleave)=\"open = false\"\n (focusin)=\"open = true\"\n (focusout)=\"open = false\"\n>\n <div>\n <ng-content select=\"[pdmHoverTrigger]\"></ng-content>\n </div>\n\n <section\n *ngIf=\"open\"\n [style.width.px]=\"panelWidth\"\n [ngClass]=\"[\n 'absolute z-[70] rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md',\n positionClass,\n panelClassName\n ]\"\n >\n <ng-content select=\"[pdmHoverContent]\"></ng-content>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmHoverCardComponent, decorators: [{
31
31
  type: Component,
32
- args: [{ selector: 'pdm-hover-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"relative inline-flex\"\n [ngClass]=\"className\"\n (mouseenter)=\"open = true\"\n (mouseleave)=\"open = false\"\n (focusin)=\"open = true\"\n (focusout)=\"open = false\"\n>\n <div>\n <ng-content select=\"[pdmHoverTrigger]\"></ng-content>\n </div>\n\n <section\n *ngIf=\"open\"\n [style.width.px]=\"panelWidth\"\n [ngClass]=\"[\n 'absolute z-30 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md',\n positionClass,\n panelClassName\n ]\"\n >\n <ng-content select=\"[pdmHoverContent]\"></ng-content>\n </section>\n</div>\n" }]
32
+ args: [{ selector: 'pdm-hover-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"relative inline-flex\"\n [ngClass]=\"className\"\n (mouseenter)=\"open = true\"\n (mouseleave)=\"open = false\"\n (focusin)=\"open = true\"\n (focusout)=\"open = false\"\n>\n <div>\n <ng-content select=\"[pdmHoverTrigger]\"></ng-content>\n </div>\n\n <section\n *ngIf=\"open\"\n [style.width.px]=\"panelWidth\"\n [ngClass]=\"[\n 'absolute z-[70] rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md',\n positionClass,\n panelClassName\n ]\"\n >\n <ng-content select=\"[pdmHoverContent]\"></ng-content>\n </section>\n</div>\n" }]
33
33
  }], propDecorators: { className: [{
34
34
  type: Input
35
35
  }], panelClassName: [{
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
41
41
  }], panelWidth: [{
42
42
  type: Input
43
43
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaG92ZXItY2FyZC9ob3Zlci1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9ob3Zlci1jYXJkL2hvdmVyLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVUxRSxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBTVcsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLFNBQUksR0FBcUIsUUFBUSxDQUFDO1FBQ2xDLFVBQUssR0FBc0IsT0FBTyxDQUFDO1FBQ25DLGVBQVUsR0FBRyxHQUFHLENBQUM7UUFFMUIsU0FBSSxHQUFHLEtBQUssQ0FBQztLQWtCZDtJQWhCQyxJQUFJLGFBQWE7UUFDZixNQUFNLFlBQVksR0FBcUM7WUFDckQsR0FBRyxFQUFFLGtCQUFrQjtZQUN2QixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLE1BQU0sRUFBRSxlQUFlO1lBQ3ZCLElBQUksRUFBRSxpQkFBaUI7U0FDeEIsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFzQztZQUN2RCxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTztZQUN6RSxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQywwQkFBMEI7WUFDaEgsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVU7U0FDNUUsQ0FBQztRQUVGLE9BQU8sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNuRSxDQUFDOztrSEF4QlUscUJBQXFCO3NHQUFyQixxQkFBcUIsb0xDVmxDLG1tQkF3QkE7MkZEZGEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGdCQUFnQixtQkFFVCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgUGRtSG92ZXJDYXJkU2lkZSA9ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnO1xuZXhwb3J0IHR5cGUgUGRtSG92ZXJDYXJkQWxpZ24gPSAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLWhvdmVyLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaG92ZXItY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbUhvdmVyQ2FyZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuICBASW5wdXQoKSBwYW5lbENsYXNzTmFtZSA9ICcnO1xuICBASW5wdXQoKSBzaWRlOiBQZG1Ib3ZlckNhcmRTaWRlID0gJ2JvdHRvbSc7XG4gIEBJbnB1dCgpIGFsaWduOiBQZG1Ib3ZlckNhcmRBbGlnbiA9ICdzdGFydCc7XG4gIEBJbnB1dCgpIHBhbmVsV2lkdGggPSAzMDQ7XG5cbiAgb3BlbiA9IGZhbHNlO1xuXG4gIGdldCBwb3NpdGlvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2lkZUNsYXNzTWFwOiBSZWNvcmQ8UGRtSG92ZXJDYXJkU2lkZSwgc3RyaW5nPiA9IHtcbiAgICAgIHRvcDogJ2JvdHRvbS1mdWxsIG1iLTInLFxuICAgICAgcmlnaHQ6ICdsZWZ0LWZ1bGwgbWwtMicsXG4gICAgICBib3R0b206ICd0b3AtZnVsbCBtdC0yJyxcbiAgICAgIGxlZnQ6ICdyaWdodC1mdWxsIG1yLTInXG4gICAgfTtcblxuICAgIGNvbnN0IGFsaWduQ2xhc3NNYXA6IFJlY29yZDxQZG1Ib3ZlckNhcmRBbGlnbiwgc3RyaW5nPiA9IHtcbiAgICAgIHN0YXJ0OiB0aGlzLnNpZGUgPT09ICd0b3AnIHx8IHRoaXMuc2lkZSA9PT0gJ2JvdHRvbScgPyAnbGVmdC0wJyA6ICd0b3AtMCcsXG4gICAgICBjZW50ZXI6IHRoaXMuc2lkZSA9PT0gJ3RvcCcgfHwgdGhpcy5zaWRlID09PSAnYm90dG9tJyA/ICdsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtMS8yJyA6ICd0b3AtMS8yIC10cmFuc2xhdGUteS0xLzInLFxuICAgICAgZW5kOiB0aGlzLnNpZGUgPT09ICd0b3AnIHx8IHRoaXMuc2lkZSA9PT0gJ2JvdHRvbScgPyAncmlnaHQtMCcgOiAnYm90dG9tLTAnXG4gICAgfTtcblxuICAgIHJldHVybiBgJHtzaWRlQ2xhc3NNYXBbdGhpcy5zaWRlXX0gJHthbGlnbkNsYXNzTWFwW3RoaXMuYWxpZ25dfWA7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJyZWxhdGl2ZSBpbmxpbmUtZmxleFwiXG4gIFtuZ0NsYXNzXT1cImNsYXNzTmFtZVwiXG4gIChtb3VzZWVudGVyKT1cIm9wZW4gPSB0cnVlXCJcbiAgKG1vdXNlbGVhdmUpPVwib3BlbiA9IGZhbHNlXCJcbiAgKGZvY3VzaW4pPVwib3BlbiA9IHRydWVcIlxuICAoZm9jdXNvdXQpPVwib3BlbiA9IGZhbHNlXCJcbj5cbiAgPGRpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcGRtSG92ZXJUcmlnZ2VyXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG5cbiAgPHNlY3Rpb25cbiAgICAqbmdJZj1cIm9wZW5cIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCJwYW5lbFdpZHRoXCJcbiAgICBbbmdDbGFzc109XCJbXG4gICAgICAnYWJzb2x1dGUgei0zMCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLXBvcG92ZXIgcC00IHRleHQtcG9wb3Zlci1mb3JlZ3JvdW5kIHNoYWRvdy1tZCcsXG4gICAgICBwb3NpdGlvbkNsYXNzLFxuICAgICAgcGFuZWxDbGFzc05hbWVcbiAgICBdXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwZG1Ib3ZlckNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICA8L3NlY3Rpb24+XG48L2Rpdj5cbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaG92ZXItY2FyZC9ob3Zlci1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9ob3Zlci1jYXJkL2hvdmVyLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVUxRSxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBTVcsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLFNBQUksR0FBcUIsUUFBUSxDQUFDO1FBQ2xDLFVBQUssR0FBc0IsT0FBTyxDQUFDO1FBQ25DLGVBQVUsR0FBRyxHQUFHLENBQUM7UUFFMUIsU0FBSSxHQUFHLEtBQUssQ0FBQztLQWtCZDtJQWhCQyxJQUFJLGFBQWE7UUFDZixNQUFNLFlBQVksR0FBcUM7WUFDckQsR0FBRyxFQUFFLGtCQUFrQjtZQUN2QixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLE1BQU0sRUFBRSxlQUFlO1lBQ3ZCLElBQUksRUFBRSxpQkFBaUI7U0FDeEIsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFzQztZQUN2RCxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTztZQUN6RSxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQywwQkFBMEI7WUFDaEgsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVU7U0FDNUUsQ0FBQztRQUVGLE9BQU8sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNuRSxDQUFDOztrSEF4QlUscUJBQXFCO3NHQUFyQixxQkFBcUIsb0xDVmxDLHFtQkF3QkE7MkZEZGEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGdCQUFnQixtQkFFVCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgUGRtSG92ZXJDYXJkU2lkZSA9ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnO1xuZXhwb3J0IHR5cGUgUGRtSG92ZXJDYXJkQWxpZ24gPSAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLWhvdmVyLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaG92ZXItY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbUhvdmVyQ2FyZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuICBASW5wdXQoKSBwYW5lbENsYXNzTmFtZSA9ICcnO1xuICBASW5wdXQoKSBzaWRlOiBQZG1Ib3ZlckNhcmRTaWRlID0gJ2JvdHRvbSc7XG4gIEBJbnB1dCgpIGFsaWduOiBQZG1Ib3ZlckNhcmRBbGlnbiA9ICdzdGFydCc7XG4gIEBJbnB1dCgpIHBhbmVsV2lkdGggPSAzMDQ7XG5cbiAgb3BlbiA9IGZhbHNlO1xuXG4gIGdldCBwb3NpdGlvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2lkZUNsYXNzTWFwOiBSZWNvcmQ8UGRtSG92ZXJDYXJkU2lkZSwgc3RyaW5nPiA9IHtcbiAgICAgIHRvcDogJ2JvdHRvbS1mdWxsIG1iLTInLFxuICAgICAgcmlnaHQ6ICdsZWZ0LWZ1bGwgbWwtMicsXG4gICAgICBib3R0b206ICd0b3AtZnVsbCBtdC0yJyxcbiAgICAgIGxlZnQ6ICdyaWdodC1mdWxsIG1yLTInXG4gICAgfTtcblxuICAgIGNvbnN0IGFsaWduQ2xhc3NNYXA6IFJlY29yZDxQZG1Ib3ZlckNhcmRBbGlnbiwgc3RyaW5nPiA9IHtcbiAgICAgIHN0YXJ0OiB0aGlzLnNpZGUgPT09ICd0b3AnIHx8IHRoaXMuc2lkZSA9PT0gJ2JvdHRvbScgPyAnbGVmdC0wJyA6ICd0b3AtMCcsXG4gICAgICBjZW50ZXI6IHRoaXMuc2lkZSA9PT0gJ3RvcCcgfHwgdGhpcy5zaWRlID09PSAnYm90dG9tJyA/ICdsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtMS8yJyA6ICd0b3AtMS8yIC10cmFuc2xhdGUteS0xLzInLFxuICAgICAgZW5kOiB0aGlzLnNpZGUgPT09ICd0b3AnIHx8IHRoaXMuc2lkZSA9PT0gJ2JvdHRvbScgPyAncmlnaHQtMCcgOiAnYm90dG9tLTAnXG4gICAgfTtcblxuICAgIHJldHVybiBgJHtzaWRlQ2xhc3NNYXBbdGhpcy5zaWRlXX0gJHthbGlnbkNsYXNzTWFwW3RoaXMuYWxpZ25dfWA7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJyZWxhdGl2ZSBpbmxpbmUtZmxleFwiXG4gIFtuZ0NsYXNzXT1cImNsYXNzTmFtZVwiXG4gIChtb3VzZWVudGVyKT1cIm9wZW4gPSB0cnVlXCJcbiAgKG1vdXNlbGVhdmUpPVwib3BlbiA9IGZhbHNlXCJcbiAgKGZvY3VzaW4pPVwib3BlbiA9IHRydWVcIlxuICAoZm9jdXNvdXQpPVwib3BlbiA9IGZhbHNlXCJcbj5cbiAgPGRpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcGRtSG92ZXJUcmlnZ2VyXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG5cbiAgPHNlY3Rpb25cbiAgICAqbmdJZj1cIm9wZW5cIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCJwYW5lbFdpZHRoXCJcbiAgICBbbmdDbGFzc109XCJbXG4gICAgICAnYWJzb2x1dGUgei1bNzBdIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctcG9wb3ZlciBwLTQgdGV4dC1wb3BvdmVyLWZvcmVncm91bmQgc2hhZG93LW1kJyxcbiAgICAgIHBvc2l0aW9uQ2xhc3MsXG4gICAgICBwYW5lbENsYXNzTmFtZVxuICAgIF1cIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3BkbUhvdmVyQ29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19
@@ -51,10 +51,10 @@ export class PdmMenubarComponent {
51
51
  }
52
52
  }
53
53
  PdmMenubarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmMenubarComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
54
- PdmMenubarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmMenubarComponent, selector: "pdm-menubar", inputs: { menus: "menus", className: "className" }, outputs: { itemSelect: "itemSelect" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<nav role=\"menubar\" [ngClass]=\"['inline-flex h-9 items-center gap-0.5 rounded-md border border-border bg-background p-1 shadow-sm', className]\">\n <div *ngFor=\"let menu of menus; let i = index\" class=\"relative\">\n <button type=\"button\" class=\"inline-flex h-7 appearance-none items-center rounded-sm border-0 bg-transparent px-3 text-sm text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\" (click)=\"toggle(i)\">{{ menu.label }}</button>\n <div *ngIf=\"openIndex === i\" class=\"absolute left-0 top-full z-50 mt-1 min-w-48 rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md\">\n <button\n *ngFor=\"let item of menu.items\"\n type=\"button\"\n [disabled]=\"item.disabled || !item.value\"\n class=\"relative flex w-full appearance-none cursor-default select-none items-center rounded-sm border-0 bg-transparent px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\"\n (click)=\"selectItem(item)\"\n >\n {{ item.label }}\n </button>\n </div>\n </div>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
+ PdmMenubarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmMenubarComponent, selector: "pdm-menubar", inputs: { menus: "menus", className: "className" }, outputs: { itemSelect: "itemSelect" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<nav role=\"menubar\" [ngClass]=\"['inline-flex h-9 items-center gap-0.5 rounded-md border border-border bg-background p-1 shadow-sm', className]\">\n <div *ngFor=\"let menu of menus; let i = index\" class=\"relative\">\n <button type=\"button\" class=\"inline-flex h-7 appearance-none items-center rounded-sm border-0 bg-transparent px-3 text-sm text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\" (click)=\"toggle(i)\">{{ menu.label }}</button>\n <div *ngIf=\"openIndex === i\" class=\"absolute left-0 top-full z-[70] mt-1 min-w-40 rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md sm:min-w-48\">\n <button\n *ngFor=\"let item of menu.items\"\n type=\"button\"\n [disabled]=\"item.disabled || !item.value\"\n class=\"relative flex w-full appearance-none cursor-default select-none items-center rounded-sm border-0 bg-transparent px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\"\n (click)=\"selectItem(item)\"\n >\n {{ item.label }}\n </button>\n </div>\n </div>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmMenubarComponent, decorators: [{
56
56
  type: Component,
57
- args: [{ selector: 'pdm-menubar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav role=\"menubar\" [ngClass]=\"['inline-flex h-9 items-center gap-0.5 rounded-md border border-border bg-background p-1 shadow-sm', className]\">\n <div *ngFor=\"let menu of menus; let i = index\" class=\"relative\">\n <button type=\"button\" class=\"inline-flex h-7 appearance-none items-center rounded-sm border-0 bg-transparent px-3 text-sm text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\" (click)=\"toggle(i)\">{{ menu.label }}</button>\n <div *ngIf=\"openIndex === i\" class=\"absolute left-0 top-full z-50 mt-1 min-w-48 rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md\">\n <button\n *ngFor=\"let item of menu.items\"\n type=\"button\"\n [disabled]=\"item.disabled || !item.value\"\n class=\"relative flex w-full appearance-none cursor-default select-none items-center rounded-sm border-0 bg-transparent px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\"\n (click)=\"selectItem(item)\"\n >\n {{ item.label }}\n </button>\n </div>\n </div>\n</nav>\n" }]
57
+ args: [{ selector: 'pdm-menubar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav role=\"menubar\" [ngClass]=\"['inline-flex h-9 items-center gap-0.5 rounded-md border border-border bg-background p-1 shadow-sm', className]\">\n <div *ngFor=\"let menu of menus; let i = index\" class=\"relative\">\n <button type=\"button\" class=\"inline-flex h-7 appearance-none items-center rounded-sm border-0 bg-transparent px-3 text-sm text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\" (click)=\"toggle(i)\">{{ menu.label }}</button>\n <div *ngIf=\"openIndex === i\" class=\"absolute left-0 top-full z-[70] mt-1 min-w-40 rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md sm:min-w-48\">\n <button\n *ngFor=\"let item of menu.items\"\n type=\"button\"\n [disabled]=\"item.disabled || !item.value\"\n class=\"relative flex w-full appearance-none cursor-default select-none items-center rounded-sm border-0 bg-transparent px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\"\n (click)=\"selectItem(item)\"\n >\n {{ item.label }}\n </button>\n </div>\n </div>\n</nav>\n" }]
58
58
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { menus: [{
59
59
  type: Input
60
60
  }], className: [{
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
65
65
  type: HostListener,
66
66
  args: ['document:keydown.escape']
67
67
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDOzs7QUFhdkIsTUFBTSxPQUFPLG1CQUFtQjtJQVM5QixZQUNtQixVQUFtQyxFQUNuQyxHQUFzQjtRQUR0QixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVZoQyxVQUFLLEdBQXFCLEVBQUUsQ0FBQztRQUM3QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2QsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFbEQsY0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBT1osQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkYsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDdkY7SUFDSCxDQUFDO0lBR0QsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDekQsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFpQjtRQUMxQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2hDLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxLQUFtQjtRQUMvQyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFFL0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRXBCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7Z0hBNURVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDZNQ3hCaEMsMHpDQWdCQTsyRkRRYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYSxtQkFFTix1QkFBdUIsQ0FBQyxNQUFNO2lJQUd0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQXVCUCxLQUFLO3NCQURKLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBkbU1lbnVJdGVtIH0gZnJvbSAnLi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGRtTWVudWJhckl0ZW0ge1xuICBsYWJlbDogc3RyaW5nO1xuICBpdGVtczogUGRtTWVudUl0ZW1bXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLW1lbnViYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudWJhci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbU1lbnViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG1lbnVzOiBQZG1NZW51YmFySXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuICBAT3V0cHV0KCkgaXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIG9wZW5JbmRleCA9IC0xO1xuXG4gIHByaXZhdGUgYm91bmRQb2ludGVyRG93biE6IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmJvdW5kUG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4gdGhpcy5vbkRvY3VtZW50UG9pbnRlckRvd24oZXZlbnQpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy5ib3VuZFBvaW50ZXJEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ib3VuZFBvaW50ZXJEb3duKSB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHRoaXMuYm91bmRQb2ludGVyRG93biwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJylcbiAgb25Fc2MoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3BlbkluZGV4ID49IDApIHtcbiAgICAgIHRoaXMub3BlbkluZGV4ID0gLTE7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMub3BlbkluZGV4ID0gdGhpcy5vcGVuSW5kZXggPT09IGluZGV4ID8gLTEgOiBpbmRleDtcbiAgfVxuXG4gIHNlbGVjdCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtU2VsZWN0LmVtaXQodmFsdWUpO1xuICAgIHRoaXMub3BlbkluZGV4ID0gLTE7XG4gIH1cblxuICBzZWxlY3RJdGVtKGl0ZW06IFBkbU1lbnVJdGVtKTogdm9pZCB7XG4gICAgaWYgKGl0ZW0uZGlzYWJsZWQgfHwgIWl0ZW0udmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdChpdGVtLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Eb2N1bWVudFBvaW50ZXJEb3duKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcGVuSW5kZXggPCAwKSByZXR1cm47XG5cbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgTm9kZSB8IG51bGw7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcblxuICAgIGlmICghdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgdGhpcy5vcGVuSW5kZXggPSAtMTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxufVxuIiwiPG5hdiByb2xlPVwibWVudWJhclwiIFtuZ0NsYXNzXT1cIlsnaW5saW5lLWZsZXggaC05IGl0ZW1zLWNlbnRlciBnYXAtMC41IHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCBwLTEgc2hhZG93LXNtJywgY2xhc3NOYW1lXVwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBtZW51IG9mIG1lbnVzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaW5saW5lLWZsZXggaC03IGFwcGVhcmFuY2Utbm9uZSBpdGVtcy1jZW50ZXIgcm91bmRlZC1zbSBib3JkZXItMCBiZy10cmFuc3BhcmVudCBweC0zIHRleHQtc20gdGV4dC1mb3JlZ3JvdW5kIGhvdmVyOmJnLWFjY2VudCBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZyBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LTIgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC1iYWNrZ3JvdW5kXCIgKGNsaWNrKT1cInRvZ2dsZShpKVwiPnt7IG1lbnUubGFiZWwgfX08L2J1dHRvbj5cbiAgICA8ZGl2ICpuZ0lmPVwib3BlbkluZGV4ID09PSBpXCIgY2xhc3M9XCJhYnNvbHV0ZSBsZWZ0LTAgdG9wLWZ1bGwgei01MCBtdC0xIG1pbi13LTQ4IHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctcG9wb3ZlciBwLTEgdGV4dC1wb3BvdmVyLWZvcmVncm91bmQgc2hhZG93LW1kXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1lbnUuaXRlbXNcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWQgfHwgIWl0ZW0udmFsdWVcIlxuICAgICAgICBjbGFzcz1cInJlbGF0aXZlIGZsZXggdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSBjdXJzb3ItZGVmYXVsdCBzZWxlY3Qtbm9uZSBpdGVtcy1jZW50ZXIgcm91bmRlZC1zbSBib3JkZXItMCBiZy10cmFuc3BhcmVudCBweC0yIHB5LTEuNSB0ZXh0LXNtIG91dGxpbmUtbm9uZSB0cmFuc2l0aW9uLWNvbG9ycyBob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCBmb2N1cy12aXNpYmxlOmJnLWFjY2VudCBmb2N1cy12aXNpYmxlOnRleHQtYWNjZW50LWZvcmVncm91bmQgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgPlxuICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25hdj5cbiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDOzs7QUFhdkIsTUFBTSxPQUFPLG1CQUFtQjtJQVM5QixZQUNtQixVQUFtQyxFQUNuQyxHQUFzQjtRQUR0QixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVZoQyxVQUFLLEdBQXFCLEVBQUUsQ0FBQztRQUM3QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2QsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFbEQsY0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBT1osQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkYsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDdkY7SUFDSCxDQUFDO0lBR0QsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDekQsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFpQjtRQUMxQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2hDLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxLQUFtQjtRQUMvQyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFFL0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRXBCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7Z0hBNURVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDZNQ3hCaEMsdzBDQWdCQTsyRkRRYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYSxtQkFFTix1QkFBdUIsQ0FBQyxNQUFNO2lJQUd0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQXVCUCxLQUFLO3NCQURKLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBkbU1lbnVJdGVtIH0gZnJvbSAnLi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGRtTWVudWJhckl0ZW0ge1xuICBsYWJlbDogc3RyaW5nO1xuICBpdGVtczogUGRtTWVudUl0ZW1bXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLW1lbnViYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudWJhci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbU1lbnViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG1lbnVzOiBQZG1NZW51YmFySXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuICBAT3V0cHV0KCkgaXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIG9wZW5JbmRleCA9IC0xO1xuXG4gIHByaXZhdGUgYm91bmRQb2ludGVyRG93biE6IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmJvdW5kUG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4gdGhpcy5vbkRvY3VtZW50UG9pbnRlckRvd24oZXZlbnQpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy5ib3VuZFBvaW50ZXJEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ib3VuZFBvaW50ZXJEb3duKSB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHRoaXMuYm91bmRQb2ludGVyRG93biwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJylcbiAgb25Fc2MoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3BlbkluZGV4ID49IDApIHtcbiAgICAgIHRoaXMub3BlbkluZGV4ID0gLTE7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMub3BlbkluZGV4ID0gdGhpcy5vcGVuSW5kZXggPT09IGluZGV4ID8gLTEgOiBpbmRleDtcbiAgfVxuXG4gIHNlbGVjdCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtU2VsZWN0LmVtaXQodmFsdWUpO1xuICAgIHRoaXMub3BlbkluZGV4ID0gLTE7XG4gIH1cblxuICBzZWxlY3RJdGVtKGl0ZW06IFBkbU1lbnVJdGVtKTogdm9pZCB7XG4gICAgaWYgKGl0ZW0uZGlzYWJsZWQgfHwgIWl0ZW0udmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdChpdGVtLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Eb2N1bWVudFBvaW50ZXJEb3duKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcGVuSW5kZXggPCAwKSByZXR1cm47XG5cbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgTm9kZSB8IG51bGw7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcblxuICAgIGlmICghdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgdGhpcy5vcGVuSW5kZXggPSAtMTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxufVxuIiwiPG5hdiByb2xlPVwibWVudWJhclwiIFtuZ0NsYXNzXT1cIlsnaW5saW5lLWZsZXggaC05IGl0ZW1zLWNlbnRlciBnYXAtMC41IHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCBwLTEgc2hhZG93LXNtJywgY2xhc3NOYW1lXVwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBtZW51IG9mIG1lbnVzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaW5saW5lLWZsZXggaC03IGFwcGVhcmFuY2Utbm9uZSBpdGVtcy1jZW50ZXIgcm91bmRlZC1zbSBib3JkZXItMCBiZy10cmFuc3BhcmVudCBweC0zIHRleHQtc20gdGV4dC1mb3JlZ3JvdW5kIGhvdmVyOmJnLWFjY2VudCBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZyBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LTIgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC1iYWNrZ3JvdW5kXCIgKGNsaWNrKT1cInRvZ2dsZShpKVwiPnt7IG1lbnUubGFiZWwgfX08L2J1dHRvbj5cbiAgICA8ZGl2ICpuZ0lmPVwib3BlbkluZGV4ID09PSBpXCIgY2xhc3M9XCJhYnNvbHV0ZSBsZWZ0LTAgdG9wLWZ1bGwgei1bNzBdIG10LTEgbWluLXctNDAgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1wb3BvdmVyIHAtMSB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWQgc206bWluLXctNDhcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbWVudS5pdGVtc1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZCB8fCAhaXRlbS52YWx1ZVwiXG4gICAgICAgIGNsYXNzPVwicmVsYXRpdmUgZmxleCB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIGN1cnNvci1kZWZhdWx0IHNlbGVjdC1ub25lIGl0ZW1zLWNlbnRlciByb3VuZGVkLXNtIGJvcmRlci0wIGJnLXRyYW5zcGFyZW50IHB4LTIgcHktMS41IHRleHQtc20gb3V0bGluZS1ub25lIHRyYW5zaXRpb24tY29sb3JzIGhvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIGZvY3VzLXZpc2libGU6YmctYWNjZW50IGZvY3VzLXZpc2libGU6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOm9wYWNpdHktNTBcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtKVwiXG4gICAgICA+XG4gICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmF2PlxuIl19