@progressio_resources/gravity-design-system 3.6.0 → 3.6.2
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/components/gravity-calendar-next/components/day-calendar/day-calendar.component.mjs +56 -14
- package/esm2022/lib/components/gravity-calendar-next/components/day-calendar/range-days-calendar.utils.mjs +122 -37
- package/esm2022/lib/components/gravity-calendar-next/components/dual-month-calendar/dual-month-calendar.component.mjs +6 -6
- package/esm2022/lib/components/gravity-calendar-next/shared/calendar.constants.mjs +9 -3
- package/esm2022/lib/components/gravity-calendar-next/shared/calendar.modal.mjs +1 -1
- package/esm2022/lib/components/gravity-calendar-next/shared/calendar.utils.mjs +7 -1
- package/esm2022/lib/components/gravity-chip-group/gravity-chip-group.component.mjs +2 -2
- package/esm2022/lib/components/gravity-link/gravity-link.component.mjs +2 -2
- package/esm2022/lib/components/gravity-notification/gravity-notification.component.mjs +14 -3
- package/esm2022/lib/components/gravity-notification-instant/gravity-notification-instant-container.component.mjs +14 -3
- package/esm2022/lib/components/gravity-text-field/gravity-text-field.component.mjs +60 -4
- package/esm2022/lib/layout/gravity-menu/gravity-menu.component.mjs +4 -5
- package/fesm2022/progressio_resources-gravity-design-system.mjs +277 -62
- package/fesm2022/progressio_resources-gravity-design-system.mjs.map +1 -1
- package/lib/components/gravity-calendar-next/components/day-calendar/day-calendar.component.d.ts +17 -2
- package/lib/components/gravity-calendar-next/components/day-calendar/range-days-calendar.utils.d.ts +2 -1
- package/lib/components/gravity-calendar-next/components/dual-month-calendar/dual-month-calendar.component.d.ts +11 -3
- package/lib/components/gravity-calendar-next/components/month-calendar/month-calendar.component.d.ts +8 -0
- package/lib/components/gravity-calendar-next/components/year-calendar/year-calendar.component.d.ts +8 -0
- package/lib/components/gravity-calendar-next/shared/calendar.constants.d.ts +8 -0
- package/lib/components/gravity-calendar-next/shared/calendar.modal.d.ts +1 -1
- package/lib/components/gravity-calendar-next/shared/calendar.utils.d.ts +1 -0
- package/lib/components/gravity-notification/gravity-notification.component.d.ts +1 -0
- package/lib/components/gravity-notification-instant/gravity-notification-instant-container.component.d.ts +1 -0
- package/lib/components/gravity-text-field/gravity-text-field.component.d.ts +2 -1
- package/lib/layout/gravity-menu/gravity-menu.component.d.ts +2 -2
- package/package.json +1 -1
- package/src/lib/assets/icon-set/coins/crypto/gt-icon-avax-currency/gt-icon-avax-currency-disabled.svg +3 -3
- package/src/lib/assets/icon-set/coins/crypto/gt-icon-cbbtc-currency/gt-icon-cbbtc-currency-disabled.svg +3 -3
- package/src/lib/assets/icon-set/coins/crypto/gt-icon-doge-currency/gt-icon-doge-currency-disabled.svg +3 -3
- package/src/lib/assets/icon-set/coins/crypto/gt-icon-pol-currency/gt-icon-pol-currency-disabled.svg +3 -3
- package/src/lib/assets/icon-set/coins/crypto/gt-icon-shib-currency/gt-icon-shib-currency-disabled.svg +11 -11
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-ars-currency/gt-icon-ars-currency-disabled.svg +7 -7
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-ars-currency/gt-icon-ars-currency.svg +1 -1
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-brl-currency/gt-icon-brl-currency-disabled.svg +7 -7
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-brl-currency/gt-icon-brl-currency.svg +1 -1
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-cad-currency/gt-icon-cad-currency-disabled.svg +5 -5
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-cad-currency/gt-icon-cad-currency.svg +1 -1
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-clp-currency/gt-icon-clp-currency-disabled.svg +7 -7
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-clp-currency/gt-icon-clp-currency.svg +1 -1
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-cop-currency/gt-icon-cop-currency-disabled.svg +5 -5
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-cop-currency/gt-icon-cop-currency.svg +1 -1
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-crc-currency/gt-icon-crc-currency-disabled.svg +6 -6
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-crc-currency/gt-icon-crc-currency.svg +1 -1
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-dop-currency/gt-icon-dop-currency-disabled.svg +10 -10
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-dop-currency/gt-icon-dop-currency.svg +1 -1
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-eur-currency/gt-icon-eur-currency-disabled.svg +10 -10
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-eur-currency/gt-icon-eur-currency.svg +1 -1
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-gbp-currency/gt-icon-gbp-currency-disabled.svg +16 -16
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-gbp-currency/gt-icon-gbp-currency.svg +1 -1
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-jpy-currency/gt-icon-jpy-currency-disabled.svg +4 -4
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-jpy-currency/gt-icon-jpy-currency.svg +1 -1
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-mxn-currency/gt-icon-mxn-currency-disabled.svg +7 -7
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-mxn-currency/gt-icon-mxn-currency.svg +1 -1
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-pen-currency/gt-icon-pen-currency-disabled.svg +5 -5
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-pen-currency/gt-icon-pen-currency.svg +1 -1
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-usd-currency/gt-icon-usd-currency-disabled.svg +9 -9
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-usd-currency/gt-icon-usd-currency.svg +1 -1
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-ves-currency/gt-icon-ves-currency-disabled.svg +13 -13
- package/src/lib/assets/icon-set/coins/fiat/gt-icon-ves-currency/gt-icon-ves-currency.svg +1 -1
- package/src/lib/assets/icon-set/networks/gt-icon-avax-network/gt-icon-avax-network-disabled.svg +3 -3
- package/src/lib/assets/icon-set/networks/gt-icon-base-network/gt-icon-base-network-disabled.svg +3 -3
- package/src/lib/assets/icon-set/networks/gt-icon-bch-network/gt-icon-bch-network-disabled.svg +4 -4
- package/src/lib/assets/icon-set/networks/gt-icon-bsc-network/gt-icon-bsc-network-disabled.svg +7 -7
- package/src/lib/assets/icon-set/networks/gt-icon-btc-network/gt-icon-btc-network-disabled.svg +3 -3
- package/src/lib/assets/icon-set/networks/gt-icon-doge-network/gt-icon-doge-network-disabled.svg +3 -3
- package/src/lib/assets/icon-set/networks/gt-icon-erc20-network/gt-icon-erc20-network-disabled.svg +9 -9
- package/src/lib/assets/icon-set/networks/gt-icon-lnbtc-network/gt-icon-lnbtc-network-disabled.svg +4 -4
- package/src/lib/assets/icon-set/networks/gt-icon-ltc-network/gt-icon-ltc-network-disabled.svg +3 -3
- package/src/lib/assets/icon-set/networks/gt-icon-ltc-network/gt-icon-ltc-network.svg +2 -2
- package/src/lib/assets/icon-set/networks/gt-icon-op-network/gt-icon-op-network-disabled.svg +4 -4
- package/src/lib/assets/icon-set/networks/gt-icon-pol-network/gt-icon-pol-network-disabled.svg +3 -3
- package/src/lib/assets/icon-set/networks/gt-icon-sol-network/gt-icon-sol-network-disabled.svg +3 -3
- package/src/lib/assets/icon-set/networks/gt-icon-trc20-network/gt-icon-trc20-network-disabled.svg +4 -4
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { toDate, toCalendarDay, getStartDate, changeDate } from '../../shared/calendar.utils';
|
|
2
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
3
3
|
import { CALENDAR_I18N, DAYS_SHORT_EN, DAYS_SHORT_ES, MONTHS_EN, MONTHS_ES } from "../../shared/calendar.constants";
|
|
4
|
-
import { getRangeSelectionClass, isPreview, onApplyRageDate, onClearHover, onHoverDay,
|
|
4
|
+
import { getRangeSelectionClass, isPreview, onApplyRageDate, onClearHover, onHoverDay, onSelectDaysRange, processPreselectedRangeDate, stringToDate } from "./range-days-calendar.utils";
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/common";
|
|
7
7
|
import * as i2 from "../../../gravity-button/gravity-button.component";
|
|
8
|
-
import * as i3 from "../../../gravity-icon/gravity-icon.component";
|
|
9
|
-
import * as i4 from "../../../gravity-
|
|
10
|
-
import * as i5 from "../../../gravity-
|
|
11
|
-
import * as i6 from "
|
|
12
|
-
import * as i7 from "../
|
|
8
|
+
import * as i3 from "../../../gravity-icon-button/gravity-icon-button.component";
|
|
9
|
+
import * as i4 from "../../../gravity-text-field/gravity-text-field.component";
|
|
10
|
+
import * as i5 from "../../../gravity-link/gravity-link.component";
|
|
11
|
+
import * as i6 from "../../../gravity-dropdown-label/gravity-dropdown-label.component";
|
|
12
|
+
import * as i7 from "../month-calendar/month-calendar.component";
|
|
13
|
+
import * as i8 from "../year-calendar/year-calendar.component";
|
|
13
14
|
export class DayCalendarComponent {
|
|
14
15
|
constructor() {
|
|
15
16
|
this.range = false;
|
|
@@ -24,6 +25,8 @@ export class DayCalendarComponent {
|
|
|
24
25
|
this.selectedRage = new EventEmitter();
|
|
25
26
|
this.changeMonthYearResponse = new EventEmitter();
|
|
26
27
|
this.calendarResponse = new EventEmitter();
|
|
28
|
+
this.endDateError = '';
|
|
29
|
+
this.startDateError = '';
|
|
27
30
|
this.showYearCalendar = false;
|
|
28
31
|
this.showMonthCalendar = false;
|
|
29
32
|
this.hoveredDay = null;
|
|
@@ -92,7 +95,7 @@ export class DayCalendarComponent {
|
|
|
92
95
|
this.calendarResponse.emit(currentDate);
|
|
93
96
|
}
|
|
94
97
|
else {
|
|
95
|
-
|
|
98
|
+
onSelectDaysRange(this, day);
|
|
96
99
|
this.selectedRage.emit(day);
|
|
97
100
|
}
|
|
98
101
|
}
|
|
@@ -105,12 +108,32 @@ export class DayCalendarComponent {
|
|
|
105
108
|
onApplyRageDate(this);
|
|
106
109
|
}
|
|
107
110
|
}
|
|
108
|
-
clearSelectedDate() {
|
|
111
|
+
clearSelectedDate(clearTarget) {
|
|
112
|
+
if (clearTarget === 'all' || clearTarget === 'start') {
|
|
113
|
+
this.selectedRangeStart = null;
|
|
114
|
+
this.startDateField.inputValue = '';
|
|
115
|
+
}
|
|
116
|
+
if (clearTarget === 'all' || clearTarget === 'end') {
|
|
117
|
+
this.selectedRangeEnd = null;
|
|
118
|
+
this.endDateField.inputValue = '';
|
|
119
|
+
}
|
|
109
120
|
this.selectedDay = null;
|
|
110
|
-
this.selectedRangeEnd = null;
|
|
111
|
-
this.selectedRangeStart = null;
|
|
112
121
|
this.clearSelection.emit();
|
|
113
122
|
}
|
|
123
|
+
searchDate(date, target) {
|
|
124
|
+
const parsed = stringToDate(date);
|
|
125
|
+
const isInvalid = parsed === null;
|
|
126
|
+
if (target === 'start') {
|
|
127
|
+
this.startDateError = isInvalid ? 'invalid start date' : null;
|
|
128
|
+
if (!isInvalid)
|
|
129
|
+
this.selectedRangeStart = parsed;
|
|
130
|
+
}
|
|
131
|
+
if (target === 'end') {
|
|
132
|
+
this.endDateError = isInvalid ? 'invalid end date' : null;
|
|
133
|
+
if (!isInvalid)
|
|
134
|
+
this.selectedRangeEnd = parsed;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
114
137
|
handleCalendarResponse(date, isMonth) {
|
|
115
138
|
if (!(date instanceof Date))
|
|
116
139
|
return;
|
|
@@ -173,12 +196,25 @@ export class DayCalendarComponent {
|
|
|
173
196
|
}
|
|
174
197
|
return grid;
|
|
175
198
|
}
|
|
199
|
+
onDateKeyup(event, target) {
|
|
200
|
+
const errorProp = target === 'start' ? 'startDateError' : 'endDateError';
|
|
201
|
+
const dateInput = target === 'start' ? this.startDateField : this.endDateField;
|
|
202
|
+
const selectedRangeProp = target === 'start' ? 'selectedRangeStart' : 'selectedRangeEnd';
|
|
203
|
+
const value = dateInput?.inputValue ?? '';
|
|
204
|
+
if (value.length <= 10) {
|
|
205
|
+
this[errorProp] = '';
|
|
206
|
+
this[selectedRangeProp] = null;
|
|
207
|
+
}
|
|
208
|
+
if (event.key === 'Enter') {
|
|
209
|
+
this.searchDate(value, target);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
176
212
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DayCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
177
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DayCalendarComponent, selector: "day-calendar", inputs: { initYear: "initYear", initMonth: "initMonth", config: "config", range: "range", restart: "restart", currentDate: "currentDate", appearance: "appearance", navType: "navType" }, outputs: { clearHover: "clearHover", clearSelection: "clearSelection", changeMonth: "changeMonth", hoverDay: "hoverDay", openIntegratedCalendar: "openIntegratedCalendar", selectedRage: "selectedRage", changeMonthYearResponse: "changeMonthYearResponse", calendarResponse: "response" }, usesOnChanges: true, ngImport: i0, template: "<section *ngIf=\"showMonthCalendar\">\n <month-calendar\n [integratedMode]=\"true\"\n [restart]=\"showMonthCalendar\"\n (response)=\"handleCalendarResponse($event, true)\" [initDate]=\"initMonth\"\n [appearance]=\"{language: appearance.language, isMobile: appearance.isMobile, actions: false, }\">\n </month-calendar>\n</section>\n\n<section *ngIf=\"showYearCalendar\">\n <year-calendar\n [integratedMode]=\"true\"\n [restart]=\"showYearCalendar\"\n (response)=\"handleCalendarResponse($event, false)\" [initDate]=\"initYear\"\n [appearance]=\"{language: appearance.language, isMobile: appearance.isMobile, actions: false}\">\n </year-calendar>\n</section>\n\n<ng-container *ngIf=\"!showYearCalendar && !showMonthCalendar\">\n <section class=\"gravity-calendar-header\" [class.mobile]=\"appearance.isMobile\">\n <div class=\"previous-button\" (click)=\"currentDate = changeDate(-1, currentDate, true); changeMonth.emit(-1)\">\n <gravity-icon *ngIf=\"(navType === 'prev' || navType === 'both') && appearance.state !== 'disabled'\" [style.--icon-color]=\"'var(--text-highlight-primary)'\"\n [iconName]=\"'arrow-left'\" [iconSize]=\"'sm-12'\" > </gravity-icon>\n </div>\n\n <div class=\"month-year-label\">\n <gravity-dropdown-label [fontClass]=\"'hr-title sm-bold'\" [size]=\"'sm'\" [label]=\"monthsList[currentDate.getMonth()]\"\n [state]=\"appearance.state === 'disabled' ? 'inactive' : 'active'\" (onClickLabel)=\"handleOnClickDropdownLabel(true)\"> </gravity-dropdown-label>\n\n <gravity-dropdown-label [fontClass]=\"'hr-title sm-bold'\" [size]=\"'sm'\" [label]=\"currentDate.getFullYear().toString()\"\n [state]=\"appearance.state === 'disabled' ? 'inactive' : 'active'\" (onClickLabel)=\"handleOnClickDropdownLabel(false)\"> </gravity-dropdown-label>\n </div>\n\n <div class=\"next-button\" (click)=\"currentDate = changeDate(1, currentDate, true); changeMonth.emit(1)\">\n <gravity-icon *ngIf=\"(navType === 'next' || navType === 'both') && appearance.state !== 'disabled'\" [style.--icon-color]=\"'var(--text-highlight-primary)'\"\n [iconName]=\"'arrow-right'\" [iconSize]=\"'sm-12'\" > </gravity-icon>\n </div>\n </section>\n\n <section class=\"gravity-calendar-body\" [class.mobile]=\"appearance.isMobile\">\n <section class=\"days-name-line\">\n <div class=\"days-name\">\n <span class=\"hr-body\" [ngClass]=\"appearance.isMobile ? 'md-regular' : 'sm-regular'\"\n *ngFor=\"let day of daysList\"> {{ day }} </span>\n </div>\n\n <div class=\"separator-line\"></div>\n </section>\n\n <section class=\"days-number-selector\">\n <div class=\"days-number-table\">\n <div class=\"week-row\" *ngFor=\"let week of getMonthGrid(); trackBy: trackByWeek\">\n <span class=\"hr-body\" *ngFor=\"let day of week; trackBy: trackByDay\"\n [class.preview]=\"range ? isPreview(this, day) : null\"\n [class.disabled]=\"!day.inCurrentMonth\" [class.today]=\"day.isToday\"\n (mouseenter)=\"range ? onHoverDay(this, day) : null; hoverDay.emit(day)\"\n (mouseleave)=\"range ? onClearHover(this) : null; this.clearHover.emit()\"\n [ngClass]=\"[appearance.isMobile ? 'md-regular' : 'sm-regular',\n appearance.state === 'disabled' ? 'disabled' : getDaySelectionClass(day)]\"\n (click)=\"onSelectDay(day)\"> {{ day.day }} </span>\n </div>\n </div>\n\n <div *ngIf=\"appearance.actions\" class=\"action-section\" >\n <gravity-link [linkText]=\"i18n.clear\"\n [state]=\"!isDateSelected() ? 'disabled' : 'active'\" (click)=\"clearSelectedDate()\"> </gravity-link>\n\n <gravity-button [size]=\"'sm'\" [type]=\"'tertiary'\"\n [disabled]=\"!isDateSelected()\" (click)=\"applySelectedDate()\"> {{i18n.apply}} </gravity-button>\n </div>\n </section>\n </section>\n</ng-container>\n", styles: [":root{--gravity-spacing-none: 0;--gravity-spacing-xxxs: .125rem;--gravity-spacing-xxs: .25rem;--gravity-spacing-xs: .5rem;--gravity-spacing-sm: 1rem;--gravity-spacing-md: 1.5rem;--gravity-spacing-lg: 2rem;--gravity-spacing-xl: 2.5rem;--gravity-spacing-xxl: 3rem;--gravity-spacing-xxxl: 4rem;--gravity-spacing-xxxxl: 6rem;--gravity-spacing-xxxxxl: 12rem}.gravity-padding-none{padding:0!important}.gravity-padding-top-none{padding-top:0!important}.gravity-padding-bottom-none{padding-bottom:0!important}.gravity-padding-left-none{padding-left:0!important}.gravity-padding-right-none{padding-right:0!important}.gravity-padding-block-none{padding-block:0!important}.gravity-padding-inline-none{padding-inline:0!important}.gravity-padding-xxs{padding:.25rem!important}.gravity-padding-top-xxs{padding-top:.25rem!important}.gravity-padding-bottom-xxs{padding-bottom:.25rem!important}.gravity-padding-left-xxs{padding-left:.25rem!important}.gravity-padding-right-xxs{padding-right:.25rem!important}.gravity-padding-block-xxs{padding-block:.25rem!important}.gravity-padding-inline-xxs{padding-inline:.25rem!important}.gravity-padding-xs{padding:.5rem!important}.gravity-padding-top-xs{padding-top:.5rem!important}.gravity-padding-bottom-xs{padding-bottom:.5rem!important}.gravity-padding-left-xs{padding-left:.5rem!important}.gravity-padding-right-xs{padding-right:.5rem!important}.gravity-padding-block-xs{padding-block:.5rem!important}.gravity-padding-inline-xs{padding-inline:.5rem!important}.gravity-padding-sm{padding:1rem!important}.gravity-padding-top-sm{padding-top:1rem!important}.gravity-padding-bottom-sm{padding-bottom:1rem!important}.gravity-padding-left-sm{padding-left:1rem!important}.gravity-padding-right-sm{padding-right:1rem!important}.gravity-padding-block-sm{padding-block:1rem!important}.gravity-padding-inline-sm{padding-inline:1rem!important}.gravity-padding-md{padding:1.5rem!important}.gravity-padding-top-md{padding-top:1.5rem!important}.gravity-padding-bottom-md{padding-bottom:1.5rem!important}.gravity-padding-left-md{padding-left:1.5rem!important}.gravity-padding-right-md{padding-right:1.5rem!important}.gravity-padding-block-md{padding-block:1.5rem!important}.gravity-padding-inline-md{padding-inline:1.5rem!important}.gravity-padding-lg{padding:2rem!important}.gravity-padding-top-lg{padding-top:2rem!important}.gravity-padding-bottom-lg{padding-bottom:2rem!important}.gravity-padding-left-lg{padding-left:2rem!important}.gravity-padding-right-lg{padding-right:2rem!important}.gravity-padding-block-lg{padding-block:2rem!important}.gravity-padding-inline-lg{padding-inline:2rem!important}.gravity-padding-xl{padding:2.5rem!important}.gravity-padding-top-xl{padding-top:2.5rem!important}.gravity-padding-bottom-xl{padding-bottom:2.5rem!important}.gravity-padding-left-xl{padding-left:2.5rem!important}.gravity-padding-right-xl{padding-right:2.5rem!important}.gravity-padding-block-xl{padding-block:2.5rem!important}.gravity-padding-inline-xl{padding-inline:2.5rem!important}.gravity-padding-xxl{padding:3rem!important}.gravity-padding-top-xxl{padding-top:3rem!important}.gravity-padding-bottom-xxl{padding-bottom:3rem!important}.gravity-padding-left-xxl{padding-left:3rem!important}.gravity-padding-right-xxl{padding-right:3rem!important}.gravity-padding-block-xxl{padding-block:3rem!important}.gravity-padding-inline-xxl{padding-inline:3rem!important}.gravity-padding-xxxl{padding:4rem!important}.gravity-padding-top-xxxl{padding-top:4rem!important}.gravity-padding-bottom-xxxl{padding-bottom:4rem!important}.gravity-padding-left-xxxl{padding-left:4rem!important}.gravity-padding-right-xxxl{padding-right:4rem!important}.gravity-padding-block-xxxl{padding-block:4rem!important}.gravity-padding-inline-xxxl{padding-inline:4rem!important}.gravity-padding-xxxxl{padding:6rem!important}.gravity-padding-top-xxxxl{padding-top:6rem!important}.gravity-padding-bottom-xxxxl{padding-bottom:6rem!important}.gravity-padding-left-xxxxl{padding-left:6rem!important}.gravity-padding-right-xxxxl{padding-right:6rem!important}.gravity-padding-block-xxxxl{padding-block:6rem!important}.gravity-padding-inline-xxxxl{padding-inline:6rem!important}.gravity-padding-xxxxxl{padding:12rem!important}.gravity-padding-top-xxxxxl{padding-top:12rem!important}.gravity-padding-bottom-xxxxxl{padding-bottom:12rem!important}.gravity-padding-left-xxxxxl{padding-left:12rem!important}.gravity-padding-right-xxxxxl{padding-right:12rem!important}.gravity-padding-block-xxxxxl{padding-block:12rem!important}.gravity-padding-inline-xxxxxl{padding-inline:12rem!important}.gravity-margin-none{margin:0!important}.gravity-margin-top-none{margin-top:0!important}.gravity-margin-bottom-none{margin-bottom:0!important}.gravity-margin-left-none{margin-left:0!important}.gravity-margin-right-none{margin-right:0!important}.gravity-margin-block-none{margin-block:0!important}.gravity-margin-inline-none{margin-inline:0!important}.gravity-margin-xxs{margin:.25rem!important}.gravity-margin-top-xxs{margin-top:.25rem!important}.gravity-margin-bottom-xxs{margin-bottom:.25rem!important}.gravity-margin-left-xxs{margin-left:.25rem!important}.gravity-margin-right-xxs{margin-right:.25rem!important}.gravity-margin-block-xxs{margin-block:.25rem!important}.gravity-margin-inline-xxs{margin-inline:.25rem!important}.gravity-margin-xs{margin:.5rem!important}.gravity-margin-top-xs{margin-top:.5rem!important}.gravity-margin-bottom-xs{margin-bottom:.5rem!important}.gravity-margin-left-xs{margin-left:.5rem!important}.gravity-margin-right-xs{margin-right:.5rem!important}.gravity-margin-block-xs{margin-block:.5rem!important}.gravity-margin-inline-xs{margin-inline:.5rem!important}.gravity-margin-sm{margin:1rem!important}.gravity-margin-top-sm{margin-top:1rem!important}.gravity-margin-bottom-sm{margin-bottom:1rem!important}.gravity-margin-left-sm{margin-left:1rem!important}.gravity-margin-right-sm{margin-right:1rem!important}.gravity-margin-block-sm{margin-block:1rem!important}.gravity-margin-inline-sm{margin-inline:1rem!important}.gravity-margin-md{margin:1.5rem!important}.gravity-margin-top-md{margin-top:1.5rem!important}.gravity-margin-bottom-md{margin-bottom:1.5rem!important}.gravity-margin-left-md{margin-left:1.5rem!important}.gravity-margin-right-md{margin-right:1.5rem!important}.gravity-margin-block-md{margin-block:1.5rem!important}.gravity-margin-inline-md{margin-inline:1.5rem!important}.gravity-margin-lg{margin:2rem!important}.gravity-margin-top-lg{margin-top:2rem!important}.gravity-margin-bottom-lg{margin-bottom:2rem!important}.gravity-margin-left-lg{margin-left:2rem!important}.gravity-margin-right-lg{margin-right:2rem!important}.gravity-margin-block-lg{margin-block:2rem!important}.gravity-margin-inline-lg{margin-inline:2rem!important}.gravity-margin-xl{margin:2.5rem!important}.gravity-margin-top-xl{margin-top:2.5rem!important}.gravity-margin-bottom-xl{margin-bottom:2.5rem!important}.gravity-margin-left-xl{margin-left:2.5rem!important}.gravity-margin-right-xl{margin-right:2.5rem!important}.gravity-margin-block-xl{margin-block:2.5rem!important}.gravity-margin-inline-xl{margin-inline:2.5rem!important}.gravity-margin-xxl{margin:3rem!important}.gravity-margin-top-xxl{margin-top:3rem!important}.gravity-margin-bottom-xxl{margin-bottom:3rem!important}.gravity-margin-left-xxl{margin-left:3rem!important}.gravity-margin-right-xxl{margin-right:3rem!important}.gravity-margin-block-xxl{margin-block:3rem!important}.gravity-margin-inline-xxl{margin-inline:3rem!important}.gravity-margin-xxxl{margin:4rem!important}.gravity-margin-top-xxxl{margin-top:4rem!important}.gravity-margin-bottom-xxxl{margin-bottom:4rem!important}.gravity-margin-left-xxxl{margin-left:4rem!important}.gravity-margin-right-xxxl{margin-right:4rem!important}.gravity-margin-block-xxxl{margin-block:4rem!important}.gravity-margin-inline-xxxl{margin-inline:4rem!important}.gravity-margin-xxxxl{margin:6rem!important}.gravity-margin-top-xxxxl{margin-top:6rem!important}.gravity-margin-bottom-xxxxl{margin-bottom:6rem!important}.gravity-margin-left-xxxxl{margin-left:6rem!important}.gravity-margin-right-xxxxl{margin-right:6rem!important}.gravity-margin-block-xxxxl{margin-block:6rem!important}.gravity-margin-inline-xxxxl{margin-inline:6rem!important}.gravity-margin-xxxxxl{margin:12rem!important}.gravity-margin-top-xxxxxl{margin-top:12rem!important}.gravity-margin-bottom-xxxxxl{margin-bottom:12rem!important}.gravity-margin-left-xxxxxl{margin-left:12rem!important}.gravity-margin-right-xxxxxl{margin-right:12rem!important}.gravity-margin-block-xxxxxl{margin-block:12rem!important}.gravity-margin-inline-xxxxxl{margin-inline:12rem!important}.border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.next-button,.previous-button{cursor:pointer;padding:var(--gravity-spacing-xs);border-radius:var(--gravity-spacing-xs)}.next-button:not(.disabled):hover,.previous-button:not(.disabled):hover{background:var(--bg-button-active-tertiary)}.next-button.disabled,.previous-button.disabled{cursor:default;pointer-events:none;--icon-color: var(--on-bg-disabled)}.separator-line{border-bottom:2px solid var(--divider-menu-active-primary)}.action-section{height:25px;display:flex;align-self:stretch;align-items:center;justify-content:space-between}.gravity-calendar-header{gap:0;width:268px;height:auto;display:flex;padding-top:0;align-items:center;justify-content:space-between}.gravity-calendar-header .month-year-label{display:flex;gap:var(--gravity-spacing-sm)}.gravity-calendar-header.mobile{width:100%}.gravity-calendar-body{width:268px}.gravity-calendar-body .days-name-line{display:flex;flex-direction:column;gap:var(--gravity-spacing-xs);padding-bottom:var(--gravity-spacing-xs)}.gravity-calendar-body .days-name-line .days-name{display:flex;align-self:stretch;justify-content:space-between}.gravity-calendar-body .days-name-line .days-name span{display:flex;cursor:default;align-items:center;justify-content:center;padding:var(--gravity-spacing-xs);color:var(--text-highlight-primary)}.gravity-calendar-body .days-name-line .separator-line{width:268px}.gravity-calendar-body .days-number-selector{display:flex;align-self:stretch;flex-direction:column;gap:var(--gravity-spacing-sm)}.gravity-calendar-body .days-number-selector .days-number-table{display:flex;min-height:150px;flex-direction:column}.gravity-calendar-body .days-number-selector .days-number-table .week-row{height:25px;display:flex;align-self:stretch}.gravity-calendar-body .days-number-selector .days-number-table .week-row span{gap:10px;flex:1 0 0;width:31px;height:25px;display:flex;cursor:pointer;align-items:center;justify-content:center;border-radius:var(--gravity-spacing-xs);color:var(--on-bg-button-pressed-tertiary);border:2px solid var(--bg-calender-primary)}.gravity-calendar-body .days-number-selector .days-number-table .week-row span:not(.sl).today{border-color:var(--bg-number-calendar-hover-primary)}.gravity-calendar-body .days-number-selector .days-number-table .week-row span:not(.disabled):not(.sl):hover{color:var(--on-bg-button-pressed-tertiary);background:var(--bg-button-active-tertiary);border-color:var(--bg-button-active-tertiary)}.gravity-calendar-body .days-number-selector .days-number-table .week-row span.single,.gravity-calendar-body .days-number-selector .days-number-table .week-row span.start,.gravity-calendar-body .days-number-selector .days-number-table .week-row span.end{color:var(--on-bg-button-pressed-primary);background:var(--bg-button-pressed-primary);border-color:var(--bg-button-pressed-primary)}.gravity-calendar-body .days-number-selector .days-number-table .week-row span.range,.gravity-calendar-body .days-number-selector .days-number-table .week-row span:not(.disabled).preview{border-radius:0;background:var(--bg-button-active-tertiary);border-color:var(--bg-button-active-tertiary)}.gravity-calendar-body .days-number-selector .days-number-table .week-row span.start,.gravity-calendar-body .days-number-selector .days-number-table .week-row span.nsl-start:hover{border-radius:var(--gravity-spacing-xs) 0 0 var(--gravity-spacing-xs)}.gravity-calendar-body .days-number-selector .days-number-table .week-row span.end,.gravity-calendar-body .days-number-selector .days-number-table .week-row span.nsl-end:hover{border-radius:0 var(--gravity-spacing-xs) var(--gravity-spacing-xs) 0}.gravity-calendar-body .days-number-selector .days-number-table .week-row span.nsl-end:hover{border-color:var(--bg-button-pressed-primary)!important}.gravity-calendar-body .days-number-selector .days-number-table .week-row span.disabled{cursor:default;pointer-events:none;color:var(--on-bg-disabled)}.gravity-calendar-body.mobile{width:100%;height:auto}.gravity-calendar-body.mobile .days-name-line .separator-line{width:100%}.gravity-calendar-body.mobile .days-number-selector{gap:0}.gravity-calendar-body.mobile .days-number-selector .days-number-table{min-height:270px}.gravity-calendar-body.mobile .days-number-selector .days-number-table .week-row{height:43px}.gravity-calendar-body.mobile .days-number-selector .days-number-table .week-row span{width:51px;height:43px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.GravityButtonComponent, selector: "gravity-button", inputs: ["cypressTag", "disabled", "iconName", "isLoading", "showContent", "size", "iconPosition", "customState", "type"] }, { kind: "component", type: i3.GravityIconComponent, selector: "gravity-icon", inputs: ["customIconColorVariable", "iconName", "iconSize", "hoverIcon", "size", "isCoin"] }, { kind: "component", type: i4.GravityLinkComponent, selector: "gravity-link", inputs: ["linkText", "fontClass", "link", "cypressTag", "iconName", "target", "iconPosition", "iconSize", "state"] }, { kind: "component", type: i5.GravityDropdownLabelComponent, selector: "gravity-dropdown-label", inputs: ["label", "fontClass", "isOpen", "stopPropagation", "size", "state"], outputs: ["onClickLabel"] }, { kind: "component", type: i6.MonthCalendarComponent, selector: "month-calendar", inputs: ["initDate", "restart", "appearance", "integratedMode"], outputs: ["clearSelection", "response"] }, { kind: "component", type: i7.YearCalendarComponent, selector: "year-calendar", inputs: ["initDate", "restart", "appearance", "integratedMode"], outputs: ["clearSelection", "response"] }] }); }
|
|
213
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DayCalendarComponent, selector: "day-calendar", inputs: { initYear: "initYear", initMonth: "initMonth", config: "config", range: "range", restart: "restart", currentDate: "currentDate", appearance: "appearance", navType: "navType" }, outputs: { clearHover: "clearHover", clearSelection: "clearSelection", changeMonth: "changeMonth", hoverDay: "hoverDay", openIntegratedCalendar: "openIntegratedCalendar", selectedRage: "selectedRage", changeMonthYearResponse: "changeMonthYearResponse", calendarResponse: "response" }, viewQueries: [{ propertyName: "endDateField", first: true, predicate: ["endDate"], descendants: true }, { propertyName: "startDateField", first: true, predicate: ["startDate"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<section *ngIf=\"showMonthCalendar\">\n <month-calendar\n [integratedMode]=\"true\"\n [restart]=\"showMonthCalendar\"\n (response)=\"handleCalendarResponse($event, true)\" [initDate]=\"initMonth\"\n [appearance]=\"{language: appearance.language, isMobile: appearance.isMobile, actions: false, }\">\n </month-calendar>\n</section>\n\n<section *ngIf=\"showYearCalendar\">\n <year-calendar\n [integratedMode]=\"true\"\n [restart]=\"showYearCalendar\"\n (response)=\"handleCalendarResponse($event, false)\" [initDate]=\"initYear\"\n [appearance]=\"{language: appearance.language, isMobile: appearance.isMobile, actions: false}\">\n </year-calendar>\n</section>\n\n<div *ngIf=\"!showYearCalendar && !showMonthCalendar\" class=\"gravity-calendar-content\">\n <span class=\"hr-label sm-bold title\">{{range ? i18n.select_range : i18n.select_date}}</span>\n\n <div *ngIf=\"range\" class=\"selected-dates\">\n <gravity-text-field #startDate [label]=\"i18n.start_date\" [inputContentType]=\"'date'\" (keyup)=\"onDateKeyup($event, 'start')\"\n [customState]=\"startDateError ? 'typed-error' : (startDate.inputValue.length < 1 ? 'default' : 'typing')\"\n [supportText]=\"startDateError\" [size]=\"'sm'\" [width]=\"'short'\" [placeholder]=\"'dd/mm/yyyy'\" [clickOnRightIcon]=\"true\"\n [iconRight]=\"selectedRangeStart ? 'unsuccess' : (startDate.inputValue.length > 0 ? 'right-angle-arrow' : '')\"\n (clickIconRight)=\"selectedRangeStart ? clearSelectedDate('start') :\n (startDate.inputValue.length > 0 ? searchDate(startDate.inputValue, 'start') : null)\"/>\n\n <gravity-text-field #endDate [label]=\"i18n.end_date\" [inputContentType]=\"'date'\" (keyup)=\"onDateKeyup($event, 'end')\"\n [customState]=\"endDateError ? 'typed-error' : (endDate.inputValue.length < 1 ? 'default' : 'typing')\"\n [supportText]=\"endDateError\" [size]=\"'sm'\" [width]=\"'short'\" [placeholder]=\"'dd/mm/yyyy'\" [clickOnRightIcon]=\"true\"\n [iconRight]=\"selectedRangeEnd ? 'unsuccess' : (endDate.inputValue.length > 0 ? 'right-angle-arrow' : '')\"\n (clickIconRight)=\"selectedRangeStart ? clearSelectedDate('end') :\n (endDate.inputValue.length > 0 ? searchDate(endDate.inputValue, 'end') : null)\"/>\n </div>\n\n <section class=\"gravity-calendar-header\" [class.mobile]=\"appearance.isMobile\">\n <gravity-icon-button [type]=\"'primary'\" [size]=\"'sm'\" [icon]=\"'arrow-left'\" [supportText]=\"i18n.preview_month\"\n [state]=\"(navType === 'prev' || navType === 'both') && (appearance.state !== 'disabled') ? 'active' : 'disabled'\"\n (click)=\"currentDate = changeDate(-1, currentDate, true); changeMonth.emit(-1)\"/>\n\n <div class=\"month-year-label\">\n <gravity-dropdown-label [fontClass]=\"'hr-title sm-bold'\" [size]=\"'sm'\" [label]=\"monthsList[currentDate.getMonth()]\"\n [state]=\"appearance.state === 'disabled' ? 'inactive' : 'active'\" (onClickLabel)=\"handleOnClickDropdownLabel(true)\"> </gravity-dropdown-label>\n\n <gravity-dropdown-label [fontClass]=\"'hr-title sm-bold'\" [size]=\"'sm'\" [label]=\"currentDate.getFullYear().toString()\"\n [state]=\"appearance.state === 'disabled' ? 'inactive' : 'active'\" (onClickLabel)=\"handleOnClickDropdownLabel(false)\"> </gravity-dropdown-label>\n </div>\n\n <gravity-icon-button [type]=\"'primary'\" [size]=\"'sm'\" [icon]=\"'arrow-right'\" [supportText]=\"i18n.next_month\"\n [state]=\"(navType === 'next' || navType === 'both') && (appearance.state !== 'disabled') ? 'active' : 'disabled'\"\n (click)=\"currentDate = changeDate(1, currentDate, true); changeMonth.emit(1)\"/>\n </section>\n\n <section class=\"gravity-calendar-body\" [class.mobile]=\"appearance.isMobile\">\n <section class=\"days-name-line\">\n <div class=\"days-name\">\n <span class=\"hr-body\" [ngClass]=\"appearance.isMobile ? 'md-regular' : 'sm-regular'\"\n *ngFor=\"let day of daysList\"> {{ day }} </span>\n </div>\n\n <div class=\"separator-line\"></div>\n </section>\n\n <section class=\"days-number-selector\">\n <div class=\"days-number-table\">\n <div class=\"week-row\" *ngFor=\"let week of getMonthGrid(); trackBy: trackByWeek\">\n <span class=\"hr-body\" *ngFor=\"let day of week; trackBy: trackByDay\"\n [class.preview]=\"range ? isPreview(this, day) : null\"\n [class.disabled]=\"!day.inCurrentMonth\" [class.today]=\"day.isToday\"\n (mouseenter)=\"range ? onHoverDay(this, day) : null; hoverDay.emit(day)\"\n (mouseleave)=\"range ? onClearHover(this) : null; this.clearHover.emit()\"\n [ngClass]=\"[appearance.isMobile ? 'md-regular' : 'sm-regular',\n appearance.state === 'disabled' ? 'disabled' : getDaySelectionClass(day)]\"\n (click)=\"onSelectDay(day)\"> {{ day.day }} </span>\n </div>\n </div>\n\n <div *ngIf=\"appearance.actions\" class=\"action-section\" >\n <gravity-link [linkText]=\"i18n.clear\"\n [state]=\"!isDateSelected() ? 'disabled' : 'active'\" (click)=\"clearSelectedDate('all')\"> </gravity-link>\n\n <gravity-button [size]=\"'sm'\" [type]=\"'tertiary'\"\n [disabled]=\"!isDateSelected()\" (click)=\"isDateSelected() && applySelectedDate()\"> {{i18n.apply}} </gravity-button>\n </div>\n </section>\n </section>\n</div>\n", styles: [":root{--gravity-spacing-none: 0;--gravity-spacing-xxxs: .125rem;--gravity-spacing-xxs: .25rem;--gravity-spacing-xs: .5rem;--gravity-spacing-sm: 1rem;--gravity-spacing-md: 1.5rem;--gravity-spacing-lg: 2rem;--gravity-spacing-xl: 2.5rem;--gravity-spacing-xxl: 3rem;--gravity-spacing-xxxl: 4rem;--gravity-spacing-xxxxl: 6rem;--gravity-spacing-xxxxxl: 12rem}.gravity-padding-none{padding:0!important}.gravity-padding-top-none{padding-top:0!important}.gravity-padding-bottom-none{padding-bottom:0!important}.gravity-padding-left-none{padding-left:0!important}.gravity-padding-right-none{padding-right:0!important}.gravity-padding-block-none{padding-block:0!important}.gravity-padding-inline-none{padding-inline:0!important}.gravity-padding-xxs{padding:.25rem!important}.gravity-padding-top-xxs{padding-top:.25rem!important}.gravity-padding-bottom-xxs{padding-bottom:.25rem!important}.gravity-padding-left-xxs{padding-left:.25rem!important}.gravity-padding-right-xxs{padding-right:.25rem!important}.gravity-padding-block-xxs{padding-block:.25rem!important}.gravity-padding-inline-xxs{padding-inline:.25rem!important}.gravity-padding-xs{padding:.5rem!important}.gravity-padding-top-xs{padding-top:.5rem!important}.gravity-padding-bottom-xs{padding-bottom:.5rem!important}.gravity-padding-left-xs{padding-left:.5rem!important}.gravity-padding-right-xs{padding-right:.5rem!important}.gravity-padding-block-xs{padding-block:.5rem!important}.gravity-padding-inline-xs{padding-inline:.5rem!important}.gravity-padding-sm{padding:1rem!important}.gravity-padding-top-sm{padding-top:1rem!important}.gravity-padding-bottom-sm{padding-bottom:1rem!important}.gravity-padding-left-sm{padding-left:1rem!important}.gravity-padding-right-sm{padding-right:1rem!important}.gravity-padding-block-sm{padding-block:1rem!important}.gravity-padding-inline-sm{padding-inline:1rem!important}.gravity-padding-md{padding:1.5rem!important}.gravity-padding-top-md{padding-top:1.5rem!important}.gravity-padding-bottom-md{padding-bottom:1.5rem!important}.gravity-padding-left-md{padding-left:1.5rem!important}.gravity-padding-right-md{padding-right:1.5rem!important}.gravity-padding-block-md{padding-block:1.5rem!important}.gravity-padding-inline-md{padding-inline:1.5rem!important}.gravity-padding-lg{padding:2rem!important}.gravity-padding-top-lg{padding-top:2rem!important}.gravity-padding-bottom-lg{padding-bottom:2rem!important}.gravity-padding-left-lg{padding-left:2rem!important}.gravity-padding-right-lg{padding-right:2rem!important}.gravity-padding-block-lg{padding-block:2rem!important}.gravity-padding-inline-lg{padding-inline:2rem!important}.gravity-padding-xl{padding:2.5rem!important}.gravity-padding-top-xl{padding-top:2.5rem!important}.gravity-padding-bottom-xl{padding-bottom:2.5rem!important}.gravity-padding-left-xl{padding-left:2.5rem!important}.gravity-padding-right-xl{padding-right:2.5rem!important}.gravity-padding-block-xl{padding-block:2.5rem!important}.gravity-padding-inline-xl{padding-inline:2.5rem!important}.gravity-padding-xxl{padding:3rem!important}.gravity-padding-top-xxl{padding-top:3rem!important}.gravity-padding-bottom-xxl{padding-bottom:3rem!important}.gravity-padding-left-xxl{padding-left:3rem!important}.gravity-padding-right-xxl{padding-right:3rem!important}.gravity-padding-block-xxl{padding-block:3rem!important}.gravity-padding-inline-xxl{padding-inline:3rem!important}.gravity-padding-xxxl{padding:4rem!important}.gravity-padding-top-xxxl{padding-top:4rem!important}.gravity-padding-bottom-xxxl{padding-bottom:4rem!important}.gravity-padding-left-xxxl{padding-left:4rem!important}.gravity-padding-right-xxxl{padding-right:4rem!important}.gravity-padding-block-xxxl{padding-block:4rem!important}.gravity-padding-inline-xxxl{padding-inline:4rem!important}.gravity-padding-xxxxl{padding:6rem!important}.gravity-padding-top-xxxxl{padding-top:6rem!important}.gravity-padding-bottom-xxxxl{padding-bottom:6rem!important}.gravity-padding-left-xxxxl{padding-left:6rem!important}.gravity-padding-right-xxxxl{padding-right:6rem!important}.gravity-padding-block-xxxxl{padding-block:6rem!important}.gravity-padding-inline-xxxxl{padding-inline:6rem!important}.gravity-padding-xxxxxl{padding:12rem!important}.gravity-padding-top-xxxxxl{padding-top:12rem!important}.gravity-padding-bottom-xxxxxl{padding-bottom:12rem!important}.gravity-padding-left-xxxxxl{padding-left:12rem!important}.gravity-padding-right-xxxxxl{padding-right:12rem!important}.gravity-padding-block-xxxxxl{padding-block:12rem!important}.gravity-padding-inline-xxxxxl{padding-inline:12rem!important}.gravity-margin-none{margin:0!important}.gravity-margin-top-none{margin-top:0!important}.gravity-margin-bottom-none{margin-bottom:0!important}.gravity-margin-left-none{margin-left:0!important}.gravity-margin-right-none{margin-right:0!important}.gravity-margin-block-none{margin-block:0!important}.gravity-margin-inline-none{margin-inline:0!important}.gravity-margin-xxs{margin:.25rem!important}.gravity-margin-top-xxs{margin-top:.25rem!important}.gravity-margin-bottom-xxs{margin-bottom:.25rem!important}.gravity-margin-left-xxs{margin-left:.25rem!important}.gravity-margin-right-xxs{margin-right:.25rem!important}.gravity-margin-block-xxs{margin-block:.25rem!important}.gravity-margin-inline-xxs{margin-inline:.25rem!important}.gravity-margin-xs{margin:.5rem!important}.gravity-margin-top-xs{margin-top:.5rem!important}.gravity-margin-bottom-xs{margin-bottom:.5rem!important}.gravity-margin-left-xs{margin-left:.5rem!important}.gravity-margin-right-xs{margin-right:.5rem!important}.gravity-margin-block-xs{margin-block:.5rem!important}.gravity-margin-inline-xs{margin-inline:.5rem!important}.gravity-margin-sm{margin:1rem!important}.gravity-margin-top-sm{margin-top:1rem!important}.gravity-margin-bottom-sm{margin-bottom:1rem!important}.gravity-margin-left-sm{margin-left:1rem!important}.gravity-margin-right-sm{margin-right:1rem!important}.gravity-margin-block-sm{margin-block:1rem!important}.gravity-margin-inline-sm{margin-inline:1rem!important}.gravity-margin-md{margin:1.5rem!important}.gravity-margin-top-md{margin-top:1.5rem!important}.gravity-margin-bottom-md{margin-bottom:1.5rem!important}.gravity-margin-left-md{margin-left:1.5rem!important}.gravity-margin-right-md{margin-right:1.5rem!important}.gravity-margin-block-md{margin-block:1.5rem!important}.gravity-margin-inline-md{margin-inline:1.5rem!important}.gravity-margin-lg{margin:2rem!important}.gravity-margin-top-lg{margin-top:2rem!important}.gravity-margin-bottom-lg{margin-bottom:2rem!important}.gravity-margin-left-lg{margin-left:2rem!important}.gravity-margin-right-lg{margin-right:2rem!important}.gravity-margin-block-lg{margin-block:2rem!important}.gravity-margin-inline-lg{margin-inline:2rem!important}.gravity-margin-xl{margin:2.5rem!important}.gravity-margin-top-xl{margin-top:2.5rem!important}.gravity-margin-bottom-xl{margin-bottom:2.5rem!important}.gravity-margin-left-xl{margin-left:2.5rem!important}.gravity-margin-right-xl{margin-right:2.5rem!important}.gravity-margin-block-xl{margin-block:2.5rem!important}.gravity-margin-inline-xl{margin-inline:2.5rem!important}.gravity-margin-xxl{margin:3rem!important}.gravity-margin-top-xxl{margin-top:3rem!important}.gravity-margin-bottom-xxl{margin-bottom:3rem!important}.gravity-margin-left-xxl{margin-left:3rem!important}.gravity-margin-right-xxl{margin-right:3rem!important}.gravity-margin-block-xxl{margin-block:3rem!important}.gravity-margin-inline-xxl{margin-inline:3rem!important}.gravity-margin-xxxl{margin:4rem!important}.gravity-margin-top-xxxl{margin-top:4rem!important}.gravity-margin-bottom-xxxl{margin-bottom:4rem!important}.gravity-margin-left-xxxl{margin-left:4rem!important}.gravity-margin-right-xxxl{margin-right:4rem!important}.gravity-margin-block-xxxl{margin-block:4rem!important}.gravity-margin-inline-xxxl{margin-inline:4rem!important}.gravity-margin-xxxxl{margin:6rem!important}.gravity-margin-top-xxxxl{margin-top:6rem!important}.gravity-margin-bottom-xxxxl{margin-bottom:6rem!important}.gravity-margin-left-xxxxl{margin-left:6rem!important}.gravity-margin-right-xxxxl{margin-right:6rem!important}.gravity-margin-block-xxxxl{margin-block:6rem!important}.gravity-margin-inline-xxxxl{margin-inline:6rem!important}.gravity-margin-xxxxxl{margin:12rem!important}.gravity-margin-top-xxxxxl{margin-top:12rem!important}.gravity-margin-bottom-xxxxxl{margin-bottom:12rem!important}.gravity-margin-left-xxxxxl{margin-left:12rem!important}.gravity-margin-right-xxxxxl{margin-right:12rem!important}.gravity-margin-block-xxxxxl{margin-block:12rem!important}.gravity-margin-inline-xxxxxl{margin-inline:12rem!important}.border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.next-button,.previous-button{cursor:pointer;padding:var(--gravity-spacing-xs);border-radius:var(--gravity-spacing-xs)}.next-button:not(.disabled):hover,.previous-button:not(.disabled):hover{background:var(--bg-button-active-tertiary)}.next-button.disabled,.previous-button.disabled{cursor:default;pointer-events:none;--icon-color: var(--on-bg-disabled)}.separator-line{border-bottom:2px solid var(--divider-menu-active-primary)}.action-section{height:25px;display:flex;align-self:stretch;align-items:center;justify-content:space-between}.gravity-calendar-content{display:grid;justify-items:center;gap:var(--gravity-spacing-md)}.gravity-calendar-content .title{color:var(--label-text-empty-enabled-primary)}.gravity-calendar-content .selected-dates{display:flex;align-self:stretch;align-items:flex-start;gap:var(--gravity-spacing-xs)}.gravity-calendar-content .selected-dates ::ng-deep gravity-text-field .gravity-input-field{width:130px}.gravity-calendar-content .gravity-calendar-header{gap:0;width:268px;height:auto;display:flex;padding-top:0;align-items:center;justify-content:space-between}.gravity-calendar-content .gravity-calendar-header .month-year-label{display:flex;gap:var(--gravity-spacing-sm)}.gravity-calendar-content .gravity-calendar-header.mobile{width:100%}.gravity-calendar-content .gravity-calendar-body{width:268px}.gravity-calendar-content .gravity-calendar-body .days-name-line{display:flex;flex-direction:column;gap:var(--gravity-spacing-xs);padding-bottom:var(--gravity-spacing-xs)}.gravity-calendar-content .gravity-calendar-body .days-name-line .days-name{display:flex;align-self:stretch;justify-content:space-between}.gravity-calendar-content .gravity-calendar-body .days-name-line .days-name span{display:flex;cursor:default;align-items:center;justify-content:center;padding:var(--gravity-spacing-xs);color:var(--text-highlight-primary)}.gravity-calendar-content .gravity-calendar-body .days-name-line .separator-line{width:268px}.gravity-calendar-content .gravity-calendar-body .days-number-selector{display:flex;align-self:stretch;flex-direction:column;gap:var(--gravity-spacing-sm)}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table{display:flex;min-height:150px;flex-direction:column}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row{height:25px;display:flex;align-self:stretch}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span{gap:10px;flex:1 0 0;width:31px;height:25px;display:flex;cursor:pointer;align-items:center;justify-content:center;border-radius:var(--gravity-spacing-xs);color:var(--on-bg-button-pressed-tertiary);border:2px solid var(--bg-calender-primary)}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span:not(.sl).today{border-color:var(--bg-number-calendar-hover-primary)}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span:not(.disabled):not(.sl):hover{color:var(--on-bg-button-pressed-tertiary);background:var(--bg-button-active-tertiary);border-color:var(--bg-button-active-tertiary)}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.single,.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.start,.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.end{color:var(--on-bg-button-pressed-primary);background:var(--bg-button-pressed-primary);border-color:var(--bg-button-pressed-primary)}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.range,.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span:not(.disabled).preview{border-radius:0;background:var(--bg-button-active-tertiary);border-color:var(--bg-button-active-tertiary)}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.start,.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.nsl-start:hover{border-radius:var(--gravity-spacing-xs) 0 0 var(--gravity-spacing-xs)}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.end,.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.nsl-end:hover{border-radius:0 var(--gravity-spacing-xs) var(--gravity-spacing-xs) 0}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.in-slt:hover{border-color:var(--bg-button-pressed-primary)!important}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.all-sld{border-radius:0!important;border-color:transparent!important}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.same-sln{border-radius:var(--gravity-spacing-xs)!important}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.disabled{cursor:default;pointer-events:none;color:var(--on-bg-disabled)}.gravity-calendar-content .gravity-calendar-body.mobile{width:100%;height:auto}.gravity-calendar-content .gravity-calendar-body.mobile .days-name-line .separator-line{width:100%}.gravity-calendar-content .gravity-calendar-body.mobile .days-number-selector{gap:0}.gravity-calendar-content .gravity-calendar-body.mobile .days-number-selector .days-number-table{min-height:270px}.gravity-calendar-content .gravity-calendar-body.mobile .days-number-selector .days-number-table .week-row{height:43px}.gravity-calendar-content .gravity-calendar-body.mobile .days-number-selector .days-number-table .week-row span{width:51px;height:43px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.GravityButtonComponent, selector: "gravity-button", inputs: ["cypressTag", "disabled", "iconName", "isLoading", "showContent", "size", "iconPosition", "customState", "type"] }, { kind: "component", type: i3.GravityIconButtonComponent, selector: "gravity-icon-button", inputs: ["cypressTag", "icon", "supportText", "variant", "size", "type", "state", "badge"], outputs: ["clickOnIcon"] }, { kind: "component", type: i4.GravityTextFieldComponent, selector: "gravity-text-field", inputs: ["currentLang", "customInputValue", "customState", "cypressTag", "label", "prefix", "required", "supportText", "textFieldType", "clickOnLeftIcon", "clickOnRightIcon", "iconColor", "iconLeft", "iconRight", "autocomplete", "inputContentType", "placeholder", "validations", "size", "width"], outputs: ["clickIconLeft", "clickIconRight", "response"] }, { kind: "component", type: i5.GravityLinkComponent, selector: "gravity-link", inputs: ["linkText", "fontClass", "link", "cypressTag", "iconName", "target", "iconPosition", "iconSize", "state"] }, { kind: "component", type: i6.GravityDropdownLabelComponent, selector: "gravity-dropdown-label", inputs: ["label", "fontClass", "isOpen", "stopPropagation", "size", "state"], outputs: ["onClickLabel"] }, { kind: "component", type: i7.MonthCalendarComponent, selector: "month-calendar", inputs: ["initDate", "restart", "appearance", "integratedMode"], outputs: ["clearSelection", "response"] }, { kind: "component", type: i8.YearCalendarComponent, selector: "year-calendar", inputs: ["initDate", "restart", "appearance", "integratedMode"], outputs: ["clearSelection", "response"] }] }); }
|
|
178
214
|
}
|
|
179
215
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DayCalendarComponent, decorators: [{
|
|
180
216
|
type: Component,
|
|
181
|
-
args: [{ selector: 'day-calendar', template: "<section *ngIf=\"showMonthCalendar\">\n <month-calendar\n [integratedMode]=\"true\"\n [restart]=\"showMonthCalendar\"\n (response)=\"handleCalendarResponse($event, true)\" [initDate]=\"initMonth\"\n [appearance]=\"{language: appearance.language, isMobile: appearance.isMobile, actions: false, }\">\n </month-calendar>\n</section>\n\n<section *ngIf=\"showYearCalendar\">\n <year-calendar\n [integratedMode]=\"true\"\n [restart]=\"showYearCalendar\"\n (response)=\"handleCalendarResponse($event, false)\" [initDate]=\"initYear\"\n [appearance]=\"{language: appearance.language, isMobile: appearance.isMobile, actions: false}\">\n </year-calendar>\n</section>\n\n<ng-container *ngIf=\"!showYearCalendar && !showMonthCalendar\">\n <section class=\"gravity-calendar-header\" [class.mobile]=\"appearance.isMobile\">\n <div class=\"previous-button\" (click)=\"currentDate = changeDate(-1, currentDate, true); changeMonth.emit(-1)\">\n <gravity-icon *ngIf=\"(navType === 'prev' || navType === 'both') && appearance.state !== 'disabled'\" [style.--icon-color]=\"'var(--text-highlight-primary)'\"\n [iconName]=\"'arrow-left'\" [iconSize]=\"'sm-12'\" > </gravity-icon>\n </div>\n\n <div class=\"month-year-label\">\n <gravity-dropdown-label [fontClass]=\"'hr-title sm-bold'\" [size]=\"'sm'\" [label]=\"monthsList[currentDate.getMonth()]\"\n [state]=\"appearance.state === 'disabled' ? 'inactive' : 'active'\" (onClickLabel)=\"handleOnClickDropdownLabel(true)\"> </gravity-dropdown-label>\n\n <gravity-dropdown-label [fontClass]=\"'hr-title sm-bold'\" [size]=\"'sm'\" [label]=\"currentDate.getFullYear().toString()\"\n [state]=\"appearance.state === 'disabled' ? 'inactive' : 'active'\" (onClickLabel)=\"handleOnClickDropdownLabel(false)\"> </gravity-dropdown-label>\n </div>\n\n <div class=\"next-button\" (click)=\"currentDate = changeDate(1, currentDate, true); changeMonth.emit(1)\">\n <gravity-icon *ngIf=\"(navType === 'next' || navType === 'both') && appearance.state !== 'disabled'\" [style.--icon-color]=\"'var(--text-highlight-primary)'\"\n [iconName]=\"'arrow-right'\" [iconSize]=\"'sm-12'\" > </gravity-icon>\n </div>\n </section>\n\n <section class=\"gravity-calendar-body\" [class.mobile]=\"appearance.isMobile\">\n <section class=\"days-name-line\">\n <div class=\"days-name\">\n <span class=\"hr-body\" [ngClass]=\"appearance.isMobile ? 'md-regular' : 'sm-regular'\"\n *ngFor=\"let day of daysList\"> {{ day }} </span>\n </div>\n\n <div class=\"separator-line\"></div>\n </section>\n\n <section class=\"days-number-selector\">\n <div class=\"days-number-table\">\n <div class=\"week-row\" *ngFor=\"let week of getMonthGrid(); trackBy: trackByWeek\">\n <span class=\"hr-body\" *ngFor=\"let day of week; trackBy: trackByDay\"\n [class.preview]=\"range ? isPreview(this, day) : null\"\n [class.disabled]=\"!day.inCurrentMonth\" [class.today]=\"day.isToday\"\n (mouseenter)=\"range ? onHoverDay(this, day) : null; hoverDay.emit(day)\"\n (mouseleave)=\"range ? onClearHover(this) : null; this.clearHover.emit()\"\n [ngClass]=\"[appearance.isMobile ? 'md-regular' : 'sm-regular',\n appearance.state === 'disabled' ? 'disabled' : getDaySelectionClass(day)]\"\n (click)=\"onSelectDay(day)\"> {{ day.day }} </span>\n </div>\n </div>\n\n <div *ngIf=\"appearance.actions\" class=\"action-section\" >\n <gravity-link [linkText]=\"i18n.clear\"\n [state]=\"!isDateSelected() ? 'disabled' : 'active'\" (click)=\"clearSelectedDate()\"> </gravity-link>\n\n <gravity-button [size]=\"'sm'\" [type]=\"'tertiary'\"\n [disabled]=\"!isDateSelected()\" (click)=\"applySelectedDate()\"> {{i18n.apply}} </gravity-button>\n </div>\n </section>\n </section>\n</ng-container>\n", styles: [":root{--gravity-spacing-none: 0;--gravity-spacing-xxxs: .125rem;--gravity-spacing-xxs: .25rem;--gravity-spacing-xs: .5rem;--gravity-spacing-sm: 1rem;--gravity-spacing-md: 1.5rem;--gravity-spacing-lg: 2rem;--gravity-spacing-xl: 2.5rem;--gravity-spacing-xxl: 3rem;--gravity-spacing-xxxl: 4rem;--gravity-spacing-xxxxl: 6rem;--gravity-spacing-xxxxxl: 12rem}.gravity-padding-none{padding:0!important}.gravity-padding-top-none{padding-top:0!important}.gravity-padding-bottom-none{padding-bottom:0!important}.gravity-padding-left-none{padding-left:0!important}.gravity-padding-right-none{padding-right:0!important}.gravity-padding-block-none{padding-block:0!important}.gravity-padding-inline-none{padding-inline:0!important}.gravity-padding-xxs{padding:.25rem!important}.gravity-padding-top-xxs{padding-top:.25rem!important}.gravity-padding-bottom-xxs{padding-bottom:.25rem!important}.gravity-padding-left-xxs{padding-left:.25rem!important}.gravity-padding-right-xxs{padding-right:.25rem!important}.gravity-padding-block-xxs{padding-block:.25rem!important}.gravity-padding-inline-xxs{padding-inline:.25rem!important}.gravity-padding-xs{padding:.5rem!important}.gravity-padding-top-xs{padding-top:.5rem!important}.gravity-padding-bottom-xs{padding-bottom:.5rem!important}.gravity-padding-left-xs{padding-left:.5rem!important}.gravity-padding-right-xs{padding-right:.5rem!important}.gravity-padding-block-xs{padding-block:.5rem!important}.gravity-padding-inline-xs{padding-inline:.5rem!important}.gravity-padding-sm{padding:1rem!important}.gravity-padding-top-sm{padding-top:1rem!important}.gravity-padding-bottom-sm{padding-bottom:1rem!important}.gravity-padding-left-sm{padding-left:1rem!important}.gravity-padding-right-sm{padding-right:1rem!important}.gravity-padding-block-sm{padding-block:1rem!important}.gravity-padding-inline-sm{padding-inline:1rem!important}.gravity-padding-md{padding:1.5rem!important}.gravity-padding-top-md{padding-top:1.5rem!important}.gravity-padding-bottom-md{padding-bottom:1.5rem!important}.gravity-padding-left-md{padding-left:1.5rem!important}.gravity-padding-right-md{padding-right:1.5rem!important}.gravity-padding-block-md{padding-block:1.5rem!important}.gravity-padding-inline-md{padding-inline:1.5rem!important}.gravity-padding-lg{padding:2rem!important}.gravity-padding-top-lg{padding-top:2rem!important}.gravity-padding-bottom-lg{padding-bottom:2rem!important}.gravity-padding-left-lg{padding-left:2rem!important}.gravity-padding-right-lg{padding-right:2rem!important}.gravity-padding-block-lg{padding-block:2rem!important}.gravity-padding-inline-lg{padding-inline:2rem!important}.gravity-padding-xl{padding:2.5rem!important}.gravity-padding-top-xl{padding-top:2.5rem!important}.gravity-padding-bottom-xl{padding-bottom:2.5rem!important}.gravity-padding-left-xl{padding-left:2.5rem!important}.gravity-padding-right-xl{padding-right:2.5rem!important}.gravity-padding-block-xl{padding-block:2.5rem!important}.gravity-padding-inline-xl{padding-inline:2.5rem!important}.gravity-padding-xxl{padding:3rem!important}.gravity-padding-top-xxl{padding-top:3rem!important}.gravity-padding-bottom-xxl{padding-bottom:3rem!important}.gravity-padding-left-xxl{padding-left:3rem!important}.gravity-padding-right-xxl{padding-right:3rem!important}.gravity-padding-block-xxl{padding-block:3rem!important}.gravity-padding-inline-xxl{padding-inline:3rem!important}.gravity-padding-xxxl{padding:4rem!important}.gravity-padding-top-xxxl{padding-top:4rem!important}.gravity-padding-bottom-xxxl{padding-bottom:4rem!important}.gravity-padding-left-xxxl{padding-left:4rem!important}.gravity-padding-right-xxxl{padding-right:4rem!important}.gravity-padding-block-xxxl{padding-block:4rem!important}.gravity-padding-inline-xxxl{padding-inline:4rem!important}.gravity-padding-xxxxl{padding:6rem!important}.gravity-padding-top-xxxxl{padding-top:6rem!important}.gravity-padding-bottom-xxxxl{padding-bottom:6rem!important}.gravity-padding-left-xxxxl{padding-left:6rem!important}.gravity-padding-right-xxxxl{padding-right:6rem!important}.gravity-padding-block-xxxxl{padding-block:6rem!important}.gravity-padding-inline-xxxxl{padding-inline:6rem!important}.gravity-padding-xxxxxl{padding:12rem!important}.gravity-padding-top-xxxxxl{padding-top:12rem!important}.gravity-padding-bottom-xxxxxl{padding-bottom:12rem!important}.gravity-padding-left-xxxxxl{padding-left:12rem!important}.gravity-padding-right-xxxxxl{padding-right:12rem!important}.gravity-padding-block-xxxxxl{padding-block:12rem!important}.gravity-padding-inline-xxxxxl{padding-inline:12rem!important}.gravity-margin-none{margin:0!important}.gravity-margin-top-none{margin-top:0!important}.gravity-margin-bottom-none{margin-bottom:0!important}.gravity-margin-left-none{margin-left:0!important}.gravity-margin-right-none{margin-right:0!important}.gravity-margin-block-none{margin-block:0!important}.gravity-margin-inline-none{margin-inline:0!important}.gravity-margin-xxs{margin:.25rem!important}.gravity-margin-top-xxs{margin-top:.25rem!important}.gravity-margin-bottom-xxs{margin-bottom:.25rem!important}.gravity-margin-left-xxs{margin-left:.25rem!important}.gravity-margin-right-xxs{margin-right:.25rem!important}.gravity-margin-block-xxs{margin-block:.25rem!important}.gravity-margin-inline-xxs{margin-inline:.25rem!important}.gravity-margin-xs{margin:.5rem!important}.gravity-margin-top-xs{margin-top:.5rem!important}.gravity-margin-bottom-xs{margin-bottom:.5rem!important}.gravity-margin-left-xs{margin-left:.5rem!important}.gravity-margin-right-xs{margin-right:.5rem!important}.gravity-margin-block-xs{margin-block:.5rem!important}.gravity-margin-inline-xs{margin-inline:.5rem!important}.gravity-margin-sm{margin:1rem!important}.gravity-margin-top-sm{margin-top:1rem!important}.gravity-margin-bottom-sm{margin-bottom:1rem!important}.gravity-margin-left-sm{margin-left:1rem!important}.gravity-margin-right-sm{margin-right:1rem!important}.gravity-margin-block-sm{margin-block:1rem!important}.gravity-margin-inline-sm{margin-inline:1rem!important}.gravity-margin-md{margin:1.5rem!important}.gravity-margin-top-md{margin-top:1.5rem!important}.gravity-margin-bottom-md{margin-bottom:1.5rem!important}.gravity-margin-left-md{margin-left:1.5rem!important}.gravity-margin-right-md{margin-right:1.5rem!important}.gravity-margin-block-md{margin-block:1.5rem!important}.gravity-margin-inline-md{margin-inline:1.5rem!important}.gravity-margin-lg{margin:2rem!important}.gravity-margin-top-lg{margin-top:2rem!important}.gravity-margin-bottom-lg{margin-bottom:2rem!important}.gravity-margin-left-lg{margin-left:2rem!important}.gravity-margin-right-lg{margin-right:2rem!important}.gravity-margin-block-lg{margin-block:2rem!important}.gravity-margin-inline-lg{margin-inline:2rem!important}.gravity-margin-xl{margin:2.5rem!important}.gravity-margin-top-xl{margin-top:2.5rem!important}.gravity-margin-bottom-xl{margin-bottom:2.5rem!important}.gravity-margin-left-xl{margin-left:2.5rem!important}.gravity-margin-right-xl{margin-right:2.5rem!important}.gravity-margin-block-xl{margin-block:2.5rem!important}.gravity-margin-inline-xl{margin-inline:2.5rem!important}.gravity-margin-xxl{margin:3rem!important}.gravity-margin-top-xxl{margin-top:3rem!important}.gravity-margin-bottom-xxl{margin-bottom:3rem!important}.gravity-margin-left-xxl{margin-left:3rem!important}.gravity-margin-right-xxl{margin-right:3rem!important}.gravity-margin-block-xxl{margin-block:3rem!important}.gravity-margin-inline-xxl{margin-inline:3rem!important}.gravity-margin-xxxl{margin:4rem!important}.gravity-margin-top-xxxl{margin-top:4rem!important}.gravity-margin-bottom-xxxl{margin-bottom:4rem!important}.gravity-margin-left-xxxl{margin-left:4rem!important}.gravity-margin-right-xxxl{margin-right:4rem!important}.gravity-margin-block-xxxl{margin-block:4rem!important}.gravity-margin-inline-xxxl{margin-inline:4rem!important}.gravity-margin-xxxxl{margin:6rem!important}.gravity-margin-top-xxxxl{margin-top:6rem!important}.gravity-margin-bottom-xxxxl{margin-bottom:6rem!important}.gravity-margin-left-xxxxl{margin-left:6rem!important}.gravity-margin-right-xxxxl{margin-right:6rem!important}.gravity-margin-block-xxxxl{margin-block:6rem!important}.gravity-margin-inline-xxxxl{margin-inline:6rem!important}.gravity-margin-xxxxxl{margin:12rem!important}.gravity-margin-top-xxxxxl{margin-top:12rem!important}.gravity-margin-bottom-xxxxxl{margin-bottom:12rem!important}.gravity-margin-left-xxxxxl{margin-left:12rem!important}.gravity-margin-right-xxxxxl{margin-right:12rem!important}.gravity-margin-block-xxxxxl{margin-block:12rem!important}.gravity-margin-inline-xxxxxl{margin-inline:12rem!important}.border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.next-button,.previous-button{cursor:pointer;padding:var(--gravity-spacing-xs);border-radius:var(--gravity-spacing-xs)}.next-button:not(.disabled):hover,.previous-button:not(.disabled):hover{background:var(--bg-button-active-tertiary)}.next-button.disabled,.previous-button.disabled{cursor:default;pointer-events:none;--icon-color: var(--on-bg-disabled)}.separator-line{border-bottom:2px solid var(--divider-menu-active-primary)}.action-section{height:25px;display:flex;align-self:stretch;align-items:center;justify-content:space-between}.gravity-calendar-header{gap:0;width:268px;height:auto;display:flex;padding-top:0;align-items:center;justify-content:space-between}.gravity-calendar-header .month-year-label{display:flex;gap:var(--gravity-spacing-sm)}.gravity-calendar-header.mobile{width:100%}.gravity-calendar-body{width:268px}.gravity-calendar-body .days-name-line{display:flex;flex-direction:column;gap:var(--gravity-spacing-xs);padding-bottom:var(--gravity-spacing-xs)}.gravity-calendar-body .days-name-line .days-name{display:flex;align-self:stretch;justify-content:space-between}.gravity-calendar-body .days-name-line .days-name span{display:flex;cursor:default;align-items:center;justify-content:center;padding:var(--gravity-spacing-xs);color:var(--text-highlight-primary)}.gravity-calendar-body .days-name-line .separator-line{width:268px}.gravity-calendar-body .days-number-selector{display:flex;align-self:stretch;flex-direction:column;gap:var(--gravity-spacing-sm)}.gravity-calendar-body .days-number-selector .days-number-table{display:flex;min-height:150px;flex-direction:column}.gravity-calendar-body .days-number-selector .days-number-table .week-row{height:25px;display:flex;align-self:stretch}.gravity-calendar-body .days-number-selector .days-number-table .week-row span{gap:10px;flex:1 0 0;width:31px;height:25px;display:flex;cursor:pointer;align-items:center;justify-content:center;border-radius:var(--gravity-spacing-xs);color:var(--on-bg-button-pressed-tertiary);border:2px solid var(--bg-calender-primary)}.gravity-calendar-body .days-number-selector .days-number-table .week-row span:not(.sl).today{border-color:var(--bg-number-calendar-hover-primary)}.gravity-calendar-body .days-number-selector .days-number-table .week-row span:not(.disabled):not(.sl):hover{color:var(--on-bg-button-pressed-tertiary);background:var(--bg-button-active-tertiary);border-color:var(--bg-button-active-tertiary)}.gravity-calendar-body .days-number-selector .days-number-table .week-row span.single,.gravity-calendar-body .days-number-selector .days-number-table .week-row span.start,.gravity-calendar-body .days-number-selector .days-number-table .week-row span.end{color:var(--on-bg-button-pressed-primary);background:var(--bg-button-pressed-primary);border-color:var(--bg-button-pressed-primary)}.gravity-calendar-body .days-number-selector .days-number-table .week-row span.range,.gravity-calendar-body .days-number-selector .days-number-table .week-row span:not(.disabled).preview{border-radius:0;background:var(--bg-button-active-tertiary);border-color:var(--bg-button-active-tertiary)}.gravity-calendar-body .days-number-selector .days-number-table .week-row span.start,.gravity-calendar-body .days-number-selector .days-number-table .week-row span.nsl-start:hover{border-radius:var(--gravity-spacing-xs) 0 0 var(--gravity-spacing-xs)}.gravity-calendar-body .days-number-selector .days-number-table .week-row span.end,.gravity-calendar-body .days-number-selector .days-number-table .week-row span.nsl-end:hover{border-radius:0 var(--gravity-spacing-xs) var(--gravity-spacing-xs) 0}.gravity-calendar-body .days-number-selector .days-number-table .week-row span.nsl-end:hover{border-color:var(--bg-button-pressed-primary)!important}.gravity-calendar-body .days-number-selector .days-number-table .week-row span.disabled{cursor:default;pointer-events:none;color:var(--on-bg-disabled)}.gravity-calendar-body.mobile{width:100%;height:auto}.gravity-calendar-body.mobile .days-name-line .separator-line{width:100%}.gravity-calendar-body.mobile .days-number-selector{gap:0}.gravity-calendar-body.mobile .days-number-selector .days-number-table{min-height:270px}.gravity-calendar-body.mobile .days-number-selector .days-number-table .week-row{height:43px}.gravity-calendar-body.mobile .days-number-selector .days-number-table .week-row span{width:51px;height:43px}\n"] }]
|
|
217
|
+
args: [{ selector: 'day-calendar', template: "<section *ngIf=\"showMonthCalendar\">\n <month-calendar\n [integratedMode]=\"true\"\n [restart]=\"showMonthCalendar\"\n (response)=\"handleCalendarResponse($event, true)\" [initDate]=\"initMonth\"\n [appearance]=\"{language: appearance.language, isMobile: appearance.isMobile, actions: false, }\">\n </month-calendar>\n</section>\n\n<section *ngIf=\"showYearCalendar\">\n <year-calendar\n [integratedMode]=\"true\"\n [restart]=\"showYearCalendar\"\n (response)=\"handleCalendarResponse($event, false)\" [initDate]=\"initYear\"\n [appearance]=\"{language: appearance.language, isMobile: appearance.isMobile, actions: false}\">\n </year-calendar>\n</section>\n\n<div *ngIf=\"!showYearCalendar && !showMonthCalendar\" class=\"gravity-calendar-content\">\n <span class=\"hr-label sm-bold title\">{{range ? i18n.select_range : i18n.select_date}}</span>\n\n <div *ngIf=\"range\" class=\"selected-dates\">\n <gravity-text-field #startDate [label]=\"i18n.start_date\" [inputContentType]=\"'date'\" (keyup)=\"onDateKeyup($event, 'start')\"\n [customState]=\"startDateError ? 'typed-error' : (startDate.inputValue.length < 1 ? 'default' : 'typing')\"\n [supportText]=\"startDateError\" [size]=\"'sm'\" [width]=\"'short'\" [placeholder]=\"'dd/mm/yyyy'\" [clickOnRightIcon]=\"true\"\n [iconRight]=\"selectedRangeStart ? 'unsuccess' : (startDate.inputValue.length > 0 ? 'right-angle-arrow' : '')\"\n (clickIconRight)=\"selectedRangeStart ? clearSelectedDate('start') :\n (startDate.inputValue.length > 0 ? searchDate(startDate.inputValue, 'start') : null)\"/>\n\n <gravity-text-field #endDate [label]=\"i18n.end_date\" [inputContentType]=\"'date'\" (keyup)=\"onDateKeyup($event, 'end')\"\n [customState]=\"endDateError ? 'typed-error' : (endDate.inputValue.length < 1 ? 'default' : 'typing')\"\n [supportText]=\"endDateError\" [size]=\"'sm'\" [width]=\"'short'\" [placeholder]=\"'dd/mm/yyyy'\" [clickOnRightIcon]=\"true\"\n [iconRight]=\"selectedRangeEnd ? 'unsuccess' : (endDate.inputValue.length > 0 ? 'right-angle-arrow' : '')\"\n (clickIconRight)=\"selectedRangeStart ? clearSelectedDate('end') :\n (endDate.inputValue.length > 0 ? searchDate(endDate.inputValue, 'end') : null)\"/>\n </div>\n\n <section class=\"gravity-calendar-header\" [class.mobile]=\"appearance.isMobile\">\n <gravity-icon-button [type]=\"'primary'\" [size]=\"'sm'\" [icon]=\"'arrow-left'\" [supportText]=\"i18n.preview_month\"\n [state]=\"(navType === 'prev' || navType === 'both') && (appearance.state !== 'disabled') ? 'active' : 'disabled'\"\n (click)=\"currentDate = changeDate(-1, currentDate, true); changeMonth.emit(-1)\"/>\n\n <div class=\"month-year-label\">\n <gravity-dropdown-label [fontClass]=\"'hr-title sm-bold'\" [size]=\"'sm'\" [label]=\"monthsList[currentDate.getMonth()]\"\n [state]=\"appearance.state === 'disabled' ? 'inactive' : 'active'\" (onClickLabel)=\"handleOnClickDropdownLabel(true)\"> </gravity-dropdown-label>\n\n <gravity-dropdown-label [fontClass]=\"'hr-title sm-bold'\" [size]=\"'sm'\" [label]=\"currentDate.getFullYear().toString()\"\n [state]=\"appearance.state === 'disabled' ? 'inactive' : 'active'\" (onClickLabel)=\"handleOnClickDropdownLabel(false)\"> </gravity-dropdown-label>\n </div>\n\n <gravity-icon-button [type]=\"'primary'\" [size]=\"'sm'\" [icon]=\"'arrow-right'\" [supportText]=\"i18n.next_month\"\n [state]=\"(navType === 'next' || navType === 'both') && (appearance.state !== 'disabled') ? 'active' : 'disabled'\"\n (click)=\"currentDate = changeDate(1, currentDate, true); changeMonth.emit(1)\"/>\n </section>\n\n <section class=\"gravity-calendar-body\" [class.mobile]=\"appearance.isMobile\">\n <section class=\"days-name-line\">\n <div class=\"days-name\">\n <span class=\"hr-body\" [ngClass]=\"appearance.isMobile ? 'md-regular' : 'sm-regular'\"\n *ngFor=\"let day of daysList\"> {{ day }} </span>\n </div>\n\n <div class=\"separator-line\"></div>\n </section>\n\n <section class=\"days-number-selector\">\n <div class=\"days-number-table\">\n <div class=\"week-row\" *ngFor=\"let week of getMonthGrid(); trackBy: trackByWeek\">\n <span class=\"hr-body\" *ngFor=\"let day of week; trackBy: trackByDay\"\n [class.preview]=\"range ? isPreview(this, day) : null\"\n [class.disabled]=\"!day.inCurrentMonth\" [class.today]=\"day.isToday\"\n (mouseenter)=\"range ? onHoverDay(this, day) : null; hoverDay.emit(day)\"\n (mouseleave)=\"range ? onClearHover(this) : null; this.clearHover.emit()\"\n [ngClass]=\"[appearance.isMobile ? 'md-regular' : 'sm-regular',\n appearance.state === 'disabled' ? 'disabled' : getDaySelectionClass(day)]\"\n (click)=\"onSelectDay(day)\"> {{ day.day }} </span>\n </div>\n </div>\n\n <div *ngIf=\"appearance.actions\" class=\"action-section\" >\n <gravity-link [linkText]=\"i18n.clear\"\n [state]=\"!isDateSelected() ? 'disabled' : 'active'\" (click)=\"clearSelectedDate('all')\"> </gravity-link>\n\n <gravity-button [size]=\"'sm'\" [type]=\"'tertiary'\"\n [disabled]=\"!isDateSelected()\" (click)=\"isDateSelected() && applySelectedDate()\"> {{i18n.apply}} </gravity-button>\n </div>\n </section>\n </section>\n</div>\n", styles: [":root{--gravity-spacing-none: 0;--gravity-spacing-xxxs: .125rem;--gravity-spacing-xxs: .25rem;--gravity-spacing-xs: .5rem;--gravity-spacing-sm: 1rem;--gravity-spacing-md: 1.5rem;--gravity-spacing-lg: 2rem;--gravity-spacing-xl: 2.5rem;--gravity-spacing-xxl: 3rem;--gravity-spacing-xxxl: 4rem;--gravity-spacing-xxxxl: 6rem;--gravity-spacing-xxxxxl: 12rem}.gravity-padding-none{padding:0!important}.gravity-padding-top-none{padding-top:0!important}.gravity-padding-bottom-none{padding-bottom:0!important}.gravity-padding-left-none{padding-left:0!important}.gravity-padding-right-none{padding-right:0!important}.gravity-padding-block-none{padding-block:0!important}.gravity-padding-inline-none{padding-inline:0!important}.gravity-padding-xxs{padding:.25rem!important}.gravity-padding-top-xxs{padding-top:.25rem!important}.gravity-padding-bottom-xxs{padding-bottom:.25rem!important}.gravity-padding-left-xxs{padding-left:.25rem!important}.gravity-padding-right-xxs{padding-right:.25rem!important}.gravity-padding-block-xxs{padding-block:.25rem!important}.gravity-padding-inline-xxs{padding-inline:.25rem!important}.gravity-padding-xs{padding:.5rem!important}.gravity-padding-top-xs{padding-top:.5rem!important}.gravity-padding-bottom-xs{padding-bottom:.5rem!important}.gravity-padding-left-xs{padding-left:.5rem!important}.gravity-padding-right-xs{padding-right:.5rem!important}.gravity-padding-block-xs{padding-block:.5rem!important}.gravity-padding-inline-xs{padding-inline:.5rem!important}.gravity-padding-sm{padding:1rem!important}.gravity-padding-top-sm{padding-top:1rem!important}.gravity-padding-bottom-sm{padding-bottom:1rem!important}.gravity-padding-left-sm{padding-left:1rem!important}.gravity-padding-right-sm{padding-right:1rem!important}.gravity-padding-block-sm{padding-block:1rem!important}.gravity-padding-inline-sm{padding-inline:1rem!important}.gravity-padding-md{padding:1.5rem!important}.gravity-padding-top-md{padding-top:1.5rem!important}.gravity-padding-bottom-md{padding-bottom:1.5rem!important}.gravity-padding-left-md{padding-left:1.5rem!important}.gravity-padding-right-md{padding-right:1.5rem!important}.gravity-padding-block-md{padding-block:1.5rem!important}.gravity-padding-inline-md{padding-inline:1.5rem!important}.gravity-padding-lg{padding:2rem!important}.gravity-padding-top-lg{padding-top:2rem!important}.gravity-padding-bottom-lg{padding-bottom:2rem!important}.gravity-padding-left-lg{padding-left:2rem!important}.gravity-padding-right-lg{padding-right:2rem!important}.gravity-padding-block-lg{padding-block:2rem!important}.gravity-padding-inline-lg{padding-inline:2rem!important}.gravity-padding-xl{padding:2.5rem!important}.gravity-padding-top-xl{padding-top:2.5rem!important}.gravity-padding-bottom-xl{padding-bottom:2.5rem!important}.gravity-padding-left-xl{padding-left:2.5rem!important}.gravity-padding-right-xl{padding-right:2.5rem!important}.gravity-padding-block-xl{padding-block:2.5rem!important}.gravity-padding-inline-xl{padding-inline:2.5rem!important}.gravity-padding-xxl{padding:3rem!important}.gravity-padding-top-xxl{padding-top:3rem!important}.gravity-padding-bottom-xxl{padding-bottom:3rem!important}.gravity-padding-left-xxl{padding-left:3rem!important}.gravity-padding-right-xxl{padding-right:3rem!important}.gravity-padding-block-xxl{padding-block:3rem!important}.gravity-padding-inline-xxl{padding-inline:3rem!important}.gravity-padding-xxxl{padding:4rem!important}.gravity-padding-top-xxxl{padding-top:4rem!important}.gravity-padding-bottom-xxxl{padding-bottom:4rem!important}.gravity-padding-left-xxxl{padding-left:4rem!important}.gravity-padding-right-xxxl{padding-right:4rem!important}.gravity-padding-block-xxxl{padding-block:4rem!important}.gravity-padding-inline-xxxl{padding-inline:4rem!important}.gravity-padding-xxxxl{padding:6rem!important}.gravity-padding-top-xxxxl{padding-top:6rem!important}.gravity-padding-bottom-xxxxl{padding-bottom:6rem!important}.gravity-padding-left-xxxxl{padding-left:6rem!important}.gravity-padding-right-xxxxl{padding-right:6rem!important}.gravity-padding-block-xxxxl{padding-block:6rem!important}.gravity-padding-inline-xxxxl{padding-inline:6rem!important}.gravity-padding-xxxxxl{padding:12rem!important}.gravity-padding-top-xxxxxl{padding-top:12rem!important}.gravity-padding-bottom-xxxxxl{padding-bottom:12rem!important}.gravity-padding-left-xxxxxl{padding-left:12rem!important}.gravity-padding-right-xxxxxl{padding-right:12rem!important}.gravity-padding-block-xxxxxl{padding-block:12rem!important}.gravity-padding-inline-xxxxxl{padding-inline:12rem!important}.gravity-margin-none{margin:0!important}.gravity-margin-top-none{margin-top:0!important}.gravity-margin-bottom-none{margin-bottom:0!important}.gravity-margin-left-none{margin-left:0!important}.gravity-margin-right-none{margin-right:0!important}.gravity-margin-block-none{margin-block:0!important}.gravity-margin-inline-none{margin-inline:0!important}.gravity-margin-xxs{margin:.25rem!important}.gravity-margin-top-xxs{margin-top:.25rem!important}.gravity-margin-bottom-xxs{margin-bottom:.25rem!important}.gravity-margin-left-xxs{margin-left:.25rem!important}.gravity-margin-right-xxs{margin-right:.25rem!important}.gravity-margin-block-xxs{margin-block:.25rem!important}.gravity-margin-inline-xxs{margin-inline:.25rem!important}.gravity-margin-xs{margin:.5rem!important}.gravity-margin-top-xs{margin-top:.5rem!important}.gravity-margin-bottom-xs{margin-bottom:.5rem!important}.gravity-margin-left-xs{margin-left:.5rem!important}.gravity-margin-right-xs{margin-right:.5rem!important}.gravity-margin-block-xs{margin-block:.5rem!important}.gravity-margin-inline-xs{margin-inline:.5rem!important}.gravity-margin-sm{margin:1rem!important}.gravity-margin-top-sm{margin-top:1rem!important}.gravity-margin-bottom-sm{margin-bottom:1rem!important}.gravity-margin-left-sm{margin-left:1rem!important}.gravity-margin-right-sm{margin-right:1rem!important}.gravity-margin-block-sm{margin-block:1rem!important}.gravity-margin-inline-sm{margin-inline:1rem!important}.gravity-margin-md{margin:1.5rem!important}.gravity-margin-top-md{margin-top:1.5rem!important}.gravity-margin-bottom-md{margin-bottom:1.5rem!important}.gravity-margin-left-md{margin-left:1.5rem!important}.gravity-margin-right-md{margin-right:1.5rem!important}.gravity-margin-block-md{margin-block:1.5rem!important}.gravity-margin-inline-md{margin-inline:1.5rem!important}.gravity-margin-lg{margin:2rem!important}.gravity-margin-top-lg{margin-top:2rem!important}.gravity-margin-bottom-lg{margin-bottom:2rem!important}.gravity-margin-left-lg{margin-left:2rem!important}.gravity-margin-right-lg{margin-right:2rem!important}.gravity-margin-block-lg{margin-block:2rem!important}.gravity-margin-inline-lg{margin-inline:2rem!important}.gravity-margin-xl{margin:2.5rem!important}.gravity-margin-top-xl{margin-top:2.5rem!important}.gravity-margin-bottom-xl{margin-bottom:2.5rem!important}.gravity-margin-left-xl{margin-left:2.5rem!important}.gravity-margin-right-xl{margin-right:2.5rem!important}.gravity-margin-block-xl{margin-block:2.5rem!important}.gravity-margin-inline-xl{margin-inline:2.5rem!important}.gravity-margin-xxl{margin:3rem!important}.gravity-margin-top-xxl{margin-top:3rem!important}.gravity-margin-bottom-xxl{margin-bottom:3rem!important}.gravity-margin-left-xxl{margin-left:3rem!important}.gravity-margin-right-xxl{margin-right:3rem!important}.gravity-margin-block-xxl{margin-block:3rem!important}.gravity-margin-inline-xxl{margin-inline:3rem!important}.gravity-margin-xxxl{margin:4rem!important}.gravity-margin-top-xxxl{margin-top:4rem!important}.gravity-margin-bottom-xxxl{margin-bottom:4rem!important}.gravity-margin-left-xxxl{margin-left:4rem!important}.gravity-margin-right-xxxl{margin-right:4rem!important}.gravity-margin-block-xxxl{margin-block:4rem!important}.gravity-margin-inline-xxxl{margin-inline:4rem!important}.gravity-margin-xxxxl{margin:6rem!important}.gravity-margin-top-xxxxl{margin-top:6rem!important}.gravity-margin-bottom-xxxxl{margin-bottom:6rem!important}.gravity-margin-left-xxxxl{margin-left:6rem!important}.gravity-margin-right-xxxxl{margin-right:6rem!important}.gravity-margin-block-xxxxl{margin-block:6rem!important}.gravity-margin-inline-xxxxl{margin-inline:6rem!important}.gravity-margin-xxxxxl{margin:12rem!important}.gravity-margin-top-xxxxxl{margin-top:12rem!important}.gravity-margin-bottom-xxxxxl{margin-bottom:12rem!important}.gravity-margin-left-xxxxxl{margin-left:12rem!important}.gravity-margin-right-xxxxxl{margin-right:12rem!important}.gravity-margin-block-xxxxxl{margin-block:12rem!important}.gravity-margin-inline-xxxxxl{margin-inline:12rem!important}.border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.next-button,.previous-button{cursor:pointer;padding:var(--gravity-spacing-xs);border-radius:var(--gravity-spacing-xs)}.next-button:not(.disabled):hover,.previous-button:not(.disabled):hover{background:var(--bg-button-active-tertiary)}.next-button.disabled,.previous-button.disabled{cursor:default;pointer-events:none;--icon-color: var(--on-bg-disabled)}.separator-line{border-bottom:2px solid var(--divider-menu-active-primary)}.action-section{height:25px;display:flex;align-self:stretch;align-items:center;justify-content:space-between}.gravity-calendar-content{display:grid;justify-items:center;gap:var(--gravity-spacing-md)}.gravity-calendar-content .title{color:var(--label-text-empty-enabled-primary)}.gravity-calendar-content .selected-dates{display:flex;align-self:stretch;align-items:flex-start;gap:var(--gravity-spacing-xs)}.gravity-calendar-content .selected-dates ::ng-deep gravity-text-field .gravity-input-field{width:130px}.gravity-calendar-content .gravity-calendar-header{gap:0;width:268px;height:auto;display:flex;padding-top:0;align-items:center;justify-content:space-between}.gravity-calendar-content .gravity-calendar-header .month-year-label{display:flex;gap:var(--gravity-spacing-sm)}.gravity-calendar-content .gravity-calendar-header.mobile{width:100%}.gravity-calendar-content .gravity-calendar-body{width:268px}.gravity-calendar-content .gravity-calendar-body .days-name-line{display:flex;flex-direction:column;gap:var(--gravity-spacing-xs);padding-bottom:var(--gravity-spacing-xs)}.gravity-calendar-content .gravity-calendar-body .days-name-line .days-name{display:flex;align-self:stretch;justify-content:space-between}.gravity-calendar-content .gravity-calendar-body .days-name-line .days-name span{display:flex;cursor:default;align-items:center;justify-content:center;padding:var(--gravity-spacing-xs);color:var(--text-highlight-primary)}.gravity-calendar-content .gravity-calendar-body .days-name-line .separator-line{width:268px}.gravity-calendar-content .gravity-calendar-body .days-number-selector{display:flex;align-self:stretch;flex-direction:column;gap:var(--gravity-spacing-sm)}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table{display:flex;min-height:150px;flex-direction:column}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row{height:25px;display:flex;align-self:stretch}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span{gap:10px;flex:1 0 0;width:31px;height:25px;display:flex;cursor:pointer;align-items:center;justify-content:center;border-radius:var(--gravity-spacing-xs);color:var(--on-bg-button-pressed-tertiary);border:2px solid var(--bg-calender-primary)}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span:not(.sl).today{border-color:var(--bg-number-calendar-hover-primary)}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span:not(.disabled):not(.sl):hover{color:var(--on-bg-button-pressed-tertiary);background:var(--bg-button-active-tertiary);border-color:var(--bg-button-active-tertiary)}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.single,.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.start,.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.end{color:var(--on-bg-button-pressed-primary);background:var(--bg-button-pressed-primary);border-color:var(--bg-button-pressed-primary)}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.range,.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span:not(.disabled).preview{border-radius:0;background:var(--bg-button-active-tertiary);border-color:var(--bg-button-active-tertiary)}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.start,.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.nsl-start:hover{border-radius:var(--gravity-spacing-xs) 0 0 var(--gravity-spacing-xs)}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.end,.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.nsl-end:hover{border-radius:0 var(--gravity-spacing-xs) var(--gravity-spacing-xs) 0}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.in-slt:hover{border-color:var(--bg-button-pressed-primary)!important}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.all-sld{border-radius:0!important;border-color:transparent!important}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.same-sln{border-radius:var(--gravity-spacing-xs)!important}.gravity-calendar-content .gravity-calendar-body .days-number-selector .days-number-table .week-row span.disabled{cursor:default;pointer-events:none;color:var(--on-bg-disabled)}.gravity-calendar-content .gravity-calendar-body.mobile{width:100%;height:auto}.gravity-calendar-content .gravity-calendar-body.mobile .days-name-line .separator-line{width:100%}.gravity-calendar-content .gravity-calendar-body.mobile .days-number-selector{gap:0}.gravity-calendar-content .gravity-calendar-body.mobile .days-number-selector .days-number-table{min-height:270px}.gravity-calendar-content .gravity-calendar-body.mobile .days-number-selector .days-number-table .week-row{height:43px}.gravity-calendar-content .gravity-calendar-body.mobile .days-number-selector .days-number-table .week-row span{width:51px;height:43px}\n"] }]
|
|
182
218
|
}], propDecorators: { initYear: [{
|
|
183
219
|
type: Input
|
|
184
220
|
}], initMonth: [{
|
|
@@ -212,5 +248,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
212
248
|
}], calendarResponse: [{
|
|
213
249
|
type: Output,
|
|
214
250
|
args: ['response']
|
|
251
|
+
}], endDateField: [{
|
|
252
|
+
type: ViewChild,
|
|
253
|
+
args: ['endDate']
|
|
254
|
+
}], startDateField: [{
|
|
255
|
+
type: ViewChild,
|
|
256
|
+
args: ['startDate']
|
|
215
257
|
}] } });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LWNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1jYWxlbmRhci1uZXh0L2NvbXBvbmVudHMvZGF5LWNhbGVuZGFyL2RheS1jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktY2FsZW5kYXItbmV4dC9jb21wb25lbnRzL2RheS1jYWxlbmRhci9kYXktY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzVGLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbEgsT0FBTyxFQUFDLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSwyQkFBMkIsRUFBQyxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7QUFPeEssTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVNvQixVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsZ0JBQVcsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRS9CLFlBQU8sR0FBcUMsTUFBTSxDQUFBO1FBRWpELGVBQVUsR0FB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QUssR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQzVIO1FBRUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hFLElBQUksa0JBQWtCLEVBQUU7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7K0dBL0tRLG9CQUFvQjttR0FBcEIsb0JBQW9CLGdpQkNYakMsMnlJQXlFQTs7NEZEOURhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDSSxjQUFjOzhCQUtSLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFFVyxVQUFVO3NCQUExQixNQUFNO2dCQUNVLGNBQWM7c0JBQTlCLE1BQU07Z0JBQ1UsV0FBVztzQkFBM0IsTUFBTTtnQkFDVSxRQUFRO3NCQUF4QixNQUFNO2dCQUNVLHNCQUFzQjtzQkFBdEMsTUFBTTtnQkFDVSxZQUFZO3NCQUE1QixNQUFNO2dCQUNVLHVCQUF1QjtzQkFBdkMsTUFBTTtnQkFDb0IsZ0JBQWdCO3NCQUExQyxNQUFNO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NhbGVuZGFyQXBwZWFyYW5jZSwgQ2FsZW5kYXJDb25maWcsIENhbGVuZGFyRGF0ZX0gZnJvbSBcIi4uLy4uL3NoYXJlZC9jYWxlbmRhci5tb2RhbFwiO1xuaW1wb3J0IHt0b0RhdGUsIHRvQ2FsZW5kYXJEYXksIGdldFN0YXJ0RGF0ZSwgY2hhbmdlRGF0ZX0gZnJvbSAnLi4vLi4vc2hhcmVkL2NhbGVuZGFyLnV0aWxzJztcbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NBTEVOREFSX0kxOE4sIERBWVNfU0hPUlRfRU4sIERBWVNfU0hPUlRfRVMsIE1PTlRIU19FTiwgTU9OVEhTX0VTfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2NhbGVuZGFyLmNvbnN0YW50c1wiO1xuaW1wb3J0IHtnZXRSYW5nZVNlbGVjdGlvbkNsYXNzLCBpc1ByZXZpZXcsIG9uQXBwbHlSYWdlRGF0ZSwgb25DbGVhckhvdmVyLCBvbkhvdmVyRGF5LCBvblNlbGVjdFJhZ2VEYXlzLCBwcm9jZXNzUHJlc2VsZWN0ZWRSYW5nZURhdGV9IGZyb20gXCIuL3JhbmdlLWRheXMtY2FsZW5kYXIudXRpbHNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkYXktY2FsZW5kYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXktY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RheS1jYWxlbmRhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERheUNhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBwdWJsaWMgaW5pdFllYXI6IERhdGU7XG4gICAgQElucHV0KCkgcHVibGljIGluaXRNb250aDogRGF0ZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29uZmlnOiBDYWxlbmRhckNvbmZpZztcbiAgICBASW5wdXQoKSBwdWJsaWMgcmFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgcmVzdGFydDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjdXJyZW50RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgQElucHV0KCkgcHVibGljIGFwcGVhcmFuY2U6IENhbGVuZGFyQXBwZWFyYW5jZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgbmF2VHlwZTogJ3ByZXYnIHwgJ25leHQnIHwgJ2JvdGgnIHwgJ25vbmUnPSAnYm90aCdcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2xlYXJIb3ZlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2xlYXJTZWxlY3Rpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZU1vbnRoOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgaG92ZXJEYXk6IEV2ZW50RW1pdHRlcjxDYWxlbmRhckRhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYWxlbmRhckRhdGU+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBvcGVuSW50ZWdyYXRlZENhbGVuZGFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBzZWxlY3RlZFJhZ2U6IEV2ZW50RW1pdHRlcjxDYWxlbmRhckRhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYWxlbmRhckRhdGU+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VNb250aFllYXJSZXNwb25zZTogRXZlbnRFbWl0dGVyPERhdGUgfCBEYXRlW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgRGF0ZVtdPigpO1xuICAgIEBPdXRwdXQoJ3Jlc3BvbnNlJykgcHVibGljIGNhbGVuZGFyUmVzcG9uc2U6IEV2ZW50RW1pdHRlcjxEYXRlW10gfCBEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVtdIHwgRGF0ZT4oKTtcblxuICAgIHB1YmxpYyBzaG93WWVhckNhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIHNob3dNb250aENhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGhvdmVyZWREYXk6IENhbGVuZGFyRGF0ZSB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBzZWxlY3RlZERheTogQ2FsZW5kYXJEYXRlIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIHNlbGVjdGVkUmFuZ2VFbmQ6IENhbGVuZGFyRGF0ZSB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBzZWxlY3RlZFJhbmdlU3RhcnQ6IENhbGVuZGFyRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIGdldCBpMThuKCkgeyByZXR1cm4gQ0FMRU5EQVJfSTE4Tlt0aGlzLmFwcGVhcmFuY2UubGFuZ3VhZ2VdOyB9XG4gICAgcHVibGljIGdldCBtb250aHNMaXN0KCkgeyByZXR1cm4gdGhpcy5hcHBlYXJhbmNlLmxhbmd1YWdlID09PSAnZW4nID8gTU9OVEhTX0VOIDogTU9OVEhTX0VTOyB9XG4gICAgcHVibGljIGdldCBkYXlzTGlzdCgpIHsgcmV0dXJuIHRoaXMuYXBwZWFyYW5jZS5sYW5ndWFnZSA9PT0gJ2VuJyA/IERBWVNfU0hPUlRfRU4gOiBEQVlTX1NIT1JUX0VTOyB9XG5cbiAgICBwdWJsaWMgdHJhY2tCeVdlZWsoaW5kZXg6IG51bWJlciwgXzogYW55KTogbnVtYmVyIHsgcmV0dXJuIGluZGV4OyB9XG4gICAgcHVibGljIHRyYWNrQnlEYXkoXzogbnVtYmVyLCBkYXk6IENhbGVuZGFyRGF0ZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtkYXkubW9udGhZZWFyLnllYXJ9LSR7ZGF5Lm1vbnRoWWVhci5tb250aH0tJHtkYXkuZGF5fWA7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBzaG91bGRSZXN0YXJ0ID0gY2hhbmdlc1sncmVzdGFydCddICYmIHRoaXMucmVzdGFydDtcbiAgICAgICAgY29uc3Qgc2hvdWxkUHJvY2Vzc1ByZVNlbGVjdGVkID0gY2hhbmdlc1sncHJlU2VsZWN0ZWREYXRlJ10gJiYgdGhpcy5jb25maWcuaW5pdERhdGU7XG5cbiAgICAgICAgaWYgKHNob3VsZFJlc3RhcnQgfHwgc2hvdWxkUHJvY2Vzc1ByZVNlbGVjdGVkKSB7IHRoaXMucHJvY2Vzc0luaXREYXRlKCk7IH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NJbml0RGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmFuZ2UgJiYgQXJyYXkuaXNBcnJheSh0aGlzLmNvbmZpZy5pbml0RGF0ZSkpIHtcbiAgICAgICAgICAgIHByb2Nlc3NQcmVzZWxlY3RlZFJhbmdlRGF0ZSh0aGlzKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZy5pbml0RGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXkgPSB0b0NhbGVuZGFyRGF5KHRoaXMuY29uZmlnLmluaXREYXRlKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudERhdGUgPSBnZXRTdGFydERhdGUodGhpcy5jb25maWcuaW5pdERhdGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzRGF0ZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucmFuZ2UgPyAhIXRoaXMuc2VsZWN0ZWREYXkgOiAhIXRoaXMuc2VsZWN0ZWRSYW5nZVN0YXJ0ICYmICEhdGhpcy5zZWxlY3RlZFJhbmdlRW5kO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREYXlTZWxlY3Rpb25DbGFzcyhkYXk6IENhbGVuZGFyRGF0ZSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghZGF5LmluQ3VycmVudE1vbnRoKSByZXR1cm4gJ2Rpc2FibGVkJztcblxuICAgICAgICBjb25zdCBkYXlEYXRlID0gbmV3IERhdGUoZGF5Lm1vbnRoWWVhci55ZWFyLCBkYXkubW9udGhZZWFyLm1vbnRoLCBkYXkuZGF5KTtcblxuICAgICAgICBpZiAodGhpcy5jb25maWc/Lm1pbkRhdGUpIHsgaWYgKGRheURhdGUgPCB0aGlzLmNvbmZpZy5taW5EYXRlKSByZXR1cm4gJ2Rpc2FibGVkJzsgfVxuICAgICAgICBpZiAodGhpcy5jb25maWc/Lm1heERhdGUpIHsgaWYgKGRheURhdGUgPiB0aGlzLmNvbmZpZy5tYXhEYXRlKSByZXR1cm4gJ2Rpc2FibGVkJzsgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnJhbmdlID8gZ2V0UmFuZ2VTZWxlY3Rpb25DbGFzcyh0aGlzLCBkYXkpIDogdGhpcy5nZXRTaW5nbGVEYXlTZWxlY3Rpb25DbGFzcyhkYXkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2luZ2xlRGF5U2VsZWN0aW9uQ2xhc3MoZGF5OiBDYWxlbmRhckRhdGUpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERheSAmJiBkYXkuZGF5ID09PSB0aGlzLnNlbGVjdGVkRGF5LmRheSAmJlxuICAgICAgICAgICAgZGF5Lm1vbnRoWWVhci5tb250aCA9PT0gdGhpcy5zZWxlY3RlZERheS5tb250aFllYXIubW9udGggJiZcbiAgICAgICAgICAgIGRheS5tb250aFllYXIueWVhciA9PT0gdGhpcy5zZWxlY3RlZERheS5tb250aFllYXIueWVhcikge1xuICAgICAgICAgICAgcmV0dXJuICdzbCBzaW5nbGUnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TZWxlY3REYXkoZGF5OiBDYWxlbmRhckRhdGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFkYXkuaW5DdXJyZW50TW9udGgpIHJldHVybjtcblxuICAgICAgICBpZiAoIXRoaXMucmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXkgPSBkYXk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IHRvRGF0ZShkYXkpO1xuICAgICAgICAgICAgdGhpcy5jYWxlbmRhclJlc3BvbnNlLmVtaXQoY3VycmVudERhdGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb25TZWxlY3RSYWdlRGF5cyh0aGlzLCBkYXkpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJhZ2UuZW1pdChkYXkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFwcGx5U2VsZWN0ZWREYXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucmFuZ2UgJiYgdGhpcy5zZWxlY3RlZERheSkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRvRGF0ZSh0aGlzLnNlbGVjdGVkRGF5KVxuICAgICAgICAgICAgdGhpcy5jYWxlbmRhclJlc3BvbnNlLmVtaXQoZGF0ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5yYW5nZSAmJiB0aGlzLnNlbGVjdGVkUmFuZ2VTdGFydCAmJiB0aGlzLnNlbGVjdGVkUmFuZ2VFbmQpIHtcbiAgICAgICAgICAgIG9uQXBwbHlSYWdlRGF0ZSh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhclNlbGVjdGVkRGF0ZSgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERheSA9IG51bGw7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSYW5nZUVuZCA9IG51bGw7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSYW5nZVN0YXJ0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5jbGVhclNlbGVjdGlvbi5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUNhbGVuZGFyUmVzcG9uc2UoZGF0ZTogRGF0ZSB8IERhdGVbXSwgaXNNb250aDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoIShkYXRlIGluc3RhbmNlb2YgRGF0ZSkpIHJldHVybjtcblxuICAgICAgICBjb25zdCB5ZWFyID0gaXNNb250aCA/IHRoaXMuY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSA6IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgY29uc3QgbW9udGggPSBpc01vbnRoID8gZGF0ZS5nZXRNb250aCgpIDogdGhpcy5jdXJyZW50RGF0ZS5nZXRNb250aCgpO1xuXG4gICAgICAgIHRoaXMuY3VycmVudERhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgdGhpcy5jdXJyZW50RGF0ZS5nZXREYXRlKCkpO1xuXG4gICAgICAgIGlmIChpc01vbnRoKSB7IHRoaXMuaW5pdE1vbnRoID0gdGhpcy5jdXJyZW50RGF0ZTsgdGhpcy5zaG93TW9udGhDYWxlbmRhciA9IGZhbHNlOyB9XG4gICAgICAgIGVsc2UgeyB0aGlzLmluaXRZZWFyID0gdGhpcy5jdXJyZW50RGF0ZTsgdGhpcy5zaG93WWVhckNhbGVuZGFyID0gZmFsc2U7IH1cblxuICAgICAgICB0aGlzLmNoYW5nZU1vbnRoWWVhclJlc3BvbnNlLmVtaXQodGhpcy5jdXJyZW50RGF0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZU9uQ2xpY2tEcm9wZG93bkxhYmVsKGlzTW9udGg6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0TW9udGggPSBpc01vbnRoID8gdGhpcy5jdXJyZW50RGF0ZSA6IHRoaXMuaW5pdE1vbnRoO1xuICAgICAgICB0aGlzLmluaXRZZWFyID0gIWlzTW9udGggPyB0aGlzLmN1cnJlbnREYXRlIDogdGhpcy5pbml0WWVhcjtcblxuICAgICAgICB0aGlzLnNob3dNb250aENhbGVuZGFyID0gaXNNb250aDtcbiAgICAgICAgdGhpcy5zaG93WWVhckNhbGVuZGFyID0gIWlzTW9udGg7XG5cbiAgICAgICAgdGhpcy5vcGVuSW50ZWdyYXRlZENhbGVuZGFyLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TW9udGhHcmlkKCk6IENhbGVuZGFyRGF0ZVtdW10ge1xuICAgICAgICBsZXQgd2VlazogQ2FsZW5kYXJEYXRlW10gPSBbXTtcblxuICAgICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IGdyaWQ6IENhbGVuZGFyRGF0ZVtdW10gPSBbXTtcbiAgICAgICAgY29uc3QgYmFzZURhdGUgPSB0aGlzLmN1cnJlbnREYXRlO1xuICAgICAgICBjb25zdCBtb250aCA9IGJhc2VEYXRlLmdldE1vbnRoKCk7XG4gICAgICAgIGNvbnN0IHllYXIgPSBiYXNlRGF0ZS5nZXRGdWxsWWVhcigpO1xuXG4gICAgICAgIGNvbnN0IGZpcnN0RGF5ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xuICAgICAgICBjb25zdCBzdGFydFdlZWtkYXkgPSAoZmlyc3REYXkuZ2V0RGF5KCkgKyA2KSAlIDc7XG5cbiAgICAgICAgY29uc3QgZGF5c0luTW9udGggPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCArIDEsIDApLmdldERhdGUoKTtcbiAgICAgICAgY29uc3QgZGF5c0luUHJldk1vbnRoID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDApLmdldERhdGUoKTtcblxuICAgICAgICAvLyBmaWxsIGRheXMgZnJvbSBwcmV2aW91cyBtb250aFxuICAgICAgICBmb3IgKGxldCBpID0gc3RhcnRXZWVrZGF5IC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IGRheSA9IGRheXNJblByZXZNb250aCAtIGk7XG4gICAgICAgICAgICBjb25zdCB3ZWVrRGF5ID0gKHN0YXJ0V2Vla2RheSAtIDEgLSBpICsgNykgJSA3O1xuICAgICAgICAgICAgd2Vlay5wdXNoKHsgZGF5LCBtb250aFllYXI6IHttb250aDogbW9udGggLSAxLCB5ZWFyOiB5ZWFyfSwgaXNUb2RheTogZmFsc2UsIGluQ3VycmVudE1vbnRoOiBmYWxzZSwgd2Vla0RheSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGZpbGwgZGF5cyBmcm9tIGN1cnJlbnQgbW9udGhcbiAgICAgICAgZm9yIChsZXQgZCA9IDE7IGQgPD0gZGF5c0luTW9udGg7IGQrKykge1xuICAgICAgICAgICAgY29uc3QgaXNUb2RheSA9IGQgPT09IHRvZGF5LmdldERhdGUoKSAmJiBtb250aCA9PT0gdG9kYXkuZ2V0TW9udGgoKSAmJiB5ZWFyID09PSB0b2RheS5nZXRGdWxsWWVhcigpO1xuICAgICAgICAgICAgY29uc3Qgd2Vla0RheSA9IHdlZWsubGVuZ3RoICUgNztcbiAgICAgICAgICAgIHdlZWsucHVzaCh7IGRheTogZCwgbW9udGhZZWFyOiB7bW9udGg6IG1vbnRoLCB5ZWFyOiB5ZWFyfSwgaXNUb2RheSwgaW5DdXJyZW50TW9udGg6IHRydWUsIHdlZWtEYXkgfSk7XG5cbiAgICAgICAgICAgIGlmICh3ZWVrLmxlbmd0aCA9PT0gNykge1xuICAgICAgICAgICAgICAgIGdyaWQucHVzaCh3ZWVrKTtcbiAgICAgICAgICAgICAgICB3ZWVrID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBmaWxsIHJlbWFpbmluZyBkYXlzIGZyb20gbmV4dCBtb250aFxuICAgICAgICBsZXQgbmV4dERheSA9IDE7XG4gICAgICAgIHdoaWxlICh3ZWVrLmxlbmd0aCA8IDcpIHtcbiAgICAgICAgICAgIGNvbnN0IHdlZWtEYXkgPSB3ZWVrLmxlbmd0aDtcbiAgICAgICAgICAgIHdlZWsucHVzaCh7IGRheTogbmV4dERheSsrLCBtb250aFllYXI6IHttb250aDogbW9udGggKyAxLCB5ZWFyOiB5ZWFyfSwgaXNUb2RheTogZmFsc2UsIGluQ3VycmVudE1vbnRoOiBmYWxzZSwgd2Vla0RheSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhhc0N1cnJlbnRNb250aERheSA9IHdlZWsuc29tZShkYXkgPT4gZGF5LmluQ3VycmVudE1vbnRoKTtcbiAgICAgICAgaWYgKGhhc0N1cnJlbnRNb250aERheSkge1xuICAgICAgICAgICAgZ3JpZC5wdXNoKHdlZWspO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdyaWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoYW5nZURhdGUgPSBjaGFuZ2VEYXRlO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc1ByZXZpZXcgPSBpc1ByZXZpZXc7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9uSG92ZXJEYXkgPSBvbkhvdmVyRGF5O1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvbkNsZWFySG92ZXIgPSBvbkNsZWFySG92ZXI7XG59IiwiPHNlY3Rpb24gKm5nSWY9XCJzaG93TW9udGhDYWxlbmRhclwiPlxuICAgIDxtb250aC1jYWxlbmRhclxuICAgICAgICBbaW50ZWdyYXRlZE1vZGVdPVwidHJ1ZVwiXG4gICAgICAgIFtyZXN0YXJ0XT1cInNob3dNb250aENhbGVuZGFyXCJcbiAgICAgICAgKHJlc3BvbnNlKT1cImhhbmRsZUNhbGVuZGFyUmVzcG9uc2UoJGV2ZW50LCB0cnVlKVwiIFtpbml0RGF0ZV09XCJpbml0TW9udGhcIlxuICAgICAgICBbYXBwZWFyYW5jZV09XCJ7bGFuZ3VhZ2U6IGFwcGVhcmFuY2UubGFuZ3VhZ2UsIGlzTW9iaWxlOiBhcHBlYXJhbmNlLmlzTW9iaWxlLCBhY3Rpb25zOiBmYWxzZSwgfVwiPlxuICAgIDwvbW9udGgtY2FsZW5kYXI+XG48L3NlY3Rpb24+XG5cbjxzZWN0aW9uICpuZ0lmPVwic2hvd1llYXJDYWxlbmRhclwiPlxuICAgIDx5ZWFyLWNhbGVuZGFyXG4gICAgICAgICBbaW50ZWdyYXRlZE1vZGVdPVwidHJ1ZVwiXG4gICAgICAgICBbcmVzdGFydF09XCJzaG93WWVhckNhbGVuZGFyXCJcbiAgICAgICAgKHJlc3BvbnNlKT1cImhhbmRsZUNhbGVuZGFyUmVzcG9uc2UoJGV2ZW50LCBmYWxzZSlcIiBbaW5pdERhdGVdPVwiaW5pdFllYXJcIlxuICAgICAgICBbYXBwZWFyYW5jZV09XCJ7bGFuZ3VhZ2U6IGFwcGVhcmFuY2UubGFuZ3VhZ2UsIGlzTW9iaWxlOiBhcHBlYXJhbmNlLmlzTW9iaWxlLCBhY3Rpb25zOiBmYWxzZX1cIj5cbiAgICA8L3llYXItY2FsZW5kYXI+XG48L3NlY3Rpb24+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd1llYXJDYWxlbmRhciAmJiAhc2hvd01vbnRoQ2FsZW5kYXJcIj5cbiAgICA8c2VjdGlvbiAgY2xhc3M9XCJncmF2aXR5LWNhbGVuZGFyLWhlYWRlclwiIFtjbGFzcy5tb2JpbGVdPVwiYXBwZWFyYW5jZS5pc01vYmlsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlvdXMtYnV0dG9uXCIgKGNsaWNrKT1cImN1cnJlbnREYXRlID0gY2hhbmdlRGF0ZSgtMSwgY3VycmVudERhdGUsIHRydWUpOyBjaGFuZ2VNb250aC5lbWl0KC0xKVwiPlxuICAgICAgICAgICAgPGdyYXZpdHktaWNvbiAqbmdJZj1cIihuYXZUeXBlID09PSAncHJldicgfHwgbmF2VHlwZSA9PT0gJ2JvdGgnKSAmJiBhcHBlYXJhbmNlLnN0YXRlICE9PSAnZGlzYWJsZWQnXCIgW3N0eWxlLi0taWNvbi1jb2xvcl09XCIndmFyKC0tdGV4dC1oaWdobGlnaHQtcHJpbWFyeSknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25OYW1lXT1cIidhcnJvdy1sZWZ0J1wiIFtpY29uU2l6ZV09XCInc20tMTInXCIgPiA8L2dyYXZpdHktaWNvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vbnRoLXllYXItbGFiZWxcIj5cbiAgICAgICAgICAgIDxncmF2aXR5LWRyb3Bkb3duLWxhYmVsIFtmb250Q2xhc3NdPVwiJ2hyLXRpdGxlIHNtLWJvbGQnXCIgW3NpemVdPVwiJ3NtJ1wiIFtsYWJlbF09XCJtb250aHNMaXN0W2N1cnJlbnREYXRlLmdldE1vbnRoKCldXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJhcHBlYXJhbmNlLnN0YXRlID09PSAnZGlzYWJsZWQnID8gJ2luYWN0aXZlJyA6ICdhY3RpdmUnXCIgKG9uQ2xpY2tMYWJlbCk9XCJoYW5kbGVPbkNsaWNrRHJvcGRvd25MYWJlbCh0cnVlKVwiPiA8L2dyYXZpdHktZHJvcGRvd24tbGFiZWw+XG5cbiAgICAgICAgICAgIDxncmF2aXR5LWRyb3Bkb3duLWxhYmVsIFtmb250Q2xhc3NdPVwiJ2hyLXRpdGxlIHNtLWJvbGQnXCIgW3NpemVdPVwiJ3NtJ1wiIFtsYWJlbF09XCJjdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cImFwcGVhcmFuY2Uuc3RhdGUgPT09ICdkaXNhYmxlZCcgPyAnaW5hY3RpdmUnIDogJ2FjdGl2ZSdcIiAob25DbGlja0xhYmVsKT1cImhhbmRsZU9uQ2xpY2tEcm9wZG93bkxhYmVsKGZhbHNlKVwiPiA8L2dyYXZpdHktZHJvcGRvd24tbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJuZXh0LWJ1dHRvblwiIChjbGljayk9XCJjdXJyZW50RGF0ZSA9IGNoYW5nZURhdGUoMSwgY3VycmVudERhdGUsIHRydWUpOyBjaGFuZ2VNb250aC5lbWl0KDEpXCI+XG4gICAgICAgICAgICA8Z3Jhdml0eS1pY29uICpuZ0lmPVwiKG5hdlR5cGUgPT09ICduZXh0JyB8fCBuYXZUeXBlID09PSAnYm90aCcpICYmIGFwcGVhcmFuY2Uuc3RhdGUgIT09ICdkaXNhYmxlZCdcIiBbc3R5bGUuLS1pY29uLWNvbG9yXT1cIid2YXIoLS10ZXh0LWhpZ2hsaWdodC1wcmltYXJ5KSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwiJ2Fycm93LXJpZ2h0J1wiIFtpY29uU2l6ZV09XCInc20tMTInXCIgPiA8L2dyYXZpdHktaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJncmF2aXR5LWNhbGVuZGFyLWJvZHlcIiBbY2xhc3MubW9iaWxlXT1cImFwcGVhcmFuY2UuaXNNb2JpbGVcIj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJkYXlzLW5hbWUtbGluZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRheXMtbmFtZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaHItYm9keVwiIFtuZ0NsYXNzXT1cImFwcGVhcmFuY2UuaXNNb2JpbGUgPyAnbWQtcmVndWxhcicgOiAnc20tcmVndWxhcidcIlxuICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgZGF5c0xpc3RcIj4ge3sgZGF5IH19IDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yLWxpbmVcIj48L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiZGF5cy1udW1iZXItc2VsZWN0b3JcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXlzLW51bWJlci10YWJsZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrLXJvd1wiICpuZ0Zvcj1cImxldCB3ZWVrIG9mIGdldE1vbnRoR3JpZCgpOyB0cmFja0J5OiB0cmFja0J5V2Vla1wiPlxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaHItYm9keVwiICpuZ0Zvcj1cImxldCBkYXkgb2Ygd2VlazsgdHJhY2tCeTogdHJhY2tCeURheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MucHJldmlld109XCJyYW5nZSA/IGlzUHJldmlldyh0aGlzLCBkYXkpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWRheS5pbkN1cnJlbnRNb250aFwiIFtjbGFzcy50b2RheV09XCJkYXkuaXNUb2RheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJyYW5nZSA/IG9uSG92ZXJEYXkodGhpcywgZGF5KSA6IG51bGw7IGhvdmVyRGF5LmVtaXQoZGF5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJyYW5nZSA/IG9uQ2xlYXJIb3Zlcih0aGlzKSA6IG51bGw7IHRoaXMuY2xlYXJIb3Zlci5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2FwcGVhcmFuY2UuaXNNb2JpbGUgPyAnbWQtcmVndWxhcicgOiAnc20tcmVndWxhcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlLnN0YXRlID09PSAnZGlzYWJsZWQnID8gJ2Rpc2FibGVkJyA6IGdldERheVNlbGVjdGlvbkNsYXNzKGRheSldXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdERheShkYXkpXCI+IHt7IGRheS5kYXkgfX0gPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhcHBlYXJhbmNlLmFjdGlvbnNcIiBjbGFzcz1cImFjdGlvbi1zZWN0aW9uXCIgPlxuICAgICAgICAgICAgICAgIDxncmF2aXR5LWxpbmsgW2xpbmtUZXh0XT1cImkxOG4uY2xlYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cIiFpc0RhdGVTZWxlY3RlZCgpID8gJ2Rpc2FibGVkJyA6ICdhY3RpdmUnXCIgKGNsaWNrKT1cImNsZWFyU2VsZWN0ZWREYXRlKClcIj4gPC9ncmF2aXR5LWxpbms+XG5cbiAgICAgICAgICAgICAgICA8Z3Jhdml0eS1idXR0b24gW3NpemVdPVwiJ3NtJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzRGF0ZVNlbGVjdGVkKClcIiAoY2xpY2spPVwiYXBwbHlTZWxlY3RlZERhdGUoKVwiPiB7e2kxOG4uYXBwbHl9fSA8L2dyYXZpdHktYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICA8L3NlY3Rpb24+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LWNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1jYWxlbmRhci1uZXh0L2NvbXBvbmVudHMvZGF5LWNhbGVuZGFyL2RheS1jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktY2FsZW5kYXItbmV4dC9jb21wb25lbnRzL2RheS1jYWxlbmRhci9kYXktY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRzVGLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xILE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsMkJBQTJCLEVBQUUsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7QUFPdkwsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVNrQixVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsZ0JBQVcsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRS9CLFlBQU8sR0FBcUMsTUFB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S0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBRVcsVUFBVTtzQkFBMUIsTUFBTTtnQkFDVSxjQUFjO3NCQUE5QixNQUFNO2dCQUNVLFdBQVc7c0JBQTNCLE1BQU07Z0JBQ1UsUUFBUTtzQkFBeEIsTUFBTTtnQkFDVSxzQkFBc0I7c0JBQXRDLE1BQU07Z0JBQ1UsWUFBWTtzQkFBNUIsTUFBTTtnQkFDVSx1QkFBdUI7c0JBQXZDLE1BQU07Z0JBQ29CLGdCQUFnQjtzQkFBMUMsTUFBTTt1QkFBQyxVQUFVO2dCQUVJLFlBQVk7c0JBQWpDLFNBQVM7dUJBQUMsU0FBUztnQkFDSSxjQUFjO3NCQUFyQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3RvRGF0ZSwgdG9DYWxlbmRhckRheSwgZ2V0U3RhcnREYXRlLCBjaGFuZ2VEYXRlfSBmcm9tICcuLi8uLi9zaGFyZWQvY2FsZW5kYXIudXRpbHMnO1xuaW1wb3J0IHtDYWxlbmRhckFwcGVhcmFuY2UsIENhbGVuZGFyQ29uZmlnLCBDYWxlbmRhckRhdGV9IGZyb20gXCIuLi8uLi9zaGFyZWQvY2FsZW5kYXIubW9kYWxcIjtcbmltcG9ydCB7R3Jhdml0eVRleHRGaWVsZENvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL2dyYXZpdHktdGV4dC1maWVsZC9ncmF2aXR5LXRleHQtZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NBTEVOREFSX0kxOE4sIERBWVNfU0hPUlRfRU4sIERBWVNfU0hPUlRfRVMsIE1PTlRIU19FTiwgTU9OVEhTX0VTfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2NhbGVuZGFyLmNvbnN0YW50c1wiO1xuaW1wb3J0IHtnZXRSYW5nZVNlbGVjdGlvbkNsYXNzLCBpc1ByZXZpZXcsIG9uQXBwbHlSYWdlRGF0ZSwgb25DbGVhckhvdmVyLCBvbkhvdmVyRGF5LCBvblNlbGVjdERheXNSYW5nZSwgcHJvY2Vzc1ByZXNlbGVjdGVkUmFuZ2VEYXRlLCBzdHJpbmdUb0RhdGV9IGZyb20gXCIuL3JhbmdlLWRheXMtY2FsZW5kYXIudXRpbHNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkYXktY2FsZW5kYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXktY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RheS1jYWxlbmRhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERheUNhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcHVibGljIGluaXRZZWFyOiBEYXRlO1xuICBASW5wdXQoKSBwdWJsaWMgaW5pdE1vbnRoOiBEYXRlO1xuICBASW5wdXQoKSBwdWJsaWMgY29uZmlnOiBDYWxlbmRhckNvbmZpZztcbiAgQElucHV0KCkgcHVibGljIHJhbmdlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyByZXN0YXJ0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBjdXJyZW50RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG4gIEBJbnB1dCgpIHB1YmxpYyBhcHBlYXJhbmNlOiBDYWxlbmRhckFwcGVhcmFuY2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBuYXZUeXBlOiAncHJldicgfCAnbmV4dCcgfCAnYm90aCcgfCAnbm9uZSc9ICdib3RoJ1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2xlYXJIb3ZlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcHVibGljIGNsZWFyU2VsZWN0aW9uOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlTW9udGg6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgaG92ZXJEYXk6IEV2ZW50RW1pdHRlcjxDYWxlbmRhckRhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYWxlbmRhckRhdGU+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb3BlbkludGVncmF0ZWRDYWxlbmRhcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdGVkUmFnZTogRXZlbnRFbWl0dGVyPENhbGVuZGFyRGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENhbGVuZGFyRGF0ZT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VNb250aFllYXJSZXNwb25zZTogRXZlbnRFbWl0dGVyPERhdGUgfCBEYXRlW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgRGF0ZVtdPigpO1xuICBAT3V0cHV0KCdyZXNwb25zZScpIHB1YmxpYyBjYWxlbmRhclJlc3BvbnNlOiBFdmVudEVtaXR0ZXI8RGF0ZVtdIHwgRGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVbXSB8IERhdGU+KCk7XG5cbiAgQFZpZXdDaGlsZCgnZW5kRGF0ZScpIGVuZERhdGVGaWVsZCE6IEdyYXZpdHlUZXh0RmllbGRDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3N0YXJ0RGF0ZScpIHN0YXJ0RGF0ZUZpZWxkITogR3Jhdml0eVRleHRGaWVsZENvbXBvbmVudDtcblxuICBwdWJsaWMgZW5kRGF0ZUVycm9yOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHN0YXJ0RGF0ZUVycm9yOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHNob3dZZWFyQ2FsZW5kYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNob3dNb250aENhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBob3ZlcmVkRGF5OiBDYWxlbmRhckRhdGUgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHNlbGVjdGVkRGF5OiBDYWxlbmRhckRhdGUgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHNlbGVjdGVkUmFuZ2VFbmQ6IENhbGVuZGFyRGF0ZSB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgc2VsZWN0ZWRSYW5nZVN0YXJ0OiBDYWxlbmRhckRhdGUgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgZ2V0IGkxOG4oKSB7IHJldHVybiBDQUxFTkRBUl9JMThOW3RoaXMuYXBwZWFyYW5jZS5sYW5ndWFnZV07IH1cbiAgcHVibGljIGdldCBtb250aHNMaXN0KCkgeyByZXR1cm4gdGhpcy5hcHBlYXJhbmNlLmxhbmd1YWdlID09PSAnZW4nID8gTU9OVEhTX0VOIDogTU9OVEhTX0VTOyB9XG4gIHB1YmxpYyBnZXQgZGF5c0xpc3QoKSB7IHJldHVybiB0aGlzLmFwcGVhcmFuY2UubGFuZ3VhZ2UgPT09ICdlbicgPyBEQVlTX1NIT1JUX0VOIDogREFZU19TSE9SVF9FUzsgfVxuXG4gIHB1YmxpYyB0cmFja0J5V2VlayhpbmRleDogbnVtYmVyLCBfOiBhbnkpOiBudW1iZXIgeyByZXR1cm4gaW5kZXg7IH1cbiAgcHVibGljIHRyYWNrQnlEYXkoXzogbnVtYmVyLCBkYXk6IENhbGVuZGFyRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke2RheS5tb250aFllYXIueWVhcn0tJHtkYXkubW9udGhZZWFyLm1vbnRofS0ke2RheS5kYXl9YDtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgIGNvbnN0IHNob3VsZFJlc3RhcnQgPSBjaGFuZ2VzWydyZXN0YXJ0J10gJiYgdGhpcy5yZXN0YXJ0O1xuICAgICAgY29uc3Qgc2hvdWxkUHJvY2Vzc1ByZVNlbGVjdGVkID0gY2hhbmdlc1sncHJlU2VsZWN0ZWREYXRlJ10gJiYgdGhpcy5jb25maWcuaW5pdERhdGU7XG5cbiAgICAgIGlmIChzaG91bGRSZXN0YXJ0IHx8IHNob3VsZFByb2Nlc3NQcmVTZWxlY3RlZCkgeyB0aGlzLnByb2Nlc3NJbml0RGF0ZSgpOyB9XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NJbml0RGF0ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnJhbmdlICYmIEFycmF5LmlzQXJyYXkodGhpcy5jb25maWcuaW5pdERhdGUpKSB7XG4gICAgICAgICAgcHJvY2Vzc1ByZXNlbGVjdGVkUmFuZ2VEYXRlKHRoaXMpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZy5pbml0RGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF5ID0gdG9DYWxlbmRhckRheSh0aGlzLmNvbmZpZy5pbml0RGF0ZSk7XG4gICAgICAgICAgdGhpcy5jdXJyZW50RGF0ZSA9IGdldFN0YXJ0RGF0ZSh0aGlzLmNvbmZpZy5pbml0RGF0ZSk7XG4gICAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNEYXRlU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIXRoaXMucmFuZ2UgPyAhIXRoaXMuc2VsZWN0ZWREYXkgOiAhIXRoaXMuc2VsZWN0ZWRSYW5nZVN0YXJ0ICYmICEhdGhpcy5zZWxlY3RlZFJhbmdlRW5kO1xuICB9XG5cbiAgcHVibGljIGdldERheVNlbGVjdGlvbkNsYXNzKGRheTogQ2FsZW5kYXJEYXRlKTogc3RyaW5nIHtcbiAgICAgIGlmICghZGF5LmluQ3VycmVudE1vbnRoKSByZXR1cm4gJ2Rpc2FibGVkJztcblxuICAgICAgY29uc3QgZGF5RGF0ZSA9IG5ldyBEYXRlKGRheS5tb250aFllYXIueWVhciwgZGF5Lm1vbnRoWWVhci5tb250aCwgZGF5LmRheSk7XG5cbiAgICAgIGlmICh0aGlzLmNvbmZpZz8ubWluRGF0ZSkgeyBpZiAoZGF5RGF0ZSA8IHRoaXMuY29uZmlnLm1pbkRhdGUpIHJldHVybiAnZGlzYWJsZWQnOyB9XG4gICAgICBpZiAodGhpcy5jb25maWc/Lm1heERhdGUpIHsgaWYgKGRheURhdGUgPiB0aGlzLmNvbmZpZy5tYXhEYXRlKSByZXR1cm4gJ2Rpc2FibGVkJzsgfVxuXG4gICAgICByZXR1cm4gdGhpcy5yYW5nZSA/IGdldFJhbmdlU2VsZWN0aW9uQ2xhc3ModGhpcywgZGF5KSA6IHRoaXMuZ2V0U2luZ2xlRGF5U2VsZWN0aW9uQ2xhc3MoZGF5KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2luZ2xlRGF5U2VsZWN0aW9uQ2xhc3MoZGF5OiBDYWxlbmRhckRhdGUpOiBzdHJpbmcge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWREYXkgJiYgZGF5LmRheSA9PT0gdGhpcy5zZWxlY3RlZERheS5kYXkgJiZcbiAgICAgICAgICBkYXkubW9udGhZZWFyLm1vbnRoID09PSB0aGlzLnNlbGVjdGVkRGF5Lm1vbnRoWWVhci5tb250aCAmJlxuICAgICAgICAgIGRheS5tb250aFllYXIueWVhciA9PT0gdGhpcy5zZWxlY3RlZERheS5tb250aFllYXIueWVhcikge1xuICAgICAgICAgIHJldHVybiAnc2wgc2luZ2xlJztcbiAgICAgIH1cbiAgICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdERheShkYXk6IENhbGVuZGFyRGF0ZSk6IHZvaWQge1xuICAgICAgaWYgKCFkYXkuaW5DdXJyZW50TW9udGgpIHJldHVybjtcblxuICAgICAgaWYgKCF0aGlzLnJhbmdlKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERheSA9IGRheTtcbiAgICAgICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IHRvRGF0ZShkYXkpO1xuICAgICAgICAgIHRoaXMuY2FsZW5kYXJSZXNwb25zZS5lbWl0KGN1cnJlbnREYXRlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb25TZWxlY3REYXlzUmFuZ2UodGhpcywgZGF5KTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkUmFnZS5lbWl0KGRheSk7XG4gICAgICB9XG4gIH1cblxuICBwdWJsaWMgYXBwbHlTZWxlY3RlZERhdGUoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMucmFuZ2UgJiYgdGhpcy5zZWxlY3RlZERheSkge1xuICAgICAgICAgIGNvbnN0IGRhdGUgPSB0b0RhdGUodGhpcy5zZWxlY3RlZERheSlcbiAgICAgICAgICB0aGlzLmNhbGVuZGFyUmVzcG9uc2UuZW1pdChkYXRlKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yYW5nZSAmJiB0aGlzLnNlbGVjdGVkUmFuZ2VTdGFydCAmJiB0aGlzLnNlbGVjdGVkUmFuZ2VFbmQpIHtcbiAgICAgICAgICBvbkFwcGx5UmFnZURhdGUodGhpcyk7XG4gICAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTZWxlY3RlZERhdGUoY2xlYXJUYXJnZXQ6ICdhbGwnIHwgJ3N0YXJ0JyB8ICdlbmQnKTogdm9pZCB7XG4gICAgICBpZihjbGVhclRhcmdldCA9PT0gJ2FsbCcgfHwgY2xlYXJUYXJnZXQgPT09ICdzdGFydCcpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJhbmdlU3RhcnQgPSBudWxsO1xuICAgICAgICB0aGlzLnN0YXJ0RGF0ZUZpZWxkLmlucHV0VmFsdWUgPSAnJztcbiAgICAgIH1cblxuICAgICAgaWYgKGNsZWFyVGFyZ2V0ID09PSAnYWxsJyB8fCBjbGVhclRhcmdldCA9PT0gJ2VuZCcpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJhbmdlRW5kID0gbnVsbDtcbiAgICAgICAgdGhpcy5lbmREYXRlRmllbGQuaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNlbGVjdGVkRGF5ID0gbnVsbDtcbiAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24uZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaERhdGUoZGF0ZTogc3RyaW5nLCB0YXJnZXQ6ICdzdGFydCcgfCAnZW5kJyk6IHZvaWQge1xuICAgIGNvbnN0IHBhcnNlZCA9IHN0cmluZ1RvRGF0ZShkYXRlKTtcbiAgICBjb25zdCBpc0ludmFsaWQgPSBwYXJzZWQgPT09IG51bGw7XG5cbiAgICBpZiAodGFyZ2V0ID09PSAnc3RhcnQnKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZUVycm9yID0gaXNJbnZhbGlkID8gJ2ludmFsaWQgc3RhcnQgZGF0ZScgOiBudWxsO1xuICAgICAgaWYgKCFpc0ludmFsaWQpIHRoaXMuc2VsZWN0ZWRSYW5nZVN0YXJ0ID0gcGFyc2VkO1xuICAgIH1cblxuICAgIGlmICh0YXJnZXQgPT09ICdlbmQnKSB7XG4gICAgICB0aGlzLmVuZERhdGVFcnJvciA9IGlzSW52YWxpZCA/ICdpbnZhbGlkIGVuZCBkYXRlJyA6IG51bGw7XG4gICAgICBpZiAoIWlzSW52YWxpZCkgdGhpcy5zZWxlY3RlZFJhbmdlRW5kID0gcGFyc2VkO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVDYWxlbmRhclJlc3BvbnNlKGRhdGU6IERhdGUgfCBEYXRlW10sIGlzTW9udGg6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCEoZGF0ZSBpbnN0YW5jZW9mIERhdGUpKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeWVhciA9IGlzTW9udGggPyB0aGlzLmN1cnJlbnREYXRlLmdldEZ1bGxZZWFyKCkgOiBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gaXNNb250aCA/IGRhdGUuZ2V0TW9udGgoKSA6IHRoaXMuY3VycmVudERhdGUuZ2V0TW9udGgoKTtcblxuICAgICAgICB0aGlzLmN1cnJlbnREYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIHRoaXMuY3VycmVudERhdGUuZ2V0RGF0ZSgpKTtcblxuICAgICAgICBpZiAoaXNNb250aCkgeyB0aGlzLmluaXRNb250aCA9IHRoaXMuY3VycmVudERhdGU7IHRoaXMuc2hvd01vbnRoQ2FsZW5kYXIgPSBmYWxzZTsgfVxuICAgICAgICBlbHNlIHsgdGhpcy5pbml0WWVhciA9IHRoaXMuY3VycmVudERhdGU7IHRoaXMuc2hvd1llYXJDYWxlbmRhciA9IGZhbHNlOyB9XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VNb250aFllYXJSZXNwb25zZS5lbWl0KHRoaXMuY3VycmVudERhdGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVPbkNsaWNrRHJvcGRvd25MYWJlbChpc01vbnRoOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdE1vbnRoID0gaXNNb250aCA/IHRoaXMuY3VycmVudERhdGUgOiB0aGlzLmluaXRNb250aDtcbiAgICAgICAgdGhpcy5pbml0WWVhciA9ICFpc01vbnRoID8gdGhpcy5jdXJyZW50RGF0ZSA6IHRoaXMuaW5pdFllYXI7XG5cbiAgICAgICAgdGhpcy5zaG93TW9udGhDYWxlbmRhciA9IGlzTW9udGg7XG4gICAgICAgIHRoaXMuc2hvd1llYXJDYWxlbmRhciA9ICFpc01vbnRoO1xuXG4gICAgICAgIHRoaXMub3BlbkludGVncmF0ZWRDYWxlbmRhci5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE1vbnRoR3JpZCgpOiBDYWxlbmRhckRhdGVbXVtdIHtcbiAgICAgICAgbGV0IHdlZWs6IENhbGVuZGFyRGF0ZVtdID0gW107XG5cbiAgICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBjb25zdCBncmlkOiBDYWxlbmRhckRhdGVbXVtdID0gW107XG4gICAgICAgIGNvbnN0IGJhc2VEYXRlID0gdGhpcy5jdXJyZW50RGF0ZTtcbiAgICAgICAgY29uc3QgbW9udGggPSBiYXNlRGF0ZS5nZXRNb250aCgpO1xuICAgICAgICBjb25zdCB5ZWFyID0gYmFzZURhdGUuZ2V0RnVsbFllYXIoKTtcblxuICAgICAgICBjb25zdCBmaXJzdERheSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcbiAgICAgICAgY29uc3Qgc3RhcnRXZWVrZGF5ID0gKGZpcnN0RGF5LmdldERheSgpICsgNikgJSA3O1xuXG4gICAgICAgIGNvbnN0IGRheXNJbk1vbnRoID0gbmV3IERhdGUoeWVhciwgbW9udGggKyAxLCAwKS5nZXREYXRlKCk7XG4gICAgICAgIGNvbnN0IGRheXNJblByZXZNb250aCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAwKS5nZXREYXRlKCk7XG5cbiAgICAgICAgLy8gZmlsbCBkYXlzIGZyb20gcHJldmlvdXMgbW9udGhcbiAgICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0V2Vla2RheSAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBkYXkgPSBkYXlzSW5QcmV2TW9udGggLSBpO1xuICAgICAgICAgICAgY29uc3Qgd2Vla0RheSA9IChzdGFydFdlZWtkYXkgLSAxIC0gaSArIDcpICUgNztcbiAgICAgICAgICAgIHdlZWsucHVzaCh7IGRheSwgbW9udGhZZWFyOiB7bW9udGg6IG1vbnRoIC0gMSwgeWVhcjogeWVhcn0sIGlzVG9kYXk6IGZhbHNlLCBpbkN1cnJlbnRNb250aDogZmFsc2UsIHdlZWtEYXkgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBmaWxsIGRheXMgZnJvbSBjdXJyZW50IG1vbnRoXG4gICAgICAgIGZvciAobGV0IGQgPSAxOyBkIDw9IGRheXNJbk1vbnRoOyBkKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGlzVG9kYXkgPSBkID09PSB0b2RheS5nZXREYXRlKCkgJiYgbW9udGggPT09IHRvZGF5LmdldE1vbnRoKCkgJiYgeWVhciA9PT0gdG9kYXkuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgICAgIGNvbnN0IHdlZWtEYXkgPSB3ZWVrLmxlbmd0aCAlIDc7XG4gICAgICAgICAgICB3ZWVrLnB1c2goeyBkYXk6IGQsIG1vbnRoWWVhcjoge21vbnRoOiBtb250aCwgeWVhcjogeWVhcn0sIGlzVG9kYXksIGluQ3VycmVudE1vbnRoOiB0cnVlLCB3ZWVrRGF5IH0pO1xuXG4gICAgICAgICAgICBpZiAod2Vlay5sZW5ndGggPT09IDcpIHtcbiAgICAgICAgICAgICAgICBncmlkLnB1c2god2Vlayk7XG4gICAgICAgICAgICAgICAgd2VlayA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZmlsbCByZW1haW5pbmcgZGF5cyBmcm9tIG5leHQgbW9udGhcbiAgICAgICAgbGV0IG5leHREYXkgPSAxO1xuICAgICAgICB3aGlsZSAod2Vlay5sZW5ndGggPCA3KSB7XG4gICAgICAgICAgICBjb25zdCB3ZWVrRGF5ID0gd2Vlay5sZW5ndGg7XG4gICAgICAgICAgICB3ZWVrLnB1c2goeyBkYXk6IG5leHREYXkrKywgbW9udGhZZWFyOiB7bW9udGg6IG1vbnRoICsgMSwgeWVhcjogeWVhcn0sIGlzVG9kYXk6IGZhbHNlLCBpbkN1cnJlbnRNb250aDogZmFsc2UsIHdlZWtEYXkgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBoYXNDdXJyZW50TW9udGhEYXkgPSB3ZWVrLnNvbWUoZGF5ID0+IGRheS5pbkN1cnJlbnRNb250aCk7XG4gICAgICAgIGlmIChoYXNDdXJyZW50TW9udGhEYXkpIHtcbiAgICAgICAgICAgIGdyaWQucHVzaCh3ZWVrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBncmlkO1xuICAgIH1cblxuXHRwdWJsaWMgb25EYXRlS2V5dXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHRhcmdldDogJ3N0YXJ0JyB8ICdlbmQnKTogdm9pZCB7XG5cdFx0Y29uc3QgZXJyb3JQcm9wID0gdGFyZ2V0ID09PSAnc3RhcnQnID8gJ3N0YXJ0RGF0ZUVycm9yJyA6ICdlbmREYXRlRXJyb3InO1xuXHRcdGNvbnN0IGRhdGVJbnB1dCA9IHRhcmdldCA9PT0gJ3N0YXJ0JyA/IHRoaXMuc3RhcnREYXRlRmllbGQgOiB0aGlzLmVuZERhdGVGaWVsZDtcblx0XHRjb25zdCBzZWxlY3RlZFJhbmdlUHJvcCA9IHRhcmdldCA9PT0gJ3N0YXJ0JyA/ICdzZWxlY3RlZFJhbmdlU3RhcnQnIDogJ3NlbGVjdGVkUmFuZ2VFbmQnO1xuXG5cdFx0Y29uc3QgdmFsdWUgPSBkYXRlSW5wdXQ/LmlucHV0VmFsdWUgPz8gJyc7XG5cblx0XHRpZiAodmFsdWUubGVuZ3RoIDw9IDEwKSB7XG5cdFx0XHR0aGlzW2Vycm9yUHJvcF0gPSAnJztcblx0XHRcdHRoaXNbc2VsZWN0ZWRSYW5nZVByb3BdID0gbnVsbDtcblx0XHR9XG5cblx0XHRpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG5cdFx0XHR0aGlzLnNlYXJjaERhdGUodmFsdWUsIHRhcmdldCk7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IGNoYW5nZURhdGUgPSBjaGFuZ2VEYXRlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNQcmV2aWV3ID0gaXNQcmV2aWV3O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb25Ib3ZlckRheSA9IG9uSG92ZXJEYXk7XG4gIHByb3RlY3RlZCByZWFkb25seSBvbkNsZWFySG92ZXIgPSBvbkNsZWFySG92ZXI7XG59IiwiPHNlY3Rpb24gKm5nSWY9XCJzaG93TW9udGhDYWxlbmRhclwiPlxuICAgIDxtb250aC1jYWxlbmRhclxuICAgICAgICBbaW50ZWdyYXRlZE1vZGVdPVwidHJ1ZVwiXG4gICAgICAgIFtyZXN0YXJ0XT1cInNob3dNb250aENhbGVuZGFyXCJcbiAgICAgICAgKHJlc3BvbnNlKT1cImhhbmRsZUNhbGVuZGFyUmVzcG9uc2UoJGV2ZW50LCB0cnVlKVwiIFtpbml0RGF0ZV09XCJpbml0TW9udGhcIlxuICAgICAgICBbYXBwZWFyYW5jZV09XCJ7bGFuZ3VhZ2U6IGFwcGVhcmFuY2UubGFuZ3VhZ2UsIGlzTW9iaWxlOiBhcHBlYXJhbmNlLmlzTW9iaWxlLCBhY3Rpb25zOiBmYWxzZSwgfVwiPlxuICAgIDwvbW9udGgtY2FsZW5kYXI+XG48L3NlY3Rpb24+XG5cbjxzZWN0aW9uICpuZ0lmPVwic2hvd1llYXJDYWxlbmRhclwiPlxuICAgIDx5ZWFyLWNhbGVuZGFyXG4gICAgICAgICBbaW50ZWdyYXRlZE1vZGVdPVwidHJ1ZVwiXG4gICAgICAgICBbcmVzdGFydF09XCJzaG93WWVhckNhbGVuZGFyXCJcbiAgICAgICAgKHJlc3BvbnNlKT1cImhhbmRsZUNhbGVuZGFyUmVzcG9uc2UoJGV2ZW50LCBmYWxzZSlcIiBbaW5pdERhdGVdPVwiaW5pdFllYXJcIlxuICAgICAgICBbYXBwZWFyYW5jZV09XCJ7bGFuZ3VhZ2U6IGFwcGVhcmFuY2UubGFuZ3VhZ2UsIGlzTW9iaWxlOiBhcHBlYXJhbmNlLmlzTW9iaWxlLCBhY3Rpb25zOiBmYWxzZX1cIj5cbiAgICA8L3llYXItY2FsZW5kYXI+XG48L3NlY3Rpb24+XG5cbjxkaXYgKm5nSWY9XCIhc2hvd1llYXJDYWxlbmRhciAmJiAhc2hvd01vbnRoQ2FsZW5kYXJcIiBjbGFzcz1cImdyYXZpdHktY2FsZW5kYXItY29udGVudFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiaHItbGFiZWwgc20tYm9sZCB0aXRsZVwiPnt7cmFuZ2UgPyBpMThuLnNlbGVjdF9yYW5nZSA6IGkxOG4uc2VsZWN0X2RhdGV9fTwvc3Bhbj5cblxuICAgIDxkaXYgKm5nSWY9XCJyYW5nZVwiIGNsYXNzPVwic2VsZWN0ZWQtZGF0ZXNcIj5cbiAgICAgICAgPGdyYXZpdHktdGV4dC1maWVsZCAjc3RhcnREYXRlIFtsYWJlbF09XCJpMThuLnN0YXJ0X2RhdGVcIiBbaW5wdXRDb250ZW50VHlwZV09XCInZGF0ZSdcIiAoa2V5dXApPVwib25EYXRlS2V5dXAoJGV2ZW50LCAnc3RhcnQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbVN0YXRlXT1cInN0YXJ0RGF0ZUVycm9yID8gJ3R5cGVkLWVycm9yJyA6IChzdGFydERhdGUuaW5wdXRWYWx1ZS5sZW5ndGggPCAxID8gJ2RlZmF1bHQnIDogJ3R5cGluZycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3VwcG9ydFRleHRdPVwic3RhcnREYXRlRXJyb3JcIiBbc2l6ZV09XCInc20nXCIgW3dpZHRoXT1cIidzaG9ydCdcIiBbcGxhY2Vob2xkZXJdPVwiJ2RkL21tL3l5eXknXCIgW2NsaWNrT25SaWdodEljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25SaWdodF09XCJzZWxlY3RlZFJhbmdlU3RhcnQgPyAndW5zdWNjZXNzJyA6IChzdGFydERhdGUuaW5wdXRWYWx1ZS5sZW5ndGggPiAwID8gJ3JpZ2h0LWFuZ2xlLWFycm93JyA6ICcnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrSWNvblJpZ2h0KT1cInNlbGVjdGVkUmFuZ2VTdGFydCA/IGNsZWFyU2VsZWN0ZWREYXRlKCdzdGFydCcpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdGFydERhdGUuaW5wdXRWYWx1ZS5sZW5ndGggPiAwID8gc2VhcmNoRGF0ZShzdGFydERhdGUuaW5wdXRWYWx1ZSwgJ3N0YXJ0JykgOiBudWxsKVwiLz5cblxuICAgICAgPGdyYXZpdHktdGV4dC1maWVsZCAjZW5kRGF0ZSBbbGFiZWxdPVwiaTE4bi5lbmRfZGF0ZVwiIFtpbnB1dENvbnRlbnRUeXBlXT1cIidkYXRlJ1wiIChrZXl1cCk9XCJvbkRhdGVLZXl1cCgkZXZlbnQsICdlbmQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21TdGF0ZV09XCJlbmREYXRlRXJyb3IgPyAndHlwZWQtZXJyb3InIDogKGVuZERhdGUuaW5wdXRWYWx1ZS5sZW5ndGggPCAxID8gJ2RlZmF1bHQnIDogJ3R5cGluZycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3N1cHBvcnRUZXh0XT1cImVuZERhdGVFcnJvclwiIFtzaXplXT1cIidzbSdcIiBbd2lkdGhdPVwiJ3Nob3J0J1wiIFtwbGFjZWhvbGRlcl09XCInZGQvbW0veXl5eSdcIiBbY2xpY2tPblJpZ2h0SWNvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25SaWdodF09XCJzZWxlY3RlZFJhbmdlRW5kID8gJ3Vuc3VjY2VzcycgOiAoZW5kRGF0ZS5pbnB1dFZhbHVlLmxlbmd0aCA+IDAgPyAncmlnaHQtYW5nbGUtYXJyb3cnIDogJycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrSWNvblJpZ2h0KT1cInNlbGVjdGVkUmFuZ2VTdGFydCA/IGNsZWFyU2VsZWN0ZWREYXRlKCdlbmQnKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZERhdGUuaW5wdXRWYWx1ZS5sZW5ndGggPiAwID8gc2VhcmNoRGF0ZShlbmREYXRlLmlucHV0VmFsdWUsICdlbmQnKSA6IG51bGwpXCIvPlxuICAgIDwvZGl2PlxuXG4gICAgPHNlY3Rpb24gIGNsYXNzPVwiZ3Jhdml0eS1jYWxlbmRhci1oZWFkZXJcIiBbY2xhc3MubW9iaWxlXT1cImFwcGVhcmFuY2UuaXNNb2JpbGVcIj5cbiAgICAgICAgPGdyYXZpdHktaWNvbi1idXR0b24gW3R5cGVdPVwiJ3ByaW1hcnknXCIgW3NpemVdPVwiJ3NtJ1wiIFtpY29uXT1cIidhcnJvdy1sZWZ0J1wiIFtzdXBwb3J0VGV4dF09XCJpMThuLnByZXZpZXdfbW9udGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwiKG5hdlR5cGUgPT09ICdwcmV2JyB8fCBuYXZUeXBlID09PSAnYm90aCcpICYmIChhcHBlYXJhbmNlLnN0YXRlICE9PSAnZGlzYWJsZWQnKSA/ICdhY3RpdmUnIDogJ2Rpc2FibGVkJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjdXJyZW50RGF0ZSA9IGNoYW5nZURhdGUoLTEsIGN1cnJlbnREYXRlLCB0cnVlKTsgY2hhbmdlTW9udGguZW1pdCgtMSlcIi8+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vbnRoLXllYXItbGFiZWxcIj5cbiAgICAgICAgICAgIDxncmF2aXR5LWRyb3Bkb3duLWxhYmVsIFtmb250Q2xhc3NdPVwiJ2hyLXRpdGxlIHNtLWJvbGQnXCIgW3NpemVdPVwiJ3NtJ1wiIFtsYWJlbF09XCJtb250aHNMaXN0W2N1cnJlbnREYXRlLmdldE1vbnRoKCldXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJhcHBlYXJhbmNlLnN0YXRlID09PSAnZGlzYWJsZWQnID8gJ2luYWN0aXZlJyA6ICdhY3RpdmUnXCIgKG9uQ2xpY2tMYWJlbCk9XCJoYW5kbGVPbkNsaWNrRHJvcGRvd25MYWJlbCh0cnVlKVwiPiA8L2dyYXZpdHktZHJvcGRvd24tbGFiZWw+XG5cbiAgICAgICAgICAgIDxncmF2aXR5LWRyb3Bkb3duLWxhYmVsIFtmb250Q2xhc3NdPVwiJ2hyLXRpdGxlIHNtLWJvbGQnXCIgW3NpemVdPVwiJ3NtJ1wiIFtsYWJlbF09XCJjdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cImFwcGVhcmFuY2Uuc3RhdGUgPT09ICdkaXNhYmxlZCcgPyAnaW5hY3RpdmUnIDogJ2FjdGl2ZSdcIiAob25DbGlja0xhYmVsKT1cImhhbmRsZU9uQ2xpY2tEcm9wZG93bkxhYmVsKGZhbHNlKVwiPiA8L2dyYXZpdHktZHJvcGRvd24tbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxncmF2aXR5LWljb24tYnV0dG9uIFt0eXBlXT1cIidwcmltYXJ5J1wiIFtzaXplXT1cIidzbSdcIiBbaWNvbl09XCInYXJyb3ctcmlnaHQnXCIgW3N1cHBvcnRUZXh0XT1cImkxOG4ubmV4dF9tb250aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCIobmF2VHlwZSA9PT0gJ25leHQnIHx8IG5hdlR5cGUgPT09ICdib3RoJykgJiYgKGFwcGVhcmFuY2Uuc3RhdGUgIT09ICdkaXNhYmxlZCcpID8gJ2FjdGl2ZScgOiAnZGlzYWJsZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImN1cnJlbnREYXRlID0gY2hhbmdlRGF0ZSgxLCBjdXJyZW50RGF0ZSwgdHJ1ZSk7IGNoYW5nZU1vbnRoLmVtaXQoMSlcIi8+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJncmF2aXR5LWNhbGVuZGFyLWJvZHlcIiBbY2xhc3MubW9iaWxlXT1cImFwcGVhcmFuY2UuaXNNb2JpbGVcIj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJkYXlzLW5hbWUtbGluZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRheXMtbmFtZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaHItYm9keVwiIFtuZ0NsYXNzXT1cImFwcGVhcmFuY2UuaXNNb2JpbGUgPyAnbWQtcmVndWxhcicgOiAnc20tcmVndWxhcidcIlxuICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgZGF5c0xpc3RcIj4ge3sgZGF5IH19IDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yLWxpbmVcIj48L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiZGF5cy1udW1iZXItc2VsZWN0b3JcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXlzLW51bWJlci10YWJsZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrLXJvd1wiICpuZ0Zvcj1cImxldCB3ZWVrIG9mIGdldE1vbnRoR3JpZCgpOyB0cmFja0J5OiB0cmFja0J5V2Vla1wiPlxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaHItYm9keVwiICpuZ0Zvcj1cImxldCBkYXkgb2Ygd2VlazsgdHJhY2tCeTogdHJhY2tCeURheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MucHJldmlld109XCJyYW5nZSA/IGlzUHJldmlldyh0aGlzLCBkYXkpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWRheS5pbkN1cnJlbnRNb250aFwiIFtjbGFzcy50b2RheV09XCJkYXkuaXNUb2RheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJyYW5nZSA/IG9uSG92ZXJEYXkodGhpcywgZGF5KSA6IG51bGw7IGhvdmVyRGF5LmVtaXQoZGF5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJyYW5nZSA/IG9uQ2xlYXJIb3Zlcih0aGlzKSA6IG51bGw7IHRoaXMuY2xlYXJIb3Zlci5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2FwcGVhcmFuY2UuaXNNb2JpbGUgPyAnbWQtcmVndWxhcicgOiAnc20tcmVndWxhcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlLnN0YXRlID09PSAnZGlzYWJsZWQnID8gJ2Rpc2FibGVkJyA6IGdldERheVNlbGVjdGlvbkNsYXNzKGRheSldXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdERheShkYXkpXCI+IHt7IGRheS5kYXkgfX0gPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhcHBlYXJhbmNlLmFjdGlvbnNcIiBjbGFzcz1cImFjdGlvbi1zZWN0aW9uXCIgPlxuICAgICAgICAgICAgICAgIDxncmF2aXR5LWxpbmsgW2xpbmtUZXh0XT1cImkxOG4uY2xlYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cIiFpc0RhdGVTZWxlY3RlZCgpID8gJ2Rpc2FibGVkJyA6ICdhY3RpdmUnXCIgKGNsaWNrKT1cImNsZWFyU2VsZWN0ZWREYXRlKCdhbGwnKVwiPiA8L2dyYXZpdHktbGluaz5cblxuICAgICAgICAgICAgICAgIDxncmF2aXR5LWJ1dHRvbiBbc2l6ZV09XCInc20nXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNEYXRlU2VsZWN0ZWQoKVwiIChjbGljayk9XCJpc0RhdGVTZWxlY3RlZCgpICYmIGFwcGx5U2VsZWN0ZWREYXRlKClcIj4ge3tpMThuLmFwcGx5fX0gPC9ncmF2aXR5LWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
|