@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.
- package/esm2022/lib/charts-bar-grouped/charts-bar-grouped.component.mjs +238 -0
- package/esm2022/lib/charts-bar-grouped/index.mjs +2 -0
- package/esm2022/lib/input-select/input-select.component.mjs +11 -3
- package/esm2022/lib/input-textfield/input-textfield.component.mjs +11 -3
- package/esm2022/lib/search-bar/search-bar.component.mjs +11 -3
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/litigiovirtual-ius-design-components.mjs +266 -8
- package/fesm2022/litigiovirtual-ius-design-components.mjs.map +1 -1
- package/lib/charts-bar-grouped/charts-bar-grouped.component.d.ts +98 -0
- package/lib/charts-bar-grouped/index.d.ts +1 -0
- package/lib/input-select/input-select.component.d.ts +2 -0
- package/lib/input-textfield/input-textfield.component.d.ts +2 -0
- package/lib/search-bar/search-bar.component.d.ts +2 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLWJhci1ncm91cGVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l1cy1kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2NoYXJ0cy1iYXItZ3JvdXBlZC9jaGFydHMtYmFyLWdyb3VwZWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvY2hhcnRzLWJhci1ncm91cGVkL2NoYXJ0cy1iYXItZ3JvdXBlZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFDM0IsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBRXZDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQTJCbkUsTUFBTSxPQUFPLDRCQUE0QjtJQWlFdkMsWUFBb0IsSUFBWSxFQUFVLE1BQStCO1FBQXJELFNBQUksR0FBSixJQUFJLENBQVE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQWhFaEUsU0FBSSxHQUFlLEVBQUUsQ0FBQztRQUN0QixtQkFBYyxHQUF1QixRQUFRLENBQUM7UUFLdkQsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUVWLHlDQUF5QztRQUN6QyxVQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ1osU0FBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLGlEQUFpRDtRQUU3RCxzQkFBc0I7UUFDdEIsV0FBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3RELGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFZCxlQUFlO1FBQ2YsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUVMLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBb0QsQ0FBQztRQUtsRixVQUFLLEdBQWtCLElBQUksQ0FBQztRQUVwQyxTQUFTO1FBQ0QsVUFBSyxHQUFHLE1BQU0sQ0FBWSxFQUFFLENBQUMsQ0FBQztRQUM5QixZQUFPLEdBQUcsTUFBTSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLFlBQU8sR0FBRyxNQUFNLENBQVcsRUFBRSxDQUFDLENBQUM7UUFDL0IsWUFBTyxHQUFHLE1BQU0sQ0FBaUIsRUFBRSxDQUFDLENBQUM7UUFDckMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsQixXQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUssdUNBQXVDO1FBQy9ELFdBQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBSywyQ0FBMkM7UUFDbkUsZUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdDQUFnQztRQUN4RCxrQkFBYSxHQUFHLE1BQU0sQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUNyQyxnQkFBVyxHQUFHLE1BQU0sQ0FBYyxFQUFFLENBQUMsQ0FBQztRQUU5QyxZQUFZO1FBQ0gsU0FBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNwQyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDeEMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN4QyxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsY0FBUyxHQUFLLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNoRCxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUNwRCxlQUFVLEdBQUssUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRWxELGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FDdkUsQ0FBQztRQUVPLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5RSxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTlFLFNBQUksR0FBRyxJQUFJLENBQUM7SUFFdUQsQ0FBQztJQUU3RSxlQUFlO1FBQ2IsNkVBQTZFO1FBQzdFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUVILG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDWixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2xDLElBQUksT0FBTztvQkFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUk7WUFBRSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELFdBQVc7UUFDVCx1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsOERBQThEO0lBQ3RELEdBQUcsQ0FBQyxFQUFjO1FBQ3hCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJO1lBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxLQUFLLEdBQUcscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsaUZBQWlGO0lBQ3pFLFVBQVU7UUFDaEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEUsTUFBTSxLQUFLLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRTVDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxJQUFJLENBQUMsQ0FBQztlQUN6RCxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5QyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFBQyxDQUFDO1FBQ3hFLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQUMsQ0FBQztRQUN4RSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsb0NBQW9DO0lBQzVCLE1BQU07UUFDWixNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2FBQzlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3pGLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRW5DLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsaUJBQWlCO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDcEMsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPO1lBQUUsS0FBSyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSztnQkFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUM3QixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFFRCxvQkFBb0I7UUFDcEIsTUFBTSxPQUFPLEdBQUc7WUFDZCxTQUFTLEVBQUUsV0FBVztZQUN0QixTQUFTLEVBQUUsV0FBVztZQUN0QixTQUFTLEVBQUUsY0FBYztZQUN6QixTQUFTLEVBQUUsV0FBVztZQUN0QixTQUFTLEVBQUUsY0FBYztZQUN6QixTQUFTLEVBQUUsV0FBVztTQUN2QixDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQW1CLEVBQUUsQ0FBQztRQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRFLGFBQWE7UUFDYixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUMzQixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDNUUsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxRQUFRO1FBQ1IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckIseUNBQXlDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsRSxvQ0FBb0M7UUFDcEMsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUM1QixNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3hCLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzdFLE1BQU0saUJBQWlCLEdBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUYsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRSxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUN6RSxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUN4RCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUvQixtQ0FBbUM7UUFDbkMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFjLEVBQUUsQ0FBQztRQUMzQixNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQWdCLEVBQUUsQ0FBQztRQUVoQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzNCLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFckIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7Z0JBQ3pCLE1BQU0sQ0FBQyxHQUFHLE1BQU0sR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFdEQsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUI7Z0JBRTlELE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ3JELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ1IsVUFBVSxFQUFFLENBQUMsQ0FBQyxLQUFLO29CQUNuQixXQUFXLEVBQUUsRUFBRSxDQUFDLEtBQUs7b0JBQ3JCLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSztvQkFDZixDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO29CQUNyQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztpQkFDdEMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxNQUFNLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsOEJBQThCO0lBQ3RCLE9BQU8sQ0FBQyxNQUFjO1FBQzVCLElBQUksTUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMzQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNuQyxNQUFNLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFDLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQWE7UUFDaEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM3QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDckIsTUFBTSxHQUFHLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNwQixPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDOUYsQ0FBQztJQUVELGFBQWEsQ0FBQyxDQUFVO1FBQ3RCLE9BQU8sR0FBRyxDQUFDLENBQUMsV0FBVyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsVUFBVSxDQUFDLENBQVU7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQzsrR0F6UFUsNEJBQTRCO21HQUE1Qiw0QkFBNEIsb1hDakN6QywwekdBK0VBLG8rRkRsRFksWUFBWSwrQkFBRSxnQkFBZ0I7OzRGQUk3Qiw0QkFBNEI7a0JBUHhDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBQ3RCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztvR0FLaEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFvQkcsYUFBYTtzQkFBckIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUdpQyxPQUFPO3NCQUE5QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLFxyXG4gIE9uQ2hhbmdlcywgY29tcHV0ZWQsIHNpZ25hbCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLFxyXG4gIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgTmdab25lXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBvcG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3BvcG92ZXIuZGlyZWN0aXZlJztcclxuXHJcbmV4cG9ydCB0eXBlIEJhclNlcmllc0l0ZW0gPSB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBudW1iZXI7IGNvbG9yPzogc3RyaW5nIH07XHJcbmV4cG9ydCB0eXBlIEJhckdyb3VwID0geyBsYWJlbDogc3RyaW5nOyBpdGVtczogQmFyU2VyaWVzSXRlbVtdIH07XHJcblxyXG50eXBlIFNlcmllc0NvbG9yTWFwID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxuXHJcbnR5cGUgQmFyUmVjdCA9IHtcclxuICBncm91cExhYmVsOiBzdHJpbmc7XHJcbiAgc2VyaWVzTGFiZWw6IHN0cmluZztcclxuICB2YWx1ZTogbnVtYmVyO1xyXG4gIHg6IG51bWJlcjtcclxuICB5OiBudW1iZXI7XHJcbiAgd2lkdGg6IG51bWJlcjtcclxuICBoZWlnaHQ6IG51bWJlcjtcclxuICBjb2xvcjogc3RyaW5nO1xyXG59O1xyXG5cclxudHlwZSBCYXJTdHJpcGUgPSB7IHg6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpdXMtY2hhcnRzLWJhci1ncm91cGVkJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFBvcG92ZXJEaXJlY3RpdmVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFydHMtYmFyLWdyb3VwZWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoYXJ0cy1iYXItZ3JvdXBlZC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSXVzQ2hhcnRzQmFyR3JvdXBlZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBkYXRhOiBCYXJHcm91cFtdID0gW107XHJcbiAgQElucHV0KCkgbGVnZW5kUG9zaXRpb246ICdyaWdodCcgfCAnYm90dG9tJyA9ICdib3R0b20nO1xyXG4gIEBJbnB1dCgpIHNlcmllc09yZGVyPzogc3RyaW5nW107XHJcblxyXG4gIC8vIEVzY2FsYSBZIChzZSBwdWVkZW4gZXhwb25lciBjb21vIEBJbnB1dCBzaSBxdWllcmVzKVxyXG4gIHlNYXg/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,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dGZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l1cy1kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2lucHV0LXRleHRmaWVsZC9pbnB1dC10ZXh0ZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtdGV4dGZpZWxkL2lucHV0LXRleHRmaWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBUzdDLE1BQU0sT0FBTyx1QkFBdUI7SUFQcEM7UUFRVyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDcEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUlyQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXhCLGNBQVMsR0FBVyxNQUFNLENBQUM7UUFJMUIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQXVEbEQ7SUFyREMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQzFCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBb0I7UUFDN0IsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWdCO1FBQzFCLDRDQUE0QztRQUM1QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFnQjtRQUM5QixzREFBc0Q7UUFDdEQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7K0dBeEVVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDRkQ1pwQyx1c0RBd0NNLDZwR0RoQ00sZUFBZSxzRkFBRSxXQUFXLDhtQkFBRSxZQUFZOzs0RkFJekMsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQzs4QkFLNUMsU0FBUztzQkFBakIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJY29uTWRDb21wb25lbnQgfSBmcm9tICcuLi9pY29uLW1kL2ljb24tbWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2l1cy1pbnB1dC10ZXh0ZmllbGQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0ljb25NZENvbXBvbmVudCwgRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXRleHRmaWVsZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2lucHV0LXRleHRmaWVsZC5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dFRleHRmaWVsZENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdGV4dElucHV0OiBzdHJpbmcgPSAnJztcclxuICBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0FsZXJ0VGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0VuYWJsZUNsZWFyVGV4dCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dIZWxwVGV4dCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBsYWJlbFN1cGVyaW9yPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhYmVsSW5mZXJpb3I/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGFiZWxJbnB1dDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaWNvbklucHV0Pzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlucHV0VHlwZTogc3RyaW5nID0gJ3RleHQnO1xyXG5cclxuICBASW5wdXQoKSBpbml0aWFsVGV4dD86IHN0cmluZztcclxuXHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlc1ZhbHVlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb25BZGRUZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5pdGlhbFRleHQpIHtcclxuICAgICAgdGhpcy50ZXh0SW5wdXQgPSB0aGlzLmluaXRpYWxUZXh0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJTZWFyY2goKSB7XHJcbiAgICB0aGlzLnRleHRJbnB1dCA9ICcnO1xyXG4gICAgdGhpcy5vbkJsdXIoKTtcclxuICAgIHRoaXMub25DaGFuZ2VzVmFsdWVFdmVudC5lbWl0KHRoaXMudGV4dElucHV0KTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlc1ZhbHVlRXZlbnQuZW1pdCh0aGlzLnRleHRJbnB1dCk7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLnJlcXVpcmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLnRleHRJbnB1dCA9PT0gJycpIHtcclxuICAgICAgICB0aGlzLmlzQWxlcnRUZXh0ID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmlzQWxlcnRUZXh0ID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5hZGRUZXh0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRUZXh0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudGV4dElucHV0LnRyaW0oKSAhPT0gJycpIHtcclxuICAgICAgdGhpcy5vbkFkZFRleHQuZW1pdCh0aGlzLnRleHRJbnB1dCk7XHJcbiAgICAgIHRoaXMudGV4dElucHV0ID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkRyb3BCbG9jayhldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICAvLyBFdml0YSBxdWUgc2UgZHJvcGVlIGNvbnRlbmlkbyBlbiBlbCBpbnB1dFxyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIG9uRHJhZ092ZXJCbG9jayhldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICAvLyBFdml0YSBxdWUgc2UgcGVybWl0YSBhcnJhc3RyYXIgdGV4dG8gc29icmUgZWwgaW5wdXRcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItZ2VuZXJhbFwiPlxyXG4gICAgQGlmIChsYWJlbFN1cGVyaW9yKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWxhYmVsLXN1cFwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAnZGlzYWJsZWQnOiBkaXNhYmxlZFxyXG4gICAgfVwiPlxyXG4gICAgICAgIEBpZighZGlzYWJsZWQgJiYgcmVxdWlyZWQpe1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWRvdFwiPjwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIlwiPnt7bGFiZWxTdXBlcmlvcn19PC9zcGFuPlxyXG4gICAgICAgIEBpZighZGlzYWJsZWQgJiYgc2hvd0hlbHBUZXh0KXtcclxuICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWhlbHBcIiBjbGFzcz1cImljb24tY29sb3ItaGVscFwiPjwvaXVzLWljb24tbWQ+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxzcGFuPjo8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItdGV4dGZpZWxkXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICdkaXNhYmxlZCc6IGRpc2FibGVkLFxyXG4gICAgICAgICdmb2N1c2VkJzogaXNGb2N1c2VkLFxyXG4gICAgICAgICdhbGVydCc6ICFpc0ZvY3VzZWQgJiYgaXNBbGVydFRleHQgJiYgIWRpc2FibGVkXHJcbiAgICB9XCI+XHJcbiAgICAgICAgQGlmIChpY29uSW5wdXQpIHtcclxuICAgICAgICA8aXVzLWljb24tbWQgW2ljb25OYW1lXT1cImljb25JbnB1dFwiIGNsYXNzPVwiaWNvbi1jb2xvclwiPjwvaXVzLWljb24tbWQ+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxpbnB1dCBbdHlwZV09XCJpbnB1dFR5cGVcIiBbKG5nTW9kZWwpXT1cInRleHRJbnB1dFwiIFtwbGFjZWhvbGRlcl09XCJsYWJlbElucHV0XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGlucHV0KT1cIm9uSW5wdXQoKVwiXHJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIiAoYmx1cik9XCJvbkJsdXIoKVwiIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIiAoZHJvcCk9XCJvbkRyb3BCbG9jaygkZXZlbnQpXCIgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXJCbG9jaygkZXZlbnQpXCI+XHJcbiAgICAgICAgQGlmICghZGlzYWJsZWQgJiYgdGV4dElucHV0ICYmIGlzRW5hYmxlQ2xlYXJUZXh0KSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi1kZWxldGVcIiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiPlxyXG4gICAgICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWNhbmNlbFwiIGNsYXNzPVwiaWNvbi1jb2xvci1jYW5jZWxcIj48L2l1cy1pY29uLW1kPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgQGlmIChsYWJlbEluZmVyaW9yICYmIGlzRm9jdXNlZCkge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1pbmZcIj57e2xhYmVsSW5mZXJpb3J9fTwvc3Bhbj5cclxuICAgIH1cclxuICAgIEBpZiAobGFiZWxJbmZlcmlvciAmJiAhaXNGb2N1c2VkICYmIGlzQWxlcnRUZXh0KSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cImxhYmVsLWluZlwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAnYWxlcnQnOiAhaXNGb2N1c2VkICYmIGlzQWxlcnRUZXh0ICYmICFkaXNhYmxlZFxyXG4gICAgfVwiPnt7bGFiZWxJbmZlcmlvcn19PC9zcGFuPlxyXG4gICAgfVxyXG5cclxuPC9kaXY+Il19
|