@litigiovirtual/ius-design-components 1.0.74 → 1.0.76

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.
@@ -0,0 +1,238 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, Input, Output, EventEmitter, computed, signal, ViewChild } from '@angular/core';
3
+ import { PopoverDirective } from '../directives/popover.directive';
4
+ import * as i0 from "@angular/core";
5
+ export class IusChartsBarGroupedComponent {
6
+ constructor(zone, hostEl) {
7
+ this.zone = zone;
8
+ this.hostEl = hostEl;
9
+ this.data = [];
10
+ this.legendPosition = 'bottom';
11
+ this.ticks = 5;
12
+ // Fallbacks si no hay tamaño CSS externo
13
+ this.width = 640;
14
+ this.size = 320; // alto por defecto cuando el host no fija height
15
+ // Márgenes y layout X
16
+ this.margin = { top: 24, right: 16, bottom: 55, left: 40 };
17
+ this.barWidth = 11;
18
+ this.barGap = 2;
19
+ this.groupGap = 40;
20
+ this.outerGap = 18;
21
+ // Estilo barra
22
+ this.barRadius = 5;
23
+ this.maxLabelChars = 10;
24
+ this.barClick = new EventEmitter();
25
+ this.rafId = null;
26
+ // Estado
27
+ this._bars = signal([]);
28
+ this._groups = signal([]);
29
+ this._series = signal([]);
30
+ this._colors = signal({});
31
+ this._yMax = signal(0);
32
+ this._paneH = signal(0); // alto real del host (o fallback size)
33
+ this._plotW = signal(0); // ancho visible del contenedor scrolleable
34
+ this._plotWidth = signal(0); // ancho virtual del SVG derecho
35
+ this._groupCenters = signal([]);
36
+ this._barStripes = signal([]);
37
+ // Derivados
38
+ this.bars = computed(() => this._bars());
39
+ this.groups = computed(() => this._groups());
40
+ this.series = computed(() => this._series());
41
+ this.colors = computed(() => this._colors());
42
+ this.yScaleMax = computed(() => this._yMax());
43
+ this.chartHeight = computed(() => this._paneH() || this.size);
44
+ this.plotWidth = computed(() => this._plotWidth());
45
+ this.groupCenters = computed(() => this._groupCenters());
46
+ this.barStripes = computed(() => this._barStripes());
47
+ this.innerHeight = computed(() => Math.max(this.chartHeight() - this.margin.top - this.margin.bottom, 0));
48
+ this.axisViewBox = computed(() => `0 0 ${this.margin.left} ${this.chartHeight()}`);
49
+ this.plotViewBox = computed(() => `0 0 ${this.plotWidth()} ${this.chartHeight()}`);
50
+ this.Math = Math;
51
+ }
52
+ ngAfterViewInit() {
53
+ // Medición inicial en el próximo frame para evitar ExpressionChanged y loops
54
+ this.raf(() => {
55
+ this.measureNow();
56
+ this.recalc();
57
+ });
58
+ // Observa alto del HOST y ancho visible del plot, throttled por rAF
59
+ this.ro = new ResizeObserver(() => {
60
+ this.raf(() => {
61
+ const changed = this.measureNow();
62
+ if (changed)
63
+ this.recalc();
64
+ });
65
+ });
66
+ this.ro.observe(this.hostEl.nativeElement);
67
+ this.ro.observe(this.plotCtn.nativeElement);
68
+ }
69
+ ngOnDestroy() {
70
+ this.ro?.disconnect();
71
+ if (this.rafId !== null)
72
+ cancelAnimationFrame(this.rafId);
73
+ }
74
+ ngOnChanges() {
75
+ // Cambios de @Input disparan recálculo
76
+ this.recalc();
77
+ }
78
+ // ========= Medición =========
79
+ /** Ejecuta una tarea en el próximo frame dentro de Angular */
80
+ raf(fn) {
81
+ if (this.rafId !== null)
82
+ cancelAnimationFrame(this.rafId);
83
+ this.rafId = requestAnimationFrame(() => this.zone.run(fn));
84
+ }
85
+ /** Mide alto del host y ancho visible del plot. Devuelve true si cambió algo. */
86
+ measureNow() {
87
+ const hostH = Math.floor(this.hostEl.nativeElement.clientHeight || 0);
88
+ const paneH = hostH > 0 ? hostH : this.size;
89
+ const plotW = Math.floor(this.plotCtn?.nativeElement?.clientWidth || 0)
90
+ || (this.width - this.margin.left);
91
+ let changed = false;
92
+ if (paneH !== this._paneH()) {
93
+ this._paneH.set(paneH);
94
+ changed = true;
95
+ }
96
+ if (plotW !== this._plotW()) {
97
+ this._plotW.set(plotW);
98
+ changed = true;
99
+ }
100
+ return changed;
101
+ }
102
+ // ========= Layout & data =========
103
+ recalc() {
104
+ const cleaned = (this.data ?? [])
105
+ .map(g => ({ label: g.label, items: (g.items ?? []).filter(i => Number(i?.value) >= 0) }))
106
+ .filter(x => x.items.length > 0);
107
+ const groups = cleaned.map(g => g.label);
108
+ // series + orden
109
+ const seriesSet = new Set();
110
+ for (const g of cleaned)
111
+ for (const it of g.items)
112
+ seriesSet.add(it.label);
113
+ let series = Array.from(seriesSet);
114
+ if (this.seriesOrder?.length) {
115
+ const order = new Map(this.seriesOrder.map((k, idx) => [k, idx]));
116
+ series.sort((a, b) => (order.get(a) ?? 1e9) - (order.get(b) ?? 1e9));
117
+ }
118
+ // colores por serie
119
+ const palette = [
120
+ '#2167FF', // Info-500
121
+ '#0A2893', // Info-800
122
+ '#40CAE9', // Primary-400
123
+ '#5892FF', // Info-400
124
+ '#08A6DB', // Primary-500
125
+ '#C4DFFF', // Info-200
126
+ ];
127
+ const colorMap = {};
128
+ series.forEach((s, i) => (colorMap[s] = palette[i % palette.length]));
129
+ // normalizar
130
+ const normalized = cleaned.map(g => {
131
+ const map = new Map(g.items.map(i => [i.label, i]));
132
+ const items = series.map(s => {
133
+ const i = map.get(s);
134
+ return { label: s, value: i?.value ?? 0, color: i?.color ?? colorMap[s] };
135
+ });
136
+ return { label: g.label, items };
137
+ });
138
+ // Y máx
139
+ const maxValue = Math.max(0, ...normalized.flatMap(g => g.items.map(i => i.value)));
140
+ const yMax = this.yMax && this.yMax > 0 ? this.yMax : this.niceMax(maxValue);
141
+ this._yMax.set(yMax);
142
+ // Dimensiones visibles del panel derecho
143
+ const visibleW = this._plotW() || (this.width - this.margin.left);
144
+ // ===== Layout X con outerGap =====
145
+ const G = normalized.length;
146
+ const S = series.length;
147
+ const groupInnerWidth = S * this.barWidth + Math.max(0, S - 1) * this.barGap;
148
+ const innerNaturalWidth = Math.max(0, (this.outerGap * 2) + G * groupInnerWidth + Math.max(0, G - 1) * this.groupGap);
149
+ const innerVisibleWidth = Math.max(visibleW - this.margin.right, 0);
150
+ const innerVirtualWidth = Math.max(innerVisibleWidth, innerNaturalWidth);
151
+ const plotWidth = innerVirtualWidth + this.margin.right;
152
+ this._plotWidth.set(plotWidth);
153
+ // Construcción de barras + franjas
154
+ const ih = this.innerHeight();
155
+ const bars = [];
156
+ const centers = [];
157
+ const stripes = [];
158
+ let cursor = this.outerGap;
159
+ normalized.forEach(g => {
160
+ const startX = cursor;
161
+ const center = startX + groupInnerWidth / 2;
162
+ centers.push(center);
163
+ g.items.forEach((it, si) => {
164
+ const x = startX + si * (this.barWidth + this.barGap);
165
+ stripes.push({ x, width: this.barWidth }); // franja por barra
166
+ const h = it.value <= 0 ? 0 : (it.value / yMax) * ih;
167
+ const y = this.margin.top + ih - h;
168
+ bars.push({
169
+ groupLabel: g.label,
170
+ seriesLabel: it.label,
171
+ value: it.value,
172
+ x, y, width: this.barWidth, height: h,
173
+ color: it.color ?? colorMap[it.label]
174
+ });
175
+ });
176
+ cursor += groupInnerWidth + this.groupGap;
177
+ });
178
+ this._bars.set(bars);
179
+ this._groups.set(groups);
180
+ this._series.set(series);
181
+ this._colors.set(colorMap);
182
+ this._groupCenters.set(centers);
183
+ this._barStripes.set(stripes);
184
+ }
185
+ // ========= Helpers =========
186
+ niceMax(maxVal) {
187
+ if (maxVal <= 0)
188
+ return 1;
189
+ const exp = Math.floor(Math.log10(maxVal));
190
+ const base = Math.pow(10, exp);
191
+ const n = Math.ceil(maxVal / base);
192
+ const nice = n <= 2 ? 2 : n <= 5 ? 5 : 10;
193
+ return nice * base;
194
+ }
195
+ getY(value) {
196
+ const ih = this.innerHeight();
197
+ const max = this.yScaleMax();
198
+ return this.margin.top + ih - (value / max) * ih;
199
+ }
200
+ get yTicksArr() {
201
+ const max = this.yScaleMax();
202
+ const n = Math.max(2, this.ticks | 0);
203
+ const step = max / n;
204
+ const arr = [];
205
+ for (let i = 0; i <= n; i++)
206
+ arr.push(+((i * step)).toFixed(2));
207
+ return arr;
208
+ }
209
+ shortLabel(lbl) {
210
+ return lbl.length > this.maxLabelChars ? (lbl.slice(0, this.maxLabelChars - 1) + '…') : lbl;
211
+ }
212
+ formatTooltip(b) {
213
+ return `${b.seriesLabel}: ${b.value}`;
214
+ }
215
+ onBarClick(b) {
216
+ this.barClick.emit({ group: b.groupLabel, series: b.seriesLabel, value: b.value });
217
+ }
218
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IusChartsBarGroupedComponent, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
219
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: IusChartsBarGroupedComponent, isStandalone: true, selector: "ius-charts-bar-grouped", inputs: { data: "data", legendPosition: "legendPosition", seriesOrder: "seriesOrder", maxLabelChars: "maxLabelChars" }, outputs: { barClick: "barClick" }, viewQueries: [{ propertyName: "plotCtn", first: true, predicate: ["plotCtn"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"chart-wrapper\" [class.bottom]=\"legendPosition === 'bottom'\">\r\n <div class=\"panes\" #panes>\r\n <div class=\"axis-ctn\">\r\n <svg class=\"chart-axis\"\r\n [attr.viewBox]=\"axisViewBox()\"\r\n preserveAspectRatio=\"xMinYMin meet\"\r\n [style.width.px]=\"margin.left\"\r\n [style.height.px]=\"chartHeight()\">\r\n @for (t of yTicksArr; track t) {\r\n <text class=\"y-tick body-sm\"\r\n [attr.x]=\"margin.left - 6\"\r\n [attr.y]=\"getY(t)\"\r\n text-anchor=\"end\"\r\n dominant-baseline=\"middle\">\r\n {{ t }}\r\n </text>\r\n }\r\n </svg>\r\n </div>\r\n\r\n <div class=\"plot-ctn scrollable-small\" #plotCtn>\r\n <svg class=\"chart\"\r\n [attr.viewBox]=\"plotViewBox()\"\r\n preserveAspectRatio=\"xMinYMin meet\"\r\n [style.width.px]=\"plotWidth()\"\r\n [style.height.px]=\"chartHeight()\">\r\n\r\n @for (s of barStripes(); track s.x) {\r\n <rect class=\"bar-stripe\"\r\n [attr.x]=\"s.x\"\r\n [attr.y]=\"margin.top\"\r\n [attr.width]=\"s.width\"\r\n [attr.height]=\"innerHeight()\"></rect>\r\n }\r\n\r\n @for (t of yTicksArr; track t) {\r\n <line class=\"grid-line\"\r\n [attr.x1]=\"0\"\r\n [attr.x2]=\"plotWidth() - margin.right\"\r\n [attr.y1]=\"getY(t)\" [attr.y2]=\"getY(t)\"/>\r\n }\r\n\r\n @for (g of groups(); track g; let i = $index) {\r\n <text class=\"x-label body-sm\"\r\n [attr.x]=\"groupCenters()[i]\"\r\n [attr.y]=\"chartHeight() - margin.bottom + 6\"\r\n text-anchor=\"middle\"\r\n dominant-baseline=\"hanging\"\r\n [iusPopoverContent]=\"g\">\r\n {{ shortLabel(g) }}\r\n </text>\r\n }\r\n\r\n @for (b of bars(); track b.groupLabel + ' - ' + b.seriesLabel) {\r\n <rect class=\"bar\"\r\n [attr.x]=\"b.x\"\r\n [attr.y]=\"b.y\"\r\n [attr.width]=\"b.width\"\r\n [attr.height]=\"Math.max(b.height, 0)\"\r\n [attr.fill]=\"b.color\"\r\n [attr.rx]=\"barRadius\"\r\n [attr.ry]=\"barRadius\"\r\n [iusPopoverContent]=\"formatTooltip(b)\"\r\n (click)=\"onBarClick(b)\"/>\r\n }\r\n </svg>\r\n </div>\r\n </div>\r\n\r\n <!-- Leyenda -->\r\n <div class=\"legend\" [class.bottom]=\"legendPosition === 'bottom'\">\r\n @for (s of series(); track s) {\r\n <div class=\"legend-item\">\r\n <span class=\"dot\" [style.background]=\"colors()[s]\"></span>\r\n <span class=\"label caption-sm\" [iusPopoverContent]=\"s\">{{ s }}</span>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}:host{display:block;max-width:100%;min-height:0}.chart-wrapper{display:grid;grid-template-columns:1fr auto;column-gap:16px;height:100%;min-height:0;align-items:start}.chart-wrapper.bottom{grid-template-columns:1fr;grid-template-rows:1fr auto;row-gap:12px}.panes{display:grid;grid-template-columns:auto 1fr;height:100%;min-height:0}.axis-ctn{height:100%;min-height:0;overflow:hidden}.plot-ctn{width:100%;height:100%;min-height:0;overflow-x:auto;overflow-y:hidden}.chart-wrapper,.panes,.axis-ctn,.plot-ctn{min-height:0}.chart,.chart-axis{display:block}.grid-line{stroke:#1f293729;stroke-width:1;stroke-dasharray:3 3}.y-tick,.x-label{fill:#000000b3}.bar-stripe{fill:#d6dbed66;pointer-events:none}.bar{cursor:pointer;transition:opacity .15s ease,transform .15s ease;pointer-events:all}.bar:hover{opacity:.9}.bar:focus{outline:none;filter:drop-shadow(0 0 2px rgba(0,0,0,.2))}.legend{display:flex;justify-content:center;flex-direction:column;gap:8px;min-width:0}.legend.bottom{flex-direction:row;flex-wrap:wrap}.legend .legend-item{display:flex;align-items:center;gap:8px;min-width:0;white-space:nowrap}.legend .dot{width:8px;height:8px;border-radius:8px;flex:0 0 8px}.legend .label{color:#595959;min-width:0;overflow:hidden;text-overflow:ellipsis}.plot-ctn.scrollable-small::-webkit-scrollbar{-webkit-appearance:none}.plot-ctn.scrollable-small::-webkit-scrollbar:vertical{width:4px;height:32px;padding-top:2px;padding-bottom:2px}.plot-ctn.scrollable-small::-webkit-scrollbar:horizontal{height:5px;padding-top:2px;padding-bottom:2px}.plot-ctn.scrollable-small::-webkit-scrollbar-thumb{background-color:#bfbfbf;border-radius:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PopoverDirective, selector: "[iusPopover], [iusPopoverTitle], [iusPopoverContent]", inputs: ["iusPopover", "iusPopoverTitle", "iusPopoverContent", "iusPopoverPosition", "iusPopoverOpenDelay", "iusPopoverCloseDelay"] }] }); }
220
+ }
221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IusChartsBarGroupedComponent, decorators: [{
222
+ type: Component,
223
+ args: [{ selector: 'ius-charts-bar-grouped', standalone: true, imports: [CommonModule, PopoverDirective], template: "<div class=\"chart-wrapper\" [class.bottom]=\"legendPosition === 'bottom'\">\r\n <div class=\"panes\" #panes>\r\n <div class=\"axis-ctn\">\r\n <svg class=\"chart-axis\"\r\n [attr.viewBox]=\"axisViewBox()\"\r\n preserveAspectRatio=\"xMinYMin meet\"\r\n [style.width.px]=\"margin.left\"\r\n [style.height.px]=\"chartHeight()\">\r\n @for (t of yTicksArr; track t) {\r\n <text class=\"y-tick body-sm\"\r\n [attr.x]=\"margin.left - 6\"\r\n [attr.y]=\"getY(t)\"\r\n text-anchor=\"end\"\r\n dominant-baseline=\"middle\">\r\n {{ t }}\r\n </text>\r\n }\r\n </svg>\r\n </div>\r\n\r\n <div class=\"plot-ctn scrollable-small\" #plotCtn>\r\n <svg class=\"chart\"\r\n [attr.viewBox]=\"plotViewBox()\"\r\n preserveAspectRatio=\"xMinYMin meet\"\r\n [style.width.px]=\"plotWidth()\"\r\n [style.height.px]=\"chartHeight()\">\r\n\r\n @for (s of barStripes(); track s.x) {\r\n <rect class=\"bar-stripe\"\r\n [attr.x]=\"s.x\"\r\n [attr.y]=\"margin.top\"\r\n [attr.width]=\"s.width\"\r\n [attr.height]=\"innerHeight()\"></rect>\r\n }\r\n\r\n @for (t of yTicksArr; track t) {\r\n <line class=\"grid-line\"\r\n [attr.x1]=\"0\"\r\n [attr.x2]=\"plotWidth() - margin.right\"\r\n [attr.y1]=\"getY(t)\" [attr.y2]=\"getY(t)\"/>\r\n }\r\n\r\n @for (g of groups(); track g; let i = $index) {\r\n <text class=\"x-label body-sm\"\r\n [attr.x]=\"groupCenters()[i]\"\r\n [attr.y]=\"chartHeight() - margin.bottom + 6\"\r\n text-anchor=\"middle\"\r\n dominant-baseline=\"hanging\"\r\n [iusPopoverContent]=\"g\">\r\n {{ shortLabel(g) }}\r\n </text>\r\n }\r\n\r\n @for (b of bars(); track b.groupLabel + ' - ' + b.seriesLabel) {\r\n <rect class=\"bar\"\r\n [attr.x]=\"b.x\"\r\n [attr.y]=\"b.y\"\r\n [attr.width]=\"b.width\"\r\n [attr.height]=\"Math.max(b.height, 0)\"\r\n [attr.fill]=\"b.color\"\r\n [attr.rx]=\"barRadius\"\r\n [attr.ry]=\"barRadius\"\r\n [iusPopoverContent]=\"formatTooltip(b)\"\r\n (click)=\"onBarClick(b)\"/>\r\n }\r\n </svg>\r\n </div>\r\n </div>\r\n\r\n <!-- Leyenda -->\r\n <div class=\"legend\" [class.bottom]=\"legendPosition === 'bottom'\">\r\n @for (s of series(); track s) {\r\n <div class=\"legend-item\">\r\n <span class=\"dot\" [style.background]=\"colors()[s]\"></span>\r\n <span class=\"label caption-sm\" [iusPopoverContent]=\"s\">{{ s }}</span>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}:host{display:block;max-width:100%;min-height:0}.chart-wrapper{display:grid;grid-template-columns:1fr auto;column-gap:16px;height:100%;min-height:0;align-items:start}.chart-wrapper.bottom{grid-template-columns:1fr;grid-template-rows:1fr auto;row-gap:12px}.panes{display:grid;grid-template-columns:auto 1fr;height:100%;min-height:0}.axis-ctn{height:100%;min-height:0;overflow:hidden}.plot-ctn{width:100%;height:100%;min-height:0;overflow-x:auto;overflow-y:hidden}.chart-wrapper,.panes,.axis-ctn,.plot-ctn{min-height:0}.chart,.chart-axis{display:block}.grid-line{stroke:#1f293729;stroke-width:1;stroke-dasharray:3 3}.y-tick,.x-label{fill:#000000b3}.bar-stripe{fill:#d6dbed66;pointer-events:none}.bar{cursor:pointer;transition:opacity .15s ease,transform .15s ease;pointer-events:all}.bar:hover{opacity:.9}.bar:focus{outline:none;filter:drop-shadow(0 0 2px rgba(0,0,0,.2))}.legend{display:flex;justify-content:center;flex-direction:column;gap:8px;min-width:0}.legend.bottom{flex-direction:row;flex-wrap:wrap}.legend .legend-item{display:flex;align-items:center;gap:8px;min-width:0;white-space:nowrap}.legend .dot{width:8px;height:8px;border-radius:8px;flex:0 0 8px}.legend .label{color:#595959;min-width:0;overflow:hidden;text-overflow:ellipsis}.plot-ctn.scrollable-small::-webkit-scrollbar{-webkit-appearance:none}.plot-ctn.scrollable-small::-webkit-scrollbar:vertical{width:4px;height:32px;padding-top:2px;padding-bottom:2px}.plot-ctn.scrollable-small::-webkit-scrollbar:horizontal{height:5px;padding-top:2px;padding-bottom:2px}.plot-ctn.scrollable-small::-webkit-scrollbar-thumb{background-color:#bfbfbf;border-radius:4px}\n"] }]
224
+ }], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ElementRef }], propDecorators: { data: [{
225
+ type: Input
226
+ }], legendPosition: [{
227
+ type: Input
228
+ }], seriesOrder: [{
229
+ type: Input
230
+ }], maxLabelChars: [{
231
+ type: Input
232
+ }], barClick: [{
233
+ type: Output
234
+ }], plotCtn: [{
235
+ type: ViewChild,
236
+ args: ['plotCtn', { static: true }]
237
+ }] } });
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLWJhci1ncm91cGVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l1cy1kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2NoYXJ0cy1iYXItZ3JvdXBlZC9jaGFydHMtYmFyLWdyb3VwZWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvY2hhcnRzLWJhci1ncm91cGVkL2NoYXJ0cy1iYXItZ3JvdXBlZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFDM0IsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBRXZDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQTJCbkUsTUFBTSxPQUFPLDRCQUE0QjtJQWlFdkMsWUFBb0IsSUFBWSxFQUFVLE1BQStCO1FBQXJELFNBQUksR0FBSixJQUFJLENBQVE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQWhFaEUsU0FBSSxHQUFlLEVBQUUsQ0FBQztRQUN0QixtQkFBYyxHQUF1QixRQUFRLENBQUM7UUFLdkQsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUVWLHlDQUF5QztRQUN6QyxVQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ1osU0FBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLGlEQUFpRDtRQUU3RCxzQkFBc0I7UUFDdEIsV0FBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3RELGFB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ckIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUdpQyxPQUFPO3NCQUE5QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLFxyXG4gIE9uQ2hhbmdlcywgY29tcHV0ZWQsIHNpZ25hbCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLFxyXG4gIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgTmdab25lXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBvcG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3BvcG92ZXIuZGlyZWN0aXZlJztcclxuXHJcbmV4cG9ydCB0eXBlIEJhclNlcmllc0l0ZW0gPSB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBudW1iZXI7IGNvbG9yPzogc3RyaW5nIH07XHJcbmV4cG9ydCB0eXBlIEJhckdyb3VwID0geyBsYWJlbDogc3RyaW5nOyBpdGVtczogQmFyU2VyaWVzSXRlbVtdIH07XHJcblxyXG50eXBlIFNlcmllc0NvbG9yTWFwID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxuXHJcbnR5cGUgQmFyUmVjdCA9IHtcclxuICBncm91cExhYmVsOiBzdHJpbmc7XHJcbiAgc2VyaWVzTGFiZWw6IHN0cmluZztcclxuICB2YWx1ZTogbnVtYmVyO1xyXG4gIHg6IG51bWJlcjtcclxuICB5OiBudW1iZXI7XHJcbiAgd2lkdGg6IG51bWJlcjtcclxuICBoZWlnaHQ6IG51bWJlcjtcclxuICBjb2xvcjogc3RyaW5nO1xyXG59O1xyXG5cclxudHlwZSBCYXJTdHJpcGUgPSB7IHg6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpdXMtY2hhcnRzLWJhci1ncm91cGVkJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFBvcG92ZXJEaXJlY3RpdmVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFydHMtYmFyLWdyb3VwZWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoYXJ0cy1iYXItZ3JvdXBlZC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSXVzQ2hhcnRzQmFyR3JvdXBlZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBkYXRhOiBCYXJHcm91cFtdID0gW107XHJcbiAgQElucHV0KCkgbGVnZW5kUG9zaXRpb246ICdyaWdodCcgfCAnYm90dG9tJyA9ICdib3R0b20nO1xyXG4gIEBJbnB1dCgpIHNlcmllc09yZGVyPzogc3RyaW5nW107XHJcblxyXG4gIC8vIEVzY2FsYSBZIChzZSBwdWVkZW4gZXhwb25lciBjb21vIEBJbnB1dCBzaSBxdWllcmVzKVxyXG4gIHlNYXg/OiBudW1iZXI7XHJcbiAgdGlja3MgPSA1O1xyXG5cclxuICAvLyBGYWxsYmFja3Mgc2kgbm8gaGF5IHRhbWHDsW8gQ1NTIGV4dGVybm9cclxuICB3aWR0aCA9IDY0MDtcclxuICBzaXplID0gMzIwOyAvLyBhbHRvIHBvciBkZWZlY3RvIGN1YW5kbyBlbCBob3N0IG5vIGZpamEgaGVpZ2h0XHJcblxyXG4gIC8vIE3DoXJnZW5lcyB5IGxheW91dCBYXHJcbiAgbWFyZ2luID0geyB0b3A6IDI0LCByaWdodDogMTYsIGJvdHRvbTogNTUsIGxlZnQ6IDQwIH07XHJcbiAgYmFyV2lkdGggPSAxMTtcclxuICBiYXJHYXAgPSAyO1xyXG4gIGdyb3VwR2FwID0gNDA7XHJcbiAgb3V0ZXJHYXAgPSAxODtcclxuXHJcbiAgLy8gRXN0aWxvIGJhcnJhXHJcbiAgYmFyUmFkaXVzID0gNTtcclxuXHJcbiAgQElucHV0KCkgbWF4TGFiZWxDaGFycyA9IDEwO1xyXG4gIEBPdXRwdXQoKSBiYXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8eyBncm91cDogc3RyaW5nOyBzZXJpZXM6IHN0cmluZzsgdmFsdWU6IG51bWJlciB9PigpO1xyXG5cclxuICAvLyBTb2xvIG5lY2VzaXRhbW9zIG1lZGlyIEFOQ0hPIHZpc2libGUgZGVsIHBsb3RcclxuICBAVmlld0NoaWxkKCdwbG90Q3RuJywgeyBzdGF0aWM6IHRydWUgfSkgcGxvdEN0biE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIHByaXZhdGUgcm8/OiBSZXNpemVPYnNlcnZlcjtcclxuICBwcml2YXRlIHJhZklkOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLy8gRXN0YWRvXHJcbiAgcHJpdmF0ZSBfYmFycyA9IHNpZ25hbDxCYXJSZWN0W10+KFtdKTtcclxuICBwcml2YXRlIF9ncm91cHMgPSBzaWduYWw8c3RyaW5nW10+KFtdKTtcclxuICBwcml2YXRlIF9zZXJpZXMgPSBzaWduYWw8c3RyaW5nW10+KFtdKTtcclxuICBwcml2YXRlIF9jb2xvcnMgPSBzaWduYWw8U2VyaWVzQ29sb3JNYXA+KHt9KTtcclxuICBwcml2YXRlIF95TWF4ID0gc2lnbmFsKDApO1xyXG5cclxuICBwcml2YXRlIF9wYW5lSCA9IHNpZ25hbCgwKTsgICAgIC8vIGFsdG8gcmVhbCBkZWwgaG9zdCAobyBmYWxsYmFjayBzaXplKVxyXG4gIHByaXZhdGUgX3Bsb3RXID0gc2lnbmFsKDApOyAgICAgLy8gYW5jaG8gdmlzaWJsZSBkZWwgY29udGVuZWRvciBzY3JvbGxlYWJsZVxyXG4gIHByaXZhdGUgX3Bsb3RXaWR0aCA9IHNpZ25hbCgwKTsgLy8gYW5jaG8gdmlydHVhbCBkZWwgU1ZHIGRlcmVjaG9cclxuICBwcml2YXRlIF9ncm91cENlbnRlcnMgPSBzaWduYWw8bnVtYmVyW10+KFtdKTtcclxuICBwcml2YXRlIF9iYXJTdHJpcGVzID0gc2lnbmFsPEJhclN0cmlwZVtdPihbXSk7XHJcblxyXG4gIC8vIERlcml2YWRvc1xyXG4gIHJlYWRvbmx5IGJhcnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9iYXJzKCkpO1xyXG4gIHJlYWRvbmx5IGdyb3VwcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2dyb3VwcygpKTtcclxuICByZWFkb25seSBzZXJpZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9zZXJpZXMoKSk7XHJcbiAgcmVhZG9ubHkgY29sb3JzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fY29sb3JzKCkpO1xyXG4gIHJlYWRvbmx5IHlTY2FsZU1heCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3lNYXgoKSk7XHJcblxyXG4gIHJlYWRvbmx5IGNoYXJ0SGVpZ2h0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fcGFuZUgoKSB8fCB0aGlzLnNpemUpO1xyXG4gIHJlYWRvbmx5IHBsb3RXaWR0aCAgID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fcGxvdFdpZHRoKCkpO1xyXG4gIHJlYWRvbmx5IGdyb3VwQ2VudGVycyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2dyb3VwQ2VudGVycygpKTtcclxuICByZWFkb25seSBiYXJTdHJpcGVzICAgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9iYXJTdHJpcGVzKCkpO1xyXG5cclxuICByZWFkb25seSBpbm5lckhlaWdodCA9IGNvbXB1dGVkKCgpID0+XHJcbiAgICBNYXRoLm1heCh0aGlzLmNoYXJ0SGVpZ2h0KCkgLSB0aGlzLm1hcmdpbi50b3AgLSB0aGlzLm1hcmdpbi5ib3R0b20sIDApXHJcbiAgKTtcclxuXHJcbiAgcmVhZG9ubHkgYXhpc1ZpZXdCb3ggPSBjb21wdXRlZCgoKSA9PiBgMCAwICR7dGhpcy5tYXJnaW4ubGVmdH0gJHt0aGlzLmNoYXJ0SGVpZ2h0KCl9YCk7XHJcbiAgcmVhZG9ubHkgcGxvdFZpZXdCb3ggPSBjb21wdXRlZCgoKSA9PiBgMCAwICR7dGhpcy5wbG90V2lkdGgoKX0gJHt0aGlzLmNoYXJ0SGVpZ2h0KCl9YCk7XHJcblxyXG4gIHJlYWRvbmx5IE1hdGggPSBNYXRoO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSwgcHJpdmF0ZSBob3N0RWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAvLyBNZWRpY2nDs24gaW5pY2lhbCBlbiBlbCBwcsOzeGltbyBmcmFtZSBwYXJhIGV2aXRhciBFeHByZXNzaW9uQ2hhbmdlZCB5IGxvb3BzXHJcbiAgICB0aGlzLnJhZigoKSA9PiB7XHJcbiAgICAgIHRoaXMubWVhc3VyZU5vdygpO1xyXG4gICAgICB0aGlzLnJlY2FsYygpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gT2JzZXJ2YSBhbHRvIGRlbCBIT1NUIHkgYW5jaG8gdmlzaWJsZSBkZWwgcGxvdCwgdGhyb3R0bGVkIHBvciByQUZcclxuICAgIHRoaXMucm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJhZigoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2hhbmdlZCA9IHRoaXMubWVhc3VyZU5vdygpO1xyXG4gICAgICAgIGlmIChjaGFuZ2VkKSB0aGlzLnJlY2FsYygpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yby5vYnNlcnZlKHRoaXMuaG9zdEVsLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5yby5vYnNlcnZlKHRoaXMucGxvdEN0bi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ybz8uZGlzY29ubmVjdCgpO1xyXG4gICAgaWYgKHRoaXMucmFmSWQgIT09IG51bGwpIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmSWQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICAvLyBDYW1iaW9zIGRlIEBJbnB1dCBkaXNwYXJhbiByZWPDoWxjdWxvXHJcbiAgICB0aGlzLnJlY2FsYygpO1xyXG4gIH1cclxuXHJcbiAgLy8gPT09PT09PT09IE1lZGljacOzbiA9PT09PT09PT1cclxuICAvKiogRWplY3V0YSB1bmEgdGFyZWEgZW4gZWwgcHLDs3hpbW8gZnJhbWUgZGVudHJvIGRlIEFuZ3VsYXIgKi9cclxuICBwcml2YXRlIHJhZihmbjogKCkgPT4gdm9pZCkge1xyXG4gICAgaWYgKHRoaXMucmFmSWQgIT09IG51bGwpIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmSWQpO1xyXG4gICAgdGhpcy5yYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLnpvbmUucnVuKGZuKSk7XHJcbiAgfVxyXG5cclxuICAvKiogTWlkZSBhbHRvIGRlbCBob3N0IHkgYW5jaG8gdmlzaWJsZSBkZWwgcGxvdC4gRGV2dWVsdmUgdHJ1ZSBzaSBjYW1iacOzIGFsZ28uICovXHJcbiAgcHJpdmF0ZSBtZWFzdXJlTm93KCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgaG9zdEggPSBNYXRoLmZsb29yKHRoaXMuaG9zdEVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IDApO1xyXG4gICAgY29uc3QgcGFuZUggPSBob3N0SCA+IDAgPyBob3N0SCA6IHRoaXMuc2l6ZTtcclxuXHJcbiAgICBjb25zdCBwbG90VyA9IE1hdGguZmxvb3IodGhpcy5wbG90Q3RuPy5uYXRpdmVFbGVtZW50Py5jbGllbnRXaWR0aCB8fCAwKVxyXG4gICAgICAgICAgICAgICB8fCAodGhpcy53aWR0aCAtIHRoaXMubWFyZ2luLmxlZnQpO1xyXG5cclxuICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XHJcbiAgICBpZiAocGFuZUggIT09IHRoaXMuX3BhbmVIKCkpIHsgdGhpcy5fcGFuZUguc2V0KHBhbmVIKTsgY2hhbmdlZCA9IHRydWU7IH1cclxuICAgIGlmIChwbG90VyAhPT0gdGhpcy5fcGxvdFcoKSkgeyB0aGlzLl9wbG90Vy5zZXQocGxvdFcpOyBjaGFuZ2VkID0gdHJ1ZTsgfVxyXG4gICAgcmV0dXJuIGNoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICAvLyA9PT09PT09PT0gTGF5b3V0ICYgZGF0YSA9PT09PT09PT1cclxuICBwcml2YXRlIHJlY2FsYygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNsZWFuZWQgPSAodGhpcy5kYXRhID8/IFtdKVxyXG4gICAgICAubWFwKGcgPT4gKHsgbGFiZWw6IGcubGFiZWwsIGl0ZW1zOiAoZy5pdGVtcyA/PyBbXSkuZmlsdGVyKGkgPT4gTnVtYmVyKGk/LnZhbHVlKSA+PSAwKSB9KSlcclxuICAgICAgLmZpbHRlcih4ID0+IHguaXRlbXMubGVuZ3RoID4gMCk7XHJcblxyXG4gICAgY29uc3QgZ3JvdXBzID0gY2xlYW5lZC5tYXAoZyA9PiBnLmxhYmVsKTtcclxuXHJcbiAgICAvLyBzZXJpZXMgKyBvcmRlblxyXG4gICAgY29uc3Qgc2VyaWVzU2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcbiAgICBmb3IgKGNvbnN0IGcgb2YgY2xlYW5lZCkgZm9yIChjb25zdCBpdCBvZiBnLml0ZW1zKSBzZXJpZXNTZXQuYWRkKGl0LmxhYmVsKTtcclxuICAgIGxldCBzZXJpZXMgPSBBcnJheS5mcm9tKHNlcmllc1NldCk7XHJcbiAgICBpZiAodGhpcy5zZXJpZXNPcmRlcj8ubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IG9yZGVyID0gbmV3IE1hcCh0aGlzLnNlcmllc09yZGVyLm1hcCgoaywgaWR4KSA9PiBbaywgaWR4XSkpO1xyXG4gICAgICBzZXJpZXMuc29ydCgoYSwgYikgPT4gKG9yZGVyLmdldChhKSA/PyAxZTkpIC0gKG9yZGVyLmdldChiKSA/PyAxZTkpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBjb2xvcmVzIHBvciBzZXJpZVxyXG4gICAgY29uc3QgcGFsZXR0ZSA9IFtcclxuICAgICAgJyMyMTY3RkYnLCAvLyBJbmZvLTUwMFxyXG4gICAgICAnIzBBMjg5MycsIC8vIEluZm8tODAwXHJcbiAgICAgICcjNDBDQUU5JywgLy8gUHJpbWFyeS00MDBcclxuICAgICAgJyM1ODkyRkYnLCAvLyBJbmZvLTQwMFxyXG4gICAgICAnIzA4QTZEQicsIC8vIFByaW1hcnktNTAwXHJcbiAgICAgICcjQzRERkZGJywgLy8gSW5mby0yMDBcclxuICAgIF07XHJcbiAgICBjb25zdCBjb2xvck1hcDogU2VyaWVzQ29sb3JNYXAgPSB7fTtcclxuICAgIHNlcmllcy5mb3JFYWNoKChzLCBpKSA9PiAoY29sb3JNYXBbc10gPSBwYWxldHRlW2kgJSBwYWxldHRlLmxlbmd0aF0pKTtcclxuXHJcbiAgICAvLyBub3JtYWxpemFyXHJcbiAgICBjb25zdCBub3JtYWxpemVkID0gY2xlYW5lZC5tYXAoZyA9PiB7XHJcbiAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoZy5pdGVtcy5tYXAoaSA9PiBbaS5sYWJlbCwgaV0pKTtcclxuICAgICAgY29uc3QgaXRlbXMgPSBzZXJpZXMubWFwKHMgPT4ge1xyXG4gICAgICAgIGNvbnN0IGkgPSBtYXAuZ2V0KHMpO1xyXG4gICAgICAgIHJldHVybiB7IGxhYmVsOiBzLCB2YWx1ZTogaT8udmFsdWUgPz8gMCwgY29sb3I6IGk/LmNvbG9yID8/IGNvbG9yTWFwW3NdIH07XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4geyBsYWJlbDogZy5sYWJlbCwgaXRlbXMgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIFkgbcOheFxyXG4gICAgY29uc3QgbWF4VmFsdWUgPSBNYXRoLm1heCgwLCAuLi5ub3JtYWxpemVkLmZsYXRNYXAoZyA9PiBnLml0ZW1zLm1hcChpID0+IGkudmFsdWUpKSk7XHJcbiAgICBjb25zdCB5TWF4ID0gdGhpcy55TWF4ICYmIHRoaXMueU1heCA+IDAgPyB0aGlzLnlNYXggOiB0aGlzLm5pY2VNYXgobWF4VmFsdWUpO1xyXG4gICAgdGhpcy5feU1heC5zZXQoeU1heCk7XHJcblxyXG4gICAgLy8gRGltZW5zaW9uZXMgdmlzaWJsZXMgZGVsIHBhbmVsIGRlcmVjaG9cclxuICAgIGNvbnN0IHZpc2libGVXID0gdGhpcy5fcGxvdFcoKSB8fCAodGhpcy53aWR0aCAtIHRoaXMubWFyZ2luLmxlZnQpO1xyXG5cclxuICAgIC8vID09PT09IExheW91dCBYIGNvbiBvdXRlckdhcCA9PT09PVxyXG4gICAgY29uc3QgRyA9IG5vcm1hbGl6ZWQubGVuZ3RoO1xyXG4gICAgY29uc3QgUyA9IHNlcmllcy5sZW5ndGg7XHJcbiAgICBjb25zdCBncm91cElubmVyV2lkdGggPSBTICogdGhpcy5iYXJXaWR0aCArIE1hdGgubWF4KDAsIFMgLSAxKSAqIHRoaXMuYmFyR2FwO1xyXG4gICAgY29uc3QgaW5uZXJOYXR1cmFsV2lkdGggPVxyXG4gICAgICBNYXRoLm1heCgwLCAodGhpcy5vdXRlckdhcCAqIDIpICsgRyAqIGdyb3VwSW5uZXJXaWR0aCArIE1hdGgubWF4KDAsIEcgLSAxKSAqIHRoaXMuZ3JvdXBHYXApO1xyXG5cclxuICAgIGNvbnN0IGlubmVyVmlzaWJsZVdpZHRoID0gTWF0aC5tYXgodmlzaWJsZVcgLSB0aGlzLm1hcmdpbi5yaWdodCwgMCk7XHJcbiAgICBjb25zdCBpbm5lclZpcnR1YWxXaWR0aCA9IE1hdGgubWF4KGlubmVyVmlzaWJsZVdpZHRoLCBpbm5lck5hdHVyYWxXaWR0aCk7XHJcbiAgICBjb25zdCBwbG90V2lkdGggPSBpbm5lclZpcnR1YWxXaWR0aCArIHRoaXMubWFyZ2luLnJpZ2h0O1xyXG4gICAgdGhpcy5fcGxvdFdpZHRoLnNldChwbG90V2lkdGgpO1xyXG5cclxuICAgIC8vIENvbnN0cnVjY2nDs24gZGUgYmFycmFzICsgZnJhbmphc1xyXG4gICAgY29uc3QgaWggPSB0aGlzLmlubmVySGVpZ2h0KCk7XHJcbiAgICBjb25zdCBiYXJzOiBCYXJSZWN0W10gPSBbXTtcclxuICAgIGNvbnN0IGNlbnRlcnM6IG51bWJlcltdID0gW107XHJcbiAgICBjb25zdCBzdHJpcGVzOiBCYXJTdHJpcGVbXSA9IFtdO1xyXG5cclxuICAgIGxldCBjdXJzb3IgPSB0aGlzLm91dGVyR2FwO1xyXG4gICAgbm9ybWFsaXplZC5mb3JFYWNoKGcgPT4ge1xyXG4gICAgICBjb25zdCBzdGFydFggPSBjdXJzb3I7XHJcbiAgICAgIGNvbnN0IGNlbnRlciA9IHN0YXJ0WCArIGdyb3VwSW5uZXJXaWR0aCAvIDI7XHJcbiAgICAgIGNlbnRlcnMucHVzaChjZW50ZXIpO1xyXG5cclxuICAgICAgZy5pdGVtcy5mb3JFYWNoKChpdCwgc2kpID0+IHtcclxuICAgICAgICBjb25zdCB4ID0gc3RhcnRYICsgc2kgKiAodGhpcy5iYXJXaWR0aCArIHRoaXMuYmFyR2FwKTtcclxuXHJcbiAgICAgICAgc3RyaXBlcy5wdXNoKHsgeCwgd2lkdGg6IHRoaXMuYmFyV2lkdGggfSk7IC8vIGZyYW5qYSBwb3IgYmFycmFcclxuXHJcbiAgICAgICAgY29uc3QgaCA9IGl0LnZhbHVlIDw9IDAgPyAwIDogKGl0LnZhbHVlIC8geU1heCkgKiBpaDtcclxuICAgICAgICBjb25zdCB5ID0gdGhpcy5tYXJnaW4udG9wICsgaWggLSBoO1xyXG4gICAgICAgIGJhcnMucHVzaCh7XHJcbiAgICAgICAgICBncm91cExhYmVsOiBnLmxhYmVsLFxyXG4gICAgICAgICAgc2VyaWVzTGFiZWw6IGl0LmxhYmVsLFxyXG4gICAgICAgICAgdmFsdWU6IGl0LnZhbHVlLFxyXG4gICAgICAgICAgeCwgeSwgd2lkdGg6IHRoaXMuYmFyV2lkdGgsIGhlaWdodDogaCxcclxuICAgICAgICAgIGNvbG9yOiBpdC5jb2xvciA/PyBjb2xvck1hcFtpdC5sYWJlbF1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjdXJzb3IgKz0gZ3JvdXBJbm5lcldpZHRoICsgdGhpcy5ncm91cEdhcDtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX2JhcnMuc2V0KGJhcnMpO1xyXG4gICAgdGhpcy5fZ3JvdXBzLnNldChncm91cHMpO1xyXG4gICAgdGhpcy5fc2VyaWVzLnNldChzZXJpZXMpO1xyXG4gICAgdGhpcy5fY29sb3JzLnNldChjb2xvck1hcCk7XHJcbiAgICB0aGlzLl9ncm91cENlbnRlcnMuc2V0KGNlbnRlcnMpO1xyXG4gICAgdGhpcy5fYmFyU3RyaXBlcy5zZXQoc3RyaXBlcyk7XHJcbiAgfVxyXG5cclxuICAvLyA9PT09PT09PT0gSGVscGVycyA9PT09PT09PT1cclxuICBwcml2YXRlIG5pY2VNYXgobWF4VmFsOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgaWYgKG1heFZhbCA8PSAwKSByZXR1cm4gMTtcclxuICAgIGNvbnN0IGV4cCA9IE1hdGguZmxvb3IoTWF0aC5sb2cxMChtYXhWYWwpKTtcclxuICAgIGNvbnN0IGJhc2UgPSBNYXRoLnBvdygxMCwgZXhwKTtcclxuICAgIGNvbnN0IG4gPSBNYXRoLmNlaWwobWF4VmFsIC8gYmFzZSk7XHJcbiAgICBjb25zdCBuaWNlID0gbiA8PSAyID8gMiA6IG4gPD0gNSA/IDUgOiAxMDtcclxuICAgIHJldHVybiBuaWNlICogYmFzZTtcclxuICB9XHJcblxyXG4gIGdldFkodmFsdWU6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBjb25zdCBpaCA9IHRoaXMuaW5uZXJIZWlnaHQoKTtcclxuICAgIGNvbnN0IG1heCA9IHRoaXMueVNjYWxlTWF4KCk7XHJcbiAgICByZXR1cm4gdGhpcy5tYXJnaW4udG9wICsgaWggLSAodmFsdWUgLyBtYXgpICogaWg7XHJcbiAgfVxyXG5cclxuICBnZXQgeVRpY2tzQXJyKCk6IG51bWJlcltdIHtcclxuICAgIGNvbnN0IG1heCA9IHRoaXMueVNjYWxlTWF4KCk7XHJcbiAgICBjb25zdCBuID0gTWF0aC5tYXgoMiwgdGhpcy50aWNrcyB8IDApO1xyXG4gICAgY29uc3Qgc3RlcCA9IG1heCAvIG47XHJcbiAgICBjb25zdCBhcnI6IG51bWJlcltdID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBuOyBpKyspIGFyci5wdXNoKCsoKGkgKiBzdGVwKSkudG9GaXhlZCgyKSk7XHJcbiAgICByZXR1cm4gYXJyO1xyXG4gIH1cclxuXHJcbiAgc2hvcnRMYWJlbChsYmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gbGJsLmxlbmd0aCA+IHRoaXMubWF4TGFiZWxDaGFycyA/IChsYmwuc2xpY2UoMCwgdGhpcy5tYXhMYWJlbENoYXJzIC0gMSkgKyAn4oCmJykgOiBsYmw7XHJcbiAgfVxyXG5cclxuICBmb3JtYXRUb29sdGlwKGI6IEJhclJlY3QpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke2Iuc2VyaWVzTGFiZWx9OiAke2IudmFsdWV9YDtcclxuICB9XHJcblxyXG4gIG9uQmFyQ2xpY2soYjogQmFyUmVjdCkge1xyXG4gICAgdGhpcy5iYXJDbGljay5lbWl0KHsgZ3JvdXA6IGIuZ3JvdXBMYWJlbCwgc2VyaWVzOiBiLnNlcmllc0xhYmVsLCB2YWx1ZTogYi52YWx1ZSB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNoYXJ0LXdyYXBwZXJcIiBbY2xhc3MuYm90dG9tXT1cImxlZ2VuZFBvc2l0aW9uID09PSAnYm90dG9tJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInBhbmVzXCIgI3BhbmVzPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJheGlzLWN0blwiPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hhcnQtYXhpc1wiXHJcbiAgICAgICAgICAgICAgICBbYXR0ci52aWV3Qm94XT1cImF4aXNWaWV3Qm94KClcIlxyXG4gICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaW5ZTWluIG1lZXRcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIm1hcmdpbi5sZWZ0XCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiY2hhcnRIZWlnaHQoKVwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAodCBvZiB5VGlja3NBcnI7IHRyYWNrIHQpIHtcclxuICAgICAgICAgICAgICAgIDx0ZXh0IGNsYXNzPVwieS10aWNrIGJvZHktc21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci54XT1cIm1hcmdpbi5sZWZ0IC0gNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnldPVwiZ2V0WSh0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYW5jaG9yPVwiZW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG9taW5hbnQtYmFzZWxpbmU9XCJtaWRkbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyB0IH19XHJcbiAgICAgICAgICAgICAgICA8L3RleHQ+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGxvdC1jdG4gc2Nyb2xsYWJsZS1zbWFsbFwiICNwbG90Q3RuPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hhcnRcIlxyXG4gICAgICAgICAgICAgICAgW2F0dHIudmlld0JveF09XCJwbG90Vmlld0JveCgpXCJcclxuICAgICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWluWU1pbiBtZWV0XCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJwbG90V2lkdGgoKVwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImNoYXJ0SGVpZ2h0KClcIj5cclxuXHJcbiAgICAgICAgICAgICAgICBAZm9yIChzIG9mIGJhclN0cmlwZXMoKTsgdHJhY2sgcy54KSB7XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz1cImJhci1zdHJpcGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci54XT1cInMueFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnldPVwibWFyZ2luLnRvcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLndpZHRoXT1cInMud2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwiaW5uZXJIZWlnaHQoKVwiPjwvcmVjdD5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBAZm9yICh0IG9mIHlUaWNrc0FycjsgdHJhY2sgdCkge1xyXG4gICAgICAgICAgICAgICAgPGxpbmUgY2xhc3M9XCJncmlkLWxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci54MV09XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueDJdPVwicGxvdFdpZHRoKCkgLSBtYXJnaW4ucmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci55MV09XCJnZXRZKHQpXCIgW2F0dHIueTJdPVwiZ2V0WSh0KVwiLz5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBAZm9yIChnIG9mIGdyb3VwcygpOyB0cmFjayBnOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgPHRleHQgY2xhc3M9XCJ4LWxhYmVsIGJvZHktc21cIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnhdPVwiZ3JvdXBDZW50ZXJzKClbaV1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnldPVwiY2hhcnRIZWlnaHQoKSAtIG1hcmdpbi5ib3R0b20gKyA2XCJcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZG9taW5hbnQtYmFzZWxpbmU9XCJoYW5naW5nXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXVzUG9wb3ZlckNvbnRlbnRdPVwiZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHNob3J0TGFiZWwoZykgfX1cclxuICAgICAgICAgICAgICAgIDwvdGV4dD5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBAZm9yIChiIG9mIGJhcnMoKTsgdHJhY2sgYi5ncm91cExhYmVsICsgJyAtICcgKyBiLnNlcmllc0xhYmVsKSB7XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz1cImJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnhdPVwiYi54XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueV09XCJiLnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci53aWR0aF09XCJiLndpZHRoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuaGVpZ2h0XT1cIk1hdGgubWF4KGIuaGVpZ2h0LCAwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmZpbGxdPVwiYi5jb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnJ4XT1cImJhclJhZGl1c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnJ5XT1cImJhclJhZGl1c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpdXNQb3BvdmVyQ29udGVudF09XCJmb3JtYXRUb29sdGlwKGIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQmFyQ2xpY2soYilcIi8+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwhLS0gTGV5ZW5kYSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWdlbmRcIiBbY2xhc3MuYm90dG9tXT1cImxlZ2VuZFBvc2l0aW9uID09PSAnYm90dG9tJ1wiPlxyXG4gICAgICAgIEBmb3IgKHMgb2Ygc2VyaWVzKCk7IHRyYWNrIHMpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVnZW5kLWl0ZW1cIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb3RcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJjb2xvcnMoKVtzXVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBjYXB0aW9uLXNtXCIgW2l1c1BvcG92ZXJDb250ZW50XT1cInNcIj57eyBzIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './charts-bar-grouped.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pdXMtZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9jaGFydHMtYmFyLWdyb3VwZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2hhcnRzLWJhci1ncm91cGVkLmNvbXBvbmVudCc7XHJcblxyXG4iXX0=
@@ -86,12 +86,20 @@ export class InputSelectComponent {
86
86
  this.showList = false;
87
87
  this.isAlertText = false;
88
88
  }
89
+ onDropBlock(event) {
90
+ // Evita que se dropee contenido en el input
91
+ event.preventDefault();
92
+ }
93
+ onDragOverBlock(event) {
94
+ // Evita que se permita arrastrar texto sobre el input
95
+ event.preventDefault();
96
+ }
89
97
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
90
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputSelectComponent, isStandalone: true, selector: "ius-input-select", inputs: { componentId: "componentId", required: "required", disabled: "disabled", showHelpText: "showHelpText", labelSuperior: "labelSuperior", labelInferior: "labelInferior", labelInput: "labelInput", iconInput: "iconInput", textInput: "textInput" }, outputs: { onChangesValueEvent: "onChangesValueEvent", onAddText: "onAddText" }, host: { listeners: { "document:click": "onClickOutside($event)" } }, ngImport: i0, template: "<div class=\"container-general\" [id]=\"componentId\">\n @if (labelSuperior) {\n <div class=\"container-label-sup\" [ngClass]=\"{\n 'disabled': disabled\n }\">\n @if(!disabled && required){\n <div class=\"icon-dot\"></div>\n }\n <span class=\"\">{{labelSuperior}}</span>\n @if(!disabled && showHelpText){\n <ius-icon-md iconName=\"icon-help\" class=\"icon-color-help\"></ius-icon-md>\n }\n <span>:</span>\n </div>\n }\n <div class=\"container-textfield\" [ngClass]=\"{\n 'disabled': disabled,\n 'focused': isFocused,\n 'alert': !isFocused && isAlertText && !disabled\n }\" (click)=\"onFocus()\">\n @if (iconInput) {\n <ius-icon-md [iconName]=\"iconInput\" class=\"icon-color\"></ius-icon-md>\n }\n <input type=\"text\" [(ngModel)]=\"textInput\" [placeholder]=\"labelInput\" [disabled]=\"disabled\" (input)=\"onInput()\"\n (focus)=\"onFocus()\" (blur)=\"onBlur()\" (keypress)=\"onKeyPress($event)\">\n <div class=\"cnt-icon-right\">\n @if(!showList){\n <ius-icon-md iconName=\"icon-keyboard-arrow-down\" class=\"icon-arrows\"></ius-icon-md>\n }@else{\n <div (click)=\"closeList($event)\" style=\"height: 20px;\">\n <ius-icon-md iconName=\"icon-keyboard-arrow-up\" class=\"icon-arrows\"></ius-icon-md>\n </div>\n }\n </div>\n </div>\n @if (labelInferior && isFocused) {\n <span class=\"label-inf\">{{labelInferior}}</span>\n }\n @if (labelInferior && !isFocused && isAlertText) {\n <span class=\"label-inf\" [ngClass]=\"{\n 'alert': !isFocused && isAlertText && !disabled\n }\">{{labelInferior}}</span>\n }\n @if (showList) {\n <div class=\"container-list scrollable-small\">\n <div (click)=\"onSelectOption()\">\n <ng-content selector=\"ius-option\"></ng-content>\n </div>\n </div>\n }\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.container-general{position:relative;height:100%}.container-textfield{display:flex;padding:10px 12px;justify-content:center;align-items:flex-start;gap:4px;cursor:pointer;border:1px solid #f5f5f5;border-radius:8px;background:#f5f5f5;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.container-textfield:hover:not(.disabled):not(.focused):not(.alert){background:#edf6ff}.container-textfield.focused{border:1px solid #0581BC;background:#edf6ff}.container-textfield.disabled{cursor:default;background:#f5f5f5}.container-textfield.disabled .icon-color,.container-textfield.disabled .icon-arrows,.container-textfield.disabled input{color:#bfbfbf}.container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.container-textfield.alert{border:1px solid #DB2E2A;background:#fff4f0}.container-textfield .icon-arrows{pointer-events:none}.container-textfield .icon-arrows svg{pointer-events:none}.icon-color{color:#595959}.icon-arrows{color:#333}input{display:flex;align-items:center;flex:1 0 0;border:none;outline:none;background-color:transparent;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.cnt-icon-right{display:flex;align-items:center;justify-content:center;background:none;padding:0;color:#333}.container-label-sup{display:flex;align-items:center;gap:4px;margin-bottom:8px;color:#333;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.container-label-sup.disabled{color:#bfbfbf}.icon-dot{display:flex;align-items:center;width:4px;height:4px;aspect-ratio:1/1;background-color:#db2e2a;border-radius:100px}.icon-color-help{color:#8c8c8c}.label-inf{display:flex;position:absolute;margin-top:4px;color:#595959;font-family:Roboto,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.label-inf.alert{color:#931224}.container-list{position:absolute;max-height:144px;width:100%;display:flex;flex-direction:column;margin-top:4px;border-radius:8px;background:#fff;box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a;z-index:1000;overflow-y:auto}.scrollable-small::-webkit-scrollbar{-webkit-appearance:none}.scrollable-small::-webkit-scrollbar:vertical{width:4px;height:32px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar:horizontal{height:5px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar-thumb{background-color:#08a6db;border-radius:4px}\n"], dependencies: [{ kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
98
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputSelectComponent, isStandalone: true, selector: "ius-input-select", inputs: { componentId: "componentId", required: "required", disabled: "disabled", showHelpText: "showHelpText", labelSuperior: "labelSuperior", labelInferior: "labelInferior", labelInput: "labelInput", iconInput: "iconInput", textInput: "textInput" }, outputs: { onChangesValueEvent: "onChangesValueEvent", onAddText: "onAddText" }, host: { listeners: { "document:click": "onClickOutside($event)" } }, ngImport: i0, template: "<div class=\"container-general\" [id]=\"componentId\">\n @if (labelSuperior) {\n <div class=\"container-label-sup\" [ngClass]=\"{\n 'disabled': disabled\n }\">\n @if(!disabled && required){\n <div class=\"icon-dot\"></div>\n }\n <span class=\"\">{{labelSuperior}}</span>\n @if(!disabled && showHelpText){\n <ius-icon-md iconName=\"icon-help\" class=\"icon-color-help\"></ius-icon-md>\n }\n <span>:</span>\n </div>\n }\n <div class=\"container-textfield\" [ngClass]=\"{\n 'disabled': disabled,\n 'focused': isFocused,\n 'alert': !isFocused && isAlertText && !disabled\n }\" (click)=\"onFocus()\">\n @if (iconInput) {\n <ius-icon-md [iconName]=\"iconInput\" class=\"icon-color\"></ius-icon-md>\n }\n <input type=\"text\" [(ngModel)]=\"textInput\" [placeholder]=\"labelInput\" [disabled]=\"disabled\" (input)=\"onInput()\"\n (focus)=\"onFocus()\" (blur)=\"onBlur()\" (keypress)=\"onKeyPress($event)\" (drop)=\"onDropBlock($event)\" (dragover)=\"onDragOverBlock($event)\">\n <div class=\"cnt-icon-right\">\n @if(!showList){\n <ius-icon-md iconName=\"icon-keyboard-arrow-down\" class=\"icon-arrows\"></ius-icon-md>\n }@else{\n <div (click)=\"closeList($event)\" style=\"height: 20px;\">\n <ius-icon-md iconName=\"icon-keyboard-arrow-up\" class=\"icon-arrows\"></ius-icon-md>\n </div>\n }\n </div>\n </div>\n @if (labelInferior && isFocused) {\n <span class=\"label-inf\">{{labelInferior}}</span>\n }\n @if (labelInferior && !isFocused && isAlertText) {\n <span class=\"label-inf\" [ngClass]=\"{\n 'alert': !isFocused && isAlertText && !disabled\n }\">{{labelInferior}}</span>\n }\n @if (showList) {\n <div class=\"container-list scrollable-small\">\n <div (click)=\"onSelectOption()\">\n <ng-content selector=\"ius-option\"></ng-content>\n </div>\n </div>\n }\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.container-general{position:relative;height:100%}.container-textfield{display:flex;padding:10px 12px;justify-content:center;align-items:flex-start;gap:4px;cursor:pointer;border:1px solid #f5f5f5;border-radius:8px;background:#f5f5f5;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.container-textfield:hover:not(.disabled):not(.focused):not(.alert){background:#edf6ff}.container-textfield.focused{border:1px solid #0581BC;background:#edf6ff}.container-textfield.disabled{cursor:default;background:#f5f5f5}.container-textfield.disabled .icon-color,.container-textfield.disabled .icon-arrows,.container-textfield.disabled input{color:#bfbfbf}.container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.container-textfield.alert{border:1px solid #DB2E2A;background:#fff4f0}.container-textfield .icon-arrows{pointer-events:none}.container-textfield .icon-arrows svg{pointer-events:none}.icon-color{color:#595959}.icon-arrows{color:#333}input{display:flex;align-items:center;flex:1 0 0;border:none;outline:none;background-color:transparent;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.cnt-icon-right{display:flex;align-items:center;justify-content:center;background:none;padding:0;color:#333}.container-label-sup{display:flex;align-items:center;gap:4px;margin-bottom:8px;color:#333;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.container-label-sup.disabled{color:#bfbfbf}.icon-dot{display:flex;align-items:center;width:4px;height:4px;aspect-ratio:1/1;background-color:#db2e2a;border-radius:100px}.icon-color-help{color:#8c8c8c}.label-inf{display:flex;position:absolute;margin-top:4px;color:#595959;font-family:Roboto,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.label-inf.alert{color:#931224}.container-list{position:absolute;max-height:144px;width:100%;display:flex;flex-direction:column;margin-top:4px;border-radius:8px;background:#fff;box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a;z-index:1000;overflow-y:auto}.scrollable-small::-webkit-scrollbar{-webkit-appearance:none}.scrollable-small::-webkit-scrollbar:vertical{width:4px;height:32px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar:horizontal{height:5px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar-thumb{background-color:#08a6db;border-radius:4px}\n"], dependencies: [{ kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
91
99
  }
92
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputSelectComponent, decorators: [{
93
101
  type: Component,
94
- args: [{ selector: 'ius-input-select', standalone: true, imports: [IconMdComponent, FormsModule, CommonModule], template: "<div class=\"container-general\" [id]=\"componentId\">\n @if (labelSuperior) {\n <div class=\"container-label-sup\" [ngClass]=\"{\n 'disabled': disabled\n }\">\n @if(!disabled && required){\n <div class=\"icon-dot\"></div>\n }\n <span class=\"\">{{labelSuperior}}</span>\n @if(!disabled && showHelpText){\n <ius-icon-md iconName=\"icon-help\" class=\"icon-color-help\"></ius-icon-md>\n }\n <span>:</span>\n </div>\n }\n <div class=\"container-textfield\" [ngClass]=\"{\n 'disabled': disabled,\n 'focused': isFocused,\n 'alert': !isFocused && isAlertText && !disabled\n }\" (click)=\"onFocus()\">\n @if (iconInput) {\n <ius-icon-md [iconName]=\"iconInput\" class=\"icon-color\"></ius-icon-md>\n }\n <input type=\"text\" [(ngModel)]=\"textInput\" [placeholder]=\"labelInput\" [disabled]=\"disabled\" (input)=\"onInput()\"\n (focus)=\"onFocus()\" (blur)=\"onBlur()\" (keypress)=\"onKeyPress($event)\">\n <div class=\"cnt-icon-right\">\n @if(!showList){\n <ius-icon-md iconName=\"icon-keyboard-arrow-down\" class=\"icon-arrows\"></ius-icon-md>\n }@else{\n <div (click)=\"closeList($event)\" style=\"height: 20px;\">\n <ius-icon-md iconName=\"icon-keyboard-arrow-up\" class=\"icon-arrows\"></ius-icon-md>\n </div>\n }\n </div>\n </div>\n @if (labelInferior && isFocused) {\n <span class=\"label-inf\">{{labelInferior}}</span>\n }\n @if (labelInferior && !isFocused && isAlertText) {\n <span class=\"label-inf\" [ngClass]=\"{\n 'alert': !isFocused && isAlertText && !disabled\n }\">{{labelInferior}}</span>\n }\n @if (showList) {\n <div class=\"container-list scrollable-small\">\n <div (click)=\"onSelectOption()\">\n <ng-content selector=\"ius-option\"></ng-content>\n </div>\n </div>\n }\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.container-general{position:relative;height:100%}.container-textfield{display:flex;padding:10px 12px;justify-content:center;align-items:flex-start;gap:4px;cursor:pointer;border:1px solid #f5f5f5;border-radius:8px;background:#f5f5f5;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.container-textfield:hover:not(.disabled):not(.focused):not(.alert){background:#edf6ff}.container-textfield.focused{border:1px solid #0581BC;background:#edf6ff}.container-textfield.disabled{cursor:default;background:#f5f5f5}.container-textfield.disabled .icon-color,.container-textfield.disabled .icon-arrows,.container-textfield.disabled input{color:#bfbfbf}.container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.container-textfield.alert{border:1px solid #DB2E2A;background:#fff4f0}.container-textfield .icon-arrows{pointer-events:none}.container-textfield .icon-arrows svg{pointer-events:none}.icon-color{color:#595959}.icon-arrows{color:#333}input{display:flex;align-items:center;flex:1 0 0;border:none;outline:none;background-color:transparent;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.cnt-icon-right{display:flex;align-items:center;justify-content:center;background:none;padding:0;color:#333}.container-label-sup{display:flex;align-items:center;gap:4px;margin-bottom:8px;color:#333;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.container-label-sup.disabled{color:#bfbfbf}.icon-dot{display:flex;align-items:center;width:4px;height:4px;aspect-ratio:1/1;background-color:#db2e2a;border-radius:100px}.icon-color-help{color:#8c8c8c}.label-inf{display:flex;position:absolute;margin-top:4px;color:#595959;font-family:Roboto,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.label-inf.alert{color:#931224}.container-list{position:absolute;max-height:144px;width:100%;display:flex;flex-direction:column;margin-top:4px;border-radius:8px;background:#fff;box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a;z-index:1000;overflow-y:auto}.scrollable-small::-webkit-scrollbar{-webkit-appearance:none}.scrollable-small::-webkit-scrollbar:vertical{width:4px;height:32px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar:horizontal{height:5px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar-thumb{background-color:#08a6db;border-radius:4px}\n"] }]
102
+ args: [{ selector: 'ius-input-select', standalone: true, imports: [IconMdComponent, FormsModule, CommonModule], template: "<div class=\"container-general\" [id]=\"componentId\">\n @if (labelSuperior) {\n <div class=\"container-label-sup\" [ngClass]=\"{\n 'disabled': disabled\n }\">\n @if(!disabled && required){\n <div class=\"icon-dot\"></div>\n }\n <span class=\"\">{{labelSuperior}}</span>\n @if(!disabled && showHelpText){\n <ius-icon-md iconName=\"icon-help\" class=\"icon-color-help\"></ius-icon-md>\n }\n <span>:</span>\n </div>\n }\n <div class=\"container-textfield\" [ngClass]=\"{\n 'disabled': disabled,\n 'focused': isFocused,\n 'alert': !isFocused && isAlertText && !disabled\n }\" (click)=\"onFocus()\">\n @if (iconInput) {\n <ius-icon-md [iconName]=\"iconInput\" class=\"icon-color\"></ius-icon-md>\n }\n <input type=\"text\" [(ngModel)]=\"textInput\" [placeholder]=\"labelInput\" [disabled]=\"disabled\" (input)=\"onInput()\"\n (focus)=\"onFocus()\" (blur)=\"onBlur()\" (keypress)=\"onKeyPress($event)\" (drop)=\"onDropBlock($event)\" (dragover)=\"onDragOverBlock($event)\">\n <div class=\"cnt-icon-right\">\n @if(!showList){\n <ius-icon-md iconName=\"icon-keyboard-arrow-down\" class=\"icon-arrows\"></ius-icon-md>\n }@else{\n <div (click)=\"closeList($event)\" style=\"height: 20px;\">\n <ius-icon-md iconName=\"icon-keyboard-arrow-up\" class=\"icon-arrows\"></ius-icon-md>\n </div>\n }\n </div>\n </div>\n @if (labelInferior && isFocused) {\n <span class=\"label-inf\">{{labelInferior}}</span>\n }\n @if (labelInferior && !isFocused && isAlertText) {\n <span class=\"label-inf\" [ngClass]=\"{\n 'alert': !isFocused && isAlertText && !disabled\n }\">{{labelInferior}}</span>\n }\n @if (showList) {\n <div class=\"container-list scrollable-small\">\n <div (click)=\"onSelectOption()\">\n <ng-content selector=\"ius-option\"></ng-content>\n </div>\n </div>\n }\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.container-general{position:relative;height:100%}.container-textfield{display:flex;padding:10px 12px;justify-content:center;align-items:flex-start;gap:4px;cursor:pointer;border:1px solid #f5f5f5;border-radius:8px;background:#f5f5f5;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.container-textfield:hover:not(.disabled):not(.focused):not(.alert){background:#edf6ff}.container-textfield.focused{border:1px solid #0581BC;background:#edf6ff}.container-textfield.disabled{cursor:default;background:#f5f5f5}.container-textfield.disabled .icon-color,.container-textfield.disabled .icon-arrows,.container-textfield.disabled input{color:#bfbfbf}.container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.container-textfield.alert{border:1px solid #DB2E2A;background:#fff4f0}.container-textfield .icon-arrows{pointer-events:none}.container-textfield .icon-arrows svg{pointer-events:none}.icon-color{color:#595959}.icon-arrows{color:#333}input{display:flex;align-items:center;flex:1 0 0;border:none;outline:none;background-color:transparent;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.cnt-icon-right{display:flex;align-items:center;justify-content:center;background:none;padding:0;color:#333}.container-label-sup{display:flex;align-items:center;gap:4px;margin-bottom:8px;color:#333;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.container-label-sup.disabled{color:#bfbfbf}.icon-dot{display:flex;align-items:center;width:4px;height:4px;aspect-ratio:1/1;background-color:#db2e2a;border-radius:100px}.icon-color-help{color:#8c8c8c}.label-inf{display:flex;position:absolute;margin-top:4px;color:#595959;font-family:Roboto,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.label-inf.alert{color:#931224}.container-list{position:absolute;max-height:144px;width:100%;display:flex;flex-direction:column;margin-top:4px;border-radius:8px;background:#fff;box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a;z-index:1000;overflow-y:auto}.scrollable-small::-webkit-scrollbar{-webkit-appearance:none}.scrollable-small::-webkit-scrollbar:vertical{width:4px;height:32px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar:horizontal{height:5px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar-thumb{background-color:#08a6db;border-radius:4px}\n"] }]
95
103
  }], propDecorators: { componentId: [{
96
104
  type: Input,
97
105
  args: [{ required: true }]
@@ -119,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
119
127
  type: HostListener,
120
128
  args: ['document:click', ['$event']]
121
129
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l1cy1kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2lucHV0LXNlbGVjdC9pbnB1dC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM3QyxNQUFNLE9BQU8sb0JBQW9CO0lBUGpDO1FBU0UsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLHFCQUFnQixHQUFZLEtBQUssQ0FBQyxDQUFDLHNFQUFzRTtRQUN6RyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRUMsZ0JBQVcsR0FBVyxFQUFFLENBQUMsQ0FBQywrREFBK0Q7UUFDM0csYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBT3JCLGNBQVMsR0FBWSxFQUFFLENBQUM7UUFFdkIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQTBFbEQ7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QWtETSw2MEhEMUNNLGVBQWUsc0ZBQUUsV0FBVyw4bUJBQUUsWUFBWTs7NEZBSXpDLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUM7OEJBWTFCLFdBQVc7c0JBQXJDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBSVAsY0FBYztzQkFEYixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbk1kQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi1tZC9pY29uLW1kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l1cy1pbnB1dC1zZWxlY3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSWNvbk1kQ29tcG9uZW50LCBGb3Jtc01vZHVsZSwgQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9pbnB1dC1zZWxlY3QuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dFNlbGVjdENvbXBvbmVudCB7XG5cbiAgaXNGb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQWxlcnRUZXh0OiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dMaXN0OiBib29sZWFuID0gZmFsc2U7XG4gIGhhc0NsaWNrZWRJbnNpZGU6IGJvb2xlYW4gPSBmYWxzZTsgLy9CYW5kZXJhIHBhcmEgZGV0ZWN0YXIgcXVlIHlhIGRpZXJvbiBlbCBwcmltZXIgY2xpY2sgZW4gZWwgY29tcG9uZW50ZVxuICBzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbXBvbmVudElkOiBzdHJpbmcgPSAnJzsgLy9EZWJlIG1hbmRhciB1biBjb21wb25lbnRlSUQgcGFyYSBsbGFtYXIgZWwgaW5wdXQgdmFyaWFzIHZlY2VzXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dIZWxwVGV4dCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGxhYmVsU3VwZXJpb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsSW5mZXJpb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsSW5wdXQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb25JbnB1dD86IHN0cmluZztcblxuICBASW5wdXQoKSB0ZXh0SW5wdXQ/OiBzdHJpbmcgPSAnJztcblxuICBAT3V0cHV0KCkgb25DaGFuZ2VzVmFsdWVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25BZGRUZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLy9Fc3RhIGZ1bmNpb24gcGVybWl0ZSBxdWUgZWwgc2UgY2llcnJlIGVsIGxpc3RhZG8gc2kgZWwgdXN1YXJpbyBkYSBjbGljayBlbiBvdHJvIGxhZG8gZnVlcmEgZGVsIGNvbXBvbmVudGVcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBvbkNsaWNrT3V0c2lkZShldmVudDogRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaGFzQ2xpY2tlZEluc2lkZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5jb21wb25lbnRJZCk7XG4gICAgaWYgKGNvbnRhaW5lciAmJiAhY29udGFpbmVyLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgIHRoaXMuY2xvc2VMaXN0KCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VMaXN0KGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICBpZihldmVudCl7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNob3dMaXN0ID0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkICYmICF0aGlzLnNob3dMaXN0KSB7XG4gICAgICB0aGlzLmlzQWxlcnRUZXh0ID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc0FsZXJ0VGV4dCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5vbkNoYW5nZXNWYWx1ZUV2ZW50LmVtaXQodGhpcy50ZXh0SW5wdXQpO1xuICB9XG5cbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgdGhpcy5zaG93TGlzdCA9IHRydWU7XG4gICAgdGhpcy5oYXNDbGlja2VkSW5zaWRlID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICF0aGlzLnNlbGVjdGVkKSB7XG4gICAgICBpZiAodGhpcy50ZXh0SW5wdXQgPT09ICcnKSB7XG4gICAgICAgIHRoaXMuaXNBbGVydFRleHQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc0FsZXJ0VGV4dCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLmFkZFRleHQoKTtcbiAgICB9XG4gIH1cblxuICBhZGRUZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRleHRJbnB1dCEudHJpbSgpICE9PSAnJykge1xuICAgICAgdGhpcy5vbkFkZFRleHQuZW1pdCh0aGlzLnRleHRJbnB1dCk7XG4gICAgICB0aGlzLnRleHRJbnB1dCA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VsZWN0T3B0aW9uKCkge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSB0cnVlO1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgdGhpcy5zaG93TGlzdCA9IGZhbHNlO1xuICAgIHRoaXMuaXNBbGVydFRleHQgPSBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1nZW5lcmFsXCIgW2lkXT1cImNvbXBvbmVudElkXCI+XG4gIEBpZiAobGFiZWxTdXBlcmlvcikge1xuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWxhYmVsLXN1cFwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2Rpc2FibGVkJzogZGlzYWJsZWRcbiAgICB9XCI+XG4gICAgQGlmKCFkaXNhYmxlZCAmJiByZXF1aXJlZCl7XG4gICAgPGRpdiBjbGFzcz1cImljb24tZG90XCI+PC9kaXY+XG4gICAgfVxuICAgIDxzcGFuIGNsYXNzPVwiXCI+e3tsYWJlbFN1cGVyaW9yfX08L3NwYW4+XG4gICAgQGlmKCFkaXNhYmxlZCAmJiBzaG93SGVscFRleHQpe1xuICAgIDxpdXMtaWNvbi1tZCBpY29uTmFtZT1cImljb24taGVscFwiIGNsYXNzPVwiaWNvbi1jb2xvci1oZWxwXCI+PC9pdXMtaWNvbi1tZD5cbiAgICB9XG4gICAgPHNwYW4+Ojwvc3Bhbj5cbiAgPC9kaXY+XG4gIH1cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci10ZXh0ZmllbGRcIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICdkaXNhYmxlZCc6IGRpc2FibGVkLFxuICAgICAgICAnZm9jdXNlZCc6IGlzRm9jdXNlZCxcbiAgICAgICAgJ2FsZXJ0JzogIWlzRm9jdXNlZCAmJiBpc0FsZXJ0VGV4dCAmJiAhZGlzYWJsZWRcbiAgICB9XCIgKGNsaWNrKT1cIm9uRm9jdXMoKVwiPlxuICAgIEBpZiAoaWNvbklucHV0KSB7XG4gICAgPGl1cy1pY29uLW1kIFtpY29uTmFtZV09XCJpY29uSW5wdXRcIiBjbGFzcz1cImljb24tY29sb3JcIj48L2l1cy1pY29uLW1kPlxuICAgIH1cbiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInRleHRJbnB1dFwiIFtwbGFjZWhvbGRlcl09XCJsYWJlbElucHV0XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGlucHV0KT1cIm9uSW5wdXQoKVwiXG4gICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCIgKGJsdXIpPVwib25CbHVyKClcIiAoa2V5cHJlc3MpPVwib25LZXlQcmVzcygkZXZlbnQpXCI+XG4gICAgPGRpdiBjbGFzcz1cImNudC1pY29uLXJpZ2h0XCI+XG4gICAgICBAaWYoIXNob3dMaXN0KXtcbiAgICAgIDxpdXMtaWNvbi1tZCBpY29uTmFtZT1cImljb24ta2V5Ym9hcmQtYXJyb3ctZG93blwiIGNsYXNzPVwiaWNvbi1hcnJvd3NcIj48L2l1cy1pY29uLW1kPlxuICAgICAgfUBlbHNle1xuICAgICAgPGRpdiAoY2xpY2spPVwiY2xvc2VMaXN0KCRldmVudClcIiBzdHlsZT1cImhlaWdodDogMjBweDtcIj5cbiAgICAgICAgPGl1cy1pY29uLW1kIGljb25OYW1lPVwiaWNvbi1rZXlib2FyZC1hcnJvdy11cFwiIGNsYXNzPVwiaWNvbi1hcnJvd3NcIj48L2l1cy1pY29uLW1kPlxuICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICBAaWYgKGxhYmVsSW5mZXJpb3IgJiYgaXNGb2N1c2VkKSB7XG4gIDxzcGFuIGNsYXNzPVwibGFiZWwtaW5mXCI+e3tsYWJlbEluZmVyaW9yfX08L3NwYW4+XG4gIH1cbiAgQGlmIChsYWJlbEluZmVyaW9yICYmICFpc0ZvY3VzZWQgJiYgaXNBbGVydFRleHQpIHtcbiAgPHNwYW4gY2xhc3M9XCJsYWJlbC1pbmZcIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICdhbGVydCc6ICFpc0ZvY3VzZWQgJiYgaXNBbGVydFRleHQgJiYgIWRpc2FibGVkXG4gICAgfVwiPnt7bGFiZWxJbmZlcmlvcn19PC9zcGFuPlxuICB9XG4gIEBpZiAoc2hvd0xpc3QpIHtcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1saXN0IHNjcm9sbGFibGUtc21hbGxcIj5cbiAgICA8ZGl2IChjbGljayk9XCJvblNlbGVjdE9wdGlvbigpXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Rvcj1cIml1cy1vcHRpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICB9XG48L2Rpdj4iXX0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l1cy1kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2lucHV0LXNlbGVjdC9pbnB1dC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM3QyxNQUFNLE9BQU8sb0JBQW9CO0lBUGpDO1FBU0UsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLHFCQUFnQixHQUFZLEtBQUssQ0FBQyxDQUFDLHNFQUFzRTtRQUN6RyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRUMsZ0JBQVcsR0FBVyxFQUFFLENBQUMsQ0FBQywrREFBK0Q7UUFDM0csYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBT3JCLGNBQVMsR0FBWSxFQUFFLENBQUM7UUFFdkIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQW9GbEQ7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QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFnQjtRQUM5QixzREFBc0Q7UUFDdEQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7K0dBeEdVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDhkQ1pqQywrM0RBa0RNLDYwSEQxQ00sZUFBZSxzRkFBRSxXQUFXLDhtQkFBRSxZQUFZOzs0RkFJekMsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQzs4QkFZMUIsV0FBVztzQkFBckMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFSSxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFJUCxjQUFjO3NCQURiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uTWRDb21wb25lbnQgfSBmcm9tICcuLi9pY29uLW1kL2ljb24tbWQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXVzLWlucHV0LXNlbGVjdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJY29uTWRDb21wb25lbnQsIEZvcm1zTW9kdWxlLCBDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2lucHV0LXNlbGVjdC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0U2VsZWN0Q29tcG9uZW50IHtcblxuICBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNBbGVydFRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd0xpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGFzQ2xpY2tlZEluc2lkZTogYm9vbGVhbiA9IGZhbHNlOyAvL0JhbmRlcmEgcGFyYSBkZXRlY3RhciBxdWUgeWEgZGllcm9uIGVsIHByaW1lciBjbGljayBlbiBlbCBjb21wb25lbnRlXG4gIHNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgY29tcG9uZW50SWQ6IHN0cmluZyA9ICcnOyAvL0RlYmUgbWFuZGFyIHVuIGNvbXBvbmVudGVJRCBwYXJhIGxsYW1hciBlbCBpbnB1dCB2YXJpYXMgdmVjZXNcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0hlbHBUZXh0ID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbGFiZWxTdXBlcmlvcj86IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWxJbmZlcmlvcj86IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWxJbnB1dD86IHN0cmluZztcbiAgQElucHV0KCkgaWNvbklucHV0Pzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHRleHRJbnB1dD86IHN0cmluZyA9ICcnO1xuXG4gIEBPdXRwdXQoKSBvbkNoYW5nZXNWYWx1ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBvbkFkZFRleHQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvL0VzdGEgZnVuY2lvbiBwZXJtaXRlIHF1ZSBlbCBzZSBjaWVycmUgZWwgbGlzdGFkbyBzaSBlbCB1c3VhcmlvIGRhIGNsaWNrIGVuIG90cm8gbGFkbyBmdWVyYSBkZWwgY29tcG9uZW50ZVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2tPdXRzaWRlKGV2ZW50OiBFdmVudCkge1xuICAgIGlmICghdGhpcy5oYXNDbGlja2VkSW5zaWRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmNvbXBvbmVudElkKTtcbiAgICBpZiAoY29udGFpbmVyICYmICFjb250YWluZXIuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgdGhpcy5jbG9zZUxpc3QoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZUxpc3QoZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgdGhpcy5zaG93TGlzdCA9IGZhbHNlO1xuICAgIGlmICghdGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5zaG93TGlzdCkge1xuICAgICAgdGhpcy5pc0FsZXJ0VGV4dCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNBbGVydFRleHQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2VzVmFsdWVFdmVudC5lbWl0KHRoaXMudGV4dElucHV0KTtcbiAgfVxuXG4gIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xuICAgIHRoaXMuc2hvd0xpc3QgPSB0cnVlO1xuICAgIHRoaXMuaGFzQ2xpY2tlZEluc2lkZSA9IHRydWU7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy5zZWxlY3RlZCkge1xuICAgICAgaWYgKHRoaXMudGV4dElucHV0ID09PSAnJykge1xuICAgICAgICB0aGlzLmlzQWxlcnRUZXh0ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNBbGVydFRleHQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbktleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5hZGRUZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgYWRkVGV4dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50ZXh0SW5wdXQhLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIHRoaXMub25BZGRUZXh0LmVtaXQodGhpcy50ZXh0SW5wdXQpO1xuICAgICAgdGhpcy50ZXh0SW5wdXQgPSAnJztcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdE9wdGlvbigpIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd0xpc3QgPSBmYWxzZTtcbiAgICB0aGlzLmlzQWxlcnRUZXh0ID0gZmFsc2U7XG4gIH1cblxuICBvbkRyb3BCbG9jayhldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgLy8gRXZpdGEgcXVlIHNlIGRyb3BlZSBjb250ZW5pZG8gZW4gZWwgaW5wdXRcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgb25EcmFnT3ZlckJsb2NrKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAvLyBFdml0YSBxdWUgc2UgcGVybWl0YSBhcnJhc3RyYXIgdGV4dG8gc29icmUgZWwgaW5wdXRcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWdlbmVyYWxcIiBbaWRdPVwiY29tcG9uZW50SWRcIj5cbiAgQGlmIChsYWJlbFN1cGVyaW9yKSB7XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXItbGFiZWwtc3VwXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAnZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgIH1cIj5cbiAgICBAaWYoIWRpc2FibGVkICYmIHJlcXVpcmVkKXtcbiAgICA8ZGl2IGNsYXNzPVwiaWNvbi1kb3RcIj48L2Rpdj5cbiAgICB9XG4gICAgPHNwYW4gY2xhc3M9XCJcIj57e2xhYmVsU3VwZXJpb3J9fTwvc3Bhbj5cbiAgICBAaWYoIWRpc2FibGVkICYmIHNob3dIZWxwVGV4dCl7XG4gICAgPGl1cy1pY29uLW1kIGljb25OYW1lPVwiaWNvbi1oZWxwXCIgY2xhc3M9XCJpY29uLWNvbG9yLWhlbHBcIj48L2l1cy1pY29uLW1kPlxuICAgIH1cbiAgICA8c3Bhbj46PC9zcGFuPlxuICA8L2Rpdj5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXRleHRmaWVsZFwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2Rpc2FibGVkJzogZGlzYWJsZWQsXG4gICAgICAgICdmb2N1c2VkJzogaXNGb2N1c2VkLFxuICAgICAgICAnYWxlcnQnOiAhaXNGb2N1c2VkICYmIGlzQWxlcnRUZXh0ICYmICFkaXNhYmxlZFxuICAgIH1cIiAoY2xpY2spPVwib25Gb2N1cygpXCI+XG4gICAgQGlmIChpY29uSW5wdXQpIHtcbiAgICA8aXVzLWljb24tbWQgW2ljb25OYW1lXT1cImljb25JbnB1dFwiIGNsYXNzPVwiaWNvbi1jb2xvclwiPjwvaXVzLWljb24tbWQ+XG4gICAgfVxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwidGV4dElucHV0XCIgW3BsYWNlaG9sZGVyXT1cImxhYmVsSW5wdXRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoaW5wdXQpPVwib25JbnB1dCgpXCJcbiAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIiAoYmx1cik9XCJvbkJsdXIoKVwiIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIiAoZHJvcCk9XCJvbkRyb3BCbG9jaygkZXZlbnQpXCIgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXJCbG9jaygkZXZlbnQpXCI+XG4gICAgPGRpdiBjbGFzcz1cImNudC1pY29uLXJpZ2h0XCI+XG4gICAgICBAaWYoIXNob3dMaXN0KXtcbiAgICAgIDxpdXMtaWNvbi1tZCBpY29uTmFtZT1cImljb24ta2V5Ym9hcmQtYXJyb3ctZG93blwiIGNsYXNzPVwiaWNvbi1hcnJvd3NcIj48L2l1cy1pY29uLW1kPlxuICAgICAgfUBlbHNle1xuICAgICAgPGRpdiAoY2xpY2spPVwiY2xvc2VMaXN0KCRldmVudClcIiBzdHlsZT1cImhlaWdodDogMjBweDtcIj5cbiAgICAgICAgPGl1cy1pY29uLW1kIGljb25OYW1lPVwiaWNvbi1rZXlib2FyZC1hcnJvdy11cFwiIGNsYXNzPVwiaWNvbi1hcnJvd3NcIj48L2l1cy1pY29uLW1kPlxuICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICBAaWYgKGxhYmVsSW5mZXJpb3IgJiYgaXNGb2N1c2VkKSB7XG4gIDxzcGFuIGNsYXNzPVwibGFiZWwtaW5mXCI+e3tsYWJlbEluZmVyaW9yfX08L3NwYW4+XG4gIH1cbiAgQGlmIChsYWJlbEluZmVyaW9yICYmICFpc0ZvY3VzZWQgJiYgaXNBbGVydFRleHQpIHtcbiAgPHNwYW4gY2xhc3M9XCJsYWJlbC1pbmZcIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICdhbGVydCc6ICFpc0ZvY3VzZWQgJiYgaXNBbGVydFRleHQgJiYgIWRpc2FibGVkXG4gICAgfVwiPnt7bGFiZWxJbmZlcmlvcn19PC9zcGFuPlxuICB9XG4gIEBpZiAoc2hvd0xpc3QpIHtcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1saXN0IHNjcm9sbGFibGUtc21hbGxcIj5cbiAgICA8ZGl2IChjbGljayk9XCJvblNlbGVjdE9wdGlvbigpXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Rvcj1cIml1cy1vcHRpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICB9XG48L2Rpdj4iXX0=
@@ -57,12 +57,20 @@ export class InputTextfieldComponent {
57
57
  this.textInput = '';
58
58
  }
59
59
  }
60
+ onDropBlock(event) {
61
+ // Evita que se dropee contenido en el input
62
+ event.preventDefault();
63
+ }
64
+ onDragOverBlock(event) {
65
+ // Evita que se permita arrastrar texto sobre el input
66
+ event.preventDefault();
67
+ }
60
68
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTextfieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputTextfieldComponent, isStandalone: true, selector: "ius-input-textfield", inputs: { textInput: "textInput", required: "required", disabled: "disabled", isEnableClearText: "isEnableClearText", showHelpText: "showHelpText", labelSuperior: "labelSuperior", labelInferior: "labelInferior", labelInput: "labelInput", iconInput: "iconInput", inputType: "inputType", initialText: "initialText" }, outputs: { onChangesValueEvent: "onChangesValueEvent", onAddText: "onAddText" }, ngImport: i0, template: "<div class=\"container-general\">\r\n @if (labelSuperior) {\r\n <div class=\"container-label-sup\" [ngClass]=\"{\r\n 'disabled': disabled\r\n }\">\r\n @if(!disabled && required){\r\n <div class=\"icon-dot\"></div>\r\n }\r\n <span class=\"\">{{labelSuperior}}</span>\r\n @if(!disabled && showHelpText){\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-color-help\"></ius-icon-md>\r\n }\r\n <span>:</span>\r\n </div>\r\n }\r\n <div class=\"container-textfield\" [ngClass]=\"{\r\n 'disabled': disabled,\r\n 'focused': isFocused,\r\n 'alert': !isFocused && isAlertText && !disabled\r\n }\">\r\n @if (iconInput) {\r\n <ius-icon-md [iconName]=\"iconInput\" class=\"icon-color\"></ius-icon-md>\r\n }\r\n <input [type]=\"inputType\" [(ngModel)]=\"textInput\" [placeholder]=\"labelInput\" [disabled]=\"disabled\" (input)=\"onInput()\"\r\n (focus)=\"onFocus()\" (blur)=\"onBlur()\" (keypress)=\"onKeyPress($event)\">\r\n @if (!disabled && textInput && isEnableClearText) {\r\n <button class=\"button-delete\" (click)=\"clearSearch()\">\r\n <ius-icon-md iconName=\"icon-cancel\" class=\"icon-color-cancel\"></ius-icon-md>\r\n </button>\r\n }\r\n </div>\r\n @if (labelInferior && isFocused) {\r\n <span class=\"label-inf\">{{labelInferior}}</span>\r\n }\r\n @if (labelInferior && !isFocused && isAlertText) {\r\n <span class=\"label-inf\" [ngClass]=\"{\r\n 'alert': !isFocused && isAlertText && !disabled\r\n }\">{{labelInferior}}</span>\r\n }\r\n\r\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.container-general{position:relative;height:100%}.container-textfield{display:flex;padding:10px 12px;justify-content:center;align-items:flex-start;gap:4px;border:1px solid #f5f5f5;border-radius:8px;background:#f5f5f5;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px;transition:all .2s ease-in-out}.container-textfield:hover:not(.disabled):not(.focused):not(.alert){background:#edf6ff}.container-textfield.focused{border:1px solid #0581BC;background:#edf6ff}.container-textfield.disabled{background:#f5f5f5}.container-textfield.disabled .icon-color{color:#bfbfbf}.container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.container-textfield.alert{border:1px solid #DB2E2A;background:#fff4f0}.icon-color{color:#595959}.icon-color-cancel{color:#013169}input{display:flex;align-items:center;flex:1 0 0;border:none;outline:none;background-color:transparent;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.button-delete{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0;color:#595959}.button-delete:hover{color:#013169}.container-label-sup{display:flex;align-items:center;gap:4px;margin-bottom:8px;color:#333;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.container-label-sup.disabled{color:#bfbfbf}.icon-dot{display:flex;align-items:center;width:4px;height:4px;aspect-ratio:1/1;background-color:#db2e2a;border-radius:100px}.icon-color-help{color:#8c8c8c}.label-inf{display:flex;position:absolute;margin-top:4px;color:#595959;font-family:Roboto,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.label-inf.alert{color:#931224}\n"], dependencies: [{ kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputTextfieldComponent, isStandalone: true, selector: "ius-input-textfield", inputs: { textInput: "textInput", required: "required", disabled: "disabled", isEnableClearText: "isEnableClearText", showHelpText: "showHelpText", labelSuperior: "labelSuperior", labelInferior: "labelInferior", labelInput: "labelInput", iconInput: "iconInput", inputType: "inputType", initialText: "initialText" }, outputs: { onChangesValueEvent: "onChangesValueEvent", onAddText: "onAddText" }, ngImport: i0, template: "<div class=\"container-general\">\r\n @if (labelSuperior) {\r\n <div class=\"container-label-sup\" [ngClass]=\"{\r\n 'disabled': disabled\r\n }\">\r\n @if(!disabled && required){\r\n <div class=\"icon-dot\"></div>\r\n }\r\n <span class=\"\">{{labelSuperior}}</span>\r\n @if(!disabled && showHelpText){\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-color-help\"></ius-icon-md>\r\n }\r\n <span>:</span>\r\n </div>\r\n }\r\n <div class=\"container-textfield\" [ngClass]=\"{\r\n 'disabled': disabled,\r\n 'focused': isFocused,\r\n 'alert': !isFocused && isAlertText && !disabled\r\n }\">\r\n @if (iconInput) {\r\n <ius-icon-md [iconName]=\"iconInput\" class=\"icon-color\"></ius-icon-md>\r\n }\r\n <input [type]=\"inputType\" [(ngModel)]=\"textInput\" [placeholder]=\"labelInput\" [disabled]=\"disabled\" (input)=\"onInput()\"\r\n (focus)=\"onFocus()\" (blur)=\"onBlur()\" (keypress)=\"onKeyPress($event)\" (drop)=\"onDropBlock($event)\" (dragover)=\"onDragOverBlock($event)\">\r\n @if (!disabled && textInput && isEnableClearText) {\r\n <button class=\"button-delete\" (click)=\"clearSearch()\">\r\n <ius-icon-md iconName=\"icon-cancel\" class=\"icon-color-cancel\"></ius-icon-md>\r\n </button>\r\n }\r\n </div>\r\n @if (labelInferior && isFocused) {\r\n <span class=\"label-inf\">{{labelInferior}}</span>\r\n }\r\n @if (labelInferior && !isFocused && isAlertText) {\r\n <span class=\"label-inf\" [ngClass]=\"{\r\n 'alert': !isFocused && isAlertText && !disabled\r\n }\">{{labelInferior}}</span>\r\n }\r\n\r\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.container-general{position:relative;height:100%}.container-textfield{display:flex;padding:10px 12px;justify-content:center;align-items:flex-start;gap:4px;border:1px solid #f5f5f5;border-radius:8px;background:#f5f5f5;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px;transition:all .2s ease-in-out}.container-textfield:hover:not(.disabled):not(.focused):not(.alert){background:#edf6ff}.container-textfield.focused{border:1px solid #0581BC;background:#edf6ff}.container-textfield.disabled{background:#f5f5f5}.container-textfield.disabled .icon-color{color:#bfbfbf}.container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.container-textfield.alert{border:1px solid #DB2E2A;background:#fff4f0}.icon-color{color:#595959}.icon-color-cancel{color:#013169}input{display:flex;align-items:center;flex:1 0 0;border:none;outline:none;background-color:transparent;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.button-delete{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0;color:#595959}.button-delete:hover{color:#013169}.container-label-sup{display:flex;align-items:center;gap:4px;margin-bottom:8px;color:#333;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.container-label-sup.disabled{color:#bfbfbf}.icon-dot{display:flex;align-items:center;width:4px;height:4px;aspect-ratio:1/1;background-color:#db2e2a;border-radius:100px}.icon-color-help{color:#8c8c8c}.label-inf{display:flex;position:absolute;margin-top:4px;color:#595959;font-family:Roboto,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.label-inf.alert{color:#931224}\n"], dependencies: [{ kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
62
70
  }
63
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTextfieldComponent, decorators: [{
64
72
  type: Component,
65
- args: [{ selector: 'ius-input-textfield', standalone: true, imports: [IconMdComponent, FormsModule, CommonModule], template: "<div class=\"container-general\">\r\n @if (labelSuperior) {\r\n <div class=\"container-label-sup\" [ngClass]=\"{\r\n 'disabled': disabled\r\n }\">\r\n @if(!disabled && required){\r\n <div class=\"icon-dot\"></div>\r\n }\r\n <span class=\"\">{{labelSuperior}}</span>\r\n @if(!disabled && showHelpText){\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-color-help\"></ius-icon-md>\r\n }\r\n <span>:</span>\r\n </div>\r\n }\r\n <div class=\"container-textfield\" [ngClass]=\"{\r\n 'disabled': disabled,\r\n 'focused': isFocused,\r\n 'alert': !isFocused && isAlertText && !disabled\r\n }\">\r\n @if (iconInput) {\r\n <ius-icon-md [iconName]=\"iconInput\" class=\"icon-color\"></ius-icon-md>\r\n }\r\n <input [type]=\"inputType\" [(ngModel)]=\"textInput\" [placeholder]=\"labelInput\" [disabled]=\"disabled\" (input)=\"onInput()\"\r\n (focus)=\"onFocus()\" (blur)=\"onBlur()\" (keypress)=\"onKeyPress($event)\">\r\n @if (!disabled && textInput && isEnableClearText) {\r\n <button class=\"button-delete\" (click)=\"clearSearch()\">\r\n <ius-icon-md iconName=\"icon-cancel\" class=\"icon-color-cancel\"></ius-icon-md>\r\n </button>\r\n }\r\n </div>\r\n @if (labelInferior && isFocused) {\r\n <span class=\"label-inf\">{{labelInferior}}</span>\r\n }\r\n @if (labelInferior && !isFocused && isAlertText) {\r\n <span class=\"label-inf\" [ngClass]=\"{\r\n 'alert': !isFocused && isAlertText && !disabled\r\n }\">{{labelInferior}}</span>\r\n }\r\n\r\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.container-general{position:relative;height:100%}.container-textfield{display:flex;padding:10px 12px;justify-content:center;align-items:flex-start;gap:4px;border:1px solid #f5f5f5;border-radius:8px;background:#f5f5f5;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px;transition:all .2s ease-in-out}.container-textfield:hover:not(.disabled):not(.focused):not(.alert){background:#edf6ff}.container-textfield.focused{border:1px solid #0581BC;background:#edf6ff}.container-textfield.disabled{background:#f5f5f5}.container-textfield.disabled .icon-color{color:#bfbfbf}.container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.container-textfield.alert{border:1px solid #DB2E2A;background:#fff4f0}.icon-color{color:#595959}.icon-color-cancel{color:#013169}input{display:flex;align-items:center;flex:1 0 0;border:none;outline:none;background-color:transparent;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.button-delete{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0;color:#595959}.button-delete:hover{color:#013169}.container-label-sup{display:flex;align-items:center;gap:4px;margin-bottom:8px;color:#333;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.container-label-sup.disabled{color:#bfbfbf}.icon-dot{display:flex;align-items:center;width:4px;height:4px;aspect-ratio:1/1;background-color:#db2e2a;border-radius:100px}.icon-color-help{color:#8c8c8c}.label-inf{display:flex;position:absolute;margin-top:4px;color:#595959;font-family:Roboto,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.label-inf.alert{color:#931224}\n"] }]
73
+ args: [{ selector: 'ius-input-textfield', standalone: true, imports: [IconMdComponent, FormsModule, CommonModule], template: "<div class=\"container-general\">\r\n @if (labelSuperior) {\r\n <div class=\"container-label-sup\" [ngClass]=\"{\r\n 'disabled': disabled\r\n }\">\r\n @if(!disabled && required){\r\n <div class=\"icon-dot\"></div>\r\n }\r\n <span class=\"\">{{labelSuperior}}</span>\r\n @if(!disabled && showHelpText){\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-color-help\"></ius-icon-md>\r\n }\r\n <span>:</span>\r\n </div>\r\n }\r\n <div class=\"container-textfield\" [ngClass]=\"{\r\n 'disabled': disabled,\r\n 'focused': isFocused,\r\n 'alert': !isFocused && isAlertText && !disabled\r\n }\">\r\n @if (iconInput) {\r\n <ius-icon-md [iconName]=\"iconInput\" class=\"icon-color\"></ius-icon-md>\r\n }\r\n <input [type]=\"inputType\" [(ngModel)]=\"textInput\" [placeholder]=\"labelInput\" [disabled]=\"disabled\" (input)=\"onInput()\"\r\n (focus)=\"onFocus()\" (blur)=\"onBlur()\" (keypress)=\"onKeyPress($event)\" (drop)=\"onDropBlock($event)\" (dragover)=\"onDragOverBlock($event)\">\r\n @if (!disabled && textInput && isEnableClearText) {\r\n <button class=\"button-delete\" (click)=\"clearSearch()\">\r\n <ius-icon-md iconName=\"icon-cancel\" class=\"icon-color-cancel\"></ius-icon-md>\r\n </button>\r\n }\r\n </div>\r\n @if (labelInferior && isFocused) {\r\n <span class=\"label-inf\">{{labelInferior}}</span>\r\n }\r\n @if (labelInferior && !isFocused && isAlertText) {\r\n <span class=\"label-inf\" [ngClass]=\"{\r\n 'alert': !isFocused && isAlertText && !disabled\r\n }\">{{labelInferior}}</span>\r\n }\r\n\r\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.container-general{position:relative;height:100%}.container-textfield{display:flex;padding:10px 12px;justify-content:center;align-items:flex-start;gap:4px;border:1px solid #f5f5f5;border-radius:8px;background:#f5f5f5;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px;transition:all .2s ease-in-out}.container-textfield:hover:not(.disabled):not(.focused):not(.alert){background:#edf6ff}.container-textfield.focused{border:1px solid #0581BC;background:#edf6ff}.container-textfield.disabled{background:#f5f5f5}.container-textfield.disabled .icon-color{color:#bfbfbf}.container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.container-textfield.alert{border:1px solid #DB2E2A;background:#fff4f0}.icon-color{color:#595959}.icon-color-cancel{color:#013169}input{display:flex;align-items:center;flex:1 0 0;border:none;outline:none;background-color:transparent;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.button-delete{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0;color:#595959}.button-delete:hover{color:#013169}.container-label-sup{display:flex;align-items:center;gap:4px;margin-bottom:8px;color:#333;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.container-label-sup.disabled{color:#bfbfbf}.icon-dot{display:flex;align-items:center;width:4px;height:4px;aspect-ratio:1/1;background-color:#db2e2a;border-radius:100px}.icon-color-help{color:#8c8c8c}.label-inf{display:flex;position:absolute;margin-top:4px;color:#595959;font-family:Roboto,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.label-inf.alert{color:#931224}\n"] }]
66
74
  }], propDecorators: { textInput: [{
67
75
  type: Input
68
76
  }], required: [{
@@ -90,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
90
98
  }], onAddText: [{
91
99
  type: Output
92
100
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dGZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l1cy1kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2lucHV0LXRleHRmaWVsZC9pbnB1dC10ZXh0ZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtdGV4dGZpZWxkL2lucHV0LXRleHRmaWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBUzdDLE1BQU0sT0FBTyx1QkFBdUI7SUFQcEM7UUFRVyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDcEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUlyQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXhCLGNBQVMsR0FBVyxNQUFNLENBQUM7UUFJMUIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQTZDbEQ7SUEzQ0MsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQzFCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBb0I7UUFDN0IsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDOytHQTlEVSx1QkFBdUI7bUdBQXZCLHVCQUF1Qiw0ZENacEMsaW9EQXdDTSw2cEdEaENNLGVBQWUsc0ZBQUUsV0FBVyw4bUJBQUUsWUFBWTs7NEZBSXpDLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUM7OEJBSzVDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSWNvbk1kQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi1tZC9pY29uLW1kLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpdXMtaW5wdXQtdGV4dGZpZWxkJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtJY29uTWRDb21wb25lbnQsIEZvcm1zTW9kdWxlLCBDb21tb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10ZXh0ZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9pbnB1dC10ZXh0ZmllbGQuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRUZXh0ZmllbGRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHRleHRJbnB1dDogc3RyaW5nID0gJyc7XHJcbiAgaXNGb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNBbGVydFRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNFbmFibGVDbGVhclRleHQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93SGVscFRleHQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgbGFiZWxTdXBlcmlvcj86IHN0cmluZztcclxuICBASW5wdXQoKSBsYWJlbEluZmVyaW9yPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhYmVsSW5wdXQ6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGljb25JbnB1dD86IHN0cmluZztcclxuICBASW5wdXQoKSBpbnB1dFR5cGU6IHN0cmluZyA9ICd0ZXh0JztcclxuXHJcbiAgQElucHV0KCkgaW5pdGlhbFRleHQ/OiBzdHJpbmc7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZXNWYWx1ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIG9uQWRkVGV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmluaXRpYWxUZXh0KSB7XHJcbiAgICAgIHRoaXMudGV4dElucHV0ID0gdGhpcy5pbml0aWFsVGV4dDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyU2VhcmNoKCkge1xyXG4gICAgdGhpcy50ZXh0SW5wdXQgPSAnJztcclxuICAgIHRoaXMub25CbHVyKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlc1ZhbHVlRXZlbnQuZW1pdCh0aGlzLnRleHRJbnB1dCk7XHJcbiAgfVxyXG5cclxuICBvbklucHV0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZXNWYWx1ZUV2ZW50LmVtaXQodGhpcy50ZXh0SW5wdXQpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uQmx1cigpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5yZXF1aXJlZCkge1xyXG4gICAgICBpZiAodGhpcy50ZXh0SW5wdXQgPT09ICcnKSB7XHJcbiAgICAgICAgdGhpcy5pc0FsZXJ0VGV4dCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pc0FsZXJ0VGV4dCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbktleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgIHRoaXMuYWRkVGV4dCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkVGV4dCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRleHRJbnB1dC50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgIHRoaXMub25BZGRUZXh0LmVtaXQodGhpcy50ZXh0SW5wdXQpO1xyXG4gICAgICB0aGlzLnRleHRJbnB1dCA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWdlbmVyYWxcIj5cclxuICAgIEBpZiAobGFiZWxTdXBlcmlvcikge1xyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1sYWJlbC1zdXBcIiBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgJ2Rpc2FibGVkJzogZGlzYWJsZWRcclxuICAgIH1cIj5cclxuICAgICAgICBAaWYoIWRpc2FibGVkICYmIHJlcXVpcmVkKXtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1kb3RcIj48L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJcIj57e2xhYmVsU3VwZXJpb3J9fTwvc3Bhbj5cclxuICAgICAgICBAaWYoIWRpc2FibGVkICYmIHNob3dIZWxwVGV4dCl7XHJcbiAgICAgICAgPGl1cy1pY29uLW1kIGljb25OYW1lPVwiaWNvbi1oZWxwXCIgY2xhc3M9XCJpY29uLWNvbG9yLWhlbHBcIj48L2l1cy1pY29uLW1kPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8c3Bhbj46PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXRleHRmaWVsZFwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAnZGlzYWJsZWQnOiBkaXNhYmxlZCxcclxuICAgICAgICAnZm9jdXNlZCc6IGlzRm9jdXNlZCxcclxuICAgICAgICAnYWxlcnQnOiAhaXNGb2N1c2VkICYmIGlzQWxlcnRUZXh0ICYmICFkaXNhYmxlZFxyXG4gICAgfVwiPlxyXG4gICAgICAgIEBpZiAoaWNvbklucHV0KSB7XHJcbiAgICAgICAgPGl1cy1pY29uLW1kIFtpY29uTmFtZV09XCJpY29uSW5wdXRcIiBjbGFzcz1cImljb24tY29sb3JcIj48L2l1cy1pY29uLW1kPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8aW5wdXQgW3R5cGVdPVwiaW5wdXRUeXBlXCIgWyhuZ01vZGVsKV09XCJ0ZXh0SW5wdXRcIiBbcGxhY2Vob2xkZXJdPVwibGFiZWxJbnB1dFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIChpbnB1dCk9XCJvbklucHV0KClcIlxyXG4gICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCIgKGJsdXIpPVwib25CbHVyKClcIiAoa2V5cHJlc3MpPVwib25LZXlQcmVzcygkZXZlbnQpXCI+XHJcbiAgICAgICAgQGlmICghZGlzYWJsZWQgJiYgdGV4dElucHV0ICYmIGlzRW5hYmxlQ2xlYXJUZXh0KSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi1kZWxldGVcIiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiPlxyXG4gICAgICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWNhbmNlbFwiIGNsYXNzPVwiaWNvbi1jb2xvci1jYW5jZWxcIj48L2l1cy1pY29uLW1kPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgQGlmIChsYWJlbEluZmVyaW9yICYmIGlzRm9jdXNlZCkge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1pbmZcIj57e2xhYmVsSW5mZXJpb3J9fTwvc3Bhbj5cclxuICAgIH1cclxuICAgIEBpZiAobGFiZWxJbmZlcmlvciAmJiAhaXNGb2N1c2VkICYmIGlzQWxlcnRUZXh0KSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cImxhYmVsLWluZlwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAnYWxlcnQnOiAhaXNGb2N1c2VkICYmIGlzQWxlcnRUZXh0ICYmICFkaXNhYmxlZFxyXG4gICAgfVwiPnt7bGFiZWxJbmZlcmlvcn19PC9zcGFuPlxyXG4gICAgfVxyXG5cclxuPC9kaXY+Il19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dGZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l1cy1kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2lucHV0LXRleHRmaWVsZC9pbnB1dC10ZXh0ZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtdGV4dGZpZWxkL2lucHV0LXRleHRmaWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBUzdDLE1BQU0sT0FBTyx1QkFBdUI7SUFQcEM7UUFRVyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDcEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUlyQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXhCLGNBQVMsR0FBVyxNQUFNLENBQUM7UUFJMUIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQXVEbEQ7SUFyREMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQzFCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBb0I7UUFDN0IsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWdCO1FBQzFCLDRDQUE0QztRQUM1QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFnQjtRQUM5QixzREFBc0Q7UUFDdEQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7K0dBeEVVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDRkQ1pwQyx1c0RBd0NNLDZwR0RoQ00sZUFBZSxzRkFBRSxXQUFXLDhtQkFBRSxZQUFZOzs0RkFJekMsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQzs4QkFLNUMsU0FBUztzQkFBakIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJY29uTWRDb21wb25lbnQgfSBmcm9tICcuLi9pY29uLW1kL2ljb24tbWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2l1cy1pbnB1dC10ZXh0ZmllbGQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0ljb25NZENvbXBvbmVudCwgRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXRleHRmaWVsZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2lucHV0LXRleHRmaWVsZC5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dFRleHRmaWVsZENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdGV4dElucHV0OiBzdHJpbmcgPSAnJztcclxuICBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0FsZXJ0VGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0VuYWJsZUNsZWFyVGV4dCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dIZWxwVGV4dCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBsYWJlbFN1cGVyaW9yPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhYmVsSW5mZXJpb3I/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGFiZWxJbnB1dDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaWNvbklucHV0Pzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlucHV0VHlwZTogc3RyaW5nID0gJ3RleHQnO1xyXG5cclxuICBASW5wdXQoKSBpbml0aWFsVGV4dD86IHN0cmluZztcclxuXHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlc1ZhbHVlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb25BZGRUZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5pdGlhbFRleHQpIHtcclxuICAgICAgdGhpcy50ZXh0SW5wdXQgPSB0aGlzLmluaXRpYWxUZXh0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJTZWFyY2goKSB7XHJcbiAgICB0aGlzLnRleHRJbnB1dCA9ICcnO1xyXG4gICAgdGhpcy5vbkJsdXIoKTtcclxuICAgIHRoaXMub25DaGFuZ2VzVmFsdWVFdmVudC5lbWl0KHRoaXMudGV4dElucHV0KTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlc1ZhbHVlRXZlbnQuZW1pdCh0aGlzLnRleHRJbnB1dCk7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLnJlcXVpcmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLnRleHRJbnB1dCA9PT0gJycpIHtcclxuICAgICAgICB0aGlzLmlzQWxlcnRUZXh0ID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmlzQWxlcnRUZXh0ID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5hZGRUZXh0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRUZXh0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudGV4dElucHV0LnRyaW0oKSAhPT0gJycpIHtcclxuICAgICAgdGhpcy5vbkFkZFRleHQuZW1pdCh0aGlzLnRleHRJbnB1dCk7XHJcbiAgICAgIHRoaXMudGV4dElucHV0ID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkRyb3BCbG9jayhldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICAvLyBFdml0YSBxdWUgc2UgZHJvcGVlIGNvbnRlbmlkbyBlbiBlbCBpbnB1dFxyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIG9uRHJhZ092ZXJCbG9jayhldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICAvLyBFdml0YSBxdWUgc2UgcGVybWl0YSBhcnJhc3RyYXIgdGV4dG8gc29icmUgZWwgaW5wdXRcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItZ2VuZXJhbFwiPlxyXG4gICAgQGlmIChsYWJlbFN1cGVyaW9yKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWxhYmVsLXN1cFwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAnZGlzYWJsZWQnOiBkaXNhYmxlZFxyXG4gICAgfVwiPlxyXG4gICAgICAgIEBpZighZGlzYWJsZWQgJiYgcmVxdWlyZWQpe1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWRvdFwiPjwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIlwiPnt7bGFiZWxTdXBlcmlvcn19PC9zcGFuPlxyXG4gICAgICAgIEBpZighZGlzYWJsZWQgJiYgc2hvd0hlbHBUZXh0KXtcclxuICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWhlbHBcIiBjbGFzcz1cImljb24tY29sb3ItaGVscFwiPjwvaXVzLWljb24tbWQ+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxzcGFuPjo8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItdGV4dGZpZWxkXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICdkaXNhYmxlZCc6IGRpc2FibGVkLFxyXG4gICAgICAgICdmb2N1c2VkJzogaXNGb2N1c2VkLFxyXG4gICAgICAgICdhbGVydCc6ICFpc0ZvY3VzZWQgJiYgaXNBbGVydFRleHQgJiYgIWRpc2FibGVkXHJcbiAgICB9XCI+XHJcbiAgICAgICAgQGlmIChpY29uSW5wdXQpIHtcclxuICAgICAgICA8aXVzLWljb24tbWQgW2ljb25OYW1lXT1cImljb25JbnB1dFwiIGNsYXNzPVwiaWNvbi1jb2xvclwiPjwvaXVzLWljb24tbWQ+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxpbnB1dCBbdHlwZV09XCJpbnB1dFR5cGVcIiBbKG5nTW9kZWwpXT1cInRleHRJbnB1dFwiIFtwbGFjZWhvbGRlcl09XCJsYWJlbElucHV0XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGlucHV0KT1cIm9uSW5wdXQoKVwiXHJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIiAoYmx1cik9XCJvbkJsdXIoKVwiIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIiAoZHJvcCk9XCJvbkRyb3BCbG9jaygkZXZlbnQpXCIgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXJCbG9jaygkZXZlbnQpXCI+XHJcbiAgICAgICAgQGlmICghZGlzYWJsZWQgJiYgdGV4dElucHV0ICYmIGlzRW5hYmxlQ2xlYXJUZXh0KSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi1kZWxldGVcIiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiPlxyXG4gICAgICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWNhbmNlbFwiIGNsYXNzPVwiaWNvbi1jb2xvci1jYW5jZWxcIj48L2l1cy1pY29uLW1kPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgQGlmIChsYWJlbEluZmVyaW9yICYmIGlzRm9jdXNlZCkge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1pbmZcIj57e2xhYmVsSW5mZXJpb3J9fTwvc3Bhbj5cclxuICAgIH1cclxuICAgIEBpZiAobGFiZWxJbmZlcmlvciAmJiAhaXNGb2N1c2VkICYmIGlzQWxlcnRUZXh0KSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cImxhYmVsLWluZlwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAnYWxlcnQnOiAhaXNGb2N1c2VkICYmIGlzQWxlcnRUZXh0ICYmICFkaXNhYmxlZFxyXG4gICAgfVwiPnt7bGFiZWxJbmZlcmlvcn19PC9zcGFuPlxyXG4gICAgfVxyXG5cclxuPC9kaXY+Il19