@lucca-front/ng 16.2.2 → 16.2.4

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.
@@ -300,7 +300,7 @@ class LuCalendarInputComponent extends ALuInput {
300
300
  multi: true,
301
301
  },
302
302
  LuCalendarItemFactory,
303
- ], usesInheritance: true, ngImport: i0, template: "<section class=\"calendar\">\r\n\t<header class=\"calendar-header\">\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"previous()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowWest\"></span>\r\n\t\t\t<span class=\"u-mask\">Previous</span>\r\n\t\t</button>\r\n\t\t<button type=\"button\" class=\"calendar-header-date\" (click)=\"increaseGranularity()\">{{ header.label }}</button>\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"next()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowEast\"></span>\r\n\t\t\t<span class=\"u-mask\">Next</span>\r\n\t\t</button>\r\n\t</header>\r\n\t<section class=\"calendar-labels\" [ngClass]=\"mod\">\r\n\t\t<div class=\"calendar-labels-item\" *ngFor=\"let label of labels\">{{ label }}</div>\r\n\t</section>\r\n\t<section class=\"calendar-grid\" [ngClass]=\"mod\">\r\n\t\t<button\r\n\t\t\ttype=\"button\"\r\n\t\t\t*ngFor=\"let item of items; trackBy: trackBy\"\r\n\t\t\tclass=\"calendar-grid-item\"\r\n\t\t\t[ngClass]=\"item.mods\"\r\n\t\t\t[disabled]=\"item.isDisabled\"\r\n\t\t\t(click)=\"select(item)\"\r\n\t\t>\r\n\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\r\n\t\t</button>\r\n\t</section>\r\n</section>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.calendar{background-color:var(--colors-white-color);width:var(--components-calendar-width)}:host-context(.mod-block) .calendar{width:auto;max-width:var(--components-calendar-width)}.calendar-header{display:flex;align-items:center;justify-content:space-between}.calendar-header-date{font-weight:600;color:var(--palettes-grey-900);font-size:var(--sizes-L-fontSize);line-height:var(--sizes-L-lineHeight);padding:0;background:transparent;border:none;cursor:pointer}.calendar-header-date:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:4px}.calendar-labels{display:none}.calendar-labels.mod-dailyView{display:flex;align-items:center;flex-wrap:wrap;text-align:center;height:var(--components-calendar-day-size);font-size:var(--sizes-S-fontSize);color:var(--palettes-primary-700)}.calendar-labels.mod-dailyView .calendar-labels-item{width:var(--components-calendar-day-size)}.calendar-grid{display:flex;text-align:center;align-self:stretch;flex-wrap:wrap;width:var(--components-calendar-width)}.calendar-grid.mod-dailyView .calendar-grid-item{width:var(--components-calendar-day-size)}.calendar-grid.mod-monthlyView .calendar-grid-item-content,.calendar-grid.mod-yearlyView .calendar-grid-item-content{width:5.83rem}.calendar-grid-item{height:var(--components-calendar-day-size);border:none;cursor:pointer;background:transparent;position:relative;padding:0;outline:none;color:var(--palettes-grey-800)}.calendar-grid-item.is-previousMonth,.calendar-grid-item.is-nextMonth,.calendar-grid-item.is-disabled{color:var(--palettes-grey-500)}.calendar-grid-item.is-today{color:var(--palettes-primary-700);font-weight:600}.calendar-grid-item.is-today:after{content:\"\";position:absolute;bottom:var(--spacings-XXS);left:var(--spacings-XS);right:var(--spacings-XS);height:2px;background:var(--palettes-primary-700);z-index:1}.calendar-grid-item:hover .calendar-grid-item-content{background:var(--palettes-grey-50)}.calendar-grid-item:active .calendar-grid-item-content{background:var(--palettes-grey-100)}.calendar-grid-item:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:var(--commons-borderRadius-L);z-index:1}.calendar-grid-item.is-active .calendar-grid-item-content{background:var(--palettes-primary-700);color:var(--palettes-primary-text)}.calendar-grid-item.is-active.is-today:after{background:white!important;transition:background-color var(--commons-animations-durations-fast)}.calendar-grid-item.is-disabled:hover .calendar-grid-item-content{pointer-events:none;background-color:#fff}.calendar-grid-item-content{position:relative;height:var(--components-calendar-day-size);width:var(--components-calendar-day-size);line-height:var(--components-calendar-day-size);border-radius:var(--commons-borderRadius-L);transition-duration:var(--commons-animations-durations-fast);transition-property:background-color,color}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
303
+ ], usesInheritance: true, ngImport: i0, template: "<section class=\"calendar\">\r\n\t<header class=\"calendar-header\">\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"previous()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowWest\"></span>\r\n\t\t\t<span class=\"u-mask\">Previous</span>\r\n\t\t</button>\r\n\t\t<button type=\"button\" class=\"calendar-header-date\" (click)=\"increaseGranularity()\">{{ header.label }}</button>\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"next()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowEast\"></span>\r\n\t\t\t<span class=\"u-mask\">Next</span>\r\n\t\t</button>\r\n\t</header>\r\n\t<section class=\"calendar-labels\" [ngClass]=\"mod\">\r\n\t\t<div class=\"calendar-labels-item\" *ngFor=\"let label of labels\">{{ label }}</div>\r\n\t</section>\r\n\t<section class=\"calendar-grid\" [ngClass]=\"mod\">\r\n\t\t<button\r\n\t\t\ttype=\"button\"\r\n\t\t\t*ngFor=\"let item of items; trackBy: trackBy\"\r\n\t\t\tclass=\"calendar-grid-item\"\r\n\t\t\t[ngClass]=\"item.mods\"\r\n\t\t\t[disabled]=\"item.isDisabled\"\r\n\t\t\t(click)=\"select(item)\"\r\n\t\t>\r\n\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\r\n\t\t</button>\r\n\t</section>\r\n</section>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.calendar{background-color:var(--colors-white-color);width:var(--components-calendar-width)}:host-context(.mod-block) .calendar{width:auto;max-width:var(--components-calendar-width)}.calendar-header{display:flex;align-items:center;justify-content:space-between}.calendar-header-date{font-weight:600;color:var(--palettes-grey-900);font-size:var(--sizes-L-fontSize);line-height:var(--sizes-L-lineHeight);padding:0;background:transparent;border:none;cursor:pointer}.calendar-header-date:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:4px}.calendar-labels{display:none}.calendar-labels.mod-dailyView{display:flex;align-items:center;flex-wrap:wrap;text-align:center;height:var(--components-calendar-day-size);font-size:var(--sizes-S-fontSize);color:var(--palettes-primary-700)}.calendar-labels.mod-dailyView .calendar-labels-item{width:var(--components-calendar-day-size)}.calendar-grid{display:flex;text-align:center;align-self:stretch;flex-wrap:wrap;width:var(--components-calendar-width)}.calendar-grid.mod-dailyView .calendar-grid-item{width:var(--components-calendar-day-size)}.calendar-grid.mod-monthlyView .calendar-grid-item-content,.calendar-grid.mod-yearlyView .calendar-grid-item-content{width:5.83rem}.calendar-grid-item{height:var(--components-calendar-day-size);border:none;cursor:pointer;background:transparent;position:relative;padding:0;outline:none;color:var(--palettes-grey-800)}.calendar-grid-item.is-previousMonth,.calendar-grid-item.is-nextMonth{color:var(--palettes-grey-500)}.calendar-grid-item.is-today{color:var(--palettes-primary-700);font-weight:600}.calendar-grid-item.is-today:after{content:\"\";position:absolute;bottom:var(--spacings-XXS);left:var(--spacings-XS);right:var(--spacings-XS);height:2px;background:var(--palettes-primary-700);z-index:1}.calendar-grid-item:hover .calendar-grid-item-content{background:var(--palettes-grey-50)}.calendar-grid-item:active .calendar-grid-item-content{background:var(--palettes-grey-100)}.calendar-grid-item:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:var(--commons-borderRadius-L);z-index:1}.calendar-grid-item.is-active .calendar-grid-item-content{background:var(--palettes-primary-700);color:var(--palettes-primary-text)}.calendar-grid-item.is-active.is-today:after{background:white!important;transition:background-color var(--commons-animations-durations-fast)}.calendar-grid-item.is-disabled,.calendar-grid-item[disabled]{color:var(--palettes-grey-500);pointer-events:none}.calendar-grid-item.is-disabled:hover .calendar-grid-item-content,.calendar-grid-item[disabled]:hover .calendar-grid-item-content{background-color:#fff}.calendar-grid-item-content{position:relative;height:var(--components-calendar-day-size);width:var(--components-calendar-day-size);line-height:var(--components-calendar-day-size);border-radius:var(--commons-borderRadius-L);transition-duration:var(--commons-animations-durations-fast);transition-property:background-color,color}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
304
304
  }
305
305
  export { LuCalendarInputComponent };
306
306
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuCalendarInputComponent, decorators: [{
@@ -317,7 +317,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
317
317
  multi: true,
318
318
  },
319
319
  LuCalendarItemFactory,
320
- ], template: "<section class=\"calendar\">\r\n\t<header class=\"calendar-header\">\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"previous()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowWest\"></span>\r\n\t\t\t<span class=\"u-mask\">Previous</span>\r\n\t\t</button>\r\n\t\t<button type=\"button\" class=\"calendar-header-date\" (click)=\"increaseGranularity()\">{{ header.label }}</button>\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"next()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowEast\"></span>\r\n\t\t\t<span class=\"u-mask\">Next</span>\r\n\t\t</button>\r\n\t</header>\r\n\t<section class=\"calendar-labels\" [ngClass]=\"mod\">\r\n\t\t<div class=\"calendar-labels-item\" *ngFor=\"let label of labels\">{{ label }}</div>\r\n\t</section>\r\n\t<section class=\"calendar-grid\" [ngClass]=\"mod\">\r\n\t\t<button\r\n\t\t\ttype=\"button\"\r\n\t\t\t*ngFor=\"let item of items; trackBy: trackBy\"\r\n\t\t\tclass=\"calendar-grid-item\"\r\n\t\t\t[ngClass]=\"item.mods\"\r\n\t\t\t[disabled]=\"item.isDisabled\"\r\n\t\t\t(click)=\"select(item)\"\r\n\t\t>\r\n\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\r\n\t\t</button>\r\n\t</section>\r\n</section>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.calendar{background-color:var(--colors-white-color);width:var(--components-calendar-width)}:host-context(.mod-block) .calendar{width:auto;max-width:var(--components-calendar-width)}.calendar-header{display:flex;align-items:center;justify-content:space-between}.calendar-header-date{font-weight:600;color:var(--palettes-grey-900);font-size:var(--sizes-L-fontSize);line-height:var(--sizes-L-lineHeight);padding:0;background:transparent;border:none;cursor:pointer}.calendar-header-date:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:4px}.calendar-labels{display:none}.calendar-labels.mod-dailyView{display:flex;align-items:center;flex-wrap:wrap;text-align:center;height:var(--components-calendar-day-size);font-size:var(--sizes-S-fontSize);color:var(--palettes-primary-700)}.calendar-labels.mod-dailyView .calendar-labels-item{width:var(--components-calendar-day-size)}.calendar-grid{display:flex;text-align:center;align-self:stretch;flex-wrap:wrap;width:var(--components-calendar-width)}.calendar-grid.mod-dailyView .calendar-grid-item{width:var(--components-calendar-day-size)}.calendar-grid.mod-monthlyView .calendar-grid-item-content,.calendar-grid.mod-yearlyView .calendar-grid-item-content{width:5.83rem}.calendar-grid-item{height:var(--components-calendar-day-size);border:none;cursor:pointer;background:transparent;position:relative;padding:0;outline:none;color:var(--palettes-grey-800)}.calendar-grid-item.is-previousMonth,.calendar-grid-item.is-nextMonth,.calendar-grid-item.is-disabled{color:var(--palettes-grey-500)}.calendar-grid-item.is-today{color:var(--palettes-primary-700);font-weight:600}.calendar-grid-item.is-today:after{content:\"\";position:absolute;bottom:var(--spacings-XXS);left:var(--spacings-XS);right:var(--spacings-XS);height:2px;background:var(--palettes-primary-700);z-index:1}.calendar-grid-item:hover .calendar-grid-item-content{background:var(--palettes-grey-50)}.calendar-grid-item:active .calendar-grid-item-content{background:var(--palettes-grey-100)}.calendar-grid-item:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:var(--commons-borderRadius-L);z-index:1}.calendar-grid-item.is-active .calendar-grid-item-content{background:var(--palettes-primary-700);color:var(--palettes-primary-text)}.calendar-grid-item.is-active.is-today:after{background:white!important;transition:background-color var(--commons-animations-durations-fast)}.calendar-grid-item.is-disabled:hover .calendar-grid-item-content{pointer-events:none;background-color:#fff}.calendar-grid-item-content{position:relative;height:var(--components-calendar-day-size);width:var(--components-calendar-day-size);line-height:var(--components-calendar-day-size);border-radius:var(--commons-borderRadius-L);transition-duration:var(--commons-animations-durations-fast);transition-property:background-color,color}\n"] }]
320
+ ], template: "<section class=\"calendar\">\r\n\t<header class=\"calendar-header\">\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"previous()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowWest\"></span>\r\n\t\t\t<span class=\"u-mask\">Previous</span>\r\n\t\t</button>\r\n\t\t<button type=\"button\" class=\"calendar-header-date\" (click)=\"increaseGranularity()\">{{ header.label }}</button>\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"next()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowEast\"></span>\r\n\t\t\t<span class=\"u-mask\">Next</span>\r\n\t\t</button>\r\n\t</header>\r\n\t<section class=\"calendar-labels\" [ngClass]=\"mod\">\r\n\t\t<div class=\"calendar-labels-item\" *ngFor=\"let label of labels\">{{ label }}</div>\r\n\t</section>\r\n\t<section class=\"calendar-grid\" [ngClass]=\"mod\">\r\n\t\t<button\r\n\t\t\ttype=\"button\"\r\n\t\t\t*ngFor=\"let item of items; trackBy: trackBy\"\r\n\t\t\tclass=\"calendar-grid-item\"\r\n\t\t\t[ngClass]=\"item.mods\"\r\n\t\t\t[disabled]=\"item.isDisabled\"\r\n\t\t\t(click)=\"select(item)\"\r\n\t\t>\r\n\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\r\n\t\t</button>\r\n\t</section>\r\n</section>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.calendar{background-color:var(--colors-white-color);width:var(--components-calendar-width)}:host-context(.mod-block) .calendar{width:auto;max-width:var(--components-calendar-width)}.calendar-header{display:flex;align-items:center;justify-content:space-between}.calendar-header-date{font-weight:600;color:var(--palettes-grey-900);font-size:var(--sizes-L-fontSize);line-height:var(--sizes-L-lineHeight);padding:0;background:transparent;border:none;cursor:pointer}.calendar-header-date:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:4px}.calendar-labels{display:none}.calendar-labels.mod-dailyView{display:flex;align-items:center;flex-wrap:wrap;text-align:center;height:var(--components-calendar-day-size);font-size:var(--sizes-S-fontSize);color:var(--palettes-primary-700)}.calendar-labels.mod-dailyView .calendar-labels-item{width:var(--components-calendar-day-size)}.calendar-grid{display:flex;text-align:center;align-self:stretch;flex-wrap:wrap;width:var(--components-calendar-width)}.calendar-grid.mod-dailyView .calendar-grid-item{width:var(--components-calendar-day-size)}.calendar-grid.mod-monthlyView .calendar-grid-item-content,.calendar-grid.mod-yearlyView .calendar-grid-item-content{width:5.83rem}.calendar-grid-item{height:var(--components-calendar-day-size);border:none;cursor:pointer;background:transparent;position:relative;padding:0;outline:none;color:var(--palettes-grey-800)}.calendar-grid-item.is-previousMonth,.calendar-grid-item.is-nextMonth{color:var(--palettes-grey-500)}.calendar-grid-item.is-today{color:var(--palettes-primary-700);font-weight:600}.calendar-grid-item.is-today:after{content:\"\";position:absolute;bottom:var(--spacings-XXS);left:var(--spacings-XS);right:var(--spacings-XS);height:2px;background:var(--palettes-primary-700);z-index:1}.calendar-grid-item:hover .calendar-grid-item-content{background:var(--palettes-grey-50)}.calendar-grid-item:active .calendar-grid-item-content{background:var(--palettes-grey-100)}.calendar-grid-item:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:var(--commons-borderRadius-L);z-index:1}.calendar-grid-item.is-active .calendar-grid-item-content{background:var(--palettes-primary-700);color:var(--palettes-primary-text)}.calendar-grid-item.is-active.is-today:after{background:white!important;transition:background-color var(--commons-animations-durations-fast)}.calendar-grid-item.is-disabled,.calendar-grid-item[disabled]{color:var(--palettes-grey-500);pointer-events:none}.calendar-grid-item.is-disabled:hover .calendar-grid-item-content,.calendar-grid-item[disabled]:hover .calendar-grid-item-content{background-color:#fff}.calendar-grid-item-content{position:relative;height:var(--components-calendar-day-size);width:var(--components-calendar-day-size);line-height:var(--components-calendar-day-size);border-radius:var(--commons-borderRadius-L);transition-duration:var(--commons-animations-durations-fast);transition-property:background-color,color}\n"] }]
321
321
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
322
322
  type: Inject,
323
323
  args: [LOCALE_ID]
@@ -330,4 +330,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
330
330
  }], startOn: [{
331
331
  type: Input
332
332
  }] } });
333
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvZGF0ZS9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2RhdGUvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hILE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFjLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDM0osT0FBTyxFQUF5QyxXQUFXLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUErQixNQUFNLGdCQUFnQixDQUFDO0FBQ25KLE9BQU8sRUFBa0Isa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBR2hFLE1BcUJhLHdCQUE0QixTQUFRLFFBQVc7SUFTM0QsSUFBSSxHQUFHO1FBQ04sUUFBUSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQzdCLEtBQUssa0JBQWtCLENBQUMsSUFBSTtnQkFDM0IsT0FBTyxnQkFBZ0IsQ0FBQztZQUN6QixLQUFLLGtCQUFrQixDQUFDLEtBQUs7Z0JBQzVCLE9BQU8saUJBQWlCLENBQUM7WUFDMUIsS0FBSyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7WUFDNUI7Z0JBQ0MsT0FBTyxlQUFlLENBQUM7U0FDeEI7SUFDRixDQUFDO0lBSUQsWUFDQyxrQkFBcUMsRUFDckMsV0FBb0MsRUFDcEMsU0FBb0IsRUFDTyxPQUFlLEVBQ2xDLFFBQWtDLEVBQ2xDLFFBQTJCO1FBRW5DLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFKdkIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQTFCM0IsZ0JBQVcsR0FBdUIsa0JBQWtCLENBQUMsR0FBRyxDQUFDO1FBQ3pELFlBQU8sR0FBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBSWpELFVBQUssR0FBdUIsRUFBRSxDQUFDO1FBYS9CLGFBQWE7UUFDYixXQUFNLEdBQWEsRUFBRSxDQUFDO0lBVXRCLENBQUM7SUFDRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ1EsVUFBVSxDQUFDLEtBQVM7UUFDNUIsTUFBTSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUMvRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELGFBQWE7UUFDWixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN2RyxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0YsQ0FBQztJQUNTLE1BQU07UUFDZixRQUFRLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDN0IsS0FBSyxrQkFBa0IsQ0FBQyxJQUFJO2dCQUMzQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDeEIsTUFBTTtZQUNQLEtBQUssa0JBQWtCLENBQUMsS0FBSztnQkFDNUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3pCLE1BQU07WUFDUCxLQUFLLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztZQUM1QjtnQkFDQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU07U0FDUDtJQUNGLENBQUM7SUFFUyxlQUFlLENBQUMsUUFBVyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEcsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3RixLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO1NBQ3BCO1FBQ0QsT0FBTztRQUNQLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDeEIsR0FBRztZQUNGLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwRSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUUsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNyQixRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRVMsaUJBQWlCLENBQUMsT0FBVSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDckQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRVMsZ0JBQWdCLENBQUMsU0FBWSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDdEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlD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QUNyQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQzs4R0FuVFcsd0JBQXdCLHNHQTJCM0IsU0FBUztrR0EzQk4sd0JBQXdCLDhJQWR6QjtZQUNWO2dCQUNDLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3ZELEtBQUssRUFBRSxJQUFJO2FBQ1g7WUFDRDtnQkFDQyxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLHdCQUF3QjtnQkFDckMsS0FBSyxFQUFFLElBQUk7YUFDWDtZQUNELHFCQUFxQjtTQUNyQixpREMzQkYsc3VDQTRCQSx5OEdEZFcsV0FBVyw4QkFBRSxZQUFZOztTQWV2Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFyQnBDLFNBQVM7K0JBQ0MsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsYUFDekI7d0JBQ1Y7NEJBQ0MsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUM7NEJBQ3ZELEtBQUssRUFBRSxJQUFJO3lCQUNYO3dCQUNEOzRCQUNDLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLDBCQUEwQjs0QkFDckMsS0FBSyxFQUFFLElBQUk7eUJBQ1g7d0JBQ0QscUJBQXFCO3FCQUNyQjs7MEJBNkJDLE1BQU07MkJBQUMsU0FBUzs2R0ExQlQsR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRm9ybVN0eWxlLCBnZXRMb2NhbGVEYXlOYW1lcywgZ2V0TG9jYWxlRmlyc3REYXlPZldlZWssIFRyYW5zbGF0aW9uV2lkdGggfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbnB1dCwgTE9DQUxFX0lELCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQUx1RGF0ZUFkYXB0ZXIsIEVMdURhdGVHcmFudWxhcml0eSB9IGZyb20gJ0BsdWNjYS1mcm9udC9uZy9jb3JlJztcclxuaW1wb3J0IHsgQUx1SW5wdXQgfSBmcm9tICdAbHVjY2EtZnJvbnQvbmcvaW5wdXQnO1xyXG5pbXBvcnQgeyBMdUNhbGVuZGFySXRlbUZhY3RvcnkgfSBmcm9tICcuL2NhbGVuZGFyLWl0ZW0uZmFjdG9yeSc7XHJcbmltcG9ydCB7IElDYWxlbmRhckl0ZW0gfSBmcm9tICcuL2NhbGVuZGFyLWl0ZW0uaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbHUtY2FsZW5kYXInLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vY2FsZW5kYXItaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgQ29tbW9uTW9kdWxlXSxcclxuXHRwcm92aWRlcnM6IFtcclxuXHRcdHtcclxuXHRcdFx0cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEx1Q2FsZW5kYXJJbnB1dENvbXBvbmVudCksXHJcblx0XHRcdG11bHRpOiB0cnVlLFxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0cHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IEx1Q2FsZW5kYXJJbnB1dENvbXBvbmVudCxcclxuXHRcdFx0bXVsdGk6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0THVDYWxlbmRhckl0ZW1GYWN0b3J5LFxyXG5cdF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMdUNhbGVuZGFySW5wdXRDb21wb25lbnQ8RD4gZXh0ZW5kcyBBTHVJbnB1dDxEPiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIFZhbGlkYXRvciB7XHJcblx0QElucHV0KCkgbWluPzogRDtcclxuXHRASW5wdXQoKSBtYXg/OiBEO1xyXG5cdEBJbnB1dCgpIGdyYW51bGFyaXR5OiBFTHVEYXRlR3JhbnVsYXJpdHkgPSBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5O1xyXG5cdEBJbnB1dCgpIHN0YXJ0T246IEQgPSB0aGlzLl9hZGFwdGVyLmZvcmdlVG9kYXkoKTtcclxuXHJcblx0dmlld0dyYW51bGFyaXR5OiBFTHVEYXRlR3JhbnVsYXJpdHk7XHJcblx0aGVhZGVyOiBJQ2FsZW5kYXJJdGVtPEQ+O1xyXG5cdGl0ZW1zOiBJQ2FsZW5kYXJJdGVtPEQ+W10gPSBbXTtcclxuXHRnZXQgbW9kKCkge1xyXG5cdFx0c3dpdGNoICh0aGlzLnZpZXdHcmFudWxhcml0eSkge1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS55ZWFyOlxyXG5cdFx0XHRcdHJldHVybiAnbW9kLXllYXJseVZpZXcnO1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5tb250aDpcclxuXHRcdFx0XHRyZXR1cm4gJ21vZC1tb250aGx5Vmlldyc7XHJcblx0XHRcdGNhc2UgRUx1RGF0ZUdyYW51bGFyaXR5LmRheTpcclxuXHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRyZXR1cm4gJ21vZC1kYWlseVZpZXcnO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gZGFpbHkgdmlld1xyXG5cdGxhYmVsczogc3RyaW5nW10gPSBbXTtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0XHRfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcblx0XHRfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHRcdEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyxcclxuXHRcdHByaXZhdGUgX2ZhY3Rvcnk6IEx1Q2FsZW5kYXJJdGVtRmFjdG9yeTxEPixcclxuXHRcdHByaXZhdGUgX2FkYXB0ZXI6IEFMdURhdGVBZGFwdGVyPEQ+LFxyXG5cdCkge1xyXG5cdFx0c3VwZXIoX2NoYW5nZURldGVjdG9yUmVmLCBfZWxlbWVudFJlZiwgX3JlbmRlcmVyKTtcclxuXHR9XHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLnZpZXdHcmFudWxhcml0eSA9IHRoaXMuZ3JhbnVsYXJpdHk7XHJcblx0XHR0aGlzLmluaXREYXlMYWJlbHMoKTtcclxuXHR9XHJcblx0b3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZT86IEQpIHtcclxuXHRcdGNvbnN0IGRhdGUgPSB2YWx1ZSAmJiB0aGlzLl9hZGFwdGVyLmlzVmFsaWQodmFsdWUpID8gdGhpcy5fYWRhcHRlci5jbG9uZSh2YWx1ZSkgOiB0aGlzLnN0YXJ0T247XHJcblx0XHR0aGlzLmhlYWRlciA9IHRoaXMuX2ZhY3RvcnkuZm9yZ2VNb250aChkYXRlKTtcclxuXHRcdHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xyXG5cdH1cclxuXHRpbml0RGF5TGFiZWxzKCkge1xyXG5cdFx0dGhpcy5sYWJlbHMgPSBbLi4uZ2V0TG9jYWxlRGF5TmFtZXModGhpcy5fbG9jYWxlLCBGb3JtU3R5bGUuU3RhbmRhbG9uZSwgVHJhbnNsYXRpb25XaWR0aC5BYmJyZXZpYXRlZCldO1xyXG5cdFx0aWYgKGdldExvY2FsZUZpcnN0RGF5T2ZXZWVrKHRoaXMuX2xvY2FsZSkgPT09IDEpIHtcclxuXHRcdFx0dGhpcy5sYWJlbHMucHVzaCh0aGlzLmxhYmVscy5zaGlmdCgpKTtcclxuXHRcdH1cclxuXHR9XHJcblx0cHJvdGVjdGVkIHJlbmRlcigpIHtcclxuXHRcdHN3aXRjaCAodGhpcy52aWV3R3JhbnVsYXJpdHkpIHtcclxuXHRcdFx0Y2FzZSBFTHVEYXRlR3JhbnVsYXJpdHkueWVhcjpcclxuXHRcdFx0XHR0aGlzLnJlbmRlclllYXJseVZpZXcoKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGg6XHJcblx0XHRcdFx0dGhpcy5yZW5kZXJNb250aGx5VmlldygpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5kYXk6XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0dGhpcy5yZW5kZXJEYWlseVZpZXcoKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCByZW5kZXJEYWlseVZpZXcobW9udGg6IEQgPSB0aGlzLmhlYWRlci5kYXRlKSB7XHJcblx0XHR0aGlzLml0ZW1zID0gW107XHJcblx0XHRjb25zdCBzdGFydCA9IHRoaXMuX2FkYXB0ZXIuZm9yZ2UodGhpcy5fYWRhcHRlci5nZXRZZWFyKG1vbnRoKSwgdGhpcy5fYWRhcHRlci5nZXRNb250aChtb250aCksIDEpO1xyXG5cdFx0bGV0IGluZGV4ID0gMDtcclxuXHRcdGNvbnN0IGlzRmlyc3REYXlPZldlZWsgPSB0aGlzLl9hZGFwdGVyLmdldERheShzdGFydCkgPT09IGdldExvY2FsZUZpcnN0RGF5T2ZXZWVrKHRoaXMuX2xvY2FsZSk7XHJcblx0XHR0aGlzLmhlYWRlciA9IHRoaXMuX2ZhY3RvcnkuZm9yZ2VNb250aChtb250aCwgJ01NTU0geScpO1xyXG5cdFx0aWYgKCFpc0ZpcnN0RGF5T2ZXZWVrKSB7XHJcblx0XHRcdGNvbnN0IG9mZnNldCA9ICh0aGlzLl9hZGFwdGVyLmdldERheShzdGFydCkgLSBnZXRMb2NhbGVGaXJzdERheU9mV2Vlayh0aGlzLl9sb2NhbGUpICsgNykgJSA3O1xyXG5cdFx0XHRpbmRleCA9IC0xICogb2Zmc2V0O1xyXG5cdFx0fVxyXG5cdFx0Ly8gVE9ET1xyXG5cdFx0bGV0IGlzRkRPVyA9IGZhbHNlO1xyXG5cdFx0bGV0IGlzTmV4dE1vbnRoID0gZmFsc2U7XHJcblx0XHRkbyB7XHJcblx0XHRcdGNvbnN0IGQgPSB0aGlzLl9hZGFwdGVyLmFkZChzdGFydCwgaW5kZXgrKywgRUx1RGF0ZUdyYW51bGFyaXR5LmRheSk7XHJcblx0XHRcdGNvbnN0IGRheSA9IHRoaXMuX2ZhY3RvcnkuZm9yZ2VEYXkoZCk7XHJcblx0XHRcdGlzTmV4dE1vbnRoID0gdGhpcy5fYWRhcHRlci5jb21wYXJlKGQsIG1vbnRoLCBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGgpID4gMDtcclxuXHRcdFx0aXNGRE9XID0gdGhpcy5fYWRhcHRlci5nZXREYXkoZCkgPT09IGdldExvY2FsZUZpcnN0RGF5T2ZXZWVrKHRoaXMuX2xvY2FsZSk7XHJcblx0XHRcdHRoaXMuaXRlbXMucHVzaChkYXkpO1xyXG5cdFx0fSB3aGlsZSAoIWlzRkRPVyB8fCAhaXNOZXh0TW9udGgpO1xyXG5cdFx0dGhpcy5hcHBseURhaWx5TW9kcygpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIHJlbmRlck1vbnRobHlWaWV3KHllYXI6IEQgPSB0aGlzLmhlYWRlci5kYXRlKSB7XHJcblx0XHR0aGlzLmhlYWRlciA9IHRoaXMuX2ZhY3RvcnkuZm9yZ2VZZWFyKHllYXIpO1xyXG5cdFx0dGhpcy5pdGVtcyA9IFsuLi5BcnJheSgxMikua2V5cygpXS5tYXAoKGkpID0+IHtcclxuXHRcdFx0Y29uc3QgZCA9IHRoaXMuX2FkYXB0ZXIuZm9yZ2UodGhpcy5fYWRhcHRlci5nZXRZZWFyKHllYXIpLCBpICsgMSwgMSk7XHJcblx0XHRcdHJldHVybiB0aGlzLl9mYWN0b3J5LmZvcmdlTW9udGgoZCk7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuYXBwbHlNb250aGx5TW9kcygpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIHJlbmRlclllYXJseVZpZXcoZGVjYWRlOiBEID0gdGhpcy5oZWFkZXIuZGF0ZSkge1xyXG5cdFx0Y29uc3QgeWVhciA9IE1hdGguZmxvb3IodGhpcy5fYWRhcHRlci5nZXRZZWFyKGRlY2FkZSkgLyAxMCkgKiAxMDtcclxuXHRcdGNvbnN0IGQgPSB0aGlzLl9hZGFwdGVyLmZvcmdlKHllYXIsIDEsIDEpO1xyXG5cdFx0dGhpcy5oZWFkZXIgPSB0aGlzLl9mYWN0b3J5LmZvcmdlRGVjYWRlKGQpO1xyXG5cdFx0dGhpcy5pdGVtcyA9IFsuLi5BcnJheSgxMCkua2V5cygpXS5tYXAoKGkpID0+IHtcclxuXHRcdFx0Y29uc3QgeSA9IHRoaXMuX2FkYXB0ZXIuZm9yZ2UoeWVhciArIGksIDEsIDEpO1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5fZmFjdG9yeS5mb3JnZVllYXIoeSk7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuYXBwbHlZZWFybHlNb2RzKCk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgYXBwbHlEYWlseU1vZHMoKSB7XHJcblx0XHRjb25zdCBtb250aCA9IHRoaXMuaGVhZGVyLmRhdGU7XHJcblx0XHRjb25zdCB0b2RheSA9IHRoaXMuX2FkYXB0ZXIuZm9yZ2VUb2RheSgpO1xyXG5cdFx0Y29uc3QgbWluID0gdGhpcy5taW4gJiYgdGhpcy5fYWRhcHRlci5pc1ZhbGlkKHRoaXMubWluKSA/IHRoaXMubWluIDogdW5kZWZpbmVkO1xyXG5cdFx0Y29uc3QgbWF4ID0gdGhpcy5tYXggJiYgdGhpcy5fYWRhcHRlci5pc1ZhbGlkKHRoaXMubWF4KSA/IHRoaXMubWF4IDogdW5kZWZpbmVkO1xyXG5cdFx0dGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcblx0XHRcdGNvbnN0IGRheSA9IGl0ZW0uZGF0ZTtcclxuXHRcdFx0aWYgKHRoaXMuX2FkYXB0ZXIuY29tcGFyZShkYXksIG1vbnRoLCBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGgpIDwgMCkge1xyXG5cdFx0XHRcdGl0ZW0ubW9kcy5wdXNoKCdpcy1wcmV2aW91c01vbnRoJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMuX2FkYXB0ZXIuY29tcGFyZShkYXksIG1vbnRoLCBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGgpID4gMCkge1xyXG5cdFx0XHRcdGl0ZW0ubW9kcy5wdXNoKCdpcy1uZXh0TW9udGgnKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAodGhpcy5fYWRhcHRlci5jb21wYXJlKGRheSwgdG9kYXksIEVMdURhdGVHcmFudWxhcml0eS5kYXkpID09PSAwKSB7XHJcblx0XHRcdFx0aXRlbS5tb2RzLnB1c2goJ2lzLXRvZGF5Jyk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMudmFsdWUgJiYgdGhpcy5fYWRhcHRlci5pc1ZhbGlkKHRoaXMudmFsdWUpICYmIHRoaXMuX2FkYXB0ZXIuY29tcGFyZShkYXksIHRoaXMudmFsdWUsIEVMdURhdGVHcmFudWxhcml0eS5kYXkpID09PSAwKSB7XHJcblx0XHRcdFx0aXRlbS5tb2RzLnB1c2goJ2lzLWFjdGl2ZScpO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChtaW4gJiYgdGhpcy5fYWRhcHRlci5jb21wYXJlKGRheSwgbWluLCBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5KSA8IDApIHtcclxuXHRcdFx0XHRpdGVtLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChtYXggJiYgdGhpcy5fYWRhcHRlci5jb21wYXJlKGRheSwgbWF4LCBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5KSA+IDApIHtcclxuXHRcdFx0XHRpdGVtLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBhcHBseU1vbnRobHlNb2RzKCkge1xyXG5cdFx0Y29uc3QgdG9kYXkgPSB0aGlzLl9hZGFwdGVyLmZvcmdlVG9kYXkoKTtcclxuXHRcdGNvbnN0IG1pbiA9IHRoaXMubWluICYmIHRoaXMuX2FkYXB0ZXIuaXNWYWxpZCh0aGlzLm1pbikgPyB0aGlzLm1pbiA6IHVuZGVmaW5lZDtcclxuXHRcdGNvbnN0IG1heCA9IHRoaXMubWF4ICYmIHRoaXMuX2FkYXB0ZXIuaXNWYWxpZCh0aGlzLm1heCkgPyB0aGlzLm1heCA6IHVuZGVmaW5lZDtcclxuXHRcdHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG5cdFx0XHRjb25zdCBtb250aCA9IGl0ZW0uZGF0ZTtcclxuXHRcdFx0aWYgKHRoaXMuX2FkYXB0ZXIuY29tcGFyZShtb250aCwgdG9kYXksIEVMdURhdGVHcmFudWxhcml0eS5tb250aCkgPT09IDApIHtcclxuXHRcdFx0XHRpdGVtLm1vZHMucHVzaCgnaXMtdG9kYXknKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAodGhpcy52YWx1ZSAmJiB0aGlzLl9hZGFwdGVyLmlzVmFsaWQodGhpcy52YWx1ZSkgJiYgdGhpcy5fYWRhcHRlci5jb21wYXJlKG1vbnRoLCB0aGlzLnZhbHVlLCBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGgpID09PSAwKSB7XHJcblx0XHRcdFx0aXRlbS5tb2RzLnB1c2goJ2lzLWFjdGl2ZScpO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChtaW4gJiYgdGhpcy5fYWRhcHRlci5jb21wYXJlKG1vbnRoLCBtaW4sIEVMdURhdGVHcmFudWxhcml0eS5tb250aCkgPCAwKSB7XHJcblx0XHRcdFx0aXRlbS5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAobWF4ICYmIHRoaXMuX2FkYXB0ZXIuY29tcGFyZShtb250aCwgbWF4LCBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGgpID4gMCkge1xyXG5cdFx0XHRcdGl0ZW0uaXNEaXNhYmxlZCA9IHRydWU7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGFwcGx5WWVhcmx5TW9kcygpIHtcclxuXHRcdGNvbnN0IHRvZGF5ID0gdGhpcy5fYWRhcHRlci5mb3JnZVRvZGF5KCk7XHJcblx0XHRjb25zdCBtaW4gPSB0aGlzLm1pbiAmJiB0aGlzLl9hZGFwdGVyLmlzVmFsaWQodGhpcy5taW4pID8gdGhpcy5taW4gOiB1bmRlZmluZWQ7XHJcblx0XHRjb25zdCBtYXggPSB0aGlzLm1heCAmJiB0aGlzLl9hZGFwdGVyLmlzVmFsaWQodGhpcy5tYXgpID8gdGhpcy5tYXggOiB1bmRlZmluZWQ7XHJcblx0XHR0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcclxuXHRcdFx0Y29uc3QgeWVhciA9IGl0ZW0uZGF0ZTtcclxuXHRcdFx0aWYgKHRoaXMuX2FkYXB0ZXIuY29tcGFyZSh5ZWFyLCB0b2RheSwgRUx1RGF0ZUdyYW51bGFyaXR5LnllYXIpID09PSAwKSB7XHJcblx0XHRcdFx0aXRlbS5tb2RzLnB1c2goJ2lzLXRvZGF5Jyk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMudmFsdWUgJiYgdGhpcy5fYWRhcHRlci5pc1ZhbGlkKHRoaXMudmFsdWUpICYmIHRoaXMuX2FkYXB0ZXIuY29tcGFyZSh5ZWFyLCB0aGlzLnZhbHVlLCBFTHVEYXRlR3JhbnVsYXJpdHkueWVhcikgPT09IDApIHtcclxuXHRcdFx0XHRpdGVtLm1vZHMucHVzaCgnaXMtYWN0aXZlJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKG1pbiAmJiB0aGlzLl9hZGFwdGVyLmNvbXBhcmUoeWVhciwgbWluLCBFTHVEYXRlR3JhbnVsYXJpdHkueWVhcikgPCAwKSB7XHJcblx0XHRcdFx0aXRlbS5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAobWF4ICYmIHRoaXMuX2FkYXB0ZXIuY29tcGFyZSh5ZWFyLCBtYXgsIEVMdURhdGVHcmFudWxhcml0eS55ZWFyKSA+IDApIHtcclxuXHRcdFx0XHRpdGVtLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHNlbGVjdChpdGVtOiBJQ2FsZW5kYXJJdGVtPEQ+KSB7XHJcblx0XHRzd2l0Y2ggKHRoaXMudmlld0dyYW51bGFyaXR5KSB7XHJcblx0XHRcdGNhc2UgRUx1RGF0ZUdyYW51bGFyaXR5LnllYXI6XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RZZWFyKGl0ZW0pO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5tb250aDpcclxuXHRcdFx0XHR0aGlzLnNlbGVjdE1vbnRoKGl0ZW0pO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5kYXk6XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0dGhpcy5zZWxlY3REYXkoaXRlbSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgc2VsZWN0RGF5KGl0ZW06IElDYWxlbmRhckl0ZW08RD4pIHtcclxuXHRcdGNvbnN0IHllYXIgPSB0aGlzLl9hZGFwdGVyLmdldFllYXIoaXRlbS5kYXRlKTtcclxuXHRcdGNvbnN0IG1vbnRoID0gdGhpcy5fYWRhcHRlci5nZXRNb250aChpdGVtLmRhdGUpO1xyXG5cdFx0Y29uc3QgZCA9IHRoaXMuX2FkYXB0ZXIuZm9yZ2UoeWVhciwgbW9udGgsIDEpO1xyXG5cdFx0dGhpcy5oZWFkZXIgPSB0aGlzLl9mYWN0b3J5LmZvcmdlTW9udGgoZCk7XHJcblx0XHR0aGlzLnNldFZhbHVlKGl0ZW0uZGF0ZSk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgc2VsZWN0TW9udGgoaXRlbTogSUNhbGVuZGFySXRlbTxEPikge1xyXG5cdFx0aWYgKHRoaXMuZ3JhbnVsYXJpdHkgPT09IEVMdURhdGVHcmFudWxhcml0eS5tb250aCkge1xyXG5cdFx0XHR0aGlzLnNldFZhbHVlKGl0ZW0uZGF0ZSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmhlYWRlciA9IGl0ZW07XHJcblx0XHRcdHRoaXMudmlld0dyYW51bGFyaXR5ID0gRUx1RGF0ZUdyYW51bGFyaXR5LmRheTtcclxuXHRcdFx0dGhpcy5yZW5kZXIoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBzZWxlY3RZZWFyKGl0ZW06IElDYWxlbmRhckl0ZW08RD4pIHtcclxuXHRcdGlmICh0aGlzLmdyYW51bGFyaXR5ID09PSBFTHVEYXRlR3JhbnVsYXJpdHkueWVhcikge1xyXG5cdFx0XHR0aGlzLnNldFZhbHVlKGl0ZW0uZGF0ZSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmhlYWRlciA9IGl0ZW07XHJcblx0XHRcdHRoaXMudmlld0dyYW51bGFyaXR5ID0gRUx1RGF0ZUdyYW51bGFyaXR5Lm1vbnRoO1xyXG5cdFx0XHR0aGlzLnJlbmRlcigpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJldmlvdXMoKSB7XHJcblx0XHRzd2l0Y2ggKHRoaXMudmlld0dyYW51bGFyaXR5KSB7XHJcblx0XHRcdGNhc2UgRUx1RGF0ZUdyYW51bGFyaXR5LnllYXI6XHJcblx0XHRcdFx0dGhpcy5wcmV2aW91c0RlY2FkZSgpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5tb250aDpcclxuXHRcdFx0XHR0aGlzLnByZXZpb3VzWWVhcigpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5kYXk6XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0dGhpcy5wcmV2aW91c01vbnRoKCk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0XHR0aGlzLnJlbmRlcigpO1xyXG5cdH1cclxuXHJcblx0bmV4dCgpIHtcclxuXHRcdHN3aXRjaCAodGhpcy52aWV3R3JhbnVsYXJpdHkpIHtcclxuXHRcdFx0Y2FzZSBFTHVEYXRlR3JhbnVsYXJpdHkueWVhcjpcclxuXHRcdFx0XHR0aGlzLm5leHREZWNhZGUoKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGg6XHJcblx0XHRcdFx0dGhpcy5uZXh0WWVhcigpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5kYXk6XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0dGhpcy5uZXh0TW9udGgoKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHRcdHRoaXMucmVuZGVyKCk7XHJcblx0fVxyXG5cclxuXHR0cmFja0J5KF9pZHgsIGl0ZW06IElDYWxlbmRhckl0ZW08RD4pIHtcclxuXHRcdHJldHVybiBpdGVtLmlkO1xyXG5cdH1cclxuXHJcblx0aW5jcmVhc2VHcmFudWxhcml0eSgpIHtcclxuXHRcdGlmICh0aGlzLmhlYWRlci5ncmFudWxhcml0eSAhPT0gRUx1RGF0ZUdyYW51bGFyaXR5LmRlY2FkZSkge1xyXG5cdFx0XHR0aGlzLnZpZXdHcmFudWxhcml0eSA9IHRoaXMuaGVhZGVyLmdyYW51bGFyaXR5O1xyXG5cdFx0XHR0aGlzLnJlbmRlcigpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIG5leHRNb250aCgpIHtcclxuXHRcdGNvbnN0IGQgPSB0aGlzLl9hZGFwdGVyLmFkZCh0aGlzLmhlYWRlci5kYXRlLCAxLCBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGgpO1xyXG5cdFx0dGhpcy5oZWFkZXIgPSB0aGlzLl9mYWN0b3J5LmZvcmdlTW9udGgoZCk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgbmV4dFllYXIoKSB7XHJcblx0XHRjb25zdCBkID0gdGhpcy5fYWRhcHRlci5hZGQodGhpcy5oZWFkZXIuZGF0ZSwgMSwgRUx1RGF0ZUdyYW51bGFyaXR5LnllYXIpO1xyXG5cdFx0dGhpcy5oZWFkZXIgPSB0aGlzLl9mYWN0b3J5LmZvcmdlWWVhcihkKTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBuZXh0RGVjYWRlKCkge1xyXG5cdFx0Y29uc3QgZCA9IHRoaXMuX2FkYXB0ZXIuYWRkKHRoaXMuaGVhZGVyLmRhdGUsIDEsIEVMdURhdGVHcmFudWxhcml0eS5kZWNhZGUpO1xyXG5cdFx0dGhpcy5oZWFkZXIgPSB0aGlzLl9mYWN0b3J5LmZvcmdlRGVjYWRlKGQpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIHByZXZpb3VzTW9udGgoKSB7XHJcblx0XHRjb25zdCBkID0gdGhpcy5fYWRhcHRlci5hZGQodGhpcy5oZWFkZXIuZGF0ZSwgLTEsIEVMdURhdGVHcmFudWxhcml0eS5tb250aCk7XHJcblx0XHR0aGlzLmhlYWRlciA9IHRoaXMuX2ZhY3RvcnkuZm9yZ2VNb250aChkKTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBwcmV2aW91c1llYXIoKSB7XHJcblx0XHRjb25zdCBkID0gdGhpcy5fYWRhcHRlci5hZGQodGhpcy5oZWFkZXIuZGF0ZSwgLTEsIEVMdURhdGVHcmFudWxhcml0eS55ZWFyKTtcclxuXHRcdHRoaXMuaGVhZGVyID0gdGhpcy5fZmFjdG9yeS5mb3JnZVllYXIoZCk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgcHJldmlvdXNEZWNhZGUoKSB7XHJcblx0XHRjb25zdCBkID0gdGhpcy5fYWRhcHRlci5hZGQodGhpcy5oZWFkZXIuZGF0ZSwgLTEsIEVMdURhdGVHcmFudWxhcml0eS5kZWNhZGUpO1xyXG5cdFx0dGhpcy5oZWFkZXIgPSB0aGlzLl9mYWN0b3J5LmZvcmdlRGVjYWRlKGQpO1xyXG5cdH1cclxuXHJcblx0dmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG5cdFx0Y29uc3QgZCA9IGNvbnRyb2wudmFsdWUgYXMgRDtcclxuXHRcdGlmICghZCkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHRcdGlmICghdGhpcy5fYWRhcHRlci5pc1ZhbGlkKGQpKSB7XHJcblx0XHRcdHJldHVybiB7IGRhdGU6IHRydWUgfTtcclxuXHRcdH1cclxuXHRcdGlmICghIXRoaXMubWluICYmIHRoaXMuX2FkYXB0ZXIuaXNWYWxpZCh0aGlzLm1pbikgJiYgdGhpcy5fYWRhcHRlci5jb21wYXJlKHRoaXMubWluLCBkLCBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5KSA+IDApIHtcclxuXHRcdFx0cmV0dXJuIHsgbWluOiB0cnVlIH07XHJcblx0XHR9XHJcblx0XHRpZiAoISF0aGlzLm1heCAmJiB0aGlzLl9hZGFwdGVyLmlzVmFsaWQodGhpcy5tYXgpICYmIHRoaXMuX2FkYXB0ZXIuY29tcGFyZSh0aGlzLm1heCwgZCwgRUx1RGF0ZUdyYW51bGFyaXR5LmRheSkgPCAwKSB7XHJcblx0XHRcdHJldHVybiB7IG1heDogdHJ1ZSB9O1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG59XHJcbiIsIjxzZWN0aW9uIGNsYXNzPVwiY2FsZW5kYXJcIj5cclxuXHQ8aGVhZGVyIGNsYXNzPVwiY2FsZW5kYXItaGVhZGVyXCI+XHJcblx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImFjdGlvbkljb24gbW9kLVNcIiAoY2xpY2spPVwicHJldmlvdXMoKVwiPlxyXG5cdFx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImx1Y2NhLWljb24gaWNvbi1hcnJvd1dlc3RcIj48L3NwYW4+XHJcblx0XHRcdDxzcGFuIGNsYXNzPVwidS1tYXNrXCI+UHJldmlvdXM8L3NwYW4+XHJcblx0XHQ8L2J1dHRvbj5cclxuXHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2FsZW5kYXItaGVhZGVyLWRhdGVcIiAoY2xpY2spPVwiaW5jcmVhc2VHcmFudWxhcml0eSgpXCI+e3sgaGVhZGVyLmxhYmVsIH19PC9idXR0b24+XHJcblx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImFjdGlvbkljb24gbW9kLVNcIiAoY2xpY2spPVwibmV4dCgpXCI+XHJcblx0XHRcdDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwibHVjY2EtaWNvbiBpY29uLWFycm93RWFzdFwiPjwvc3Bhbj5cclxuXHRcdFx0PHNwYW4gY2xhc3M9XCJ1LW1hc2tcIj5OZXh0PC9zcGFuPlxyXG5cdFx0PC9idXR0b24+XHJcblx0PC9oZWFkZXI+XHJcblx0PHNlY3Rpb24gY2xhc3M9XCJjYWxlbmRhci1sYWJlbHNcIiBbbmdDbGFzc109XCJtb2RcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJjYWxlbmRhci1sYWJlbHMtaXRlbVwiICpuZ0Zvcj1cImxldCBsYWJlbCBvZiBsYWJlbHNcIj57eyBsYWJlbCB9fTwvZGl2PlxyXG5cdDwvc2VjdGlvbj5cclxuXHQ8c2VjdGlvbiBjbGFzcz1cImNhbGVuZGFyLWdyaWRcIiBbbmdDbGFzc109XCJtb2RcIj5cclxuXHRcdDxidXR0b25cclxuXHRcdFx0dHlwZT1cImJ1dHRvblwiXHJcblx0XHRcdCpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyB0cmFja0J5OiB0cmFja0J5XCJcclxuXHRcdFx0Y2xhc3M9XCJjYWxlbmRhci1ncmlkLWl0ZW1cIlxyXG5cdFx0XHRbbmdDbGFzc109XCJpdGVtLm1vZHNcIlxyXG5cdFx0XHRbZGlzYWJsZWRdPVwiaXRlbS5pc0Rpc2FibGVkXCJcclxuXHRcdFx0KGNsaWNrKT1cInNlbGVjdChpdGVtKVwiXHJcblx0XHQ+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ncmlkLWl0ZW0tY29udGVudFwiPnt7IGl0ZW0ubGFiZWwgfX08L2Rpdj5cclxuXHRcdDwvYnV0dG9uPlxyXG5cdDwvc2VjdGlvbj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvZGF0ZS9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2RhdGUvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hILE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFjLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDM0osT0FBTyxFQUF5QyxXQUFXLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUErQixNQUFNLGdCQUFnQixDQUFDO0FBQ25KLE9BQU8sRUFBa0Isa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBR2hFLE1BcUJhLHdCQUE0QixTQUFRLFFBQVc7SUFTM0QsSUFBSSxHQUFHO1FBQ04sUUFBUSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQzdCLEtBQUssa0JBQWtCLENBQUMsSUFBSTtnQkFDM0IsT0FBTyxnQkFBZ0IsQ0FBQztZQUN6QixLQUFLLGtCQUFrQixDQUFDLEtBQUs7Z0JBQzVCLE9BQU8saUJBQWlCLENBQUM7WUFDMUIsS0FBSyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7WUFDNUI7Z0JBQ0MsT0FBTyxlQUFlLENBQUM7U0FDeEI7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LENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRVMsZ0JBQWdCLENBQUMsU0FBWSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDdEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlD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QUNyQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQzs4R0FuVFcsd0JBQXdCLHNHQTJCM0IsU0FBUztrR0EzQk4sd0JBQXdCLDhJQWR6QjtZQUNWO2dCQUNDLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3ZELEtBQUssRUFBRSxJQUFJO2FBQ1g7WUFDRDtnQkFDQyxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLHdCQUF3QjtnQkFDckMsS0FBSyxFQUFFLElBQUk7YUFDWDtZQUNELHFCQUFxQjtTQUNyQixpREMzQkYsc3VDQTRCQSxza0hEZFcsV0FBVyw4QkFBRSxZQUFZOztTQWV2Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFyQnBDLFNBQVM7K0JBQ0MsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsYUFDekI7d0JBQ1Y7NEJBQ0MsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUM7NEJBQ3ZELEtBQUssRUFBRSxJQUFJO3lCQUNYO3dCQUNEOzRCQUNDLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLDBCQUEwQjs0QkFDckMsS0FBSyxFQUFFLElBQUk7eUJBQ1g7d0JBQ0QscUJBQXFCO3FCQUNyQjs7MEJBNkJDLE1BQU07MkJBQUMsU0FBUzs2R0ExQlQsR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRm9ybVN0eWxlLCBnZXRMb2NhbGVEYXlOYW1lcywgZ2V0TG9jYWxlRmlyc3REYXlPZldlZWssIFRyYW5zbGF0aW9uV2lkdGggfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbnB1dCwgTE9DQUxFX0lELCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQUx1RGF0ZUFkYXB0ZXIsIEVMdURhdGVHcmFudWxhcml0eSB9IGZyb20gJ0BsdWNjYS1mcm9udC9uZy9jb3JlJztcclxuaW1wb3J0IHsgQUx1SW5wdXQgfSBmcm9tICdAbHVjY2EtZnJvbnQvbmcvaW5wdXQnO1xyXG5pbXBvcnQgeyBMdUNhbGVuZGFySXRlbUZhY3RvcnkgfSBmcm9tICcuL2NhbGVuZGFyLWl0ZW0uZmFjdG9yeSc7XHJcbmltcG9ydCB7IElDYWxlbmRhckl0ZW0gfSBmcm9tICcuL2NhbGVuZGFyLWl0ZW0uaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbHUtY2FsZW5kYXInLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vY2FsZW5kYXItaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgQ29tbW9uTW9kdWxlXSxcclxuXHRwcm92aWRlcnM6IFtcclxuXHRcdHtcclxuXHRcdFx0cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEx1Q2FsZW5kYXJJbnB1dENvbXBvbmVudCksXHJcblx0XHRcdG11bHRpOiB0cnVlLFxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0cHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IEx1Q2FsZW5kYXJJbnB1dENvbXBvbmVudCxcclxuXHRcdFx0bXVsdGk6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0THVDYWxlbmRhckl0ZW1GYWN0b3J5LFxyXG5cdF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMdUNhbGVuZGFySW5wdXRDb21wb25lbnQ8RD4gZXh0ZW5kcyBBTHVJbnB1dDxEPiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIFZhbGlkYXRvciB7XHJcblx0QElucHV0KCkgbWluPzogRDtcclxuXHRASW5wdXQoKSBtYXg/OiBEO1xyXG5cdEBJbnB1dCgpIGdyYW51bGFyaXR5OiBFTHVEYXRlR3JhbnVsYXJpdHkgPSBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5O1xyXG5cdEBJbnB1dCgpIHN0YXJ0T246IEQgPSB0aGlzLl9hZGFwdGVyLmZvcmdlVG9kYXkoKTtcclxuXHJcblx0dmlld0dyYW51bGFyaXR5OiBFTHVEYXRlR3JhbnVsYXJpdHk7XHJcblx0aGVhZGVyOiBJQ2FsZW5kYXJJdGVtPEQ+O1xyXG5cdGl0ZW1zOiBJQ2FsZW5kYXJJdGVtPEQ+W10gPSBbXTtcclxuXHRnZXQgbW9kKCkge1xyXG5cdFx0c3dpdGNoICh0aGlzLnZpZXdHcmFudWxhcml0eSkge1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS55ZWFyOlxyXG5cdFx0XHRcdHJldHVybiAnbW9kLXllYXJseVZpZXcnO1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5tb250aDpcclxuXHRcdFx0XHRyZXR1cm4gJ21vZC1tb250aGx5Vmlldyc7XHJcblx0XHRcdGNhc2UgRUx1RGF0ZUdyYW51bGFyaXR5LmRheTpcclxuXHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRyZXR1cm4gJ21vZC1kYWlseVZpZXcnO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gZGFpbHkgdmlld1xyXG5cdGxhYmVsczogc3RyaW5nW10gPSBbXTtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0XHRfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcblx0XHRfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHRcdEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyxcclxuXHRcdHByaXZhdGUgX2ZhY3Rvcnk6IEx1Q2FsZW5kYXJJdGVtRmFjdG9yeTxEPixcclxuXHRcdHByaXZhdGUgX2FkYXB0ZXI6IEFMdURhdGVBZGFwdGVyPEQ+LFxyXG5cdCkge1xyXG5cdFx0c3VwZXIoX2NoYW5nZURldGVjdG9yUmVmLCBfZWxlbWVudFJlZiwgX3JlbmRlcmVyKTtcclxuXHR9XHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLnZpZXdHcmFudWxhcml0eSA9IHRoaXMuZ3JhbnVsYXJpdHk7XHJcblx0XHR0aGlzLmluaXREYXlMYWJlbHMoKTtcclxuXHR9XHJcblx0b3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZT86IEQpIHtcclxuXHRcdGNvbnN0IGRhdGUgPSB2YWx1ZSAmJiB0aGlzLl9hZGFwdGVyLmlzVmFsaWQodmFsdWUpID8gdGhpcy5fYWRhcHRlci5jbG9uZSh2YWx1ZSkgOiB0aGlzLnN0YXJ0T247XHJcblx0XHR0aGlzLmhlYWRlciA9IHRoaXMuX2ZhY3RvcnkuZm9yZ2VNb250aChkYXRlKTtcclxuXHRcdHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xyXG5cdH1cclxuXHRpbml0RGF5TGFiZWxzKCkge1xyXG5cdFx0dGhpcy5sYWJlbHMgPSBbLi4uZ2V0TG9jYWxlRGF5TmFtZXModGhpcy5fbG9jYWxlLCBGb3JtU3R5bGUuU3RhbmRhbG9uZSwgVHJhbnNsYXRpb25XaWR0aC5BYmJyZXZpYXRlZCldO1xyXG5cdFx0aWYgKGdldExvY2FsZUZpcnN0RGF5T2ZXZWVrKHRoaXMuX2xvY2FsZSkgPT09IDEpIHtcclxuXHRcdFx0dGhpcy5sYWJlbHMucHVzaCh0aGlzLmxhYmVscy5zaGlmdCgpKTtcclxuXHRcdH1cclxuXHR9XHJcblx0cHJvdGVjdGVkIHJlbmRlcigpIHtcclxuXHRcdHN3aXRjaCAodGhpcy52aWV3R3JhbnVsYXJpdHkpIHtcclxuXHRcdFx0Y2FzZSBFTHVEYXRlR3JhbnVsYXJpdHkueWVhcjpcclxuXHRcdFx0XHR0aGlzLnJlbmRlclllYXJseVZpZXcoKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGg6XHJcblx0XHRcdFx0dGhpcy5yZW5kZXJNb250aGx5VmlldygpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5kYXk6XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0dGhpcy5yZW5kZXJEYWlseVZpZXcoKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCByZW5kZXJEYWlseVZpZXcobW9udGg6IEQgPSB0aGlzLmhlYWRlci5kYXRlKSB7XHJcblx0XHR0aGlzLml0ZW1zID0gW107XHJcblx0XHRjb25zdCBzdGFydCA9IHRoaXMuX2FkYXB0ZXIuZm9yZ2UodGhpcy5fYWRhcHRlci5nZXRZZWFyKG1vbnRoKSwgdGhpcy5fYWRhcHRlci5nZXRNb250aChtb250aCksIDEpO1xyXG5cdFx0bGV0IGluZGV4ID0gMDtcclxuXHRcdGNvbnN0IGlzRmlyc3REYXlPZldlZWsgPSB0aGlzLl9hZGFwdGVyLmdldERheShzdGFydCkgPT09IGdldExvY2FsZUZpcnN0RGF5T2ZXZWVrKHRoaXMuX2xvY2FsZSk7XHJcblx0XHR0aGlzLmhlYWRlciA9IHRoaXMuX2ZhY3RvcnkuZm9yZ2VNb250aChtb250aCwgJ01NTU0geScpO1xyXG5cdFx0aWYgKCFpc0ZpcnN0RGF5T2ZXZWVrKSB7XHJcblx0XHRcdGNvbnN0IG9mZnNldCA9ICh0aGlzLl9hZGFwdGVyLmdldERheShzdGFydCkgLSBnZXRMb2NhbGVGaXJzdERheU9mV2Vlayh0aGlzLl9sb2NhbGUpICsgNykgJSA3O1xyXG5cdFx0XHRpbmRleCA9IC0xICogb2Zmc2V0O1xyXG5cdFx0fVxyXG5cdFx0Ly8gVE9ET1xyXG5cdFx0bGV0IGlzRkRPVyA9IGZhbHNlO1xyXG5cdFx0bGV0IGlzTmV4dE1vbnRoID0gZmFsc2U7XHJcblx0XHRkbyB7XHJcblx0XHRcdGNvbnN0IGQgPSB0aGlzLl9hZGFwdGVyLmFkZChzdGFydCwgaW5kZXgrKywgRUx1RGF0ZUdyYW51bGFyaXR5LmRheSk7XHJcblx0XHRcdGNvbnN0IGRheSA9IHRoaXMuX2ZhY3RvcnkuZm9yZ2VEYXkoZCk7XHJcblx0XHRcdGlzTmV4dE1vbnRoID0gdGhpcy5fYWRhcHRlci5jb21wYXJlKGQsIG1vbnRoLCBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGgpID4gMDtcclxuXHRcdFx0aXNGRE9XID0gdGhpcy5fYWRhcHRlci5nZXREYXkoZCkgPT09IGdldExvY2FsZUZpcnN0RGF5T2ZXZWVrKHRoaXMuX2xvY2FsZSk7XHJcblx0XHRcdHRoaXMuaXRlbXMucHVzaChkYXkpO1xyXG5cdFx0fSB3aGlsZSAoIWlzRkRPVyB8fCAhaXNOZXh0TW9udGgpO1xyXG5cdFx0dGhpcy5hcHBseURhaWx5TW9kcygpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIHJlbmRlck1vbnRobHlWaWV3KHllYXI6IEQgPSB0aGlzLmhlYWRlci5kYXRlKSB7XHJcblx0XHR0aGlzLmhlYWRlciA9IHRoaXMuX2ZhY3RvcnkuZm9yZ2VZZWFyKHllYXIpO1xyXG5cdFx0dGhpcy5pdGVtcyA9IFsuLi5BcnJheSgxMikua2V5cygpXS5tYXAoKGkpID0+IHtcclxuXHRcdFx0Y29uc3QgZCA9IHRoaXMuX2FkYXB0ZXIuZm9yZ2UodGhpcy5fYWRhcHRlci5nZXRZZWFyKHllYXIpLCBpICsgMSwgMSk7XHJcblx0XHRcdHJldHVybiB0aGlzLl9mYWN0b3J5LmZvcmdlTW9udGgoZCk7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuYXBwbHlNb250aGx5TW9kcygpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIHJlbmRlclllYXJseVZpZXcoZGVjYWRlOiBEID0gdGhpcy5oZWFkZXIuZGF0ZSkge1xyXG5cdFx0Y29uc3QgeWVhciA9IE1hdGguZmxvb3IodGhpcy5fYWRhcHRlci5nZXRZZWFyKGRlY2FkZSkgLyAxMCkgKiAxMDtcclxuXHRcdGNvbnN0IGQgPSB0aGlzLl9hZGFwdGVyLmZvcmdlKHllYXIsIDEsIDEpO1xyXG5cdFx0dGhpcy5oZWFkZXIgPSB0aGlzLl9mYWN0b3J5LmZvcmdlRGVjYWRlKGQpO1xyXG5cdFx0dGhpcy5pdGVtcyA9IFsuLi5BcnJheSgxMCkua2V5cygpXS5tYXAoKGkpID0+IHtcclxuXHRcdFx0Y29uc3QgeSA9IHRoaXMuX2FkYXB0ZXIuZm9yZ2UoeWVhciArIGksIDEsIDEpO1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5fZmFjdG9yeS5mb3JnZVllYXIoeSk7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuYXBwbHlZZWFybHlNb2RzKCk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgYXBwbHlEYWlseU1vZHMoKSB7XHJcblx0XHRjb25zdCBtb250aCA9IHRoaXMuaGVhZGVyLmRhdGU7XHJcblx0XHRjb25zdCB0b2RheSA9IHRoaXMuX2FkYXB0ZXIuZm9yZ2VUb2RheSgpO1xyXG5cdFx0Y29uc3QgbWluID0gdGhpcy5taW4gJiYgdGhpcy5fYWRhcHRlci5pc1ZhbGlkKHRoaXMubWluKSA/IHRoaXMubWluIDogdW5kZWZpbmVkO1xyXG5cdFx0Y29uc3QgbWF4ID0gdGhpcy5tYXggJiYgdGhpcy5fYWRhcHRlci5pc1ZhbGlkKHRoaXMubWF4KSA/IHRoaXMubWF4IDogdW5kZWZpbmVkO1xyXG5cdFx0dGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcblx0XHRcdGNvbnN0IGRheSA9IGl0ZW0uZGF0ZTtcclxuXHRcdFx0aWYgKHRoaXMuX2FkYXB0ZXIuY29tcGFyZShkYXksIG1vbnRoLCBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGgpIDwgMCkge1xyXG5cdFx0XHRcdGl0ZW0ubW9kcy5wdXNoKCdpcy1wcmV2aW91c01vbnRoJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMuX2FkYXB0ZXIuY29tcGFyZShkYXksIG1vbnRoLCBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGgpID4gMCkge1xyXG5cdFx0XHRcdGl0ZW0ubW9kcy5wdXNoKCdpcy1uZXh0TW9udGgnKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAodGhpcy5fYWRhcHRlci5jb21wYXJlKGRheSwgdG9kYXksIEVMdURhdGVHcmFudWxhcml0eS5kYXkpID09PSAwKSB7XHJcblx0XHRcdFx0aXRlbS5tb2RzLnB1c2goJ2lzLXRvZGF5Jyk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMudmFsdWUgJiYgdGhpcy5fYWRhcHRlci5pc1ZhbGlkKHRoaXMudmFsdWUpICYmIHRoaXMuX2FkYXB0ZXIuY29tcGFyZShkYXksIHRoaXMudmFsdWUsIEVMdURhdGVHcmFudWxhcml0eS5kYXkpID09PSAwKSB7XHJcblx0XHRcdFx0aXRlbS5tb2RzLnB1c2goJ2lzLWFjdGl2ZScpO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChtaW4gJiYgdGhpcy5fYWRhcHRlci5jb21wYXJlKGRheSwgbWluLCBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5KSA8IDApIHtcclxuXHRcdFx0XHRpdGVtLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChtYXggJiYgdGhpcy5fYWRhcHRlci5jb21wYXJlKGRheSwgbWF4LCBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5KSA+IDApIHtcclxuXHRcdFx0XHRpdGVtLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBhcHBseU1vbnRobHlNb2RzKCkge1xyXG5cdFx0Y29uc3QgdG9kYXkgPSB0aGlzLl9hZGFwdGVyLmZvcmdlVG9kYXkoKTtcclxuXHRcdGNvbnN0IG1pbiA9IHRoaXMubWluICYmIHRoaXMuX2FkYXB0ZXIuaXNWYWxpZCh0aGlzLm1pbikgPyB0aGlzLm1pbiA6IHVuZGVmaW5lZDtcclxuXHRcdGNvbnN0IG1heCA9IHRoaXMubWF4ICYmIHRoaXMuX2FkYXB0ZXIuaXNWYWxpZCh0aGlzLm1heCkgPyB0aGlzLm1heCA6IHVuZGVmaW5lZDtcclxuXHRcdHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG5cdFx0XHRjb25zdCBtb250aCA9IGl0ZW0uZGF0ZTtcclxuXHRcdFx0aWYgKHRoaXMuX2FkYXB0ZXIuY29tcGFyZShtb250aCwgdG9kYXksIEVMdURhdGVHcmFudWxhcml0eS5tb250aCkgPT09IDApIHtcclxuXHRcdFx0XHRpdGVtLm1vZHMucHVzaCgnaXMtdG9kYXknKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAodGhpcy52YWx1ZSAmJiB0aGlzLl9hZGFwdGVyLmlzVmFsaWQodGhpcy52YWx1ZSkgJiYgdGhpcy5fYWRhcHRlci5jb21wYXJlKG1vbnRoLCB0aGlzLnZhbHVlLCBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGgpID09PSAwKSB7XHJcblx0XHRcdFx0aXRlbS5tb2RzLnB1c2goJ2lzLWFjdGl2ZScpO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChtaW4gJiYgdGhpcy5fYWRhcHRlci5jb21wYXJlKG1vbnRoLCBtaW4sIEVMdURhdGVHcmFudWxhcml0eS5tb250aCkgPCAwKSB7XHJcblx0XHRcdFx0aXRlbS5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAobWF4ICYmIHRoaXMuX2FkYXB0ZXIuY29tcGFyZShtb250aCwgbWF4LCBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGgpID4gMCkge1xyXG5cdFx0XHRcdGl0ZW0uaXNEaXNhYmxlZCA9IHRydWU7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGFwcGx5WWVhcmx5TW9kcygpIHtcclxuXHRcdGNvbnN0IHRvZGF5ID0gdGhpcy5fYWRhcHRlci5mb3JnZVRvZGF5KCk7XHJcblx0XHRjb25zdCBtaW4gPSB0aGlzLm1pbiAmJiB0aGlzLl9hZGFwdGVyLmlzVmFsaWQodGhpcy5taW4pID8gdGhpcy5taW4gOiB1bmRlZmluZWQ7XHJcblx0XHRjb25zdCBtYXggPSB0aGlzLm1heCAmJiB0aGlzLl9hZGFwdGVyLmlzVmFsaWQodGhpcy5tYXgpID8gdGhpcy5tYXggOiB1bmRlZmluZWQ7XHJcblx0XHR0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcclxuXHRcdFx0Y29uc3QgeWVhciA9IGl0ZW0uZGF0ZTtcclxuXHRcdFx0aWYgKHRoaXMuX2FkYXB0ZXIuY29tcGFyZSh5ZWFyLCB0b2RheSwgRUx1RGF0ZUdyYW51bGFyaXR5LnllYXIpID09PSAwKSB7XHJcblx0XHRcdFx0aXRlbS5tb2RzLnB1c2goJ2lzLXRvZGF5Jyk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMudmFsdWUgJiYgdGhpcy5fYWRhcHRlci5pc1ZhbGlkKHRoaXMudmFsdWUpICYmIHRoaXMuX2FkYXB0ZXIuY29tcGFyZSh5ZWFyLCB0aGlzLnZhbHVlLCBFTHVEYXRlR3JhbnVsYXJpdHkueWVhcikgPT09IDApIHtcclxuXHRcdFx0XHRpdGVtLm1vZHMucHVzaCgnaXMtYWN0aXZlJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKG1pbiAmJiB0aGlzLl9hZGFwdGVyLmNvbXBhcmUoeWVhciwgbWluLCBFTHVEYXRlR3JhbnVsYXJpdHkueWVhcikgPCAwKSB7XHJcblx0XHRcdFx0aXRlbS5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAobWF4ICYmIHRoaXMuX2FkYXB0ZXIuY29tcGFyZSh5ZWFyLCBtYXgsIEVMdURhdGVHcmFudWxhcml0eS55ZWFyKSA+IDApIHtcclxuXHRcdFx0XHRpdGVtLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHNlbGVjdChpdGVtOiBJQ2FsZW5kYXJJdGVtPEQ+KSB7XHJcblx0XHRzd2l0Y2ggKHRoaXMudmlld0dyYW51bGFyaXR5KSB7XHJcblx0XHRcdGNhc2UgRUx1RGF0ZUdyYW51bGFyaXR5LnllYXI6XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RZZWFyKGl0ZW0pO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5tb250aDpcclxuXHRcdFx0XHR0aGlzLnNlbGVjdE1vbnRoKGl0ZW0pO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5kYXk6XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0dGhpcy5zZWxlY3REYXkoaXRlbSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgc2VsZWN0RGF5KGl0ZW06IElDYWxlbmRhckl0ZW08RD4pIHtcclxuXHRcdGNvbnN0IHllYXIgPSB0aGlzLl9hZGFwdGVyLmdldFllYXIoaXRlbS5kYXRlKTtcclxuXHRcdGNvbnN0IG1vbnRoID0gdGhpcy5fYWRhcHRlci5nZXRNb250aChpdGVtLmRhdGUpO1xyXG5cdFx0Y29uc3QgZCA9IHRoaXMuX2FkYXB0ZXIuZm9yZ2UoeWVhciwgbW9udGgsIDEpO1xyXG5cdFx0dGhpcy5oZWFkZXIgPSB0aGlzLl9mYWN0b3J5LmZvcmdlTW9udGgoZCk7XHJcblx0XHR0aGlzLnNldFZhbHVlKGl0ZW0uZGF0ZSk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgc2VsZWN0TW9udGgoaXRlbTogSUNhbGVuZGFySXRlbTxEPikge1xyXG5cdFx0aWYgKHRoaXMuZ3JhbnVsYXJpdHkgPT09IEVMdURhdGVHcmFudWxhcml0eS5tb250aCkge1xyXG5cdFx0XHR0aGlzLnNldFZhbHVlKGl0ZW0uZGF0ZSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmhlYWRlciA9IGl0ZW07XHJcblx0XHRcdHRoaXMudmlld0dyYW51bGFyaXR5ID0gRUx1RGF0ZUdyYW51bGFyaXR5LmRheTtcclxuXHRcdFx0dGhpcy5yZW5kZXIoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBzZWxlY3RZZWFyKGl0ZW06IElDYWxlbmRhckl0ZW08RD4pIHtcclxuXHRcdGlmICh0aGlzLmdyYW51bGFyaXR5ID09PSBFTHVEYXRlR3JhbnVsYXJpdHkueWVhcikge1xyXG5cdFx0XHR0aGlzLnNldFZhbHVlKGl0ZW0uZGF0ZSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmhlYWRlciA9IGl0ZW07XHJcblx0XHRcdHRoaXMudmlld0dyYW51bGFyaXR5ID0gRUx1RGF0ZUdyYW51bGFyaXR5Lm1vbnRoO1xyXG5cdFx0XHR0aGlzLnJlbmRlcigpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJldmlvdXMoKSB7XHJcblx0XHRzd2l0Y2ggKHRoaXMudmlld0dyYW51bGFyaXR5KSB7XHJcblx0XHRcdGNhc2UgRUx1RGF0ZUdyYW51bGFyaXR5LnllYXI6XHJcblx0XHRcdFx0dGhpcy5wcmV2aW91c0RlY2FkZSgpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5tb250aDpcclxuXHRcdFx0XHR0aGlzLnByZXZpb3VzWWVhcigpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5kYXk6XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0dGhpcy5wcmV2aW91c01vbnRoKCk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0XHR0aGlzLnJlbmRlcigpO1xyXG5cdH1cclxuXHJcblx0bmV4dCgpIHtcclxuXHRcdHN3aXRjaCAodGhpcy52aWV3R3JhbnVsYXJpdHkpIHtcclxuXHRcdFx0Y2FzZSBFTHVEYXRlR3JhbnVsYXJpdHkueWVhcjpcclxuXHRcdFx0XHR0aGlzLm5leHREZWNhZGUoKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGg6XHJcblx0XHRcdFx0dGhpcy5uZXh0WWVhcigpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5kYXk6XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0dGhpcy5uZXh0TW9udGgoKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHRcdHRoaXMucmVuZGVyKCk7XHJcblx0fVxyXG5cclxuXHR0cmFja0J5KF9pZHgsIGl0ZW06IElDYWxlbmRhckl0ZW08RD4pIHtcclxuXHRcdHJldHVybiBpdGVtLmlkO1xyXG5cdH1cclxuXHJcblx0aW5jcmVhc2VHcmFudWxhcml0eSgpIHtcclxuXHRcdGlmICh0aGlzLmhlYWRlci5ncmFudWxhcml0eSAhPT0gRUx1RGF0ZUdyYW51bGFyaXR5LmRlY2FkZSkge1xyXG5cdFx0XHR0aGlzLnZpZXdHcmFudWxhcml0eSA9IHRoaXMuaGVhZGVyLmdyYW51bGFyaXR5O1xyXG5cdFx0XHR0aGlzLnJlbmRlcigpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIG5leHRNb250aCgpIHtcclxuXHRcdGNvbnN0IGQgPSB0aGlzLl9hZGFwdGVyLmFkZCh0aGlzLmhlYWRlci5kYXRlLCAxLCBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGgpO1xyXG5cdFx0dGhpcy5oZWFkZXIgPSB0aGlzLl9mYWN0b3J5LmZvcmdlTW9udGgoZCk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgbmV4dFllYXIoKSB7XHJcblx0XHRjb25zdCBkID0gdGhpcy5fYWRhcHRlci5hZGQodGhpcy5oZWFkZXIuZGF0ZSwgMSwgRUx1RGF0ZUdyYW51bGFyaXR5LnllYXIpO1xyXG5cdFx0dGhpcy5oZWFkZXIgPSB0aGlzLl9mYWN0b3J5LmZvcmdlWWVhcihkKTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBuZXh0RGVjYWRlKCkge1xyXG5cdFx0Y29uc3QgZCA9IHRoaXMuX2FkYXB0ZXIuYWRkKHRoaXMuaGVhZGVyLmRhdGUsIDEsIEVMdURhdGVHcmFudWxhcml0eS5kZWNhZGUpO1xyXG5cdFx0dGhpcy5oZWFkZXIgPSB0aGlzLl9mYWN0b3J5LmZvcmdlRGVjYWRlKGQpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIHByZXZpb3VzTW9udGgoKSB7XHJcblx0XHRjb25zdCBkID0gdGhpcy5fYWRhcHRlci5hZGQodGhpcy5oZWFkZXIuZGF0ZSwgLTEsIEVMdURhdGVHcmFudWxhcml0eS5tb250aCk7XHJcblx0XHR0aGlzLmhlYWRlciA9IHRoaXMuX2ZhY3RvcnkuZm9yZ2VNb250aChkKTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBwcmV2aW91c1llYXIoKSB7XHJcblx0XHRjb25zdCBkID0gdGhpcy5fYWRhcHRlci5hZGQodGhpcy5oZWFkZXIuZGF0ZSwgLTEsIEVMdURhdGVHcmFudWxhcml0eS55ZWFyKTtcclxuXHRcdHRoaXMuaGVhZGVyID0gdGhpcy5fZmFjdG9yeS5mb3JnZVllYXIoZCk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgcHJldmlvdXNEZWNhZGUoKSB7XHJcblx0XHRjb25zdCBkID0gdGhpcy5fYWRhcHRlci5hZGQodGhpcy5oZWFkZXIuZGF0ZSwgLTEsIEVMdURhdGVHcmFudWxhcml0eS5kZWNhZGUpO1xyXG5cdFx0dGhpcy5oZWFkZXIgPSB0aGlzLl9mYWN0b3J5LmZvcmdlRGVjYWRlKGQpO1xyXG5cdH1cclxuXHJcblx0dmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG5cdFx0Y29uc3QgZCA9IGNvbnRyb2wudmFsdWUgYXMgRDtcclxuXHRcdGlmICghZCkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHRcdGlmICghdGhpcy5fYWRhcHRlci5pc1ZhbGlkKGQpKSB7XHJcblx0XHRcdHJldHVybiB7IGRhdGU6IHRydWUgfTtcclxuXHRcdH1cclxuXHRcdGlmICghIXRoaXMubWluICYmIHRoaXMuX2FkYXB0ZXIuaXNWYWxpZCh0aGlzLm1pbikgJiYgdGhpcy5fYWRhcHRlci5jb21wYXJlKHRoaXMubWluLCBkLCBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5KSA+IDApIHtcclxuXHRcdFx0cmV0dXJuIHsgbWluOiB0cnVlIH07XHJcblx0XHR9XHJcblx0XHRpZiAoISF0aGlzLm1heCAmJiB0aGlzLl9hZGFwdGVyLmlzVmFsaWQodGhpcy5tYXgpICYmIHRoaXMuX2FkYXB0ZXIuY29tcGFyZSh0aGlzLm1heCwgZCwgRUx1RGF0ZUdyYW51bGFyaXR5LmRheSkgPCAwKSB7XHJcblx0XHRcdHJldHVybiB7IG1heDogdHJ1ZSB9O1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG59XHJcbiIsIjxzZWN0aW9uIGNsYXNzPVwiY2FsZW5kYXJcIj5cclxuXHQ8aGVhZGVyIGNsYXNzPVwiY2FsZW5kYXItaGVhZGVyXCI+XHJcblx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImFjdGlvbkljb24gbW9kLVNcIiAoY2xpY2spPVwicHJldmlvdXMoKVwiPlxyXG5cdFx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImx1Y2NhLWljb24gaWNvbi1hcnJvd1dlc3RcIj48L3NwYW4+XHJcblx0XHRcdDxzcGFuIGNsYXNzPVwidS1tYXNrXCI+UHJldmlvdXM8L3NwYW4+XHJcblx0XHQ8L2J1dHRvbj5cclxuXHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2FsZW5kYXItaGVhZGVyLWRhdGVcIiAoY2xpY2spPVwiaW5jcmVhc2VHcmFudWxhcml0eSgpXCI+e3sgaGVhZGVyLmxhYmVsIH19PC9idXR0b24+XHJcblx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImFjdGlvbkljb24gbW9kLVNcIiAoY2xpY2spPVwibmV4dCgpXCI+XHJcblx0XHRcdDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwibHVjY2EtaWNvbiBpY29uLWFycm93RWFzdFwiPjwvc3Bhbj5cclxuXHRcdFx0PHNwYW4gY2xhc3M9XCJ1LW1hc2tcIj5OZXh0PC9zcGFuPlxyXG5cdFx0PC9idXR0b24+XHJcblx0PC9oZWFkZXI+XHJcblx0PHNlY3Rpb24gY2xhc3M9XCJjYWxlbmRhci1sYWJlbHNcIiBbbmdDbGFzc109XCJtb2RcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJjYWxlbmRhci1sYWJlbHMtaXRlbVwiICpuZ0Zvcj1cImxldCBsYWJlbCBvZiBsYWJlbHNcIj57eyBsYWJlbCB9fTwvZGl2PlxyXG5cdDwvc2VjdGlvbj5cclxuXHQ8c2VjdGlvbiBjbGFzcz1cImNhbGVuZGFyLWdyaWRcIiBbbmdDbGFzc109XCJtb2RcIj5cclxuXHRcdDxidXR0b25cclxuXHRcdFx0dHlwZT1cImJ1dHRvblwiXHJcblx0XHRcdCpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyB0cmFja0J5OiB0cmFja0J5XCJcclxuXHRcdFx0Y2xhc3M9XCJjYWxlbmRhci1ncmlkLWl0ZW1cIlxyXG5cdFx0XHRbbmdDbGFzc109XCJpdGVtLm1vZHNcIlxyXG5cdFx0XHRbZGlzYWJsZWRdPVwiaXRlbS5pc0Rpc2FibGVkXCJcclxuXHRcdFx0KGNsaWNrKT1cInNlbGVjdChpdGVtKVwiXHJcblx0XHQ+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ncmlkLWl0ZW0tY29udGVudFwiPnt7IGl0ZW0ubGFiZWwgfX08L2Rpdj5cclxuXHRcdDwvYnV0dG9uPlxyXG5cdDwvc2VjdGlvbj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
@@ -417,7 +417,7 @@ class LuCalendarInputComponent extends ALuInput {
417
417
  multi: true,
418
418
  },
419
419
  LuCalendarItemFactory,
420
- ], usesInheritance: true, ngImport: i0, template: "<section class=\"calendar\">\r\n\t<header class=\"calendar-header\">\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"previous()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowWest\"></span>\r\n\t\t\t<span class=\"u-mask\">Previous</span>\r\n\t\t</button>\r\n\t\t<button type=\"button\" class=\"calendar-header-date\" (click)=\"increaseGranularity()\">{{ header.label }}</button>\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"next()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowEast\"></span>\r\n\t\t\t<span class=\"u-mask\">Next</span>\r\n\t\t</button>\r\n\t</header>\r\n\t<section class=\"calendar-labels\" [ngClass]=\"mod\">\r\n\t\t<div class=\"calendar-labels-item\" *ngFor=\"let label of labels\">{{ label }}</div>\r\n\t</section>\r\n\t<section class=\"calendar-grid\" [ngClass]=\"mod\">\r\n\t\t<button\r\n\t\t\ttype=\"button\"\r\n\t\t\t*ngFor=\"let item of items; trackBy: trackBy\"\r\n\t\t\tclass=\"calendar-grid-item\"\r\n\t\t\t[ngClass]=\"item.mods\"\r\n\t\t\t[disabled]=\"item.isDisabled\"\r\n\t\t\t(click)=\"select(item)\"\r\n\t\t>\r\n\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\r\n\t\t</button>\r\n\t</section>\r\n</section>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.calendar{background-color:var(--colors-white-color);width:var(--components-calendar-width)}:host-context(.mod-block) .calendar{width:auto;max-width:var(--components-calendar-width)}.calendar-header{display:flex;align-items:center;justify-content:space-between}.calendar-header-date{font-weight:600;color:var(--palettes-grey-900);font-size:var(--sizes-L-fontSize);line-height:var(--sizes-L-lineHeight);padding:0;background:transparent;border:none;cursor:pointer}.calendar-header-date:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:4px}.calendar-labels{display:none}.calendar-labels.mod-dailyView{display:flex;align-items:center;flex-wrap:wrap;text-align:center;height:var(--components-calendar-day-size);font-size:var(--sizes-S-fontSize);color:var(--palettes-primary-700)}.calendar-labels.mod-dailyView .calendar-labels-item{width:var(--components-calendar-day-size)}.calendar-grid{display:flex;text-align:center;align-self:stretch;flex-wrap:wrap;width:var(--components-calendar-width)}.calendar-grid.mod-dailyView .calendar-grid-item{width:var(--components-calendar-day-size)}.calendar-grid.mod-monthlyView .calendar-grid-item-content,.calendar-grid.mod-yearlyView .calendar-grid-item-content{width:5.83rem}.calendar-grid-item{height:var(--components-calendar-day-size);border:none;cursor:pointer;background:transparent;position:relative;padding:0;outline:none;color:var(--palettes-grey-800)}.calendar-grid-item.is-previousMonth,.calendar-grid-item.is-nextMonth,.calendar-grid-item.is-disabled{color:var(--palettes-grey-500)}.calendar-grid-item.is-today{color:var(--palettes-primary-700);font-weight:600}.calendar-grid-item.is-today:after{content:\"\";position:absolute;bottom:var(--spacings-XXS);left:var(--spacings-XS);right:var(--spacings-XS);height:2px;background:var(--palettes-primary-700);z-index:1}.calendar-grid-item:hover .calendar-grid-item-content{background:var(--palettes-grey-50)}.calendar-grid-item:active .calendar-grid-item-content{background:var(--palettes-grey-100)}.calendar-grid-item:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:var(--commons-borderRadius-L);z-index:1}.calendar-grid-item.is-active .calendar-grid-item-content{background:var(--palettes-primary-700);color:var(--palettes-primary-text)}.calendar-grid-item.is-active.is-today:after{background:white!important;transition:background-color var(--commons-animations-durations-fast)}.calendar-grid-item.is-disabled:hover .calendar-grid-item-content{pointer-events:none;background-color:#fff}.calendar-grid-item-content{position:relative;height:var(--components-calendar-day-size);width:var(--components-calendar-day-size);line-height:var(--components-calendar-day-size);border-radius:var(--commons-borderRadius-L);transition-duration:var(--commons-animations-durations-fast);transition-property:background-color,color}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
420
+ ], usesInheritance: true, ngImport: i0, template: "<section class=\"calendar\">\r\n\t<header class=\"calendar-header\">\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"previous()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowWest\"></span>\r\n\t\t\t<span class=\"u-mask\">Previous</span>\r\n\t\t</button>\r\n\t\t<button type=\"button\" class=\"calendar-header-date\" (click)=\"increaseGranularity()\">{{ header.label }}</button>\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"next()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowEast\"></span>\r\n\t\t\t<span class=\"u-mask\">Next</span>\r\n\t\t</button>\r\n\t</header>\r\n\t<section class=\"calendar-labels\" [ngClass]=\"mod\">\r\n\t\t<div class=\"calendar-labels-item\" *ngFor=\"let label of labels\">{{ label }}</div>\r\n\t</section>\r\n\t<section class=\"calendar-grid\" [ngClass]=\"mod\">\r\n\t\t<button\r\n\t\t\ttype=\"button\"\r\n\t\t\t*ngFor=\"let item of items; trackBy: trackBy\"\r\n\t\t\tclass=\"calendar-grid-item\"\r\n\t\t\t[ngClass]=\"item.mods\"\r\n\t\t\t[disabled]=\"item.isDisabled\"\r\n\t\t\t(click)=\"select(item)\"\r\n\t\t>\r\n\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\r\n\t\t</button>\r\n\t</section>\r\n</section>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.calendar{background-color:var(--colors-white-color);width:var(--components-calendar-width)}:host-context(.mod-block) .calendar{width:auto;max-width:var(--components-calendar-width)}.calendar-header{display:flex;align-items:center;justify-content:space-between}.calendar-header-date{font-weight:600;color:var(--palettes-grey-900);font-size:var(--sizes-L-fontSize);line-height:var(--sizes-L-lineHeight);padding:0;background:transparent;border:none;cursor:pointer}.calendar-header-date:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:4px}.calendar-labels{display:none}.calendar-labels.mod-dailyView{display:flex;align-items:center;flex-wrap:wrap;text-align:center;height:var(--components-calendar-day-size);font-size:var(--sizes-S-fontSize);color:var(--palettes-primary-700)}.calendar-labels.mod-dailyView .calendar-labels-item{width:var(--components-calendar-day-size)}.calendar-grid{display:flex;text-align:center;align-self:stretch;flex-wrap:wrap;width:var(--components-calendar-width)}.calendar-grid.mod-dailyView .calendar-grid-item{width:var(--components-calendar-day-size)}.calendar-grid.mod-monthlyView .calendar-grid-item-content,.calendar-grid.mod-yearlyView .calendar-grid-item-content{width:5.83rem}.calendar-grid-item{height:var(--components-calendar-day-size);border:none;cursor:pointer;background:transparent;position:relative;padding:0;outline:none;color:var(--palettes-grey-800)}.calendar-grid-item.is-previousMonth,.calendar-grid-item.is-nextMonth{color:var(--palettes-grey-500)}.calendar-grid-item.is-today{color:var(--palettes-primary-700);font-weight:600}.calendar-grid-item.is-today:after{content:\"\";position:absolute;bottom:var(--spacings-XXS);left:var(--spacings-XS);right:var(--spacings-XS);height:2px;background:var(--palettes-primary-700);z-index:1}.calendar-grid-item:hover .calendar-grid-item-content{background:var(--palettes-grey-50)}.calendar-grid-item:active .calendar-grid-item-content{background:var(--palettes-grey-100)}.calendar-grid-item:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:var(--commons-borderRadius-L);z-index:1}.calendar-grid-item.is-active .calendar-grid-item-content{background:var(--palettes-primary-700);color:var(--palettes-primary-text)}.calendar-grid-item.is-active.is-today:after{background:white!important;transition:background-color var(--commons-animations-durations-fast)}.calendar-grid-item.is-disabled,.calendar-grid-item[disabled]{color:var(--palettes-grey-500);pointer-events:none}.calendar-grid-item.is-disabled:hover .calendar-grid-item-content,.calendar-grid-item[disabled]:hover .calendar-grid-item-content{background-color:#fff}.calendar-grid-item-content{position:relative;height:var(--components-calendar-day-size);width:var(--components-calendar-day-size);line-height:var(--components-calendar-day-size);border-radius:var(--commons-borderRadius-L);transition-duration:var(--commons-animations-durations-fast);transition-property:background-color,color}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
421
421
  }
422
422
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuCalendarInputComponent, decorators: [{
423
423
  type: Component,
@@ -433,7 +433,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
433
433
  multi: true,
434
434
  },
435
435
  LuCalendarItemFactory,
436
- ], template: "<section class=\"calendar\">\r\n\t<header class=\"calendar-header\">\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"previous()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowWest\"></span>\r\n\t\t\t<span class=\"u-mask\">Previous</span>\r\n\t\t</button>\r\n\t\t<button type=\"button\" class=\"calendar-header-date\" (click)=\"increaseGranularity()\">{{ header.label }}</button>\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"next()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowEast\"></span>\r\n\t\t\t<span class=\"u-mask\">Next</span>\r\n\t\t</button>\r\n\t</header>\r\n\t<section class=\"calendar-labels\" [ngClass]=\"mod\">\r\n\t\t<div class=\"calendar-labels-item\" *ngFor=\"let label of labels\">{{ label }}</div>\r\n\t</section>\r\n\t<section class=\"calendar-grid\" [ngClass]=\"mod\">\r\n\t\t<button\r\n\t\t\ttype=\"button\"\r\n\t\t\t*ngFor=\"let item of items; trackBy: trackBy\"\r\n\t\t\tclass=\"calendar-grid-item\"\r\n\t\t\t[ngClass]=\"item.mods\"\r\n\t\t\t[disabled]=\"item.isDisabled\"\r\n\t\t\t(click)=\"select(item)\"\r\n\t\t>\r\n\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\r\n\t\t</button>\r\n\t</section>\r\n</section>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.calendar{background-color:var(--colors-white-color);width:var(--components-calendar-width)}:host-context(.mod-block) .calendar{width:auto;max-width:var(--components-calendar-width)}.calendar-header{display:flex;align-items:center;justify-content:space-between}.calendar-header-date{font-weight:600;color:var(--palettes-grey-900);font-size:var(--sizes-L-fontSize);line-height:var(--sizes-L-lineHeight);padding:0;background:transparent;border:none;cursor:pointer}.calendar-header-date:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:4px}.calendar-labels{display:none}.calendar-labels.mod-dailyView{display:flex;align-items:center;flex-wrap:wrap;text-align:center;height:var(--components-calendar-day-size);font-size:var(--sizes-S-fontSize);color:var(--palettes-primary-700)}.calendar-labels.mod-dailyView .calendar-labels-item{width:var(--components-calendar-day-size)}.calendar-grid{display:flex;text-align:center;align-self:stretch;flex-wrap:wrap;width:var(--components-calendar-width)}.calendar-grid.mod-dailyView .calendar-grid-item{width:var(--components-calendar-day-size)}.calendar-grid.mod-monthlyView .calendar-grid-item-content,.calendar-grid.mod-yearlyView .calendar-grid-item-content{width:5.83rem}.calendar-grid-item{height:var(--components-calendar-day-size);border:none;cursor:pointer;background:transparent;position:relative;padding:0;outline:none;color:var(--palettes-grey-800)}.calendar-grid-item.is-previousMonth,.calendar-grid-item.is-nextMonth,.calendar-grid-item.is-disabled{color:var(--palettes-grey-500)}.calendar-grid-item.is-today{color:var(--palettes-primary-700);font-weight:600}.calendar-grid-item.is-today:after{content:\"\";position:absolute;bottom:var(--spacings-XXS);left:var(--spacings-XS);right:var(--spacings-XS);height:2px;background:var(--palettes-primary-700);z-index:1}.calendar-grid-item:hover .calendar-grid-item-content{background:var(--palettes-grey-50)}.calendar-grid-item:active .calendar-grid-item-content{background:var(--palettes-grey-100)}.calendar-grid-item:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:var(--commons-borderRadius-L);z-index:1}.calendar-grid-item.is-active .calendar-grid-item-content{background:var(--palettes-primary-700);color:var(--palettes-primary-text)}.calendar-grid-item.is-active.is-today:after{background:white!important;transition:background-color var(--commons-animations-durations-fast)}.calendar-grid-item.is-disabled:hover .calendar-grid-item-content{pointer-events:none;background-color:#fff}.calendar-grid-item-content{position:relative;height:var(--components-calendar-day-size);width:var(--components-calendar-day-size);line-height:var(--components-calendar-day-size);border-radius:var(--commons-borderRadius-L);transition-duration:var(--commons-animations-durations-fast);transition-property:background-color,color}\n"] }]
436
+ ], template: "<section class=\"calendar\">\r\n\t<header class=\"calendar-header\">\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"previous()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowWest\"></span>\r\n\t\t\t<span class=\"u-mask\">Previous</span>\r\n\t\t</button>\r\n\t\t<button type=\"button\" class=\"calendar-header-date\" (click)=\"increaseGranularity()\">{{ header.label }}</button>\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"next()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowEast\"></span>\r\n\t\t\t<span class=\"u-mask\">Next</span>\r\n\t\t</button>\r\n\t</header>\r\n\t<section class=\"calendar-labels\" [ngClass]=\"mod\">\r\n\t\t<div class=\"calendar-labels-item\" *ngFor=\"let label of labels\">{{ label }}</div>\r\n\t</section>\r\n\t<section class=\"calendar-grid\" [ngClass]=\"mod\">\r\n\t\t<button\r\n\t\t\ttype=\"button\"\r\n\t\t\t*ngFor=\"let item of items; trackBy: trackBy\"\r\n\t\t\tclass=\"calendar-grid-item\"\r\n\t\t\t[ngClass]=\"item.mods\"\r\n\t\t\t[disabled]=\"item.isDisabled\"\r\n\t\t\t(click)=\"select(item)\"\r\n\t\t>\r\n\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\r\n\t\t</button>\r\n\t</section>\r\n</section>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.calendar{background-color:var(--colors-white-color);width:var(--components-calendar-width)}:host-context(.mod-block) .calendar{width:auto;max-width:var(--components-calendar-width)}.calendar-header{display:flex;align-items:center;justify-content:space-between}.calendar-header-date{font-weight:600;color:var(--palettes-grey-900);font-size:var(--sizes-L-fontSize);line-height:var(--sizes-L-lineHeight);padding:0;background:transparent;border:none;cursor:pointer}.calendar-header-date:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:4px}.calendar-labels{display:none}.calendar-labels.mod-dailyView{display:flex;align-items:center;flex-wrap:wrap;text-align:center;height:var(--components-calendar-day-size);font-size:var(--sizes-S-fontSize);color:var(--palettes-primary-700)}.calendar-labels.mod-dailyView .calendar-labels-item{width:var(--components-calendar-day-size)}.calendar-grid{display:flex;text-align:center;align-self:stretch;flex-wrap:wrap;width:var(--components-calendar-width)}.calendar-grid.mod-dailyView .calendar-grid-item{width:var(--components-calendar-day-size)}.calendar-grid.mod-monthlyView .calendar-grid-item-content,.calendar-grid.mod-yearlyView .calendar-grid-item-content{width:5.83rem}.calendar-grid-item{height:var(--components-calendar-day-size);border:none;cursor:pointer;background:transparent;position:relative;padding:0;outline:none;color:var(--palettes-grey-800)}.calendar-grid-item.is-previousMonth,.calendar-grid-item.is-nextMonth{color:var(--palettes-grey-500)}.calendar-grid-item.is-today{color:var(--palettes-primary-700);font-weight:600}.calendar-grid-item.is-today:after{content:\"\";position:absolute;bottom:var(--spacings-XXS);left:var(--spacings-XS);right:var(--spacings-XS);height:2px;background:var(--palettes-primary-700);z-index:1}.calendar-grid-item:hover .calendar-grid-item-content{background:var(--palettes-grey-50)}.calendar-grid-item:active .calendar-grid-item-content{background:var(--palettes-grey-100)}.calendar-grid-item:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:var(--commons-borderRadius-L);z-index:1}.calendar-grid-item.is-active .calendar-grid-item-content{background:var(--palettes-primary-700);color:var(--palettes-primary-text)}.calendar-grid-item.is-active.is-today:after{background:white!important;transition:background-color var(--commons-animations-durations-fast)}.calendar-grid-item.is-disabled,.calendar-grid-item[disabled]{color:var(--palettes-grey-500);pointer-events:none}.calendar-grid-item.is-disabled:hover .calendar-grid-item-content,.calendar-grid-item[disabled]:hover .calendar-grid-item-content{background-color:#fff}.calendar-grid-item-content{position:relative;height:var(--components-calendar-day-size);width:var(--components-calendar-day-size);line-height:var(--components-calendar-day-size);border-radius:var(--commons-borderRadius-L);transition-duration:var(--commons-animations-durations-fast);transition-property:background-color,color}\n"] }]
437
437
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
438
438
  type: Inject,
439
439
  args: [LOCALE_ID]
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-date.mjs","sources":["../../../packages/ng/date/src/lib/adapter/date-adapter.pipe.ts","../../../packages/ng/date/src/lib/adapter/date-adapter.module.ts","../../../packages/ng/date/src/lib/calendar/calendar-item.class.ts","../../../packages/ng/date/src/lib/calendar/calendar-item.factory.ts","../../../packages/ng/date/src/lib/calendar/calendar-input.component.ts","../../../packages/ng/date/src/lib/calendar/calendar-input.component.html","../../../packages/ng/date/src/lib/calendar/calendar-input.module.ts","../../../packages/ng/date/src/lib/input/date-input.translate.ts","../../../packages/ng/date/src/lib/input/date-input.directive.ts","../../../packages/ng/date/src/lib/input/date-input.module.ts","../../../packages/ng/date/src/lib/picker/date-picker.component.ts","../../../packages/ng/date/src/lib/picker/date-picker.component.html","../../../packages/ng/date/src/lib/picker/date-picker.module.ts","../../../packages/ng/date/src/lib/select/date-select-input.translate.ts","../../../packages/ng/date/src/lib/select/date-select-input.component.ts","../../../packages/ng/date/src/lib/select/date-select-input.component.html","../../../packages/ng/date/src/lib/select/date-select-input.module.ts","../../../packages/ng/date/src/lib/date.module.ts","../../../packages/ng/date/src/public-api.ts","../../../packages/ng/date/src/lucca-front-ng-date.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ALuDateAdapter } from '@lucca-front/ng/core';\r\n\r\n@Pipe({\r\n\tname: 'luDate',\r\n\tpure: true,\r\n\tstandalone: true,\r\n})\r\nexport class LuDateAdapterPipe<D> implements PipeTransform {\r\n\tconstructor(private _adapter: ALuDateAdapter<D>) {}\r\n\ttransform(d: D, format = 'mediumDate'): string {\r\n\t\tif (d && this._adapter.isValid(d)) {\r\n\t\t\treturn this._adapter.format(d, format);\r\n\t\t}\r\n\t\treturn '';\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { LuDateAdapterPipe } from './date-adapter.pipe';\r\n\r\n@NgModule({\r\n\timports: [LuDateAdapterPipe],\r\n\texports: [LuDateAdapterPipe],\r\n})\r\nexport class LuDateAdapterModule {}\r\n","import { ELuDateGranularity } from '@lucca-front/ng/core';\r\nimport { ICalendarItem } from './calendar-item.interface';\r\n\r\nexport abstract class ACalendarItem<D> implements ICalendarItem<D> {\r\n\tget id() {\r\n\t\treturn `${this.granularity}-${this.date.toString()}`;\r\n\t}\r\n\tdate: D;\r\n\tmods: string[] = [];\r\n\tisDisabled = false;\r\n\tlabel: string;\r\n\treadonly granularity: ELuDateGranularity;\r\n}\r\nexport class DayItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\r\n\toverride readonly granularity = ELuDateGranularity.day;\r\n\tconstructor(public override date: D, public override label: string) {\r\n\t\tsuper();\r\n\t}\r\n}\r\nexport class MonthItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\r\n\toverride readonly granularity = ELuDateGranularity.month;\r\n\tconstructor(public override date: D, public override label: string) {\r\n\t\tsuper();\r\n\t}\r\n}\r\nexport class YearItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\r\n\toverride readonly granularity = ELuDateGranularity.year;\r\n\tconstructor(public override date: D, public override label: string) {\r\n\t\tsuper();\r\n\t}\r\n}\r\nexport class DecadeItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\r\n\toverride readonly granularity = ELuDateGranularity.decade;\r\n\tconstructor(public override date: D, public override label: string) {\r\n\t\tsuper();\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ALuDateAdapter } from '@lucca-front/ng/core';\r\nimport { DayItem, DecadeItem, MonthItem, YearItem } from './calendar-item.class';\r\n\r\n@Injectable()\r\nexport class LuCalendarItemFactory<D> {\r\n\tconstructor(private _adapter: ALuDateAdapter<D>) {}\r\n\tforgeDay(d: D, format = 'd'): DayItem<D> {\r\n\t\tconst date = this._adapter.clone(d);\r\n\t\treturn new DayItem(date, this._adapter.format(date, format));\r\n\t}\r\n\tforgeMonth(d: D, format = 'MMM'): MonthItem<D> {\r\n\t\tconst year = this._adapter.getYear(d);\r\n\t\tconst month = this._adapter.getMonth(d);\r\n\t\tconst monthStart = this._adapter.forge(year, month, 1);\r\n\t\treturn new MonthItem(monthStart, this._adapter.format(monthStart, format));\r\n\t}\r\n\tforgeYear(d: D, format = 'y'): YearItem<D> {\r\n\t\tconst year = this._adapter.getYear(d);\r\n\t\tconst yearStart = this._adapter.forge(year, 1, 1);\r\n\t\treturn new YearItem(yearStart, this._adapter.format(yearStart, format));\r\n\t}\r\n\tforgeDecade(d: D, format = 'y'): DecadeItem<D> {\r\n\t\tconst year = this._adapter.getYear(d);\r\n\t\tconst decadeStart = this._adapter.forge(10 * Math.floor(year / 10), 1, 1);\r\n\t\tconst decadeEnd = this._adapter.forge(10 * Math.floor(year / 10) + 9, 1, 1);\r\n\t\tconst label = `${this._adapter.format(decadeStart, format)} - ${this._adapter.format(decadeEnd, format)}`;\r\n\t\treturn new DecadeItem(decadeStart, label);\r\n\t}\r\n}\r\n","import { CommonModule, FormStyle, getLocaleDayNames, getLocaleFirstDayOfWeek, TranslationWidth } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, Inject, Input, LOCALE_ID, OnInit, Renderer2 } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\r\nimport { ALuDateAdapter, ELuDateGranularity } from '@lucca-front/ng/core';\r\nimport { ALuInput } from '@lucca-front/ng/input';\r\nimport { LuCalendarItemFactory } from './calendar-item.factory';\r\nimport { ICalendarItem } from './calendar-item.interface';\r\n\r\n@Component({\r\n\tselector: 'lu-calendar',\r\n\ttemplateUrl: './calendar-input.component.html',\r\n\tstyleUrls: ['./calendar-input.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: true,\r\n\timports: [FormsModule, CommonModule],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => LuCalendarInputComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: NG_VALIDATORS,\r\n\t\t\tuseExisting: LuCalendarInputComponent,\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\tLuCalendarItemFactory,\r\n\t],\r\n})\r\nexport class LuCalendarInputComponent<D> extends ALuInput<D> implements ControlValueAccessor, OnInit, Validator {\r\n\t@Input() min?: D;\r\n\t@Input() max?: D;\r\n\t@Input() granularity: ELuDateGranularity = ELuDateGranularity.day;\r\n\t@Input() startOn: D = this._adapter.forgeToday();\r\n\r\n\tviewGranularity: ELuDateGranularity;\r\n\theader: ICalendarItem<D>;\r\n\titems: ICalendarItem<D>[] = [];\r\n\tget mod() {\r\n\t\tswitch (this.viewGranularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\treturn 'mod-yearlyView';\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\treturn 'mod-monthlyView';\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\treturn 'mod-dailyView';\r\n\t\t}\r\n\t}\r\n\r\n\t// daily view\r\n\tlabels: string[] = [];\r\n\tconstructor(\r\n\t\t_changeDetectorRef: ChangeDetectorRef,\r\n\t\t_elementRef: ElementRef<HTMLElement>,\r\n\t\t_renderer: Renderer2,\r\n\t\t@Inject(LOCALE_ID) private _locale: string,\r\n\t\tprivate _factory: LuCalendarItemFactory<D>,\r\n\t\tprivate _adapter: ALuDateAdapter<D>,\r\n\t) {\r\n\t\tsuper(_changeDetectorRef, _elementRef, _renderer);\r\n\t}\r\n\tngOnInit() {\r\n\t\tthis.viewGranularity = this.granularity;\r\n\t\tthis.initDayLabels();\r\n\t}\r\n\toverride writeValue(value?: D) {\r\n\t\tconst date = value && this._adapter.isValid(value) ? this._adapter.clone(value) : this.startOn;\r\n\t\tthis.header = this._factory.forgeMonth(date);\r\n\t\tsuper.writeValue(value);\r\n\t}\r\n\tinitDayLabels() {\r\n\t\tthis.labels = [...getLocaleDayNames(this._locale, FormStyle.Standalone, TranslationWidth.Abbreviated)];\r\n\t\tif (getLocaleFirstDayOfWeek(this._locale) === 1) {\r\n\t\t\tthis.labels.push(this.labels.shift());\r\n\t\t}\r\n\t}\r\n\tprotected render() {\r\n\t\tswitch (this.viewGranularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\tthis.renderYearlyView();\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\tthis.renderMonthlyView();\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\tthis.renderDailyView();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected renderDailyView(month: D = this.header.date) {\r\n\t\tthis.items = [];\r\n\t\tconst start = this._adapter.forge(this._adapter.getYear(month), this._adapter.getMonth(month), 1);\r\n\t\tlet index = 0;\r\n\t\tconst isFirstDayOfWeek = this._adapter.getDay(start) === getLocaleFirstDayOfWeek(this._locale);\r\n\t\tthis.header = this._factory.forgeMonth(month, 'MMMM y');\r\n\t\tif (!isFirstDayOfWeek) {\r\n\t\t\tconst offset = (this._adapter.getDay(start) - getLocaleFirstDayOfWeek(this._locale) + 7) % 7;\r\n\t\t\tindex = -1 * offset;\r\n\t\t}\r\n\t\t// TODO\r\n\t\tlet isFDOW = false;\r\n\t\tlet isNextMonth = false;\r\n\t\tdo {\r\n\t\t\tconst d = this._adapter.add(start, index++, ELuDateGranularity.day);\r\n\t\t\tconst day = this._factory.forgeDay(d);\r\n\t\t\tisNextMonth = this._adapter.compare(d, month, ELuDateGranularity.month) > 0;\r\n\t\t\tisFDOW = this._adapter.getDay(d) === getLocaleFirstDayOfWeek(this._locale);\r\n\t\t\tthis.items.push(day);\r\n\t\t} while (!isFDOW || !isNextMonth);\r\n\t\tthis.applyDailyMods();\r\n\t}\r\n\r\n\tprotected renderMonthlyView(year: D = this.header.date) {\r\n\t\tthis.header = this._factory.forgeYear(year);\r\n\t\tthis.items = [...Array(12).keys()].map((i) => {\r\n\t\t\tconst d = this._adapter.forge(this._adapter.getYear(year), i + 1, 1);\r\n\t\t\treturn this._factory.forgeMonth(d);\r\n\t\t});\r\n\t\tthis.applyMonthlyMods();\r\n\t}\r\n\r\n\tprotected renderYearlyView(decade: D = this.header.date) {\r\n\t\tconst year = Math.floor(this._adapter.getYear(decade) / 10) * 10;\r\n\t\tconst d = this._adapter.forge(year, 1, 1);\r\n\t\tthis.header = this._factory.forgeDecade(d);\r\n\t\tthis.items = [...Array(10).keys()].map((i) => {\r\n\t\t\tconst y = this._adapter.forge(year + i, 1, 1);\r\n\t\t\treturn this._factory.forgeYear(y);\r\n\t\t});\r\n\t\tthis.applyYearlyMods();\r\n\t}\r\n\r\n\tprotected applyDailyMods() {\r\n\t\tconst month = this.header.date;\r\n\t\tconst today = this._adapter.forgeToday();\r\n\t\tconst min = this.min && this._adapter.isValid(this.min) ? this.min : undefined;\r\n\t\tconst max = this.max && this._adapter.isValid(this.max) ? this.max : undefined;\r\n\t\tthis.items.forEach((item) => {\r\n\t\t\tconst day = item.date;\r\n\t\t\tif (this._adapter.compare(day, month, ELuDateGranularity.month) < 0) {\r\n\t\t\t\titem.mods.push('is-previousMonth');\r\n\t\t\t}\r\n\t\t\tif (this._adapter.compare(day, month, ELuDateGranularity.month) > 0) {\r\n\t\t\t\titem.mods.push('is-nextMonth');\r\n\t\t\t}\r\n\t\t\tif (this._adapter.compare(day, today, ELuDateGranularity.day) === 0) {\r\n\t\t\t\titem.mods.push('is-today');\r\n\t\t\t}\r\n\t\t\tif (this.value && this._adapter.isValid(this.value) && this._adapter.compare(day, this.value, ELuDateGranularity.day) === 0) {\r\n\t\t\t\titem.mods.push('is-active');\r\n\t\t\t}\r\n\t\t\tif (min && this._adapter.compare(day, min, ELuDateGranularity.day) < 0) {\r\n\t\t\t\titem.isDisabled = true;\r\n\t\t\t}\r\n\t\t\tif (max && this._adapter.compare(day, max, ELuDateGranularity.day) > 0) {\r\n\t\t\t\titem.isDisabled = true;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprotected applyMonthlyMods() {\r\n\t\tconst today = this._adapter.forgeToday();\r\n\t\tconst min = this.min && this._adapter.isValid(this.min) ? this.min : undefined;\r\n\t\tconst max = this.max && this._adapter.isValid(this.max) ? this.max : undefined;\r\n\t\tthis.items.forEach((item) => {\r\n\t\t\tconst month = item.date;\r\n\t\t\tif (this._adapter.compare(month, today, ELuDateGranularity.month) === 0) {\r\n\t\t\t\titem.mods.push('is-today');\r\n\t\t\t}\r\n\t\t\tif (this.value && this._adapter.isValid(this.value) && this._adapter.compare(month, this.value, ELuDateGranularity.month) === 0) {\r\n\t\t\t\titem.mods.push('is-active');\r\n\t\t\t}\r\n\t\t\tif (min && this._adapter.compare(month, min, ELuDateGranularity.month) < 0) {\r\n\t\t\t\titem.isDisabled = true;\r\n\t\t\t}\r\n\t\t\tif (max && this._adapter.compare(month, max, ELuDateGranularity.month) > 0) {\r\n\t\t\t\titem.isDisabled = true;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprotected applyYearlyMods() {\r\n\t\tconst today = this._adapter.forgeToday();\r\n\t\tconst min = this.min && this._adapter.isValid(this.min) ? this.min : undefined;\r\n\t\tconst max = this.max && this._adapter.isValid(this.max) ? this.max : undefined;\r\n\t\tthis.items.forEach((item) => {\r\n\t\t\tconst year = item.date;\r\n\t\t\tif (this._adapter.compare(year, today, ELuDateGranularity.year) === 0) {\r\n\t\t\t\titem.mods.push('is-today');\r\n\t\t\t}\r\n\t\t\tif (this.value && this._adapter.isValid(this.value) && this._adapter.compare(year, this.value, ELuDateGranularity.year) === 0) {\r\n\t\t\t\titem.mods.push('is-active');\r\n\t\t\t}\r\n\t\t\tif (min && this._adapter.compare(year, min, ELuDateGranularity.year) < 0) {\r\n\t\t\t\titem.isDisabled = true;\r\n\t\t\t}\r\n\t\t\tif (max && this._adapter.compare(year, max, ELuDateGranularity.year) > 0) {\r\n\t\t\t\titem.isDisabled = true;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tselect(item: ICalendarItem<D>) {\r\n\t\tswitch (this.viewGranularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\tthis.selectYear(item);\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\tthis.selectMonth(item);\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\tthis.selectDay(item);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected selectDay(item: ICalendarItem<D>) {\r\n\t\tconst year = this._adapter.getYear(item.date);\r\n\t\tconst month = this._adapter.getMonth(item.date);\r\n\t\tconst d = this._adapter.forge(year, month, 1);\r\n\t\tthis.header = this._factory.forgeMonth(d);\r\n\t\tthis.setValue(item.date);\r\n\t}\r\n\r\n\tprotected selectMonth(item: ICalendarItem<D>) {\r\n\t\tif (this.granularity === ELuDateGranularity.month) {\r\n\t\t\tthis.setValue(item.date);\r\n\t\t} else {\r\n\t\t\tthis.header = item;\r\n\t\t\tthis.viewGranularity = ELuDateGranularity.day;\r\n\t\t\tthis.render();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected selectYear(item: ICalendarItem<D>) {\r\n\t\tif (this.granularity === ELuDateGranularity.year) {\r\n\t\t\tthis.setValue(item.date);\r\n\t\t} else {\r\n\t\t\tthis.header = item;\r\n\t\t\tthis.viewGranularity = ELuDateGranularity.month;\r\n\t\t\tthis.render();\r\n\t\t}\r\n\t}\r\n\r\n\tprevious() {\r\n\t\tswitch (this.viewGranularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\tthis.previousDecade();\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\tthis.previousYear();\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\tthis.previousMonth();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tthis.render();\r\n\t}\r\n\r\n\tnext() {\r\n\t\tswitch (this.viewGranularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\tthis.nextDecade();\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\tthis.nextYear();\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\tthis.nextMonth();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tthis.render();\r\n\t}\r\n\r\n\ttrackBy(_idx, item: ICalendarItem<D>) {\r\n\t\treturn item.id;\r\n\t}\r\n\r\n\tincreaseGranularity() {\r\n\t\tif (this.header.granularity !== ELuDateGranularity.decade) {\r\n\t\t\tthis.viewGranularity = this.header.granularity;\r\n\t\t\tthis.render();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected nextMonth() {\r\n\t\tconst d = this._adapter.add(this.header.date, 1, ELuDateGranularity.month);\r\n\t\tthis.header = this._factory.forgeMonth(d);\r\n\t}\r\n\r\n\tprotected nextYear() {\r\n\t\tconst d = this._adapter.add(this.header.date, 1, ELuDateGranularity.year);\r\n\t\tthis.header = this._factory.forgeYear(d);\r\n\t}\r\n\r\n\tprotected nextDecade() {\r\n\t\tconst d = this._adapter.add(this.header.date, 1, ELuDateGranularity.decade);\r\n\t\tthis.header = this._factory.forgeDecade(d);\r\n\t}\r\n\r\n\tprotected previousMonth() {\r\n\t\tconst d = this._adapter.add(this.header.date, -1, ELuDateGranularity.month);\r\n\t\tthis.header = this._factory.forgeMonth(d);\r\n\t}\r\n\r\n\tprotected previousYear() {\r\n\t\tconst d = this._adapter.add(this.header.date, -1, ELuDateGranularity.year);\r\n\t\tthis.header = this._factory.forgeYear(d);\r\n\t}\r\n\r\n\tprotected previousDecade() {\r\n\t\tconst d = this._adapter.add(this.header.date, -1, ELuDateGranularity.decade);\r\n\t\tthis.header = this._factory.forgeDecade(d);\r\n\t}\r\n\r\n\tvalidate(control: AbstractControl): ValidationErrors | null {\r\n\t\tconst d = control.value as D;\r\n\t\tif (!d) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tif (!this._adapter.isValid(d)) {\r\n\t\t\treturn { date: true };\r\n\t\t}\r\n\t\tif (!!this.min && this._adapter.isValid(this.min) && this._adapter.compare(this.min, d, ELuDateGranularity.day) > 0) {\r\n\t\t\treturn { min: true };\r\n\t\t}\r\n\t\tif (!!this.max && this._adapter.isValid(this.max) && this._adapter.compare(this.max, d, ELuDateGranularity.day) < 0) {\r\n\t\t\treturn { max: true };\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n}\r\n","<section class=\"calendar\">\r\n\t<header class=\"calendar-header\">\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"previous()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowWest\"></span>\r\n\t\t\t<span class=\"u-mask\">Previous</span>\r\n\t\t</button>\r\n\t\t<button type=\"button\" class=\"calendar-header-date\" (click)=\"increaseGranularity()\">{{ header.label }}</button>\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"next()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowEast\"></span>\r\n\t\t\t<span class=\"u-mask\">Next</span>\r\n\t\t</button>\r\n\t</header>\r\n\t<section class=\"calendar-labels\" [ngClass]=\"mod\">\r\n\t\t<div class=\"calendar-labels-item\" *ngFor=\"let label of labels\">{{ label }}</div>\r\n\t</section>\r\n\t<section class=\"calendar-grid\" [ngClass]=\"mod\">\r\n\t\t<button\r\n\t\t\ttype=\"button\"\r\n\t\t\t*ngFor=\"let item of items; trackBy: trackBy\"\r\n\t\t\tclass=\"calendar-grid-item\"\r\n\t\t\t[ngClass]=\"item.mods\"\r\n\t\t\t[disabled]=\"item.isDisabled\"\r\n\t\t\t(click)=\"select(item)\"\r\n\t\t>\r\n\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\r\n\t\t</button>\r\n\t</section>\r\n</section>\r\n","import { NgModule } from '@angular/core';\r\nimport { LuCalendarInputComponent } from './calendar-input.component';\r\n\r\n@NgModule({\r\n\timports: [LuCalendarInputComponent],\r\n\texports: [LuCalendarInputComponent],\r\n})\r\nexport class LuCalendarInputModule {}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { ILuTranslation } from '@lucca-front/ng/core';\r\n\r\nexport const LU_DATE_INPUT_TRANSLATIONS = new InjectionToken('LuDateInputtranslations', {\r\n\tfactory: () => luDateInputTranslations,\r\n});\r\n\r\nexport interface ILuDateInputLabel {\r\n\tplaceholderDay: string;\r\n\tplaceholderMonth: string;\r\n\tplaceholderYear: string;\r\n\tformatDay: string;\r\n\tformatMonth: string;\r\n\tformatYear: string;\r\n}\r\n\r\nexport const luDateInputTranslations: ILuTranslation<ILuDateInputLabel> = {\r\n\ten: {\r\n\t\tplaceholderDay: 'dd/mm/yyyy',\r\n\t\tplaceholderMonth: 'mm/yyyy',\r\n\t\tplaceholderYear: 'yyyy',\r\n\t\tformatDay: 'shortDate',\r\n\t\tformatMonth: 'MM/y',\r\n\t\tformatYear: 'y',\r\n\t},\r\n\t'en-GB': {\r\n\t\tplaceholderDay: 'dd/mm/yyyy',\r\n\t\tplaceholderMonth: 'mm/yyyy',\r\n\t\tplaceholderYear: 'yyyy',\r\n\t\tformatDay: 'shortDate',\r\n\t\tformatMonth: 'MM/y',\r\n\t\tformatYear: 'y',\r\n\t},\r\n\t'en-US': {\r\n\t\tplaceholderDay: 'mm/dd/yyyy',\r\n\t\tplaceholderMonth: 'mm/yyyy',\r\n\t\tplaceholderYear: 'yyyy',\r\n\t\tformatDay: 'shortDate',\r\n\t\tformatMonth: 'MM/y',\r\n\t\tformatYear: 'y',\r\n\t},\r\n\tfr: {\r\n\t\tplaceholderDay: 'jj/mm/aaaa',\r\n\t\tplaceholderMonth: 'mm/aaaa',\r\n\t\tplaceholderYear: 'aaaa',\r\n\t\tformatDay: 'shortDate',\r\n\t\tformatMonth: 'MM/y',\r\n\t\tformatYear: 'y',\r\n\t},\r\n};\r\n","import { ChangeDetectorRef, Directive, ElementRef, forwardRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\r\nimport { ALuDateAdapter, ELuDateGranularity, getIntl } from '@lucca-front/ng/core';\r\nimport { ALuInput } from '@lucca-front/ng/input';\r\nimport { LU_DATE_INPUT_TRANSLATIONS } from './date-input.translate';\r\n\r\n@Directive({\r\n\tselector: 'input[luDateInput]',\r\n\tstandalone: true,\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => LuDateInputDirective),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: NG_VALIDATORS,\r\n\t\t\tuseExisting: LuDateInputDirective,\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class LuDateInputDirective<D> extends ALuInput<D, HTMLInputElement> implements Validator, OnInit {\r\n\tprivate _focused = false;\r\n\t@Input() min?: D;\r\n\t@Input() max?: D;\r\n\t@Input() granularity: ELuDateGranularity = ELuDateGranularity.day;\r\n\r\n\t@Input() override set placeholder(p: string) {\r\n\t\tthis._elementRef.nativeElement.placeholder = p;\r\n\t}\r\n\tprivate _intl = getIntl(LU_DATE_INPUT_TRANSLATIONS);\r\n\tconstructor(_changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef<HTMLInputElement>, _renderer: Renderer2, private _adapter: ALuDateAdapter<D>) {\r\n\t\tsuper(_changeDetectorRef, _elementRef, _renderer);\r\n\t}\r\n\tngOnInit() {\r\n\t\tswitch (this.granularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\tthis.placeholder = this._intl.placeholderYear;\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\tthis.placeholder = this._intl.placeholderMonth;\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\tthis.placeholder = this._intl.placeholderDay;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\tprotected render() {\r\n\t\tif (this._focused) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet format: string;\r\n\t\tswitch (this.granularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\tformat = this._intl.formatYear;\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\tformat = this._intl.formatMonth;\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\tformat = this._intl.formatDay;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tconst text = this.value && this._adapter.isValid(this.value) ? this._adapter.format(this.value, format) : '';\r\n\t\tthis._elementRef.nativeElement.value = text;\r\n\t}\r\n\t@HostListener('input', ['$event'])\r\n\tonInput(event) {\r\n\t\t// FIXME\r\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\r\n\t\tconst text = event.target.value as string;\r\n\t\tconst value = this.parse(text);\r\n\t\tthis.setValue(value);\r\n\t}\r\n\tprivate parse(text: string): D {\r\n\t\tconst date = this._adapter.parse(text, this.granularity);\r\n\t\treturn date;\r\n\t}\r\n\t@HostListener('focus')\r\n\tonFocus() {\r\n\t\tthis._focused = true;\r\n\t}\r\n\t@HostListener('blur')\r\n\tonBlur() {\r\n\t\tthis._focused = false;\r\n\t\tthis.render();\r\n\t}\r\n\tvalidate(control: AbstractControl): ValidationErrors | null {\r\n\t\tconst d = control.value as D;\r\n\t\tif (!d) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tif (!this._adapter.isValid(d)) {\r\n\t\t\treturn { date: true };\r\n\t\t}\r\n\t\tif (!!this.min && this._adapter.isValid(this.min) && this._adapter.compare(this.min, d, ELuDateGranularity.day) > 0) {\r\n\t\t\treturn { min: true };\r\n\t\t}\r\n\t\tif (!!this.max && this._adapter.isValid(this.max) && this._adapter.compare(this.max, d, ELuDateGranularity.day) < 0) {\r\n\t\t\treturn { max: true };\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { LuDateInputDirective } from './date-input.directive';\r\n\r\n@NgModule({\r\n\timports: [LuDateInputDirective],\r\n\texports: [LuDateInputDirective],\r\n})\r\nexport class LuDateInputModule {}\r\n","//FIXME\r\n/* eslint-disable @angular-eslint/no-output-on-prefix */\r\n/* eslint-disable @angular-eslint/no-output-native */\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ALuDateAdapter, ELuDateGranularity } from '@lucca-front/ng/core';\r\nimport { ALuPickerPanel } from '@lucca-front/ng/picker';\r\nimport { luTransformPopover } from '@lucca-front/ng/popover';\r\nimport { LuCalendarInputComponent } from '../calendar';\r\nimport { LuDateInputDirective } from '../input';\r\n\r\n@Component({\r\n\tselector: 'lu-date-picker',\r\n\ttemplateUrl: './date-picker.component.html',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\texportAs: 'LuDatePicker',\r\n\tanimations: [luTransformPopover],\r\n\tstandalone: true,\r\n\timports: [FormsModule, CommonModule, LuCalendarInputComponent, LuDateInputDirective, A11yModule],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: ALuPickerPanel,\r\n\t\t\tuseExisting: forwardRef(() => LuDatePickerComponent),\r\n\t\t},\r\n\t],\r\n})\r\nexport class LuDatePickerComponent<D = Date> extends ALuPickerPanel<D> {\r\n\t_value: D;\r\n\r\n\t@Input() min?: D;\r\n\t@Input() max?: D;\r\n\t@Input() granularity: ELuDateGranularity = ELuDateGranularity.day;\r\n\t@Input() startOn: D = this._adapter.forgeToday();\r\n\r\n\t@Output() override close = new EventEmitter<void>();\r\n\t@Output() override open = new EventEmitter<void>();\r\n\t@Output() override hovered = new EventEmitter<boolean>();\r\n\t@Output() override onSelectValue = new EventEmitter<D>();\r\n\r\n\t@ViewChild(TemplateRef, { static: true })\r\n\tset vcTemplateRef(tr: TemplateRef<unknown>) {\r\n\t\tthis.templateRef = tr;\r\n\t}\r\n\r\n\tconstructor(private _adapter: ALuDateAdapter<D>) {\r\n\t\tsuper();\r\n\t}\r\n\t_emitOpenEvent(): void {\r\n\t\tthis.open.emit();\r\n\t}\r\n\t_emitCloseEvent(): void {\r\n\t\tthis.close.emit();\r\n\t}\r\n\t_emitHoveredEvent(h: boolean): void {\r\n\t\tthis.hovered.emit(h);\r\n\t}\r\n\t_emitSelectValue(val: D) {\r\n\t\tthis.onSelectValue.emit(val);\r\n\t}\r\n\tsetValue(value: D) {\r\n\t\tthis._value = value;\r\n\t}\r\n\t_onCalendar(val: D) {\r\n\t\tthis._value = val;\r\n\t\tthis._emitSelectValue(val);\r\n\t\t// if (!this.multiple) {\r\n\t\tthis._emitCloseEvent();\r\n\t\t// }\r\n\t}\r\n\t_onInput(val: D) {\r\n\t\tthis._value = val;\r\n\t\tthis._emitSelectValue(val);\r\n\t}\r\n\t_onEnter() {\r\n\t\tthis._emitCloseEvent();\r\n\t}\r\n\toverride _handleKeydown(event: KeyboardEvent) {\r\n\t\tswitch (event.key) {\r\n\t\t\tcase 'Escape':\r\n\t\t\t\tthis._emitCloseEvent();\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'Tab':\r\n\t\t\t\tthis._emitCloseEvent();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\t// ngAfterViewInit() {\r\n\t// \tthis._dateInput.nativeElement.focus();\r\n\t// }\r\n}\r\n","<ng-template>\r\n\t<div\r\n\t\tclass=\"lu-picker-panel lu-date-picker-panel\"\r\n\t\trole=\"dialog\"\r\n\t\t[ngClass]=\"panelClassesMap\"\r\n\t\t(click)=\"onClick()\"\r\n\t\t(mouseover)=\"onMouseOver()\"\r\n\t\t(mouseleave)=\"onMouseLeave()\"\r\n\t\t(mousedown)=\"onMouseDown()\"\r\n\t>\r\n\t\t<div class=\"lu-picker-content\" [ngClass]=\"contentClassesMap\" cdkTrapFocus=\"false\" cdkTrapFocusAutoCapture=\"true\">\r\n\t\t\t<label class=\"textfield lu-picker-textfield\">\r\n\t\t\t\t<input\r\n\t\t\t\t\tluDateInput\r\n\t\t\t\t\tclass=\"textfield-input\"\r\n\t\t\t\t\t[ngModel]=\"_value\"\r\n\t\t\t\t\t(ngModelChange)=\"_onInput($event)\"\r\n\t\t\t\t\t(keydown.enter)=\"_onEnter()\"\r\n\t\t\t\t\t[min]=\"min\"\r\n\t\t\t\t\t[max]=\"max\"\r\n\t\t\t\t\t[granularity]=\"granularity\"\r\n\t\t\t\t/>\r\n\t\t\t</label>\r\n\t\t\t<lu-calendar\r\n\t\t\t\t[ngModel]=\"_value\"\r\n\t\t\t\t(ngModelChange)=\"_onCalendar($event)\"\r\n\t\t\t\t[min]=\"min\"\r\n\t\t\t\t[max]=\"max\"\r\n\t\t\t\t[granularity]=\"granularity\"\r\n\t\t\t\t[startOn]=\"startOn\"\r\n\t\t\t></lu-calendar>\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { LuDatePickerComponent } from './date-picker.component';\r\n\r\n@NgModule({\r\n\timports: [LuDatePickerComponent],\r\n\texports: [LuDatePickerComponent],\r\n})\r\nexport class LuDatePickerModule {}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { ILuTranslation } from '@lucca-front/ng/core';\r\n\r\nexport const LU_DATE_SELECT_INPUT_TRANSLATIONS = new InjectionToken('LuDateSelectInputtranslations', {\r\n\tfactory: () => luDateSelectInputTranslations,\r\n});\r\n\r\nexport interface ILuDateSelectInputLabel {\r\n\tplaceholderDay: string;\r\n\tplaceholderMonth: string;\r\n\tplaceholderYear: string;\r\n\tformatDay: string;\r\n\tformatMonth: string;\r\n\tformatYear: string;\r\n}\r\n\r\nexport const luDateSelectInputTranslations: ILuTranslation<ILuDateSelectInputLabel> = {\r\n\ten: {\r\n\t\tplaceholderDay: 'dd/mm/yyyy',\r\n\t\tplaceholderMonth: 'mm/yyyy',\r\n\t\tplaceholderYear: 'yyyy',\r\n\t\tformatDay: 'shortDate',\r\n\t\tformatMonth: 'MM/y',\r\n\t\tformatYear: 'y',\r\n\t},\r\n\t'en-US': {\r\n\t\tplaceholderDay: 'mm/dd/yyyy',\r\n\t\tplaceholderMonth: 'mm/yyyy',\r\n\t\tplaceholderYear: 'yyyy',\r\n\t\tformatDay: 'shortDate',\r\n\t\tformatMonth: 'MM/y',\r\n\t\tformatYear: 'y',\r\n\t},\r\n\tfr: {\r\n\t\tplaceholderDay: 'jj/mm/aaaa',\r\n\t\tplaceholderMonth: 'mm/aaaa',\r\n\t\tplaceholderYear: 'aaaa',\r\n\t\tformatDay: 'shortDate',\r\n\t\tformatMonth: 'MM/y',\r\n\t\tformatYear: 'y',\r\n\t},\r\n};\r\n","import { Overlay, OverlayModule } from '@angular/cdk/overlay';\r\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, Input, Renderer2, ViewContainerRef } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\r\nimport { ALuDateAdapter, ELuDateGranularity, getIntl } from '@lucca-front/ng/core';\r\nimport { LuInputClearerComponent, LuInputDirective, LuInputDisplayerDirective } from '@lucca-front/ng/input';\r\nimport { ILuInputWithPicker } from '@lucca-front/ng/picker';\r\nimport { ALuSelectInputComponent } from '@lucca-front/ng/select';\r\nimport { LuDateAdapterPipe } from '../adapter';\r\nimport { LuDatePickerComponent } from '../picker';\r\nimport { LU_DATE_SELECT_INPUT_TRANSLATIONS } from './date-select-input.translate';\r\n\r\n@Component({\r\n\tselector: 'lu-date-select',\r\n\ttemplateUrl: './date-select-input.component.html',\r\n\tstyleUrls: ['./date-select-input.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: true,\r\n\timports: [LuDateAdapterPipe, LuDatePickerComponent, LuInputDirective, OverlayModule, LuInputClearerComponent, LuInputDisplayerDirective],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => LuDateSelectInputComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: NG_VALIDATORS,\r\n\t\t\tuseExisting: LuDateSelectInputComponent,\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class LuDateSelectInputComponent<D> extends ALuSelectInputComponent<D> implements ControlValueAccessor, ILuInputWithPicker<D>, AfterViewInit, Validator {\r\n\t@Input() min?: D;\r\n\t@Input() max?: D;\r\n\t@Input() granularity: ELuDateGranularity = ELuDateGranularity.day;\r\n\t@Input('placeholder') override set inputPlaceholder(p: string) {\r\n\t\tthis._placeholder = p;\r\n\t}\r\n\t@Input() hideClearer = false;\r\n\t@Input() startOn: D = this._adapter.forgeToday();\r\n\r\n\tget format(): string {\r\n\t\tswitch (this.granularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\treturn this._intl.formatYear;\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\treturn this._intl.formatMonth;\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\treturn this._intl.formatDay;\r\n\t\t}\r\n\t}\r\n\tprivate _intl = getIntl(LU_DATE_SELECT_INPUT_TRANSLATIONS);\r\n\tconstructor(\r\n\t\tprotected override _changeDetectorRef: ChangeDetectorRef,\r\n\t\tprotected override _overlay: Overlay,\r\n\t\tprotected override _elementRef: ElementRef<HTMLElement>,\r\n\t\tprotected override _viewContainerRef: ViewContainerRef,\r\n\t\tprotected override _renderer: Renderer2,\r\n\t\tprivate _adapter: ALuDateAdapter<D>,\r\n\t) {\r\n\t\tsuper(_changeDetectorRef, _overlay, _elementRef, _viewContainerRef, _renderer);\r\n\t\tthis.overlapInput = true;\r\n\t}\r\n\r\n\tvalidate(control: AbstractControl): ValidationErrors | null {\r\n\t\tconst d = control.value as D;\r\n\t\tif (!d) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tif (!this._adapter.isValid(d)) {\r\n\t\t\treturn { date: true };\r\n\t\t}\r\n\t\tif (!!this.min && this._adapter.isValid(this.min) && this._adapter.compare(this.min, d, ELuDateGranularity.day) > 0) {\r\n\t\t\treturn { min: true };\r\n\t\t}\r\n\t\tif (!!this.max && this._adapter.isValid(this.max) && this._adapter.compare(this.max, d, ELuDateGranularity.day) < 0) {\r\n\t\t\treturn { max: true };\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n}\r\n","<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper notranslate\">\r\n\t\t<ng-container #display></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<lu-input-clearer [class.u-displayNone]=\"hideClearer\" [attr.aria-hidden]=\"hideClearer\"></lu-input-clearer>\r\n</div>\r\n<ng-template luDisplayer let-value> {{ value | luDate: format }} </ng-template>\r\n<lu-date-picker [min]=\"min\" [max]=\"max\" [granularity]=\"granularity\" [startOn]=\"startOn\"></lu-date-picker>\r\n","import { NgModule } from '@angular/core';\r\nimport { LuDateSelectInputComponent } from './date-select-input.component';\r\n\r\n@NgModule({\r\n\timports: [LuDateSelectInputComponent],\r\n\texports: [LuDateSelectInputComponent],\r\n})\r\nexport class LuDateSelectInputModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { LuDateAdapterPipe } from './adapter/index';\r\nimport { LuCalendarInputComponent } from './calendar/index';\r\nimport { LuDateInputDirective } from './input/index';\r\nimport { LuDatePickerComponent } from './picker/index';\r\nimport { LuDateSelectInputComponent } from './select/index';\r\n\r\n@NgModule({\r\n\timports: [LuCalendarInputComponent, LuDatePickerComponent, LuDateInputDirective, LuDateAdapterPipe, LuDateSelectInputComponent],\r\n\texports: [LuCalendarInputComponent, LuDatePickerComponent, LuDateInputDirective, LuDateAdapterPipe, LuDateSelectInputComponent],\r\n})\r\nexport class LuDateModule {}\r\n","/*\r\n * Public API Surface of safe-content\r\n */\r\n\r\nexport * from './lib/index';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LuCalendarItemFactory","i2","i1"],"mappings":";;;;;;;;;;;;;;;;;AAGA,MAKa,iBAAiB,CAAA;AAC7B,IAAA,WAAA,CAAoB,QAA2B,EAAA;QAA3B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;KAAI;AACnD,IAAA,SAAS,CAAC,CAAI,EAAE,MAAM,GAAG,YAAY,EAAA;QACpC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACvC,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACV;8GAPW,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;;;ACJD,MAIa,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAnB,mBAAmB,EAAA,OAAA,EAAA,CAHrB,iBAAiB,CAAA,EAAA,OAAA,EAAA,CACjB,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAEf,mBAAmB,EAAA,CAAA,CAAA,EAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC5B,iBAAA,CAAA;;;MCHqB,aAAa,CAAA;AAAnC,IAAA,WAAA,GAAA;QAKC,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;QACpB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;KAGnB;AARA,IAAA,IAAI,EAAE,GAAA;AACL,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC;KACrD;AAMD,CAAA;AACK,MAAO,OAAW,SAAQ,aAAgB,CAAA;IAE/C,WAA4B,CAAA,IAAO,EAAkB,KAAa,EAAA;AACjE,QAAA,KAAK,EAAE,CAAC;QADmB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAG;QAAkB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;AADhD,QAAA,IAAA,CAAA,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC;KAGtD;AACD,CAAA;AACK,MAAO,SAAa,SAAQ,aAAgB,CAAA;IAEjD,WAA4B,CAAA,IAAO,EAAkB,KAAa,EAAA;AACjE,QAAA,KAAK,EAAE,CAAC;QADmB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAG;QAAkB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;AADhD,QAAA,IAAA,CAAA,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC;KAGxD;AACD,CAAA;AACK,MAAO,QAAY,SAAQ,aAAgB,CAAA;IAEhD,WAA4B,CAAA,IAAO,EAAkB,KAAa,EAAA;AACjE,QAAA,KAAK,EAAE,CAAC;QADmB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAG;QAAkB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;AADhD,QAAA,IAAA,CAAA,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC;KAGvD;AACD,CAAA;AACK,MAAO,UAAc,SAAQ,aAAgB,CAAA;IAElD,WAA4B,CAAA,IAAO,EAAkB,KAAa,EAAA;AACjE,QAAA,KAAK,EAAE,CAAC;QADmB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAG;QAAkB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;AADhD,QAAA,IAAA,CAAA,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC;KAGzD;AACD;;AChCD,MACa,qBAAqB,CAAA;AACjC,IAAA,WAAA,CAAoB,QAA2B,EAAA;QAA3B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;KAAI;AACnD,IAAA,QAAQ,CAAC,CAAI,EAAE,MAAM,GAAG,GAAG,EAAA;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;KAC7D;AACD,IAAA,UAAU,CAAC,CAAI,EAAE,MAAM,GAAG,KAAK,EAAA;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACvD,QAAA,OAAO,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;KAC3E;AACD,IAAA,SAAS,CAAC,CAAI,EAAE,MAAM,GAAG,GAAG,EAAA;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,QAAA,OAAO,IAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;KACxE;AACD,IAAA,WAAW,CAAC,CAAI,EAAE,MAAM,GAAG,GAAG,EAAA;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAM,GAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA,CAAE,CAAC;AAC1G,QAAA,OAAO,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;KAC1C;8GAvBW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAArB,qBAAqB,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;;;ACIX,MAqBa,wBAA4B,SAAQ,QAAW,CAAA;AAS3D,IAAA,IAAI,GAAG,GAAA;QACN,QAAQ,IAAI,CAAC,eAAe;YAC3B,KAAK,kBAAkB,CAAC,IAAI;AAC3B,gBAAA,OAAO,gBAAgB,CAAC;YACzB,KAAK,kBAAkB,CAAC,KAAK;AAC5B,gBAAA,OAAO,iBAAiB,CAAC;YAC1B,KAAK,kBAAkB,CAAC,GAAG,CAAC;AAC5B,YAAA;AACC,gBAAA,OAAO,eAAe,CAAC;AACxB,SAAA;KACD;IAID,WACC,CAAA,kBAAqC,EACrC,WAAoC,EACpC,SAAoB,EACO,OAAe,EAClC,QAAkC,EAClC,QAA2B,EAAA;AAEnC,QAAA,KAAK,CAAC,kBAAkB,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAJvB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAClC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAA0B;QAClC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;AA1B3B,QAAA,IAAA,CAAA,WAAW,GAAuB,kBAAkB,CAAC,GAAG,CAAC;AACzD,QAAA,IAAA,CAAA,OAAO,GAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAIjD,IAAK,CAAA,KAAA,GAAuB,EAAE,CAAC;;QAc/B,IAAM,CAAA,MAAA,GAAa,EAAE,CAAC;KAUrB;IACD,QAAQ,GAAA;AACP,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,aAAa,EAAE,CAAC;KACrB;AACQ,IAAA,UAAU,CAAC,KAAS,EAAA;AAC5B,QAAA,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAC/F,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC7C,QAAA,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KACxB;IACD,aAAa,GAAA;QACZ,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;QACvG,IAAI,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChD,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACtC,SAAA;KACD;IACS,MAAM,GAAA;QACf,QAAQ,IAAI,CAAC,eAAe;YAC3B,KAAK,kBAAkB,CAAC,IAAI;gBAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM;YACP,KAAK,kBAAkB,CAAC,KAAK;gBAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,MAAM;YACP,KAAK,kBAAkB,CAAC,GAAG,CAAC;AAC5B,YAAA;gBACC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACP,SAAA;KACD;AAES,IAAA,eAAe,CAAC,KAAW,GAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAA;AACpD,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAClG,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/F,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,gBAAgB,EAAE;YACtB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7F,YAAA,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;AACpB,SAAA;;QAED,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,GAAG;AACF,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACpE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtC,YAAA,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5E,YAAA,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3E,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,SAAA,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE;QAClC,IAAI,CAAC,cAAc,EAAE,CAAC;KACtB;AAES,IAAA,iBAAiB,CAAC,IAAU,GAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAA;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;YAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACpC,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACxB;AAES,IAAA,gBAAgB,CAAC,MAAY,GAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAA;AACtD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AACjE,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AAC5C,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,EAAE,CAAC;KACvB;IAES,cAAc,GAAA;AACvB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QAC/E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC3B,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;AACtB,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AACpE,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACnC,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AACpE,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC/B,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACpE,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3B,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC5H,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5B,aAAA;AACD,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACvE,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,aAAA;AACD,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACvE,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,aAAA;AACF,SAAC,CAAC,CAAC;KACH;IAES,gBAAgB,GAAA;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QAC/E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC3B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;AACxB,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACxE,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3B,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAChI,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5B,aAAA;AACD,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC3E,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,aAAA;AACD,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC3E,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,aAAA;AACF,SAAC,CAAC,CAAC;KACH;IAES,eAAe,GAAA;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QAC/E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC3B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACtE,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3B,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9H,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5B,aAAA;AACD,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACzE,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,aAAA;AACD,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACzE,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,aAAA;AACF,SAAC,CAAC,CAAC;KACH;AAED,IAAA,MAAM,CAAC,IAAsB,EAAA;QAC5B,QAAQ,IAAI,CAAC,eAAe;YAC3B,KAAK,kBAAkB,CAAC,IAAI;AAC3B,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACtB,MAAM;YACP,KAAK,kBAAkB,CAAC,KAAK;AAC5B,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACvB,MAAM;YACP,KAAK,kBAAkB,CAAC,GAAG,CAAC;AAC5B,YAAA;AACC,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACrB,MAAM;AACP,SAAA;KACD;AAES,IAAA,SAAS,CAAC,IAAsB,EAAA;AACzC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACzB;AAES,IAAA,WAAW,CAAC,IAAsB,EAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,kBAAkB,CAAC,KAAK,EAAE;AAClD,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,SAAA;AAAM,aAAA;AACN,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC,GAAG,CAAC;YAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,SAAA;KACD;AAES,IAAA,UAAU,CAAC,IAAsB,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,kBAAkB,CAAC,IAAI,EAAE;AACjD,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,SAAA;AAAM,aAAA;AACN,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC;YAChD,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,SAAA;KACD;IAED,QAAQ,GAAA;QACP,QAAQ,IAAI,CAAC,eAAe;YAC3B,KAAK,kBAAkB,CAAC,IAAI;gBAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,MAAM;YACP,KAAK,kBAAkB,CAAC,KAAK;gBAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,MAAM;YACP,KAAK,kBAAkB,CAAC,GAAG,CAAC;AAC5B,YAAA;gBACC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM;AACP,SAAA;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;KACd;IAED,IAAI,GAAA;QACH,QAAQ,IAAI,CAAC,eAAe;YAC3B,KAAK,kBAAkB,CAAC,IAAI;gBAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,MAAM;YACP,KAAK,kBAAkB,CAAC,KAAK;gBAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,MAAM;YACP,KAAK,kBAAkB,CAAC,GAAG,CAAC;AAC5B,YAAA;gBACC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,MAAM;AACP,SAAA;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;KACd;IAED,OAAO,CAAC,IAAI,EAAE,IAAsB,EAAA;QACnC,OAAO,IAAI,CAAC,EAAE,CAAC;KACf;IAED,mBAAmB,GAAA;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,kBAAkB,CAAC,MAAM,EAAE;YAC1D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,SAAA;KACD;IAES,SAAS,GAAA;QAClB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAC1C;IAES,QAAQ,GAAA;QACjB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KACzC;IAES,UAAU,GAAA;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KAC3C;IAES,aAAa,GAAA;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAC1C;IAES,YAAY,GAAA;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KACzC;IAES,cAAc,GAAA;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KAC3C;AAED,IAAA,QAAQ,CAAC,OAAwB,EAAA;AAChC,QAAA,MAAM,CAAC,GAAG,OAAO,CAAC,KAAU,CAAC;QAC7B,IAAI,CAAC,CAAC,EAAE;AACP,YAAA,OAAO,IAAI,CAAC;AACZ,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC9B,YAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACtB,SAAA;AACD,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACpH,YAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACrB,SAAA;AACD,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACpH,YAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACrB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACZ;AAnTW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,sGA2B3B,SAAS,EAAA,EAAA,EAAA,KAAA,EAAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA3BN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAdzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAwB,CAAC;AACvD,gBAAA,KAAK,EAAE,IAAI;AACX,aAAA;AACD,YAAA;AACC,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,wBAAwB;AACrC,gBAAA,KAAK,EAAE,IAAI;AACX,aAAA;YACD,qBAAqB;AACrB,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3BF,suCA4BA,EAAA,MAAA,EAAA,CAAA,k5GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDdW,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAevB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBArBpC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGN,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,WAAW,EAAE,YAAY,CAAC,EACzB,SAAA,EAAA;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,8BAA8B,CAAC;AACvD,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,wBAAA;AACC,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAA0B,wBAAA;AACrC,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;wBACD,qBAAqB;AACrB,qBAAA,EAAA,QAAA,EAAA,suCAAA,EAAA,MAAA,EAAA,CAAA,k5GAAA,CAAA,EAAA,CAAA;;0BA6BC,MAAM;2BAAC,SAAS,CAAA;0GA1BT,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;AE9BP,MAIa,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAArB,qBAAqB,EAAA,OAAA,EAAA,CAHvB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CACxB,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAHvB,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGtB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,OAAO,EAAE,CAAC,wBAAwB,CAAC;oBACnC,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACnC,iBAAA,CAAA;;;MCHY,0BAA0B,GAAG,IAAI,cAAc,CAAC,yBAAyB,EAAE;AACvF,IAAA,OAAO,EAAE,MAAM,uBAAuB;AACtC,CAAA,EAAE;AAWU,MAAA,uBAAuB,GAAsC;AACzE,IAAA,EAAE,EAAE;AACH,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,UAAU,EAAE,GAAG;AACf,KAAA;AACD,IAAA,OAAO,EAAE;AACR,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,UAAU,EAAE,GAAG;AACf,KAAA;AACD,IAAA,OAAO,EAAE;AACR,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,UAAU,EAAE,GAAG;AACf,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,UAAU,EAAE,GAAG;AACf,KAAA;;;AC1CF,MAgBa,oBAAwB,SAAQ,QAA6B,CAAA;IAMzE,IAAsB,WAAW,CAAC,CAAS,EAAA;QAC1C,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;KAC/C;AAED,IAAA,WAAA,CAAY,kBAAqC,EAAE,WAAyC,EAAE,SAAoB,EAAU,QAA2B,EAAA;AACtJ,QAAA,KAAK,CAAC,kBAAkB,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QADyE,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;QAT/I,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAGhB,QAAA,IAAA,CAAA,WAAW,GAAuB,kBAAkB,CAAC,GAAG,CAAC;AAK1D,QAAA,IAAA,CAAA,KAAK,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;KAGnD;IACD,QAAQ,GAAA;QACP,QAAQ,IAAI,CAAC,WAAW;YACvB,KAAK,kBAAkB,CAAC,IAAI;gBAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;gBAC9C,MAAM;YACP,KAAK,kBAAkB,CAAC,KAAK;gBAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;gBAC/C,MAAM;YACP,KAAK,kBAAkB,CAAC,GAAG,CAAC;AAC5B,YAAA;gBACC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;gBAC7C,MAAM;AACP,SAAA;KACD;IACS,MAAM,GAAA;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;AACP,SAAA;AACD,QAAA,IAAI,MAAc,CAAC;QACnB,QAAQ,IAAI,CAAC,WAAW;YACvB,KAAK,kBAAkB,CAAC,IAAI;AAC3B,gBAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC/B,MAAM;YACP,KAAK,kBAAkB,CAAC,KAAK;AAC5B,gBAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;gBAChC,MAAM;YACP,KAAK,kBAAkB,CAAC,GAAG,CAAC;AAC5B,YAAA;AACC,gBAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBAC9B,MAAM;AACP,SAAA;AACD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QAC7G,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;KAC5C;AAED,IAAA,OAAO,CAAC,KAAK,EAAA;;;AAGZ,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAe,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACrB;AACO,IAAA,KAAK,CAAC,IAAY,EAAA;AACzB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC;KACZ;IAED,OAAO,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACrB;IAED,MAAM,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,MAAM,EAAE,CAAC;KACd;AACD,IAAA,QAAQ,CAAC,OAAwB,EAAA;AAChC,QAAA,MAAM,CAAC,GAAG,OAAO,CAAC,KAAU,CAAC;QAC7B,IAAI,CAAC,CAAC,EAAE;AACP,YAAA,OAAO,IAAI,CAAC;AACZ,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC9B,YAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACtB,SAAA;AACD,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACpH,YAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACrB,SAAA;AACD,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACpH,YAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACrB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACZ;8GAnFW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAbrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,gBAAA,KAAK,EAAE,IAAI;AACX,aAAA;AACD,YAAA;AACC,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,oBAAoB;AACjC,gBAAA,KAAK,EAAE,IAAI;AACX,aAAA;AACD,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAEW,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAhBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC;AACnD,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,wBAAA;AACC,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAsB,oBAAA;AACjC,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,qBAAA;AACD,iBAAA,CAAA;sLAGS,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEgB,WAAW,EAAA,CAAA;sBAAhC,KAAK;gBA0CN,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAajC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,CAAA;gBAKrB,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,MAAM,CAAA;;;AClFrB,MAIa,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAjB,iBAAiB,EAAA,OAAA,EAAA,CAHnB,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACpB,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAElB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,OAAO,EAAE,CAAC,oBAAoB,CAAC;oBAC/B,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAC/B,iBAAA,CAAA;;;ACND;AAaA,MAea,qBAAgC,SAAQ,cAAiB,CAAA;IAarE,IACI,aAAa,CAAC,EAAwB,EAAA;AACzC,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;KACtB;AAED,IAAA,WAAA,CAAoB,QAA2B,EAAA;AAC9C,QAAA,KAAK,EAAE,CAAC;QADW,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;AAbtC,QAAA,IAAA,CAAA,WAAW,GAAuB,kBAAkB,CAAC,GAAG,CAAC;AACzD,QAAA,IAAA,CAAA,OAAO,GAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;AAE9B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAQ,CAAC;AACjC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAQ,CAAC;AAChC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAW,CAAC;AACtC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAK,CAAC;KASxD;IACD,cAAc,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACjB;IACD,eAAe,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KAClB;AACD,IAAA,iBAAiB,CAAC,CAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACrB;AACD,IAAA,gBAAgB,CAAC,GAAM,EAAA;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC7B;AACD,IAAA,QAAQ,CAAC,KAAQ,EAAA;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACpB;AACD,IAAA,WAAW,CAAC,GAAM,EAAA;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;;QAE3B,IAAI,CAAC,eAAe,EAAE,CAAC;;KAEvB;AACD,IAAA,QAAQ,CAAC,GAAM,EAAA;AACd,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;KAC3B;IACD,QAAQ,GAAA;QACP,IAAI,CAAC,eAAe,EAAE,CAAC;KACvB;AACQ,IAAA,cAAc,CAAC,KAAoB,EAAA;QAC3C,QAAQ,KAAK,CAAC,GAAG;AAChB,YAAA,KAAK,QAAQ;gBACZ,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,MAAM;AACP,YAAA,KAAK,KAAK;gBACT,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACP,SAAA;KACD;8GA7DW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAPtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAAA;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,aAAA;AACD,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAeU,WAAW,ECzCvB,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2lCAkCA,EDdW,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,8mBAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,wBAAwB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,KAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAE,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,KAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,UAAU,EAFnF,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,kBAAkB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAUpB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAfjC,SAAS;+BACC,gBAAgB,EAAA,eAAA,EAET,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,cAAc,EACZ,UAAA,EAAA,CAAC,kBAAkB,CAAC,EACpB,UAAA,EAAA,IAAI,WACP,CAAC,WAAW,EAAE,YAAY,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,UAAU,CAAC,EACrF,SAAA,EAAA;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,yBAAA;AACD,qBAAA,EAAA,QAAA,EAAA,2lCAAA,EAAA,CAAA;qGAKQ,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEa,KAAK,EAAA,CAAA;sBAAvB,MAAM;gBACY,IAAI,EAAA,CAAA;sBAAtB,MAAM;gBACY,OAAO,EAAA,CAAA;sBAAzB,MAAM;gBACY,aAAa,EAAA,CAAA;sBAA/B,MAAM;gBAGH,aAAa,EAAA,CAAA;sBADhB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AEtCzC,MAIa,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAlB,kBAAkB,EAAA,OAAA,EAAA,CAHpB,qBAAqB,CAAA,EAAA,OAAA,EAAA,CACrB,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHpB,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,OAAO,EAAE,CAAC,qBAAqB,CAAC;oBAChC,OAAO,EAAE,CAAC,qBAAqB,CAAC;AAChC,iBAAA,CAAA;;;MCHY,iCAAiC,GAAG,IAAI,cAAc,CAAC,+BAA+B,EAAE;AACpG,IAAA,OAAO,EAAE,MAAM,6BAA6B;AAC5C,CAAA,EAAE;AAWU,MAAA,6BAA6B,GAA4C;AACrF,IAAA,EAAE,EAAE;AACH,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,UAAU,EAAE,GAAG;AACf,KAAA;AACD,IAAA,OAAO,EAAE;AACR,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,UAAU,EAAE,GAAG;AACf,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,UAAU,EAAE,GAAG;AACf,KAAA;;;AC7BF,MAoBa,0BAA8B,SAAQ,uBAA0B,CAAA;IAI5E,IAAmC,gBAAgB,CAAC,CAAS,EAAA;AAC5D,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;KACtB;AAID,IAAA,IAAI,MAAM,GAAA;QACT,QAAQ,IAAI,CAAC,WAAW;YACvB,KAAK,kBAAkB,CAAC,IAAI;AAC3B,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAC9B,KAAK,kBAAkB,CAAC,KAAK;AAC5B,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YAC/B,KAAK,kBAAkB,CAAC,GAAG,CAAC;AAC5B,YAAA;AACC,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC7B,SAAA;KACD;IAED,WACoB,CAAA,kBAAqC,EACrC,QAAiB,EACjB,WAAoC,EACpC,iBAAmC,EACnC,SAAoB,EAC/B,QAA2B,EAAA;QAEnC,KAAK,CAAC,kBAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAP5D,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QACrC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAS;QACjB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;QACpC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;QACnC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QAC/B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;AAzB3B,QAAA,IAAA,CAAA,WAAW,GAAuB,kBAAkB,CAAC,GAAG,CAAC;QAIzD,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AACpB,QAAA,IAAA,CAAA,OAAO,GAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;AAazC,QAAA,IAAA,CAAA,KAAK,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAU1D,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KACzB;AAED,IAAA,QAAQ,CAAC,OAAwB,EAAA;AAChC,QAAA,MAAM,CAAC,GAAG,OAAO,CAAC,KAAU,CAAC;QAC7B,IAAI,CAAC,CAAC,EAAE;AACP,YAAA,OAAO,IAAI,CAAC;AACZ,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC9B,YAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACtB,SAAA;AACD,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACpH,YAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACrB,SAAA;AACD,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACpH,YAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACrB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACZ;8GAjDW,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAb3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,CAAA,aAAA,EAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,0BAA0B,CAAC;AACzD,gBAAA,KAAK,EAAE,IAAI;AACX,aAAA;AACD,YAAA;AACC,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,0BAA0B;AACvC,gBAAA,KAAK,EAAE,IAAI;AACX,aAAA;SACD,EC7BF,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,8kBAWA,EDMW,MAAA,EAAA,CAAA,y6PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,iBAAiB,EAAE,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,gMAAoB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,yBAAyB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAc3H,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBApBtC,SAAS;+BACC,gBAAgB,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,OAAA,EACP,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,aAAa,EAAE,uBAAuB,EAAE,yBAAyB,CAAC,EAC7H,SAAA,EAAA;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,gCAAgC,CAAC;AACzD,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,wBAAA;AACC,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAA4B,0BAAA;AACvC,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,qBAAA,EAAA,QAAA,EAAA,8kBAAA,EAAA,MAAA,EAAA,CAAA,y6PAAA,CAAA,EAAA,CAAA;6OAGQ,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAC6B,gBAAgB,EAAA,CAAA;sBAAlD,KAAK;uBAAC,aAAa,CAAA;gBAGX,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;AEpCP,MAIa,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAvB,uBAAuB,EAAA,OAAA,EAAA,CAHzB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAC1B,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AAExB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAHzB,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGxB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,OAAO,EAAE,CAAC,0BAA0B,CAAC;oBACrC,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACrC,iBAAA,CAAA;;;ACCD,MAIa,YAAY,CAAA;8GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAHd,wBAAwB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,0BAA0B,CACpH,EAAA,OAAA,EAAA,CAAA,wBAAwB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AAElH,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAHd,OAAA,EAAA,CAAA,wBAAwB,EAAE,qBAAqB,EAA2C,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGlH,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,OAAO,EAAE,CAAC,wBAAwB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,0BAA0B,CAAC;oBAC/H,OAAO,EAAE,CAAC,wBAAwB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,0BAA0B,CAAC;AAC/H,iBAAA,CAAA;;;ACVD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"lucca-front-ng-date.mjs","sources":["../../../packages/ng/date/src/lib/adapter/date-adapter.pipe.ts","../../../packages/ng/date/src/lib/adapter/date-adapter.module.ts","../../../packages/ng/date/src/lib/calendar/calendar-item.class.ts","../../../packages/ng/date/src/lib/calendar/calendar-item.factory.ts","../../../packages/ng/date/src/lib/calendar/calendar-input.component.ts","../../../packages/ng/date/src/lib/calendar/calendar-input.component.html","../../../packages/ng/date/src/lib/calendar/calendar-input.module.ts","../../../packages/ng/date/src/lib/input/date-input.translate.ts","../../../packages/ng/date/src/lib/input/date-input.directive.ts","../../../packages/ng/date/src/lib/input/date-input.module.ts","../../../packages/ng/date/src/lib/picker/date-picker.component.ts","../../../packages/ng/date/src/lib/picker/date-picker.component.html","../../../packages/ng/date/src/lib/picker/date-picker.module.ts","../../../packages/ng/date/src/lib/select/date-select-input.translate.ts","../../../packages/ng/date/src/lib/select/date-select-input.component.ts","../../../packages/ng/date/src/lib/select/date-select-input.component.html","../../../packages/ng/date/src/lib/select/date-select-input.module.ts","../../../packages/ng/date/src/lib/date.module.ts","../../../packages/ng/date/src/public-api.ts","../../../packages/ng/date/src/lucca-front-ng-date.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ALuDateAdapter } from '@lucca-front/ng/core';\r\n\r\n@Pipe({\r\n\tname: 'luDate',\r\n\tpure: true,\r\n\tstandalone: true,\r\n})\r\nexport class LuDateAdapterPipe<D> implements PipeTransform {\r\n\tconstructor(private _adapter: ALuDateAdapter<D>) {}\r\n\ttransform(d: D, format = 'mediumDate'): string {\r\n\t\tif (d && this._adapter.isValid(d)) {\r\n\t\t\treturn this._adapter.format(d, format);\r\n\t\t}\r\n\t\treturn '';\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { LuDateAdapterPipe } from './date-adapter.pipe';\r\n\r\n@NgModule({\r\n\timports: [LuDateAdapterPipe],\r\n\texports: [LuDateAdapterPipe],\r\n})\r\nexport class LuDateAdapterModule {}\r\n","import { ELuDateGranularity } from '@lucca-front/ng/core';\r\nimport { ICalendarItem } from './calendar-item.interface';\r\n\r\nexport abstract class ACalendarItem<D> implements ICalendarItem<D> {\r\n\tget id() {\r\n\t\treturn `${this.granularity}-${this.date.toString()}`;\r\n\t}\r\n\tdate: D;\r\n\tmods: string[] = [];\r\n\tisDisabled = false;\r\n\tlabel: string;\r\n\treadonly granularity: ELuDateGranularity;\r\n}\r\nexport class DayItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\r\n\toverride readonly granularity = ELuDateGranularity.day;\r\n\tconstructor(public override date: D, public override label: string) {\r\n\t\tsuper();\r\n\t}\r\n}\r\nexport class MonthItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\r\n\toverride readonly granularity = ELuDateGranularity.month;\r\n\tconstructor(public override date: D, public override label: string) {\r\n\t\tsuper();\r\n\t}\r\n}\r\nexport class YearItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\r\n\toverride readonly granularity = ELuDateGranularity.year;\r\n\tconstructor(public override date: D, public override label: string) {\r\n\t\tsuper();\r\n\t}\r\n}\r\nexport class DecadeItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\r\n\toverride readonly granularity = ELuDateGranularity.decade;\r\n\tconstructor(public override date: D, public override label: string) {\r\n\t\tsuper();\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ALuDateAdapter } from '@lucca-front/ng/core';\r\nimport { DayItem, DecadeItem, MonthItem, YearItem } from './calendar-item.class';\r\n\r\n@Injectable()\r\nexport class LuCalendarItemFactory<D> {\r\n\tconstructor(private _adapter: ALuDateAdapter<D>) {}\r\n\tforgeDay(d: D, format = 'd'): DayItem<D> {\r\n\t\tconst date = this._adapter.clone(d);\r\n\t\treturn new DayItem(date, this._adapter.format(date, format));\r\n\t}\r\n\tforgeMonth(d: D, format = 'MMM'): MonthItem<D> {\r\n\t\tconst year = this._adapter.getYear(d);\r\n\t\tconst month = this._adapter.getMonth(d);\r\n\t\tconst monthStart = this._adapter.forge(year, month, 1);\r\n\t\treturn new MonthItem(monthStart, this._adapter.format(monthStart, format));\r\n\t}\r\n\tforgeYear(d: D, format = 'y'): YearItem<D> {\r\n\t\tconst year = this._adapter.getYear(d);\r\n\t\tconst yearStart = this._adapter.forge(year, 1, 1);\r\n\t\treturn new YearItem(yearStart, this._adapter.format(yearStart, format));\r\n\t}\r\n\tforgeDecade(d: D, format = 'y'): DecadeItem<D> {\r\n\t\tconst year = this._adapter.getYear(d);\r\n\t\tconst decadeStart = this._adapter.forge(10 * Math.floor(year / 10), 1, 1);\r\n\t\tconst decadeEnd = this._adapter.forge(10 * Math.floor(year / 10) + 9, 1, 1);\r\n\t\tconst label = `${this._adapter.format(decadeStart, format)} - ${this._adapter.format(decadeEnd, format)}`;\r\n\t\treturn new DecadeItem(decadeStart, label);\r\n\t}\r\n}\r\n","import { CommonModule, FormStyle, getLocaleDayNames, getLocaleFirstDayOfWeek, TranslationWidth } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, Inject, Input, LOCALE_ID, OnInit, Renderer2 } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\r\nimport { ALuDateAdapter, ELuDateGranularity } from '@lucca-front/ng/core';\r\nimport { ALuInput } from '@lucca-front/ng/input';\r\nimport { LuCalendarItemFactory } from './calendar-item.factory';\r\nimport { ICalendarItem } from './calendar-item.interface';\r\n\r\n@Component({\r\n\tselector: 'lu-calendar',\r\n\ttemplateUrl: './calendar-input.component.html',\r\n\tstyleUrls: ['./calendar-input.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: true,\r\n\timports: [FormsModule, CommonModule],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => LuCalendarInputComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: NG_VALIDATORS,\r\n\t\t\tuseExisting: LuCalendarInputComponent,\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\tLuCalendarItemFactory,\r\n\t],\r\n})\r\nexport class LuCalendarInputComponent<D> extends ALuInput<D> implements ControlValueAccessor, OnInit, Validator {\r\n\t@Input() min?: D;\r\n\t@Input() max?: D;\r\n\t@Input() granularity: ELuDateGranularity = ELuDateGranularity.day;\r\n\t@Input() startOn: D = this._adapter.forgeToday();\r\n\r\n\tviewGranularity: ELuDateGranularity;\r\n\theader: ICalendarItem<D>;\r\n\titems: ICalendarItem<D>[] = [];\r\n\tget mod() {\r\n\t\tswitch (this.viewGranularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\treturn 'mod-yearlyView';\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\treturn 'mod-monthlyView';\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\treturn 'mod-dailyView';\r\n\t\t}\r\n\t}\r\n\r\n\t// daily view\r\n\tlabels: string[] = [];\r\n\tconstructor(\r\n\t\t_changeDetectorRef: ChangeDetectorRef,\r\n\t\t_elementRef: ElementRef<HTMLElement>,\r\n\t\t_renderer: Renderer2,\r\n\t\t@Inject(LOCALE_ID) private _locale: string,\r\n\t\tprivate _factory: LuCalendarItemFactory<D>,\r\n\t\tprivate _adapter: ALuDateAdapter<D>,\r\n\t) {\r\n\t\tsuper(_changeDetectorRef, _elementRef, _renderer);\r\n\t}\r\n\tngOnInit() {\r\n\t\tthis.viewGranularity = this.granularity;\r\n\t\tthis.initDayLabels();\r\n\t}\r\n\toverride writeValue(value?: D) {\r\n\t\tconst date = value && this._adapter.isValid(value) ? this._adapter.clone(value) : this.startOn;\r\n\t\tthis.header = this._factory.forgeMonth(date);\r\n\t\tsuper.writeValue(value);\r\n\t}\r\n\tinitDayLabels() {\r\n\t\tthis.labels = [...getLocaleDayNames(this._locale, FormStyle.Standalone, TranslationWidth.Abbreviated)];\r\n\t\tif (getLocaleFirstDayOfWeek(this._locale) === 1) {\r\n\t\t\tthis.labels.push(this.labels.shift());\r\n\t\t}\r\n\t}\r\n\tprotected render() {\r\n\t\tswitch (this.viewGranularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\tthis.renderYearlyView();\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\tthis.renderMonthlyView();\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\tthis.renderDailyView();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected renderDailyView(month: D = this.header.date) {\r\n\t\tthis.items = [];\r\n\t\tconst start = this._adapter.forge(this._adapter.getYear(month), this._adapter.getMonth(month), 1);\r\n\t\tlet index = 0;\r\n\t\tconst isFirstDayOfWeek = this._adapter.getDay(start) === getLocaleFirstDayOfWeek(this._locale);\r\n\t\tthis.header = this._factory.forgeMonth(month, 'MMMM y');\r\n\t\tif (!isFirstDayOfWeek) {\r\n\t\t\tconst offset = (this._adapter.getDay(start) - getLocaleFirstDayOfWeek(this._locale) + 7) % 7;\r\n\t\t\tindex = -1 * offset;\r\n\t\t}\r\n\t\t// TODO\r\n\t\tlet isFDOW = false;\r\n\t\tlet isNextMonth = false;\r\n\t\tdo {\r\n\t\t\tconst d = this._adapter.add(start, index++, ELuDateGranularity.day);\r\n\t\t\tconst day = this._factory.forgeDay(d);\r\n\t\t\tisNextMonth = this._adapter.compare(d, month, ELuDateGranularity.month) > 0;\r\n\t\t\tisFDOW = this._adapter.getDay(d) === getLocaleFirstDayOfWeek(this._locale);\r\n\t\t\tthis.items.push(day);\r\n\t\t} while (!isFDOW || !isNextMonth);\r\n\t\tthis.applyDailyMods();\r\n\t}\r\n\r\n\tprotected renderMonthlyView(year: D = this.header.date) {\r\n\t\tthis.header = this._factory.forgeYear(year);\r\n\t\tthis.items = [...Array(12).keys()].map((i) => {\r\n\t\t\tconst d = this._adapter.forge(this._adapter.getYear(year), i + 1, 1);\r\n\t\t\treturn this._factory.forgeMonth(d);\r\n\t\t});\r\n\t\tthis.applyMonthlyMods();\r\n\t}\r\n\r\n\tprotected renderYearlyView(decade: D = this.header.date) {\r\n\t\tconst year = Math.floor(this._adapter.getYear(decade) / 10) * 10;\r\n\t\tconst d = this._adapter.forge(year, 1, 1);\r\n\t\tthis.header = this._factory.forgeDecade(d);\r\n\t\tthis.items = [...Array(10).keys()].map((i) => {\r\n\t\t\tconst y = this._adapter.forge(year + i, 1, 1);\r\n\t\t\treturn this._factory.forgeYear(y);\r\n\t\t});\r\n\t\tthis.applyYearlyMods();\r\n\t}\r\n\r\n\tprotected applyDailyMods() {\r\n\t\tconst month = this.header.date;\r\n\t\tconst today = this._adapter.forgeToday();\r\n\t\tconst min = this.min && this._adapter.isValid(this.min) ? this.min : undefined;\r\n\t\tconst max = this.max && this._adapter.isValid(this.max) ? this.max : undefined;\r\n\t\tthis.items.forEach((item) => {\r\n\t\t\tconst day = item.date;\r\n\t\t\tif (this._adapter.compare(day, month, ELuDateGranularity.month) < 0) {\r\n\t\t\t\titem.mods.push('is-previousMonth');\r\n\t\t\t}\r\n\t\t\tif (this._adapter.compare(day, month, ELuDateGranularity.month) > 0) {\r\n\t\t\t\titem.mods.push('is-nextMonth');\r\n\t\t\t}\r\n\t\t\tif (this._adapter.compare(day, today, ELuDateGranularity.day) === 0) {\r\n\t\t\t\titem.mods.push('is-today');\r\n\t\t\t}\r\n\t\t\tif (this.value && this._adapter.isValid(this.value) && this._adapter.compare(day, this.value, ELuDateGranularity.day) === 0) {\r\n\t\t\t\titem.mods.push('is-active');\r\n\t\t\t}\r\n\t\t\tif (min && this._adapter.compare(day, min, ELuDateGranularity.day) < 0) {\r\n\t\t\t\titem.isDisabled = true;\r\n\t\t\t}\r\n\t\t\tif (max && this._adapter.compare(day, max, ELuDateGranularity.day) > 0) {\r\n\t\t\t\titem.isDisabled = true;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprotected applyMonthlyMods() {\r\n\t\tconst today = this._adapter.forgeToday();\r\n\t\tconst min = this.min && this._adapter.isValid(this.min) ? this.min : undefined;\r\n\t\tconst max = this.max && this._adapter.isValid(this.max) ? this.max : undefined;\r\n\t\tthis.items.forEach((item) => {\r\n\t\t\tconst month = item.date;\r\n\t\t\tif (this._adapter.compare(month, today, ELuDateGranularity.month) === 0) {\r\n\t\t\t\titem.mods.push('is-today');\r\n\t\t\t}\r\n\t\t\tif (this.value && this._adapter.isValid(this.value) && this._adapter.compare(month, this.value, ELuDateGranularity.month) === 0) {\r\n\t\t\t\titem.mods.push('is-active');\r\n\t\t\t}\r\n\t\t\tif (min && this._adapter.compare(month, min, ELuDateGranularity.month) < 0) {\r\n\t\t\t\titem.isDisabled = true;\r\n\t\t\t}\r\n\t\t\tif (max && this._adapter.compare(month, max, ELuDateGranularity.month) > 0) {\r\n\t\t\t\titem.isDisabled = true;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprotected applyYearlyMods() {\r\n\t\tconst today = this._adapter.forgeToday();\r\n\t\tconst min = this.min && this._adapter.isValid(this.min) ? this.min : undefined;\r\n\t\tconst max = this.max && this._adapter.isValid(this.max) ? this.max : undefined;\r\n\t\tthis.items.forEach((item) => {\r\n\t\t\tconst year = item.date;\r\n\t\t\tif (this._adapter.compare(year, today, ELuDateGranularity.year) === 0) {\r\n\t\t\t\titem.mods.push('is-today');\r\n\t\t\t}\r\n\t\t\tif (this.value && this._adapter.isValid(this.value) && this._adapter.compare(year, this.value, ELuDateGranularity.year) === 0) {\r\n\t\t\t\titem.mods.push('is-active');\r\n\t\t\t}\r\n\t\t\tif (min && this._adapter.compare(year, min, ELuDateGranularity.year) < 0) {\r\n\t\t\t\titem.isDisabled = true;\r\n\t\t\t}\r\n\t\t\tif (max && this._adapter.compare(year, max, ELuDateGranularity.year) > 0) {\r\n\t\t\t\titem.isDisabled = true;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tselect(item: ICalendarItem<D>) {\r\n\t\tswitch (this.viewGranularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\tthis.selectYear(item);\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\tthis.selectMonth(item);\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\tthis.selectDay(item);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected selectDay(item: ICalendarItem<D>) {\r\n\t\tconst year = this._adapter.getYear(item.date);\r\n\t\tconst month = this._adapter.getMonth(item.date);\r\n\t\tconst d = this._adapter.forge(year, month, 1);\r\n\t\tthis.header = this._factory.forgeMonth(d);\r\n\t\tthis.setValue(item.date);\r\n\t}\r\n\r\n\tprotected selectMonth(item: ICalendarItem<D>) {\r\n\t\tif (this.granularity === ELuDateGranularity.month) {\r\n\t\t\tthis.setValue(item.date);\r\n\t\t} else {\r\n\t\t\tthis.header = item;\r\n\t\t\tthis.viewGranularity = ELuDateGranularity.day;\r\n\t\t\tthis.render();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected selectYear(item: ICalendarItem<D>) {\r\n\t\tif (this.granularity === ELuDateGranularity.year) {\r\n\t\t\tthis.setValue(item.date);\r\n\t\t} else {\r\n\t\t\tthis.header = item;\r\n\t\t\tthis.viewGranularity = ELuDateGranularity.month;\r\n\t\t\tthis.render();\r\n\t\t}\r\n\t}\r\n\r\n\tprevious() {\r\n\t\tswitch (this.viewGranularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\tthis.previousDecade();\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\tthis.previousYear();\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\tthis.previousMonth();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tthis.render();\r\n\t}\r\n\r\n\tnext() {\r\n\t\tswitch (this.viewGranularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\tthis.nextDecade();\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\tthis.nextYear();\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\tthis.nextMonth();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tthis.render();\r\n\t}\r\n\r\n\ttrackBy(_idx, item: ICalendarItem<D>) {\r\n\t\treturn item.id;\r\n\t}\r\n\r\n\tincreaseGranularity() {\r\n\t\tif (this.header.granularity !== ELuDateGranularity.decade) {\r\n\t\t\tthis.viewGranularity = this.header.granularity;\r\n\t\t\tthis.render();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected nextMonth() {\r\n\t\tconst d = this._adapter.add(this.header.date, 1, ELuDateGranularity.month);\r\n\t\tthis.header = this._factory.forgeMonth(d);\r\n\t}\r\n\r\n\tprotected nextYear() {\r\n\t\tconst d = this._adapter.add(this.header.date, 1, ELuDateGranularity.year);\r\n\t\tthis.header = this._factory.forgeYear(d);\r\n\t}\r\n\r\n\tprotected nextDecade() {\r\n\t\tconst d = this._adapter.add(this.header.date, 1, ELuDateGranularity.decade);\r\n\t\tthis.header = this._factory.forgeDecade(d);\r\n\t}\r\n\r\n\tprotected previousMonth() {\r\n\t\tconst d = this._adapter.add(this.header.date, -1, ELuDateGranularity.month);\r\n\t\tthis.header = this._factory.forgeMonth(d);\r\n\t}\r\n\r\n\tprotected previousYear() {\r\n\t\tconst d = this._adapter.add(this.header.date, -1, ELuDateGranularity.year);\r\n\t\tthis.header = this._factory.forgeYear(d);\r\n\t}\r\n\r\n\tprotected previousDecade() {\r\n\t\tconst d = this._adapter.add(this.header.date, -1, ELuDateGranularity.decade);\r\n\t\tthis.header = this._factory.forgeDecade(d);\r\n\t}\r\n\r\n\tvalidate(control: AbstractControl): ValidationErrors | null {\r\n\t\tconst d = control.value as D;\r\n\t\tif (!d) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tif (!this._adapter.isValid(d)) {\r\n\t\t\treturn { date: true };\r\n\t\t}\r\n\t\tif (!!this.min && this._adapter.isValid(this.min) && this._adapter.compare(this.min, d, ELuDateGranularity.day) > 0) {\r\n\t\t\treturn { min: true };\r\n\t\t}\r\n\t\tif (!!this.max && this._adapter.isValid(this.max) && this._adapter.compare(this.max, d, ELuDateGranularity.day) < 0) {\r\n\t\t\treturn { max: true };\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n}\r\n","<section class=\"calendar\">\r\n\t<header class=\"calendar-header\">\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"previous()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowWest\"></span>\r\n\t\t\t<span class=\"u-mask\">Previous</span>\r\n\t\t</button>\r\n\t\t<button type=\"button\" class=\"calendar-header-date\" (click)=\"increaseGranularity()\">{{ header.label }}</button>\r\n\t\t<button type=\"button\" class=\"actionIcon mod-S\" (click)=\"next()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowEast\"></span>\r\n\t\t\t<span class=\"u-mask\">Next</span>\r\n\t\t</button>\r\n\t</header>\r\n\t<section class=\"calendar-labels\" [ngClass]=\"mod\">\r\n\t\t<div class=\"calendar-labels-item\" *ngFor=\"let label of labels\">{{ label }}</div>\r\n\t</section>\r\n\t<section class=\"calendar-grid\" [ngClass]=\"mod\">\r\n\t\t<button\r\n\t\t\ttype=\"button\"\r\n\t\t\t*ngFor=\"let item of items; trackBy: trackBy\"\r\n\t\t\tclass=\"calendar-grid-item\"\r\n\t\t\t[ngClass]=\"item.mods\"\r\n\t\t\t[disabled]=\"item.isDisabled\"\r\n\t\t\t(click)=\"select(item)\"\r\n\t\t>\r\n\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\r\n\t\t</button>\r\n\t</section>\r\n</section>\r\n","import { NgModule } from '@angular/core';\r\nimport { LuCalendarInputComponent } from './calendar-input.component';\r\n\r\n@NgModule({\r\n\timports: [LuCalendarInputComponent],\r\n\texports: [LuCalendarInputComponent],\r\n})\r\nexport class LuCalendarInputModule {}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { ILuTranslation } from '@lucca-front/ng/core';\r\n\r\nexport const LU_DATE_INPUT_TRANSLATIONS = new InjectionToken('LuDateInputtranslations', {\r\n\tfactory: () => luDateInputTranslations,\r\n});\r\n\r\nexport interface ILuDateInputLabel {\r\n\tplaceholderDay: string;\r\n\tplaceholderMonth: string;\r\n\tplaceholderYear: string;\r\n\tformatDay: string;\r\n\tformatMonth: string;\r\n\tformatYear: string;\r\n}\r\n\r\nexport const luDateInputTranslations: ILuTranslation<ILuDateInputLabel> = {\r\n\ten: {\r\n\t\tplaceholderDay: 'dd/mm/yyyy',\r\n\t\tplaceholderMonth: 'mm/yyyy',\r\n\t\tplaceholderYear: 'yyyy',\r\n\t\tformatDay: 'shortDate',\r\n\t\tformatMonth: 'MM/y',\r\n\t\tformatYear: 'y',\r\n\t},\r\n\t'en-GB': {\r\n\t\tplaceholderDay: 'dd/mm/yyyy',\r\n\t\tplaceholderMonth: 'mm/yyyy',\r\n\t\tplaceholderYear: 'yyyy',\r\n\t\tformatDay: 'shortDate',\r\n\t\tformatMonth: 'MM/y',\r\n\t\tformatYear: 'y',\r\n\t},\r\n\t'en-US': {\r\n\t\tplaceholderDay: 'mm/dd/yyyy',\r\n\t\tplaceholderMonth: 'mm/yyyy',\r\n\t\tplaceholderYear: 'yyyy',\r\n\t\tformatDay: 'shortDate',\r\n\t\tformatMonth: 'MM/y',\r\n\t\tformatYear: 'y',\r\n\t},\r\n\tfr: {\r\n\t\tplaceholderDay: 'jj/mm/aaaa',\r\n\t\tplaceholderMonth: 'mm/aaaa',\r\n\t\tplaceholderYear: 'aaaa',\r\n\t\tformatDay: 'shortDate',\r\n\t\tformatMonth: 'MM/y',\r\n\t\tformatYear: 'y',\r\n\t},\r\n};\r\n","import { ChangeDetectorRef, Directive, ElementRef, forwardRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\r\nimport { ALuDateAdapter, ELuDateGranularity, getIntl } from '@lucca-front/ng/core';\r\nimport { ALuInput } from '@lucca-front/ng/input';\r\nimport { LU_DATE_INPUT_TRANSLATIONS } from './date-input.translate';\r\n\r\n@Directive({\r\n\tselector: 'input[luDateInput]',\r\n\tstandalone: true,\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => LuDateInputDirective),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: NG_VALIDATORS,\r\n\t\t\tuseExisting: LuDateInputDirective,\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class LuDateInputDirective<D> extends ALuInput<D, HTMLInputElement> implements Validator, OnInit {\r\n\tprivate _focused = false;\r\n\t@Input() min?: D;\r\n\t@Input() max?: D;\r\n\t@Input() granularity: ELuDateGranularity = ELuDateGranularity.day;\r\n\r\n\t@Input() override set placeholder(p: string) {\r\n\t\tthis._elementRef.nativeElement.placeholder = p;\r\n\t}\r\n\tprivate _intl = getIntl(LU_DATE_INPUT_TRANSLATIONS);\r\n\tconstructor(_changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef<HTMLInputElement>, _renderer: Renderer2, private _adapter: ALuDateAdapter<D>) {\r\n\t\tsuper(_changeDetectorRef, _elementRef, _renderer);\r\n\t}\r\n\tngOnInit() {\r\n\t\tswitch (this.granularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\tthis.placeholder = this._intl.placeholderYear;\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\tthis.placeholder = this._intl.placeholderMonth;\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\tthis.placeholder = this._intl.placeholderDay;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\tprotected render() {\r\n\t\tif (this._focused) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet format: string;\r\n\t\tswitch (this.granularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\tformat = this._intl.formatYear;\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\tformat = this._intl.formatMonth;\r\n\t\t\t\tbreak;\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\tformat = this._intl.formatDay;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tconst text = this.value && this._adapter.isValid(this.value) ? this._adapter.format(this.value, format) : '';\r\n\t\tthis._elementRef.nativeElement.value = text;\r\n\t}\r\n\t@HostListener('input', ['$event'])\r\n\tonInput(event) {\r\n\t\t// FIXME\r\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\r\n\t\tconst text = event.target.value as string;\r\n\t\tconst value = this.parse(text);\r\n\t\tthis.setValue(value);\r\n\t}\r\n\tprivate parse(text: string): D {\r\n\t\tconst date = this._adapter.parse(text, this.granularity);\r\n\t\treturn date;\r\n\t}\r\n\t@HostListener('focus')\r\n\tonFocus() {\r\n\t\tthis._focused = true;\r\n\t}\r\n\t@HostListener('blur')\r\n\tonBlur() {\r\n\t\tthis._focused = false;\r\n\t\tthis.render();\r\n\t}\r\n\tvalidate(control: AbstractControl): ValidationErrors | null {\r\n\t\tconst d = control.value as D;\r\n\t\tif (!d) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tif (!this._adapter.isValid(d)) {\r\n\t\t\treturn { date: true };\r\n\t\t}\r\n\t\tif (!!this.min && this._adapter.isValid(this.min) && this._adapter.compare(this.min, d, ELuDateGranularity.day) > 0) {\r\n\t\t\treturn { min: true };\r\n\t\t}\r\n\t\tif (!!this.max && this._adapter.isValid(this.max) && this._adapter.compare(this.max, d, ELuDateGranularity.day) < 0) {\r\n\t\t\treturn { max: true };\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { LuDateInputDirective } from './date-input.directive';\r\n\r\n@NgModule({\r\n\timports: [LuDateInputDirective],\r\n\texports: [LuDateInputDirective],\r\n})\r\nexport class LuDateInputModule {}\r\n","//FIXME\r\n/* eslint-disable @angular-eslint/no-output-on-prefix */\r\n/* eslint-disable @angular-eslint/no-output-native */\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ALuDateAdapter, ELuDateGranularity } from '@lucca-front/ng/core';\r\nimport { ALuPickerPanel } from '@lucca-front/ng/picker';\r\nimport { luTransformPopover } from '@lucca-front/ng/popover';\r\nimport { LuCalendarInputComponent } from '../calendar';\r\nimport { LuDateInputDirective } from '../input';\r\n\r\n@Component({\r\n\tselector: 'lu-date-picker',\r\n\ttemplateUrl: './date-picker.component.html',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\texportAs: 'LuDatePicker',\r\n\tanimations: [luTransformPopover],\r\n\tstandalone: true,\r\n\timports: [FormsModule, CommonModule, LuCalendarInputComponent, LuDateInputDirective, A11yModule],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: ALuPickerPanel,\r\n\t\t\tuseExisting: forwardRef(() => LuDatePickerComponent),\r\n\t\t},\r\n\t],\r\n})\r\nexport class LuDatePickerComponent<D = Date> extends ALuPickerPanel<D> {\r\n\t_value: D;\r\n\r\n\t@Input() min?: D;\r\n\t@Input() max?: D;\r\n\t@Input() granularity: ELuDateGranularity = ELuDateGranularity.day;\r\n\t@Input() startOn: D = this._adapter.forgeToday();\r\n\r\n\t@Output() override close = new EventEmitter<void>();\r\n\t@Output() override open = new EventEmitter<void>();\r\n\t@Output() override hovered = new EventEmitter<boolean>();\r\n\t@Output() override onSelectValue = new EventEmitter<D>();\r\n\r\n\t@ViewChild(TemplateRef, { static: true })\r\n\tset vcTemplateRef(tr: TemplateRef<unknown>) {\r\n\t\tthis.templateRef = tr;\r\n\t}\r\n\r\n\tconstructor(private _adapter: ALuDateAdapter<D>) {\r\n\t\tsuper();\r\n\t}\r\n\t_emitOpenEvent(): void {\r\n\t\tthis.open.emit();\r\n\t}\r\n\t_emitCloseEvent(): void {\r\n\t\tthis.close.emit();\r\n\t}\r\n\t_emitHoveredEvent(h: boolean): void {\r\n\t\tthis.hovered.emit(h);\r\n\t}\r\n\t_emitSelectValue(val: D) {\r\n\t\tthis.onSelectValue.emit(val);\r\n\t}\r\n\tsetValue(value: D) {\r\n\t\tthis._value = value;\r\n\t}\r\n\t_onCalendar(val: D) {\r\n\t\tthis._value = val;\r\n\t\tthis._emitSelectValue(val);\r\n\t\t// if (!this.multiple) {\r\n\t\tthis._emitCloseEvent();\r\n\t\t// }\r\n\t}\r\n\t_onInput(val: D) {\r\n\t\tthis._value = val;\r\n\t\tthis._emitSelectValue(val);\r\n\t}\r\n\t_onEnter() {\r\n\t\tthis._emitCloseEvent();\r\n\t}\r\n\toverride _handleKeydown(event: KeyboardEvent) {\r\n\t\tswitch (event.key) {\r\n\t\t\tcase 'Escape':\r\n\t\t\t\tthis._emitCloseEvent();\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'Tab':\r\n\t\t\t\tthis._emitCloseEvent();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\t// ngAfterViewInit() {\r\n\t// \tthis._dateInput.nativeElement.focus();\r\n\t// }\r\n}\r\n","<ng-template>\r\n\t<div\r\n\t\tclass=\"lu-picker-panel lu-date-picker-panel\"\r\n\t\trole=\"dialog\"\r\n\t\t[ngClass]=\"panelClassesMap\"\r\n\t\t(click)=\"onClick()\"\r\n\t\t(mouseover)=\"onMouseOver()\"\r\n\t\t(mouseleave)=\"onMouseLeave()\"\r\n\t\t(mousedown)=\"onMouseDown()\"\r\n\t>\r\n\t\t<div class=\"lu-picker-content\" [ngClass]=\"contentClassesMap\" cdkTrapFocus=\"false\" cdkTrapFocusAutoCapture=\"true\">\r\n\t\t\t<label class=\"textfield lu-picker-textfield\">\r\n\t\t\t\t<input\r\n\t\t\t\t\tluDateInput\r\n\t\t\t\t\tclass=\"textfield-input\"\r\n\t\t\t\t\t[ngModel]=\"_value\"\r\n\t\t\t\t\t(ngModelChange)=\"_onInput($event)\"\r\n\t\t\t\t\t(keydown.enter)=\"_onEnter()\"\r\n\t\t\t\t\t[min]=\"min\"\r\n\t\t\t\t\t[max]=\"max\"\r\n\t\t\t\t\t[granularity]=\"granularity\"\r\n\t\t\t\t/>\r\n\t\t\t</label>\r\n\t\t\t<lu-calendar\r\n\t\t\t\t[ngModel]=\"_value\"\r\n\t\t\t\t(ngModelChange)=\"_onCalendar($event)\"\r\n\t\t\t\t[min]=\"min\"\r\n\t\t\t\t[max]=\"max\"\r\n\t\t\t\t[granularity]=\"granularity\"\r\n\t\t\t\t[startOn]=\"startOn\"\r\n\t\t\t></lu-calendar>\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { LuDatePickerComponent } from './date-picker.component';\r\n\r\n@NgModule({\r\n\timports: [LuDatePickerComponent],\r\n\texports: [LuDatePickerComponent],\r\n})\r\nexport class LuDatePickerModule {}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { ILuTranslation } from '@lucca-front/ng/core';\r\n\r\nexport const LU_DATE_SELECT_INPUT_TRANSLATIONS = new InjectionToken('LuDateSelectInputtranslations', {\r\n\tfactory: () => luDateSelectInputTranslations,\r\n});\r\n\r\nexport interface ILuDateSelectInputLabel {\r\n\tplaceholderDay: string;\r\n\tplaceholderMonth: string;\r\n\tplaceholderYear: string;\r\n\tformatDay: string;\r\n\tformatMonth: string;\r\n\tformatYear: string;\r\n}\r\n\r\nexport const luDateSelectInputTranslations: ILuTranslation<ILuDateSelectInputLabel> = {\r\n\ten: {\r\n\t\tplaceholderDay: 'dd/mm/yyyy',\r\n\t\tplaceholderMonth: 'mm/yyyy',\r\n\t\tplaceholderYear: 'yyyy',\r\n\t\tformatDay: 'shortDate',\r\n\t\tformatMonth: 'MM/y',\r\n\t\tformatYear: 'y',\r\n\t},\r\n\t'en-US': {\r\n\t\tplaceholderDay: 'mm/dd/yyyy',\r\n\t\tplaceholderMonth: 'mm/yyyy',\r\n\t\tplaceholderYear: 'yyyy',\r\n\t\tformatDay: 'shortDate',\r\n\t\tformatMonth: 'MM/y',\r\n\t\tformatYear: 'y',\r\n\t},\r\n\tfr: {\r\n\t\tplaceholderDay: 'jj/mm/aaaa',\r\n\t\tplaceholderMonth: 'mm/aaaa',\r\n\t\tplaceholderYear: 'aaaa',\r\n\t\tformatDay: 'shortDate',\r\n\t\tformatMonth: 'MM/y',\r\n\t\tformatYear: 'y',\r\n\t},\r\n};\r\n","import { Overlay, OverlayModule } from '@angular/cdk/overlay';\r\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, Input, Renderer2, ViewContainerRef } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\r\nimport { ALuDateAdapter, ELuDateGranularity, getIntl } from '@lucca-front/ng/core';\r\nimport { LuInputClearerComponent, LuInputDirective, LuInputDisplayerDirective } from '@lucca-front/ng/input';\r\nimport { ILuInputWithPicker } from '@lucca-front/ng/picker';\r\nimport { ALuSelectInputComponent } from '@lucca-front/ng/select';\r\nimport { LuDateAdapterPipe } from '../adapter';\r\nimport { LuDatePickerComponent } from '../picker';\r\nimport { LU_DATE_SELECT_INPUT_TRANSLATIONS } from './date-select-input.translate';\r\n\r\n@Component({\r\n\tselector: 'lu-date-select',\r\n\ttemplateUrl: './date-select-input.component.html',\r\n\tstyleUrls: ['./date-select-input.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: true,\r\n\timports: [LuDateAdapterPipe, LuDatePickerComponent, LuInputDirective, OverlayModule, LuInputClearerComponent, LuInputDisplayerDirective],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => LuDateSelectInputComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: NG_VALIDATORS,\r\n\t\t\tuseExisting: LuDateSelectInputComponent,\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class LuDateSelectInputComponent<D> extends ALuSelectInputComponent<D> implements ControlValueAccessor, ILuInputWithPicker<D>, AfterViewInit, Validator {\r\n\t@Input() min?: D;\r\n\t@Input() max?: D;\r\n\t@Input() granularity: ELuDateGranularity = ELuDateGranularity.day;\r\n\t@Input('placeholder') override set inputPlaceholder(p: string) {\r\n\t\tthis._placeholder = p;\r\n\t}\r\n\t@Input() hideClearer = false;\r\n\t@Input() startOn: D = this._adapter.forgeToday();\r\n\r\n\tget format(): string {\r\n\t\tswitch (this.granularity) {\r\n\t\t\tcase ELuDateGranularity.year:\r\n\t\t\t\treturn this._intl.formatYear;\r\n\t\t\tcase ELuDateGranularity.month:\r\n\t\t\t\treturn this._intl.formatMonth;\r\n\t\t\tcase ELuDateGranularity.day:\r\n\t\t\tdefault:\r\n\t\t\t\treturn this._intl.formatDay;\r\n\t\t}\r\n\t}\r\n\tprivate _intl = getIntl(LU_DATE_SELECT_INPUT_TRANSLATIONS);\r\n\tconstructor(\r\n\t\tprotected override _changeDetectorRef: ChangeDetectorRef,\r\n\t\tprotected override _overlay: Overlay,\r\n\t\tprotected override _elementRef: ElementRef<HTMLElement>,\r\n\t\tprotected override _viewContainerRef: ViewContainerRef,\r\n\t\tprotected override _renderer: Renderer2,\r\n\t\tprivate _adapter: ALuDateAdapter<D>,\r\n\t) {\r\n\t\tsuper(_changeDetectorRef, _overlay, _elementRef, _viewContainerRef, _renderer);\r\n\t\tthis.overlapInput = true;\r\n\t}\r\n\r\n\tvalidate(control: AbstractControl): ValidationErrors | null {\r\n\t\tconst d = control.value as D;\r\n\t\tif (!d) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tif (!this._adapter.isValid(d)) {\r\n\t\t\treturn { date: true };\r\n\t\t}\r\n\t\tif (!!this.min && this._adapter.isValid(this.min) && this._adapter.compare(this.min, d, ELuDateGranularity.day) > 0) {\r\n\t\t\treturn { min: true };\r\n\t\t}\r\n\t\tif (!!this.max && this._adapter.isValid(this.max) && this._adapter.compare(this.max, d, ELuDateGranularity.day) < 0) {\r\n\t\t\treturn { max: true };\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n}\r\n","<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper notranslate\">\r\n\t\t<ng-container #display></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<lu-input-clearer [class.u-displayNone]=\"hideClearer\" [attr.aria-hidden]=\"hideClearer\"></lu-input-clearer>\r\n</div>\r\n<ng-template luDisplayer let-value> {{ value | luDate: format }} </ng-template>\r\n<lu-date-picker [min]=\"min\" [max]=\"max\" [granularity]=\"granularity\" [startOn]=\"startOn\"></lu-date-picker>\r\n","import { NgModule } from '@angular/core';\r\nimport { LuDateSelectInputComponent } from './date-select-input.component';\r\n\r\n@NgModule({\r\n\timports: [LuDateSelectInputComponent],\r\n\texports: [LuDateSelectInputComponent],\r\n})\r\nexport class LuDateSelectInputModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { LuDateAdapterPipe } from './adapter/index';\r\nimport { LuCalendarInputComponent } from './calendar/index';\r\nimport { LuDateInputDirective } from './input/index';\r\nimport { LuDatePickerComponent } from './picker/index';\r\nimport { LuDateSelectInputComponent } from './select/index';\r\n\r\n@NgModule({\r\n\timports: [LuCalendarInputComponent, LuDatePickerComponent, LuDateInputDirective, LuDateAdapterPipe, LuDateSelectInputComponent],\r\n\texports: [LuCalendarInputComponent, LuDatePickerComponent, LuDateInputDirective, LuDateAdapterPipe, LuDateSelectInputComponent],\r\n})\r\nexport class LuDateModule {}\r\n","/*\r\n * Public API Surface of safe-content\r\n */\r\n\r\nexport * from './lib/index';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LuCalendarItemFactory","i2","i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucca-front/ng",
3
- "version": "16.2.2",
3
+ "version": "16.2.4",
4
4
  "description": "A library of icons made by the team @Lucca",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,8 +26,8 @@
26
26
  "@angular/common": "^16.0.0",
27
27
  "@angular/core": "^16.0.0",
28
28
  "@angular/cdk": "^16.0.0",
29
- "@lucca-front/icons": "v16.2.2",
30
- "@lucca-front/scss": "v16.2.2",
29
+ "@lucca-front/icons": "v16.2.4",
30
+ "@lucca-front/scss": "v16.2.4",
31
31
  "@types/dompurify": "^3.0.0",
32
32
  "dompurify": "^3.0.0",
33
33
  "rxjs": "^6.0.0 || ^7.0.0"
@@ -65,23 +65,17 @@
65
65
  "esm": "./esm2022/api/lucca-front-ng-api.mjs",
66
66
  "default": "./fesm2022/lucca-front-ng-api.mjs"
67
67
  },
68
- "./core": {
69
- "types": "./core/index.d.ts",
70
- "esm2022": "./esm2022/core/lucca-front-ng-core.mjs",
71
- "esm": "./esm2022/core/lucca-front-ng-core.mjs",
72
- "default": "./fesm2022/lucca-front-ng-core.mjs"
73
- },
74
68
  "./date": {
75
69
  "types": "./date/index.d.ts",
76
70
  "esm2022": "./esm2022/date/lucca-front-ng-date.mjs",
77
71
  "esm": "./esm2022/date/lucca-front-ng-date.mjs",
78
72
  "default": "./fesm2022/lucca-front-ng-date.mjs"
79
73
  },
80
- "./department": {
81
- "types": "./department/index.d.ts",
82
- "esm2022": "./esm2022/department/lucca-front-ng-department.mjs",
83
- "esm": "./esm2022/department/lucca-front-ng-department.mjs",
84
- "default": "./fesm2022/lucca-front-ng-department.mjs"
74
+ "./core": {
75
+ "types": "./core/index.d.ts",
76
+ "esm2022": "./esm2022/core/lucca-front-ng-core.mjs",
77
+ "esm": "./esm2022/core/lucca-front-ng-core.mjs",
78
+ "default": "./fesm2022/lucca-front-ng-core.mjs"
85
79
  },
86
80
  "./dropdown": {
87
81
  "types": "./dropdown/index.d.ts",
@@ -89,6 +83,12 @@
89
83
  "esm": "./esm2022/dropdown/lucca-front-ng-dropdown.mjs",
90
84
  "default": "./fesm2022/lucca-front-ng-dropdown.mjs"
91
85
  },
86
+ "./department": {
87
+ "types": "./department/index.d.ts",
88
+ "esm2022": "./esm2022/department/lucca-front-ng-department.mjs",
89
+ "esm": "./esm2022/department/lucca-front-ng-department.mjs",
90
+ "default": "./fesm2022/lucca-front-ng-department.mjs"
91
+ },
92
92
  "./establishment": {
93
93
  "types": "./establishment/index.d.ts",
94
94
  "esm2022": "./esm2022/establishment/lucca-front-ng-establishment.mjs",
@@ -101,36 +101,36 @@
101
101
  "esm": "./esm2022/formly/lucca-front-ng-formly.mjs",
102
102
  "default": "./fesm2022/lucca-front-ng-formly.mjs"
103
103
  },
104
- "./material": {
105
- "types": "./material/index.d.ts",
106
- "esm2022": "./esm2022/material/lucca-front-ng-material.mjs",
107
- "esm": "./esm2022/material/lucca-front-ng-material.mjs",
108
- "default": "./fesm2022/lucca-front-ng-material.mjs"
109
- },
110
104
  "./input": {
111
105
  "types": "./input/index.d.ts",
112
106
  "esm2022": "./esm2022/input/lucca-front-ng-input.mjs",
113
107
  "esm": "./esm2022/input/lucca-front-ng-input.mjs",
114
108
  "default": "./fesm2022/lucca-front-ng-input.mjs"
115
109
  },
110
+ "./material": {
111
+ "types": "./material/index.d.ts",
112
+ "esm2022": "./esm2022/material/lucca-front-ng-material.mjs",
113
+ "esm": "./esm2022/material/lucca-front-ng-material.mjs",
114
+ "default": "./fesm2022/lucca-front-ng-material.mjs"
115
+ },
116
116
  "./modal": {
117
117
  "types": "./modal/index.d.ts",
118
118
  "esm2022": "./esm2022/modal/lucca-front-ng-modal.mjs",
119
119
  "esm": "./esm2022/modal/lucca-front-ng-modal.mjs",
120
120
  "default": "./fesm2022/lucca-front-ng-modal.mjs"
121
121
  },
122
- "./number": {
123
- "types": "./number/index.d.ts",
124
- "esm2022": "./esm2022/number/lucca-front-ng-number.mjs",
125
- "esm": "./esm2022/number/lucca-front-ng-number.mjs",
126
- "default": "./fesm2022/lucca-front-ng-number.mjs"
127
- },
128
122
  "./option": {
129
123
  "types": "./option/index.d.ts",
130
124
  "esm2022": "./esm2022/option/lucca-front-ng-option.mjs",
131
125
  "esm": "./esm2022/option/lucca-front-ng-option.mjs",
132
126
  "default": "./fesm2022/lucca-front-ng-option.mjs"
133
127
  },
128
+ "./number": {
129
+ "types": "./number/index.d.ts",
130
+ "esm2022": "./esm2022/number/lucca-front-ng-number.mjs",
131
+ "esm": "./esm2022/number/lucca-front-ng-number.mjs",
132
+ "default": "./fesm2022/lucca-front-ng-number.mjs"
133
+ },
134
134
  "./picker": {
135
135
  "types": "./picker/index.d.ts",
136
136
  "esm2022": "./esm2022/picker/lucca-front-ng-picker.mjs",