@litigiovirtual/ius-design-components 1.0.26 → 1.0.28
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/button-standard-tertiary/button-standard-tertiary.component.mjs +3 -3
- package/esm2022/lib/date-hour-picker/date-hour-picker.component.mjs +3 -3
- package/esm2022/lib/double-date-picker/double-date-picker.component.mjs +3 -3
- package/esm2022/lib/drawer-container-right/drawer-container-right.component.mjs +3 -3
- package/fesm2022/litigiovirtual-ius-design-components.mjs +8 -8
- package/fesm2022/litigiovirtual-ius-design-components.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -198,11 +198,11 @@ export class DoubleDatePickerComponent {
|
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
200
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DoubleDatePickerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
201
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DoubleDatePickerComponent, isStandalone: true, selector: "ius-double-date-picker", inputs: { label: "label", placeholder: "placeholder", placeholder2: "placeholder2", error: "error", iconHelp: "iconHelp", helpText: "helpText", helpTextError: "helpTextError", disabled: "disabled", isRequired: "isRequired" }, outputs: { dateRangeSelected: "dateRangeSelected" }, host: { listeners: { "document:click": "handleOutsideClick($event)" } }, ngImport: i0, template: "<div class=\"date-picker\" [class.disabled]=\"disabled\">\r\n <div class=\"text\">\r\n @if (isRequired) {\r\n <div class=\"required\"></div>\r\n }\r\n\r\n <label class=\"label\">{{ label }}</label>\r\n\r\n @if (iconHelp) {\r\n <div class=\"help-icon\">\r\n <ius-icon-md iconName=\"icon-help\"></ius-icon-md>\r\n </div>\r\n }\r\n\r\n <label class=\"label\">:</label>\r\n </div>\r\n\r\n <div class=\"input-wrapper\">\r\n <div\r\n class=\"container-textfield\"\r\n [ngClass]=\"{\r\n disabled: disabled,\r\n focused: calendarOpen || focused,\r\n alert: !calendarOpen && error && !disabled,\r\n selected: startDate && endDate\r\n }\"\r\n (click)=\"toggleCalendar()\"\r\n >\r\n <div class=\"input\">\r\n <div class=\"fechas\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [value]=\"startDate ? (startDate | date : 'dd/MM/yyyy') : ''\"\r\n readonly\r\n [disabled]=\"disabled\"\r\n />\r\n </div>\r\n <div style=\"color: #595959;\">\r\n <ius-icon-md [iconName]=\"'icon-east'\" ></ius-icon-md>\r\n </div>\r\n <div class=\"fechas\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [value]=\"endDate ? (endDate | date : 'dd/MM/yyyy') : ''\"\r\n readonly\r\n [disabled]=\"disabled\"\r\n />\r\n </div>\r\n <div class=\"cnt-icon-right\">\r\n <ius-icon-md iconName=\"icon-calendar-today\"></ius-icon-md>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n @if (calendarOpen) {\r\n <div class=\"calendar-overlay\">\r\n <div class=\"mes\">\r\n <div class=\"calendar-header\">\r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-left\" (buttonClicked)=\"prevLeft()\"></ius-button-standard-tertiary>\r\n \r\n <span (click)=\"nextView('left')\">\r\n @switch (calendarViewLeft) {\r\n @case ('day') { {{ getMonthName(viewDateLeft.getMonth()) }} {{ viewDateLeft.getFullYear() }} }\r\n @case ('month') { {{ viewDateLeft.getFullYear() }} }\r\n @case ('year') { {{ getDecadeStart(viewDateLeft) }}\u2013{{ getDecadeStart(viewDateLeft) + 9 }} }\r\n }\r\n </span>\r\n \r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-right\" (buttonClicked)=\"nextLeft()\"></ius-button-standard-tertiary>\r\n </div>\r\n \r\n <div class=\"calendar-body\">\r\n @switch (calendarViewLeft) {\r\n @case ('day') {\r\n <div class=\"grid days\">\r\n @for (day of dayLabels; track day) { <div class=\"header\">{{ day }}</div> }\r\n @for (date of calendarDaysLeft; track date) {\r\n <div class=\"cell\"\r\n [class.selected]=\"isSameDate(date, startDate)\"\r\n [class.range]=\"isInRangeForView(date, viewDateLeft)\"\r\n [class.out-of-range]=\"isDateOutOfRange(date, viewDateLeft)\"\r\n (click)=\"selectDateFrom('left', date)\">\r\n {{ date.getDate() }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @case ('month') {\r\n <div class=\"grid months\">\r\n @for (m of months; track m; let i = $index) {\r\n <div class=\"cell\" (click)=\"setMonth('left', i, $event)\">{{ m }}</div>\r\n }\r\n </div>\r\n }\r\n @case ('year') {\r\n <div class=\"grid years\">\r\n @for (i of yearsArray; track i) {\r\n <div class=\"cell\"\r\n [class.out-of-range]=\"i === 0 || i === 11\"\r\n (click)=\"setYear('left', getDecadeStart(viewDateLeft) - 1 + i, $event)\">\r\n {{ getDecadeStart(viewDateLeft) - 1 + i }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"mes\">\r\n <div class=\"calendar-header\">\r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-left\" (buttonClicked)=\"prevRight()\"></ius-button-standard-tertiary>\r\n \r\n <span (click)=\"nextView('right')\">\r\n @switch (calendarViewRight) {\r\n @case ('day') { {{ getMonthName(viewDateRight.getMonth()) }} {{ viewDateRight.getFullYear() }} }\r\n @case ('month') { {{ viewDateRight.getFullYear() }} }\r\n @case ('year') { {{ getDecadeStart(viewDateRight) }}\u2013{{ getDecadeStart(viewDateRight) + 9 }} }\r\n }\r\n </span>\r\n \r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-right\" (buttonClicked)=\"nextRight()\"></ius-button-standard-tertiary>\r\n </div>\r\n \r\n <div class=\"calendar-body\">\r\n @switch (calendarViewRight) {\r\n @case ('day') {\r\n <div class=\"grid days\">\r\n @for (day of dayLabels; track day) { <div class=\"header\">{{ day }}</div> }\r\n @for (date of calendarDaysRight; track date) {\r\n <div class=\"cell\"\r\n [class.selected]=\"isSameDate(date, endDate)\"\r\n [class.range]=\"isInRangeForView(date, viewDateRight)\"\r\n [class.out-of-range]=\"isDateOutOfRange(date, viewDateRight)\"\r\n [class.disabled]=\"isDisabledDate(date, 'right')\"\r\n (click)=\"!isDisabledDate(date, 'right') && selectDateFrom('right', date)\">\r\n {{ date.getDate() }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @case ('month') {\r\n <div class=\"grid months\">\r\n @for (m of months; track m; let i = $index) {\r\n <div class=\"cell\" (click)=\"setMonth('right', i, $event)\">{{ m }}</div>\r\n }\r\n </div>\r\n }\r\n @case ('year') {\r\n <div class=\"grid years\">\r\n @for (i of yearsArray; track i) {\r\n <div class=\"cell\"\r\n [class.out-of-range]=\"i === 0 || i === 11\"\r\n (click)=\"setYear('right', getDecadeStart(viewDateRight) - 1 + i, $event)\">\r\n {{ getDecadeStart(viewDateRight) - 1 + i }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n @if (helpText && focused && !error) {\r\n <div class=\"help-text\">\r\n {{helpText}}\r\n </div>\r\n }\r\n @if (helpTextError && error) {\r\n <div class=\"help-text-error\">\r\n {{helpTextError}}\r\n </div>\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}.required{width:4px;height:4px;margin-right:4px;aspect-ratio:1/1;border-radius:50%;background-color:#ff4e3a}.text{display:flex;align-items:center}.date-picker{height:100%;display:flex;flex-direction:column;position:relative}.date-picker.disabled{opacity:.6;pointer-events:none}.date-picker .label{margin:0 4px;color:#333;font-family:Rubik;font-size:.875rem;font-weight:500;font-style:normal;line-height:20px;letter-spacing:.28px}.date-picker .help-icon{color:#595959}.date-picker .container-textfield{width:100%;align-items:flex-start;gap:4px}.date-picker .container-textfield .input{display:flex;justify-content:space-between;gap:4px;padding:12px;border-radius:8px;background:#f5f5f5;cursor:pointer;border:none}.date-picker .container-textfield .input .fechas{width:30%}.date-picker .container-textfield .input .fechas input{max-width:100%;flex:1;outline:none;border:none;background:#f5f5f5;color:#8c8c8c;font-family:Rubik;font-size:.875rem;font-weight:400;font-style:normal;line-height:20px;letter-spacing:.28px;cursor:pointer}.date-picker .container-textfield .cnt-icon-right{display:flex;align-items:center;justify-content:center;margin-left:3%;color:#333}.date-picker .container-textfield:hover .input,.date-picker .container-textfield:hover .input .fechas input{background-color:#edf6ff}.date-picker .container-textfield:hover .input .cnt-icon-right{color:#103ab7}.date-picker .container-textfield.focused .input{border:1px solid #0581BC;background:#edf6ff}.date-picker .container-textfield.focused .input .fechas input{background-color:#edf6ff;border:none}.date-picker .container-textfield.focused .input .cnt-icon-right{color:#103ab7}.date-picker .container-textfield.alert .input{border-radius:8px;border:1px solid #DB2E2A;background:#fff4f0}.date-picker .container-textfield.alert .input .fechas input{background:#fff4f0}.date-picker .container-textfield.alert .input .cnt-icon-right{color:#db2e2a}.date-picker .container-textfield.selected .input{background:#f5f5f5}.date-picker .container-textfield.selected .input .fechas input{background:#f5f5f5;border:none;color:#333;font-family:Rubik,sans-serif;font-size:.875rem;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.28px}.date-picker .container-textfield.selected .input .cnt-icon-right{color:#595959}.date-picker .container-textfield.disabled{background:#f5f5f5}.date-picker .container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.date-picker .container-textfield.disabled .cnt-icon-right{color:#bfbfbf}.date-picker .calendar-overlay{display:flex;align-items:center;align-self:stretch;min-width:540px;padding:0;gap:0;border-radius:8px;border:1px solid #f5f5f5;background:#fff;box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a}.date-picker .calendar-overlay .calendars{display:flex}.date-picker .calendar-overlay .mes{display:flex;flex-direction:column;align-items:flex-start;padding:16px 12px}.date-picker .calendar-overlay .calendar-header{display:flex;align-items:center;align-self:stretch}.date-picker .calendar-overlay .calendar-header span{flex:1;display:flex;justify-content:center;align-items:center;color:#333;cursor:pointer;font-family:Roboto;font-size:1rem;font-weight:500;font-style:normal;line-height:22px}.date-picker .calendar-overlay .calendar-body{display:flex;flex-direction:column;gap:8px}.date-picker .calendar-overlay .grid{display:grid;gap:8px}.date-picker .calendar-overlay .grid.days{grid-template-columns:repeat(7,1fr)}.date-picker .calendar-overlay .grid.months,.date-picker .calendar-overlay .grid.years{margin-left:27px;grid-template-columns:repeat(3,1fr)}.date-picker .calendar-overlay .grid .header{display:flex;align-items:center;height:30px;padding:2px 4px;gap:16px;color:#333;font-family:Rubik;font-size:.75rem;font-weight:500;font-style:normal;line-height:16px;letter-spacing:.24px}.date-picker .calendar-overlay .grid .cell{display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:stretch;padding:2px 4px;border-radius:10px;background:#fff;font-family:Rubik;font-size:.875rem;font-weight:400;font-style:normal;line-height:20px;letter-spacing:.28px;cursor:pointer}.date-picker .calendar-overlay .grid .cell:hover{background:#edf6ff}.date-picker .calendar-overlay .grid .cell.out-of-range{color:#bfbfbf;pointer-events:none}.date-picker .calendar-overlay .grid .cell.disabled{pointer-events:none;color:#bfbfbf;background:#fafafa;opacity:.6}.date-picker .calendar-overlay .grid .cell.range{padding:0;border-radius:0;margin:0;background-color:#edf6ff;color:#333}.date-picker .calendar-overlay .grid .cell.selected{border-radius:100px;border:1px solid #184FDB;background:#2167ff;color:#fff}.date-picker .calendar-overlay .today{margin-top:8px;width:100%;padding:8px;border:none;background:transparent;display:flex;justify-content:center;align-items:center;gap:4px;color:#333;cursor:pointer;font-family:Roboto;font-size:1rem;font-weight:500;font-style:normal;line-height:22px}.cell.empty{pointer-events:none;background:transparent;border:none}.help-text{display:flex;align-items:center;gap:10px;color:#595959;font-family:Rubik,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.help-text-error{display:flex;align-items:center;gap:10px;color:#931224;font-family:Rubik,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }, { kind: "component", type: ButtonStandardTertiaryComponent, selector: "ius-button-standard-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }] }); }
|
|
201
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DoubleDatePickerComponent, isStandalone: true, selector: "ius-double-date-picker", inputs: { label: "label", placeholder: "placeholder", placeholder2: "placeholder2", error: "error", iconHelp: "iconHelp", helpText: "helpText", helpTextError: "helpTextError", disabled: "disabled", isRequired: "isRequired" }, outputs: { dateRangeSelected: "dateRangeSelected" }, host: { listeners: { "document:click": "handleOutsideClick($event)" } }, ngImport: i0, template: "<div class=\"date-picker\" [class.disabled]=\"disabled\">\r\n <div class=\"text\">\r\n @if (isRequired) {\r\n <div class=\"required\"></div>\r\n }\r\n\r\n <label class=\"label\">{{ label }}</label>\r\n\r\n @if (iconHelp) {\r\n <div class=\"help-icon\">\r\n <ius-icon-md iconName=\"icon-help\"></ius-icon-md>\r\n </div>\r\n }\r\n\r\n <label class=\"label\">:</label>\r\n </div>\r\n\r\n <div class=\"input-wrapper\">\r\n <div\r\n class=\"container-textfield\"\r\n [ngClass]=\"{\r\n disabled: disabled,\r\n focused: calendarOpen || focused,\r\n alert: !calendarOpen && error && !disabled,\r\n selected: startDate && endDate\r\n }\"\r\n (click)=\"toggleCalendar()\"\r\n >\r\n <div class=\"input\">\r\n <div class=\"fechas\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [value]=\"startDate ? (startDate | date : 'dd/MM/yyyy') : ''\"\r\n readonly\r\n [disabled]=\"disabled\"\r\n />\r\n </div>\r\n <div style=\"color: #595959;\">\r\n <ius-icon-md [iconName]=\"'icon-east'\" ></ius-icon-md>\r\n </div>\r\n <div class=\"fechas\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [value]=\"endDate ? (endDate | date : 'dd/MM/yyyy') : ''\"\r\n readonly\r\n [disabled]=\"disabled\"\r\n />\r\n </div>\r\n <div class=\"cnt-icon-right\">\r\n <ius-icon-md iconName=\"icon-calendar-today\"></ius-icon-md>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n @if (calendarOpen) {\r\n <div class=\"calendar-overlay\">\r\n <div class=\"mes\">\r\n <div class=\"calendar-header\">\r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-left\" (buttonClicked)=\"prevLeft()\"></ius-button-standard-tertiary>\r\n \r\n <span (click)=\"nextView('left')\">\r\n @switch (calendarViewLeft) {\r\n @case ('day') { {{ getMonthName(viewDateLeft.getMonth()) }} {{ viewDateLeft.getFullYear() }} }\r\n @case ('month') { {{ viewDateLeft.getFullYear() }} }\r\n @case ('year') { {{ getDecadeStart(viewDateLeft) }}\u2013{{ getDecadeStart(viewDateLeft) + 9 }} }\r\n }\r\n </span>\r\n \r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-right\" (buttonClicked)=\"nextLeft()\"></ius-button-standard-tertiary>\r\n </div>\r\n \r\n <div class=\"calendar-body\">\r\n @switch (calendarViewLeft) {\r\n @case ('day') {\r\n <div class=\"grid days\">\r\n @for (day of dayLabels; track day) { <div class=\"header\">{{ day }}</div> }\r\n @for (date of calendarDaysLeft; track date) {\r\n <div class=\"cell\"\r\n [class.selected]=\"isSameDate(date, startDate)\"\r\n [class.range]=\"isInRangeForView(date, viewDateLeft)\"\r\n [class.out-of-range]=\"isDateOutOfRange(date, viewDateLeft)\"\r\n (click)=\"selectDateFrom('left', date)\">\r\n {{ date.getDate() }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @case ('month') {\r\n <div class=\"grid months\">\r\n @for (m of months; track m; let i = $index) {\r\n <div class=\"cell\" (click)=\"setMonth('left', i, $event)\">{{ m }}</div>\r\n }\r\n </div>\r\n }\r\n @case ('year') {\r\n <div class=\"grid years\">\r\n @for (i of yearsArray; track i) {\r\n <div class=\"cell\"\r\n [class.out-of-range]=\"i === 0 || i === 11\"\r\n (click)=\"setYear('left', getDecadeStart(viewDateLeft) - 1 + i, $event)\">\r\n {{ getDecadeStart(viewDateLeft) - 1 + i }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"mes\">\r\n <div class=\"calendar-header\">\r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-left\" (buttonClicked)=\"prevRight()\"></ius-button-standard-tertiary>\r\n \r\n <span (click)=\"nextView('right')\">\r\n @switch (calendarViewRight) {\r\n @case ('day') { {{ getMonthName(viewDateRight.getMonth()) }} {{ viewDateRight.getFullYear() }} }\r\n @case ('month') { {{ viewDateRight.getFullYear() }} }\r\n @case ('year') { {{ getDecadeStart(viewDateRight) }}\u2013{{ getDecadeStart(viewDateRight) + 9 }} }\r\n }\r\n </span>\r\n \r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-right\" (buttonClicked)=\"nextRight()\"></ius-button-standard-tertiary>\r\n </div>\r\n \r\n <div class=\"calendar-body\">\r\n @switch (calendarViewRight) {\r\n @case ('day') {\r\n <div class=\"grid days\">\r\n @for (day of dayLabels; track day) { <div class=\"header\">{{ day }}</div> }\r\n @for (date of calendarDaysRight; track date) {\r\n <div class=\"cell\"\r\n [class.selected]=\"isSameDate(date, endDate)\"\r\n [class.range]=\"isInRangeForView(date, viewDateRight)\"\r\n [class.out-of-range]=\"isDateOutOfRange(date, viewDateRight)\"\r\n [class.disabled]=\"isDisabledDate(date, 'right')\"\r\n (click)=\"!isDisabledDate(date, 'right') && selectDateFrom('right', date)\">\r\n {{ date.getDate() }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @case ('month') {\r\n <div class=\"grid months\">\r\n @for (m of months; track m; let i = $index) {\r\n <div class=\"cell\" (click)=\"setMonth('right', i, $event)\">{{ m }}</div>\r\n }\r\n </div>\r\n }\r\n @case ('year') {\r\n <div class=\"grid years\">\r\n @for (i of yearsArray; track i) {\r\n <div class=\"cell\"\r\n [class.out-of-range]=\"i === 0 || i === 11\"\r\n (click)=\"setYear('right', getDecadeStart(viewDateRight) - 1 + i, $event)\">\r\n {{ getDecadeStart(viewDateRight) - 1 + i }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n @if (helpText && focused && !error) {\r\n <div class=\"help-text\">\r\n {{helpText}}\r\n </div>\r\n }\r\n @if (helpTextError && error) {\r\n <div class=\"help-text-error\">\r\n {{helpTextError}}\r\n </div>\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}.required{width:4px;height:4px;margin-right:4px;aspect-ratio:1/1;border-radius:50%;background-color:#ff4e3a}.text{display:flex;align-items:center}.date-picker{height:100%;display:flex;flex-direction:column;position:relative}.date-picker.disabled{opacity:.6;pointer-events:none}.date-picker .label{margin:0 4px;color:#333;font-family:Rubik;font-size:.875rem;font-weight:500;font-style:normal;line-height:20px;letter-spacing:.28px}.date-picker .help-icon{color:#595959}.date-picker .container-textfield{width:100%;align-items:flex-start;gap:4px}.date-picker .container-textfield .input{display:flex;justify-content:space-between;gap:4px;padding:12px;border-radius:8px;background:#f5f5f5;cursor:pointer;border:none}.date-picker .container-textfield .input .fechas{width:30%}.date-picker .container-textfield .input .fechas input{max-width:100%;flex:1;outline:none;border:none;background:#f5f5f5;color:#8c8c8c;font-family:Rubik;font-size:.875rem;font-weight:400;font-style:normal;line-height:20px;letter-spacing:.28px;cursor:pointer}.date-picker .container-textfield .cnt-icon-right{display:flex;align-items:center;justify-content:center;margin-left:3%;color:#333}.date-picker .container-textfield:hover .input,.date-picker .container-textfield:hover .input .fechas input{background-color:#edf6ff}.date-picker .container-textfield:hover .input .cnt-icon-right{color:#103ab7}.date-picker .container-textfield.focused .input{border:1px solid #0581BC;background:#edf6ff}.date-picker .container-textfield.focused .input .fechas input{background-color:#edf6ff;border:none}.date-picker .container-textfield.focused .input .cnt-icon-right{color:#103ab7}.date-picker .container-textfield.alert .input{border-radius:8px;border:1px solid #DB2E2A;background:#fff4f0}.date-picker .container-textfield.alert .input .fechas input{background:#fff4f0}.date-picker .container-textfield.alert .input .cnt-icon-right{color:#db2e2a}.date-picker .container-textfield.selected .input{background:#f5f5f5}.date-picker .container-textfield.selected .input .fechas input{background:#f5f5f5;border:none;color:#333;font-family:Rubik,sans-serif;font-size:.875rem;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.28px}.date-picker .container-textfield.selected .input .cnt-icon-right{color:#595959}.date-picker .container-textfield.disabled{background:#f5f5f5}.date-picker .container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.date-picker .container-textfield.disabled .cnt-icon-right{color:#bfbfbf}.date-picker .calendar-overlay{position:absolute;right:0;z-index:1;display:flex;align-items:center;align-self:stretch;min-width:540px;padding:0;gap:0;border-radius:8px;border:1px solid #f5f5f5;background:#fff;box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a}.date-picker .calendar-overlay .calendars{display:flex}.date-picker .calendar-overlay .mes{display:flex;flex-direction:column;align-items:flex-start;padding:16px 12px}.date-picker .calendar-overlay .calendar-header{display:flex;align-items:center;align-self:stretch}.date-picker .calendar-overlay .calendar-header span{flex:1;display:flex;justify-content:center;align-items:center;color:#333;cursor:pointer;font-family:Roboto;font-size:1rem;font-weight:500;font-style:normal;line-height:22px}.date-picker .calendar-overlay .calendar-body{display:flex;flex-direction:column;gap:8px}.date-picker .calendar-overlay .grid{display:grid;gap:8px}.date-picker .calendar-overlay .grid.days{grid-template-columns:repeat(7,1fr)}.date-picker .calendar-overlay .grid.months,.date-picker .calendar-overlay .grid.years{margin-left:27px;grid-template-columns:repeat(3,1fr)}.date-picker .calendar-overlay .grid .header{display:flex;align-items:center;height:30px;padding:2px 4px;gap:16px;color:#333;font-family:Rubik;font-size:.75rem;font-weight:500;font-style:normal;line-height:16px;letter-spacing:.24px}.date-picker .calendar-overlay .grid .cell{display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:stretch;padding:2px 4px;border-radius:10px;background:#fff;font-family:Rubik;font-size:.875rem;font-weight:400;font-style:normal;line-height:20px;letter-spacing:.28px;cursor:pointer}.date-picker .calendar-overlay .grid .cell:hover{background:#edf6ff}.date-picker .calendar-overlay .grid .cell.out-of-range{color:#bfbfbf;pointer-events:none}.date-picker .calendar-overlay .grid .cell.disabled{pointer-events:none;color:#bfbfbf;background:#fafafa;opacity:.6}.date-picker .calendar-overlay .grid .cell.range{padding:0;border-radius:0;margin:0;background-color:#edf6ff;color:#333}.date-picker .calendar-overlay .grid .cell.selected{border-radius:100px;border:1px solid #184FDB;background:#2167ff;color:#fff}.date-picker .calendar-overlay .today{margin-top:8px;width:100%;padding:8px;border:none;background:transparent;display:flex;justify-content:center;align-items:center;gap:4px;color:#333;cursor:pointer;font-family:Roboto;font-size:1rem;font-weight:500;font-style:normal;line-height:22px}.cell.empty{pointer-events:none;background:transparent;border:none}.help-text{display:flex;align-items:center;gap:10px;color:#595959;font-family:Rubik,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.help-text-error{display:flex;align-items:center;gap:10px;color:#931224;font-family:Rubik,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }, { kind: "component", type: ButtonStandardTertiaryComponent, selector: "ius-button-standard-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }] }); }
|
|
202
202
|
}
|
|
203
203
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DoubleDatePickerComponent, decorators: [{
|
|
204
204
|
type: Component,
|
|
205
|
-
args: [{ selector: 'ius-double-date-picker', standalone: true, imports: [CommonModule, IconMdComponent, ButtonStandardTertiaryComponent], template: "<div class=\"date-picker\" [class.disabled]=\"disabled\">\r\n <div class=\"text\">\r\n @if (isRequired) {\r\n <div class=\"required\"></div>\r\n }\r\n\r\n <label class=\"label\">{{ label }}</label>\r\n\r\n @if (iconHelp) {\r\n <div class=\"help-icon\">\r\n <ius-icon-md iconName=\"icon-help\"></ius-icon-md>\r\n </div>\r\n }\r\n\r\n <label class=\"label\">:</label>\r\n </div>\r\n\r\n <div class=\"input-wrapper\">\r\n <div\r\n class=\"container-textfield\"\r\n [ngClass]=\"{\r\n disabled: disabled,\r\n focused: calendarOpen || focused,\r\n alert: !calendarOpen && error && !disabled,\r\n selected: startDate && endDate\r\n }\"\r\n (click)=\"toggleCalendar()\"\r\n >\r\n <div class=\"input\">\r\n <div class=\"fechas\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [value]=\"startDate ? (startDate | date : 'dd/MM/yyyy') : ''\"\r\n readonly\r\n [disabled]=\"disabled\"\r\n />\r\n </div>\r\n <div style=\"color: #595959;\">\r\n <ius-icon-md [iconName]=\"'icon-east'\" ></ius-icon-md>\r\n </div>\r\n <div class=\"fechas\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [value]=\"endDate ? (endDate | date : 'dd/MM/yyyy') : ''\"\r\n readonly\r\n [disabled]=\"disabled\"\r\n />\r\n </div>\r\n <div class=\"cnt-icon-right\">\r\n <ius-icon-md iconName=\"icon-calendar-today\"></ius-icon-md>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n @if (calendarOpen) {\r\n <div class=\"calendar-overlay\">\r\n <div class=\"mes\">\r\n <div class=\"calendar-header\">\r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-left\" (buttonClicked)=\"prevLeft()\"></ius-button-standard-tertiary>\r\n \r\n <span (click)=\"nextView('left')\">\r\n @switch (calendarViewLeft) {\r\n @case ('day') { {{ getMonthName(viewDateLeft.getMonth()) }} {{ viewDateLeft.getFullYear() }} }\r\n @case ('month') { {{ viewDateLeft.getFullYear() }} }\r\n @case ('year') { {{ getDecadeStart(viewDateLeft) }}\u2013{{ getDecadeStart(viewDateLeft) + 9 }} }\r\n }\r\n </span>\r\n \r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-right\" (buttonClicked)=\"nextLeft()\"></ius-button-standard-tertiary>\r\n </div>\r\n \r\n <div class=\"calendar-body\">\r\n @switch (calendarViewLeft) {\r\n @case ('day') {\r\n <div class=\"grid days\">\r\n @for (day of dayLabels; track day) { <div class=\"header\">{{ day }}</div> }\r\n @for (date of calendarDaysLeft; track date) {\r\n <div class=\"cell\"\r\n [class.selected]=\"isSameDate(date, startDate)\"\r\n [class.range]=\"isInRangeForView(date, viewDateLeft)\"\r\n [class.out-of-range]=\"isDateOutOfRange(date, viewDateLeft)\"\r\n (click)=\"selectDateFrom('left', date)\">\r\n {{ date.getDate() }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @case ('month') {\r\n <div class=\"grid months\">\r\n @for (m of months; track m; let i = $index) {\r\n <div class=\"cell\" (click)=\"setMonth('left', i, $event)\">{{ m }}</div>\r\n }\r\n </div>\r\n }\r\n @case ('year') {\r\n <div class=\"grid years\">\r\n @for (i of yearsArray; track i) {\r\n <div class=\"cell\"\r\n [class.out-of-range]=\"i === 0 || i === 11\"\r\n (click)=\"setYear('left', getDecadeStart(viewDateLeft) - 1 + i, $event)\">\r\n {{ getDecadeStart(viewDateLeft) - 1 + i }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"mes\">\r\n <div class=\"calendar-header\">\r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-left\" (buttonClicked)=\"prevRight()\"></ius-button-standard-tertiary>\r\n \r\n <span (click)=\"nextView('right')\">\r\n @switch (calendarViewRight) {\r\n @case ('day') { {{ getMonthName(viewDateRight.getMonth()) }} {{ viewDateRight.getFullYear() }} }\r\n @case ('month') { {{ viewDateRight.getFullYear() }} }\r\n @case ('year') { {{ getDecadeStart(viewDateRight) }}\u2013{{ getDecadeStart(viewDateRight) + 9 }} }\r\n }\r\n </span>\r\n \r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-right\" (buttonClicked)=\"nextRight()\"></ius-button-standard-tertiary>\r\n </div>\r\n \r\n <div class=\"calendar-body\">\r\n @switch (calendarViewRight) {\r\n @case ('day') {\r\n <div class=\"grid days\">\r\n @for (day of dayLabels; track day) { <div class=\"header\">{{ day }}</div> }\r\n @for (date of calendarDaysRight; track date) {\r\n <div class=\"cell\"\r\n [class.selected]=\"isSameDate(date, endDate)\"\r\n [class.range]=\"isInRangeForView(date, viewDateRight)\"\r\n [class.out-of-range]=\"isDateOutOfRange(date, viewDateRight)\"\r\n [class.disabled]=\"isDisabledDate(date, 'right')\"\r\n (click)=\"!isDisabledDate(date, 'right') && selectDateFrom('right', date)\">\r\n {{ date.getDate() }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @case ('month') {\r\n <div class=\"grid months\">\r\n @for (m of months; track m; let i = $index) {\r\n <div class=\"cell\" (click)=\"setMonth('right', i, $event)\">{{ m }}</div>\r\n }\r\n </div>\r\n }\r\n @case ('year') {\r\n <div class=\"grid years\">\r\n @for (i of yearsArray; track i) {\r\n <div class=\"cell\"\r\n [class.out-of-range]=\"i === 0 || i === 11\"\r\n (click)=\"setYear('right', getDecadeStart(viewDateRight) - 1 + i, $event)\">\r\n {{ getDecadeStart(viewDateRight) - 1 + i }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n @if (helpText && focused && !error) {\r\n <div class=\"help-text\">\r\n {{helpText}}\r\n </div>\r\n }\r\n @if (helpTextError && error) {\r\n <div class=\"help-text-error\">\r\n {{helpTextError}}\r\n </div>\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}.required{width:4px;height:4px;margin-right:4px;aspect-ratio:1/1;border-radius:50%;background-color:#ff4e3a}.text{display:flex;align-items:center}.date-picker{height:100%;display:flex;flex-direction:column;position:relative}.date-picker.disabled{opacity:.6;pointer-events:none}.date-picker .label{margin:0 4px;color:#333;font-family:Rubik;font-size:.875rem;font-weight:500;font-style:normal;line-height:20px;letter-spacing:.28px}.date-picker .help-icon{color:#595959}.date-picker .container-textfield{width:100%;align-items:flex-start;gap:4px}.date-picker .container-textfield .input{display:flex;justify-content:space-between;gap:4px;padding:12px;border-radius:8px;background:#f5f5f5;cursor:pointer;border:none}.date-picker .container-textfield .input .fechas{width:30%}.date-picker .container-textfield .input .fechas input{max-width:100%;flex:1;outline:none;border:none;background:#f5f5f5;color:#8c8c8c;font-family:Rubik;font-size:.875rem;font-weight:400;font-style:normal;line-height:20px;letter-spacing:.28px;cursor:pointer}.date-picker .container-textfield .cnt-icon-right{display:flex;align-items:center;justify-content:center;margin-left:3%;color:#333}.date-picker .container-textfield:hover .input,.date-picker .container-textfield:hover .input .fechas input{background-color:#edf6ff}.date-picker .container-textfield:hover .input .cnt-icon-right{color:#103ab7}.date-picker .container-textfield.focused .input{border:1px solid #0581BC;background:#edf6ff}.date-picker .container-textfield.focused .input .fechas input{background-color:#edf6ff;border:none}.date-picker .container-textfield.focused .input .cnt-icon-right{color:#103ab7}.date-picker .container-textfield.alert .input{border-radius:8px;border:1px solid #DB2E2A;background:#fff4f0}.date-picker .container-textfield.alert .input .fechas input{background:#fff4f0}.date-picker .container-textfield.alert .input .cnt-icon-right{color:#db2e2a}.date-picker .container-textfield.selected .input{background:#f5f5f5}.date-picker .container-textfield.selected .input .fechas input{background:#f5f5f5;border:none;color:#333;font-family:Rubik,sans-serif;font-size:.875rem;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.28px}.date-picker .container-textfield.selected .input .cnt-icon-right{color:#595959}.date-picker .container-textfield.disabled{background:#f5f5f5}.date-picker .container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.date-picker .container-textfield.disabled .cnt-icon-right{color:#bfbfbf}.date-picker .calendar-overlay{display:flex;align-items:center;align-self:stretch;min-width:540px;padding:0;gap:0;border-radius:8px;border:1px solid #f5f5f5;background:#fff;box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a}.date-picker .calendar-overlay .calendars{display:flex}.date-picker .calendar-overlay .mes{display:flex;flex-direction:column;align-items:flex-start;padding:16px 12px}.date-picker .calendar-overlay .calendar-header{display:flex;align-items:center;align-self:stretch}.date-picker .calendar-overlay .calendar-header span{flex:1;display:flex;justify-content:center;align-items:center;color:#333;cursor:pointer;font-family:Roboto;font-size:1rem;font-weight:500;font-style:normal;line-height:22px}.date-picker .calendar-overlay .calendar-body{display:flex;flex-direction:column;gap:8px}.date-picker .calendar-overlay .grid{display:grid;gap:8px}.date-picker .calendar-overlay .grid.days{grid-template-columns:repeat(7,1fr)}.date-picker .calendar-overlay .grid.months,.date-picker .calendar-overlay .grid.years{margin-left:27px;grid-template-columns:repeat(3,1fr)}.date-picker .calendar-overlay .grid .header{display:flex;align-items:center;height:30px;padding:2px 4px;gap:16px;color:#333;font-family:Rubik;font-size:.75rem;font-weight:500;font-style:normal;line-height:16px;letter-spacing:.24px}.date-picker .calendar-overlay .grid .cell{display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:stretch;padding:2px 4px;border-radius:10px;background:#fff;font-family:Rubik;font-size:.875rem;font-weight:400;font-style:normal;line-height:20px;letter-spacing:.28px;cursor:pointer}.date-picker .calendar-overlay .grid .cell:hover{background:#edf6ff}.date-picker .calendar-overlay .grid .cell.out-of-range{color:#bfbfbf;pointer-events:none}.date-picker .calendar-overlay .grid .cell.disabled{pointer-events:none;color:#bfbfbf;background:#fafafa;opacity:.6}.date-picker .calendar-overlay .grid .cell.range{padding:0;border-radius:0;margin:0;background-color:#edf6ff;color:#333}.date-picker .calendar-overlay .grid .cell.selected{border-radius:100px;border:1px solid #184FDB;background:#2167ff;color:#fff}.date-picker .calendar-overlay .today{margin-top:8px;width:100%;padding:8px;border:none;background:transparent;display:flex;justify-content:center;align-items:center;gap:4px;color:#333;cursor:pointer;font-family:Roboto;font-size:1rem;font-weight:500;font-style:normal;line-height:22px}.cell.empty{pointer-events:none;background:transparent;border:none}.help-text{display:flex;align-items:center;gap:10px;color:#595959;font-family:Rubik,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.help-text-error{display:flex;align-items:center;gap:10px;color:#931224;font-family:Rubik,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}\n"] }]
|
|
205
|
+
args: [{ selector: 'ius-double-date-picker', standalone: true, imports: [CommonModule, IconMdComponent, ButtonStandardTertiaryComponent], template: "<div class=\"date-picker\" [class.disabled]=\"disabled\">\r\n <div class=\"text\">\r\n @if (isRequired) {\r\n <div class=\"required\"></div>\r\n }\r\n\r\n <label class=\"label\">{{ label }}</label>\r\n\r\n @if (iconHelp) {\r\n <div class=\"help-icon\">\r\n <ius-icon-md iconName=\"icon-help\"></ius-icon-md>\r\n </div>\r\n }\r\n\r\n <label class=\"label\">:</label>\r\n </div>\r\n\r\n <div class=\"input-wrapper\">\r\n <div\r\n class=\"container-textfield\"\r\n [ngClass]=\"{\r\n disabled: disabled,\r\n focused: calendarOpen || focused,\r\n alert: !calendarOpen && error && !disabled,\r\n selected: startDate && endDate\r\n }\"\r\n (click)=\"toggleCalendar()\"\r\n >\r\n <div class=\"input\">\r\n <div class=\"fechas\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [value]=\"startDate ? (startDate | date : 'dd/MM/yyyy') : ''\"\r\n readonly\r\n [disabled]=\"disabled\"\r\n />\r\n </div>\r\n <div style=\"color: #595959;\">\r\n <ius-icon-md [iconName]=\"'icon-east'\" ></ius-icon-md>\r\n </div>\r\n <div class=\"fechas\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [value]=\"endDate ? (endDate | date : 'dd/MM/yyyy') : ''\"\r\n readonly\r\n [disabled]=\"disabled\"\r\n />\r\n </div>\r\n <div class=\"cnt-icon-right\">\r\n <ius-icon-md iconName=\"icon-calendar-today\"></ius-icon-md>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n @if (calendarOpen) {\r\n <div class=\"calendar-overlay\">\r\n <div class=\"mes\">\r\n <div class=\"calendar-header\">\r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-left\" (buttonClicked)=\"prevLeft()\"></ius-button-standard-tertiary>\r\n \r\n <span (click)=\"nextView('left')\">\r\n @switch (calendarViewLeft) {\r\n @case ('day') { {{ getMonthName(viewDateLeft.getMonth()) }} {{ viewDateLeft.getFullYear() }} }\r\n @case ('month') { {{ viewDateLeft.getFullYear() }} }\r\n @case ('year') { {{ getDecadeStart(viewDateLeft) }}\u2013{{ getDecadeStart(viewDateLeft) + 9 }} }\r\n }\r\n </span>\r\n \r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-right\" (buttonClicked)=\"nextLeft()\"></ius-button-standard-tertiary>\r\n </div>\r\n \r\n <div class=\"calendar-body\">\r\n @switch (calendarViewLeft) {\r\n @case ('day') {\r\n <div class=\"grid days\">\r\n @for (day of dayLabels; track day) { <div class=\"header\">{{ day }}</div> }\r\n @for (date of calendarDaysLeft; track date) {\r\n <div class=\"cell\"\r\n [class.selected]=\"isSameDate(date, startDate)\"\r\n [class.range]=\"isInRangeForView(date, viewDateLeft)\"\r\n [class.out-of-range]=\"isDateOutOfRange(date, viewDateLeft)\"\r\n (click)=\"selectDateFrom('left', date)\">\r\n {{ date.getDate() }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @case ('month') {\r\n <div class=\"grid months\">\r\n @for (m of months; track m; let i = $index) {\r\n <div class=\"cell\" (click)=\"setMonth('left', i, $event)\">{{ m }}</div>\r\n }\r\n </div>\r\n }\r\n @case ('year') {\r\n <div class=\"grid years\">\r\n @for (i of yearsArray; track i) {\r\n <div class=\"cell\"\r\n [class.out-of-range]=\"i === 0 || i === 11\"\r\n (click)=\"setYear('left', getDecadeStart(viewDateLeft) - 1 + i, $event)\">\r\n {{ getDecadeStart(viewDateLeft) - 1 + i }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"mes\">\r\n <div class=\"calendar-header\">\r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-left\" (buttonClicked)=\"prevRight()\"></ius-button-standard-tertiary>\r\n \r\n <span (click)=\"nextView('right')\">\r\n @switch (calendarViewRight) {\r\n @case ('day') { {{ getMonthName(viewDateRight.getMonth()) }} {{ viewDateRight.getFullYear() }} }\r\n @case ('month') { {{ viewDateRight.getFullYear() }} }\r\n @case ('year') { {{ getDecadeStart(viewDateRight) }}\u2013{{ getDecadeStart(viewDateRight) + 9 }} }\r\n }\r\n </span>\r\n \r\n <ius-button-standard-tertiary iconName=\"icon-keyboard-arrow-right\" (buttonClicked)=\"nextRight()\"></ius-button-standard-tertiary>\r\n </div>\r\n \r\n <div class=\"calendar-body\">\r\n @switch (calendarViewRight) {\r\n @case ('day') {\r\n <div class=\"grid days\">\r\n @for (day of dayLabels; track day) { <div class=\"header\">{{ day }}</div> }\r\n @for (date of calendarDaysRight; track date) {\r\n <div class=\"cell\"\r\n [class.selected]=\"isSameDate(date, endDate)\"\r\n [class.range]=\"isInRangeForView(date, viewDateRight)\"\r\n [class.out-of-range]=\"isDateOutOfRange(date, viewDateRight)\"\r\n [class.disabled]=\"isDisabledDate(date, 'right')\"\r\n (click)=\"!isDisabledDate(date, 'right') && selectDateFrom('right', date)\">\r\n {{ date.getDate() }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @case ('month') {\r\n <div class=\"grid months\">\r\n @for (m of months; track m; let i = $index) {\r\n <div class=\"cell\" (click)=\"setMonth('right', i, $event)\">{{ m }}</div>\r\n }\r\n </div>\r\n }\r\n @case ('year') {\r\n <div class=\"grid years\">\r\n @for (i of yearsArray; track i) {\r\n <div class=\"cell\"\r\n [class.out-of-range]=\"i === 0 || i === 11\"\r\n (click)=\"setYear('right', getDecadeStart(viewDateRight) - 1 + i, $event)\">\r\n {{ getDecadeStart(viewDateRight) - 1 + i }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n @if (helpText && focused && !error) {\r\n <div class=\"help-text\">\r\n {{helpText}}\r\n </div>\r\n }\r\n @if (helpTextError && error) {\r\n <div class=\"help-text-error\">\r\n {{helpTextError}}\r\n </div>\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}.required{width:4px;height:4px;margin-right:4px;aspect-ratio:1/1;border-radius:50%;background-color:#ff4e3a}.text{display:flex;align-items:center}.date-picker{height:100%;display:flex;flex-direction:column;position:relative}.date-picker.disabled{opacity:.6;pointer-events:none}.date-picker .label{margin:0 4px;color:#333;font-family:Rubik;font-size:.875rem;font-weight:500;font-style:normal;line-height:20px;letter-spacing:.28px}.date-picker .help-icon{color:#595959}.date-picker .container-textfield{width:100%;align-items:flex-start;gap:4px}.date-picker .container-textfield .input{display:flex;justify-content:space-between;gap:4px;padding:12px;border-radius:8px;background:#f5f5f5;cursor:pointer;border:none}.date-picker .container-textfield .input .fechas{width:30%}.date-picker .container-textfield .input .fechas input{max-width:100%;flex:1;outline:none;border:none;background:#f5f5f5;color:#8c8c8c;font-family:Rubik;font-size:.875rem;font-weight:400;font-style:normal;line-height:20px;letter-spacing:.28px;cursor:pointer}.date-picker .container-textfield .cnt-icon-right{display:flex;align-items:center;justify-content:center;margin-left:3%;color:#333}.date-picker .container-textfield:hover .input,.date-picker .container-textfield:hover .input .fechas input{background-color:#edf6ff}.date-picker .container-textfield:hover .input .cnt-icon-right{color:#103ab7}.date-picker .container-textfield.focused .input{border:1px solid #0581BC;background:#edf6ff}.date-picker .container-textfield.focused .input .fechas input{background-color:#edf6ff;border:none}.date-picker .container-textfield.focused .input .cnt-icon-right{color:#103ab7}.date-picker .container-textfield.alert .input{border-radius:8px;border:1px solid #DB2E2A;background:#fff4f0}.date-picker .container-textfield.alert .input .fechas input{background:#fff4f0}.date-picker .container-textfield.alert .input .cnt-icon-right{color:#db2e2a}.date-picker .container-textfield.selected .input{background:#f5f5f5}.date-picker .container-textfield.selected .input .fechas input{background:#f5f5f5;border:none;color:#333;font-family:Rubik,sans-serif;font-size:.875rem;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.28px}.date-picker .container-textfield.selected .input .cnt-icon-right{color:#595959}.date-picker .container-textfield.disabled{background:#f5f5f5}.date-picker .container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.date-picker .container-textfield.disabled .cnt-icon-right{color:#bfbfbf}.date-picker .calendar-overlay{position:absolute;right:0;z-index:1;display:flex;align-items:center;align-self:stretch;min-width:540px;padding:0;gap:0;border-radius:8px;border:1px solid #f5f5f5;background:#fff;box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a}.date-picker .calendar-overlay .calendars{display:flex}.date-picker .calendar-overlay .mes{display:flex;flex-direction:column;align-items:flex-start;padding:16px 12px}.date-picker .calendar-overlay .calendar-header{display:flex;align-items:center;align-self:stretch}.date-picker .calendar-overlay .calendar-header span{flex:1;display:flex;justify-content:center;align-items:center;color:#333;cursor:pointer;font-family:Roboto;font-size:1rem;font-weight:500;font-style:normal;line-height:22px}.date-picker .calendar-overlay .calendar-body{display:flex;flex-direction:column;gap:8px}.date-picker .calendar-overlay .grid{display:grid;gap:8px}.date-picker .calendar-overlay .grid.days{grid-template-columns:repeat(7,1fr)}.date-picker .calendar-overlay .grid.months,.date-picker .calendar-overlay .grid.years{margin-left:27px;grid-template-columns:repeat(3,1fr)}.date-picker .calendar-overlay .grid .header{display:flex;align-items:center;height:30px;padding:2px 4px;gap:16px;color:#333;font-family:Rubik;font-size:.75rem;font-weight:500;font-style:normal;line-height:16px;letter-spacing:.24px}.date-picker .calendar-overlay .grid .cell{display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:stretch;padding:2px 4px;border-radius:10px;background:#fff;font-family:Rubik;font-size:.875rem;font-weight:400;font-style:normal;line-height:20px;letter-spacing:.28px;cursor:pointer}.date-picker .calendar-overlay .grid .cell:hover{background:#edf6ff}.date-picker .calendar-overlay .grid .cell.out-of-range{color:#bfbfbf;pointer-events:none}.date-picker .calendar-overlay .grid .cell.disabled{pointer-events:none;color:#bfbfbf;background:#fafafa;opacity:.6}.date-picker .calendar-overlay .grid .cell.range{padding:0;border-radius:0;margin:0;background-color:#edf6ff;color:#333}.date-picker .calendar-overlay .grid .cell.selected{border-radius:100px;border:1px solid #184FDB;background:#2167ff;color:#fff}.date-picker .calendar-overlay .today{margin-top:8px;width:100%;padding:8px;border:none;background:transparent;display:flex;justify-content:center;align-items:center;gap:4px;color:#333;cursor:pointer;font-family:Roboto;font-size:1rem;font-weight:500;font-style:normal;line-height:22px}.cell.empty{pointer-events:none;background:transparent;border:none}.help-text{display:flex;align-items:center;gap:10px;color:#595959;font-family:Rubik,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.help-text-error{display:flex;align-items:center;gap:10px;color:#931224;font-family:Rubik,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}\n"] }]
|
|
206
206
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { label: [{
|
|
207
207
|
type: Input
|
|
208
208
|
}], placeholder: [{
|
|
@@ -227,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
227
227
|
type: HostListener,
|
|
228
228
|
args: ['document:click', ['$event']]
|
|
229
229
|
}] } });
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG91YmxlLWRhdGUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l1cy1kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RvdWJsZS1kYXRlLXBpY2tlci9kb3VibGUtZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZG91YmxlLWRhdGUtcGlja2VyL2RvdWJsZS1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOzs7QUFTakgsTUFBTSxPQUFPLHlCQUF5QjtJQWlDcEMsWUFBb0IsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQWhDNUIsVUFBSyxHQUFHLGdDQUFnQyxDQUFDO1FBQ3pDLGdCQUFXLEdBQUcsZUFBZSxDQUFDO1FBQzlCLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBQzVCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFakIsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQThCLENBQUM7UUFFcEUsY0FBUyxHQUFHLENBQUMs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QU0sQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQzsrR0EvTlUseUJBQXlCO21HQUF6Qix5QkFBeUIsa2JDWnRDLDhuT0ErS00sK29ORHZLTSxZQUFZLGdMQUFFLGVBQWUsdUZBQUUsK0JBQStCOzs0RkFJN0QseUJBQXlCO2tCQVByQyxTQUFTOytCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLCtCQUErQixDQUFDOytFQUtoRSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksaUJBQWlCO3NCQUExQixNQUFNO2dCQStNUCxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEljb25NZENvbXBvbmVudCB9IGZyb20gJy4uL2ljb24tbWQvaWNvbi1tZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdXR0b25TdGFuZGFyZFRlcnRpYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5L2J1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpdXMtZG91YmxlLWRhdGUtcGlja2VyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEljb25NZENvbXBvbmVudCwgQnV0dG9uU3RhbmRhcmRUZXJ0aWFyeUNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RvdWJsZS1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2RvdWJsZS1kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIERvdWJsZURhdGVQaWNrZXJDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGxhYmVsID0gJ0ZlY2hhIGRlIGluaWNpbyB5IGZpbmFsaXphY2nDs24nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ0ZlY2hhIGluaWNpbyAnO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyMiA9ICdGZWNoYSBmaW4gJztcclxuICBASW5wdXQoKSBlcnJvciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGljb25IZWxwID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaGVscFRleHQgPSAnJztcclxuICBASW5wdXQoKSBoZWxwVGV4dEVycm9yID0gJyc7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgQE91dHB1dCgpIGRhdGVSYW5nZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHN0YXJ0OiBEYXRlOyBlbmQ6IERhdGUgfT4oKTtcclxuXHJcbiAgcmVhZG9ubHkgZGF5TGFiZWxzID0gWydEbycsICdMdScsICdNYScsICdNaScsICdKdScsICdWaScsICdTYSddO1xyXG4gIHJlYWRvbmx5IG1vbnRocyA9IFsnRW5lJywgJ0ZlYicsICdNYXInLCAnQWJyJywgJ01heScsICdKdW4nLCAnSnVsJywgJ0FnbycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEaWMnXTtcclxuICByZWFkb25seSB5ZWFyc0FycmF5ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMTIgfSwgKF8sIGkpID0+IGkpO1xyXG5cclxuICBzdGFydERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcclxuICBlbmREYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcbiAgaXNTZWxlY3RpbmdTdGFydCA9IHRydWU7XHJcblxyXG4gIGNhbGVuZGFyT3BlbiA9IGZhbHNlO1xyXG4gIGZvY3VzZWQgPSBmYWxzZTtcclxuXHJcbiAgdmlld0RhdGVMZWZ0ID0gbmV3IERhdGUoKTtcclxuICB2aWV3RGF0ZVJpZ2h0ID0gbmV3IERhdGUobmV3IERhdGUoKS5zZXRNb250aChuZXcgRGF0ZSgpLmdldE1vbnRoKCkgKyAxKSk7XHJcblxyXG4gIGNhbGVuZGFyVmlld0xlZnQ6ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJyA9ICdkYXknO1xyXG4gIGNhbGVuZGFyVmlld1JpZ2h0OiAnZGF5JyB8ICdtb250aCcgfCAneWVhcicgPSAnZGF5JztcclxuXHJcbiAgY2FsZW5kYXJEYXlzTGVmdDogRGF0ZVtdID0gW107XHJcbiAgY2FsZW5kYXJEYXlzUmlnaHQ6IERhdGVbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2VuZXJhdGVDYWxlbmRhckRheXMoKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUNhbGVuZGFyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIGlmICghdGhpcy5jYWxlbmRhck9wZW4pIHtcclxuICAgICAgdGhpcy5lcnJvciA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jYWxlbmRhck9wZW4gPSAhdGhpcy5jYWxlbmRhck9wZW47XHJcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVDYWxlbmRhckRheXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbGVuZGFyRGF5c0xlZnQgPSB0aGlzLmdldENhbGVuZGFyRGF5cyh0aGlzLnZpZXdEYXRlTGVmdCk7XHJcbiAgICB0aGlzLmNhbGVuZGFyRGF5c1JpZ2h0ID0gdGhpcy5nZXRDYWxlbmRhckRheXModGhpcy52aWV3RGF0ZVJpZ2h0KTtcclxuICB9XHJcblxyXG4gIGdldENhbGVuZGFyRGF5cyh2aWV3RGF0ZTogRGF0ZSk6IERhdGVbXSB7XHJcbiAgICBjb25zdCBkYXlzOiBEYXRlW10gPSBbXTtcclxuICAgIGNvbnN0IHllYXIgPSB2aWV3RGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgbW9udGggPSB2aWV3RGF0ZS5nZXRNb250aCgpO1xyXG4gICAgY29uc3QgZmlyc3REYXkgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSk7XHJcbiAgICBjb25zdCBvZmZzZXQgPSBmaXJzdERheS5nZXREYXkoKTtcclxuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxIC0gb2Zmc2V0KTtcclxuICBcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNDI7IGkrKykge1xyXG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoc3RhcnREYXRlKTtcclxuICAgICAgZGF0ZS5zZXREYXRlKHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyBpKTtcclxuICAgICAgZGF5cy5wdXNoKGRhdGUpO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgcmV0dXJuIGRheXM7XHJcbiAgfVxyXG4gIFxyXG4gIHByZXZMZWZ0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaGlmdFZpZXdEYXRlKCdsZWZ0JywgLTEpO1xyXG4gIH1cclxuXHJcbiAgbmV4dExlZnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNoaWZ0Vmlld0RhdGUoJ2xlZnQnLCAxKTtcclxuICB9XHJcblxyXG4gIHByZXZSaWdodCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hpZnRWaWV3RGF0ZSgncmlnaHQnLCAtMSk7XHJcbiAgfVxyXG5cclxuICBuZXh0UmlnaHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNoaWZ0Vmlld0RhdGUoJ3JpZ2h0JywgMSk7XHJcbiAgfVxyXG5cclxuICBzaGlmdFZpZXdEYXRlKHNpZGU6ICdsZWZ0JyB8ICdyaWdodCcsIHN0ZXA6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgdmlldyA9IHNpZGUgPT09ICdsZWZ0JyA/IHRoaXMuY2FsZW5kYXJWaWV3TGVmdCA6IHRoaXMuY2FsZW5kYXJWaWV3UmlnaHQ7XHJcbiAgICBjb25zdCBiYXNlRGF0ZSA9IHNpZGUgPT09ICdsZWZ0JyA/IHRoaXMudmlld0RhdGVMZWZ0IDogdGhpcy52aWV3RGF0ZVJpZ2h0O1xyXG4gICAgY29uc3QgbW9udGggPSBiYXNlRGF0ZS5nZXRNb250aCgpO1xyXG4gICAgY29uc3QgeWVhciA9IGJhc2VEYXRlLmdldEZ1bGxZZWFyKCk7XHJcblxyXG4gICAgbGV0IG5ld0RhdGU6IERhdGU7XHJcbiAgICBpZiAodmlldyA9PT0gJ2RheScpIHtcclxuICAgICAgbmV3RGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgc3RlcCwgMSk7XHJcbiAgICB9IGVsc2UgaWYgKHZpZXcgPT09ICdtb250aCcpIHtcclxuICAgICAgbmV3RGF0ZSA9IG5ldyBEYXRlKHllYXIgKyBzdGVwLCBtb250aCwgMSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdEYXRlID0gbmV3IERhdGUoeWVhciArIHN0ZXAgKiAxMCwgbW9udGgsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaWRlID09PSAnbGVmdCcpIHtcclxuICAgICAgdGhpcy52aWV3RGF0ZUxlZnQgPSBuZXdEYXRlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52aWV3RGF0ZVJpZ2h0ID0gbmV3RGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXJEYXlzKCk7XHJcbiAgfVxyXG5cclxuICBuZXh0VmlldyhzaWRlOiAnbGVmdCcgfCAncmlnaHQnKTogdm9pZCB7XHJcbiAgICBpZiAoc2lkZSA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgIHRoaXMuY2FsZW5kYXJWaWV3TGVmdCA9IHRoaXMuY2FsZW5kYXJWaWV3TGVmdCA9PT0gJ2RheScgPyAnbW9udGgnIDogdGhpcy5jYWxlbmRhclZpZXdMZWZ0ID09PSAnbW9udGgnID8gJ3llYXInIDogJ2RheSc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNhbGVuZGFyVmlld1JpZ2h0ID0gdGhpcy5jYWxlbmRhclZpZXdSaWdodCA9PT0gJ2RheScgPyAnbW9udGgnIDogdGhpcy5jYWxlbmRhclZpZXdSaWdodCA9PT0gJ21vbnRoJyA/ICd5ZWFyJyA6ICdkYXknO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TW9udGgoc2lkZTogJ2xlZnQnIHwgJ3JpZ2h0JywgbW9udGg6IG51bWJlciwgZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAoc2lkZSA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgIHRoaXMudmlld0RhdGVMZWZ0LnNldE1vbnRoKG1vbnRoKTtcclxuICAgICAgdGhpcy5jYWxlbmRhclZpZXdMZWZ0ID0gJ2RheSc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZpZXdEYXRlUmlnaHQuc2V0TW9udGgobW9udGgpO1xyXG4gICAgICB0aGlzLmNhbGVuZGFyVmlld1JpZ2h0ID0gJ2RheSc7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXJEYXlzKCk7XHJcbiAgfVxyXG4gIFxyXG4gIHNldFllYXIoc2lkZTogJ2xlZnQnIHwgJ3JpZ2h0JywgeWVhcjogbnVtYmVyLCBldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmIChzaWRlID09PSAnbGVmdCcpIHtcclxuICAgICAgdGhpcy52aWV3RGF0ZUxlZnQuc2V0RnVsbFllYXIoeWVhcik7XHJcbiAgICAgIHRoaXMuY2FsZW5kYXJWaWV3TGVmdCA9ICdtb250aCc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZpZXdEYXRlUmlnaHQuc2V0RnVsbFllYXIoeWVhcik7XHJcbiAgICAgIHRoaXMuY2FsZW5kYXJWaWV3UmlnaHQgPSAnbW9udGgnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyRGF5cygpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0RGF0ZUZyb20oc2lkZTogJ2xlZnQnIHwgJ3JpZ2h0JywgZGF0ZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgaWYgKHNpZGUgPT09ICdsZWZ0Jykge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IGRhdGU7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoIXRoaXMuc3RhcnREYXRlKSB7XHJcbiAgICAgICAgdGhpcy5zdGFydERhdGUgPSBkYXRlO1xyXG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9IG51bGw7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICBpZiAoZGF0ZSA+PSB0aGlzLnN0YXJ0RGF0ZSkge1xyXG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9IGRhdGU7XHJcbiAgICAgICAgdGhpcy5jYWxlbmRhck9wZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRhdGVSYW5nZVNlbGVjdGVkLmVtaXQoeyBzdGFydDogdGhpcy5zdGFydERhdGUsIGVuZDogdGhpcy5lbmREYXRlIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3RhcnREYXRlID0gZGF0ZTtcclxuICAgICAgICB0aGlzLmVuZERhdGUgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0Rpc2FibGVkRGF0ZShkYXRlOiBEYXRlLCBzaWRlOiAnbGVmdCcgfCAncmlnaHQnKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoc2lkZSA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICBpZiAoIXRoaXMuc3RhcnREYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGRhdGUgPD0gdGhpcy5zdGFydERhdGU7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBpZiAoc2lkZSA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICBcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGlzU2FtZURhdGUoZDE6IERhdGUsIGQyOiBEYXRlIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGQyISAmJiBkMS5nZXREYXRlKCkgPT09IGQyLmdldERhdGUoKSAmJiBkMS5nZXRNb250aCgpID09PSBkMi5nZXRNb250aCgpICYmIGQxLmdldEZ1bGxZZWFyKCkgPT09IGQyLmdldEZ1bGxZZWFyKCk7XHJcbiAgfVxyXG5cclxuICBpc0RhdGVPdXRPZlJhbmdlKGRhdGU6IERhdGUsIHZpZXdEYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBkYXRlLmdldE1vbnRoKCkgIT09IHZpZXdEYXRlLmdldE1vbnRoKCkgfHxcclxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpICE9PSB2aWV3RGF0ZS5nZXRGdWxsWWVhcigpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaXNJblJhbmdlKGRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXJ0RGF0ZSEgJiYgdGhpcy5lbmREYXRlISAmJiBkYXRlID4gdGhpcy5zdGFydERhdGUgJiYgZGF0ZSA8IHRoaXMuZW5kRGF0ZTtcclxuICB9XHJcblxyXG4gIGlzSW5SYW5nZUZvclZpZXcoZGF0ZTogRGF0ZSwgdmlld0RhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmlzRGF0ZU91dE9mUmFuZ2UoZGF0ZSwgdmlld0RhdGUpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnN0YXJ0RGF0ZSEgJiYgdGhpcy5lbmREYXRlISAmJiBkYXRlID4gdGhpcy5zdGFydERhdGUgJiYgZGF0ZSA8IHRoaXMuZW5kRGF0ZTtcclxuICB9XHJcblxyXG4gIGdldE1vbnRoTmFtZShpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLm1vbnRoc1tpbmRleF07XHJcbiAgfVxyXG5cclxuICBnZXREZWNhZGVTdGFydCh2aWV3RGF0ZTogRGF0ZSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gTWF0aC5mbG9vcih2aWV3RGF0ZS5nZXRGdWxsWWVhcigpIC8gMTApICogMTA7XHJcbiAgfVxyXG5cclxuICBjbG9zZUNhbGVuZGFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYWxlbmRhck9wZW4gPSBmYWxzZTtcclxuICAgIGlmICghdGhpcy5zdGFydERhdGUgfHwgIXRoaXMuZW5kRGF0ZSkge1xyXG4gICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVPdXRzaWRlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcclxuICAgIGlmICghY2xpY2tlZEluc2lkZSAmJiB0aGlzLmNhbGVuZGFyT3Blbikge1xyXG4gICAgICB0aGlzLmNsb3NlQ2FsZW5kYXIoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRleHRcIj5cclxuICAgIEBpZiAoaXNSZXF1aXJlZCkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwicmVxdWlyZWRcIj48L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cclxuXHJcbiAgICBAaWYgKGljb25IZWxwKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWljb25cIj5cclxuICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWhlbHBcIj48L2l1cy1pY29uLW1kPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG5cclxuICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCI+OjwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY29udGFpbmVyLXRleHRmaWVsZFwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXHJcbiAgICAgICAgZm9jdXNlZDogY2FsZW5kYXJPcGVuIHx8IGZvY3VzZWQsXHJcbiAgICAgICAgYWxlcnQ6ICFjYWxlbmRhck9wZW4gJiYgZXJyb3IgJiYgIWRpc2FibGVkLFxyXG4gICAgICAgIHNlbGVjdGVkOiBzdGFydERhdGUgJiYgZW5kRGF0ZVxyXG4gICAgICB9XCJcclxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUNhbGVuZGFyKClcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZWNoYXNcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwic3RhcnREYXRlID8gKHN0YXJ0RGF0ZSB8IGRhdGUgOiAnZGQvTU0veXl5eScpIDogJydcIlxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cImNvbG9yOiAjNTk1OTU5O1wiPlxyXG4gICAgICAgICAgICA8aXVzLWljb24tbWQgW2ljb25OYW1lXT1cIidpY29uLWVhc3QnXCIgPjwvaXVzLWljb24tbWQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZWNoYXNcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwiZW5kRGF0ZSA/IChlbmREYXRlIHwgZGF0ZSA6ICdkZC9NTS95eXl5JykgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNudC1pY29uLXJpZ2h0XCI+XHJcbiAgICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWNhbGVuZGFyLXRvZGF5XCI+PC9pdXMtaWNvbi1tZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYgKGNhbGVuZGFyT3Blbikge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItb3ZlcmxheVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZXNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPGl1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnkgaWNvbk5hbWU9XCJpY29uLWtleWJvYXJkLWFycm93LWxlZnRcIiAoYnV0dG9uQ2xpY2tlZCk9XCJwcmV2TGVmdCgpXCI+PC9pdXMtYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5PlxyXG4gICAgICBcclxuICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cIm5leHRWaWV3KCdsZWZ0JylcIj5cclxuICAgICAgICAgICAgICBAc3dpdGNoIChjYWxlbmRhclZpZXdMZWZ0KSB7XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ2RheScpIHsge3sgZ2V0TW9udGhOYW1lKHZpZXdEYXRlTGVmdC5nZXRNb250aCgpKSB9fSB7eyB2aWV3RGF0ZUxlZnQuZ2V0RnVsbFllYXIoKSB9fSB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ21vbnRoJykgeyB7eyB2aWV3RGF0ZUxlZnQuZ2V0RnVsbFllYXIoKSB9fSB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ3llYXInKSB7IHt7IGdldERlY2FkZVN0YXJ0KHZpZXdEYXRlTGVmdCkgfX3igJN7eyBnZXREZWNhZGVTdGFydCh2aWV3RGF0ZUxlZnQpICsgOSB9fSB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgIFxyXG4gICAgICAgICAgICA8aXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeSBpY29uTmFtZT1cImljb24ta2V5Ym9hcmQtYXJyb3ctcmlnaHRcIiAoYnV0dG9uQ2xpY2tlZCk9XCJuZXh0TGVmdCgpXCI+PC9pdXMtYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIFxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJvZHlcIj5cclxuICAgICAgICAgICAgQHN3aXRjaCAoY2FsZW5kYXJWaWV3TGVmdCkge1xyXG4gICAgICAgICAgICAgIEBjYXNlICgnZGF5Jykge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZGF5c1wiPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yIChkYXkgb2YgZGF5TGFiZWxzOyB0cmFjayBkYXkpIHsgPGRpdiBjbGFzcz1cImhlYWRlclwiPnt7IGRheSB9fTwvZGl2PiB9XHJcbiAgICAgICAgICAgICAgICAgIEBmb3IgKGRhdGUgb2YgY2FsZW5kYXJEYXlzTGVmdDsgdHJhY2sgZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc1NhbWVEYXRlKGRhdGUsIHN0YXJ0RGF0ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnJhbmdlXT1cImlzSW5SYW5nZUZvclZpZXcoZGF0ZSwgdmlld0RhdGVMZWZ0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mub3V0LW9mLXJhbmdlXT1cImlzRGF0ZU91dE9mUmFuZ2UoZGF0ZSwgdmlld0RhdGVMZWZ0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZUZyb20oJ2xlZnQnLCBkYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sgZGF0ZS5nZXREYXRlKCkgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBjYXNlICgnbW9udGgnKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBtb250aHNcIj5cclxuICAgICAgICAgICAgICAgICAgQGZvciAobSBvZiBtb250aHM7IHRyYWNrIG07IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGxcIiAoY2xpY2spPVwic2V0TW9udGgoJ2xlZnQnLCBpLCAkZXZlbnQpXCI+e3sgbSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgQGNhc2UgKCd5ZWFyJykge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgeWVhcnNcIj5cclxuICAgICAgICAgICAgICAgICAgQGZvciAoaSBvZiB5ZWFyc0FycmF5OyB0cmFjayBpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm91dC1vZi1yYW5nZV09XCJpID09PSAwIHx8IGkgPT09IDExXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRZZWFyKCdsZWZ0JywgZ2V0RGVjYWRlU3RhcnQodmlld0RhdGVMZWZ0KSAtIDEgKyBpLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7eyBnZXREZWNhZGVTdGFydCh2aWV3RGF0ZUxlZnQpIC0gMSArIGkgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8aXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeSBpY29uTmFtZT1cImljb24ta2V5Ym9hcmQtYXJyb3ctbGVmdFwiIChidXR0b25DbGlja2VkKT1cInByZXZSaWdodCgpXCI+PC9pdXMtYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5PlxyXG4gICAgICBcclxuICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cIm5leHRWaWV3KCdyaWdodCcpXCI+XHJcbiAgICAgICAgICAgICAgQHN3aXRjaCAoY2FsZW5kYXJWaWV3UmlnaHQpIHtcclxuICAgICAgICAgICAgICAgIEBjYXNlICgnZGF5JykgeyB7eyBnZXRNb250aE5hbWUodmlld0RhdGVSaWdodC5nZXRNb250aCgpKSB9fSB7eyB2aWV3RGF0ZVJpZ2h0LmdldEZ1bGxZZWFyKCkgfX0gfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdtb250aCcpIHsge3sgdmlld0RhdGVSaWdodC5nZXRGdWxsWWVhcigpIH19IH1cclxuICAgICAgICAgICAgICAgIEBjYXNlICgneWVhcicpIHsge3sgZ2V0RGVjYWRlU3RhcnQodmlld0RhdGVSaWdodCkgfX3igJN7eyBnZXREZWNhZGVTdGFydCh2aWV3RGF0ZVJpZ2h0KSArIDkgfX0gfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICBcclxuICAgICAgICAgICAgPGl1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnkgaWNvbk5hbWU9XCJpY29uLWtleWJvYXJkLWFycm93LXJpZ2h0XCIgKGJ1dHRvbkNsaWNrZWQpPVwibmV4dFJpZ2h0KClcIj48L2l1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnk+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYm9keVwiPlxyXG4gICAgICAgICAgICBAc3dpdGNoIChjYWxlbmRhclZpZXdSaWdodCkge1xyXG4gICAgICAgICAgICAgIEBjYXNlICgnZGF5Jykge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZGF5c1wiPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yIChkYXkgb2YgZGF5TGFiZWxzOyB0cmFjayBkYXkpIHsgPGRpdiBjbGFzcz1cImhlYWRlclwiPnt7IGRheSB9fTwvZGl2PiB9XHJcbiAgICAgICAgICAgICAgICAgIEBmb3IgKGRhdGUgb2YgY2FsZW5kYXJEYXlzUmlnaHQ7IHRyYWNrIGRhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzU2FtZURhdGUoZGF0ZSwgZW5kRGF0ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5yYW5nZV09XCJpc0luUmFuZ2VGb3JWaWV3KGRhdGUsIHZpZXdEYXRlUmlnaHQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Mub3V0LW9mLXJhbmdlXT1cImlzRGF0ZU91dE9mUmFuZ2UoZGF0ZSwgdmlld0RhdGVSaWdodClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkRGF0ZShkYXRlLCAncmlnaHQnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFpc0Rpc2FibGVkRGF0ZShkYXRlLCAncmlnaHQnKSAmJiBzZWxlY3REYXRlRnJvbSgncmlnaHQnLCBkYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGRhdGUuZ2V0RGF0ZSgpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAY2FzZSAoJ21vbnRoJykge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgbW9udGhzXCI+XHJcbiAgICAgICAgICAgICAgICAgIEBmb3IgKG0gb2YgbW9udGhzOyB0cmFjayBtOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCIgKGNsaWNrKT1cInNldE1vbnRoKCdyaWdodCcsIGksICRldmVudClcIj57eyBtIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAY2FzZSAoJ3llYXInKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCB5ZWFyc1wiPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yIChpIG9mIHllYXJzQXJyYXk7IHRyYWNrIGkpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mub3V0LW9mLXJhbmdlXT1cImkgPT09IDAgfHwgaSA9PT0gMTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldFllYXIoJ3JpZ2h0JywgZ2V0RGVjYWRlU3RhcnQodmlld0RhdGVSaWdodCkgLSAxICsgaSwgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sgZ2V0RGVjYWRlU3RhcnQodmlld0RhdGVSaWdodCkgLSAxICsgaSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuICBAaWYgKGhlbHBUZXh0ICYmIGZvY3VzZWQgJiYgIWVycm9yKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVscC10ZXh0XCI+XHJcbiAgICAgIHt7aGVscFRleHR9fVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAoaGVscFRleHRFcnJvciAmJiBlcnJvcikge1xyXG4gICAgPGRpdiBjbGFzcz1cImhlbHAtdGV4dC1lcnJvclwiPlxyXG4gICAgICB7e2hlbHBUZXh0RXJyb3J9fVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj4iXX0=
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG91YmxlLWRhdGUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l1cy1kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RvdWJsZS1kYXRlLXBpY2tlci9kb3VibGUtZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZG91YmxlLWRhdGUtcGlja2VyL2RvdWJsZS1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOzs7QUFTakgsTUFBTSxPQUFPLHlCQUF5QjtJQWlDcEMsWUFBb0IsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQWhDNUIsVUFBSyxHQUFHLGdDQUFnQyxDQUFDO1FBQ3pDLGdCQUFXLEdBQUcsZUFBZSxDQUFDO1FBQzlCLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBQzVCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFakIsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQThCLENBQUM7UUFFcEUsY0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkQsV0FBTSxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5RixlQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlELGNBQVMsR0FBZ0IsSUFBSSxDQUFDO1FBQzlCLFlBQU8sR0FBZ0IsSUFBSSxDQUFDO1FBQzVCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUV4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGlCQUFZLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMxQixrQkFBYSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV6RSxxQkFBZ0IsR0FBNkIsS0FBSyxDQUFDO1FBQ25ELHNCQUFpQixHQUE2QixLQUFLLENBQUM7UUFFcEQscUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBQzlCLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztJQUVTLENBQUM7SUFFekMsUUFBUTtRQUNOLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxlQUFlLENBQUMsUUFBYztRQUM1QixNQUFNLElBQUksR0FBVyxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUVwRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQXNCLEVBQUUsSUFBWTtRQUNoRCxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUM5RSxNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzFFLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFcEMsSUFBSSxPQUFhLENBQUM7UUFDbEIsSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbkIsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7YUFBTSxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUM1QixPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUM5QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO1FBQy9CLENBQUM7UUFFRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQXNCO1FBQzdCLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3pILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsSUFBc0IsRUFBRSxLQUFhLEVBQUUsS0FBa0I7UUFDaEUsS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQXNCLEVBQUUsSUFBWSxFQUFFLEtBQWtCO1FBQzlELEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQztRQUN6QixJQUFJLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFzQixFQUFFLElBQVU7UUFDL0MsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDNUUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsSUFBVSxFQUFFLElBQXNCO1FBQy9DLElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUdELFVBQVUsQ0FBQyxFQUFRLEVBQUUsRUFBZTtRQUNsQyxPQUFPLEVBQUcsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBVSxFQUFFLFFBQWM7UUFDekMsT0FBTyxDQUNMLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxRQUFRLENBQUMsUUFBUSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQzlDLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsU0FBVSxJQUFJLElBQUksQ0FBQyxPQUFRLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDMUYsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVUsRUFBRSxRQUFjO1FBQ3pDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzFDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVUsSUFBSSxJQUFJLENBQUMsT0FBUSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzFGLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYTtRQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFjO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFHRCxrQkFBa0IsQ0FBQyxLQUFpQjtRQUNsQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQzsrR0EvTlUseUJBQXlCO21HQUF6Qix5QkFBeUIsa2JDWnRDLDhuT0ErS00sbXJORHZLTSxZQUFZLGdMQUFFLGVBQWUsdUZBQUUsK0JBQStCOzs0RkFJN0QseUJBQXlCO2tCQVByQyxTQUFTOytCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLCtCQUErQixDQUFDOytFQUtoRSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksaUJBQWlCO3NCQUExQixNQUFNO2dCQStNUCxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbk1kQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi1tZC9pY29uLW1kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25TdGFuZGFyZFRlcnRpYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5L2J1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpdXMtZG91YmxlLWRhdGUtcGlja2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbk1kQ29tcG9uZW50LCBCdXR0b25TdGFuZGFyZFRlcnRpYXJ5Q29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvdWJsZS1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kb3VibGUtZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIERvdWJsZURhdGVQaWNrZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBsYWJlbCA9ICdGZWNoYSBkZSBpbmljaW8geSBmaW5hbGl6YWNpw7NuJztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnRmVjaGEgaW5pY2lvICc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyMiA9ICdGZWNoYSBmaW4gJztcbiAgQElucHV0KCkgZXJyb3IgPSBmYWxzZTtcbiAgQElucHV0KCkgaWNvbkhlbHAgPSBmYWxzZTtcbiAgQElucHV0KCkgaGVscFRleHQgPSAnJztcbiAgQElucHV0KCkgaGVscFRleHRFcnJvciA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpc1JlcXVpcmVkID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgZGF0ZVJhbmdlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgc3RhcnQ6IERhdGU7IGVuZDogRGF0ZSB9PigpO1xuXG4gIHJlYWRvbmx5IGRheUxhYmVscyA9IFsnRG8nLCAnTHUnLCAnTWEnLCAnTWknLCAnSnUnLCAnVmknLCAnU2EnXTtcbiAgcmVhZG9ubHkgbW9udGhzID0gWydFbmUnLCAnRmViJywgJ01hcicsICdBYnInLCAnTWF5JywgJ0p1bicsICdKdWwnLCAnQWdvJywgJ1NlcCcsICdPY3QnLCAnTm92JywgJ0RpYyddO1xuICByZWFkb25seSB5ZWFyc0FycmF5ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMTIgfSwgKF8sIGkpID0+IGkpO1xuXG4gIHN0YXJ0RGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuICBlbmREYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gIGlzU2VsZWN0aW5nU3RhcnQgPSB0cnVlO1xuXG4gIGNhbGVuZGFyT3BlbiA9IGZhbHNlO1xuICBmb2N1c2VkID0gZmFsc2U7XG5cbiAgdmlld0RhdGVMZWZ0ID0gbmV3IERhdGUoKTtcbiAgdmlld0RhdGVSaWdodCA9IG5ldyBEYXRlKG5ldyBEYXRlKCkuc2V0TW9udGgobmV3IERhdGUoKS5nZXRNb250aCgpICsgMSkpO1xuXG4gIGNhbGVuZGFyVmlld0xlZnQ6ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJyA9ICdkYXknO1xuICBjYWxlbmRhclZpZXdSaWdodDogJ2RheScgfCAnbW9udGgnIHwgJ3llYXInID0gJ2RheSc7XG5cbiAgY2FsZW5kYXJEYXlzTGVmdDogRGF0ZVtdID0gW107XG4gIGNhbGVuZGFyRGF5c1JpZ2h0OiBEYXRlW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2VuZXJhdGVDYWxlbmRhckRheXMoKTtcbiAgfVxuXG4gIHRvZ2dsZUNhbGVuZGFyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmNhbGVuZGFyT3Blbikge1xuICAgICAgdGhpcy5lcnJvciA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmNhbGVuZGFyT3BlbiA9ICF0aGlzLmNhbGVuZGFyT3BlbjtcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICB9XG5cbiAgZ2VuZXJhdGVDYWxlbmRhckRheXMoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxlbmRhckRheXNMZWZ0ID0gdGhpcy5nZXRDYWxlbmRhckRheXModGhpcy52aWV3RGF0ZUxlZnQpO1xuICAgIHRoaXMuY2FsZW5kYXJEYXlzUmlnaHQgPSB0aGlzLmdldENhbGVuZGFyRGF5cyh0aGlzLnZpZXdEYXRlUmlnaHQpO1xuICB9XG5cbiAgZ2V0Q2FsZW5kYXJEYXlzKHZpZXdEYXRlOiBEYXRlKTogRGF0ZVtdIHtcbiAgICBjb25zdCBkYXlzOiBEYXRlW10gPSBbXTtcbiAgICBjb25zdCB5ZWFyID0gdmlld0RhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBtb250aCA9IHZpZXdEYXRlLmdldE1vbnRoKCk7XG4gICAgY29uc3QgZmlyc3REYXkgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSk7XG4gICAgY29uc3Qgb2Zmc2V0ID0gZmlyc3REYXkuZ2V0RGF5KCk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEgLSBvZmZzZXQpO1xuICBcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQyOyBpKyspIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xuICAgICAgZGF0ZS5zZXREYXRlKHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyBpKTtcbiAgICAgIGRheXMucHVzaChkYXRlKTtcbiAgICB9XG4gIFxuICAgIHJldHVybiBkYXlzO1xuICB9XG4gIFxuICBwcmV2TGVmdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNoaWZ0Vmlld0RhdGUoJ2xlZnQnLCAtMSk7XG4gIH1cblxuICBuZXh0TGVmdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNoaWZ0Vmlld0RhdGUoJ2xlZnQnLCAxKTtcbiAgfVxuXG4gIHByZXZSaWdodCgpOiB2b2lkIHtcbiAgICB0aGlzLnNoaWZ0Vmlld0RhdGUoJ3JpZ2h0JywgLTEpO1xuICB9XG5cbiAgbmV4dFJpZ2h0KCk6IHZvaWQge1xuICAgIHRoaXMuc2hpZnRWaWV3RGF0ZSgncmlnaHQnLCAxKTtcbiAgfVxuXG4gIHNoaWZ0Vmlld0RhdGUoc2lkZTogJ2xlZnQnIHwgJ3JpZ2h0Jywgc3RlcDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgdmlldyA9IHNpZGUgPT09ICdsZWZ0JyA/IHRoaXMuY2FsZW5kYXJWaWV3TGVmdCA6IHRoaXMuY2FsZW5kYXJWaWV3UmlnaHQ7XG4gICAgY29uc3QgYmFzZURhdGUgPSBzaWRlID09PSAnbGVmdCcgPyB0aGlzLnZpZXdEYXRlTGVmdCA6IHRoaXMudmlld0RhdGVSaWdodDtcbiAgICBjb25zdCBtb250aCA9IGJhc2VEYXRlLmdldE1vbnRoKCk7XG4gICAgY29uc3QgeWVhciA9IGJhc2VEYXRlLmdldEZ1bGxZZWFyKCk7XG5cbiAgICBsZXQgbmV3RGF0ZTogRGF0ZTtcbiAgICBpZiAodmlldyA9PT0gJ2RheScpIHtcbiAgICAgIG5ld0RhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCArIHN0ZXAsIDEpO1xuICAgIH0gZWxzZSBpZiAodmlldyA9PT0gJ21vbnRoJykge1xuICAgICAgbmV3RGF0ZSA9IG5ldyBEYXRlKHllYXIgKyBzdGVwLCBtb250aCwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0RhdGUgPSBuZXcgRGF0ZSh5ZWFyICsgc3RlcCAqIDEwLCBtb250aCwgMSk7XG4gICAgfVxuXG4gICAgaWYgKHNpZGUgPT09ICdsZWZ0Jykge1xuICAgICAgdGhpcy52aWV3RGF0ZUxlZnQgPSBuZXdEYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpZXdEYXRlUmlnaHQgPSBuZXdEYXRlO1xuICAgIH1cblxuICAgIHRoaXMuZ2VuZXJhdGVDYWxlbmRhckRheXMoKTtcbiAgfVxuXG4gIG5leHRWaWV3KHNpZGU6ICdsZWZ0JyB8ICdyaWdodCcpOiB2b2lkIHtcbiAgICBpZiAoc2lkZSA9PT0gJ2xlZnQnKSB7XG4gICAgICB0aGlzLmNhbGVuZGFyVmlld0xlZnQgPSB0aGlzLmNhbGVuZGFyVmlld0xlZnQgPT09ICdkYXknID8gJ21vbnRoJyA6IHRoaXMuY2FsZW5kYXJWaWV3TGVmdCA9PT0gJ21vbnRoJyA/ICd5ZWFyJyA6ICdkYXknO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhbGVuZGFyVmlld1JpZ2h0ID0gdGhpcy5jYWxlbmRhclZpZXdSaWdodCA9PT0gJ2RheScgPyAnbW9udGgnIDogdGhpcy5jYWxlbmRhclZpZXdSaWdodCA9PT0gJ21vbnRoJyA/ICd5ZWFyJyA6ICdkYXknO1xuICAgIH1cbiAgfVxuXG4gIHNldE1vbnRoKHNpZGU6ICdsZWZ0JyB8ICdyaWdodCcsIG1vbnRoOiBudW1iZXIsIGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoc2lkZSA9PT0gJ2xlZnQnKSB7XG4gICAgICB0aGlzLnZpZXdEYXRlTGVmdC5zZXRNb250aChtb250aCk7XG4gICAgICB0aGlzLmNhbGVuZGFyVmlld0xlZnQgPSAnZGF5JztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWV3RGF0ZVJpZ2h0LnNldE1vbnRoKG1vbnRoKTtcbiAgICAgIHRoaXMuY2FsZW5kYXJWaWV3UmlnaHQgPSAnZGF5JztcbiAgICB9XG4gICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyRGF5cygpO1xuICB9XG4gIFxuICBzZXRZZWFyKHNpZGU6ICdsZWZ0JyB8ICdyaWdodCcsIHllYXI6IG51bWJlciwgZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmIChzaWRlID09PSAnbGVmdCcpIHtcbiAgICAgIHRoaXMudmlld0RhdGVMZWZ0LnNldEZ1bGxZZWFyKHllYXIpO1xuICAgICAgdGhpcy5jYWxlbmRhclZpZXdMZWZ0ID0gJ21vbnRoJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWV3RGF0ZVJpZ2h0LnNldEZ1bGxZZWFyKHllYXIpO1xuICAgICAgdGhpcy5jYWxlbmRhclZpZXdSaWdodCA9ICdtb250aCc7XG4gICAgfVxuICAgIHRoaXMuZ2VuZXJhdGVDYWxlbmRhckRheXMoKTtcbiAgfVxuXG4gIHNlbGVjdERhdGVGcm9tKHNpZGU6ICdsZWZ0JyB8ICdyaWdodCcsIGRhdGU6IERhdGUpOiB2b2lkIHtcbiAgICBpZiAoc2lkZSA9PT0gJ2xlZnQnKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IGRhdGU7XG4gICAgICB0aGlzLmVuZERhdGUgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXRoaXMuc3RhcnREYXRlKSB7XG4gICAgICAgIHRoaXMuc3RhcnREYXRlID0gZGF0ZTtcbiAgICAgICAgdGhpcy5lbmREYXRlID0gbnVsbDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICBpZiAoZGF0ZSA+PSB0aGlzLnN0YXJ0RGF0ZSkge1xuICAgICAgICB0aGlzLmVuZERhdGUgPSBkYXRlO1xuICAgICAgICB0aGlzLmNhbGVuZGFyT3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRhdGVSYW5nZVNlbGVjdGVkLmVtaXQoeyBzdGFydDogdGhpcy5zdGFydERhdGUsIGVuZDogdGhpcy5lbmREYXRlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGFydERhdGUgPSBkYXRlO1xuICAgICAgICB0aGlzLmVuZERhdGUgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzRGlzYWJsZWREYXRlKGRhdGU6IERhdGUsIHNpZGU6ICdsZWZ0JyB8ICdyaWdodCcpOiBib29sZWFuIHtcbiAgICBpZiAoc2lkZSA9PT0gJ3JpZ2h0Jykge1xuICAgICAgaWYgKCF0aGlzLnN0YXJ0RGF0ZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRlIDw9IHRoaXMuc3RhcnREYXRlO1xuICAgIH1cbiAgXG4gICAgaWYgKHNpZGUgPT09ICdsZWZ0Jykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgXG4gIGlzU2FtZURhdGUoZDE6IERhdGUsIGQyOiBEYXRlIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkMiEgJiYgZDEuZ2V0RGF0ZSgpID09PSBkMi5nZXREYXRlKCkgJiYgZDEuZ2V0TW9udGgoKSA9PT0gZDIuZ2V0TW9udGgoKSAmJiBkMS5nZXRGdWxsWWVhcigpID09PSBkMi5nZXRGdWxsWWVhcigpO1xuICB9XG5cbiAgaXNEYXRlT3V0T2ZSYW5nZShkYXRlOiBEYXRlLCB2aWV3RGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBkYXRlLmdldE1vbnRoKCkgIT09IHZpZXdEYXRlLmdldE1vbnRoKCkgfHxcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSAhPT0gdmlld0RhdGUuZ2V0RnVsbFllYXIoKVxuICAgICk7XG4gIH1cblxuICBpc0luUmFuZ2UoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0RGF0ZSEgJiYgdGhpcy5lbmREYXRlISAmJiBkYXRlID4gdGhpcy5zdGFydERhdGUgJiYgZGF0ZSA8IHRoaXMuZW5kRGF0ZTtcbiAgfVxuXG4gIGlzSW5SYW5nZUZvclZpZXcoZGF0ZTogRGF0ZSwgdmlld0RhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc0RhdGVPdXRPZlJhbmdlKGRhdGUsIHZpZXdEYXRlKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdGFydERhdGUhICYmIHRoaXMuZW5kRGF0ZSEgJiYgZGF0ZSA+IHRoaXMuc3RhcnREYXRlICYmIGRhdGUgPCB0aGlzLmVuZERhdGU7XG4gIH1cblxuICBnZXRNb250aE5hbWUoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9udGhzW2luZGV4XTtcbiAgfVxuXG4gIGdldERlY2FkZVN0YXJ0KHZpZXdEYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcih2aWV3RGF0ZS5nZXRGdWxsWWVhcigpIC8gMTApICogMTA7XG4gIH1cblxuICBjbG9zZUNhbGVuZGFyKCk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJPcGVuID0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLnN0YXJ0RGF0ZSB8fCAhdGhpcy5lbmREYXRlKSB7XG4gICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIGhhbmRsZU91dHNpZGVDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcbiAgICBpZiAoIWNsaWNrZWRJbnNpZGUgJiYgdGhpcy5jYWxlbmRhck9wZW4pIHtcbiAgICAgIHRoaXMuY2xvc2VDYWxlbmRhcigpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRleHRcIj5cclxuICAgIEBpZiAoaXNSZXF1aXJlZCkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwicmVxdWlyZWRcIj48L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cclxuXHJcbiAgICBAaWYgKGljb25IZWxwKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWljb25cIj5cclxuICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWhlbHBcIj48L2l1cy1pY29uLW1kPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG5cclxuICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCI+OjwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY29udGFpbmVyLXRleHRmaWVsZFwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXHJcbiAgICAgICAgZm9jdXNlZDogY2FsZW5kYXJPcGVuIHx8IGZvY3VzZWQsXHJcbiAgICAgICAgYWxlcnQ6ICFjYWxlbmRhck9wZW4gJiYgZXJyb3IgJiYgIWRpc2FibGVkLFxyXG4gICAgICAgIHNlbGVjdGVkOiBzdGFydERhdGUgJiYgZW5kRGF0ZVxyXG4gICAgICB9XCJcclxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUNhbGVuZGFyKClcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZWNoYXNcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwic3RhcnREYXRlID8gKHN0YXJ0RGF0ZSB8IGRhdGUgOiAnZGQvTU0veXl5eScpIDogJydcIlxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cImNvbG9yOiAjNTk1OTU5O1wiPlxyXG4gICAgICAgICAgICA8aXVzLWljb24tbWQgW2ljb25OYW1lXT1cIidpY29uLWVhc3QnXCIgPjwvaXVzLWljb24tbWQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZWNoYXNcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwiZW5kRGF0ZSA/IChlbmREYXRlIHwgZGF0ZSA6ICdkZC9NTS95eXl5JykgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNudC1pY29uLXJpZ2h0XCI+XHJcbiAgICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWNhbGVuZGFyLXRvZGF5XCI+PC9pdXMtaWNvbi1tZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYgKGNhbGVuZGFyT3Blbikge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItb3ZlcmxheVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZXNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPGl1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnkgaWNvbk5hbWU9XCJpY29uLWtleWJvYXJkLWFycm93LWxlZnRcIiAoYnV0dG9uQ2xpY2tlZCk9XCJwcmV2TGVmdCgpXCI+PC9pdXMtYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5PlxyXG4gICAgICBcclxuICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cIm5leHRWaWV3KCdsZWZ0JylcIj5cclxuICAgICAgICAgICAgICBAc3dpdGNoIChjYWxlbmRhclZpZXdMZWZ0KSB7XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ2RheScpIHsge3sgZ2V0TW9udGhOYW1lKHZpZXdEYXRlTGVmdC5nZXRNb250aCgpKSB9fSB7eyB2aWV3RGF0ZUxlZnQuZ2V0RnVsbFllYXIoKSB9fSB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ21vbnRoJykgeyB7eyB2aWV3RGF0ZUxlZnQuZ2V0RnVsbFllYXIoKSB9fSB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ3llYXInKSB7IHt7IGdldERlY2FkZVN0YXJ0KHZpZXdEYXRlTGVmdCkgfX3igJN7eyBnZXREZWNhZGVTdGFydCh2aWV3RGF0ZUxlZnQpICsgOSB9fSB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgIFxyXG4gICAgICAgICAgICA8aXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeSBpY29uTmFtZT1cImljb24ta2V5Ym9hcmQtYXJyb3ctcmlnaHRcIiAoYnV0dG9uQ2xpY2tlZCk9XCJuZXh0TGVmdCgpXCI+PC9pdXMtYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIFxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJvZHlcIj5cclxuICAgICAgICAgICAgQHN3aXRjaCAoY2FsZW5kYXJWaWV3TGVmdCkge1xyXG4gICAgICAgICAgICAgIEBjYXNlICgnZGF5Jykge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZGF5c1wiPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yIChkYXkgb2YgZGF5TGFiZWxzOyB0cmFjayBkYXkpIHsgPGRpdiBjbGFzcz1cImhlYWRlclwiPnt7IGRheSB9fTwvZGl2PiB9XHJcbiAgICAgICAgICAgICAgICAgIEBmb3IgKGRhdGUgb2YgY2FsZW5kYXJEYXlzTGVmdDsgdHJhY2sgZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc1NhbWVEYXRlKGRhdGUsIHN0YXJ0RGF0ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnJhbmdlXT1cImlzSW5SYW5nZUZvclZpZXcoZGF0ZSwgdmlld0RhdGVMZWZ0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mub3V0LW9mLXJhbmdlXT1cImlzRGF0ZU91dE9mUmFuZ2UoZGF0ZSwgdmlld0RhdGVMZWZ0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZUZyb20oJ2xlZnQnLCBkYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sgZGF0ZS5nZXREYXRlKCkgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBjYXNlICgnbW9udGgnKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBtb250aHNcIj5cclxuICAgICAgICAgICAgICAgICAgQGZvciAobSBvZiBtb250aHM7IHRyYWNrIG07IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGxcIiAoY2xpY2spPVwic2V0TW9udGgoJ2xlZnQnLCBpLCAkZXZlbnQpXCI+e3sgbSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgQGNhc2UgKCd5ZWFyJykge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgeWVhcnNcIj5cclxuICAgICAgICAgICAgICAgICAgQGZvciAoaSBvZiB5ZWFyc0FycmF5OyB0cmFjayBpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm91dC1vZi1yYW5nZV09XCJpID09PSAwIHx8IGkgPT09IDExXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRZZWFyKCdsZWZ0JywgZ2V0RGVjYWRlU3RhcnQodmlld0RhdGVMZWZ0KSAtIDEgKyBpLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7eyBnZXREZWNhZGVTdGFydCh2aWV3RGF0ZUxlZnQpIC0gMSArIGkgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8aXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeSBpY29uTmFtZT1cImljb24ta2V5Ym9hcmQtYXJyb3ctbGVmdFwiIChidXR0b25DbGlja2VkKT1cInByZXZSaWdodCgpXCI+PC9pdXMtYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5PlxyXG4gICAgICBcclxuICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cIm5leHRWaWV3KCdyaWdodCcpXCI+XHJcbiAgICAgICAgICAgICAgQHN3aXRjaCAoY2FsZW5kYXJWaWV3UmlnaHQpIHtcclxuICAgICAgICAgICAgICAgIEBjYXNlICgnZGF5JykgeyB7eyBnZXRNb250aE5hbWUodmlld0RhdGVSaWdodC5nZXRNb250aCgpKSB9fSB7eyB2aWV3RGF0ZVJpZ2h0LmdldEZ1bGxZZWFyKCkgfX0gfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdtb250aCcpIHsge3sgdmlld0RhdGVSaWdodC5nZXRGdWxsWWVhcigpIH19IH1cclxuICAgICAgICAgICAgICAgIEBjYXNlICgneWVhcicpIHsge3sgZ2V0RGVjYWRlU3RhcnQodmlld0RhdGVSaWdodCkgfX3igJN7eyBnZXREZWNhZGVTdGFydCh2aWV3RGF0ZVJpZ2h0KSArIDkgfX0gfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICBcclxuICAgICAgICAgICAgPGl1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnkgaWNvbk5hbWU9XCJpY29uLWtleWJvYXJkLWFycm93LXJpZ2h0XCIgKGJ1dHRvbkNsaWNrZWQpPVwibmV4dFJpZ2h0KClcIj48L2l1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnk+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYm9keVwiPlxyXG4gICAgICAgICAgICBAc3dpdGNoIChjYWxlbmRhclZpZXdSaWdodCkge1xyXG4gICAgICAgICAgICAgIEBjYXNlICgnZGF5Jykge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZGF5c1wiPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yIChkYXkgb2YgZGF5TGFiZWxzOyB0cmFjayBkYXkpIHsgPGRpdiBjbGFzcz1cImhlYWRlclwiPnt7IGRheSB9fTwvZGl2PiB9XHJcbiAgICAgICAgICAgICAgICAgIEBmb3IgKGRhdGUgb2YgY2FsZW5kYXJEYXlzUmlnaHQ7IHRyYWNrIGRhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzU2FtZURhdGUoZGF0ZSwgZW5kRGF0ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5yYW5nZV09XCJpc0luUmFuZ2VGb3JWaWV3KGRhdGUsIHZpZXdEYXRlUmlnaHQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Mub3V0LW9mLXJhbmdlXT1cImlzRGF0ZU91dE9mUmFuZ2UoZGF0ZSwgdmlld0RhdGVSaWdodClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkRGF0ZShkYXRlLCAncmlnaHQnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFpc0Rpc2FibGVkRGF0ZShkYXRlLCAncmlnaHQnKSAmJiBzZWxlY3REYXRlRnJvbSgncmlnaHQnLCBkYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGRhdGUuZ2V0RGF0ZSgpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAY2FzZSAoJ21vbnRoJykge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgbW9udGhzXCI+XHJcbiAgICAgICAgICAgICAgICAgIEBmb3IgKG0gb2YgbW9udGhzOyB0cmFjayBtOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCIgKGNsaWNrKT1cInNldE1vbnRoKCdyaWdodCcsIGksICRldmVudClcIj57eyBtIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAY2FzZSAoJ3llYXInKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCB5ZWFyc1wiPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yIChpIG9mIHllYXJzQXJyYXk7IHRyYWNrIGkpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mub3V0LW9mLXJhbmdlXT1cImkgPT09IDAgfHwgaSA9PT0gMTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldFllYXIoJ3JpZ2h0JywgZ2V0RGVjYWRlU3RhcnQodmlld0RhdGVSaWdodCkgLSAxICsgaSwgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sgZ2V0RGVjYWRlU3RhcnQodmlld0RhdGVSaWdodCkgLSAxICsgaSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuICBAaWYgKGhlbHBUZXh0ICYmIGZvY3VzZWQgJiYgIWVycm9yKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVscC10ZXh0XCI+XHJcbiAgICAgIHt7aGVscFRleHR9fVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAoaGVscFRleHRFcnJvciAmJiBlcnJvcikge1xyXG4gICAgPGRpdiBjbGFzcz1cImhlbHAtdGV4dC1lcnJvclwiPlxyXG4gICAgICB7e2hlbHBUZXh0RXJyb3J9fVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj4iXX0=
|
|
@@ -24,7 +24,7 @@ export class DrawerContainerRightComponent {
|
|
|
24
24
|
this.onPressedDoneEvent.emit(null);
|
|
25
25
|
}
|
|
26
26
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DrawerContainerRightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DrawerContainerRightComponent, isStandalone: true, selector: "ius-drawer-container-right", inputs: { titleDrawer: "titleDrawer", percentProgressBar: "percentProgressBar" }, outputs: { onPressedBackEvent: "onPressedBackEvent", onPressedDoneEvent: "onPressedDoneEvent", onDrawerClosed: "onDrawerClosed" }, ngImport: i0, template: "<div class=\"background-drawer\">\r\n @if (isVisible) {\r\n <div class=\"create-container\" @slideInOut (@slideInOut.done)=\"onAnimDone($event)\">\r\n <div class=\"header-drawer\">\r\n <div class=\"button-header-drawer\">\r\n <ius-button-circle-tertiary\r\n (buttonClicked)=\"close()\"\r\n iconName=\"icon-arrow-left-alt\"\r\n ></ius-button-circle-tertiary>\r\n </div>\r\n <div class=\"title-header-drawer\">{{ titleDrawer }}</div>\r\n <div class=\"button-header-drawer\">\r\n <ius-button-circle-tertiary\r\n (buttonClicked)=\"done()\"\r\n iconName=\"icon-done-outline\"\r\n ></ius-button-circle-tertiary>\r\n </div>\r\n </div>\r\n <ius-linear-progress-bar\r\n [porcentaje]=\"percentProgressBar\"\r\n ></ius-linear-progress-bar>\r\n <div\r\n class=\"scrollable-small\"\r\n style=\"
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DrawerContainerRightComponent, isStandalone: true, selector: "ius-drawer-container-right", inputs: { titleDrawer: "titleDrawer", percentProgressBar: "percentProgressBar" }, outputs: { onPressedBackEvent: "onPressedBackEvent", onPressedDoneEvent: "onPressedDoneEvent", onDrawerClosed: "onDrawerClosed" }, ngImport: i0, template: "<div class=\"background-drawer\">\r\n @if (isVisible) {\r\n <div class=\"create-container\" @slideInOut (@slideInOut.done)=\"onAnimDone($event)\">\r\n <div class=\"header-drawer\">\r\n <div class=\"button-header-drawer\">\r\n <ius-button-circle-tertiary\r\n (buttonClicked)=\"close()\"\r\n iconName=\"icon-arrow-left-alt\"\r\n ></ius-button-circle-tertiary>\r\n </div>\r\n <div class=\"title-header-drawer\">{{ titleDrawer }}</div>\r\n <div class=\"button-header-drawer\">\r\n <ius-button-circle-tertiary\r\n (buttonClicked)=\"done()\"\r\n iconName=\"icon-done-outline\"\r\n ></ius-button-circle-tertiary>\r\n </div>\r\n </div>\r\n <ius-linear-progress-bar\r\n [porcentaje]=\"percentProgressBar\"\r\n ></ius-linear-progress-bar>\r\n <div\r\n class=\"scrollable-small\"\r\n style=\"height: calc(100% - 69px)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n }\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}.background-drawer{position:absolute;top:0;left:0;display:flex;height:100%;width:100%;justify-content:center;background-color:#0003;transition:.2s ease-in-out;align-items:center;z-index:2000}.create-container{height:calc(100vh - 60px);position:absolute;z-index:1000;width:390px;top:60px;right:0;background-color:#fff;border-radius:8px 0 0 8px;box-shadow:0 2px 6px 3px #00000026,0 1px 3px #0000004d}.header-drawer{display:flex;padding:12px 16px}.title-header-drawer{width:100%;font-family:Roboto,sans-serif;font-size:1.25rem;color:#333;line-height:26px;letter-spacing:.2px;padding-top:10px;font-weight:700;display:flex;justify-content:center;overflow:hidden;white-space:normal;text-overflow:ellipsis}.button-header-drawer{margin-left:3px;margin-top:1px}.scrollable-small::-webkit-scrollbar{-webkit-appearance:none}.scrollable-small::-webkit-scrollbar:vertical{width:8px;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: LinearProgressBarComponent, selector: "ius-linear-progress-bar", inputs: ["porcentaje"] }, { kind: "component", type: ButtonCircleTertiaryComponent, selector: "ius-button-circle-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }], animations: [
|
|
28
28
|
trigger('slideInOut', [
|
|
29
29
|
state('void', style({
|
|
30
30
|
transform: 'translateX(100%)',
|
|
@@ -62,7 +62,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
62
62
|
animate('300ms ease-out')
|
|
63
63
|
])
|
|
64
64
|
])
|
|
65
|
-
], template: "<div class=\"background-drawer\">\r\n @if (isVisible) {\r\n <div class=\"create-container\" @slideInOut (@slideInOut.done)=\"onAnimDone($event)\">\r\n <div class=\"header-drawer\">\r\n <div class=\"button-header-drawer\">\r\n <ius-button-circle-tertiary\r\n (buttonClicked)=\"close()\"\r\n iconName=\"icon-arrow-left-alt\"\r\n ></ius-button-circle-tertiary>\r\n </div>\r\n <div class=\"title-header-drawer\">{{ titleDrawer }}</div>\r\n <div class=\"button-header-drawer\">\r\n <ius-button-circle-tertiary\r\n (buttonClicked)=\"done()\"\r\n iconName=\"icon-done-outline\"\r\n ></ius-button-circle-tertiary>\r\n </div>\r\n </div>\r\n <ius-linear-progress-bar\r\n [porcentaje]=\"percentProgressBar\"\r\n ></ius-linear-progress-bar>\r\n <div\r\n class=\"scrollable-small\"\r\n style=\"
|
|
65
|
+
], template: "<div class=\"background-drawer\">\r\n @if (isVisible) {\r\n <div class=\"create-container\" @slideInOut (@slideInOut.done)=\"onAnimDone($event)\">\r\n <div class=\"header-drawer\">\r\n <div class=\"button-header-drawer\">\r\n <ius-button-circle-tertiary\r\n (buttonClicked)=\"close()\"\r\n iconName=\"icon-arrow-left-alt\"\r\n ></ius-button-circle-tertiary>\r\n </div>\r\n <div class=\"title-header-drawer\">{{ titleDrawer }}</div>\r\n <div class=\"button-header-drawer\">\r\n <ius-button-circle-tertiary\r\n (buttonClicked)=\"done()\"\r\n iconName=\"icon-done-outline\"\r\n ></ius-button-circle-tertiary>\r\n </div>\r\n </div>\r\n <ius-linear-progress-bar\r\n [porcentaje]=\"percentProgressBar\"\r\n ></ius-linear-progress-bar>\r\n <div\r\n class=\"scrollable-small\"\r\n style=\"height: calc(100% - 69px)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n }\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}.background-drawer{position:absolute;top:0;left:0;display:flex;height:100%;width:100%;justify-content:center;background-color:#0003;transition:.2s ease-in-out;align-items:center;z-index:2000}.create-container{height:calc(100vh - 60px);position:absolute;z-index:1000;width:390px;top:60px;right:0;background-color:#fff;border-radius:8px 0 0 8px;box-shadow:0 2px 6px 3px #00000026,0 1px 3px #0000004d}.header-drawer{display:flex;padding:12px 16px}.title-header-drawer{width:100%;font-family:Roboto,sans-serif;font-size:1.25rem;color:#333;line-height:26px;letter-spacing:.2px;padding-top:10px;font-weight:700;display:flex;justify-content:center;overflow:hidden;white-space:normal;text-overflow:ellipsis}.button-header-drawer{margin-left:3px;margin-top:1px}.scrollable-small::-webkit-scrollbar{-webkit-appearance:none}.scrollable-small::-webkit-scrollbar:vertical{width:8px;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"] }]
|
|
66
66
|
}], propDecorators: { titleDrawer: [{
|
|
67
67
|
type: Input
|
|
68
68
|
}], percentProgressBar: [{
|
|
@@ -74,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
74
74
|
}], onDrawerClosed: [{
|
|
75
75
|
type: Output
|
|
76
76
|
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWNvbnRhaW5lci1yaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pdXMtZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9kcmF3ZXItY29udGFpbmVyLXJpZ2h0L2RyYXdlci1jb250YWluZXItcmlnaHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZHJhd2VyLWNvbnRhaW5lci1yaWdodC9kcmF3ZXItY29udGFpbmVyLXJpZ2h0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQzs7QUEyQjNHLE1BQU0sT0FBTyw2QkFBNkI7SUF6QjFDO1FBMEJXLGdCQUFXLEdBQVcsY0FBYyxDQUFDO1FBQ3JDLHVCQUFrQixHQUFXLEVBQUUsQ0FBQztRQUUvQix1QkFBa0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzRCx1QkFBa0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzRCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFcEQsY0FBUyxHQUFZLElBQUksQ0FBQztLQWUzQjtJQWJDLEtBQUs7UUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDOytHQXRCVSw2QkFBNkI7bUdBQTdCLDZCQUE2QiwyU0M5QjFDLDgvQkE4QkEsdTlFRHRCWSwwQkFBMEIsNEZBQUUsNkJBQTZCLHVIQUd2RDtZQUNWLE9BQU8sQ0FBQyxZQUFZLEVBQUU7Z0JBQ3BCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO29CQUNsQixTQUFTLEVBQUUsa0JBQWtCO29CQUM3QixPQUFPLEVBQUUsQ0FBQztpQkFDWCxDQUFDLENBQUM7Z0JBQ0gsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7b0JBQ2YsU0FBUyxFQUFFLGVBQWU7b0JBQzFCLE9BQU8sRUFBRSxDQUFDO2lCQUNYLENBQUMsQ0FBQztnQkFDSCxVQUFVLENBQUMsV0FBVyxFQUFFO29CQUN0QixPQUFPLENBQUMsZUFBZSxDQUFDO2lCQUN6QixDQUFDO2dCQUNGLFVBQVUsQ0FBQyxXQUFXLEVBQUU7b0JBQ3RCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDMUIsQ0FBQzthQUNILENBQUM7U0FDSDs7NEZBRVUsNkJBQTZCO2tCQXpCekMsU0FBUzsrQkFDRSw0QkFBNEIsY0FDMUIsSUFBSSxXQUNQLENBQUMsMEJBQTBCLEVBQUUsNkJBQTZCLENBQUMsY0FHeEQ7d0JBQ1YsT0FBTyxDQUFDLFlBQVksRUFBRTs0QkFDcEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7Z0NBQ2xCLFNBQVMsRUFBRSxrQkFBa0I7Z0NBQzdCLE9BQU8sRUFBRSxDQUFDOzZCQUNYLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQztnQ0FDZixTQUFTLEVBQUUsZUFBZTtnQ0FDMUIsT0FBTyxFQUFFLENBQUM7NkJBQ1gsQ0FBQyxDQUFDOzRCQUNILFVBQVUsQ0FBQyxXQUFXLEVBQUU7Z0NBQ3RCLE9BQU8sQ0FBQyxlQUFlLENBQUM7NkJBQ3pCLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFdBQVcsRUFBRTtnQ0FDdEIsT0FBTyxDQUFDLGdCQUFnQixDQUFDOzZCQUMxQixDQUFDO3lCQUNILENBQUM7cUJBQ0g7OEJBR1EsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExpbmVhclByb2dyZXNzQmFyQ29tcG9uZW50IH0gZnJvbSBcIi4uL2xpbmVhci1wcm9ncmVzcy1iYXIvbGluZWFyLXByb2dyZXNzLWJhci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQnV0dG9uQ2lyY2xlVGVydGlhcnlDb21wb25lbnQgfSBmcm9tIFwiLi4vYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeS9idXR0b24tY2lyY2xlLXRlcnRpYXJ5LmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpdXMtZHJhd2VyLWNvbnRhaW5lci1yaWdodCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTGluZWFyUHJvZ3Jlc3NCYXJDb21wb25lbnQsIEJ1dHRvbkNpcmNsZVRlcnRpYXJ5Q29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJhd2VyLWNvbnRhaW5lci1yaWdodC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2RyYXdlci1jb250YWluZXItcmlnaHQuY29tcG9uZW50LnNjc3MnLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ3NsaWRlSW5PdXQnLCBbXHJcbiAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoe1xyXG4gICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknLFxyXG4gICAgICAgIG9wYWNpdHk6IDBcclxuICAgICAgfSkpLFxyXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHtcclxuICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyxcclxuICAgICAgICBvcGFjaXR5OiAxXHJcbiAgICAgIH0pKSxcclxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgW1xyXG4gICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2UtaW4nKVxyXG4gICAgICBdKSxcclxuICAgICAgdHJhbnNpdGlvbignKiA9PiB2b2lkJywgW1xyXG4gICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2Utb3V0JylcclxuICAgICAgXSlcclxuICAgIF0pXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERyYXdlckNvbnRhaW5lclJpZ2h0Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSB0aXRsZURyYXdlcjogc3RyaW5nID0gXCJUaXRsZSBEcmF3ZXJcIjtcclxuICBASW5wdXQoKSBwZXJjZW50UHJvZ3Jlc3NCYXI6IG51bWJlciA9IDUwO1xyXG5cclxuICBAT3V0cHV0KCkgb25QcmVzc2VkQmFja0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25QcmVzc2VkRG9uZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25EcmF3ZXJDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgXHJcbiAgaXNWaXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgb25BbmltRG9uZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnKSB7XHJcbiAgICAgIHRoaXMub25EcmF3ZXJDbG9zZWQuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZG9uZSgpIHtcclxuICAgIHRoaXMub25QcmVzc2VkRG9uZUV2ZW50LmVtaXQobnVsbCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJiYWNrZ3JvdW5kLWRyYXdlclwiPlxyXG4gIEBpZiAoaXNWaXNpYmxlKSB7XHJcbiAgPGRpdiBjbGFzcz1cImNyZWF0ZS1jb250YWluZXJcIiBAc2xpZGVJbk91dCAoQHNsaWRlSW5PdXQuZG9uZSk9XCJvbkFuaW1Eb25lKCRldmVudClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZHJhd2VyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24taGVhZGVyLWRyYXdlclwiPlxyXG4gICAgICAgIDxpdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeVxyXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrZWQpPVwiY2xvc2UoKVwiXHJcbiAgICAgICAgICBpY29uTmFtZT1cImljb24tYXJyb3ctbGVmdC1hbHRcIlxyXG4gICAgICAgID48L2l1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLWhlYWRlci1kcmF3ZXJcIj57eyB0aXRsZURyYXdlciB9fTwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWhlYWRlci1kcmF3ZXJcIj5cclxuICAgICAgICA8aXVzLWJ1dHRvbi1jaXJjbGUtdGVydGlhcnlcclxuICAgICAgICAgIChidXR0b25DbGlja2VkKT1cImRvbmUoKVwiXHJcbiAgICAgICAgICBpY29uTmFtZT1cImljb24tZG9uZS1vdXRsaW5lXCJcclxuICAgICAgICA+PC9pdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxpdXMtbGluZWFyLXByb2dyZXNzLWJhclxyXG4gICAgICBbcG9yY2VudGFqZV09XCJwZXJjZW50UHJvZ3Jlc3NCYXJcIlxyXG4gICAgPjwvaXVzLWxpbmVhci1wcm9ncmVzcy1iYXI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwic2Nyb2xsYWJsZS1zbWFsbFwiXHJcbiAgICAgIHN0eWxlPVwiaGVpZ2h0OiBjYWxjKDEwMCUgLSA2OXB4KVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
|