@kirbydesign/designsystem 6.3.2-nopadding.0 → 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.
- package/README.md +7 -0
- package/esm2020/lib/components/accordion/accordion-item.component.mjs +25 -3
- package/esm2020/lib/components/calendar/calendar.component.mjs +18 -6
- package/esm2020/lib/components/fab-sheet/fab-sheet.component.mjs +2 -2
- package/esm2020/lib/components/item/item.component.mjs +2 -2
- package/fesm2015/kirbydesign-designsystem.mjs +44 -10
- package/fesm2015/kirbydesign-designsystem.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem.mjs +44 -10
- package/fesm2020/kirbydesign-designsystem.mjs.map +1 -1
- package/lib/components/accordion/accordion-item.component.d.ts +8 -2
- package/lib/components/calendar/calendar.component.d.ts +5 -1
- package/package.json +2 -2
- package/scss/_trigger-publish.scss +0 -1
- package/scss/_trigger.scss +0 -1
- package/scss/awesome-stylesheet.scss +0 -1
- package/scss/base/_awesome-partial.scss +0 -1
- package/scss/base/_index.scss +0 -1
- package/scss/base/_interaction-states.scss +0 -1
- package/scss/base/_link.scss +0 -1
- package/scss/base/index.scss +0 -1
- package/scss/interaction-state/_active.scss +0 -1
- package/scss/interaction-state/_focus.scss +0 -1
- package/scss/interaction-state/_hover.scss +0 -1
- package/scss/interaction-state/_index.scss +0 -1
- package/scss/interaction-state/_interaction-state.utilities.scss +0 -1
- package/scss/interaction-state/_layer.scss +0 -1
- package/scss/interaction-state/_state-layer.scss +0 -1
- package/scss/interaction-state/_utilities.scss +0 -1
- package/scss/interaction-state/ionic/_active.scss +0 -1
- package/scss/interaction-state/ionic/_hover.scss +0 -1
- package/scss/interaction-state/ionic/_index.scss +0 -1
- package/scss/interaction-states/_hover.scss +0 -1
- package/scss/interaction-states/_index.scss +0 -1
- package/scss/opt-out/_index.scss +0 -1
- package/scss/opt-out/_link.scss +0 -1
- package/src/lib/components/icon/README.md +0 -16
package/README.md
ADDED
|
@@ -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)=\"
|
|
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)=\"
|
|
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,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7OztBQUVsRiw0Q0FBNEM7QUFDNUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBZWpCLE1BQU0sT0FBTyxzQkFBc0I7SUFibkM7UUFlVyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFzQnJDLDhCQUE4QjtRQUM5QixhQUFRLEdBQUcsOEJBQThCLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDdEQsZUFBVSxHQUFHLGdDQUFnQyxRQUFRLEVBQUUsQ0FBQztLQUN6RDtJQXRCQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDM0MsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQzNCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBb0I7UUFDcEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6RCxDQUFDOztzSUF2QlUsc0JBQXNCOzBIQUF0QixzQkFBc0IsNEtDbkJuQyxxd0JBNEJBLG84QkRqQmM7UUFDVixPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3BCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUM1RCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDOUQsVUFBVSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM5QyxDQUFDO0tBQ0g7MkZBRVUsc0JBQXNCO2tCQWJsQyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DO3dCQUNWLE9BQU8sQ0FBQyxZQUFZLEVBQUU7NEJBQ3BCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQzs0QkFDNUQsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDOzRCQUM5RCxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3lCQUM5QyxDQUFDO3FCQUNIOzhCQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBDb3VudGVyIGZvciBnZW5lcmF0aW5nIHVuaXF1ZSBlbGVtZW50IGlkc1xubGV0IHVuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktYWNjb3JkaW9uLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2lzRXhwYW5kZWQnLCBbXG4gICAgICBzdGF0ZSgndHJ1ZScsIHN0eWxlKHsgaGVpZ2h0OiAnKicsIHZpc2liaWxpdHk6ICd2aXNpYmxlJyB9KSksXG4gICAgICBzdGF0ZSgnZmFsc2UnLCBzdHlsZSh7IGhlaWdodDogJzBweCcsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJ3RydWUgPD0+IGZhbHNlJywgYW5pbWF0ZSgnMC4ycycpKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzRXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZFRpdGxlOiBzdHJpbmc7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZ2V0VGl0bGUoKSB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCAmJiAhIXRoaXMuZGlzYWJsZWRUaXRsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWRUaXRsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudGl0bGU7XG4gICAgfVxuICB9XG5cbiAgX29uVG9nZ2xlRXhwYW5kZWQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaXNFeHBhbmRlZCA9ICF0aGlzLmlzRXhwYW5kZWQgJiYgIXRoaXMuaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8vIElEcyB1c2VkIGZvciBhMTF5IGxhYmVsbGluZ1xuICBfdGl0bGVJZCA9IGBraXJieS1hY2NvcmRpb24taXRlbS10aXRsZS0keysrdW5pcXVlSWR9YDtcbiAgX2NvbnRlbnRJZCA9IGBraXJieS1hY2NvcmRpb24taXRlbS1jb250ZW50LSR7dW5pcXVlSWR9YDtcbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxkaXZcbiAgICAoY2xpY2spPVwiX29uVG9nZ2xlRXhwYW5kZWQoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uRU5URVIpPVwiX29uVG9nZ2xlRXhwYW5kZWQoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uc3BhY2UpPVwiX29uVG9nZ2xlRXhwYW5kZWQoJGV2ZW50KVwiXG4gICAgY2xhc3M9XCJoZWFkZXJcIlxuICAgIHJvbGU9XCJidXR0b25cIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICBbY2xhc3MuZXhwYW5kZWRdPVwiaXNFeHBhbmRlZFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc0V4cGFuZGVkXCJcbiAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIl9jb250ZW50SWRcIlxuICAgIFtpZF09XCJfdGl0bGVJZFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj57eyBnZXRUaXRsZSgpIH19PC9kaXY+XG4gICAgPGtpcmJ5LWljb24gbmFtZT1cImFycm93LWRvd25cIj48L2tpcmJ5LWljb24+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjb250ZW50XCJcbiAgICByb2xlPVwicmVnaW9uXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiX3RpdGxlSWRcIlxuICAgIFtpZF09XCJfY29udGVudElkXCJcbiAgICBbQGlzRXhwYW5kZWRdPVwiISFpc0V4cGFuZGVkXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWJvZHlcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -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
|
-
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUdULE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLE9BQU8sRUFDUCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxHQUNaLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdELE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSTFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBYTNELElBQUssUUFTSjtBQVRELFdBQUssUUFBUTtJQUNYLDJCQUFlLENBQUE7SUFDZiw2QkFBaUIsQ0FBQTtJQUNqQiwyQkFBZSxDQUFBO0lBQ2YseUJBQWEsQ0FBQTtJQUNiLDJCQUFl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aUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGdCQUFnQixhQUdmLENBQUMsY0FBYyxDQUFDOzswQkFzSTBCLE1BQU07MkJBQUMsU0FBUzs0Q0FuSWxCLGlCQUFpQjtzQkFBbkUsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ3ZDLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBUUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQXVCTyxZQUFZO3NCQUF4QixLQUFLO2dCQWNPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBUU8sWUFBWTtzQkFBeEIsS0FBSztnQkFRTyxTQUFTO3NCQUFyQixLQUFLO2dCQVFPLE9BQU87c0JBQW5CLEtBQUs7Z0JBV08sT0FBTztzQkFBbkIsS0FBSztnQkFpQ0YsaUJBQWlCO3NCQURwQixXQUFXO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTE9DQUxFX0lELFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgYWRkLFxuICBkaWZmZXJlbmNlSW5EYXlzLFxuICBlYWNoRGF5T2ZJbnRlcnZhbCxcbiAgZW5kT2ZNb250aCxcbiAgZW5kT2ZXZWVrLFxuICBmb3JtYXQsXG4gIGdldFllYXIsXG4gIGlzQWZ0ZXIsXG4gIGlzQmVmb3JlLFxuICBpc1NhbWVEYXksXG4gIGlzU2FtZU1vbnRoLFxuICBpc1dlZWtlbmQsXG4gIExvY2FsZSBhcyBMb2NhbGVEYXRlRm5zLFxuICBzdGFydE9mRGF5LFxuICBzdGFydE9mTW9udGgsXG4gIHN0YXJ0T2ZXZWVrLFxufSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyB1dGNUb1pvbmVkVGltZSwgem9uZWRUaW1lVG9VdGMgfSBmcm9tICdkYXRlLWZucy10eic7XG5pbXBvcnQgeyBkYSwgZW5HQiwgZW5VUyB9IGZyb20gJ2RhdGUtZm5zL2xvY2FsZSc7XG5cbmltcG9ydCB7IGNhcGl0YWxpemVGaXJzdExldHRlciB9IGZyb20gJ0BraXJieWRlc2lnbi9jb3JlJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJDZWxsIH0gZnJvbSAnLi9oZWxwZXJzL2NhbGVuZGFyLWNlbGwubW9kZWwnO1xuaW1wb3J0IHsgQ2FsZW5kYXJPcHRpb25zIH0gZnJvbSAnLi9oZWxwZXJzL2NhbGVuZGFyLW9wdGlvbnMubW9kZWwnO1xuaW1wb3J0IHsgQ2FsZW5kYXJIZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMvY2FsZW5kYXIuaGVscGVyJztcbmltcG9ydCB7IENhbGVuZGFyWWVhck5hdmlnYXRvckNvbmZpZyB9IGZyb20gJy4vb3B0aW9ucy9jYWxlbmRhci15ZWFyLW5hdmlnYXRvci1jb25maWcnO1xuXG5leHBvcnQgdHlwZSBMb2NhbGUgPSBMb2NhbGVEYXRlRm5zO1xuaW50ZXJmYWNlIENhbGVuZGFyRGF5IHtcbiAgaXNDdXJyZW50TW9udGg6IGJvb2xlYW47XG4gIGlzVG9kYXk6IGJvb2xlYW47XG4gIGlzV2Vla2VuZDogYm9vbGVhbjtcbiAgaXNQYXN0OiBib29sZWFuO1xuICBpc0Z1dHVyZTogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbn1cblxuZW51bSBUaW1lVW5pdCB7XG4gIHllYXJzID0gJ3llYXJzJyxcbiAgbW9udGhzID0gJ21vbnRocycsXG4gIHdlZWtzID0gJ3dlZWtzJyxcbiAgZGF5cyA9ICdkYXlzJyxcbiAgaG91cnMgPSAnaG91cnMnLFxuICBtaW51dGVzID0gJ21pbnV0ZXMnLFxuICBzZWNvbmRzID0gJ3NlY29uZHMnLFxuICBtaWxsaXNlY29uZHMgPSAnbWlsbGlzZWNvbmRzJyxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktY2FsZW5kYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDYWxlbmRhckhlbHBlcl0sXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKCdjYWxlbmRhckNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjYWxlbmRhckNvbnRhaW5lcjogRWxlbWVudFJlZjtcbiAgQE91dHB1dCgpIGRhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIEBPdXRwdXQoKSBkYXRlU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBAT3V0cHV0KCkgeWVhclNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBASW5wdXQoKSB0aW1lem9uZTogJ2xvY2FsJyB8ICdVVEMnID0gJ2xvY2FsJztcbiAgQElucHV0KCkgZGlzYWJsZVdlZWtlbmRzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVQYXN0RGF0ZXMgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZUZ1dHVyZURhdGVzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFsd2F5c0VuYWJsZVRvZGF5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGN1c3RvbUxvY2FsZXM6IHsgW2tleTogc3RyaW5nXTogTG9jYWxlIH0gPSB7fTtcbiAgLyogXG4gICAgRXhwZXJpbWVudGFsOiBJbnB1dCBwcm9wZXJ0eSBub3QgZG9jdW1lbnRlZCBvbiBwdXJwb3NlLiBcbiAgICBGb3IgY29udGV4dCBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9raXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaXNzdWVzLzIwODdcbiAgKi9cbiAgQElucHV0KCkgdXNlUG9wb3ZlciA9IGZhbHNlO1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIHllYXIgbmF2aWdhdG9yLlxuICAgKlxuICAgKiBJbnRlcm5hbGx5LCBjYWxlbmRhciBjb21wb25lbnQ6XG4gICAqIC0gYmFzZXMgeWVhck5hdmlnYXRvck9wdGlvbnMuZnJvbSBhbmQgeWVhck5hdmlnYXRvck9wdGlvbnMudG8gb24gdG9kYXlEYXRlIGlmIGEgbnVtYmVyIGlzIHByb3ZpZGVkXG4gICAqIC0gcHJpb3JpdGl6ZXMgbWluRGF0ZSBhbmQgbWF4RGF0ZSBvdmVyIHllYXJOYXZpZ2F0b3JPcHRpb25zLmZyb20gYW5kIHllYXJOYXZpZ2F0b3JPcHRpb25zLnRvXG4gICAqL1xuICBASW5wdXQoKSB5ZWFyTmF2aWdhdG9yT3B0aW9uczogQ2FsZW5kYXJZZWFyTmF2aWdhdG9yQ29uZmlnO1xuXG4gIF9tb250aDogQ2FsZW5kYXJDZWxsW11bXTtcbiAgX3dlZWtEYXlzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSBzZWxlY3RlZERheTogQ2FsZW5kYXJDZWxsO1xuICAvLyBOT1RFOiBJbnRlcm5hbGx5LCBhbGwgRGF0ZXNcbiAgLy8gYXJlIG5vcm1hbGl6ZWQgdG8gcG9pbnQgdG8gbG9jYWwgdGltZXpvbmUgbWlkbmlnaHQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHRpbWV6b25lXG4gIC8vIHNldHRpbmcuXG4gIHByaXZhdGUgYWN0aXZlTW9udGg6IERhdGU7XG4gIHByaXZhdGUgX3NlbGVjdGVkRGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBfZGlzYWJsZWREYXRlczogRGF0ZVtdID0gW107XG4gIHByaXZhdGUgX2VuYWJsZWREYXRlczogRGF0ZVtdID0gW107XG4gIHByaXZhdGUgX3RvZGF5RGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBfbWluRGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBfbWF4RGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBsb2NhbGU6IExvY2FsZTtcbiAgcHJpdmF0ZSB0aW1lWm9uZU5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBpbmNsdWRlZExvY2FsZXMgPSB7IGRhLCBlbkdCLCBlblVTIH07XG5cbiAgZ2V0IHNlbGVjdGVkRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWREYXRlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkRGF0ZSh2YWx1ZUxvY2FsT3JVVEM6IERhdGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZUxvY2FsT3JVVEMpO1xuICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuaGFzRGF0ZUNoYW5nZWQodmFsdWUsIHRoaXMuX3NlbGVjdGVkRGF0ZSkpIHtcbiAgICAgIHRoaXMub25TZWxlY3RlZERhdGVDaGFuZ2UodmFsdWUpO1xuICAgICAgdGhpcy5fc2VsZWN0ZWREYXRlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRpc2FibGVkRGF0ZXMoKTogRGF0ZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWREYXRlcztcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZERhdGVzKHZhbHVlOiBEYXRlW10pIHtcbiAgICB0aGlzLl9kaXNhYmxlZERhdGVzID0gKHZhbHVlIHx8IFtdKS5tYXAoKGRhdGUpID0+IHRoaXMubm9ybWFsaXplRGF0ZShkYXRlKSk7XG4gIH1cblxuICBnZXQgZW5hYmxlZERhdGVzKCk6IERhdGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWREYXRlcztcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBlbmFibGVkRGF0ZXModmFsdWU6IERhdGVbXSkge1xuICAgIHRoaXMuX2VuYWJsZWREYXRlcyA9ICh2YWx1ZSB8fCBbXSkubWFwKChkYXRlKSA9PiB0aGlzLm5vcm1hbGl6ZURhdGUoZGF0ZSkpO1xuICB9XG5cbiAgZ2V0IHRvZGF5RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fdG9kYXlEYXRlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHRvZGF5RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIHRoaXMuX3RvZGF5RGF0ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbWluRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWluRGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuYWN0aXZlTW9udGggJiYgaXNCZWZvcmUodGhpcy5hY3RpdmVNb250aCwgdmFsdWUpKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZU1vbnRoKHZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5fbWluRGF0ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbWF4RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuYWN0aXZlTW9udGggJiYgaXNBZnRlcih0aGlzLmFjdGl2ZU1vbnRoLCB2YWx1ZSkpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLl9tYXhEYXRlID0gdGhpcy5ub3JtYWxpemVEYXRlKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVNb250aE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRoaXMuZm9ybWF0V2l0aExvY2FsZSh0aGlzLmFjdGl2ZU1vbnRoLCAnTU1NTScpKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVZZWFyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0V2l0aExvY2FsZSh0aGlzLmFjdGl2ZU1vbnRoLCAneXl5eScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgbmF2aWdhYmxlIHllYXJzIGZvciB5ZWFyIG5hdmlnYXRvciBiYXNlZCBvbiB5ZWFyTmF2aWdhdG9yT3B0aW9ucy5cbiAgICovXG4gIGdldCBuYXZpZ2FibGVZZWFycygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZGF0ZU9mRmlyc3ROYXZpZ2FibGVZZWFyID1cbiAgICAgIHRoaXMubWluRGF0ZSB8fCB0aGlzLmdldERhdGVGcm9tTmF2aWdhYmxlWWVhcih0aGlzLnllYXJOYXZpZ2F0b3JPcHRpb25zLmZyb20pO1xuXG4gICAgY29uc3QgZGF0ZU9mTGFzdE5hdmlnYWJsZVllYXIgPVxuICAgICAgdGhpcy5tYXhEYXRlIHx8IHRoaXMuZ2V0RGF0ZUZyb21OYXZpZ2FibGVZZWFyKHRoaXMueWVhck5hdmlnYXRvck9wdGlvbnMudG8pO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0WWVhcnNCZXR3ZWVuRGF0ZXMoZGF0ZU9mRmlyc3ROYXZpZ2FibGVZZWFyLCBkYXRlT2ZMYXN0TmF2aWdhYmxlWWVhcik7XG4gIH1cblxuICBnZXQgbmF2aWdhdGVkWWVhcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm5hdmlnYWJsZVllYXJzLmluZGV4T2YodGhpcy5hY3RpdmVZZWFyKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLXllYXItbmF2aWdhdG9yJylcbiAgZ2V0IF9oYXNZZWFyTmF2aWdhdG9yKCkge1xuICAgIHJldHVybiAhIXRoaXMueWVhck5hdmlnYXRvck9wdGlvbnM7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhbGVuZGFySGVscGVyOiBDYWxlbmRhckhlbHBlciwgQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLm1hcExvY2FsZShsb2NhbGUpO1xuICAgIHRoaXMudGltZVpvbmVOYW1lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRXaXRoTG9jYWxlKGRhdGU6IERhdGUsIGZvcm1hdFN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGZvcm1hdFN0cmluZywge1xuICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwTG9jYWxlKGxvY2FsZTogc3RyaW5nKTogTG9jYWxlIHtcbiAgICBpZiAobG9jYWxlID09PSAnZW4nKSB7XG4gICAgICBsb2NhbGUgPSAnZW5HQic7IC8vIGlmIGVuZ2xpc2ggbG9jYWxlIGlzIHByb3ZpZGVkIHdpdGhvdXQgcmVnaW9uLCB3ZSBkZWZhdWx0IHRvIEdCXG4gICAgfVxuICAgIGxvY2FsZSA9IGxvY2FsZS5yZXBsYWNlKCctJywgJycpO1xuICAgIGNvbnN0IGF2YWlsYWJsZUxvY2FsZXMgPSB7IC4uLnRoaXMuaW5jbHVkZWRMb2NhbGVzLCAuLi50aGlzLmN1c3RvbUxvY2FsZXMgfTtcblxuICAgIHJldHVybiBhdmFpbGFibGVMb2NhbGVzW2xvY2FsZV0gfHwgdGhpcy5pbmNsdWRlZExvY2FsZXMuZW5HQjsgLy8gRGVmYXVsdCB0byBlbkdCIGlmIGluamVjdGVkIGxvY2FsZSBkb2VzbnQgZXhpc3RcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX3dlZWtEYXlzID0gdGhpcy5nZXRXZWVrRGF5cygpO1xuICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodGhpcy5zZWxlY3RlZERhdGUpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIuaW5pdChcbiAgICAgIHRoaXMuY2FsZW5kYXJDb250YWluZXIsXG4gICAgICB0aGlzLmdldEhlbHBlck9wdGlvbnMoKSxcbiAgICAgIHRoaXMuX29uRGF0ZVNlbGVjdGVkLmJpbmQodGhpcyksXG4gICAgICB0aGlzLm9uQ2hhbmdlTW9udGguYmluZCh0aGlzKVxuICAgICk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZU1vbnRoKSByZXR1cm47XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5kaXNhYmxlV2Vla2VuZHMgfHxcbiAgICAgIGNoYW5nZXMuZGlzYWJsZVBhc3REYXRlcyB8fFxuICAgICAgY2hhbmdlcy5kaXNhYmxlRnV0dXJlRGF0ZXMgfHxcbiAgICAgIGNoYW5nZXMuZGlzYWJsZWREYXRlcyB8fFxuICAgICAgY2hhbmdlcy5lbmFibGVkRGF0ZXMgfHxcbiAgICAgIGNoYW5nZXMubWluRGF0ZSB8fFxuICAgICAgY2hhbmdlcy5tYXhEYXRlIHx8XG4gICAgICBjaGFuZ2VzLnRvZGF5RGF0ZSB8fFxuICAgICAgY2hhbmdlcy50aW1lem9uZVxuICAgICkge1xuICAgICAgdGhpcy5yZWZyZXNoQWN0aXZlTW9udGgoKTtcbiAgICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIudXBkYXRlKHRoaXMuZ2V0SGVscGVyT3B0aW9ucygpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEFjdGl2ZU1vbnRoKGRhdGU6IERhdGUgPSBuZXcgRGF0ZSgpKSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZU1vbnRoIHx8ICFpc1NhbWVNb250aCh0aGlzLmFjdGl2ZU1vbnRoLCBkYXRlKSkge1xuICAgICAgdGhpcy5hY3RpdmVNb250aCA9IHN0YXJ0T2ZNb250aChkYXRlKTtcbiAgICAgIHRoaXMucmVmcmVzaEFjdGl2ZU1vbnRoKCk7XG4gICAgICB0aGlzLmNhbGVuZGFySGVscGVyLnVwZGF0ZSh0aGlzLmdldEhlbHBlck9wdGlvbnMoKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9yIGxlbmllbmN5LCB0aGUgY29tcG9uZW50IHdpbGwgYWNjZXB0IGFueSBEYXRlIHRoYXQgcG9pbnRzIHRvIGVpdGhlciBVVEMgbWlkbmlnaHRcbiAgLy8gb3IgdG8gbG9jYWwgdGltZXpvbmUgbWlkbmlnaHQgYWx0aG91Z2ggd2Ugd2lsbCBpbnRlcm5hbGx5IG5vcm1hbGl6ZSB0aGUgcmVwcmVzZW50YXRpb25cbiAgLy8gb2YgYWxsIHJlY2VpdmVkIGRhdGVzIHRvIHBvaW50IHRvIGxvY2FsIHRpbWV6b25lIG1pZG5pZ2h0LlxuICAvLyBXZSBjdXJyZW50bHkgbG9nIG5vIHdhcm5pbmdzIGlmIHRoZSBkYXRlIGRvZXNuJ3QgbWF0Y2ggdGhlIHRpbWV6b25lIHNldHRpbmcgb3JcbiAgLy8gaWYgaXQgZG9lc24ndCBwb2ludCB0byBtaWRuaWdodC5cbiAgcHJpdmF0ZSBub3JtYWxpemVEYXRlKGRhdGVMb2NhbE9yVVRDOiBEYXRlKSB7XG4gICAgaWYgKCFkYXRlTG9jYWxPclVUQykgcmV0dXJuO1xuXG4gICAgaWYgKHN0YXJ0T2ZEYXkoZGF0ZUxvY2FsT3JVVEMpLmdldFRpbWUoKSA9PT0gZGF0ZUxvY2FsT3JVVEMuZ2V0VGltZSgpKSB7XG4gICAgICAvLyBkYXRlIGlzIGxvY2FsIHRpbWV6b25lIG1pZG5pZ2h0XG4gICAgICByZXR1cm4gZGF0ZUxvY2FsT3JVVEM7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHN0YXJ0T2ZEYXkodXRjVG9ab25lZFRpbWUoZGF0ZUxvY2FsT3JVVEMsIHRoaXMudGltZVpvbmVOYW1lKSkuZ2V0VGltZSgpID09PVxuICAgICAgdXRjVG9ab25lZFRpbWUoZGF0ZUxvY2FsT3JVVEMsIHRoaXMudGltZVpvbmVOYW1lKS5nZXRUaW1lKClcbiAgICApIHtcbiAgICAgIC8vIHRoZSBkYXRlIGlzIGEgVVRDIG1pZG5pZ2h0OyBjcmVhdGUgdGhlIGVxdWl2YWxlbnQgbG9jYWwgdGltZXpvbmUgbWlkbmlnaHQgZGF0ZVxuICAgICAgY29uc3Qgbm9ybWFsaXplZFVUQ2RhdGUgPSB1dGNUb1pvbmVkVGltZShkYXRlTG9jYWxPclVUQywgdGhpcy50aW1lWm9uZU5hbWUpO1xuICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRVVENkYXRlO1xuICAgIH1cbiAgICAvLyBkb2VzIG5vdCBwb2ludCB0byBtaWRuaWdodCBzbyB3ZSBtYWtlIGl0XG4gICAgcmV0dXJuIHN0YXJ0T2ZEYXkoZGF0ZUxvY2FsT3JVVEMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRXZWVrRGF5cygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcblxuICAgIGNvbnN0IHdlZWsgPSBlYWNoRGF5T2ZJbnRlcnZhbCh7XG4gICAgICBzdGFydDogc3RhcnRPZldlZWsobm93LCB7IGxvY2FsZTogdGhpcy5sb2NhbGUgfSksXG4gICAgICBlbmQ6IGVuZE9mV2Vlayhub3csIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KSxcbiAgICB9KTtcblxuICAgIHJldHVybiB3ZWVrLm1hcCgoZGF0ZSkgPT4gdGhpcy5nZXRGaXJzdExldHRlck9mV2Vla0RheUNhcGl0YWxpemVkKGRhdGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rmlyc3RMZXR0ZXJPZldlZWtEYXlDYXBpdGFsaXplZChkYXRlOiBEYXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0V2l0aExvY2FsZShkYXRlLCAnRUVFRUUnKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzRGF0ZUNoYW5nZWQobmV3RGF0ZTogRGF0ZSwgcHJldmlvdXNEYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgaWYgKCFuZXdEYXRlICYmICFwcmV2aW91c0RhdGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKG5ld0RhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFwcmV2aW91c0RhdGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gIWlzU2FtZURheShuZXdEYXRlLCBwcmV2aW91c0RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Rpc2FibGVkRGF0ZShkYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcy5zb21lKChkaXNhYmxlZERhdGUpID0+IGlzU2FtZURheShkaXNhYmxlZERhdGUsIGRhdGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNFbmFibGVkRGF0ZShkYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2VuYWJsZWREYXRlcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHRoaXMuZW5hYmxlZERhdGVzLnNvbWUoKGVuYWJsZWREYXRlKSA9PiBpc1NhbWVEYXkoZW5hYmxlZERhdGUsIGRhdGUpKVxuICAgICk7XG4gIH1cblxuICByZWZyZXNoQWN0aXZlTW9udGgoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZU1vbnRoKSByZXR1cm47XG5cbiAgICBjb25zdCBtb250aFN0YXJ0ID0gc3RhcnRPZk1vbnRoKHRoaXMuYWN0aXZlTW9udGgpO1xuICAgIGNvbnN0IG1vbnRoRW5kID0gZW5kT2ZNb250aCh0aGlzLmFjdGl2ZU1vbnRoKTtcbiAgICBjb25zdCBzdGFydE9mRmlyc3RXZWVrID0gc3RhcnRPZldlZWsobW9udGhTdGFydCwgeyBsb2NhbGU6IHRoaXMubG9jYWxlIH0pO1xuICAgIGNvbnN0IGVuZE9mTGFzdFdlZWsgPSBlbmRPZldlZWsobW9udGhFbmQsIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KTtcbiAgICBjb25zdCB0b3RhbERheUNvdW50ID0gZGlmZmVyZW5jZUluRGF5cyhlbmRPZkxhc3RXZWVrLCBzdGFydE9mRmlyc3RXZWVrKSArIDE7XG4gICAgY29uc3QgdG9kYXkgPSB0aGlzLnRvZGF5RGF0ZSA/IHN0YXJ0T2ZEYXkodGhpcy50b2RheURhdGUpIDogc3RhcnRPZkRheShuZXcgRGF0ZSgpKTtcblxuICAgIGNvbnN0IGRheXNBcnJheSA9IEFycmF5LmZyb20oQXJyYXkodG90YWxEYXlDb3VudCkua2V5cygpKTtcblxuICAgIGNvbnN0IGRheXM6IENhbGVuZGFyQ2VsbFtdID0gZGF5c0FycmF5Lm1hcCgobnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBjZWxsRGF0ZSA9IGFkZChzdGFydE9mRmlyc3RXZWVrLCB7IFtUaW1lVW5pdC5kYXlzXTogbnVtYmVyIH0pO1xuICAgICAgY29uc3QgZGF5ID0gdGhpcy5nZXRDYWxlbmRhckRheShjZWxsRGF0ZSwgdG9kYXksIG1vbnRoU3RhcnQpO1xuXG4gICAgICBjb25zdCBpc1NlbGVjdGFibGUgPSB0aGlzLmlzU2VsZWN0YWJsZShkYXksIGNlbGxEYXRlKTtcbiAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBpc1NhbWVEYXkodGhpcy5zZWxlY3RlZERhdGUsIGNlbGxEYXRlKTtcbiAgICAgIGNvbnN0IGNlbGwgPSB7XG4gICAgICAgIGRhdGU6IGNlbGxEYXRlLmdldERhdGUoKSxcbiAgICAgICAgaXNDdXJyZW50TW9udGg6IGRheS5pc0N1cnJlbnRNb250aCxcbiAgICAgICAgaXNTZWxlY3RhYmxlLFxuICAgICAgICBpc1NlbGVjdGVkLFxuICAgICAgICBjc3NDbGFzc2VzOiB0aGlzLmdldENzc0NsYXNzZXMoZGF5LCBpc1NlbGVjdGFibGUsIGlzU2VsZWN0ZWQpLFxuICAgICAgfTtcbiAgICAgIGlmIChpc1NlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXkgPSBjZWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNlbGw7XG4gICAgfSk7XG4gICAgdGhpcy5fbW9udGggPSB0aGlzLmNodW5rKGRheXMsIDcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYWxlbmRhckRheShkYXRlOiBEYXRlLCB0b2RheTogRGF0ZSwgbW9udGhTdGFydDogRGF0ZSk6IENhbGVuZGFyRGF5IHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNUb2RheTogaXNTYW1lRGF5KHRvZGF5LCBkYXRlKSxcbiAgICAgIGlzUGFzdDogaXNCZWZvcmUoZGF0ZSwgdG9kYXkpLFxuICAgICAgaXNGdXR1cmU6IGlzQWZ0ZXIoZGF0ZSwgdG9kYXkpLFxuICAgICAgaXNXZWVrZW5kOiBpc1dlZWtlbmQoZGF0ZSksXG4gICAgICBpc0N1cnJlbnRNb250aDogaXNTYW1lTW9udGgoZGF0ZSwgbW9udGhTdGFydCksXG4gICAgICBpc0Rpc2FibGVkOiB0aGlzLmlzRGlzYWJsZWREYXRlKGRhdGUpIHx8ICF0aGlzLmlzRW5hYmxlZERhdGUoZGF0ZSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTZWxlY3RhYmxlKGRheTogQ2FsZW5kYXJEYXksIGRhdGU6IERhdGUpIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMuYWx3YXlzRW5hYmxlVG9kYXkgJiYgZGF5LmlzVG9kYXkpIHx8XG4gICAgICAoIWRheS5pc0Rpc2FibGVkICYmXG4gICAgICAgIGRheS5pc0N1cnJlbnRNb250aCAmJlxuICAgICAgICAhKHRoaXMuZGlzYWJsZVdlZWtlbmRzICYmIGRheS5pc1dlZWtlbmQpICYmXG4gICAgICAgICEodGhpcy5kaXNhYmxlUGFzdERhdGVzICYmIGRheS5pc1Bhc3QpICYmXG4gICAgICAgICEodGhpcy5kaXNhYmxlRnV0dXJlRGF0ZXMgJiYgZGF5LmlzRnV0dXJlKSAmJlxuICAgICAgICAhKHRoaXMubWluRGF0ZSAmJiBpc0JlZm9yZShkYXRlLCB0aGlzLm1pbkRhdGUpKSAmJlxuICAgICAgICAhKHRoaXMubWF4RGF0ZSAmJiBpc0FmdGVyKGRhdGUsIHRoaXMubWF4RGF0ZSkpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldENzc0NsYXNzZXMoZGF5OiBDYWxlbmRhckRheSwgaXNTZWxlY3RhYmxlOiBib29sZWFuLCBpc1NlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgY29uc3QgY3NzQ2xhc3NlcyA9IHtcbiAgICAgICdjdXJyZW50LW1vbnRoJzogZGF5LmlzQ3VycmVudE1vbnRoLFxuICAgICAgd2Vla2VuZDogZGF5LmlzV2Vla2VuZCxcbiAgICAgIHRvZGF5OiBkYXkuaXNUb2RheSxcbiAgICAgIHNlbGVjdGFibGU6IGlzU2VsZWN0YWJsZSxcbiAgICAgIHNlbGVjdGVkOiBpc1NlbGVjdGVkLFxuICAgICAgcGFzdDogZGF5LmlzUGFzdCxcbiAgICAgIGRpc2FibGVkOiBkYXkuaXNEaXNhYmxlZCxcbiAgICB9O1xuICAgIGxldCBjc3NDbGFzc1N0cmluZyA9ICdkYXknO1xuICAgIGZvciAoY29uc3Qga2V5IGluIGNzc0NsYXNzZXMpIHtcbiAgICAgIGlmIChjc3NDbGFzc2VzW2tleV0pIHtcbiAgICAgICAgY3NzQ2xhc3NTdHJpbmcgKz0gJyAnICsga2V5O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY3NzQ2xhc3NTdHJpbmc7XG4gIH1cblxuICBwcml2YXRlIGNodW5rKGFycmF5OiBhbnlbXSwgc2l6ZTogbnVtYmVyKSB7XG4gICAgY29uc3QgcmVzdWx0cyA9IFtdO1xuICAgIHdoaWxlIChhcnJheS5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdHMucHVzaChhcnJheS5zcGxpY2UoMCwgc2l6ZSkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIHByaXZhdGUgb25TZWxlY3RlZERhdGVDaGFuZ2UobmV3RGF0ZTogRGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF5KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF5LmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdEYXkgPSB0aGlzLmdldENlbGwobmV3RGF0ZSk7XG4gICAgaWYgKG5ld0RheSkge1xuICAgICAgbmV3RGF5LmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zZWxlY3RlZERheSA9IG5ld0RheTtcbiAgICB9XG4gICAgdGhpcy5jYWxlbmRhckhlbHBlci5zZXRTZWxlY3RlZERheShuZXdEYXRlLmdldERhdGUoKSk7XG4gIH1cblxuICBfb25EYXRlU2VsZWN0ZWQobmV3RGF5OiBDYWxlbmRhckNlbGwpIHtcbiAgICBpZiAobmV3RGF5LmlzU2VsZWN0YWJsZSAmJiBuZXdEYXkuZGF0ZSkge1xuICAgICAgbGV0IG5ld0RhdGUgPSBuZXcgRGF0ZSh0aGlzLmFjdGl2ZU1vbnRoKTtcbiAgICAgIG5ld0RhdGUuc2V0RGF0ZShuZXdEYXkuZGF0ZSk7XG5cbiAgICAgIGlmICh0aGlzLnRpbWV6b25lID09PSAnVVRDJykge1xuICAgICAgICBuZXdEYXRlID0gem9uZWRUaW1lVG9VdGModGhpcy5zdWJ0cmFjdFRpbWV6b25lT2Zmc2V0KG5ld0RhdGUpLCB0aGlzLnRpbWVab25lTmFtZSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGVUb0VtaXQgPSBuZXdEYXRlO1xuXG4gICAgICBpZiAodGhpcy5oYXNEYXRlQ2hhbmdlZChuZXdEYXRlLCB0aGlzLl9zZWxlY3RlZERhdGUpKSB7XG4gICAgICAgIHRoaXMub25TZWxlY3RlZERhdGVDaGFuZ2UobmV3RGF0ZSk7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkRGF0ZSA9IG5ld0RhdGU7XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGRhdGVUb0VtaXQpO1xuICAgICAgfVxuICAgICAgdGhpcy5kYXRlU2VsZWN0LmVtaXQoZGF0ZVRvRW1pdCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZU1vbnRoKGRpcmVjdGlvbjogbnVtYmVyKSB7XG4gICAgdGhpcy5fY2hhbmdlTW9udGgoZGlyZWN0aW9uKTtcbiAgICB0aGlzLmNhbGVuZGFySGVscGVyLnVwZGF0ZSh0aGlzLmdldEhlbHBlck9wdGlvbnMoKSk7XG4gIH1cblxuICBfY2hhbmdlTW9udGgoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuY2hhbmdlQWN0aXZlVmlldyhpbmRleCwgVGltZVVuaXQubW9udGhzKTtcbiAgfVxuXG4gIF9jaGFuZ2VZZWFyKHllYXI6IHN0cmluZykge1xuICAgIGNvbnN0IHllYXJOdW1lcmljID0gTnVtYmVyKHllYXIpO1xuICAgIHRoaXMuY2hhbmdlQWN0aXZlVmlldyh5ZWFyTnVtZXJpYyAtIGdldFllYXIodGhpcy5hY3RpdmVNb250aCksIFRpbWVVbml0LnllYXJzKTtcbiAgICB0aGlzLnllYXJTZWxlY3QuZW1pdCh5ZWFyTnVtZXJpYyk7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZUFjdGl2ZVZpZXcoaW5kZXg6IG51bWJlciwgdW5pdDogVGltZVVuaXQpIHtcbiAgICBpZiAoaW5kZXggPT09IDApIHJldHVybjtcbiAgICB0aGlzLmFjdGl2ZU1vbnRoID0gYWRkKHRoaXMuYWN0aXZlTW9udGgsIHsgW3VuaXRdOiBpbmRleCB9KTtcblxuICAgIHRoaXMucmVmcmVzaEFjdGl2ZU1vbnRoKCk7XG4gIH1cblxuICBnZXQgX2Nhbk5hdmlnYXRlQmFjaygpOiBib29sZWFuIHtcbiAgICBjb25zdCByZWFjaGVkUGFzdERhdGVzTGltaXQgPVxuICAgICAgdGhpcy5kaXNhYmxlUGFzdERhdGVzICYmIGlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMudG9kYXlEYXRlKTtcblxuICAgIGNvbnN0IHJlYWNoZWRPckV4Y2VlZGVkTWluRGF0ZSA9XG4gICAgICB0aGlzLm1pbkRhdGUgJiZcbiAgICAgIChpc1NhbWVNb250aCh0aGlzLmFjdGl2ZU1vbnRoLCB0aGlzLm1pbkRhdGUpIHx8IGlzQmVmb3JlKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMubWluRGF0ZSkpO1xuXG4gICAgcmV0dXJuICFyZWFjaGVkUGFzdERhdGVzTGltaXQgJiYgIXJlYWNoZWRPckV4Y2VlZGVkTWluRGF0ZTtcbiAgfVxuXG4gIGdldCBfY2FuTmF2aWdhdGVGb3J3YXJkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlYWNoZWRGdXR1cmVEYXRlc0xpbWl0ID1cbiAgICAgIHRoaXMuZGlzYWJsZUZ1dHVyZURhdGVzICYmIGlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMudG9kYXlEYXRlKTtcblxuICAgIGNvbnN0IHJlYWNoZWRPckV4Y2VlZGVkTWF4RGF0ZSA9XG4gICAgICB0aGlzLm1heERhdGUgJiZcbiAgICAgIChpc1NhbWVNb250aCh0aGlzLmFjdGl2ZU1vbnRoLCB0aGlzLm1heERhdGUpIHx8IGlzQWZ0ZXIodGhpcy5hY3RpdmVNb250aCwgdGhpcy5tYXhEYXRlKSk7XG5cbiAgICByZXR1cm4gIXJlYWNoZWRGdXR1cmVEYXRlc0xpbWl0ICYmICFyZWFjaGVkT3JFeGNlZWRlZE1heERhdGU7XG4gIH1cblxuICBwcml2YXRlIGdldENlbGwoZGF0ZTogRGF0ZSkge1xuICAgIGxldCBmb3VuZERheSA9IG51bGw7XG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIGZvciAobGV0IHdlZWsgb2YgdGhpcy5fbW9udGgpIHtcbiAgICAgICAgZm91bmREYXkgPSB3ZWVrLmZpbmQoKGRheSkgPT4ge1xuICAgICAgICAgIHJldHVybiBkYXkuaXNDdXJyZW50TW9udGggJiYgZGF5LmRhdGUgPT09IGRhdGUuZ2V0RGF0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGZvdW5kRGF5KSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZvdW5kRGF5O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRIZWxwZXJPcHRpb25zKCk6IENhbGVuZGFyT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNhbk5hdmlnYXRlQmFjazogdGhpcy5fY2FuTmF2aWdhdGVCYWNrLFxuICAgICAgY2FuTmF2aWdhdGVGb3J3YXJkOiB0aGlzLl9jYW5OYXZpZ2F0ZUZvcndhcmQsXG4gICAgICB5ZWFyOiB0aGlzLmFjdGl2ZVllYXIsXG4gICAgICBtb250aE5hbWU6IHRoaXMuYWN0aXZlTW9udGhOYW1lLFxuICAgICAgd2Vla0RheXM6IHRoaXMuX3dlZWtEYXlzLFxuICAgICAgbW9udGg6IHRoaXMuX21vbnRoLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN1YnRyYWN0VGltZXpvbmVPZmZzZXQoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IHRpbWV6b25lT2Zmc2V0SW5NcyA9IGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwICogMTAwMDtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSB0aW1lem9uZU9mZnNldEluTXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREYXRlRnJvbU5hdmlnYWJsZVllYXIobmF2aWdhYmxlWWVhcjogbnVtYmVyIHwgRGF0ZSk6IERhdGUge1xuICAgIGlmIChuYXZpZ2FibGVZZWFyIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIG5hdmlnYWJsZVllYXI7XG4gICAgY29uc3QgdG9kYXkgPSB0aGlzLnRvZGF5RGF0ZSB8fCBuZXcgRGF0ZSgpO1xuICAgIHJldHVybiBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpICsgbmF2aWdhYmxlWWVhciwgMCwgMSk7XG4gIH1cblxuICBwcml2YXRlIGdldFllYXJzQmV0d2VlbkRhdGVzKHN0YXJ0RGF0ZTogRGF0ZSwgZW5kRGF0ZTogRGF0ZSk6IHN0cmluZ1tdIHtcbiAgICAvLyBFbnN1cmUgeWVhcnMgYXJlIG9yZGVyZWQgY29ycmVjdGx5IGlmIHBhcmFtZXRlcnMgYXJlIHN3aXRjaGVkOlxuICAgIGNvbnN0IFtzdGFydFllYXIsIGVuZFllYXJdID0gW3N0YXJ0RGF0ZS5nZXRGdWxsWWVhcigpLCBlbmREYXRlLmdldEZ1bGxZZWFyKCldLnNvcnQoKTtcbiAgICBjb25zdCBudW1iZXJPZlllYXJzID0gZW5kWWVhciAtIHN0YXJ0WWVhcjtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogbnVtYmVyT2ZZZWFycyArIDEgfSwgKF8sIGkpID0+IChzdGFydFllYXIgKyBpKS50b1N0cmluZygpKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICA8ZGl2IGNsYXNzPVwibW9udGgtbmF2aWdhdG9yXCI+XG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiIV9jYW5OYXZpZ2F0ZUJhY2tcIiAoY2xpY2spPVwiX2NoYW5nZU1vbnRoKC0xKVwiPlxuICAgICAgPGtpcmJ5LWljb24gbmFtZT1cImFycm93LWJhY2tcIj48L2tpcmJ5LWljb24+XG4gICAgPC9idXR0b24+XG5cbiAgICA8ZGl2IGNsYXNzPVwibW9udGgtYW5kLXllYXJcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibW9udGhcIj57eyBhY3RpdmVNb250aE5hbWUgfX08L3NwYW5cbiAgICAgID48c3BhbiAqbmdJZj1cIiFfaGFzWWVhck5hdmlnYXRvclwiIGNsYXNzPVwieWVhclwiPnt7IGFjdGl2ZVllYXIgfX08L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCIhX2Nhbk5hdmlnYXRlRm9yd2FyZFwiIChjbGljayk9XCJfY2hhbmdlTW9udGgoMSlcIj5cbiAgICAgIDxraXJieS1pY29uIG5hbWU9XCJhcnJvdy1tb3JlXCI+PC9raXJieS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGtpcmJ5LWRyb3Bkb3duXG4gICAgKm5nSWY9XCJfaGFzWWVhck5hdmlnYXRvclwiXG4gICAgW3VzZVBvcG92ZXJdPVwidXNlUG9wb3ZlclwiXG4gICAgW3NlbGVjdGVkSW5kZXhdPVwibmF2aWdhdGVkWWVhclwiXG4gICAgW2l0ZW1zXT1cIm5hdmlnYWJsZVllYXJzXCJcbiAgICBwb3BvdXQ9XCJsZWZ0XCJcbiAgICAoY2hhbmdlKT1cIl9jaGFuZ2VZZWFyKCRldmVudClcIlxuICA+XG4gIDwva2lyYnktZHJvcGRvd24+XG48L2Rpdj5cblxuPHRhYmxlPlxuICA8dGhlYWQ+XG4gICAgPHRyPlxuICAgICAgPHRoICpuZ0Zvcj1cImxldCB3ZWVrRGF5IG9mIF93ZWVrRGF5c1wiPnt7IHdlZWtEYXkgfX08L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG5cbiAgPHRib2R5PlxuICAgIDx0ciAqbmdGb3I9XCJsZXQgd2VlayBvZiBfbW9udGhcIj5cbiAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWtcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIChjbGljayk9XCJfb25EYXRlU2VsZWN0ZWQoZGF5KVwiXG4gICAgICAgICAgY2xhc3M9XCJ7eyBkYXkuY3NzQ2xhc3NlcyB9fVwiXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImRheS5pc1NlbGVjdGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGRheS5kYXRlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPCEtLSA8aWZyYW1lIHNyYz1cImtpcmJ5L2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIud2Vidmlldy5odG1sXCIgI2NhbGVuZGFyQ29udGFpbmVyIHN0eWxlPVwid2lkdGg6IDMyMHB4OyBoZWlnaHQ6IDMwNHB4OyBib3JkZXI6IDBcIj4gLS0+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 =
|
|
36
|
+
this._isFabSheetOpen = fab.activated;
|
|
37
37
|
if (this._isFabSheetOpen) {
|
|
38
38
|
this.renderer.addClass(this.document.body, 'fab-sheet-active');
|
|
39
39
|
}
|
|
@@ -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,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXNoZWV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mYWItc2hlZXQvZmFiLXNoZWV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mYWItc2hlZXQvZmFiLXNoZWV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7OztBQVFwRixNQUFNLE9BQU8saUJBQWlCO0lBcUI1QixZQUNVLFFBQW1CLEVBQ25CLGlCQUFvQyxFQUNsQixRQUFhO1FBRi9CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUFLO1FBdkJoQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLHdCQUFtQixHQUFnQyxPQUFPLENBQUM7UUFFNUQsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFNakMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO0lBZXpDLENBQUM7SUFwQkosSUFDSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBR0QsSUFDSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQWFELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFXO1FBQ3JCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBRXJDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ2hFO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsd0VBQXdFO1FBQ3hFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUM5QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztpSUF0RFUsaUJBQWlCLDRFQXdCbEIsUUFBUTtxSEF4QlAsaUJBQWlCLG9TQWdCZCxvQkFBb0IsOEZBRXZCLFlBQVksMkJBQXdCLFVBQVUsMkNDMUMzRCxxakJBYUE7MkZEV2EsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNOzswQkEwQjVDLE1BQU07MkJBQUMsUUFBUTs0Q0F2QlQsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBSUYsY0FBYztzQkFEakIsV0FBVzt1QkFBQyxlQUFlO2dCQU94QixpQkFBaUI7c0JBRHBCLFdBQVc7dUJBQUMsd0JBQXdCO2dCQUtrQixXQUFXO3NCQUFqRSxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHckQsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25GYWIsIElvbkZhYkJ1dHRvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuaW1wb3J0IHsgQWN0aW9uU2hlZXRDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC9hY3Rpb24tc2hlZXQvYWN0aW9uLXNoZWV0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LWZhYi1zaGVldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItc2hlZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mYWItc2hlZXQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZhYlNoZWV0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhvcml6b250YWxBbGlnbm1lbnQ6ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyA9ICdyaWdodCc7XG5cbiAgcHJpdmF0ZSBfaXNGYWJTaGVldE9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1vcGVuJylcbiAgZ2V0IGlzRmFiU2hlZXRPcGVuKCkge1xuICAgIHJldHVybiB0aGlzLl9pc0ZhYlNoZWV0T3BlbjtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQmFja2Ryb3BWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYmFja2Ryb3AtdmlzaWJsZScpXG4gIGdldCBpc0JhY2tkcm9wVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNCYWNrZHJvcFZpc2libGU7XG4gIH1cblxuICBAQ29udGVudENoaWxkKEFjdGlvblNoZWV0Q29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgYWN0aW9uU2hlZXQ6IEFjdGlvblNoZWV0Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoSW9uRmFiQnV0dG9uLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBpb25GYWJCdXR0b246IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnlcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3Rpb25TaGVldCkge1xuICAgICAgdGhpcy5hY3Rpb25TaGVldC5oaWRlQ2FuY2VsID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBoaWRlQWN0aW9ucyhmYWI6IElvbkZhYikge1xuICAgIGZhYi5jbG9zZSgpO1xuICAgIHRoaXMuX2lzRmFiU2hlZXRPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5faXNCYWNrZHJvcFZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2ZhYi1zaGVldC1hY3RpdmUnKTtcbiAgfVxuXG4gIG9uRmFiQ2xpY2soZmFiOiBJb25GYWIpIHtcbiAgICB0aGlzLl9pc0ZhYlNoZWV0T3BlbiA9IGZhYi5hY3RpdmF0ZWQ7XG5cbiAgICBpZiAodGhpcy5faXNGYWJTaGVldE9wZW4pIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCAnZmFiLXNoZWV0LWFjdGl2ZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2ZhYi1zaGVldC1hY3RpdmUnKTtcbiAgICB9XG5cbiAgICAvLyBQb3N0cG9uZSBiYWNrZHJvcCB2aXNpYmlsaXR5IHVwZGF0ZSB0byBhbGxvdyBmb3IgYW5pbWF0aW9uIG9mIG9wYWNpdHlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2lzQmFja2Ryb3BWaXNpYmxlID0gdGhpcy5pc0ZhYlNoZWV0T3BlbjtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxpb24tYmFja2Ryb3BcbiAgKm5nSWY9XCJhY3Rpb25TaGVldCAmJiBpc0ZhYlNoZWV0T3BlblwiXG4gIChpb25CYWNrZHJvcFRhcCk9XCJoaWRlQWN0aW9ucyhmYWIpXCJcbiAgKGNsaWNrKT1cImhpZGVBY3Rpb25zKGZhYilcIlxuPjwvaW9uLWJhY2tkcm9wPlxuPGlvbi1mYWIgI2ZhYiAoY2xpY2spPVwiZGlzYWJsZWQgfHwgb25GYWJDbGljayhmYWIpXCI+XG4gIDxpb24tZmFiLWJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/IHRydWUgOiBudWxsXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImtpcmJ5LWljb25cIj48L25nLWNvbnRlbnQ+XG4gIDwvaW9uLWZhYi1idXR0b24+XG4gIDxpb24tZmFiLWxpc3QgKm5nSWY9XCJhY3Rpb25TaGVldFwiIHNpZGU9XCJ0b3BcIiBjbGFzcz1cInt7IGhvcml6b250YWxBbGlnbm1lbnQgfX1cIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJraXJieS1hY3Rpb24tc2hlZXRcIj48L25nLWNvbnRlbnQ+XG4gIDwvaW9uLWZhYi1saXN0PlxuPC9pb24tZmFiPlxuIl19
|
|
@@ -22,10 +22,10 @@ export class ItemComponent {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
/** @nocollapse */ ItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
-
/** @nocollapse */ ItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ItemComponent, selector: "kirby-item", inputs: { disabled: "disabled", selected: "selected", selectable: "selectable", reorderable: "reorderable", size: "size" }, host: { properties: { "class.selected": "this.selected", "class": "this.size" } }, ngImport: i0, template: "<ion-item\n lines=\"none\"\n [attr.disabled]=\"disabled\"\n [attr.button]=\"selectable ? true : null\"\n [attr.tabindex]=\"selectable ? null : 0\"\n detail=\"false\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <div class=\"outside\" slot=\"start\">\n <ng-content select=\"[slot='outside']\"></ng-content>\n </div>\n <ng-content></ng-content>\n <ion-reorder slot=\"end\" *ngIf=\"reorderable\">\n <kirby-icon name=\"reorder\"></kirby-icon>\n </ion-reorder>\n</ion-item>\n", styles: [":host{display:block;position:relative}:host ion-item{--padding-top: var(--item-padding-top, 0px);--padding-bottom: var(--item-padding-bottom, 0px);font-size:14px;--min-height: 56px;--padding-start: 16px;--inner-padding-top: 8px;--inner-padding-bottom: 8px;--inner-padding-end: 16px;--background: var(--kirby-item-background, var(--kirby-white));--background-activated: var( --kirby-item-background-activated, var(--kirby-white-shade) );--background-activated-opacity: .99;--background-focused: var( --kirby-item-background-focused, var(--kirby-background-color) );--background-focused-opacity: 1;--background-hover: var(--kirby-item-background-hover, var(--kirby-background-color));--background-hover-opacity: 1}@media screen and (orientation: landscape){:host ion-item{--ion-safe-area-left: 0px;--ion-safe-area-right: 0px}}:host ion-item ::ng-deep>[slot=end]{margin-inline-start:0;margin-inline-end:0;text-align:right}:host ion-item ::ng-deep>time[slot=end]{margin-inline-start:12px}:host ion-item ::ng-deep>data[slot=end],:host ion-item ::ng-deep>[detail][slot=end],:host ion-item ::ng-deep>ion-reorder[slot=end]{margin-inline-start:16px}:host ion-item ::ng-deep>h1,:host ion-item ::ng-deep>h2,:host ion-item ::ng-deep>h3,:host ion-item ::ng-deep>h4,:host ion-item ::ng-deep>h5,:host ion-item ::ng-deep>h6,:host ion-item ::ng-deep>p,:host ion-item ::ng-deep>data{font-size:16px;line-height:24px;color:var(--kirby-text-color-black);display:block;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400}:host ion-item ::ng-deep>h1.kirby-text-bold,:host ion-item ::ng-deep>h2.kirby-text-bold,:host ion-item ::ng-deep>h3.kirby-text-bold,:host ion-item ::ng-deep>h4.kirby-text-bold,:host ion-item ::ng-deep>h5.kirby-text-bold,:host ion-item ::ng-deep>h6.kirby-text-bold,:host ion-item ::ng-deep>p.kirby-text-bold,:host ion-item ::ng-deep>data.kirby-text-bold{font-weight:700}:host ion-item ::ng-deep>p{font-size:14px}:host ion-item ::ng-deep>[subtitle],:host ion-item ::ng-deep>[detail]{font-size:12px;line-height:16px}:host ion-item ::ng-deep>[subtitle]:not(:last-child){margin-bottom:4px}:host ion-item ::ng-deep>[detail]{color:var(--kirby-text-color-semi-dark)}:host ion-item ::ng-deep>:not([slot]){width:100%}:host ion-item ::ng-deep>input[slot=end],:host ion-item ::ng-deep>kirby-form-field[slot=end] input{margin-inline-start:16px;width:auto;text-align:right}:host.sm ion-item{--min-height: 44px}:host.xs ion-item{--min-height: 32px;--inner-padding-top: 4px;--inner-padding-bottom: 4px}:host .outside{left:4px;margin:0;position:absolute;width:16px;z-index:1}:host-context(kirby-dropdown) ion-item,:host-context(kirby-popover) ion-item{--min-height: 44px}:host-context(kirby-list-item:first-of-type kirby-card) ion-item{--padding-top: 0}:host-context(kirby-list-item:last-of-type kirby-card) ion-item{--padding-bottom: 0}:host(.selected) ion-item ::ng-deep>h1,:host(.selected) ion-item ::ng-deep>h2,:host(.selected) ion-item ::ng-deep>h3,:host(.selected) ion-item ::ng-deep>h4,:host(.selected) ion-item ::ng-deep>h5,:host(.selected) ion-item ::ng-deep>h6,:host(.selected) ion-item ::ng-deep>p,:host(.selected) ion-item ::ng-deep>data,:host-context(kirby-list .selected) ion-item ::ng-deep>h1,:host-context(kirby-list .selected) ion-item ::ng-deep>h2,:host-context(kirby-list .selected) ion-item ::ng-deep>h3,:host-context(kirby-list .selected) ion-item ::ng-deep>h4,:host-context(kirby-list .selected) ion-item ::ng-deep>h5,:host-context(kirby-list .selected) ion-item ::ng-deep>h6,:host-context(kirby-list .selected) ion-item ::ng-deep>p,:host-context(kirby-list .selected) ion-item ::ng-deep>data{font-weight:700}:host-context(.shape-rounded .is-single) ion-item{--border-radius: 16px}:host-context(.has-header .is-single) ion-item::part(native){border-top-left-radius:0;border-top-right-radius:0}:host-context(.has-footer .is-single) ion-item::part(native){border-bottom-left-radius:0;border-bottom-right-radius:0}:host-context(.shape-rounded.has-sections .list-items kirby-list-item:first-of-type) ion-item::part(native){border-top-left-radius:16px;border-top-right-radius:16px}\n"], components: [{ type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i1.IonReorder, selector: "ion-reorder" }, { type: i2.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
25
|
+
/** @nocollapse */ ItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ItemComponent, selector: "kirby-item", inputs: { disabled: "disabled", selected: "selected", selectable: "selectable", reorderable: "reorderable", size: "size" }, host: { properties: { "class.selected": "this.selected", "class": "this.size" } }, ngImport: i0, template: "<ion-item\n lines=\"none\"\n [attr.disabled]=\"disabled\"\n [attr.button]=\"selectable ? true : null\"\n [attr.tabindex]=\"selectable ? null : 0\"\n detail=\"false\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <div class=\"outside\" slot=\"start\">\n <ng-content select=\"[slot='outside']\"></ng-content>\n </div>\n <ng-content></ng-content>\n <ion-reorder slot=\"end\" *ngIf=\"reorderable\">\n <kirby-icon name=\"reorder\"></kirby-icon>\n </ion-reorder>\n</ion-item>\n", styles: [":host{display:block;position:relative}:host ion-item{--padding-top: var(--item-padding-top, 0px);--padding-bottom: var(--item-padding-bottom, 0px);font-size:14px;--min-height: 56px;--padding-start: 16px;--inner-padding-top: 8px;--inner-padding-bottom: 8px;--inner-padding-end: 16px;--background: var(--kirby-item-background, var(--kirby-white));--background-activated: var( --kirby-item-background-activated, var(--kirby-white-shade) );--background-activated-opacity: .99;--background-focused: var( --kirby-item-background-focused, var(--kirby-background-color) );--background-focused-opacity: 1;--background-hover: var(--kirby-item-background-hover, var(--kirby-background-color));--background-hover-opacity: 1}@media screen and (orientation: landscape){:host ion-item{--ion-safe-area-left: 0px;--ion-safe-area-right: 0px}}:host ion-item ::ng-deep>[slot=end]{margin-inline-start:0;margin-inline-end:0;text-align:right}:host ion-item ::ng-deep>time[slot=end]{margin-inline-start:12px}:host ion-item ::ng-deep>data[slot=end],:host ion-item ::ng-deep>[detail][slot=end],:host ion-item ::ng-deep>ion-reorder[slot=end]{margin-inline-start:16px}:host ion-item ::ng-deep>h1,:host ion-item ::ng-deep>h2,:host ion-item ::ng-deep>h3,:host ion-item ::ng-deep>h4,:host ion-item ::ng-deep>h5,:host ion-item ::ng-deep>h6,:host ion-item ::ng-deep>p,:host ion-item ::ng-deep>data{font-size:16px;line-height:24px;color:var(--kirby-text-color-black);display:block;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400}:host ion-item ::ng-deep>h1.kirby-text-bold,:host ion-item ::ng-deep>h2.kirby-text-bold,:host ion-item ::ng-deep>h3.kirby-text-bold,:host ion-item ::ng-deep>h4.kirby-text-bold,:host ion-item ::ng-deep>h5.kirby-text-bold,:host ion-item ::ng-deep>h6.kirby-text-bold,:host ion-item ::ng-deep>p.kirby-text-bold,:host ion-item ::ng-deep>data.kirby-text-bold{font-weight:700}:host ion-item ::ng-deep>p{font-size:14px}:host ion-item ::ng-deep>[subtitle],:host ion-item ::ng-deep>[detail]{font-size:12px;line-height:16px}:host ion-item ::ng-deep>[subtitle]:not(:last-child){margin-bottom:4px}:host ion-item ::ng-deep>[detail]{color:var(--kirby-text-color-semi-dark)}:host ion-item ::ng-deep>:not([slot]){width:100%}:host ion-item ::ng-deep>input[slot=end],:host ion-item ::ng-deep>kirby-form-field[slot=end] input{margin-inline-start:16px;width:auto;text-align:right}:host.sm ion-item{--min-height: 44px}:host.xs ion-item{--min-height: 32px;--inner-padding-top: 4px;--inner-padding-bottom: 4px}:host .outside{left:4px;margin:0;position:absolute;width:16px;z-index:1}:host-context(kirby-dropdown) ion-item,:host-context(kirby-popover) ion-item{--min-height: 44px}:host-context(kirby-list-item:first-of-type) ion-item{--padding-top: 8px}:host-context(kirby-list-item:first-of-type kirby-card) ion-item{--padding-top: 0}:host-context(kirby-list-item:last-of-type) ion-item{--padding-bottom: 8px}:host-context(kirby-list-item:last-of-type kirby-card) ion-item{--padding-bottom: 0}:host(.selected) ion-item ::ng-deep>h1,:host(.selected) ion-item ::ng-deep>h2,:host(.selected) ion-item ::ng-deep>h3,:host(.selected) ion-item ::ng-deep>h4,:host(.selected) ion-item ::ng-deep>h5,:host(.selected) ion-item ::ng-deep>h6,:host(.selected) ion-item ::ng-deep>p,:host(.selected) ion-item ::ng-deep>data,:host-context(kirby-list .selected) ion-item ::ng-deep>h1,:host-context(kirby-list .selected) ion-item ::ng-deep>h2,:host-context(kirby-list .selected) ion-item ::ng-deep>h3,:host-context(kirby-list .selected) ion-item ::ng-deep>h4,:host-context(kirby-list .selected) ion-item ::ng-deep>h5,:host-context(kirby-list .selected) ion-item ::ng-deep>h6,:host-context(kirby-list .selected) ion-item ::ng-deep>p,:host-context(kirby-list .selected) ion-item ::ng-deep>data{font-weight:700}:host-context(.shape-rounded .is-single) ion-item{--border-radius: 16px}:host-context(.has-header .is-single) ion-item::part(native){border-top-left-radius:0;border-top-right-radius:0}:host-context(.has-footer .is-single) ion-item::part(native){border-bottom-left-radius:0;border-bottom-right-radius:0}:host-context(.shape-rounded.has-sections .list-items kirby-list-item:first-of-type) ion-item::part(native){border-top-left-radius:16px;border-top-right-radius:16px}\n"], components: [{ type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i1.IonReorder, selector: "ion-reorder" }, { type: i2.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ItemComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
|
-
args: [{ selector: 'kirby-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-item\n lines=\"none\"\n [attr.disabled]=\"disabled\"\n [attr.button]=\"selectable ? true : null\"\n [attr.tabindex]=\"selectable ? null : 0\"\n detail=\"false\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <div class=\"outside\" slot=\"start\">\n <ng-content select=\"[slot='outside']\"></ng-content>\n </div>\n <ng-content></ng-content>\n <ion-reorder slot=\"end\" *ngIf=\"reorderable\">\n <kirby-icon name=\"reorder\"></kirby-icon>\n </ion-reorder>\n</ion-item>\n", styles: [":host{display:block;position:relative}:host ion-item{--padding-top: var(--item-padding-top, 0px);--padding-bottom: var(--item-padding-bottom, 0px);font-size:14px;--min-height: 56px;--padding-start: 16px;--inner-padding-top: 8px;--inner-padding-bottom: 8px;--inner-padding-end: 16px;--background: var(--kirby-item-background, var(--kirby-white));--background-activated: var( --kirby-item-background-activated, var(--kirby-white-shade) );--background-activated-opacity: .99;--background-focused: var( --kirby-item-background-focused, var(--kirby-background-color) );--background-focused-opacity: 1;--background-hover: var(--kirby-item-background-hover, var(--kirby-background-color));--background-hover-opacity: 1}@media screen and (orientation: landscape){:host ion-item{--ion-safe-area-left: 0px;--ion-safe-area-right: 0px}}:host ion-item ::ng-deep>[slot=end]{margin-inline-start:0;margin-inline-end:0;text-align:right}:host ion-item ::ng-deep>time[slot=end]{margin-inline-start:12px}:host ion-item ::ng-deep>data[slot=end],:host ion-item ::ng-deep>[detail][slot=end],:host ion-item ::ng-deep>ion-reorder[slot=end]{margin-inline-start:16px}:host ion-item ::ng-deep>h1,:host ion-item ::ng-deep>h2,:host ion-item ::ng-deep>h3,:host ion-item ::ng-deep>h4,:host ion-item ::ng-deep>h5,:host ion-item ::ng-deep>h6,:host ion-item ::ng-deep>p,:host ion-item ::ng-deep>data{font-size:16px;line-height:24px;color:var(--kirby-text-color-black);display:block;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400}:host ion-item ::ng-deep>h1.kirby-text-bold,:host ion-item ::ng-deep>h2.kirby-text-bold,:host ion-item ::ng-deep>h3.kirby-text-bold,:host ion-item ::ng-deep>h4.kirby-text-bold,:host ion-item ::ng-deep>h5.kirby-text-bold,:host ion-item ::ng-deep>h6.kirby-text-bold,:host ion-item ::ng-deep>p.kirby-text-bold,:host ion-item ::ng-deep>data.kirby-text-bold{font-weight:700}:host ion-item ::ng-deep>p{font-size:14px}:host ion-item ::ng-deep>[subtitle],:host ion-item ::ng-deep>[detail]{font-size:12px;line-height:16px}:host ion-item ::ng-deep>[subtitle]:not(:last-child){margin-bottom:4px}:host ion-item ::ng-deep>[detail]{color:var(--kirby-text-color-semi-dark)}:host ion-item ::ng-deep>:not([slot]){width:100%}:host ion-item ::ng-deep>input[slot=end],:host ion-item ::ng-deep>kirby-form-field[slot=end] input{margin-inline-start:16px;width:auto;text-align:right}:host.sm ion-item{--min-height: 44px}:host.xs ion-item{--min-height: 32px;--inner-padding-top: 4px;--inner-padding-bottom: 4px}:host .outside{left:4px;margin:0;position:absolute;width:16px;z-index:1}:host-context(kirby-dropdown) ion-item,:host-context(kirby-popover) ion-item{--min-height: 44px}:host-context(kirby-list-item:first-of-type kirby-card) ion-item{--padding-top: 0}:host-context(kirby-list-item:last-of-type kirby-card) ion-item{--padding-bottom: 0}:host(.selected) ion-item ::ng-deep>h1,:host(.selected) ion-item ::ng-deep>h2,:host(.selected) ion-item ::ng-deep>h3,:host(.selected) ion-item ::ng-deep>h4,:host(.selected) ion-item ::ng-deep>h5,:host(.selected) ion-item ::ng-deep>h6,:host(.selected) ion-item ::ng-deep>p,:host(.selected) ion-item ::ng-deep>data,:host-context(kirby-list .selected) ion-item ::ng-deep>h1,:host-context(kirby-list .selected) ion-item ::ng-deep>h2,:host-context(kirby-list .selected) ion-item ::ng-deep>h3,:host-context(kirby-list .selected) ion-item ::ng-deep>h4,:host-context(kirby-list .selected) ion-item ::ng-deep>h5,:host-context(kirby-list .selected) ion-item ::ng-deep>h6,:host-context(kirby-list .selected) ion-item ::ng-deep>p,:host-context(kirby-list .selected) ion-item ::ng-deep>data{font-weight:700}:host-context(.shape-rounded .is-single) ion-item{--border-radius: 16px}:host-context(.has-header .is-single) ion-item::part(native){border-top-left-radius:0;border-top-right-radius:0}:host-context(.has-footer .is-single) ion-item::part(native){border-bottom-left-radius:0;border-bottom-right-radius:0}:host-context(.shape-rounded.has-sections .list-items kirby-list-item:first-of-type) ion-item::part(native){border-top-left-radius:16px;border-top-right-radius:16px}\n"] }]
|
|
28
|
+
args: [{ selector: 'kirby-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-item\n lines=\"none\"\n [attr.disabled]=\"disabled\"\n [attr.button]=\"selectable ? true : null\"\n [attr.tabindex]=\"selectable ? null : 0\"\n detail=\"false\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <div class=\"outside\" slot=\"start\">\n <ng-content select=\"[slot='outside']\"></ng-content>\n </div>\n <ng-content></ng-content>\n <ion-reorder slot=\"end\" *ngIf=\"reorderable\">\n <kirby-icon name=\"reorder\"></kirby-icon>\n </ion-reorder>\n</ion-item>\n", styles: [":host{display:block;position:relative}:host ion-item{--padding-top: var(--item-padding-top, 0px);--padding-bottom: var(--item-padding-bottom, 0px);font-size:14px;--min-height: 56px;--padding-start: 16px;--inner-padding-top: 8px;--inner-padding-bottom: 8px;--inner-padding-end: 16px;--background: var(--kirby-item-background, var(--kirby-white));--background-activated: var( --kirby-item-background-activated, var(--kirby-white-shade) );--background-activated-opacity: .99;--background-focused: var( --kirby-item-background-focused, var(--kirby-background-color) );--background-focused-opacity: 1;--background-hover: var(--kirby-item-background-hover, var(--kirby-background-color));--background-hover-opacity: 1}@media screen and (orientation: landscape){:host ion-item{--ion-safe-area-left: 0px;--ion-safe-area-right: 0px}}:host ion-item ::ng-deep>[slot=end]{margin-inline-start:0;margin-inline-end:0;text-align:right}:host ion-item ::ng-deep>time[slot=end]{margin-inline-start:12px}:host ion-item ::ng-deep>data[slot=end],:host ion-item ::ng-deep>[detail][slot=end],:host ion-item ::ng-deep>ion-reorder[slot=end]{margin-inline-start:16px}:host ion-item ::ng-deep>h1,:host ion-item ::ng-deep>h2,:host ion-item ::ng-deep>h3,:host ion-item ::ng-deep>h4,:host ion-item ::ng-deep>h5,:host ion-item ::ng-deep>h6,:host ion-item ::ng-deep>p,:host ion-item ::ng-deep>data{font-size:16px;line-height:24px;color:var(--kirby-text-color-black);display:block;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400}:host ion-item ::ng-deep>h1.kirby-text-bold,:host ion-item ::ng-deep>h2.kirby-text-bold,:host ion-item ::ng-deep>h3.kirby-text-bold,:host ion-item ::ng-deep>h4.kirby-text-bold,:host ion-item ::ng-deep>h5.kirby-text-bold,:host ion-item ::ng-deep>h6.kirby-text-bold,:host ion-item ::ng-deep>p.kirby-text-bold,:host ion-item ::ng-deep>data.kirby-text-bold{font-weight:700}:host ion-item ::ng-deep>p{font-size:14px}:host ion-item ::ng-deep>[subtitle],:host ion-item ::ng-deep>[detail]{font-size:12px;line-height:16px}:host ion-item ::ng-deep>[subtitle]:not(:last-child){margin-bottom:4px}:host ion-item ::ng-deep>[detail]{color:var(--kirby-text-color-semi-dark)}:host ion-item ::ng-deep>:not([slot]){width:100%}:host ion-item ::ng-deep>input[slot=end],:host ion-item ::ng-deep>kirby-form-field[slot=end] input{margin-inline-start:16px;width:auto;text-align:right}:host.sm ion-item{--min-height: 44px}:host.xs ion-item{--min-height: 32px;--inner-padding-top: 4px;--inner-padding-bottom: 4px}:host .outside{left:4px;margin:0;position:absolute;width:16px;z-index:1}:host-context(kirby-dropdown) ion-item,:host-context(kirby-popover) ion-item{--min-height: 44px}:host-context(kirby-list-item:first-of-type) ion-item{--padding-top: 8px}:host-context(kirby-list-item:first-of-type kirby-card) ion-item{--padding-top: 0}:host-context(kirby-list-item:last-of-type) ion-item{--padding-bottom: 8px}:host-context(kirby-list-item:last-of-type kirby-card) ion-item{--padding-bottom: 0}:host(.selected) ion-item ::ng-deep>h1,:host(.selected) ion-item ::ng-deep>h2,:host(.selected) ion-item ::ng-deep>h3,:host(.selected) ion-item ::ng-deep>h4,:host(.selected) ion-item ::ng-deep>h5,:host(.selected) ion-item ::ng-deep>h6,:host(.selected) ion-item ::ng-deep>p,:host(.selected) ion-item ::ng-deep>data,:host-context(kirby-list .selected) ion-item ::ng-deep>h1,:host-context(kirby-list .selected) ion-item ::ng-deep>h2,:host-context(kirby-list .selected) ion-item ::ng-deep>h3,:host-context(kirby-list .selected) ion-item ::ng-deep>h4,:host-context(kirby-list .selected) ion-item ::ng-deep>h5,:host-context(kirby-list .selected) ion-item ::ng-deep>h6,:host-context(kirby-list .selected) ion-item ::ng-deep>p,:host-context(kirby-list .selected) ion-item ::ng-deep>data{font-weight:700}:host-context(.shape-rounded .is-single) ion-item{--border-radius: 16px}:host-context(.has-header .is-single) ion-item::part(native){border-top-left-radius:0;border-top-right-radius:0}:host-context(.has-footer .is-single) ion-item::part(native){border-bottom-left-radius:0;border-bottom-right-radius:0}:host-context(.shape-rounded.has-sections .list-items kirby-list-item:first-of-type) ion-item::part(native){border-top-left-radius:16px;border-top-right-radius:16px}\n"] }]
|
|
29
29
|
}], propDecorators: { disabled: [{
|
|
30
30
|
type: Input
|
|
31
31
|
}], selected: [{
|