@kirbydesign/designsystem 6.2.1 → 6.4.1

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.
Files changed (32) hide show
  1. package/esm2020/lib/components/accordion/accordion-item.component.mjs +25 -3
  2. package/esm2020/lib/components/button/button.component.mjs +2 -2
  3. package/esm2020/lib/components/calendar/calendar.component.mjs +18 -6
  4. package/esm2020/lib/components/card/card-footer/card-footer.component.mjs +2 -2
  5. package/esm2020/lib/components/fab-sheet/fab-sheet.component.mjs +4 -4
  6. package/esm2020/lib/components/form-field/input/input.component.mjs +2 -2
  7. package/esm2020/lib/components/form-field/textarea/textarea.component.mjs +2 -2
  8. package/esm2020/lib/components/icon/icon.component.mjs +1 -1
  9. package/esm2020/lib/components/item/item.component.mjs +1 -1
  10. package/esm2020/lib/components/list/list-item/list-item.component.mjs +2 -2
  11. package/esm2020/lib/components/list/list.component.mjs +2 -2
  12. package/esm2020/lib/components/modal/footer/modal-footer.component.mjs +2 -2
  13. package/esm2020/lib/components/modal/modal-wrapper/modal-wrapper.component.mjs +10 -6
  14. package/esm2020/lib/components/modal/services/action-sheet.helper.mjs +4 -1
  15. package/esm2020/lib/components/modal/services/modal-animation-builder.service.mjs +62 -50
  16. package/esm2020/lib/components/modal/services/modal.helper.mjs +4 -3
  17. package/esm2020/lib/components/page/page.component.mjs +15 -14
  18. package/esm2020/lib/components/range/range.component.mjs +1 -1
  19. package/esm2020/lib/components/segmented-control/segmented-control.component.mjs +12 -6
  20. package/esm2020/lib/components/slide-button/slide-button.component.mjs +2 -2
  21. package/esm2020/lib/components/toggle/toggle.component.mjs +1 -1
  22. package/fesm2015/kirbydesign-designsystem.mjs +164 -102
  23. package/fesm2015/kirbydesign-designsystem.mjs.map +1 -1
  24. package/fesm2020/kirbydesign-designsystem.mjs +164 -102
  25. package/fesm2020/kirbydesign-designsystem.mjs.map +1 -1
  26. package/lib/components/accordion/accordion-item.component.d.ts +8 -2
  27. package/lib/components/calendar/calendar.component.d.ts +5 -1
  28. package/lib/components/modal/modal-wrapper/modal-wrapper.component.d.ts +1 -0
  29. package/lib/components/modal/services/modal-animation-builder.service.d.ts +14 -3
  30. package/lib/components/page/page.component.d.ts +2 -2
  31. package/lib/components/segmented-control/segmented-control.component.d.ts +3 -2
  32. package/package.json +8 -8
@@ -7,13 +7,31 @@ let uniqueId = 0;
7
7
  export class AccordionItemComponent {
8
8
  constructor() {
9
9
  this.isExpanded = false;
10
+ this.isDisabled = false;
10
11
  // IDs used for a11y labelling
11
12
  this._titleId = `kirby-accordion-item-title-${++uniqueId}`;
12
13
  this._contentId = `kirby-accordion-item-content-${uniqueId}`;
13
14
  }
15
+ ngOnInit() {
16
+ if (this.isDisabled) {
17
+ this.isExpanded = false;
18
+ }
19
+ }
20
+ getTitle() {
21
+ if (this.isDisabled && !!this.disabledTitle) {
22
+ return this.disabledTitle;
23
+ }
24
+ else {
25
+ return this.title;
26
+ }
27
+ }
28
+ _onToggleExpanded(event) {
29
+ event.preventDefault();
30
+ this.isExpanded = !this.isExpanded && !this.isDisabled;
31
+ }
14
32
  }
15
33
  /** @nocollapse */ AccordionItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- /** @nocollapse */ AccordionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: AccordionItemComponent, selector: "kirby-accordion-item", inputs: { title: "title", isExpanded: "isExpanded" }, ngImport: i0, template: "<ng-container>\n <div\n (click)=\"isExpanded = !isExpanded\"\n class=\"header\"\n role=\"button\"\n [class.expanded]=\"isExpanded\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"_contentId\"\n [id]=\"_titleId\"\n >\n <div class=\"title\">{{ title }}</div>\n <kirby-icon name=\"arrow-down\"></kirby-icon>\n </div>\n <div\n class=\"content\"\n role=\"region\"\n [attr.aria-labelledby]=\"_titleId\"\n [id]=\"_contentId\"\n [@isExpanded]=\"!!isExpanded\"\n >\n <div class=\"content-body\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:block;border-top:1px solid var(--kirby-medium);border-bottom:1px solid var(--kirby-medium)}.header{display:flex;align-items:center;height:56px;padding-left:16px;padding-right:16px;cursor:pointer;-webkit-user-select:none;user-select:none}.title{flex-grow:2}.kirby-icon{transition:transform .2s}.content{overflow:hidden}.content-body{padding:0 16px 16px}.expanded .title{font-weight:700}.expanded .kirby-icon{transform:rotate(180deg)}:host-context(kirby-accordion):not(:first-child){border-top:none}:host-context(kirby-card){border-color:var(--kirby-background-color)}:host-context(kirby-card):first-child{border-top:none}:host-context(kirby-card):last-child{border-bottom:none}\n"], components: [{ type: i1.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }], animations: [
34
+ /** @nocollapse */ AccordionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: AccordionItemComponent, selector: "kirby-accordion-item", inputs: { title: "title", isExpanded: "isExpanded", isDisabled: "isDisabled", disabledTitle: "disabledTitle" }, ngImport: i0, template: "<ng-container>\n <div\n (click)=\"_onToggleExpanded($event)\"\n (keydown.ENTER)=\"_onToggleExpanded($event)\"\n (keydown.space)=\"_onToggleExpanded($event)\"\n class=\"header\"\n role=\"button\"\n [class.disabled]=\"isDisabled\"\n [class.expanded]=\"isExpanded\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"_contentId\"\n [id]=\"_titleId\"\n >\n <div class=\"title\">{{ getTitle() }}</div>\n <kirby-icon name=\"arrow-down\"></kirby-icon>\n </div>\n <div\n class=\"content\"\n role=\"region\"\n [attr.aria-labelledby]=\"_titleId\"\n [id]=\"_contentId\"\n [@isExpanded]=\"!!isExpanded\"\n >\n <div class=\"content-body\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:block;border-top:1px solid var(--kirby-medium);border-bottom:1px solid var(--kirby-medium)}.header{display:flex;align-items:center;height:56px;padding-left:16px;padding-right:16px;cursor:pointer;-webkit-user-select:none;user-select:none}.title{flex-grow:2}.kirby-icon{transition:transform .2s}.content{overflow:hidden}.content-body{padding:0 16px 16px}.disabled{pointer-events:none}.disabled .kirby-icon{color:var(--kirby-semi-dark)}.disabled .title{color:var(--kirby-text-color-semi-dark)}.expanded .title{font-weight:700}.expanded .kirby-icon{transform:rotate(180deg)}:host-context(kirby-accordion):not(:first-child){border-top:none}:host-context(kirby-card){border-color:var(--kirby-background-color)}:host-context(kirby-card):first-child{border-top:none}:host-context(kirby-card):last-child{border-bottom:none}\n"], components: [{ type: i1.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }], animations: [
17
35
  trigger('isExpanded', [
18
36
  state('true', style({ height: '*', visibility: 'visible' })),
19
37
  state('false', style({ height: '0px', visibility: 'hidden' })),
@@ -28,10 +46,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
28
46
  state('false', style({ height: '0px', visibility: 'hidden' })),
29
47
  transition('true <=> false', animate('0.2s')),
30
48
  ]),
31
- ], template: "<ng-container>\n <div\n (click)=\"isExpanded = !isExpanded\"\n class=\"header\"\n role=\"button\"\n [class.expanded]=\"isExpanded\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"_contentId\"\n [id]=\"_titleId\"\n >\n <div class=\"title\">{{ title }}</div>\n <kirby-icon name=\"arrow-down\"></kirby-icon>\n </div>\n <div\n class=\"content\"\n role=\"region\"\n [attr.aria-labelledby]=\"_titleId\"\n [id]=\"_contentId\"\n [@isExpanded]=\"!!isExpanded\"\n >\n <div class=\"content-body\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:block;border-top:1px solid var(--kirby-medium);border-bottom:1px solid var(--kirby-medium)}.header{display:flex;align-items:center;height:56px;padding-left:16px;padding-right:16px;cursor:pointer;-webkit-user-select:none;user-select:none}.title{flex-grow:2}.kirby-icon{transition:transform .2s}.content{overflow:hidden}.content-body{padding:0 16px 16px}.expanded .title{font-weight:700}.expanded .kirby-icon{transform:rotate(180deg)}:host-context(kirby-accordion):not(:first-child){border-top:none}:host-context(kirby-card){border-color:var(--kirby-background-color)}:host-context(kirby-card):first-child{border-top:none}:host-context(kirby-card):last-child{border-bottom:none}\n"] }]
49
+ ], template: "<ng-container>\n <div\n (click)=\"_onToggleExpanded($event)\"\n (keydown.ENTER)=\"_onToggleExpanded($event)\"\n (keydown.space)=\"_onToggleExpanded($event)\"\n class=\"header\"\n role=\"button\"\n [class.disabled]=\"isDisabled\"\n [class.expanded]=\"isExpanded\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"_contentId\"\n [id]=\"_titleId\"\n >\n <div class=\"title\">{{ getTitle() }}</div>\n <kirby-icon name=\"arrow-down\"></kirby-icon>\n </div>\n <div\n class=\"content\"\n role=\"region\"\n [attr.aria-labelledby]=\"_titleId\"\n [id]=\"_contentId\"\n [@isExpanded]=\"!!isExpanded\"\n >\n <div class=\"content-body\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:block;border-top:1px solid var(--kirby-medium);border-bottom:1px solid var(--kirby-medium)}.header{display:flex;align-items:center;height:56px;padding-left:16px;padding-right:16px;cursor:pointer;-webkit-user-select:none;user-select:none}.title{flex-grow:2}.kirby-icon{transition:transform .2s}.content{overflow:hidden}.content-body{padding:0 16px 16px}.disabled{pointer-events:none}.disabled .kirby-icon{color:var(--kirby-semi-dark)}.disabled .title{color:var(--kirby-text-color-semi-dark)}.expanded .title{font-weight:700}.expanded .kirby-icon{transform:rotate(180deg)}:host-context(kirby-accordion):not(:first-child){border-top:none}:host-context(kirby-card){border-color:var(--kirby-background-color)}:host-context(kirby-card):first-child{border-top:none}:host-context(kirby-card):last-child{border-bottom:none}\n"] }]
32
50
  }], propDecorators: { title: [{
33
51
  type: Input
34
52
  }], isExpanded: [{
35
53
  type: Input
54
+ }], isDisabled: [{
55
+ type: Input
56
+ }], disabledTitle: [{
57
+ type: Input
36
58
  }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUUxRSw0Q0FBNEM7QUFDNUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBZWpCLE1BQU0sT0FBTyxzQkFBc0I7SUFibkM7UUFlVyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRXJDLDhCQUE4QjtRQUM5QixhQUFRLEdBQUcsOEJBQThCLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDdEQsZUFBVSxHQUFHLGdDQUFnQyxRQUFRLEVBQUUsQ0FBQztLQUN6RDs7c0lBUFksc0JBQXNCOzBIQUF0QixzQkFBc0Isa0hDbkJuQyxvbkJBeUJBLDB6QkRkYztRQUNWLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDcEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQzVELEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM5RCxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzlDLENBQUM7S0FDSDsyRkFFVSxzQkFBc0I7a0JBYmxDLFNBQVM7K0JBQ0Usc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0sY0FDbkM7d0JBQ1YsT0FBTyxDQUFDLFlBQVksRUFBRTs0QkFDcEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDOzRCQUM1RCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7NEJBQzlELFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7eUJBQzlDLENBQUM7cUJBQ0g7OEJBR1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIENvdW50ZXIgZm9yIGdlbmVyYXRpbmcgdW5pcXVlIGVsZW1lbnQgaWRzXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1hY2NvcmRpb24taXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignaXNFeHBhbmRlZCcsIFtcbiAgICAgIHN0YXRlKCd0cnVlJywgc3R5bGUoeyBoZWlnaHQ6ICcqJywgdmlzaWJpbGl0eTogJ3Zpc2libGUnIH0pKSxcbiAgICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgaGVpZ2h0OiAnMHB4JywgdmlzaWJpbGl0eTogJ2hpZGRlbicgfSkpLFxuICAgICAgdHJhbnNpdGlvbigndHJ1ZSA8PT4gZmFsc2UnLCBhbmltYXRlKCcwLjJzJykpLFxuICAgIF0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25JdGVtQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgaXNFeHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIElEcyB1c2VkIGZvciBhMTF5IGxhYmVsbGluZ1xuICBfdGl0bGVJZCA9IGBraXJieS1hY2NvcmRpb24taXRlbS10aXRsZS0keysrdW5pcXVlSWR9YDtcbiAgX2NvbnRlbnRJZCA9IGBraXJieS1hY2NvcmRpb24taXRlbS1jb250ZW50LSR7dW5pcXVlSWR9YDtcbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxkaXZcbiAgICAoY2xpY2spPVwiaXNFeHBhbmRlZCA9ICFpc0V4cGFuZGVkXCJcbiAgICBjbGFzcz1cImhlYWRlclwiXG4gICAgcm9sZT1cImJ1dHRvblwiXG4gICAgW2NsYXNzLmV4cGFuZGVkXT1cImlzRXhwYW5kZWRcIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNFeHBhbmRlZFwiXG4gICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJfY29udGVudElkXCJcbiAgICBbaWRdPVwiX3RpdGxlSWRcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+e3sgdGl0bGUgfX08L2Rpdj5cbiAgICA8a2lyYnktaWNvbiBuYW1lPVwiYXJyb3ctZG93blwiPjwva2lyYnktaWNvbj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNvbnRlbnRcIlxuICAgIHJvbGU9XCJyZWdpb25cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJfdGl0bGVJZFwiXG4gICAgW2lkXT1cIl9jb250ZW50SWRcIlxuICAgIFtAaXNFeHBhbmRlZF09XCIhIWlzRXhwYW5kZWRcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtYm9keVwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7OztBQUVsRiw0Q0FBNEM7QUFDNUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBZWpCLE1BQU0sT0FBTyxzQkFBc0I7SUFibkM7UUFlVyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFzQnJDLDhCQUE4QjtRQUM5QixhQUFRLEdBQUcsOEJBQThCLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDdEQsZUFBVSxHQUFHLGdDQUFnQyxRQUFRLEVBQUUsQ0FBQztLQUN6RDtJQXRCQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDM0MsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQzNCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBb0I7UUFDcEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6RCxDQUFDOztzSUF2QlUsc0JBQXNCOzBIQUF0QixzQkFBc0IsNEtDbkJuQyxxd0JBNEJBLG84QkRqQmM7UUFDVixPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3BCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUM1RCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDOUQsVUFBVSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM5QyxDQUFDO0tBQ0g7MkZBRVUsc0JBQXNCO2tCQWJsQyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DO3dCQUNWLE9BQU8sQ0FBQyxZQUFZLEVBQUU7NEJBQ3BCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQzs0QkFDNUQsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDOzRCQUM5RCxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3lCQUM5QyxDQUFDO3FCQUNIOzhCQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBDb3VudGVyIGZvciBnZW5lcmF0aW5nIHVuaXF1ZSBlbGVtZW50IGlkc1xubGV0IHVuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktYWNjb3JkaW9uLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2lzRXhwYW5kZWQnLCBbXG4gICAgICBzdGF0ZSgndHJ1ZScsIHN0eWxlKHsgaGVpZ2h0OiAnKicsIHZpc2liaWxpdHk6ICd2aXNpYmxlJyB9KSksXG4gICAgICBzdGF0ZSgnZmFsc2UnLCBzdHlsZSh7IGhlaWdodDogJzBweCcsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJ3RydWUgPD0+IGZhbHNlJywgYW5pbWF0ZSgnMC4ycycpKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzRXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZFRpdGxlOiBzdHJpbmc7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZ2V0VGl0bGUoKSB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCAmJiAhIXRoaXMuZGlzYWJsZWRUaXRsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWRUaXRsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudGl0bGU7XG4gICAgfVxuICB9XG5cbiAgX29uVG9nZ2xlRXhwYW5kZWQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaXNFeHBhbmRlZCA9ICF0aGlzLmlzRXhwYW5kZWQgJiYgIXRoaXMuaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8vIElEcyB1c2VkIGZvciBhMTF5IGxhYmVsbGluZ1xuICBfdGl0bGVJZCA9IGBraXJieS1hY2NvcmRpb24taXRlbS10aXRsZS0keysrdW5pcXVlSWR9YDtcbiAgX2NvbnRlbnRJZCA9IGBraXJieS1hY2NvcmRpb24taXRlbS1jb250ZW50LSR7dW5pcXVlSWR9YDtcbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxkaXZcbiAgICAoY2xpY2spPVwiX29uVG9nZ2xlRXhwYW5kZWQoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uRU5URVIpPVwiX29uVG9nZ2xlRXhwYW5kZWQoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uc3BhY2UpPVwiX29uVG9nZ2xlRXhwYW5kZWQoJGV2ZW50KVwiXG4gICAgY2xhc3M9XCJoZWFkZXJcIlxuICAgIHJvbGU9XCJidXR0b25cIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICBbY2xhc3MuZXhwYW5kZWRdPVwiaXNFeHBhbmRlZFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc0V4cGFuZGVkXCJcbiAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIl9jb250ZW50SWRcIlxuICAgIFtpZF09XCJfdGl0bGVJZFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj57eyBnZXRUaXRsZSgpIH19PC9kaXY+XG4gICAgPGtpcmJ5LWljb24gbmFtZT1cImFycm93LWRvd25cIj48L2tpcmJ5LWljb24+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjb250ZW50XCJcbiAgICByb2xlPVwicmVnaW9uXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiX3RpdGxlSWRcIlxuICAgIFtpZF09XCJfY29udGVudElkXCJcbiAgICBbQGlzRXhwYW5kZWRdPVwiISFpc0V4cGFuZGVkXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWJvZHlcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -52,10 +52,10 @@ export class ButtonComponent {
52
52
  }
53
53
  }
54
54
  /** @nocollapse */ ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ButtonComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
55
- /** @nocollapse */ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ButtonComponent, selector: "button[kirby-button],Button[kirby-button]", inputs: { attentionLevel: "attentionLevel", isDestructive: "isDestructive", themeColor: "themeColor", expand: "expand", isFloating: "isFloating", size: "size" }, host: { properties: { "class.attention-level1": "this.isAttentionLevel1", "class.attention-level2": "this.isAttentionLevel2", "class.attention-level3": "this.isAttentionLevel3", "class.attention-level4": "this.isAttentionLevel4", "class.destructive": "this.destructive", "class.floating": "this.isButtonFloating", "class.icon-only": "this.isIconOnly", "class.icon-left": "this.isIconLeft", "class.icon-right": "this.isIconRight", "class": "this._cssClass" } }, queries: [{ propertyName: "icon", first: true, predicate: IconComponent, descendants: true }, { propertyName: "iconElementRef", first: true, predicate: IconComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{position:relative;font-family:var(--kirby-font-family);background-color:var(--kirby-button-background-color, initial);color:var(--kirby-button-color, inherit);border-radius:999px;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:row;align-items:center;justify-content:center;transition:opacity .2s linear;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;font-size:14px;height:40px;min-width:88px;padding:0 24px;margin:4px;line-height:20px;outline:none;border:1px solid var(--kirby-button-border-color, transparent)}:host:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}:host.icon-left{padding-left:12px;padding-right:16px;--kirby-icon-margin-right: 8px}:host.icon-right{padding-left:16px;padding-right:12px;--kirby-icon-margin-left: 8px}:host.icon-only{width:40px;padding:0;min-width:unset}:host.sm{font-size:12px;height:32px;min-width:44px}:host.sm:not(.icon-only){padding-left:16px;padding-right:16px}:host.sm.icon-only{--kirby-icon-font-size: 16px;width:32px;min-width:unset}:host.sm.icon-left,:host.sm.icon-right{--kirby-icon-font-size: 16px;min-width:88px}:host.lg{font-size:16px;height:48px;min-width:220px}:host.lg.icon-only{width:48px;min-width:unset}:host.attention-level1{--kirby-button-background-color: var(--kirby-primary);--kirby-button-color: var(--kirby-primary-contrast)}:host.attention-level1.destructive{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}:host.attention-level2{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host.attention-level2.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host.attention-level3{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black);--kirby-button-border-color: var(--kirby-medium)}:host.attention-level3.destructive{--kirby-button-color: var(--kirby-danger)}:host.attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host.attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host[expand=block]{width:100%}@media (hover: hover){:host:focus{--kirby-button-border-color: #4d90fe}}@media (hover: hover){:host:hover{opacity:.8}}:host:active{opacity:.8}:host:disabled{background-color:var(--kirby-semi-light);color:var(--kirby-semi-dark-shade);border-color:transparent;pointer-events:none}:host :host-context(.default).attention-level2,:host :host-context(.kirby-color-brightness-white).attention-level2{--kirby-button-background-color: var(--kirby-black);--kirby-button-color: var(--kirby-black-contrast)}:host :host-context(.kirby-color-brightness-dark).attention-level3{--kirby-button-border-color: var(--kirby-white);--kirby-button-color: var(--kirby-white)}:host :host-context(.kirby-color-brightness-dark).attention-level4{--kirby-button-color: var(--kirby-white)}:host.floating{width:64px!important;height:64px!important;min-width:unset}:host.floating:not(:disabled){box-shadow:0 20px 30px -15px #1c1c1c4d,0 0 5px #1c1c1c14}:host-context(kirby-item)[slot=end]{margin-inline-start:16px}:host-context(kirby-alert).ok-btn{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(ion-toolbar kirby-page-actions){font-size:14px;margin:0;height:44px}:host-context(ion-toolbar kirby-page-actions).icon-only{width:44px}:host-context(ion-toolbar kirby-page-actions).attention-level1,:host-context(ion-toolbar kirby-page-actions).attention-level2,:host-context(ion-toolbar kirby-page-actions).attention-level3,:host-context(ion-toolbar kirby-page-actions).attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host-context(ion-toolbar kirby-page-actions).attention-level1.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level2.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level3.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host-context(.page-title kirby-page-actions).attention-level1,:host-context(.page-title kirby-page-actions).attention-level2,:host-context(.page-title kirby-page-actions).attention-level3,:host-context(.page-title kirby-page-actions).attention-level4{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host-context(.page-title kirby-page-actions).attention-level1.destructive,:host-context(.page-title kirby-page-actions).attention-level2.destructive,:host-context(.page-title kirby-page-actions).attention-level3.destructive,:host-context(.page-title kirby-page-actions).attention-level4.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host-context(kirby-empty-state .content){font-size:16px;height:48px;min-width:220px}:host-context(kirby-empty-state .content).icon-only{width:48px;min-width:unset}:host-context(kirby-dropdown){justify-content:space-between}:host-context(kirby-toggle-button).success{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(kirby-toggle-button).warning{--kirby-button-background-color: var(--kirby-warning);--kirby-button-color: var(--kirby-warning-contrast)}:host-context(kirby-toggle-button).danger{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
+ /** @nocollapse */ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ButtonComponent, selector: "button[kirby-button],Button[kirby-button]", inputs: { attentionLevel: "attentionLevel", isDestructive: "isDestructive", themeColor: "themeColor", expand: "expand", isFloating: "isFloating", size: "size" }, host: { properties: { "class.attention-level1": "this.isAttentionLevel1", "class.attention-level2": "this.isAttentionLevel2", "class.attention-level3": "this.isAttentionLevel3", "class.attention-level4": "this.isAttentionLevel4", "class.destructive": "this.destructive", "class.floating": "this.isButtonFloating", "class.icon-only": "this.isIconOnly", "class.icon-left": "this.isIconLeft", "class.icon-right": "this.isIconRight", "class": "this._cssClass" } }, queries: [{ propertyName: "icon", first: true, predicate: IconComponent, descendants: true }, { propertyName: "iconElementRef", first: true, predicate: IconComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{position:relative;font-family:var(--kirby-font-family);background-color:var(--kirby-button-background-color, initial);color:var(--kirby-button-color, inherit);border-radius:999px;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:row;align-items:center;justify-content:center;transition:opacity .2s linear;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;font-size:14px;height:40px;min-width:88px;padding:0 24px;margin:4px;line-height:20px;outline:none;border:1px solid var(--kirby-button-border-color, transparent)}:host:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}:host.icon-left{padding-left:12px;padding-right:16px;--kirby-icon-margin-right: 8px}:host.icon-right{padding-left:16px;padding-right:12px;--kirby-icon-margin-left: 8px}:host.icon-only{width:40px;padding:0;min-width:unset}:host.sm{font-size:12px;height:32px;min-width:44px}:host.sm:not(.icon-only){padding-left:16px;padding-right:16px}:host.sm.icon-only{--kirby-icon-font-size: 16px;width:32px;min-width:unset}:host.sm.icon-left,:host.sm.icon-right{--kirby-icon-font-size: 16px;min-width:88px}:host.lg{font-size:16px;height:48px;min-width:220px}:host.lg.icon-only{width:48px;min-width:unset}:host.attention-level1{--kirby-button-background-color: var(--kirby-primary);--kirby-button-color: var(--kirby-primary-contrast)}:host.attention-level1.destructive{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}:host.attention-level2{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host.attention-level2.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host.attention-level3{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black);--kirby-button-border-color: var(--kirby-medium)}:host.attention-level3.destructive{--kirby-button-color: var(--kirby-danger)}:host.attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host.attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host[expand=block]{width:100%}@media (hover: hover){:host:focus{--kirby-button-border-color: rgb(77, 144, 254)}}@media (hover: hover){:host:hover{opacity:.8}}:host:active{opacity:.8}:host:disabled{background-color:var(--kirby-semi-light);color:var(--kirby-semi-dark-shade);border-color:transparent;pointer-events:none}:host :host-context(.default).attention-level2,:host :host-context(.kirby-color-brightness-white).attention-level2{--kirby-button-background-color: var(--kirby-black);--kirby-button-color: var(--kirby-black-contrast)}:host :host-context(.kirby-color-brightness-dark).attention-level3{--kirby-button-border-color: var(--kirby-white);--kirby-button-color: var(--kirby-white)}:host :host-context(.kirby-color-brightness-dark).attention-level4{--kirby-button-color: var(--kirby-white)}:host.floating{width:64px!important;height:64px!important;min-width:unset}:host.floating:not(:disabled){box-shadow:0 20px 30px -15px #1c1c1c4d,0 0 5px #1c1c1c14}:host-context(kirby-item)[slot=end]{margin-inline-start:16px}:host-context(kirby-alert).ok-btn{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(ion-toolbar kirby-page-actions){font-size:14px;margin:0;height:44px}:host-context(ion-toolbar kirby-page-actions).icon-only{width:44px}:host-context(ion-toolbar kirby-page-actions).attention-level1,:host-context(ion-toolbar kirby-page-actions).attention-level2,:host-context(ion-toolbar kirby-page-actions).attention-level3,:host-context(ion-toolbar kirby-page-actions).attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host-context(ion-toolbar kirby-page-actions).attention-level1.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level2.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level3.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host-context(.page-title kirby-page-actions).attention-level1,:host-context(.page-title kirby-page-actions).attention-level2,:host-context(.page-title kirby-page-actions).attention-level3,:host-context(.page-title kirby-page-actions).attention-level4{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host-context(.page-title kirby-page-actions).attention-level1.destructive,:host-context(.page-title kirby-page-actions).attention-level2.destructive,:host-context(.page-title kirby-page-actions).attention-level3.destructive,:host-context(.page-title kirby-page-actions).attention-level4.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host-context(kirby-empty-state .content){font-size:16px;height:48px;min-width:220px}:host-context(kirby-empty-state .content).icon-only{width:48px;min-width:unset}:host-context(kirby-dropdown){justify-content:space-between}:host-context(kirby-toggle-button).success{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(kirby-toggle-button).warning{--kirby-button-background-color: var(--kirby-warning);--kirby-button-color: var(--kirby-warning-contrast)}:host-context(kirby-toggle-button).danger{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ButtonComponent, decorators: [{
57
57
  type: Component,
58
- args: [{ selector: 'button[kirby-button],Button[kirby-button]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{position:relative;font-family:var(--kirby-font-family);background-color:var(--kirby-button-background-color, initial);color:var(--kirby-button-color, inherit);border-radius:999px;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:row;align-items:center;justify-content:center;transition:opacity .2s linear;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;font-size:14px;height:40px;min-width:88px;padding:0 24px;margin:4px;line-height:20px;outline:none;border:1px solid var(--kirby-button-border-color, transparent)}:host:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}:host.icon-left{padding-left:12px;padding-right:16px;--kirby-icon-margin-right: 8px}:host.icon-right{padding-left:16px;padding-right:12px;--kirby-icon-margin-left: 8px}:host.icon-only{width:40px;padding:0;min-width:unset}:host.sm{font-size:12px;height:32px;min-width:44px}:host.sm:not(.icon-only){padding-left:16px;padding-right:16px}:host.sm.icon-only{--kirby-icon-font-size: 16px;width:32px;min-width:unset}:host.sm.icon-left,:host.sm.icon-right{--kirby-icon-font-size: 16px;min-width:88px}:host.lg{font-size:16px;height:48px;min-width:220px}:host.lg.icon-only{width:48px;min-width:unset}:host.attention-level1{--kirby-button-background-color: var(--kirby-primary);--kirby-button-color: var(--kirby-primary-contrast)}:host.attention-level1.destructive{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}:host.attention-level2{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host.attention-level2.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host.attention-level3{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black);--kirby-button-border-color: var(--kirby-medium)}:host.attention-level3.destructive{--kirby-button-color: var(--kirby-danger)}:host.attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host.attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host[expand=block]{width:100%}@media (hover: hover){:host:focus{--kirby-button-border-color: #4d90fe}}@media (hover: hover){:host:hover{opacity:.8}}:host:active{opacity:.8}:host:disabled{background-color:var(--kirby-semi-light);color:var(--kirby-semi-dark-shade);border-color:transparent;pointer-events:none}:host :host-context(.default).attention-level2,:host :host-context(.kirby-color-brightness-white).attention-level2{--kirby-button-background-color: var(--kirby-black);--kirby-button-color: var(--kirby-black-contrast)}:host :host-context(.kirby-color-brightness-dark).attention-level3{--kirby-button-border-color: var(--kirby-white);--kirby-button-color: var(--kirby-white)}:host :host-context(.kirby-color-brightness-dark).attention-level4{--kirby-button-color: var(--kirby-white)}:host.floating{width:64px!important;height:64px!important;min-width:unset}:host.floating:not(:disabled){box-shadow:0 20px 30px -15px #1c1c1c4d,0 0 5px #1c1c1c14}:host-context(kirby-item)[slot=end]{margin-inline-start:16px}:host-context(kirby-alert).ok-btn{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(ion-toolbar kirby-page-actions){font-size:14px;margin:0;height:44px}:host-context(ion-toolbar kirby-page-actions).icon-only{width:44px}:host-context(ion-toolbar kirby-page-actions).attention-level1,:host-context(ion-toolbar kirby-page-actions).attention-level2,:host-context(ion-toolbar kirby-page-actions).attention-level3,:host-context(ion-toolbar kirby-page-actions).attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host-context(ion-toolbar kirby-page-actions).attention-level1.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level2.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level3.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host-context(.page-title kirby-page-actions).attention-level1,:host-context(.page-title kirby-page-actions).attention-level2,:host-context(.page-title kirby-page-actions).attention-level3,:host-context(.page-title kirby-page-actions).attention-level4{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host-context(.page-title kirby-page-actions).attention-level1.destructive,:host-context(.page-title kirby-page-actions).attention-level2.destructive,:host-context(.page-title kirby-page-actions).attention-level3.destructive,:host-context(.page-title kirby-page-actions).attention-level4.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host-context(kirby-empty-state .content){font-size:16px;height:48px;min-width:220px}:host-context(kirby-empty-state .content).icon-only{width:48px;min-width:unset}:host-context(kirby-dropdown){justify-content:space-between}:host-context(kirby-toggle-button).success{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(kirby-toggle-button).warning{--kirby-button-background-color: var(--kirby-warning);--kirby-button-color: var(--kirby-warning-contrast)}:host-context(kirby-toggle-button).danger{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}\n"] }]
58
+ args: [{ selector: 'button[kirby-button],Button[kirby-button]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{position:relative;font-family:var(--kirby-font-family);background-color:var(--kirby-button-background-color, initial);color:var(--kirby-button-color, inherit);border-radius:999px;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:row;align-items:center;justify-content:center;transition:opacity .2s linear;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;font-size:14px;height:40px;min-width:88px;padding:0 24px;margin:4px;line-height:20px;outline:none;border:1px solid var(--kirby-button-border-color, transparent)}:host:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}:host.icon-left{padding-left:12px;padding-right:16px;--kirby-icon-margin-right: 8px}:host.icon-right{padding-left:16px;padding-right:12px;--kirby-icon-margin-left: 8px}:host.icon-only{width:40px;padding:0;min-width:unset}:host.sm{font-size:12px;height:32px;min-width:44px}:host.sm:not(.icon-only){padding-left:16px;padding-right:16px}:host.sm.icon-only{--kirby-icon-font-size: 16px;width:32px;min-width:unset}:host.sm.icon-left,:host.sm.icon-right{--kirby-icon-font-size: 16px;min-width:88px}:host.lg{font-size:16px;height:48px;min-width:220px}:host.lg.icon-only{width:48px;min-width:unset}:host.attention-level1{--kirby-button-background-color: var(--kirby-primary);--kirby-button-color: var(--kirby-primary-contrast)}:host.attention-level1.destructive{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}:host.attention-level2{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host.attention-level2.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host.attention-level3{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black);--kirby-button-border-color: var(--kirby-medium)}:host.attention-level3.destructive{--kirby-button-color: var(--kirby-danger)}:host.attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host.attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host[expand=block]{width:100%}@media (hover: hover){:host:focus{--kirby-button-border-color: rgb(77, 144, 254)}}@media (hover: hover){:host:hover{opacity:.8}}:host:active{opacity:.8}:host:disabled{background-color:var(--kirby-semi-light);color:var(--kirby-semi-dark-shade);border-color:transparent;pointer-events:none}:host :host-context(.default).attention-level2,:host :host-context(.kirby-color-brightness-white).attention-level2{--kirby-button-background-color: var(--kirby-black);--kirby-button-color: var(--kirby-black-contrast)}:host :host-context(.kirby-color-brightness-dark).attention-level3{--kirby-button-border-color: var(--kirby-white);--kirby-button-color: var(--kirby-white)}:host :host-context(.kirby-color-brightness-dark).attention-level4{--kirby-button-color: var(--kirby-white)}:host.floating{width:64px!important;height:64px!important;min-width:unset}:host.floating:not(:disabled){box-shadow:0 20px 30px -15px #1c1c1c4d,0 0 5px #1c1c1c14}:host-context(kirby-item)[slot=end]{margin-inline-start:16px}:host-context(kirby-alert).ok-btn{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(ion-toolbar kirby-page-actions){font-size:14px;margin:0;height:44px}:host-context(ion-toolbar kirby-page-actions).icon-only{width:44px}:host-context(ion-toolbar kirby-page-actions).attention-level1,:host-context(ion-toolbar kirby-page-actions).attention-level2,:host-context(ion-toolbar kirby-page-actions).attention-level3,:host-context(ion-toolbar kirby-page-actions).attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host-context(ion-toolbar kirby-page-actions).attention-level1.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level2.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level3.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host-context(.page-title kirby-page-actions).attention-level1,:host-context(.page-title kirby-page-actions).attention-level2,:host-context(.page-title kirby-page-actions).attention-level3,:host-context(.page-title kirby-page-actions).attention-level4{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host-context(.page-title kirby-page-actions).attention-level1.destructive,:host-context(.page-title kirby-page-actions).attention-level2.destructive,:host-context(.page-title kirby-page-actions).attention-level3.destructive,:host-context(.page-title kirby-page-actions).attention-level4.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host-context(kirby-empty-state .content){font-size:16px;height:48px;min-width:220px}:host-context(kirby-empty-state .content).icon-only{width:48px;min-width:unset}:host-context(kirby-dropdown){justify-content:space-between}:host-context(kirby-toggle-button).success{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(kirby-toggle-button).warning{--kirby-button-background-color: var(--kirby-warning);--kirby-button-color: var(--kirby-warning-contrast)}:host-context(kirby-toggle-button).danger{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}\n"] }]
59
59
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { isAttentionLevel1: [{
60
60
  type: HostBinding,
61
61
  args: ['class.attention-level1']
@@ -38,6 +38,7 @@ export class CalendarComponent {
38
38
  */
39
39
  this.usePopover = false;
40
40
  this._disabledDates = [];
41
+ this._enabledDates = [];
41
42
  this.includedLocales = { da, enGB, enUS };
42
43
  this.locale = this.mapLocale(locale);
43
44
  this.timeZoneName = Intl.DateTimeFormat().resolvedOptions().timeZone;
@@ -59,6 +60,12 @@ export class CalendarComponent {
59
60
  set disabledDates(value) {
60
61
  this._disabledDates = (value || []).map((date) => this.normalizeDate(date));
61
62
  }
63
+ get enabledDates() {
64
+ return this._enabledDates;
65
+ }
66
+ set enabledDates(value) {
67
+ this._enabledDates = (value || []).map((date) => this.normalizeDate(date));
68
+ }
62
69
  get todayDate() {
63
70
  return this._todayDate;
64
71
  }
@@ -130,6 +137,7 @@ export class CalendarComponent {
130
137
  changes.disablePastDates ||
131
138
  changes.disableFutureDates ||
132
139
  changes.disabledDates ||
140
+ changes.enabledDates ||
133
141
  changes.minDate ||
134
142
  changes.maxDate ||
135
143
  changes.todayDate ||
@@ -187,9 +195,11 @@ export class CalendarComponent {
187
195
  return !isSameDay(newDate, previousDate);
188
196
  }
189
197
  isDisabledDate(date) {
190
- return this.disabledDates.some((disabledDate) => {
191
- return isSameDay(disabledDate, date);
192
- });
198
+ return this.disabledDates.some((disabledDate) => isSameDay(disabledDate, date));
199
+ }
200
+ isEnabledDate(date) {
201
+ return (this._enabledDates.length === 0 ||
202
+ this.enabledDates.some((enabledDate) => isSameDay(enabledDate, date)));
193
203
  }
194
204
  refreshActiveMonth() {
195
205
  if (!this.activeMonth)
@@ -227,7 +237,7 @@ export class CalendarComponent {
227
237
  isFuture: isAfter(date, today),
228
238
  isWeekend: isWeekend(date),
229
239
  isCurrentMonth: isSameMonth(date, monthStart),
230
- isDisabled: this.isDisabledDate(date),
240
+ isDisabled: this.isDisabledDate(date) || !this.isEnabledDate(date),
231
241
  };
232
242
  }
233
243
  isSelectable(day, date) {
@@ -364,7 +374,7 @@ export class CalendarComponent {
364
374
  }
365
375
  }
366
376
  /** @nocollapse */ CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.CalendarHelper }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
367
- /** @nocollapse */ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: CalendarComponent, selector: "kirby-calendar", inputs: { timezone: "timezone", disableWeekends: "disableWeekends", disablePastDates: "disablePastDates", disableFutureDates: "disableFutureDates", alwaysEnableToday: "alwaysEnableToday", customLocales: "customLocales", usePopover: "usePopover", yearNavigatorOptions: "yearNavigatorOptions", selectedDate: "selectedDate", disabledDates: "disabledDates", todayDate: "todayDate", minDate: "minDate", maxDate: "maxDate" }, outputs: { dateChange: "dateChange", dateSelect: "dateSelect", yearSelect: "yearSelect" }, host: { properties: { "class.has-year-navigator": "this._hasYearNavigator" } }, providers: [CalendarHelper], viewQueries: [{ propertyName: "calendarContainer", first: true, predicate: ["calendarContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"header\">\n <div class=\"month-navigator\">\n <button [disabled]=\"!_canNavigateBack\" (click)=\"_changeMonth(-1)\">\n <kirby-icon name=\"arrow-back\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\">\n <span class=\"month\">{{ activeMonthName }}</span\n ><span *ngIf=\"!_hasYearNavigator\" class=\"year\">{{ activeYear }}</span>\n </div>\n\n <button [disabled]=\"!_canNavigateForward\" (click)=\"_changeMonth(1)\">\n <kirby-icon name=\"arrow-more\"></kirby-icon>\n </button>\n </div>\n <kirby-dropdown\n *ngIf=\"_hasYearNavigator\"\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n >\n </kirby-dropdown>\n</div>\n\n<table>\n <thead>\n <tr>\n <th *ngFor=\"let weekDay of _weekDays\">{{ weekDay }}</th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let week of _month\">\n <td *ngFor=\"let day of week\">\n <div\n (click)=\"_onDateSelected(day)\"\n class=\"{{ day.cssClasses }}\"\n [class.selected]=\"day.isSelected\"\n >\n {{ day.date }}\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- <iframe src=\"kirby/components/calendar/calendar.webview.html\" #calendarContainer style=\"width: 320px; height: 304px; border: 0\"> -->\n", styles: ["table{width:100%;border-collapse:collapse;-webkit-user-select:none;user-select:none;margin-bottom:8px}th,td{text-align:center;padding:0}th:first-child,td:first-child{padding-left:8px}th:last-child,td:last-child{padding-right:8px}th{height:50px;border-bottom:1px solid var(--kirby-background-color)}.header,th,td{background-color:transparent}.header{display:flex;justify-content:space-between;margin:8px 8px 0}.month-navigator{display:flex;flex-grow:1;align-items:center;justify-content:space-between}.month-navigator button{background-color:transparent;outline:none;border:none;color:inherit;cursor:pointer;height:40px;width:40px;padding:0}.month-navigator button:disabled{opacity:.5;pointer-events:none}.month-and-year{-webkit-user-select:none;user-select:none}.month-and-year .month{font-weight:700;margin-right:8px}:host(.has-year-navigator) .month-navigator{flex-grow:0}:host(.has-year-navigator) .month-and-year{width:80px;margin:0 8px;text-align:center}:host(.has-year-navigator) .month{margin-right:0}.day{display:inline-flex;align-items:center;justify-content:center;border-radius:20px;width:40px;height:40px;margin:4px 0}.day.selectable,.day.selected{cursor:pointer}.day.disabled,.day:not(.selectable){color:var(--kirby-text-color-semi-dark)}.day.today{color:var(--kirby-medium-contrast);background-color:var(--kirby-medium)}.day.selected{color:var(--kirby-black-contrast);background-color:var(--kirby-black)}.day:not(.current-month){visibility:hidden;pointer-events:none}.day.selectable:not(.selected):hover{color:var(--kirby-light-contrast);background-color:var(--kirby-light)}\n"], components: [{ type: i2.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }, { type: i3.DropdownComponent, selector: "kirby-dropdown", inputs: ["items", "selectedIndex", "itemTextProperty", "placeholder", "popout", "attentionLevel", "expand", "disabled", "hasError", "size", "tabindex", "usePopover"], outputs: ["change"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
377
+ /** @nocollapse */ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: CalendarComponent, selector: "kirby-calendar", inputs: { timezone: "timezone", disableWeekends: "disableWeekends", disablePastDates: "disablePastDates", disableFutureDates: "disableFutureDates", alwaysEnableToday: "alwaysEnableToday", customLocales: "customLocales", usePopover: "usePopover", yearNavigatorOptions: "yearNavigatorOptions", selectedDate: "selectedDate", disabledDates: "disabledDates", enabledDates: "enabledDates", todayDate: "todayDate", minDate: "minDate", maxDate: "maxDate" }, outputs: { dateChange: "dateChange", dateSelect: "dateSelect", yearSelect: "yearSelect" }, host: { properties: { "class.has-year-navigator": "this._hasYearNavigator" } }, providers: [CalendarHelper], viewQueries: [{ propertyName: "calendarContainer", first: true, predicate: ["calendarContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"header\">\n <div class=\"month-navigator\">\n <button [disabled]=\"!_canNavigateBack\" (click)=\"_changeMonth(-1)\">\n <kirby-icon name=\"arrow-back\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\">\n <span class=\"month\">{{ activeMonthName }}</span\n ><span *ngIf=\"!_hasYearNavigator\" class=\"year\">{{ activeYear }}</span>\n </div>\n\n <button [disabled]=\"!_canNavigateForward\" (click)=\"_changeMonth(1)\">\n <kirby-icon name=\"arrow-more\"></kirby-icon>\n </button>\n </div>\n <kirby-dropdown\n *ngIf=\"_hasYearNavigator\"\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n >\n </kirby-dropdown>\n</div>\n\n<table>\n <thead>\n <tr>\n <th *ngFor=\"let weekDay of _weekDays\">{{ weekDay }}</th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let week of _month\">\n <td *ngFor=\"let day of week\">\n <div\n (click)=\"_onDateSelected(day)\"\n class=\"{{ day.cssClasses }}\"\n [class.selected]=\"day.isSelected\"\n >\n {{ day.date }}\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- <iframe src=\"kirby/components/calendar/calendar.webview.html\" #calendarContainer style=\"width: 320px; height: 304px; border: 0\"> -->\n", styles: ["table{width:100%;border-collapse:collapse;-webkit-user-select:none;user-select:none;margin-bottom:8px}th,td{text-align:center;padding:0}th:first-child,td:first-child{padding-left:8px}th:last-child,td:last-child{padding-right:8px}th{height:50px;border-bottom:1px solid var(--kirby-background-color)}.header,th,td{background-color:transparent}.header{display:flex;justify-content:space-between;margin:8px 8px 0}.month-navigator{display:flex;flex-grow:1;align-items:center;justify-content:space-between}.month-navigator button{background-color:transparent;outline:none;border:none;color:inherit;cursor:pointer;height:40px;width:40px;padding:0}.month-navigator button:disabled{opacity:.5;pointer-events:none}.month-and-year{-webkit-user-select:none;user-select:none}.month-and-year .month{font-weight:700;margin-right:8px}:host(.has-year-navigator) .month-navigator{flex-grow:0}:host(.has-year-navigator) .month-and-year{width:80px;margin:0 8px;text-align:center}:host(.has-year-navigator) .month{margin-right:0}.day{display:inline-flex;align-items:center;justify-content:center;border-radius:20px;width:40px;height:40px;margin:4px 0}.day.selectable,.day.selected{cursor:pointer}.day.disabled,.day:not(.selectable){color:var(--kirby-text-color-semi-dark)}.day.today{color:var(--kirby-medium-contrast);background-color:var(--kirby-medium)}.day.selected{color:var(--kirby-black-contrast);background-color:var(--kirby-black)}.day:not(.current-month){visibility:hidden;pointer-events:none}.day.selectable:not(.selected):hover{color:var(--kirby-light-contrast);background-color:var(--kirby-light)}\n"], components: [{ type: i2.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }, { type: i3.DropdownComponent, selector: "kirby-dropdown", inputs: ["items", "selectedIndex", "itemTextProperty", "placeholder", "popout", "attentionLevel", "expand", "disabled", "hasError", "size", "tabindex", "usePopover"], outputs: ["change"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
368
378
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: CalendarComponent, decorators: [{
369
379
  type: Component,
370
380
  args: [{ selector: 'kirby-calendar', providers: [CalendarHelper], template: "<div class=\"header\">\n <div class=\"month-navigator\">\n <button [disabled]=\"!_canNavigateBack\" (click)=\"_changeMonth(-1)\">\n <kirby-icon name=\"arrow-back\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\">\n <span class=\"month\">{{ activeMonthName }}</span\n ><span *ngIf=\"!_hasYearNavigator\" class=\"year\">{{ activeYear }}</span>\n </div>\n\n <button [disabled]=\"!_canNavigateForward\" (click)=\"_changeMonth(1)\">\n <kirby-icon name=\"arrow-more\"></kirby-icon>\n </button>\n </div>\n <kirby-dropdown\n *ngIf=\"_hasYearNavigator\"\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n >\n </kirby-dropdown>\n</div>\n\n<table>\n <thead>\n <tr>\n <th *ngFor=\"let weekDay of _weekDays\">{{ weekDay }}</th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let week of _month\">\n <td *ngFor=\"let day of week\">\n <div\n (click)=\"_onDateSelected(day)\"\n class=\"{{ day.cssClasses }}\"\n [class.selected]=\"day.isSelected\"\n >\n {{ day.date }}\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- <iframe src=\"kirby/components/calendar/calendar.webview.html\" #calendarContainer style=\"width: 320px; height: 304px; border: 0\"> -->\n", styles: ["table{width:100%;border-collapse:collapse;-webkit-user-select:none;user-select:none;margin-bottom:8px}th,td{text-align:center;padding:0}th:first-child,td:first-child{padding-left:8px}th:last-child,td:last-child{padding-right:8px}th{height:50px;border-bottom:1px solid var(--kirby-background-color)}.header,th,td{background-color:transparent}.header{display:flex;justify-content:space-between;margin:8px 8px 0}.month-navigator{display:flex;flex-grow:1;align-items:center;justify-content:space-between}.month-navigator button{background-color:transparent;outline:none;border:none;color:inherit;cursor:pointer;height:40px;width:40px;padding:0}.month-navigator button:disabled{opacity:.5;pointer-events:none}.month-and-year{-webkit-user-select:none;user-select:none}.month-and-year .month{font-weight:700;margin-right:8px}:host(.has-year-navigator) .month-navigator{flex-grow:0}:host(.has-year-navigator) .month-and-year{width:80px;margin:0 8px;text-align:center}:host(.has-year-navigator) .month{margin-right:0}.day{display:inline-flex;align-items:center;justify-content:center;border-radius:20px;width:40px;height:40px;margin:4px 0}.day.selectable,.day.selected{cursor:pointer}.day.disabled,.day:not(.selectable){color:var(--kirby-text-color-semi-dark)}.day.today{color:var(--kirby-medium-contrast);background-color:var(--kirby-medium)}.day.selected{color:var(--kirby-black-contrast);background-color:var(--kirby-black)}.day:not(.current-month){visibility:hidden;pointer-events:none}.day.selectable:not(.selected):hover{color:var(--kirby-light-contrast);background-color:var(--kirby-light)}\n"] }]
@@ -400,6 +410,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
400
410
  type: Input
401
411
  }], disabledDates: [{
402
412
  type: Input
413
+ }], enabledDates: [{
414
+ type: Input
403
415
  }], todayDate: [{
404
416
  type: Input
405
417
  }], minDate: [{
@@ -410,4 +422,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
410
422
  type: HostBinding,
411
423
  args: ['class.has-year-navigator']
412
424
  }] } });
413
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUdULE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLE9BQU8sRUFDUCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxHQUNaLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdELE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSTFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBYTNELElBQUssUUFTSjtBQVRELFdBQUssUUFBUTtJQUNYLDJCQUFlLENBQUE7SUFDZiw2QkFBaUIsQ0FBQTtJQUNqQiwyQkFBZSxDQUFBO0lBQ2YseUJBQWEsQ0FBQTtJQUNiLDJCQUFl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O2dCQVFPLE9BQU87c0JBQW5CLEtBQUs7Z0JBV08sT0FBTztzQkFBbkIsS0FBSztnQkFpQ0YsaUJBQWlCO3NCQURwQixXQUFXO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTE9DQUxFX0lELFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgYWRkLFxuICBkaWZmZXJlbmNlSW5EYXlzLFxuICBlYWNoRGF5T2ZJbnRlcnZhbCxcbiAgZW5kT2ZNb250aCxcbiAgZW5kT2ZXZWVrLFxuICBmb3JtYXQsXG4gIGdldFllYXIsXG4gIGlzQWZ0ZXIsXG4gIGlzQmVmb3JlLFxuICBpc1NhbWVEYXksXG4gIGlzU2FtZU1vbnRoLFxuICBpc1dlZWtlbmQsXG4gIExvY2FsZSBhcyBMb2NhbGVEYXRlRm5zLFxuICBzdGFydE9mRGF5LFxuICBzdGFydE9mTW9udGgsXG4gIHN0YXJ0T2ZXZWVrLFxufSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyB1dGNUb1pvbmVkVGltZSwgem9uZWRUaW1lVG9VdGMgfSBmcm9tICdkYXRlLWZucy10eic7XG5pbXBvcnQgeyBkYSwgZW5HQiwgZW5VUyB9IGZyb20gJ2RhdGUtZm5zL2xvY2FsZSc7XG5cbmltcG9ydCB7IGNhcGl0YWxpemVGaXJzdExldHRlciB9IGZyb20gJ0BraXJieWRlc2lnbi9jb3JlJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJDZWxsIH0gZnJvbSAnLi9oZWxwZXJzL2NhbGVuZGFyLWNlbGwubW9kZWwnO1xuaW1wb3J0IHsgQ2FsZW5kYXJPcHRpb25zIH0gZnJvbSAnLi9oZWxwZXJzL2NhbGVuZGFyLW9wdGlvbnMubW9kZWwnO1xuaW1wb3J0IHsgQ2FsZW5kYXJIZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMvY2FsZW5kYXIuaGVscGVyJztcbmltcG9ydCB7IENhbGVuZGFyWWVhck5hdmlnYXRvckNvbmZpZyB9IGZyb20gJy4vb3B0aW9ucy9jYWxlbmRhci15ZWFyLW5hdmlnYXRvci1jb25maWcnO1xuXG5leHBvcnQgdHlwZSBMb2NhbGUgPSBMb2NhbGVEYXRlRm5zO1xuaW50ZXJmYWNlIENhbGVuZGFyRGF5IHtcbiAgaXNDdXJyZW50TW9udGg6IGJvb2xlYW47XG4gIGlzVG9kYXk6IGJvb2xlYW47XG4gIGlzV2Vla2VuZDogYm9vbGVhbjtcbiAgaXNQYXN0OiBib29sZWFuO1xuICBpc0Z1dHVyZTogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbn1cblxuZW51bSBUaW1lVW5pdCB7XG4gIHllYXJzID0gJ3llYXJzJyxcbiAgbW9udGhzID0gJ21vbnRocycsXG4gIHdlZWtzID0gJ3dlZWtzJyxcbiAgZGF5cyA9ICdkYXlzJyxcbiAgaG91cnMgPSAnaG91cnMnLFxuICBtaW51dGVzID0gJ21pbnV0ZXMnLFxuICBzZWNvbmRzID0gJ3NlY29uZHMnLFxuICBtaWxsaXNlY29uZHMgPSAnbWlsbGlzZWNvbmRzJyxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktY2FsZW5kYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDYWxlbmRhckhlbHBlcl0sXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKCdjYWxlbmRhckNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjYWxlbmRhckNvbnRhaW5lcjogRWxlbWVudFJlZjtcbiAgQE91dHB1dCgpIGRhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIEBPdXRwdXQoKSBkYXRlU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBAT3V0cHV0KCkgeWVhclNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBASW5wdXQoKSB0aW1lem9uZTogJ2xvY2FsJyB8ICdVVEMnID0gJ2xvY2FsJztcbiAgQElucHV0KCkgZGlzYWJsZVdlZWtlbmRzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVQYXN0RGF0ZXMgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZUZ1dHVyZURhdGVzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFsd2F5c0VuYWJsZVRvZGF5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGN1c3RvbUxvY2FsZXM6IHsgW2tleTogc3RyaW5nXTogTG9jYWxlIH0gPSB7fTtcbiAgLyogXG4gICAgRXhwZXJpbWVudGFsOiBJbnB1dCBwcm9wZXJ0eSBub3QgZG9jdW1lbnRlZCBvbiBwdXJwb3NlLiBcbiAgICBGb3IgY29udGV4dCBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9raXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaXNzdWVzLzIwODdcbiAgKi9cbiAgQElucHV0KCkgdXNlUG9wb3ZlciA9IGZhbHNlO1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIHllYXIgbmF2aWdhdG9yLlxuICAgKlxuICAgKiBJbnRlcm5hbGx5LCBjYWxlbmRhciBjb21wb25lbnQ6XG4gICAqIC0gYmFzZXMgeWVhck5hdmlnYXRvck9wdGlvbnMuZnJvbSBhbmQgeWVhck5hdmlnYXRvck9wdGlvbnMudG8gb24gdG9kYXlEYXRlIGlmIGEgbnVtYmVyIGlzIHByb3ZpZGVkXG4gICAqIC0gcHJpb3JpdGl6ZXMgbWluRGF0ZSBhbmQgbWF4RGF0ZSBvdmVyIHllYXJOYXZpZ2F0b3JPcHRpb25zLmZyb20gYW5kIHllYXJOYXZpZ2F0b3JPcHRpb25zLnRvXG4gICAqL1xuICBASW5wdXQoKSB5ZWFyTmF2aWdhdG9yT3B0aW9uczogQ2FsZW5kYXJZZWFyTmF2aWdhdG9yQ29uZmlnO1xuXG4gIF9tb250aDogQ2FsZW5kYXJDZWxsW11bXTtcbiAgX3dlZWtEYXlzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSBzZWxlY3RlZERheTogQ2FsZW5kYXJDZWxsO1xuICAvLyBOT1RFOiBJbnRlcm5hbGx5LCBhbGwgRGF0ZXNcbiAgLy8gYXJlIG5vcm1hbGl6ZWQgdG8gcG9pbnQgdG8gbG9jYWwgdGltZXpvbmUgbWlkbmlnaHQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHRpbWV6b25lXG4gIC8vIHNldHRpbmcuXG4gIHByaXZhdGUgYWN0aXZlTW9udGg6IERhdGU7XG4gIHByaXZhdGUgX3NlbGVjdGVkRGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBfZGlzYWJsZWREYXRlczogRGF0ZVtdID0gW107XG4gIHByaXZhdGUgX3RvZGF5RGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBfbWluRGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBfbWF4RGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBsb2NhbGU6IExvY2FsZTtcbiAgcHJpdmF0ZSB0aW1lWm9uZU5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBpbmNsdWRlZExvY2FsZXMgPSB7IGRhLCBlbkdCLCBlblVTIH07XG5cbiAgZ2V0IHNlbGVjdGVkRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWREYXRlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkRGF0ZSh2YWx1ZUxvY2FsT3JVVEM6IERhdGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZUxvY2FsT3JVVEMpO1xuICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuaGFzRGF0ZUNoYW5nZWQodmFsdWUsIHRoaXMuX3NlbGVjdGVkRGF0ZSkpIHtcbiAgICAgIHRoaXMub25TZWxlY3RlZERhdGVDaGFuZ2UodmFsdWUpO1xuICAgICAgdGhpcy5fc2VsZWN0ZWREYXRlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRpc2FibGVkRGF0ZXMoKTogRGF0ZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWREYXRlcztcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZERhdGVzKHZhbHVlOiBEYXRlW10pIHtcbiAgICB0aGlzLl9kaXNhYmxlZERhdGVzID0gKHZhbHVlIHx8IFtdKS5tYXAoKGRhdGUpID0+IHRoaXMubm9ybWFsaXplRGF0ZShkYXRlKSk7XG4gIH1cblxuICBnZXQgdG9kYXlEYXRlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl90b2RheURhdGU7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgdG9kYXlEYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgdGhpcy5fdG9kYXlEYXRlID0gdGhpcy5ub3JtYWxpemVEYXRlKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBtaW5EYXRlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl9taW5EYXRlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IG1pbkRhdGUodmFsdWU6IERhdGUpIHtcbiAgICBpZiAodmFsdWUgJiYgdGhpcy5hY3RpdmVNb250aCAmJiBpc0JlZm9yZSh0aGlzLmFjdGl2ZU1vbnRoLCB2YWx1ZSkpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLl9taW5EYXRlID0gdGhpcy5ub3JtYWxpemVEYXRlKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBtYXhEYXRlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl9tYXhEYXRlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IG1heERhdGUodmFsdWU6IERhdGUpIHtcbiAgICBpZiAodmFsdWUgJiYgdGhpcy5hY3RpdmVNb250aCAmJiBpc0FmdGVyKHRoaXMuYWN0aXZlTW9udGgsIHZhbHVlKSkge1xuICAgICAgdGhpcy5zZXRBY3RpdmVNb250aCh2YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuX21heERhdGUgPSB0aGlzLm5vcm1hbGl6ZURhdGUodmFsdWUpO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZU1vbnRoTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodGhpcy5mb3JtYXRXaXRoTG9jYWxlKHRoaXMuYWN0aXZlTW9udGgsICdNTU1NJykpO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZVllYXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRXaXRoTG9jYWxlKHRoaXMuYWN0aXZlTW9udGgsICd5eXl5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBuYXZpZ2FibGUgeWVhcnMgZm9yIHllYXIgbmF2aWdhdG9yIGJhc2VkIG9uIHllYXJOYXZpZ2F0b3JPcHRpb25zLlxuICAgKi9cbiAgZ2V0IG5hdmlnYWJsZVllYXJzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBkYXRlT2ZGaXJzdE5hdmlnYWJsZVllYXIgPVxuICAgICAgdGhpcy5taW5EYXRlIHx8IHRoaXMuZ2V0RGF0ZUZyb21OYXZpZ2FibGVZZWFyKHRoaXMueWVhck5hdmlnYXRvck9wdGlvbnMuZnJvbSk7XG5cbiAgICBjb25zdCBkYXRlT2ZMYXN0TmF2aWdhYmxlWWVhciA9XG4gICAgICB0aGlzLm1heERhdGUgfHwgdGhpcy5nZXREYXRlRnJvbU5hdmlnYWJsZVllYXIodGhpcy55ZWFyTmF2aWdhdG9yT3B0aW9ucy50byk7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRZZWFyc0JldHdlZW5EYXRlcyhkYXRlT2ZGaXJzdE5hdmlnYWJsZVllYXIsIGRhdGVPZkxhc3ROYXZpZ2FibGVZZWFyKTtcbiAgfVxuXG4gIGdldCBuYXZpZ2F0ZWRZZWFyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubmF2aWdhYmxlWWVhcnMuaW5kZXhPZih0aGlzLmFjdGl2ZVllYXIpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXMteWVhci1uYXZpZ2F0b3InKVxuICBnZXQgX2hhc1llYXJOYXZpZ2F0b3IoKSB7XG4gICAgcmV0dXJuICEhdGhpcy55ZWFyTmF2aWdhdG9yT3B0aW9ucztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2FsZW5kYXJIZWxwZXI6IENhbGVuZGFySGVscGVyLCBASW5qZWN0KExPQ0FMRV9JRCkgbG9jYWxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvY2FsZSA9IHRoaXMubWFwTG9jYWxlKGxvY2FsZSk7XG4gICAgdGhpcy50aW1lWm9uZU5hbWUgPSBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmU7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFdpdGhMb2NhbGUoZGF0ZTogRGF0ZSwgZm9ybWF0U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXQoZGF0ZSwgZm9ybWF0U3RyaW5nLCB7XG4gICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBMb2NhbGUobG9jYWxlOiBzdHJpbmcpOiBMb2NhbGUge1xuICAgIGlmIChsb2NhbGUgPT09ICdlbicpIHtcbiAgICAgIGxvY2FsZSA9ICdlbkdCJzsgLy8gaWYgZW5nbGlzaCBsb2NhbGUgaXMgcHJvdmlkZWQgd2l0aG91dCByZWdpb24sIHdlIGRlZmF1bHQgdG8gR0JcbiAgICB9XG4gICAgbG9jYWxlID0gbG9jYWxlLnJlcGxhY2UoJy0nLCAnJyk7XG4gICAgY29uc3QgYXZhaWxhYmxlTG9jYWxlcyA9IHsgLi4udGhpcy5pbmNsdWRlZExvY2FsZXMsIC4uLnRoaXMuY3VzdG9tTG9jYWxlcyB9O1xuXG4gICAgcmV0dXJuIGF2YWlsYWJsZUxvY2FsZXNbbG9jYWxlXSB8fCB0aGlzLmluY2x1ZGVkTG9jYWxlcy5lbkdCOyAvLyBEZWZhdWx0IHRvIGVuR0IgaWYgaW5qZWN0ZWQgbG9jYWxlIGRvZXNudCBleGlzdFxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fd2Vla0RheXMgPSB0aGlzLmdldFdlZWtEYXlzKCk7XG4gICAgdGhpcy5zZXRBY3RpdmVNb250aCh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jYWxlbmRhckhlbHBlci5pbml0KFxuICAgICAgdGhpcy5jYWxlbmRhckNvbnRhaW5lcixcbiAgICAgIHRoaXMuZ2V0SGVscGVyT3B0aW9ucygpLFxuICAgICAgdGhpcy5fb25EYXRlU2VsZWN0ZWQuYmluZCh0aGlzKSxcbiAgICAgIHRoaXMub25DaGFuZ2VNb250aC5iaW5kKHRoaXMpXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlTW9udGgpIHJldHVybjtcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzLmRpc2FibGVXZWVrZW5kcyB8fFxuICAgICAgY2hhbmdlcy5kaXNhYmxlUGFzdERhdGVzIHx8XG4gICAgICBjaGFuZ2VzLmRpc2FibGVGdXR1cmVEYXRlcyB8fFxuICAgICAgY2hhbmdlcy5kaXNhYmxlZERhdGVzIHx8XG4gICAgICBjaGFuZ2VzLm1pbkRhdGUgfHxcbiAgICAgIGNoYW5nZXMubWF4RGF0ZSB8fFxuICAgICAgY2hhbmdlcy50b2RheURhdGUgfHxcbiAgICAgIGNoYW5nZXMudGltZXpvbmVcbiAgICApIHtcbiAgICAgIHRoaXMucmVmcmVzaEFjdGl2ZU1vbnRoKCk7XG4gICAgICB0aGlzLmNhbGVuZGFySGVscGVyLnVwZGF0ZSh0aGlzLmdldEhlbHBlck9wdGlvbnMoKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVNb250aChkYXRlOiBEYXRlID0gbmV3IERhdGUoKSkge1xuICAgIGlmICghdGhpcy5hY3RpdmVNb250aCB8fCAhaXNTYW1lTW9udGgodGhpcy5hY3RpdmVNb250aCwgZGF0ZSkpIHtcbiAgICAgIHRoaXMuYWN0aXZlTW9udGggPSBzdGFydE9mTW9udGgoZGF0ZSk7XG4gICAgICB0aGlzLnJlZnJlc2hBY3RpdmVNb250aCgpO1xuICAgICAgdGhpcy5jYWxlbmRhckhlbHBlci51cGRhdGUodGhpcy5nZXRIZWxwZXJPcHRpb25zKCkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvciBsZW5pZW5jeSwgdGhlIGNvbXBvbmVudCB3aWxsIGFjY2VwdCBhbnkgRGF0ZSB0aGF0IHBvaW50cyB0byBlaXRoZXIgVVRDIG1pZG5pZ2h0XG4gIC8vIG9yIHRvIGxvY2FsIHRpbWV6b25lIG1pZG5pZ2h0IGFsdGhvdWdoIHdlIHdpbGwgaW50ZXJuYWxseSBub3JtYWxpemUgdGhlIHJlcHJlc2VudGF0aW9uXG4gIC8vIG9mIGFsbCByZWNlaXZlZCBkYXRlcyB0byBwb2ludCB0byBsb2NhbCB0aW1lem9uZSBtaWRuaWdodC5cbiAgLy8gV2UgY3VycmVudGx5IGxvZyBubyB3YXJuaW5ncyBpZiB0aGUgZGF0ZSBkb2Vzbid0IG1hdGNoIHRoZSB0aW1lem9uZSBzZXR0aW5nIG9yXG4gIC8vIGlmIGl0IGRvZXNuJ3QgcG9pbnQgdG8gbWlkbmlnaHQuXG4gIHByaXZhdGUgbm9ybWFsaXplRGF0ZShkYXRlTG9jYWxPclVUQzogRGF0ZSkge1xuICAgIGlmICghZGF0ZUxvY2FsT3JVVEMpIHJldHVybjtcblxuICAgIGlmIChzdGFydE9mRGF5KGRhdGVMb2NhbE9yVVRDKS5nZXRUaW1lKCkgPT09IGRhdGVMb2NhbE9yVVRDLmdldFRpbWUoKSkge1xuICAgICAgLy8gZGF0ZSBpcyBsb2NhbCB0aW1lem9uZSBtaWRuaWdodFxuICAgICAgcmV0dXJuIGRhdGVMb2NhbE9yVVRDO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBzdGFydE9mRGF5KHV0Y1RvWm9uZWRUaW1lKGRhdGVMb2NhbE9yVVRDLCB0aGlzLnRpbWVab25lTmFtZSkpLmdldFRpbWUoKSA9PT1cbiAgICAgIHV0Y1RvWm9uZWRUaW1lKGRhdGVMb2NhbE9yVVRDLCB0aGlzLnRpbWVab25lTmFtZSkuZ2V0VGltZSgpXG4gICAgKSB7XG4gICAgICAvLyB0aGUgZGF0ZSBpcyBhIFVUQyBtaWRuaWdodDsgY3JlYXRlIHRoZSBlcXVpdmFsZW50IGxvY2FsIHRpbWV6b25lIG1pZG5pZ2h0IGRhdGVcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRVVENkYXRlID0gdXRjVG9ab25lZFRpbWUoZGF0ZUxvY2FsT3JVVEMsIHRoaXMudGltZVpvbmVOYW1lKTtcbiAgICAgIHJldHVybiBub3JtYWxpemVkVVRDZGF0ZTtcbiAgICB9XG4gICAgLy8gZG9lcyBub3QgcG9pbnQgdG8gbWlkbmlnaHQgc28gd2UgbWFrZSBpdFxuICAgIHJldHVybiBzdGFydE9mRGF5KGRhdGVMb2NhbE9yVVRDKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0V2Vla0RheXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG5cbiAgICBjb25zdCB3ZWVrID0gZWFjaERheU9mSW50ZXJ2YWwoe1xuICAgICAgc3RhcnQ6IHN0YXJ0T2ZXZWVrKG5vdywgeyBsb2NhbGU6IHRoaXMubG9jYWxlIH0pLFxuICAgICAgZW5kOiBlbmRPZldlZWsobm93LCB7IGxvY2FsZTogdGhpcy5sb2NhbGUgfSksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gd2Vlay5tYXAoKGRhdGUpID0+IHRoaXMuZ2V0Rmlyc3RMZXR0ZXJPZldlZWtEYXlDYXBpdGFsaXplZChkYXRlKSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpcnN0TGV0dGVyT2ZXZWVrRGF5Q2FwaXRhbGl6ZWQoZGF0ZTogRGF0ZSkge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdFdpdGhMb2NhbGUoZGF0ZSwgJ0VFRUVFJyk7XG4gIH1cblxuICBwcml2YXRlIGhhc0RhdGVDaGFuZ2VkKG5ld0RhdGU6IERhdGUsIHByZXZpb3VzRGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xuICAgIGlmICghbmV3RGF0ZSAmJiAhcHJldmlvdXNEYXRlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChuZXdEYXRlIGluc3RhbmNlb2YgRGF0ZSAmJiAhcHJldmlvdXNEYXRlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuICFpc1NhbWVEYXkobmV3RGF0ZSwgcHJldmlvdXNEYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNEaXNhYmxlZERhdGUoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXMuc29tZSgoZGlzYWJsZWREYXRlKSA9PiB7XG4gICAgICByZXR1cm4gaXNTYW1lRGF5KGRpc2FibGVkRGF0ZSwgZGF0ZSk7XG4gICAgfSk7XG4gIH1cblxuICByZWZyZXNoQWN0aXZlTW9udGgoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZU1vbnRoKSByZXR1cm47XG5cbiAgICBjb25zdCBtb250aFN0YXJ0ID0gc3RhcnRPZk1vbnRoKHRoaXMuYWN0aXZlTW9udGgpO1xuICAgIGNvbnN0IG1vbnRoRW5kID0gZW5kT2ZNb250aCh0aGlzLmFjdGl2ZU1vbnRoKTtcbiAgICBjb25zdCBzdGFydE9mRmlyc3RXZWVrID0gc3RhcnRPZldlZWsobW9udGhTdGFydCwgeyBsb2NhbGU6IHRoaXMubG9jYWxlIH0pO1xuICAgIGNvbnN0IGVuZE9mTGFzdFdlZWsgPSBlbmRPZldlZWsobW9udGhFbmQsIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KTtcbiAgICBjb25zdCB0b3RhbERheUNvdW50ID0gZGlmZmVyZW5jZUluRGF5cyhlbmRPZkxhc3RXZWVrLCBzdGFydE9mRmlyc3RXZWVrKSArIDE7XG4gICAgY29uc3QgdG9kYXkgPSB0aGlzLnRvZGF5RGF0ZSA/IHN0YXJ0T2ZEYXkodGhpcy50b2RheURhdGUpIDogc3RhcnRPZkRheShuZXcgRGF0ZSgpKTtcblxuICAgIGNvbnN0IGRheXNBcnJheSA9IEFycmF5LmZyb20oQXJyYXkodG90YWxEYXlDb3VudCkua2V5cygpKTtcblxuICAgIGNvbnN0IGRheXM6IENhbGVuZGFyQ2VsbFtdID0gZGF5c0FycmF5Lm1hcCgobnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBjZWxsRGF0ZSA9IGFkZChzdGFydE9mRmlyc3RXZWVrLCB7IFtUaW1lVW5pdC5kYXlzXTogbnVtYmVyIH0pO1xuICAgICAgY29uc3QgZGF5ID0gdGhpcy5nZXRDYWxlbmRhckRheShjZWxsRGF0ZSwgdG9kYXksIG1vbnRoU3RhcnQpO1xuXG4gICAgICBjb25zdCBpc1NlbGVjdGFibGUgPSB0aGlzLmlzU2VsZWN0YWJsZShkYXksIGNlbGxEYXRlKTtcbiAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBpc1NhbWVEYXkodGhpcy5zZWxlY3RlZERhdGUsIGNlbGxEYXRlKTtcbiAgICAgIGNvbnN0IGNlbGwgPSB7XG4gICAgICAgIGRhdGU6IGNlbGxEYXRlLmdldERhdGUoKSxcbiAgICAgICAgaXNDdXJyZW50TW9udGg6IGRheS5pc0N1cnJlbnRNb250aCxcbiAgICAgICAgaXNTZWxlY3RhYmxlLFxuICAgICAgICBpc1NlbGVjdGVkLFxuICAgICAgICBjc3NDbGFzc2VzOiB0aGlzLmdldENzc0NsYXNzZXMoZGF5LCBpc1NlbGVjdGFibGUsIGlzU2VsZWN0ZWQpLFxuICAgICAgfTtcbiAgICAgIGlmIChpc1NlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXkgPSBjZWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNlbGw7XG4gICAgfSk7XG4gICAgdGhpcy5fbW9udGggPSB0aGlzLmNodW5rKGRheXMsIDcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYWxlbmRhckRheShkYXRlOiBEYXRlLCB0b2RheTogRGF0ZSwgbW9udGhTdGFydDogRGF0ZSk6IENhbGVuZGFyRGF5IHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNUb2RheTogaXNTYW1lRGF5KHRvZGF5LCBkYXRlKSxcbiAgICAgIGlzUGFzdDogaXNCZWZvcmUoZGF0ZSwgdG9kYXkpLFxuICAgICAgaXNGdXR1cmU6IGlzQWZ0ZXIoZGF0ZSwgdG9kYXkpLFxuICAgICAgaXNXZWVrZW5kOiBpc1dlZWtlbmQoZGF0ZSksXG4gICAgICBpc0N1cnJlbnRNb250aDogaXNTYW1lTW9udGgoZGF0ZSwgbW9udGhTdGFydCksXG4gICAgICBpc0Rpc2FibGVkOiB0aGlzLmlzRGlzYWJsZWREYXRlKGRhdGUpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGlzU2VsZWN0YWJsZShkYXk6IENhbGVuZGFyRGF5LCBkYXRlOiBEYXRlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLmFsd2F5c0VuYWJsZVRvZGF5ICYmIGRheS5pc1RvZGF5KSB8fFxuICAgICAgKCFkYXkuaXNEaXNhYmxlZCAmJlxuICAgICAgICBkYXkuaXNDdXJyZW50TW9udGggJiZcbiAgICAgICAgISh0aGlzLmRpc2FibGVXZWVrZW5kcyAmJiBkYXkuaXNXZWVrZW5kKSAmJlxuICAgICAgICAhKHRoaXMuZGlzYWJsZVBhc3REYXRlcyAmJiBkYXkuaXNQYXN0KSAmJlxuICAgICAgICAhKHRoaXMuZGlzYWJsZUZ1dHVyZURhdGVzICYmIGRheS5pc0Z1dHVyZSkgJiZcbiAgICAgICAgISh0aGlzLm1pbkRhdGUgJiYgaXNCZWZvcmUoZGF0ZSwgdGhpcy5taW5EYXRlKSkgJiZcbiAgICAgICAgISh0aGlzLm1heERhdGUgJiYgaXNBZnRlcihkYXRlLCB0aGlzLm1heERhdGUpKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDc3NDbGFzc2VzKGRheTogQ2FsZW5kYXJEYXksIGlzU2VsZWN0YWJsZTogYm9vbGVhbiwgaXNTZWxlY3RlZDogYm9vbGVhbikge1xuICAgIGNvbnN0IGNzc0NsYXNzZXMgPSB7XG4gICAgICAnY3VycmVudC1tb250aCc6IGRheS5pc0N1cnJlbnRNb250aCxcbiAgICAgIHdlZWtlbmQ6IGRheS5pc1dlZWtlbmQsXG4gICAgICB0b2RheTogZGF5LmlzVG9kYXksXG4gICAgICBzZWxlY3RhYmxlOiBpc1NlbGVjdGFibGUsXG4gICAgICBzZWxlY3RlZDogaXNTZWxlY3RlZCxcbiAgICAgIHBhc3Q6IGRheS5pc1Bhc3QsXG4gICAgICBkaXNhYmxlZDogZGF5LmlzRGlzYWJsZWQsXG4gICAgfTtcbiAgICBsZXQgY3NzQ2xhc3NTdHJpbmcgPSAnZGF5JztcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBjc3NDbGFzc2VzKSB7XG4gICAgICBpZiAoY3NzQ2xhc3Nlc1trZXldKSB7XG4gICAgICAgIGNzc0NsYXNzU3RyaW5nICs9ICcgJyArIGtleTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNzc0NsYXNzU3RyaW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBjaHVuayhhcnJheTogYW55W10sIHNpemU6IG51bWJlcikge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICB3aGlsZSAoYXJyYXkubGVuZ3RoKSB7XG4gICAgICByZXN1bHRzLnB1c2goYXJyYXkuc3BsaWNlKDAsIHNpemUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICBwcml2YXRlIG9uU2VsZWN0ZWREYXRlQ2hhbmdlKG5ld0RhdGU6IERhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZERheSkge1xuICAgICAgdGhpcy5zZWxlY3RlZERheS5pc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgbmV3RGF5ID0gdGhpcy5nZXRDZWxsKG5ld0RhdGUpO1xuICAgIGlmIChuZXdEYXkpIHtcbiAgICAgIG5ld0RheS5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXkgPSBuZXdEYXk7XG4gICAgfVxuICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIuc2V0U2VsZWN0ZWREYXkobmV3RGF0ZS5nZXREYXRlKCkpO1xuICB9XG5cbiAgX29uRGF0ZVNlbGVjdGVkKG5ld0RheTogQ2FsZW5kYXJDZWxsKSB7XG4gICAgaWYgKG5ld0RheS5pc1NlbGVjdGFibGUgJiYgbmV3RGF5LmRhdGUpIHtcbiAgICAgIGxldCBuZXdEYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVNb250aCk7XG4gICAgICBuZXdEYXRlLnNldERhdGUobmV3RGF5LmRhdGUpO1xuXG4gICAgICBpZiAodGhpcy50aW1lem9uZSA9PT0gJ1VUQycpIHtcbiAgICAgICAgbmV3RGF0ZSA9IHpvbmVkVGltZVRvVXRjKHRoaXMuc3VidHJhY3RUaW1lem9uZU9mZnNldChuZXdEYXRlKSwgdGhpcy50aW1lWm9uZU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRlVG9FbWl0ID0gbmV3RGF0ZTtcblxuICAgICAgaWYgKHRoaXMuaGFzRGF0ZUNoYW5nZWQobmV3RGF0ZSwgdGhpcy5fc2VsZWN0ZWREYXRlKSkge1xuICAgICAgICB0aGlzLm9uU2VsZWN0ZWREYXRlQ2hhbmdlKG5ld0RhdGUpO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZERhdGUgPSBuZXdEYXRlO1xuICAgICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChkYXRlVG9FbWl0KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGF0ZVNlbGVjdC5lbWl0KGRhdGVUb0VtaXQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2VNb250aChkaXJlY3Rpb246IG51bWJlcikge1xuICAgIHRoaXMuX2NoYW5nZU1vbnRoKGRpcmVjdGlvbik7XG4gICAgdGhpcy5jYWxlbmRhckhlbHBlci51cGRhdGUodGhpcy5nZXRIZWxwZXJPcHRpb25zKCkpO1xuICB9XG5cbiAgX2NoYW5nZU1vbnRoKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmNoYW5nZUFjdGl2ZVZpZXcoaW5kZXgsIFRpbWVVbml0Lm1vbnRocyk7XG4gIH1cblxuICBfY2hhbmdlWWVhcih5ZWFyOiBzdHJpbmcpIHtcbiAgICBjb25zdCB5ZWFyTnVtZXJpYyA9IE51bWJlcih5ZWFyKTtcbiAgICB0aGlzLmNoYW5nZUFjdGl2ZVZpZXcoeWVhck51bWVyaWMgLSBnZXRZZWFyKHRoaXMuYWN0aXZlTW9udGgpLCBUaW1lVW5pdC55ZWFycyk7XG4gICAgdGhpcy55ZWFyU2VsZWN0LmVtaXQoeWVhck51bWVyaWMpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VBY3RpdmVWaWV3KGluZGV4OiBudW1iZXIsIHVuaXQ6IFRpbWVVbml0KSB7XG4gICAgaWYgKGluZGV4ID09PSAwKSByZXR1cm47XG4gICAgdGhpcy5hY3RpdmVNb250aCA9IGFkZCh0aGlzLmFjdGl2ZU1vbnRoLCB7IFt1bml0XTogaW5kZXggfSk7XG5cbiAgICB0aGlzLnJlZnJlc2hBY3RpdmVNb250aCgpO1xuICB9XG5cbiAgZ2V0IF9jYW5OYXZpZ2F0ZUJhY2soKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVhY2hlZFBhc3REYXRlc0xpbWl0ID1cbiAgICAgIHRoaXMuZGlzYWJsZVBhc3REYXRlcyAmJiBpc1NhbWVNb250aCh0aGlzLmFjdGl2ZU1vbnRoLCB0aGlzLnRvZGF5RGF0ZSk7XG5cbiAgICBjb25zdCByZWFjaGVkT3JFeGNlZWRlZE1pbkRhdGUgPVxuICAgICAgdGhpcy5taW5EYXRlICYmXG4gICAgICAoaXNTYW1lTW9udGgodGhpcy5hY3RpdmVNb250aCwgdGhpcy5taW5EYXRlKSB8fCBpc0JlZm9yZSh0aGlzLmFjdGl2ZU1vbnRoLCB0aGlzLm1pbkRhdGUpKTtcblxuICAgIHJldHVybiAhcmVhY2hlZFBhc3REYXRlc0xpbWl0ICYmICFyZWFjaGVkT3JFeGNlZWRlZE1pbkRhdGU7XG4gIH1cblxuICBnZXQgX2Nhbk5hdmlnYXRlRm9yd2FyZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCByZWFjaGVkRnV0dXJlRGF0ZXNMaW1pdCA9XG4gICAgICB0aGlzLmRpc2FibGVGdXR1cmVEYXRlcyAmJiBpc1NhbWVNb250aCh0aGlzLmFjdGl2ZU1vbnRoLCB0aGlzLnRvZGF5RGF0ZSk7XG5cbiAgICBjb25zdCByZWFjaGVkT3JFeGNlZWRlZE1heERhdGUgPVxuICAgICAgdGhpcy5tYXhEYXRlICYmXG4gICAgICAoaXNTYW1lTW9udGgodGhpcy5hY3RpdmVNb250aCwgdGhpcy5tYXhEYXRlKSB8fCBpc0FmdGVyKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMubWF4RGF0ZSkpO1xuXG4gICAgcmV0dXJuICFyZWFjaGVkRnV0dXJlRGF0ZXNMaW1pdCAmJiAhcmVhY2hlZE9yRXhjZWVkZWRNYXhEYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDZWxsKGRhdGU6IERhdGUpIHtcbiAgICBsZXQgZm91bmREYXkgPSBudWxsO1xuICAgIGlmIChkYXRlKSB7XG4gICAgICBmb3IgKGxldCB3ZWVrIG9mIHRoaXMuX21vbnRoKSB7XG4gICAgICAgIGZvdW5kRGF5ID0gd2Vlay5maW5kKChkYXkpID0+IHtcbiAgICAgICAgICByZXR1cm4gZGF5LmlzQ3VycmVudE1vbnRoICYmIGRheS5kYXRlID09PSBkYXRlLmdldERhdGUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChmb3VuZERheSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmb3VuZERheTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SGVscGVyT3B0aW9ucygpOiBDYWxlbmRhck9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICBjYW5OYXZpZ2F0ZUJhY2s6IHRoaXMuX2Nhbk5hdmlnYXRlQmFjayxcbiAgICAgIGNhbk5hdmlnYXRlRm9yd2FyZDogdGhpcy5fY2FuTmF2aWdhdGVGb3J3YXJkLFxuICAgICAgeWVhcjogdGhpcy5hY3RpdmVZZWFyLFxuICAgICAgbW9udGhOYW1lOiB0aGlzLmFjdGl2ZU1vbnRoTmFtZSxcbiAgICAgIHdlZWtEYXlzOiB0aGlzLl93ZWVrRGF5cyxcbiAgICAgIG1vbnRoOiB0aGlzLl9tb250aCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJ0cmFjdFRpbWV6b25lT2Zmc2V0KGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICBjb25zdCB0aW1lem9uZU9mZnNldEluTXMgPSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MCAqIDEwMDA7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpIC0gdGltZXpvbmVPZmZzZXRJbk1zKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGF0ZUZyb21OYXZpZ2FibGVZZWFyKG5hdmlnYWJsZVllYXI6IG51bWJlciB8IERhdGUpOiBEYXRlIHtcbiAgICBpZiAobmF2aWdhYmxlWWVhciBpbnN0YW5jZW9mIERhdGUpIHJldHVybiBuYXZpZ2FibGVZZWFyO1xuICAgIGNvbnN0IHRvZGF5ID0gdGhpcy50b2RheURhdGUgfHwgbmV3IERhdGUoKTtcbiAgICByZXR1cm4gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSArIG5hdmlnYWJsZVllYXIsIDAsIDEpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRZZWFyc0JldHdlZW5EYXRlcyhzdGFydERhdGU6IERhdGUsIGVuZERhdGU6IERhdGUpOiBzdHJpbmdbXSB7XG4gICAgLy8gRW5zdXJlIHllYXJzIGFyZSBvcmRlcmVkIGNvcnJlY3RseSBpZiBwYXJhbWV0ZXJzIGFyZSBzd2l0Y2hlZDpcbiAgICBjb25zdCBbc3RhcnRZZWFyLCBlbmRZZWFyXSA9IFtzdGFydERhdGUuZ2V0RnVsbFllYXIoKSwgZW5kRGF0ZS5nZXRGdWxsWWVhcigpXS5zb3J0KCk7XG4gICAgY29uc3QgbnVtYmVyT2ZZZWFycyA9IGVuZFllYXIgLSBzdGFydFllYXI7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IG51bWJlck9mWWVhcnMgKyAxIH0sIChfLCBpKSA9PiAoc3RhcnRZZWFyICsgaSkudG9TdHJpbmcoKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgPGRpdiBjbGFzcz1cIm1vbnRoLW5hdmlnYXRvclwiPlxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFfY2FuTmF2aWdhdGVCYWNrXCIgKGNsaWNrKT1cIl9jaGFuZ2VNb250aCgtMSlcIj5cbiAgICAgIDxraXJieS1pY29uIG5hbWU9XCJhcnJvdy1iYWNrXCI+PC9raXJieS1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdiBjbGFzcz1cIm1vbnRoLWFuZC15ZWFyXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1vbnRoXCI+e3sgYWN0aXZlTW9udGhOYW1lIH19PC9zcGFuXG4gICAgICA+PHNwYW4gKm5nSWY9XCIhX2hhc1llYXJOYXZpZ2F0b3JcIiBjbGFzcz1cInllYXJcIj57eyBhY3RpdmVZZWFyIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiIV9jYW5OYXZpZ2F0ZUZvcndhcmRcIiAoY2xpY2spPVwiX2NoYW5nZU1vbnRoKDEpXCI+XG4gICAgICA8a2lyYnktaWNvbiBuYW1lPVwiYXJyb3ctbW9yZVwiPjwva2lyYnktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxraXJieS1kcm9wZG93blxuICAgICpuZ0lmPVwiX2hhc1llYXJOYXZpZ2F0b3JcIlxuICAgIFt1c2VQb3BvdmVyXT1cInVzZVBvcG92ZXJcIlxuICAgIFtzZWxlY3RlZEluZGV4XT1cIm5hdmlnYXRlZFllYXJcIlxuICAgIFtpdGVtc109XCJuYXZpZ2FibGVZZWFyc1wiXG4gICAgcG9wb3V0PVwibGVmdFwiXG4gICAgKGNoYW5nZSk9XCJfY2hhbmdlWWVhcigkZXZlbnQpXCJcbiAgPlxuICA8L2tpcmJ5LWRyb3Bkb3duPlxuPC9kaXY+XG5cbjx0YWJsZT5cbiAgPHRoZWFkPlxuICAgIDx0cj5cbiAgICAgIDx0aCAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiBfd2Vla0RheXNcIj57eyB3ZWVrRGF5IH19PC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuXG4gIDx0Ym9keT5cbiAgICA8dHIgKm5nRm9yPVwibGV0IHdlZWsgb2YgX21vbnRoXCI+XG4gICAgICA8dGQgKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAoY2xpY2spPVwiX29uRGF0ZVNlbGVjdGVkKGRheSlcIlxuICAgICAgICAgIGNsYXNzPVwie3sgZGF5LmNzc0NsYXNzZXMgfX1cIlxuICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJkYXkuaXNTZWxlY3RlZFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBkYXkuZGF0ZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG5cbjwhLS0gPGlmcmFtZSBzcmM9XCJraXJieS9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLndlYnZpZXcuaHRtbFwiICNjYWxlbmRhckNvbnRhaW5lciBzdHlsZT1cIndpZHRoOiAzMjBweDsgaGVpZ2h0OiAzMDRweDsgYm9yZGVyOiAwXCI+IC0tPlxuIl19
425
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUdULE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLE9BQU8sRUFDUCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxHQUNaLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdELE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSTFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBYTNELElBQUssUUFTSjtBQVRELFdBQUssUUFBUTtJQUNYLDJCQUFlLENBQUE7SUFDZiw2QkFBaUIsQ0FBQTtJQUNqQiwyQkFBZSxDQUFBO0lBQ2YseUJBQWEsQ0FBQTtJQUNiLDJCQUFlLENBQUE7SUFDZiwrQkFBbUIsQ0FBQTtJQUNuQiwrQkFBbUIsQ0FBQTtJQUNuQix5Q0FBNkIsQ0FBQTtBQUMvQixDQUFDLEVBVEksUUFBUSxLQUFSLFFBQVEsUUFTWjtBQVFELE1BQU0sT0FBTyxpQkFBaUI7SUFvSTVCLFlBQW9CLGNBQThCLEVBQXFCLE1BQWM7UUFBakUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBbEl4QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxhQUFRLEdBQW9CLE9BQU8sQ0FBQztRQUNwQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUE4QixFQUFFLENBQUM7UUFDdkQ7OztVQUdFO1FBQ08sZUFBVSxHQUFHLEtBQUssQ0FBQztRQWtCcEIsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFDNUIsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFNM0Isb0JBQWUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7UUE2RjNDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7SUFDdkUsQ0FBQztJQTdGRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQWEsWUFBWSxDQUFDLGVBQXFCO1FBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNsRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFhLGFBQWEsQ0FBQyxLQUFhO1FBQ3RDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBYSxZQUFZLENBQUMsS0FBYTtRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQWEsU0FBUyxDQUFDLEtBQVc7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsT0FBTyxDQUFDLEtBQVc7UUFDOUIsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNsRSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsT0FBTyxDQUFDLEtBQVc7UUFDOUIsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNqRSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksY0FBYztRQUNoQixNQUFNLHdCQUF3QixHQUM1QixJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEYsTUFBTSx1QkFBdUIsR0FDM0IsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTlFLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLHdCQUF3QixFQUFFLHVCQUF1QixDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUNJLGlCQUFpQjtRQUNuQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDckMsQ0FBQztJQU9PLGdCQUFnQixDQUFDLElBQVUsRUFBRSxZQUFvQjtRQUN2RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ2hDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sU0FBUyxDQUFDLE1BQWM7UUFDOUIsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxpRUFBaUU7U0FDbkY7UUFDRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUU1RSxPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsa0RBQWtEO0lBQ2xILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDdEIsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzlCLElBQ0UsT0FBTyxDQUFDLGVBQWU7WUFDdkIsT0FBTyxDQUFDLGdCQUFnQjtZQUN4QixPQUFPLENBQUMsa0JBQWtCO1lBQzFCLE9BQU8sQ0FBQyxhQUFhO1lBQ3JCLE9BQU8sQ0FBQyxZQUFZO1lBQ3BCLE9BQU8sQ0FBQyxPQUFPO1lBQ2YsT0FBTyxDQUFDLE9BQU87WUFDZixPQUFPLENBQUMsU0FBUztZQUNqQixPQUFPLENBQUMsUUFBUSxFQUNoQjtZQUNBLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLE9BQWEsSUFBSSxJQUFJLEVBQUU7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUM3RCxJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVELHNGQUFzRjtJQUN0Rix5RkFBeUY7SUFDekYsNkRBQTZEO0lBQzdELGlGQUFpRjtJQUNqRixtQ0FBbUM7SUFDM0IsYUFBYSxDQUFDLGNBQW9CO1FBQ3hDLElBQUksQ0FBQyxjQUFjO1lBQUUsT0FBTztRQUU1QixJQUFJLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxjQUFjLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDckUsa0NBQWtDO1lBQ2xDLE9BQU8sY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsSUFDRSxVQUFVLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDdkUsY0FBYyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQzNEO1lBQ0EsaUZBQWlGO1lBQ2pGLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDNUUsT0FBTyxpQkFBaUIsQ0FBQztTQUMxQjtRQUNELDJDQUEyQztRQUMzQyxPQUFPLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRXZCLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDO1lBQzdCLEtBQUssRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoRCxHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDN0MsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU8sa0NBQWtDLENBQUMsSUFBVTtRQUNuRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxPQUFhLEVBQUUsWUFBa0I7UUFDdEQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRTtZQUM3QixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsSUFBSSxPQUFPLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzVDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQVU7UUFDL0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFTyxhQUFhLENBQUMsSUFBVTtRQUM5QixPQUFPLENBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUN0RSxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBRTlCLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QyxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDMUUsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNuRSxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVuRixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTFELE1BQU0sSUFBSSxHQUFtQixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNwRSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFN0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDdEQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDMUQsTUFBTSxJQUFJLEdBQUc7Z0JBQ1gsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3hCLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYztnQkFDbEMsWUFBWTtnQkFDWixVQUFVO2dCQUNWLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDO2FBQzlELENBQUM7WUFDRixJQUFJLFVBQVUsRUFBRTtnQkFDZCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQzthQUN6QjtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBVSxFQUFFLEtBQVcsRUFBRSxVQUFnQjtRQUM5RCxPQUFPO1lBQ0wsT0FBTyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQy9CLE1BQU0sRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQztZQUM3QixRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7WUFDOUIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsY0FBYyxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDO1lBQzdDLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7U0FDbkUsQ0FBQztJQUNKLENBQUM7SUFFTyxZQUFZLENBQUMsR0FBZ0IsRUFBRSxJQUFVO1FBQy9DLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVTtnQkFDZCxHQUFHLENBQUMsY0FBYztnQkFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDO2dCQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQzFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMvQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQ2xELENBQUM7SUFDSixDQUFDO0lBRU8sYUFBYSxDQUFDLEdBQWdCLEVBQUUsWUFBcUIsRUFBRSxVQUFtQjtRQUNoRixNQUFNLFVBQVUsR0FBRztZQUNqQixlQUFlLEVBQUUsR0FBRyxDQUFDLGNBQWM7WUFDbkMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxTQUFTO1lBQ3RCLEtBQUssRUFBRSxHQUFHLENBQUMsT0FBTztZQUNsQixVQUFVLEVBQUUsWUFBWTtZQUN4QixRQUFRLEVBQUUsVUFBVTtZQUNwQixJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU07WUFDaEIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1NBQ3pCLENBQUM7UUFDRixJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDM0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUU7WUFDNUIsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ25CLGNBQWMsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDO2FBQzdCO1NBQ0Y7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRU8sS0FBSyxDQUFDLEtBQVksRUFBRSxJQUFZO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixPQUFPLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE9BQWE7UUFDeEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztTQUNyQztRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztTQUMzQjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxlQUFlLENBQUMsTUFBb0I7UUFDbEMsSUFBSSxNQUFNLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDdEMsSUFBSSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTdCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUU7Z0JBQzNCLE9BQU8sR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNuRjtZQUVELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQztZQUUzQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDbEM7WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsU0FBaUI7UUFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVk7UUFDdEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWEsRUFBRSxJQUFjO1FBQ3BELElBQUksS0FBSyxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFNUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE1BQU0scUJBQXFCLEdBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFekUsTUFBTSx3QkFBd0IsR0FDNUIsSUFBSSxDQUFDLE9BQU87WUFDWixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUU1RixPQUFPLENBQUMscUJBQXFCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsTUFBTSx1QkFBdUIsR0FDM0IsSUFBSSxDQUFDLGtCQUFrQixJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUzRSxNQUFNLHdCQUF3QixHQUM1QixJQUFJLENBQUMsT0FBTztZQUNaLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRTNGLE9BQU8sQ0FBQyx1QkFBdUIsSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQy9ELENBQUM7SUFFTyxPQUFPLENBQUMsSUFBVTtRQUN4QixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxJQUFJLEVBQUU7WUFDUixLQUFLLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQzVCLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQzNCLE9BQU8sR0FBRyxDQUFDLGNBQWMsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDM0QsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxRQUFRLEVBQUU7b0JBQ1osTUFBTTtpQkFDUDthQUNGO1NBQ0Y7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU87WUFDTCxlQUFlLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN0QyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1lBQzVDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVTtZQUNyQixTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDL0IsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVPLHNCQUFzQixDQUFDLElBQVU7UUFDdkMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2hFLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLGtCQUFrQixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVPLHdCQUF3QixDQUFDLGFBQTRCO1FBQzNELElBQUksYUFBYSxZQUFZLElBQUk7WUFBRSxPQUFPLGFBQWEsQ0FBQztRQUN4RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7UUFDM0MsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUcsYUFBYSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsU0FBZSxFQUFFLE9BQWE7UUFDekQsaUVBQWlFO1FBQ2pFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckYsTUFBTSxhQUFhLEdBQUcsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUMxQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsYUFBYSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN6RixDQUFDOztpSUF4Y1UsaUJBQWlCLGdEQW9JZ0MsU0FBUztxSEFwSTFELGlCQUFpQixzcEJBRmpCLENBQUMsY0FBYyxDQUFDLHVLQ3BFN0IsNjNDQWlEQTsyRkRxQmEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGdCQUFnQixhQUdmLENBQUMsY0FBYyxDQUFDOzswQkFzSTBCLE1BQU07MkJBQUMsU0FBUzs0Q0FuSWxCLGlCQUFpQjtzQkFBbkUsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ3ZDLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBUUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQXVCTyxZQUFZO3NCQUF4QixLQUFLO2dCQWNPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBUU8sWUFBWTtzQkFBeEIsS0FBSztnQkFRTyxTQUFTO3NCQUFyQixLQUFLO2dCQVFPLE9BQU87c0JBQW5CLEtBQUs7Z0JBV08sT0FBTztzQkFBbkIsS0FBSztnQkFpQ0YsaUJBQWlCO3NCQURwQixXQUFXO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTE9DQUxFX0lELFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgYWRkLFxuICBkaWZmZXJlbmNlSW5EYXlzLFxuICBlYWNoRGF5T2ZJbnRlcnZhbCxcbiAgZW5kT2ZNb250aCxcbiAgZW5kT2ZXZWVrLFxuICBmb3JtYXQsXG4gIGdldFllYXIsXG4gIGlzQWZ0ZXIsXG4gIGlzQmVmb3JlLFxuICBpc1NhbWVEYXksXG4gIGlzU2FtZU1vbnRoLFxuICBpc1dlZWtlbmQsXG4gIExvY2FsZSBhcyBMb2NhbGVEYXRlRm5zLFxuICBzdGFydE9mRGF5LFxuICBzdGFydE9mTW9udGgsXG4gIHN0YXJ0T2ZXZWVrLFxufSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyB1dGNUb1pvbmVkVGltZSwgem9uZWRUaW1lVG9VdGMgfSBmcm9tICdkYXRlLWZucy10eic7XG5pbXBvcnQgeyBkYSwgZW5HQiwgZW5VUyB9IGZyb20gJ2RhdGUtZm5zL2xvY2FsZSc7XG5cbmltcG9ydCB7IGNhcGl0YWxpemVGaXJzdExldHRlciB9IGZyb20gJ0BraXJieWRlc2lnbi9jb3JlJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJDZWxsIH0gZnJvbSAnLi9oZWxwZXJzL2NhbGVuZGFyLWNlbGwubW9kZWwnO1xuaW1wb3J0IHsgQ2FsZW5kYXJPcHRpb25zIH0gZnJvbSAnLi9oZWxwZXJzL2NhbGVuZGFyLW9wdGlvbnMubW9kZWwnO1xuaW1wb3J0IHsgQ2FsZW5kYXJIZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMvY2FsZW5kYXIuaGVscGVyJztcbmltcG9ydCB7IENhbGVuZGFyWWVhck5hdmlnYXRvckNvbmZpZyB9IGZyb20gJy4vb3B0aW9ucy9jYWxlbmRhci15ZWFyLW5hdmlnYXRvci1jb25maWcnO1xuXG5leHBvcnQgdHlwZSBMb2NhbGUgPSBMb2NhbGVEYXRlRm5zO1xuaW50ZXJmYWNlIENhbGVuZGFyRGF5IHtcbiAgaXNDdXJyZW50TW9udGg6IGJvb2xlYW47XG4gIGlzVG9kYXk6IGJvb2xlYW47XG4gIGlzV2Vla2VuZDogYm9vbGVhbjtcbiAgaXNQYXN0OiBib29sZWFuO1xuICBpc0Z1dHVyZTogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbn1cblxuZW51bSBUaW1lVW5pdCB7XG4gIHllYXJzID0gJ3llYXJzJyxcbiAgbW9udGhzID0gJ21vbnRocycsXG4gIHdlZWtzID0gJ3dlZWtzJyxcbiAgZGF5cyA9ICdkYXlzJyxcbiAgaG91cnMgPSAnaG91cnMnLFxuICBtaW51dGVzID0gJ21pbnV0ZXMnLFxuICBzZWNvbmRzID0gJ3NlY29uZHMnLFxuICBtaWxsaXNlY29uZHMgPSAnbWlsbGlzZWNvbmRzJyxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktY2FsZW5kYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDYWxlbmRhckhlbHBlcl0sXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKCdjYWxlbmRhckNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjYWxlbmRhckNvbnRhaW5lcjogRWxlbWVudFJlZjtcbiAgQE91dHB1dCgpIGRhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIEBPdXRwdXQoKSBkYXRlU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBAT3V0cHV0KCkgeWVhclNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBASW5wdXQoKSB0aW1lem9uZTogJ2xvY2FsJyB8ICdVVEMnID0gJ2xvY2FsJztcbiAgQElucHV0KCkgZGlzYWJsZVdlZWtlbmRzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVQYXN0RGF0ZXMgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZUZ1dHVyZURhdGVzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFsd2F5c0VuYWJsZVRvZGF5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGN1c3RvbUxvY2FsZXM6IHsgW2tleTogc3RyaW5nXTogTG9jYWxlIH0gPSB7fTtcbiAgLyogXG4gICAgRXhwZXJpbWVudGFsOiBJbnB1dCBwcm9wZXJ0eSBub3QgZG9jdW1lbnRlZCBvbiBwdXJwb3NlLiBcbiAgICBGb3IgY29udGV4dCBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9raXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaXNzdWVzLzIwODdcbiAgKi9cbiAgQElucHV0KCkgdXNlUG9wb3ZlciA9IGZhbHNlO1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIHllYXIgbmF2aWdhdG9yLlxuICAgKlxuICAgKiBJbnRlcm5hbGx5LCBjYWxlbmRhciBjb21wb25lbnQ6XG4gICAqIC0gYmFzZXMgeWVhck5hdmlnYXRvck9wdGlvbnMuZnJvbSBhbmQgeWVhck5hdmlnYXRvck9wdGlvbnMudG8gb24gdG9kYXlEYXRlIGlmIGEgbnVtYmVyIGlzIHByb3ZpZGVkXG4gICAqIC0gcHJpb3JpdGl6ZXMgbWluRGF0ZSBhbmQgbWF4RGF0ZSBvdmVyIHllYXJOYXZpZ2F0b3JPcHRpb25zLmZyb20gYW5kIHllYXJOYXZpZ2F0b3JPcHRpb25zLnRvXG4gICAqL1xuICBASW5wdXQoKSB5ZWFyTmF2aWdhdG9yT3B0aW9uczogQ2FsZW5kYXJZZWFyTmF2aWdhdG9yQ29uZmlnO1xuXG4gIF9tb250aDogQ2FsZW5kYXJDZWxsW11bXTtcbiAgX3dlZWtEYXlzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSBzZWxlY3RlZERheTogQ2FsZW5kYXJDZWxsO1xuICAvLyBOT1RFOiBJbnRlcm5hbGx5LCBhbGwgRGF0ZXNcbiAgLy8gYXJlIG5vcm1hbGl6ZWQgdG8gcG9pbnQgdG8gbG9jYWwgdGltZXpvbmUgbWlkbmlnaHQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHRpbWV6b25lXG4gIC8vIHNldHRpbmcuXG4gIHByaXZhdGUgYWN0aXZlTW9udGg6IERhdGU7XG4gIHByaXZhdGUgX3NlbGVjdGVkRGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBfZGlzYWJsZWREYXRlczogRGF0ZVtdID0gW107XG4gIHByaXZhdGUgX2VuYWJsZWREYXRlczogRGF0ZVtdID0gW107XG4gIHByaXZhdGUgX3RvZGF5RGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBfbWluRGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBfbWF4RGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBsb2NhbGU6IExvY2FsZTtcbiAgcHJpdmF0ZSB0aW1lWm9uZU5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBpbmNsdWRlZExvY2FsZXMgPSB7IGRhLCBlbkdCLCBlblVTIH07XG5cbiAgZ2V0IHNlbGVjdGVkRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWREYXRlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkRGF0ZSh2YWx1ZUxvY2FsT3JVVEM6IERhdGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZUxvY2FsT3JVVEMpO1xuICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuaGFzRGF0ZUNoYW5nZWQodmFsdWUsIHRoaXMuX3NlbGVjdGVkRGF0ZSkpIHtcbiAgICAgIHRoaXMub25TZWxlY3RlZERhdGVDaGFuZ2UodmFsdWUpO1xuICAgICAgdGhpcy5fc2VsZWN0ZWREYXRlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRpc2FibGVkRGF0ZXMoKTogRGF0ZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWREYXRlcztcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZERhdGVzKHZhbHVlOiBEYXRlW10pIHtcbiAgICB0aGlzLl9kaXNhYmxlZERhdGVzID0gKHZhbHVlIHx8IFtdKS5tYXAoKGRhdGUpID0+IHRoaXMubm9ybWFsaXplRGF0ZShkYXRlKSk7XG4gIH1cblxuICBnZXQgZW5hYmxlZERhdGVzKCk6IERhdGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWREYXRlcztcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBlbmFibGVkRGF0ZXModmFsdWU6IERhdGVbXSkge1xuICAgIHRoaXMuX2VuYWJsZWREYXRlcyA9ICh2YWx1ZSB8fCBbXSkubWFwKChkYXRlKSA9PiB0aGlzLm5vcm1hbGl6ZURhdGUoZGF0ZSkpO1xuICB9XG5cbiAgZ2V0IHRvZGF5RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fdG9kYXlEYXRlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHRvZGF5RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIHRoaXMuX3RvZGF5RGF0ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbWluRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWluRGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuYWN0aXZlTW9udGggJiYgaXNCZWZvcmUodGhpcy5hY3RpdmVNb250aCwgdmFsdWUpKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZU1vbnRoKHZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5fbWluRGF0ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbWF4RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuYWN0aXZlTW9udGggJiYgaXNBZnRlcih0aGlzLmFjdGl2ZU1vbnRoLCB2YWx1ZSkpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLl9tYXhEYXRlID0gdGhpcy5ub3JtYWxpemVEYXRlKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVNb250aE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRoaXMuZm9ybWF0V2l0aExvY2FsZSh0aGlzLmFjdGl2ZU1vbnRoLCAnTU1NTScpKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVZZWFyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0V2l0aExvY2FsZSh0aGlzLmFjdGl2ZU1vbnRoLCAneXl5eScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgbmF2aWdhYmxlIHllYXJzIGZvciB5ZWFyIG5hdmlnYXRvciBiYXNlZCBvbiB5ZWFyTmF2aWdhdG9yT3B0aW9ucy5cbiAgICovXG4gIGdldCBuYXZpZ2FibGVZZWFycygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZGF0ZU9mRmlyc3ROYXZpZ2FibGVZZWFyID1cbiAgICAgIHRoaXMubWluRGF0ZSB8fCB0aGlzLmdldERhdGVGcm9tTmF2aWdhYmxlWWVhcih0aGlzLnllYXJOYXZpZ2F0b3JPcHRpb25zLmZyb20pO1xuXG4gICAgY29uc3QgZGF0ZU9mTGFzdE5hdmlnYWJsZVllYXIgPVxuICAgICAgdGhpcy5tYXhEYXRlIHx8IHRoaXMuZ2V0RGF0ZUZyb21OYXZpZ2FibGVZZWFyKHRoaXMueWVhck5hdmlnYXRvck9wdGlvbnMudG8pO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0WWVhcnNCZXR3ZWVuRGF0ZXMoZGF0ZU9mRmlyc3ROYXZpZ2FibGVZZWFyLCBkYXRlT2ZMYXN0TmF2aWdhYmxlWWVhcik7XG4gIH1cblxuICBnZXQgbmF2aWdhdGVkWWVhcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm5hdmlnYWJsZVllYXJzLmluZGV4T2YodGhpcy5hY3RpdmVZZWFyKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLXllYXItbmF2aWdhdG9yJylcbiAgZ2V0IF9oYXNZZWFyTmF2aWdhdG9yKCkge1xuICAgIHJldHVybiAhIXRoaXMueWVhck5hdmlnYXRvck9wdGlvbnM7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhbGVuZGFySGVscGVyOiBDYWxlbmRhckhlbHBlciwgQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLm1hcExvY2FsZShsb2NhbGUpO1xuICAgIHRoaXMudGltZVpvbmVOYW1lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRXaXRoTG9jYWxlKGRhdGU6IERhdGUsIGZvcm1hdFN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGZvcm1hdFN0cmluZywge1xuICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwTG9jYWxlKGxvY2FsZTogc3RyaW5nKTogTG9jYWxlIHtcbiAgICBpZiAobG9jYWxlID09PSAnZW4nKSB7XG4gICAgICBsb2NhbGUgPSAnZW5HQic7IC8vIGlmIGVuZ2xpc2ggbG9jYWxlIGlzIHByb3ZpZGVkIHdpdGhvdXQgcmVnaW9uLCB3ZSBkZWZhdWx0IHRvIEdCXG4gICAgfVxuICAgIGxvY2FsZSA9IGxvY2FsZS5yZXBsYWNlKCctJywgJycpO1xuICAgIGNvbnN0IGF2YWlsYWJsZUxvY2FsZXMgPSB7IC4uLnRoaXMuaW5jbHVkZWRMb2NhbGVzLCAuLi50aGlzLmN1c3RvbUxvY2FsZXMgfTtcblxuICAgIHJldHVybiBhdmFpbGFibGVMb2NhbGVzW2xvY2FsZV0gfHwgdGhpcy5pbmNsdWRlZExvY2FsZXMuZW5HQjsgLy8gRGVmYXVsdCB0byBlbkdCIGlmIGluamVjdGVkIGxvY2FsZSBkb2VzbnQgZXhpc3RcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX3dlZWtEYXlzID0gdGhpcy5nZXRXZWVrRGF5cygpO1xuICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodGhpcy5zZWxlY3RlZERhdGUpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIuaW5pdChcbiAgICAgIHRoaXMuY2FsZW5kYXJDb250YWluZXIsXG4gICAgICB0aGlzLmdldEhlbHBlck9wdGlvbnMoKSxcbiAgICAgIHRoaXMuX29uRGF0ZVNlbGVjdGVkLmJpbmQodGhpcyksXG4gICAgICB0aGlzLm9uQ2hhbmdlTW9udGguYmluZCh0aGlzKVxuICAgICk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZU1vbnRoKSByZXR1cm47XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5kaXNhYmxlV2Vla2VuZHMgfHxcbiAgICAgIGNoYW5nZXMuZGlzYWJsZVBhc3REYXRlcyB8fFxuICAgICAgY2hhbmdlcy5kaXNhYmxlRnV0dXJlRGF0ZXMgfHxcbiAgICAgIGNoYW5nZXMuZGlzYWJsZWREYXRlcyB8fFxuICAgICAgY2hhbmdlcy5lbmFibGVkRGF0ZXMgfHxcbiAgICAgIGNoYW5nZXMubWluRGF0ZSB8fFxuICAgICAgY2hhbmdlcy5tYXhEYXRlIHx8XG4gICAgICBjaGFuZ2VzLnRvZGF5RGF0ZSB8fFxuICAgICAgY2hhbmdlcy50aW1lem9uZVxuICAgICkge1xuICAgICAgdGhpcy5yZWZyZXNoQWN0aXZlTW9udGgoKTtcbiAgICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIudXBkYXRlKHRoaXMuZ2V0SGVscGVyT3B0aW9ucygpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEFjdGl2ZU1vbnRoKGRhdGU6IERhdGUgPSBuZXcgRGF0ZSgpKSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZU1vbnRoIHx8ICFpc1NhbWVNb250aCh0aGlzLmFjdGl2ZU1vbnRoLCBkYXRlKSkge1xuICAgICAgdGhpcy5hY3RpdmVNb250aCA9IHN0YXJ0T2ZNb250aChkYXRlKTtcbiAgICAgIHRoaXMucmVmcmVzaEFjdGl2ZU1vbnRoKCk7XG4gICAgICB0aGlzLmNhbGVuZGFySGVscGVyLnVwZGF0ZSh0aGlzLmdldEhlbHBlck9wdGlvbnMoKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9yIGxlbmllbmN5LCB0aGUgY29tcG9uZW50IHdpbGwgYWNjZXB0IGFueSBEYXRlIHRoYXQgcG9pbnRzIHRvIGVpdGhlciBVVEMgbWlkbmlnaHRcbiAgLy8gb3IgdG8gbG9jYWwgdGltZXpvbmUgbWlkbmlnaHQgYWx0aG91Z2ggd2Ugd2lsbCBpbnRlcm5hbGx5IG5vcm1hbGl6ZSB0aGUgcmVwcmVzZW50YXRpb25cbiAgLy8gb2YgYWxsIHJlY2VpdmVkIGRhdGVzIHRvIHBvaW50IHRvIGxvY2FsIHRpbWV6b25lIG1pZG5pZ2h0LlxuICAvLyBXZSBjdXJyZW50bHkgbG9nIG5vIHdhcm5pbmdzIGlmIHRoZSBkYXRlIGRvZXNuJ3QgbWF0Y2ggdGhlIHRpbWV6b25lIHNldHRpbmcgb3JcbiAgLy8gaWYgaXQgZG9lc24ndCBwb2ludCB0byBtaWRuaWdodC5cbiAgcHJpdmF0ZSBub3JtYWxpemVEYXRlKGRhdGVMb2NhbE9yVVRDOiBEYXRlKSB7XG4gICAgaWYgKCFkYXRlTG9jYWxPclVUQykgcmV0dXJuO1xuXG4gICAgaWYgKHN0YXJ0T2ZEYXkoZGF0ZUxvY2FsT3JVVEMpLmdldFRpbWUoKSA9PT0gZGF0ZUxvY2FsT3JVVEMuZ2V0VGltZSgpKSB7XG4gICAgICAvLyBkYXRlIGlzIGxvY2FsIHRpbWV6b25lIG1pZG5pZ2h0XG4gICAgICByZXR1cm4gZGF0ZUxvY2FsT3JVVEM7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHN0YXJ0T2ZEYXkodXRjVG9ab25lZFRpbWUoZGF0ZUxvY2FsT3JVVEMsIHRoaXMudGltZVpvbmVOYW1lKSkuZ2V0VGltZSgpID09PVxuICAgICAgdXRjVG9ab25lZFRpbWUoZGF0ZUxvY2FsT3JVVEMsIHRoaXMudGltZVpvbmVOYW1lKS5nZXRUaW1lKClcbiAgICApIHtcbiAgICAgIC8vIHRoZSBkYXRlIGlzIGEgVVRDIG1pZG5pZ2h0OyBjcmVhdGUgdGhlIGVxdWl2YWxlbnQgbG9jYWwgdGltZXpvbmUgbWlkbmlnaHQgZGF0ZVxuICAgICAgY29uc3Qgbm9ybWFsaXplZFVUQ2RhdGUgPSB1dGNUb1pvbmVkVGltZShkYXRlTG9jYWxPclVUQywgdGhpcy50aW1lWm9uZU5hbWUpO1xuICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRVVENkYXRlO1xuICAgIH1cbiAgICAvLyBkb2VzIG5vdCBwb2ludCB0byBtaWRuaWdodCBzbyB3ZSBtYWtlIGl0XG4gICAgcmV0dXJuIHN0YXJ0T2ZEYXkoZGF0ZUxvY2FsT3JVVEMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRXZWVrRGF5cygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcblxuICAgIGNvbnN0IHdlZWsgPSBlYWNoRGF5T2ZJbnRlcnZhbCh7XG4gICAgICBzdGFydDogc3RhcnRPZldlZWsobm93LCB7IGxvY2FsZTogdGhpcy5sb2NhbGUgfSksXG4gICAgICBlbmQ6IGVuZE9mV2Vlayhub3csIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KSxcbiAgICB9KTtcblxuICAgIHJldHVybiB3ZWVrLm1hcCgoZGF0ZSkgPT4gdGhpcy5nZXRGaXJzdExldHRlck9mV2Vla0RheUNhcGl0YWxpemVkKGRhdGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rmlyc3RMZXR0ZXJPZldlZWtEYXlDYXBpdGFsaXplZChkYXRlOiBEYXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0V2l0aExvY2FsZShkYXRlLCAnRUVFRUUnKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzRGF0ZUNoYW5nZWQobmV3RGF0ZTogRGF0ZSwgcHJldmlvdXNEYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgaWYgKCFuZXdEYXRlICYmICFwcmV2aW91c0RhdGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKG5ld0RhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFwcmV2aW91c0RhdGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gIWlzU2FtZURheShuZXdEYXRlLCBwcmV2aW91c0RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Rpc2FibGVkRGF0ZShkYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcy5zb21lKChkaXNhYmxlZERhdGUpID0+IGlzU2FtZURheShkaXNhYmxlZERhdGUsIGRhdGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNFbmFibGVkRGF0ZShkYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2VuYWJsZWREYXRlcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHRoaXMuZW5hYmxlZERhdGVzLnNvbWUoKGVuYWJsZWREYXRlKSA9PiBpc1NhbWVEYXkoZW5hYmxlZERhdGUsIGRhdGUpKVxuICAgICk7XG4gIH1cblxuICByZWZyZXNoQWN0aXZlTW9udGgoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZU1vbnRoKSByZXR1cm47XG5cbiAgICBjb25zdCBtb250aFN0YXJ0ID0gc3RhcnRPZk1vbnRoKHRoaXMuYWN0aXZlTW9udGgpO1xuICAgIGNvbnN0IG1vbnRoRW5kID0gZW5kT2ZNb250aCh0aGlzLmFjdGl2ZU1vbnRoKTtcbiAgICBjb25zdCBzdGFydE9mRmlyc3RXZWVrID0gc3RhcnRPZldlZWsobW9udGhTdGFydCwgeyBsb2NhbGU6IHRoaXMubG9jYWxlIH0pO1xuICAgIGNvbnN0IGVuZE9mTGFzdFdlZWsgPSBlbmRPZldlZWsobW9udGhFbmQsIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KTtcbiAgICBjb25zdCB0b3RhbERheUNvdW50ID0gZGlmZmVyZW5jZUluRGF5cyhlbmRPZkxhc3RXZWVrLCBzdGFydE9mRmlyc3RXZWVrKSArIDE7XG4gICAgY29uc3QgdG9kYXkgPSB0aGlzLnRvZGF5RGF0ZSA/IHN0YXJ0T2ZEYXkodGhpcy50b2RheURhdGUpIDogc3RhcnRPZkRheShuZXcgRGF0ZSgpKTtcblxuICAgIGNvbnN0IGRheXNBcnJheSA9IEFycmF5LmZyb20oQXJyYXkodG90YWxEYXlDb3VudCkua2V5cygpKTtcblxuICAgIGNvbnN0IGRheXM6IENhbGVuZGFyQ2VsbFtdID0gZGF5c0FycmF5Lm1hcCgobnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBjZWxsRGF0ZSA9IGFkZChzdGFydE9mRmlyc3RXZWVrLCB7IFtUaW1lVW5pdC5kYXlzXTogbnVtYmVyIH0pO1xuICAgICAgY29uc3QgZGF5ID0gdGhpcy5nZXRDYWxlbmRhckRheShjZWxsRGF0ZSwgdG9kYXksIG1vbnRoU3RhcnQpO1xuXG4gICAgICBjb25zdCBpc1NlbGVjdGFibGUgPSB0aGlzLmlzU2VsZWN0YWJsZShkYXksIGNlbGxEYXRlKTtcbiAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBpc1NhbWVEYXkodGhpcy5zZWxlY3RlZERhdGUsIGNlbGxEYXRlKTtcbiAgICAgIGNvbnN0IGNlbGwgPSB7XG4gICAgICAgIGRhdGU6IGNlbGxEYXRlLmdldERhdGUoKSxcbiAgICAgICAgaXNDdXJyZW50TW9udGg6IGRheS5pc0N1cnJlbnRNb250aCxcbiAgICAgICAgaXNTZWxlY3RhYmxlLFxuICAgICAgICBpc1NlbGVjdGVkLFxuICAgICAgICBjc3NDbGFzc2VzOiB0aGlzLmdldENzc0NsYXNzZXMoZGF5LCBpc1NlbGVjdGFibGUsIGlzU2VsZWN0ZWQpLFxuICAgICAgfTtcbiAgICAgIGlmIChpc1NlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXkgPSBjZWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNlbGw7XG4gICAgfSk7XG4gICAgdGhpcy5fbW9udGggPSB0aGlzLmNodW5rKGRheXMsIDcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYWxlbmRhckRheShkYXRlOiBEYXRlLCB0b2RheTogRGF0ZSwgbW9udGhTdGFydDogRGF0ZSk6IENhbGVuZGFyRGF5IHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNUb2RheTogaXNTYW1lRGF5KHRvZGF5LCBkYXRlKSxcbiAgICAgIGlzUGFzdDogaXNCZWZvcmUoZGF0ZSwgdG9kYXkpLFxuICAgICAgaXNGdXR1cmU6IGlzQWZ0ZXIoZGF0ZSwgdG9kYXkpLFxuICAgICAgaXNXZWVrZW5kOiBpc1dlZWtlbmQoZGF0ZSksXG4gICAgICBpc0N1cnJlbnRNb250aDogaXNTYW1lTW9udGgoZGF0ZSwgbW9udGhTdGFydCksXG4gICAgICBpc0Rpc2FibGVkOiB0aGlzLmlzRGlzYWJsZWREYXRlKGRhdGUpIHx8ICF0aGlzLmlzRW5hYmxlZERhdGUoZGF0ZSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTZWxlY3RhYmxlKGRheTogQ2FsZW5kYXJEYXksIGRhdGU6IERhdGUpIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMuYWx3YXlzRW5hYmxlVG9kYXkgJiYgZGF5LmlzVG9kYXkpIHx8XG4gICAgICAoIWRheS5pc0Rpc2FibGVkICYmXG4gICAgICAgIGRheS5pc0N1cnJlbnRNb250aCAmJlxuICAgICAgICAhKHRoaXMuZGlzYWJsZVdlZWtlbmRzICYmIGRheS5pc1dlZWtlbmQpICYmXG4gICAgICAgICEodGhpcy5kaXNhYmxlUGFzdERhdGVzICYmIGRheS5pc1Bhc3QpICYmXG4gICAgICAgICEodGhpcy5kaXNhYmxlRnV0dXJlRGF0ZXMgJiYgZGF5LmlzRnV0dXJlKSAmJlxuICAgICAgICAhKHRoaXMubWluRGF0ZSAmJiBpc0JlZm9yZShkYXRlLCB0aGlzLm1pbkRhdGUpKSAmJlxuICAgICAgICAhKHRoaXMubWF4RGF0ZSAmJiBpc0FmdGVyKGRhdGUsIHRoaXMubWF4RGF0ZSkpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldENzc0NsYXNzZXMoZGF5OiBDYWxlbmRhckRheSwgaXNTZWxlY3RhYmxlOiBib29sZWFuLCBpc1NlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgY29uc3QgY3NzQ2xhc3NlcyA9IHtcbiAgICAgICdjdXJyZW50LW1vbnRoJzogZGF5LmlzQ3VycmVudE1vbnRoLFxuICAgICAgd2Vla2VuZDogZGF5LmlzV2Vla2VuZCxcbiAgICAgIHRvZGF5OiBkYXkuaXNUb2RheSxcbiAgICAgIHNlbGVjdGFibGU6IGlzU2VsZWN0YWJsZSxcbiAgICAgIHNlbGVjdGVkOiBpc1NlbGVjdGVkLFxuICAgICAgcGFzdDogZGF5LmlzUGFzdCxcbiAgICAgIGRpc2FibGVkOiBkYXkuaXNEaXNhYmxlZCxcbiAgICB9O1xuICAgIGxldCBjc3NDbGFzc1N0cmluZyA9ICdkYXknO1xuICAgIGZvciAoY29uc3Qga2V5IGluIGNzc0NsYXNzZXMpIHtcbiAgICAgIGlmIChjc3NDbGFzc2VzW2tleV0pIHtcbiAgICAgICAgY3NzQ2xhc3NTdHJpbmcgKz0gJyAnICsga2V5O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY3NzQ2xhc3NTdHJpbmc7XG4gIH1cblxuICBwcml2YXRlIGNodW5rKGFycmF5OiBhbnlbXSwgc2l6ZTogbnVtYmVyKSB7XG4gICAgY29uc3QgcmVzdWx0cyA9IFtdO1xuICAgIHdoaWxlIChhcnJheS5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdHMucHVzaChhcnJheS5zcGxpY2UoMCwgc2l6ZSkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIHByaXZhdGUgb25TZWxlY3RlZERhdGVDaGFuZ2UobmV3RGF0ZTogRGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF5KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF5LmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdEYXkgPSB0aGlzLmdldENlbGwobmV3RGF0ZSk7XG4gICAgaWYgKG5ld0RheSkge1xuICAgICAgbmV3RGF5LmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zZWxlY3RlZERheSA9IG5ld0RheTtcbiAgICB9XG4gICAgdGhpcy5jYWxlbmRhckhlbHBlci5zZXRTZWxlY3RlZERheShuZXdEYXRlLmdldERhdGUoKSk7XG4gIH1cblxuICBfb25EYXRlU2VsZWN0ZWQobmV3RGF5OiBDYWxlbmRhckNlbGwpIHtcbiAgICBpZiAobmV3RGF5LmlzU2VsZWN0YWJsZSAmJiBuZXdEYXkuZGF0ZSkge1xuICAgICAgbGV0IG5ld0RhdGUgPSBuZXcgRGF0ZSh0aGlzLmFjdGl2ZU1vbnRoKTtcbiAgICAgIG5ld0RhdGUuc2V0RGF0ZShuZXdEYXkuZGF0ZSk7XG5cbiAgICAgIGlmICh0aGlzLnRpbWV6b25lID09PSAnVVRDJykge1xuICAgICAgICBuZXdEYXRlID0gem9uZWRUaW1lVG9VdGModGhpcy5zdWJ0cmFjdFRpbWV6b25lT2Zmc2V0KG5ld0RhdGUpLCB0aGlzLnRpbWVab25lTmFtZSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGVUb0VtaXQgPSBuZXdEYXRlO1xuXG4gICAgICBpZiAodGhpcy5oYXNEYXRlQ2hhbmdlZChuZXdEYXRlLCB0aGlzLl9zZWxlY3RlZERhdGUpKSB7XG4gICAgICAgIHRoaXMub25TZWxlY3RlZERhdGVDaGFuZ2UobmV3RGF0ZSk7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkRGF0ZSA9IG5ld0RhdGU7XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGRhdGVUb0VtaXQpO1xuICAgICAgfVxuICAgICAgdGhpcy5kYXRlU2VsZWN0LmVtaXQoZGF0ZVRvRW1pdCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZU1vbnRoKGRpcmVjdGlvbjogbnVtYmVyKSB7XG4gICAgdGhpcy5fY2hhbmdlTW9udGgoZGlyZWN0aW9uKTtcbiAgICB0aGlzLmNhbGVuZGFySGVscGVyLnVwZGF0ZSh0aGlzLmdldEhlbHBlck9wdGlvbnMoKSk7XG4gIH1cblxuICBfY2hhbmdlTW9udGgoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuY2hhbmdlQWN0aXZlVmlldyhpbmRleCwgVGltZVVuaXQubW9udGhzKTtcbiAgfVxuXG4gIF9jaGFuZ2VZZWFyKHllYXI6IHN0cmluZykge1xuICAgIGNvbnN0IHllYXJOdW1lcmljID0gTnVtYmVyKHllYXIpO1xuICAgIHRoaXMuY2hhbmdlQWN0aXZlVmlldyh5ZWFyTnVtZXJpYyAtIGdldFllYXIodGhpcy5hY3RpdmVNb250aCksIFRpbWVVbml0LnllYXJzKTtcbiAgICB0aGlzLnllYXJTZWxlY3QuZW1pdCh5ZWFyTnVtZXJpYyk7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZUFjdGl2ZVZpZXcoaW5kZXg6IG51bWJlciwgdW5pdDogVGltZVVuaXQpIHtcbiAgICBpZiAoaW5kZXggPT09IDApIHJldHVybjtcbiAgICB0aGlzLmFjdGl2ZU1vbnRoID0gYWRkKHRoaXMuYWN0aXZlTW9udGgsIHsgW3VuaXRdOiBpbmRleCB9KTtcblxuICAgIHRoaXMucmVmcmVzaEFjdGl2ZU1vbnRoKCk7XG4gIH1cblxuICBnZXQgX2Nhbk5hdmlnYXRlQmFjaygpOiBib29sZWFuIHtcbiAgICBjb25zdCByZWFjaGVkUGFzdERhdGVzTGltaXQgPVxuICAgICAgdGhpcy5kaXNhYmxlUGFzdERhdGVzICYmIGlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMudG9kYXlEYXRlKTtcblxuICAgIGNvbnN0IHJlYWNoZWRPckV4Y2VlZGVkTWluRGF0ZSA9XG4gICAgICB0aGlzLm1pbkRhdGUgJiZcbiAgICAgIChpc1NhbWVNb250aCh0aGlzLmFjdGl2ZU1vbnRoLCB0aGlzLm1pbkRhdGUpIHx8IGlzQmVmb3JlKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMubWluRGF0ZSkpO1xuXG4gICAgcmV0dXJuICFyZWFjaGVkUGFzdERhdGVzTGltaXQgJiYgIXJlYWNoZWRPckV4Y2VlZGVkTWluRGF0ZTtcbiAgfVxuXG4gIGdldCBfY2FuTmF2aWdhdGVGb3J3YXJkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlYWNoZWRGdXR1cmVEYXRlc0xpbWl0ID1cbiAgICAgIHRoaXMuZGlzYWJsZUZ1dHVyZURhdGVzICYmIGlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMudG9kYXlEYXRlKTtcblxuICAgIGNvbnN0IHJlYWNoZWRPckV4Y2VlZGVkTWF4RGF0ZSA9XG4gICAgICB0aGlzLm1heERhdGUgJiZcbiAgICAgIChpc1NhbWVNb250aCh0aGlzLmFjdGl2ZU1vbnRoLCB0aGlzLm1heERhdGUpIHx8IGlzQWZ0ZXIodGhpcy5hY3RpdmVNb250aCwgdGhpcy5tYXhEYXRlKSk7XG5cbiAgICByZXR1cm4gIXJlYWNoZWRGdXR1cmVEYXRlc0xpbWl0ICYmICFyZWFjaGVkT3JFeGNlZWRlZE1heERhdGU7XG4gIH1cblxuICBwcml2YXRlIGdldENlbGwoZGF0ZTogRGF0ZSkge1xuICAgIGxldCBmb3VuZERheSA9IG51bGw7XG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIGZvciAobGV0IHdlZWsgb2YgdGhpcy5fbW9udGgpIHtcbiAgICAgICAgZm91bmREYXkgPSB3ZWVrLmZpbmQoKGRheSkgPT4ge1xuICAgICAgICAgIHJldHVybiBkYXkuaXNDdXJyZW50TW9udGggJiYgZGF5LmRhdGUgPT09IGRhdGUuZ2V0RGF0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGZvdW5kRGF5KSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZvdW5kRGF5O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRIZWxwZXJPcHRpb25zKCk6IENhbGVuZGFyT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNhbk5hdmlnYXRlQmFjazogdGhpcy5fY2FuTmF2aWdhdGVCYWNrLFxuICAgICAgY2FuTmF2aWdhdGVGb3J3YXJkOiB0aGlzLl9jYW5OYXZpZ2F0ZUZvcndhcmQsXG4gICAgICB5ZWFyOiB0aGlzLmFjdGl2ZVllYXIsXG4gICAgICBtb250aE5hbWU6IHRoaXMuYWN0aXZlTW9udGhOYW1lLFxuICAgICAgd2Vla0RheXM6IHRoaXMuX3dlZWtEYXlzLFxuICAgICAgbW9udGg6IHRoaXMuX21vbnRoLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN1YnRyYWN0VGltZXpvbmVPZmZzZXQoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IHRpbWV6b25lT2Zmc2V0SW5NcyA9IGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwICogMTAwMDtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSB0aW1lem9uZU9mZnNldEluTXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREYXRlRnJvbU5hdmlnYWJsZVllYXIobmF2aWdhYmxlWWVhcjogbnVtYmVyIHwgRGF0ZSk6IERhdGUge1xuICAgIGlmIChuYXZpZ2FibGVZZWFyIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIG5hdmlnYWJsZVllYXI7XG4gICAgY29uc3QgdG9kYXkgPSB0aGlzLnRvZGF5RGF0ZSB8fCBuZXcgRGF0ZSgpO1xuICAgIHJldHVybiBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpICsgbmF2aWdhYmxlWWVhciwgMCwgMSk7XG4gIH1cblxuICBwcml2YXRlIGdldFllYXJzQmV0d2VlbkRhdGVzKHN0YXJ0RGF0ZTogRGF0ZSwgZW5kRGF0ZTogRGF0ZSk6IHN0cmluZ1tdIHtcbiAgICAvLyBFbnN1cmUgeWVhcnMgYXJlIG9yZGVyZWQgY29ycmVjdGx5IGlmIHBhcmFtZXRlcnMgYXJlIHN3aXRjaGVkOlxuICAgIGNvbnN0IFtzdGFydFllYXIsIGVuZFllYXJdID0gW3N0YXJ0RGF0ZS5nZXRGdWxsWWVhcigpLCBlbmREYXRlLmdldEZ1bGxZZWFyKCldLnNvcnQoKTtcbiAgICBjb25zdCBudW1iZXJPZlllYXJzID0gZW5kWWVhciAtIHN0YXJ0WWVhcjtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogbnVtYmVyT2ZZZWFycyArIDEgfSwgKF8sIGkpID0+IChzdGFydFllYXIgKyBpKS50b1N0cmluZygpKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICA8ZGl2IGNsYXNzPVwibW9udGgtbmF2aWdhdG9yXCI+XG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiIV9jYW5OYXZpZ2F0ZUJhY2tcIiAoY2xpY2spPVwiX2NoYW5nZU1vbnRoKC0xKVwiPlxuICAgICAgPGtpcmJ5LWljb24gbmFtZT1cImFycm93LWJhY2tcIj48L2tpcmJ5LWljb24+XG4gICAgPC9idXR0b24+XG5cbiAgICA8ZGl2IGNsYXNzPVwibW9udGgtYW5kLXllYXJcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibW9udGhcIj57eyBhY3RpdmVNb250aE5hbWUgfX08L3NwYW5cbiAgICAgID48c3BhbiAqbmdJZj1cIiFfaGFzWWVhck5hdmlnYXRvclwiIGNsYXNzPVwieWVhclwiPnt7IGFjdGl2ZVllYXIgfX08L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCIhX2Nhbk5hdmlnYXRlRm9yd2FyZFwiIChjbGljayk9XCJfY2hhbmdlTW9udGgoMSlcIj5cbiAgICAgIDxraXJieS1pY29uIG5hbWU9XCJhcnJvdy1tb3JlXCI+PC9raXJieS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGtpcmJ5LWRyb3Bkb3duXG4gICAgKm5nSWY9XCJfaGFzWWVhck5hdmlnYXRvclwiXG4gICAgW3VzZVBvcG92ZXJdPVwidXNlUG9wb3ZlclwiXG4gICAgW3NlbGVjdGVkSW5kZXhdPVwibmF2aWdhdGVkWWVhclwiXG4gICAgW2l0ZW1zXT1cIm5hdmlnYWJsZVllYXJzXCJcbiAgICBwb3BvdXQ9XCJsZWZ0XCJcbiAgICAoY2hhbmdlKT1cIl9jaGFuZ2VZZWFyKCRldmVudClcIlxuICA+XG4gIDwva2lyYnktZHJvcGRvd24+XG48L2Rpdj5cblxuPHRhYmxlPlxuICA8dGhlYWQ+XG4gICAgPHRyPlxuICAgICAgPHRoICpuZ0Zvcj1cImxldCB3ZWVrRGF5IG9mIF93ZWVrRGF5c1wiPnt7IHdlZWtEYXkgfX08L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG5cbiAgPHRib2R5PlxuICAgIDx0ciAqbmdGb3I9XCJsZXQgd2VlayBvZiBfbW9udGhcIj5cbiAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWtcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIChjbGljayk9XCJfb25EYXRlU2VsZWN0ZWQoZGF5KVwiXG4gICAgICAgICAgY2xhc3M9XCJ7eyBkYXkuY3NzQ2xhc3NlcyB9fVwiXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImRheS5pc1NlbGVjdGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGRheS5kYXRlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPCEtLSA8aWZyYW1lIHNyYz1cImtpcmJ5L2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIud2Vidmlldy5odG1sXCIgI2NhbGVuZGFyQ29udGFpbmVyIHN0eWxlPVwid2lkdGg6IDMyMHB4OyBoZWlnaHQ6IDMwNHB4OyBib3JkZXI6IDBcIj4gLS0+XG4iXX0=
@@ -5,9 +5,9 @@ export class CardFooterComponent {
5
5
  ngOnInit() { }
6
6
  }
7
7
  /** @nocollapse */ CardFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: CardFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
- /** @nocollapse */ CardFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: CardFooterComponent, selector: "kirby-card-footer", ngImport: i0, template: "<footer>\n <ng-content></ng-content>\n</footer>\n", styles: [":host{display:block;padding:16px;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0)}footer{display:inherit;flex:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8
+ /** @nocollapse */ CardFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: CardFooterComponent, selector: "kirby-card-footer", ngImport: i0, template: "<footer>\n <ng-content></ng-content>\n</footer>\n", styles: [":host{display:block;padding:16px;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translate(0)}footer{display:inherit;flex:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: CardFooterComponent, decorators: [{
10
10
  type: Component,
11
- args: [{ selector: 'kirby-card-footer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<footer>\n <ng-content></ng-content>\n</footer>\n", styles: [":host{display:block;padding:16px;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0)}footer{display:inherit;flex:inherit}\n"] }]
11
+ args: [{ selector: 'kirby-card-footer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<footer>\n <ng-content></ng-content>\n</footer>\n", styles: [":host{display:block;padding:16px;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translate(0)}footer{display:inherit;flex:inherit}\n"] }]
12
12
  }], ctorParameters: function () { return []; } });
13
13
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC1mb290ZXIvY2FyZC1mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC1mb290ZXIvY2FyZC1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDOzttSUFIRixtQkFBbUI7dUhBQW5CLG1CQUFtQix5RENSaEMsb0RBR0E7MkZES2EsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LWNhcmQtZm9vdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC1mb290ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhcmRGb290ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxufVxuIiwiPGZvb3Rlcj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9mb290ZXI+XG4iXX0=
@@ -33,7 +33,7 @@ export class FabSheetComponent {
33
33
  this.renderer.removeClass(this.document.body, 'fab-sheet-active');
34
34
  }
35
35
  onFabClick(fab) {
36
- this._isFabSheetOpen = !fab.activated;
36
+ this._isFabSheetOpen = fab.activated;
37
37
  if (this._isFabSheetOpen) {
38
38
  this.renderer.addClass(this.document.body, 'fab-sheet-active');
39
39
  }
@@ -48,10 +48,10 @@ export class FabSheetComponent {
48
48
  }
49
49
  }
50
50
  /** @nocollapse */ FabSheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: FabSheetComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
51
- /** @nocollapse */ FabSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: FabSheetComponent, selector: "kirby-fab-sheet", inputs: { disabled: "disabled", horizontalAlignment: "horizontalAlignment" }, host: { properties: { "class.is-open": "this.isFabSheetOpen", "class.backdrop-visible": "this.isBackdropVisible" } }, queries: [{ propertyName: "actionSheet", first: true, predicate: ActionSheetComponent, descendants: true }], viewQueries: [{ propertyName: "ionFabButton", first: true, predicate: IonFabButton, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-backdrop\n *ngIf=\"actionSheet && isFabSheetOpen\"\n (ionBackdropTap)=\"hideActions(fab)\"\n (click)=\"hideActions(fab)\"\n></ion-backdrop>\n<ion-fab #fab (click)=\"disabled || onFabClick(fab)\">\n <ion-fab-button [disabled]=\"disabled\" [attr.disabled]=\"disabled ? true : null\" tabindex=\"-1\">\n <ng-content select=\"kirby-icon\"></ng-content>\n </ion-fab-button>\n <ion-fab-list *ngIf=\"actionSheet\" side=\"top\" class=\"{{ horizontalAlignment }}\">\n <ng-content select=\"kirby-action-sheet\"></ng-content>\n </ion-fab-list>\n</ion-fab>\n", styles: [":host{--kirby-action-sheet-margin-horizontal: 16px}ion-fab-button{--box-shadow: 0 20px 30px -15px rgba(28, 28, 28, .3), 0 0 5px 0 rgba(28, 28, 28, .08);width:64px;height:64px;-webkit-user-select:none;user-select:none;outline:none}@media (hover: hover){ion-fab-button:focus{--border-width: 1px;--border-style: solid;--border-color: #4d90fe}}ion-fab-button[disabled]{--background: var(--kirby-semi-light);--box-shadow: none;opacity:1}ion-fab{position:fixed;bottom:16px;right:16px}:host-context(.fixed-content) ion-fab{position:absolute}ion-backdrop{opacity:0;transition:opacity .75s;position:fixed;z-index:999}:host(.backdrop-visible) ion-backdrop{opacity:.4}@media (min-width: 721px){:host(.backdrop-visible) ion-backdrop{opacity:0}}ion-fab-list{margin-top:76px;margin-bottom:76px;right:0}\n"], components: [{ type: i1.IonBackdrop, selector: "ion-backdrop", inputs: ["stopPropagation", "tappable", "visible"] }, { type: i1.IonFab, selector: "ion-fab", inputs: ["activated", "edge", "horizontal", "vertical"] }, { type: i1.IonFabButton, selector: "ion-fab-button", inputs: ["activated", "closeIcon", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "show", "size", "target", "translucent", "type"] }, { type: i1.IonFabList, selector: "ion-fab-list", inputs: ["activated", "side"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
+ /** @nocollapse */ FabSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: FabSheetComponent, selector: "kirby-fab-sheet", inputs: { disabled: "disabled", horizontalAlignment: "horizontalAlignment" }, host: { properties: { "class.is-open": "this.isFabSheetOpen", "class.backdrop-visible": "this.isBackdropVisible" } }, queries: [{ propertyName: "actionSheet", first: true, predicate: ActionSheetComponent, descendants: true }], viewQueries: [{ propertyName: "ionFabButton", first: true, predicate: IonFabButton, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-backdrop\n *ngIf=\"actionSheet && isFabSheetOpen\"\n (ionBackdropTap)=\"hideActions(fab)\"\n (click)=\"hideActions(fab)\"\n></ion-backdrop>\n<ion-fab #fab (click)=\"disabled || onFabClick(fab)\">\n <ion-fab-button [disabled]=\"disabled\" [attr.disabled]=\"disabled ? true : null\" tabindex=\"-1\">\n <ng-content select=\"kirby-icon\"></ng-content>\n </ion-fab-button>\n <ion-fab-list *ngIf=\"actionSheet\" side=\"top\" class=\"{{ horizontalAlignment }}\">\n <ng-content select=\"kirby-action-sheet\"></ng-content>\n </ion-fab-list>\n</ion-fab>\n", styles: [":host{--kirby-action-sheet-margin-horizontal: 16px}ion-fab-button{--box-shadow: 0 20px 30px -15px rgba(28, 28, 28, .3), 0 0 5px 0 rgba(28, 28, 28, .08);width:64px;height:64px;-webkit-user-select:none;user-select:none;outline:none}@media (hover: hover){ion-fab-button:focus{--border-width: 1px;--border-style: solid;--border-color: rgb(77, 144, 254)}}ion-fab-button[disabled]{--background: var(--kirby-semi-light);--box-shadow: none;opacity:1}ion-fab{position:fixed;bottom:16px;right:16px}:host-context(.fixed-content) ion-fab{position:absolute}ion-backdrop{opacity:0;transition:opacity .75s;position:fixed;z-index:999}:host(.backdrop-visible) ion-backdrop{opacity:.4}@media (min-width: 721px){:host(.backdrop-visible) ion-backdrop{opacity:0}}ion-fab-list{margin-top:76px;margin-bottom:76px;right:0}\n"], components: [{ type: i1.IonBackdrop, selector: "ion-backdrop", inputs: ["stopPropagation", "tappable", "visible"] }, { type: i1.IonFab, selector: "ion-fab", inputs: ["activated", "edge", "horizontal", "vertical"] }, { type: i1.IonFabButton, selector: "ion-fab-button", inputs: ["activated", "closeIcon", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "show", "size", "target", "translucent", "type"] }, { type: i1.IonFabList, selector: "ion-fab-list", inputs: ["activated", "side"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: FabSheetComponent, decorators: [{
53
53
  type: Component,
54
- args: [{ selector: 'kirby-fab-sheet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-backdrop\n *ngIf=\"actionSheet && isFabSheetOpen\"\n (ionBackdropTap)=\"hideActions(fab)\"\n (click)=\"hideActions(fab)\"\n></ion-backdrop>\n<ion-fab #fab (click)=\"disabled || onFabClick(fab)\">\n <ion-fab-button [disabled]=\"disabled\" [attr.disabled]=\"disabled ? true : null\" tabindex=\"-1\">\n <ng-content select=\"kirby-icon\"></ng-content>\n </ion-fab-button>\n <ion-fab-list *ngIf=\"actionSheet\" side=\"top\" class=\"{{ horizontalAlignment }}\">\n <ng-content select=\"kirby-action-sheet\"></ng-content>\n </ion-fab-list>\n</ion-fab>\n", styles: [":host{--kirby-action-sheet-margin-horizontal: 16px}ion-fab-button{--box-shadow: 0 20px 30px -15px rgba(28, 28, 28, .3), 0 0 5px 0 rgba(28, 28, 28, .08);width:64px;height:64px;-webkit-user-select:none;user-select:none;outline:none}@media (hover: hover){ion-fab-button:focus{--border-width: 1px;--border-style: solid;--border-color: #4d90fe}}ion-fab-button[disabled]{--background: var(--kirby-semi-light);--box-shadow: none;opacity:1}ion-fab{position:fixed;bottom:16px;right:16px}:host-context(.fixed-content) ion-fab{position:absolute}ion-backdrop{opacity:0;transition:opacity .75s;position:fixed;z-index:999}:host(.backdrop-visible) ion-backdrop{opacity:.4}@media (min-width: 721px){:host(.backdrop-visible) ion-backdrop{opacity:0}}ion-fab-list{margin-top:76px;margin-bottom:76px;right:0}\n"] }]
54
+ args: [{ selector: 'kirby-fab-sheet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-backdrop\n *ngIf=\"actionSheet && isFabSheetOpen\"\n (ionBackdropTap)=\"hideActions(fab)\"\n (click)=\"hideActions(fab)\"\n></ion-backdrop>\n<ion-fab #fab (click)=\"disabled || onFabClick(fab)\">\n <ion-fab-button [disabled]=\"disabled\" [attr.disabled]=\"disabled ? true : null\" tabindex=\"-1\">\n <ng-content select=\"kirby-icon\"></ng-content>\n </ion-fab-button>\n <ion-fab-list *ngIf=\"actionSheet\" side=\"top\" class=\"{{ horizontalAlignment }}\">\n <ng-content select=\"kirby-action-sheet\"></ng-content>\n </ion-fab-list>\n</ion-fab>\n", styles: [":host{--kirby-action-sheet-margin-horizontal: 16px}ion-fab-button{--box-shadow: 0 20px 30px -15px rgba(28, 28, 28, .3), 0 0 5px 0 rgba(28, 28, 28, .08);width:64px;height:64px;-webkit-user-select:none;user-select:none;outline:none}@media (hover: hover){ion-fab-button:focus{--border-width: 1px;--border-style: solid;--border-color: rgb(77, 144, 254)}}ion-fab-button[disabled]{--background: var(--kirby-semi-light);--box-shadow: none;opacity:1}ion-fab{position:fixed;bottom:16px;right:16px}:host-context(.fixed-content) ion-fab{position:absolute}ion-backdrop{opacity:0;transition:opacity .75s;position:fixed;z-index:999}:host(.backdrop-visible) ion-backdrop{opacity:.4}@media (min-width: 721px){:host(.backdrop-visible) ion-backdrop{opacity:0}}ion-fab-list{margin-top:76px;margin-bottom:76px;right:0}\n"] }]
55
55
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
56
56
  type: Inject,
57
57
  args: [DOCUMENT]
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
72
72
  type: ViewChild,
73
73
  args: [IonFabButton, { static: true, read: ElementRef }]
74
74
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXNoZWV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mYWItc2hlZXQvZmFiLXNoZWV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mYWItc2hlZXQvZmFiLXNoZWV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7OztBQVFwRixNQUFNLE9BQU8saUJBQWlCO0lBcUI1QixZQUNVLFFBQW1CLEVBQ25CLGlCQUFvQyxFQUNsQixRQUFhO1FBRi9CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUFLO1FBdkJoQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLHdCQUFtQixHQUFnQyxPQUFPLENBQUM7UUFFNUQsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFNakMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO0lBZXpDLENBQUM7SUFwQkosSUFDSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBR0QsSUFDSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQWFELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFXO1FBQ3JCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDdEMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUM7U0FDaEU7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUM7U0FDbkU7UUFFRCx3RUFBd0U7UUFDeEUsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2lJQXJEVSxpQkFBaUIsNEVBd0JsQixRQUFRO3FIQXhCUCxpQkFBaUIsb1NBZ0JkLG9CQUFvQiw4RkFFdkIsWUFBWSwyQkFBd0IsVUFBVSwyQ0MxQzNELHFqQkFhQTsyRkRXYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU07OzBCQTBCNUMsTUFBTTsyQkFBQyxRQUFROzRDQXZCVCxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFJRixjQUFjO3NCQURqQixXQUFXO3VCQUFDLGVBQWU7Z0JBT3hCLGlCQUFpQjtzQkFEcEIsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBS2tCLFdBQVc7c0JBQWpFLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUdyRCxZQUFZO3NCQURYLFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkZhYiwgSW9uRmFiQnV0dG9uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuXG5pbXBvcnQgeyBBY3Rpb25TaGVldENvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsL2FjdGlvbi1zaGVldC9hY3Rpb24tc2hlZXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktZmFiLXNoZWV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhYi1zaGVldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZhYi1zaGVldC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRmFiU2hlZXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaG9yaXpvbnRhbEFsaWdubWVudDogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ3JpZ2h0JztcblxuICBwcml2YXRlIF9pc0ZhYlNoZWV0T3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLW9wZW4nKVxuICBnZXQgaXNGYWJTaGVldE9wZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzRmFiU2hlZXRPcGVuO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNCYWNrZHJvcFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5iYWNrZHJvcC12aXNpYmxlJylcbiAgZ2V0IGlzQmFja2Ryb3BWaXNpYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl9pc0JhY2tkcm9wVmlzaWJsZTtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoQWN0aW9uU2hlZXRDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBhY3Rpb25TaGVldDogQWN0aW9uU2hlZXRDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChJb25GYWJCdXR0b24sIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGlvbkZhYkJ1dHRvbjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueVxuICApIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjdGlvblNoZWV0KSB7XG4gICAgICB0aGlzLmFjdGlvblNoZWV0LmhpZGVDYW5jZWwgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGhpZGVBY3Rpb25zKGZhYjogSW9uRmFiKSB7XG4gICAgZmFiLmNsb3NlKCk7XG4gICAgdGhpcy5faXNGYWJTaGVldE9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLl9pc0JhY2tkcm9wVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCAnZmFiLXNoZWV0LWFjdGl2ZScpO1xuICB9XG5cbiAgb25GYWJDbGljayhmYWI6IElvbkZhYikge1xuICAgIHRoaXMuX2lzRmFiU2hlZXRPcGVuID0gIWZhYi5hY3RpdmF0ZWQ7XG4gICAgaWYgKHRoaXMuX2lzRmFiU2hlZXRPcGVuKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2ZhYi1zaGVldC1hY3RpdmUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdmYWItc2hlZXQtYWN0aXZlJyk7XG4gICAgfVxuXG4gICAgLy8gUG9zdHBvbmUgYmFja2Ryb3AgdmlzaWJpbGl0eSB1cGRhdGUgdG8gYWxsb3cgZm9yIGFuaW1hdGlvbiBvZiBvcGFjaXR5XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9pc0JhY2tkcm9wVmlzaWJsZSA9IHRoaXMuaXNGYWJTaGVldE9wZW47XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8aW9uLWJhY2tkcm9wXG4gICpuZ0lmPVwiYWN0aW9uU2hlZXQgJiYgaXNGYWJTaGVldE9wZW5cIlxuICAoaW9uQmFja2Ryb3BUYXApPVwiaGlkZUFjdGlvbnMoZmFiKVwiXG4gIChjbGljayk9XCJoaWRlQWN0aW9ucyhmYWIpXCJcbj48L2lvbi1iYWNrZHJvcD5cbjxpb24tZmFiICNmYWIgKGNsaWNrKT1cImRpc2FibGVkIHx8IG9uRmFiQ2xpY2soZmFiKVwiPlxuICA8aW9uLWZhYi1idXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyB0cnVlIDogbnVsbFwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJraXJieS1pY29uXCI+PC9uZy1jb250ZW50PlxuICA8L2lvbi1mYWItYnV0dG9uPlxuICA8aW9uLWZhYi1saXN0ICpuZ0lmPVwiYWN0aW9uU2hlZXRcIiBzaWRlPVwidG9wXCIgY2xhc3M9XCJ7eyBob3Jpem9udGFsQWxpZ25tZW50IH19XCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2lyYnktYWN0aW9uLXNoZWV0XCI+PC9uZy1jb250ZW50PlxuICA8L2lvbi1mYWItbGlzdD5cbjwvaW9uLWZhYj5cbiJdfQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXNoZWV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mYWItc2hlZXQvZmFiLXNoZWV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mYWItc2hlZXQvZmFiLXNoZWV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7OztBQVFwRixNQUFNLE9BQU8saUJBQWlCO0lBcUI1QixZQUNVLFFBQW1CLEVBQ25CLGlCQUFvQyxFQUNsQixRQUFhO1FBRi9CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUFLO1FBdkJoQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLHdCQUFtQixHQUFnQyxPQUFPLENBQUM7UUFFNUQsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFNakMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO0lBZXpDLENBQUM7SUFwQkosSUFDSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBR0QsSUFDSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQWFELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFXO1FBQ3JCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBRXJDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ2hFO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsd0VBQXdFO1FBQ3hFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUM5QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztpSUF0RFUsaUJBQWlCLDRFQXdCbEIsUUFBUTtxSEF4QlAsaUJBQWlCLG9TQWdCZCxvQkFBb0IsOEZBRXZCLFlBQVksMkJBQXdCLFVBQVUsMkNDMUMzRCxxakJBYUE7MkZEV2EsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNOzswQkEwQjVDLE1BQU07MkJBQUMsUUFBUTs0Q0F2QlQsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBSUYsY0FBYztzQkFEakIsV0FBVzt1QkFBQyxlQUFlO2dCQU94QixpQkFBaUI7c0JBRHBCLFdBQVc7dUJBQUMsd0JBQXdCO2dCQUtrQixXQUFXO3NCQUFqRSxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHckQsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25GYWIsIElvbkZhYkJ1dHRvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuaW1wb3J0IHsgQWN0aW9uU2hlZXRDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC9hY3Rpb24tc2hlZXQvYWN0aW9uLXNoZWV0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LWZhYi1zaGVldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItc2hlZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mYWItc2hlZXQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZhYlNoZWV0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhvcml6b250YWxBbGlnbm1lbnQ6ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyA9ICdyaWdodCc7XG5cbiAgcHJpdmF0ZSBfaXNGYWJTaGVldE9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1vcGVuJylcbiAgZ2V0IGlzRmFiU2hlZXRPcGVuKCkge1xuICAgIHJldHVybiB0aGlzLl9pc0ZhYlNoZWV0T3BlbjtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQmFja2Ryb3BWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYmFja2Ryb3AtdmlzaWJsZScpXG4gIGdldCBpc0JhY2tkcm9wVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNCYWNrZHJvcFZpc2libGU7XG4gIH1cblxuICBAQ29udGVudENoaWxkKEFjdGlvblNoZWV0Q29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgYWN0aW9uU2hlZXQ6IEFjdGlvblNoZWV0Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoSW9uRmFiQnV0dG9uLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBpb25GYWJCdXR0b246IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnlcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3Rpb25TaGVldCkge1xuICAgICAgdGhpcy5hY3Rpb25TaGVldC5oaWRlQ2FuY2VsID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBoaWRlQWN0aW9ucyhmYWI6IElvbkZhYikge1xuICAgIGZhYi5jbG9zZSgpO1xuICAgIHRoaXMuX2lzRmFiU2hlZXRPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5faXNCYWNrZHJvcFZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2ZhYi1zaGVldC1hY3RpdmUnKTtcbiAgfVxuXG4gIG9uRmFiQ2xpY2soZmFiOiBJb25GYWIpIHtcbiAgICB0aGlzLl9pc0ZhYlNoZWV0T3BlbiA9IGZhYi5hY3RpdmF0ZWQ7XG5cbiAgICBpZiAodGhpcy5faXNGYWJTaGVldE9wZW4pIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCAnZmFiLXNoZWV0LWFjdGl2ZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2ZhYi1zaGVldC1hY3RpdmUnKTtcbiAgICB9XG5cbiAgICAvLyBQb3N0cG9uZSBiYWNrZHJvcCB2aXNpYmlsaXR5IHVwZGF0ZSB0byBhbGxvdyBmb3IgYW5pbWF0aW9uIG9mIG9wYWNpdHlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2lzQmFja2Ryb3BWaXNpYmxlID0gdGhpcy5pc0ZhYlNoZWV0T3BlbjtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxpb24tYmFja2Ryb3BcbiAgKm5nSWY9XCJhY3Rpb25TaGVldCAmJiBpc0ZhYlNoZWV0T3BlblwiXG4gIChpb25CYWNrZHJvcFRhcCk9XCJoaWRlQWN0aW9ucyhmYWIpXCJcbiAgKGNsaWNrKT1cImhpZGVBY3Rpb25zKGZhYilcIlxuPjwvaW9uLWJhY2tkcm9wPlxuPGlvbi1mYWIgI2ZhYiAoY2xpY2spPVwiZGlzYWJsZWQgfHwgb25GYWJDbGljayhmYWIpXCI+XG4gIDxpb24tZmFiLWJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/IHRydWUgOiBudWxsXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImtpcmJ5LWljb25cIj48L25nLWNvbnRlbnQ+XG4gIDwvaW9uLWZhYi1idXR0b24+XG4gIDxpb24tZmFiLWxpc3QgKm5nSWY9XCJhY3Rpb25TaGVldFwiIHNpZGU9XCJ0b3BcIiBjbGFzcz1cInt7IGhvcml6b250YWxBbGlnbm1lbnQgfX1cIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJraXJieS1hY3Rpb24tc2hlZXRcIj48L25nLWNvbnRlbnQ+XG4gIDwvaW9uLWZhYi1saXN0PlxuPC9pb24tZmFiPlxuIl19
@@ -36,10 +36,10 @@ InputComponent.typeToInputmodeMap = {
36
36
  search: 'search',
37
37
  };
38
38
  /** @nocollapse */ InputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
- /** @nocollapse */ InputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: InputComponent, selector: "input[kirby-input]", inputs: { type: "type", size: "size", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", value: "value", maxlength: "maxlength", inputmode: "inputmode" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class": "this.size", "class.borderless": "this.borderless", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.value": "this.value", "attr.maxlength": "this.maxlength", "attr.inputmode": "this.inputmode" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-white);color:var(--kirby-white-contrast);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:16px;box-shadow:0 5px 10px -10px #1c1c1c4d,0 0 5px #1c1c1c14;padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-text-color-semi-dark)}:host[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
39
+ /** @nocollapse */ InputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: InputComponent, selector: "input[kirby-input]", inputs: { type: "type", size: "size", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", value: "value", maxlength: "maxlength", inputmode: "inputmode" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class": "this.size", "class.borderless": "this.borderless", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.value": "this.value", "attr.maxlength": "this.maxlength", "attr.inputmode": "this.inputmode" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-white);color:var(--kirby-white-contrast);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:0 5px 10px -10px #1c1c1c4d,0 0 5px #1c1c1c14;padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-text-color-semi-dark)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: InputComponent, decorators: [{
41
41
  type: Component,
42
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'input[kirby-input]', template: '', styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-white);color:var(--kirby-white-contrast);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:16px;box-shadow:0 5px 10px -10px #1c1c1c4d,0 0 5px #1c1c1c14;padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-text-color-semi-dark)}:host[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"] }]
42
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'input[kirby-input]', template: '', styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-white);color:var(--kirby-white-contrast);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:0 5px 10px -10px #1c1c1c4d,0 0 5px #1c1c1c14;padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-text-color-semi-dark)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"] }]
43
43
  }], propDecorators: { type: [{
44
44
  type: Input
45
45
  }], size: [{