@kirbydesign/designsystem 6.0.2 → 6.1.2-rc.ionic
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/esm2020/lib/components/button/button.component.mjs +2 -2
- package/esm2020/lib/components/card/card-footer/card-footer.component.mjs +2 -2
- package/esm2020/lib/components/dropdown/dropdown.component.mjs +26 -18
- package/esm2020/lib/components/fab-sheet/fab-sheet.component.mjs +3 -3
- package/esm2020/lib/components/form-field/input/input.component.mjs +2 -2
- package/esm2020/lib/components/form-field/textarea/textarea.component.mjs +2 -2
- package/esm2020/lib/components/icon/icon.component.mjs +1 -1
- package/esm2020/lib/components/item/item.component.mjs +1 -1
- package/esm2020/lib/components/list/list-item/list-item.component.mjs +2 -2
- package/esm2020/lib/components/list/list.component.mjs +2 -2
- package/esm2020/lib/components/modal/footer/modal-footer.component.mjs +14 -9
- package/esm2020/lib/components/modal/modal-wrapper/modal-elements-mover.delegate.mjs +62 -0
- package/esm2020/lib/components/modal/modal-wrapper/modal-wrapper.component.mjs +73 -123
- package/esm2020/lib/components/modal/services/action-sheet.helper.mjs +4 -1
- package/esm2020/lib/components/modal/services/modal-animation-builder.service.mjs +62 -50
- package/esm2020/lib/components/modal/services/modal.helper.mjs +12 -11
- package/esm2020/lib/components/modal/services/modal.interfaces.mjs +39 -1
- package/esm2020/lib/components/page/page.component.mjs +31 -21
- package/esm2020/lib/components/range/range.component.mjs +1 -1
- package/esm2020/lib/components/segmented-control/segmented-control.component.mjs +1 -1
- package/esm2020/lib/components/slide-button/slide-button.component.mjs +2 -2
- package/esm2020/lib/components/toggle/toggle.component.mjs +1 -1
- package/fesm2015/kirbydesign-designsystem.mjs +321 -232
- package/fesm2015/kirbydesign-designsystem.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem.mjs +314 -232
- package/fesm2020/kirbydesign-designsystem.mjs.map +1 -1
- package/lib/components/avatar/avatar.component.d.ts +1 -1
- package/lib/components/dropdown/dropdown.component.d.ts +6 -5
- package/lib/components/modal/footer/modal-footer.component.d.ts +5 -2
- package/lib/components/modal/modal-wrapper/modal-elements-mover.delegate.d.ts +14 -0
- package/lib/components/modal/modal-wrapper/modal-wrapper.component.d.ts +14 -16
- package/lib/components/modal/services/modal-animation-builder.service.d.ts +14 -3
- package/lib/components/modal/services/modal.interfaces.d.ts +22 -0
- package/lib/components/page/page.component.d.ts +7 -5
- package/package.json +8 -8
- package/scss/base/_link.scss +1 -0
- package/scss/interaction-state/_active.scss +1 -0
- package/scss/interaction-state/_focus.scss +1 -0
- package/scss/interaction-state/_hover.scss +1 -0
- package/scss/interaction-state/_index.scss +1 -0
- package/scss/interaction-state/_interaction-state.utilities.scss +1 -0
- package/scss/interaction-state/_layer.scss +1 -0
- package/scss/opt-out/_index.scss +1 -0
- package/scss/opt-out/_link.scss +1 -0
- package/src/lib/components/icon/README.md +16 -0
- package/README.md +0 -7
|
@@ -52,10 +52,10 @@ export class ButtonComponent {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
/** @nocollapse */ ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ButtonComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
55
|
-
/** @nocollapse */ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ButtonComponent, selector: "button[kirby-button],Button[kirby-button]", inputs: { attentionLevel: "attentionLevel", isDestructive: "isDestructive", themeColor: "themeColor", expand: "expand", isFloating: "isFloating", size: "size" }, host: { properties: { "class.attention-level1": "this.isAttentionLevel1", "class.attention-level2": "this.isAttentionLevel2", "class.attention-level3": "this.isAttentionLevel3", "class.attention-level4": "this.isAttentionLevel4", "class.destructive": "this.destructive", "class.floating": "this.isButtonFloating", "class.icon-only": "this.isIconOnly", "class.icon-left": "this.isIconLeft", "class.icon-right": "this.isIconRight", "class": "this._cssClass" } }, queries: [{ propertyName: "icon", first: true, predicate: IconComponent, descendants: true }, { propertyName: "iconElementRef", first: true, predicate: IconComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{position:relative;font-family:var(--kirby-font-family);background-color:var(--kirby-button-background-color, initial);color:var(--kirby-button-color, inherit);border-radius:999px;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:row;align-items:center;justify-content:center;transition:opacity .2s linear;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;font-size:14px;height:40px;min-width:88px;padding:0 24px;margin:4px;line-height:20px;outline:none;border:1px solid var(--kirby-button-border-color, transparent)}:host:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}:host.icon-left{padding-left:12px;padding-right:16px;--kirby-icon-margin-right: 8px}:host.icon-right{padding-left:16px;padding-right:12px;--kirby-icon-margin-left: 8px}:host.icon-only{width:40px;padding:0;min-width:unset}:host.sm{font-size:12px;height:32px;min-width:44px}:host.sm:not(.icon-only){padding-left:16px;padding-right:16px}:host.sm.icon-only{--kirby-icon-font-size: 16px;width:32px;min-width:unset}:host.sm.icon-left,:host.sm.icon-right{--kirby-icon-font-size: 16px;min-width:88px}:host.lg{font-size:16px;height:48px;min-width:220px}:host.lg.icon-only{width:48px;min-width:unset}:host.attention-level1{--kirby-button-background-color: var(--kirby-primary);--kirby-button-color: var(--kirby-primary-contrast)}:host.attention-level1.destructive{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}:host.attention-level2{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host.attention-level2.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host.attention-level3{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black);--kirby-button-border-color: var(--kirby-medium)}:host.attention-level3.destructive{--kirby-button-color: var(--kirby-danger)}:host.attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host.attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host[expand=block]{width:100%}@media (hover: hover){:host:focus{--kirby-button-border-color:
|
|
55
|
+
/** @nocollapse */ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ButtonComponent, selector: "button[kirby-button],Button[kirby-button]", inputs: { attentionLevel: "attentionLevel", isDestructive: "isDestructive", themeColor: "themeColor", expand: "expand", isFloating: "isFloating", size: "size" }, host: { properties: { "class.attention-level1": "this.isAttentionLevel1", "class.attention-level2": "this.isAttentionLevel2", "class.attention-level3": "this.isAttentionLevel3", "class.attention-level4": "this.isAttentionLevel4", "class.destructive": "this.destructive", "class.floating": "this.isButtonFloating", "class.icon-only": "this.isIconOnly", "class.icon-left": "this.isIconLeft", "class.icon-right": "this.isIconRight", "class": "this._cssClass" } }, queries: [{ propertyName: "icon", first: true, predicate: IconComponent, descendants: true }, { propertyName: "iconElementRef", first: true, predicate: IconComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{position:relative;font-family:var(--kirby-font-family);background-color:var(--kirby-button-background-color, initial);color:var(--kirby-button-color, inherit);border-radius:999px;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:row;align-items:center;justify-content:center;transition:opacity .2s linear;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;font-size:14px;height:40px;min-width:88px;padding:0 24px;margin:4px;line-height:20px;outline:none;border:1px solid var(--kirby-button-border-color, transparent)}:host:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}:host.icon-left{padding-left:12px;padding-right:16px;--kirby-icon-margin-right: 8px}:host.icon-right{padding-left:16px;padding-right:12px;--kirby-icon-margin-left: 8px}:host.icon-only{width:40px;padding:0;min-width:unset}:host.sm{font-size:12px;height:32px;min-width:44px}:host.sm:not(.icon-only){padding-left:16px;padding-right:16px}:host.sm.icon-only{--kirby-icon-font-size: 16px;width:32px;min-width:unset}:host.sm.icon-left,:host.sm.icon-right{--kirby-icon-font-size: 16px;min-width:88px}:host.lg{font-size:16px;height:48px;min-width:220px}:host.lg.icon-only{width:48px;min-width:unset}:host.attention-level1{--kirby-button-background-color: var(--kirby-primary);--kirby-button-color: var(--kirby-primary-contrast)}:host.attention-level1.destructive{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}:host.attention-level2{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host.attention-level2.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host.attention-level3{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black);--kirby-button-border-color: var(--kirby-medium)}:host.attention-level3.destructive{--kirby-button-color: var(--kirby-danger)}:host.attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host.attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host[expand=block]{width:100%}@media (hover: hover){:host:focus{--kirby-button-border-color: rgb(77, 144, 254)}}@media (hover: hover){:host:hover{opacity:.8}}:host:active{opacity:.8}:host:disabled{background-color:var(--kirby-semi-light);color:var(--kirby-semi-dark-shade);border-color:transparent;pointer-events:none}:host :host-context(.default).attention-level2,:host :host-context(.kirby-color-brightness-white).attention-level2{--kirby-button-background-color: var(--kirby-black);--kirby-button-color: var(--kirby-black-contrast)}:host :host-context(.kirby-color-brightness-dark).attention-level3{--kirby-button-border-color: var(--kirby-white);--kirby-button-color: var(--kirby-white)}:host :host-context(.kirby-color-brightness-dark).attention-level4{--kirby-button-color: var(--kirby-white)}:host.floating{width:64px!important;height:64px!important;min-width:unset}:host.floating:not(:disabled){box-shadow:0 20px 30px -15px #1c1c1c4d,0 0 5px #1c1c1c14}:host-context(kirby-item)[slot=end]{margin-inline-start:16px}:host-context(kirby-alert).ok-btn{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(ion-toolbar kirby-page-actions){font-size:14px;margin:0;height:44px}:host-context(ion-toolbar kirby-page-actions).icon-only{width:44px}:host-context(ion-toolbar kirby-page-actions).attention-level1,:host-context(ion-toolbar kirby-page-actions).attention-level2,:host-context(ion-toolbar kirby-page-actions).attention-level3,:host-context(ion-toolbar kirby-page-actions).attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host-context(ion-toolbar kirby-page-actions).attention-level1.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level2.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level3.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host-context(.page-title kirby-page-actions).attention-level1,:host-context(.page-title kirby-page-actions).attention-level2,:host-context(.page-title kirby-page-actions).attention-level3,:host-context(.page-title kirby-page-actions).attention-level4{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host-context(.page-title kirby-page-actions).attention-level1.destructive,:host-context(.page-title kirby-page-actions).attention-level2.destructive,:host-context(.page-title kirby-page-actions).attention-level3.destructive,:host-context(.page-title kirby-page-actions).attention-level4.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host-context(kirby-empty-state .content){font-size:16px;height:48px;min-width:220px}:host-context(kirby-empty-state .content).icon-only{width:48px;min-width:unset}:host-context(kirby-dropdown){justify-content:space-between}:host-context(kirby-toggle-button).success{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(kirby-toggle-button).warning{--kirby-button-background-color: var(--kirby-warning);--kirby-button-color: var(--kirby-warning-contrast)}:host-context(kirby-toggle-button).danger{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
56
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
57
57
|
type: Component,
|
|
58
|
-
args: [{ selector: 'button[kirby-button],Button[kirby-button]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{position:relative;font-family:var(--kirby-font-family);background-color:var(--kirby-button-background-color, initial);color:var(--kirby-button-color, inherit);border-radius:999px;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:row;align-items:center;justify-content:center;transition:opacity .2s linear;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;font-size:14px;height:40px;min-width:88px;padding:0 24px;margin:4px;line-height:20px;outline:none;border:1px solid var(--kirby-button-border-color, transparent)}:host:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}:host.icon-left{padding-left:12px;padding-right:16px;--kirby-icon-margin-right: 8px}:host.icon-right{padding-left:16px;padding-right:12px;--kirby-icon-margin-left: 8px}:host.icon-only{width:40px;padding:0;min-width:unset}:host.sm{font-size:12px;height:32px;min-width:44px}:host.sm:not(.icon-only){padding-left:16px;padding-right:16px}:host.sm.icon-only{--kirby-icon-font-size: 16px;width:32px;min-width:unset}:host.sm.icon-left,:host.sm.icon-right{--kirby-icon-font-size: 16px;min-width:88px}:host.lg{font-size:16px;height:48px;min-width:220px}:host.lg.icon-only{width:48px;min-width:unset}:host.attention-level1{--kirby-button-background-color: var(--kirby-primary);--kirby-button-color: var(--kirby-primary-contrast)}:host.attention-level1.destructive{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}:host.attention-level2{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host.attention-level2.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host.attention-level3{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black);--kirby-button-border-color: var(--kirby-medium)}:host.attention-level3.destructive{--kirby-button-color: var(--kirby-danger)}:host.attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host.attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host[expand=block]{width:100%}@media (hover: hover){:host:focus{--kirby-button-border-color:
|
|
58
|
+
args: [{ selector: 'button[kirby-button],Button[kirby-button]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{position:relative;font-family:var(--kirby-font-family);background-color:var(--kirby-button-background-color, initial);color:var(--kirby-button-color, inherit);border-radius:999px;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:row;align-items:center;justify-content:center;transition:opacity .2s linear;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;font-size:14px;height:40px;min-width:88px;padding:0 24px;margin:4px;line-height:20px;outline:none;border:1px solid var(--kirby-button-border-color, transparent)}:host:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}:host.icon-left{padding-left:12px;padding-right:16px;--kirby-icon-margin-right: 8px}:host.icon-right{padding-left:16px;padding-right:12px;--kirby-icon-margin-left: 8px}:host.icon-only{width:40px;padding:0;min-width:unset}:host.sm{font-size:12px;height:32px;min-width:44px}:host.sm:not(.icon-only){padding-left:16px;padding-right:16px}:host.sm.icon-only{--kirby-icon-font-size: 16px;width:32px;min-width:unset}:host.sm.icon-left,:host.sm.icon-right{--kirby-icon-font-size: 16px;min-width:88px}:host.lg{font-size:16px;height:48px;min-width:220px}:host.lg.icon-only{width:48px;min-width:unset}:host.attention-level1{--kirby-button-background-color: var(--kirby-primary);--kirby-button-color: var(--kirby-primary-contrast)}:host.attention-level1.destructive{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}:host.attention-level2{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host.attention-level2.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host.attention-level3{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black);--kirby-button-border-color: var(--kirby-medium)}:host.attention-level3.destructive{--kirby-button-color: var(--kirby-danger)}:host.attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host.attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host[expand=block]{width:100%}@media (hover: hover){:host:focus{--kirby-button-border-color: rgb(77, 144, 254)}}@media (hover: hover){:host:hover{opacity:.8}}:host:active{opacity:.8}:host:disabled{background-color:var(--kirby-semi-light);color:var(--kirby-semi-dark-shade);border-color:transparent;pointer-events:none}:host :host-context(.default).attention-level2,:host :host-context(.kirby-color-brightness-white).attention-level2{--kirby-button-background-color: var(--kirby-black);--kirby-button-color: var(--kirby-black-contrast)}:host :host-context(.kirby-color-brightness-dark).attention-level3{--kirby-button-border-color: var(--kirby-white);--kirby-button-color: var(--kirby-white)}:host :host-context(.kirby-color-brightness-dark).attention-level4{--kirby-button-color: var(--kirby-white)}:host.floating{width:64px!important;height:64px!important;min-width:unset}:host.floating:not(:disabled){box-shadow:0 20px 30px -15px #1c1c1c4d,0 0 5px #1c1c1c14}:host-context(kirby-item)[slot=end]{margin-inline-start:16px}:host-context(kirby-alert).ok-btn{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(ion-toolbar kirby-page-actions){font-size:14px;margin:0;height:44px}:host-context(ion-toolbar kirby-page-actions).icon-only{width:44px}:host-context(ion-toolbar kirby-page-actions).attention-level1,:host-context(ion-toolbar kirby-page-actions).attention-level2,:host-context(ion-toolbar kirby-page-actions).attention-level3,:host-context(ion-toolbar kirby-page-actions).attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host-context(ion-toolbar kirby-page-actions).attention-level1.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level2.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level3.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host-context(.page-title kirby-page-actions).attention-level1,:host-context(.page-title kirby-page-actions).attention-level2,:host-context(.page-title kirby-page-actions).attention-level3,:host-context(.page-title kirby-page-actions).attention-level4{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host-context(.page-title kirby-page-actions).attention-level1.destructive,:host-context(.page-title kirby-page-actions).attention-level2.destructive,:host-context(.page-title kirby-page-actions).attention-level3.destructive,:host-context(.page-title kirby-page-actions).attention-level4.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host-context(kirby-empty-state .content){font-size:16px;height:48px;min-width:220px}:host-context(kirby-empty-state .content).icon-only{width:48px;min-width:unset}:host-context(kirby-dropdown){justify-content:space-between}:host-context(kirby-toggle-button).success{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(kirby-toggle-button).warning{--kirby-button-background-color: var(--kirby-warning);--kirby-button-color: var(--kirby-warning-contrast)}:host-context(kirby-toggle-button).danger{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}\n"] }]
|
|
59
59
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { isAttentionLevel1: [{
|
|
60
60
|
type: HostBinding,
|
|
61
61
|
args: ['class.attention-level1']
|
|
@@ -5,9 +5,9 @@ export class CardFooterComponent {
|
|
|
5
5
|
ngOnInit() { }
|
|
6
6
|
}
|
|
7
7
|
/** @nocollapse */ CardFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: CardFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8
|
-
/** @nocollapse */ CardFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: CardFooterComponent, selector: "kirby-card-footer", ngImport: i0, template: "<footer>\n <ng-content></ng-content>\n</footer>\n", styles: [":host{display:block;padding:16px;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:
|
|
8
|
+
/** @nocollapse */ CardFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: CardFooterComponent, selector: "kirby-card-footer", ngImport: i0, template: "<footer>\n <ng-content></ng-content>\n</footer>\n", styles: [":host{display:block;padding:16px;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translate(0)}footer{display:inherit;flex:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
9
9
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: CardFooterComponent, decorators: [{
|
|
10
10
|
type: Component,
|
|
11
|
-
args: [{ selector: 'kirby-card-footer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<footer>\n <ng-content></ng-content>\n</footer>\n", styles: [":host{display:block;padding:16px;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:
|
|
11
|
+
args: [{ selector: 'kirby-card-footer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<footer>\n <ng-content></ng-content>\n</footer>\n", styles: [":host{display:block;padding:16px;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translate(0)}footer{display:inherit;flex:inherit}\n"] }]
|
|
12
12
|
}], ctorParameters: function () { return []; } });
|
|
13
13
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC1mb290ZXIvY2FyZC1mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC1mb290ZXIvY2FyZC1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDOzttSUFIRixtQkFBbUI7dUhBQW5CLG1CQUFtQix5RENSaEMsb0RBR0E7MkZES2EsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LWNhcmQtZm9vdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC1mb290ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhcmRGb290ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxufVxuIiwiPGZvb3Rlcj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9mb290ZXI+XG4iXX0=
|
|
@@ -22,7 +22,6 @@ export class DropdownComponent {
|
|
|
22
22
|
this.changeDetectorRef = changeDetectorRef;
|
|
23
23
|
this.keyboardHandlerService = keyboardHandlerService;
|
|
24
24
|
this.state = OpenState.closed;
|
|
25
|
-
this.hasConfiguredSlottedItems = false;
|
|
26
25
|
this.horizontalDirection = HorizontalDirection.right;
|
|
27
26
|
this.verticalDirection = VerticalDirection.down;
|
|
28
27
|
this._items = [];
|
|
@@ -98,6 +97,24 @@ export class DropdownComponent {
|
|
|
98
97
|
get _popoutUp() {
|
|
99
98
|
return this.verticalDirection === VerticalDirection.up;
|
|
100
99
|
}
|
|
100
|
+
set kirbyItemsSlotted(kirbyItems) {
|
|
101
|
+
const hasSlottedItems = this.itemClickUnlisten?.length > 0;
|
|
102
|
+
if (hasSlottedItems) {
|
|
103
|
+
this.unlistenAllSlottedItems();
|
|
104
|
+
}
|
|
105
|
+
// Setup a click listener for each new slotted items
|
|
106
|
+
kirbyItems.forEach((kirbyItem, index) => {
|
|
107
|
+
this.renderer.setAttribute(kirbyItem.nativeElement, 'role', 'option');
|
|
108
|
+
const unlisten = this.renderer.listen(kirbyItem.nativeElement, 'click', () => {
|
|
109
|
+
this.onItemSelect(index);
|
|
110
|
+
});
|
|
111
|
+
this.itemClickUnlisten.push(unlisten);
|
|
112
|
+
});
|
|
113
|
+
this._kirbyItemsSlotted = kirbyItems;
|
|
114
|
+
}
|
|
115
|
+
get kirbyItemsSlotted() {
|
|
116
|
+
return this._kirbyItemsSlotted;
|
|
117
|
+
}
|
|
101
118
|
onToggle(event) {
|
|
102
119
|
event.stopPropagation();
|
|
103
120
|
if (!this.isOpen) {
|
|
@@ -115,18 +132,6 @@ export class DropdownComponent {
|
|
|
115
132
|
// Prevent button focus;
|
|
116
133
|
event.preventDefault();
|
|
117
134
|
}
|
|
118
|
-
ngAfterContentChecked() {
|
|
119
|
-
if (!this.hasConfiguredSlottedItems && this.kirbyItemsSlotted.length) {
|
|
120
|
-
this.kirbyItemsSlotted.forEach((kirbyItem, index) => {
|
|
121
|
-
this.renderer.setAttribute(kirbyItem.nativeElement, 'role', 'option');
|
|
122
|
-
const unlisten = this.renderer.listen(kirbyItem.nativeElement, 'click', () => {
|
|
123
|
-
this.onItemSelect(index);
|
|
124
|
-
});
|
|
125
|
-
this.itemClickUnlisten.push(unlisten);
|
|
126
|
-
});
|
|
127
|
-
this.hasConfiguredSlottedItems = true;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
135
|
/* Utility that makes it easier to set styles on card element
|
|
131
136
|
when using popover*/
|
|
132
137
|
setPopoverCardStyle(style, value) {
|
|
@@ -379,11 +384,14 @@ export class DropdownComponent {
|
|
|
379
384
|
}
|
|
380
385
|
return false;
|
|
381
386
|
}
|
|
382
|
-
|
|
383
|
-
let
|
|
384
|
-
while ((
|
|
385
|
-
|
|
387
|
+
unlistenAllSlottedItems() {
|
|
388
|
+
let unlistenItem;
|
|
389
|
+
while ((unlistenItem = this.itemClickUnlisten.pop()) !== undefined) {
|
|
390
|
+
unlistenItem();
|
|
386
391
|
}
|
|
392
|
+
}
|
|
393
|
+
ngOnDestroy() {
|
|
394
|
+
this.unlistenAllSlottedItems();
|
|
387
395
|
if (this.intersectionObserverRef) {
|
|
388
396
|
this.intersectionObserverRef.disconnect();
|
|
389
397
|
}
|
|
@@ -530,4 +538,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
|
|
|
530
538
|
type: HostListener,
|
|
531
539
|
args: ['keydown.end', ['$event']]
|
|
532
540
|
}] } });
|
|
533
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULG1CQUFtQixFQUNuQixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckYsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7QUFjcEUsTUFBTSxPQUFPLGlCQUFpQjtJQW1KNUIs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dUJBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVN2QyxZQUFZO3NCQURYLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVNyQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsT0FBTztnQkFjckIsZ0JBQWdCO3NCQUZmLFlBQVk7dUJBQUMsZUFBZTs7c0JBQzVCLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQVc5QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVFoQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVV6QyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVd6QyxZQUFZO3NCQUpYLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUMxQyxZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDNUMsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQzVDLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZ0I5QyxjQUFjO3NCQUZiLFlBQVk7dUJBQUMsY0FBYyxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDdkMsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlclN0eWxlRmxhZ3MyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FyZC9jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vaXRlbS9pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0SXRlbVRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vbGlzdC9saXN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIb3Jpem9udGFsRGlyZWN0aW9uLCBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IE9wZW5TdGF0ZSwgVmVydGljYWxEaXJlY3Rpb24gfSBmcm9tICcuL2Ryb3Bkb3duLnR5cGVzJztcbmltcG9ydCB7IEtleWJvYXJkSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuL2tleWJvYXJkLWhhbmRsZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEcm9wZG93bkNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgc3RhdGljIHJlYWRvbmx5IE9QRU5fREVMQVlfSU5fTVMgPSAxMDA7XG4gIHByaXZhdGUgc3RhdGUgPSBPcGVuU3RhdGUuY2xvc2VkO1xuICBwcml2YXRlIGhhc0NvbmZpZ3VyZWRTbG90dGVkSXRlbXMgPSBmYWxzZTtcbiAgcHJpdmF0ZSBob3Jpem9udGFsRGlyZWN0aW9uOiBIb3Jpem9udGFsRGlyZWN0aW9uIHwgYCR7SG9yaXpvbnRhbERpcmVjdGlvbn1gID1cbiAgICBIb3Jpem9udGFsRGlyZWN0aW9uLnJpZ2h0O1xuICBwcml2YXRlIHZlcnRpY2FsRGlyZWN0aW9uOiBWZXJ0aWNhbERpcmVjdGlvbiB8IGAke1ZlcnRpY2FsRGlyZWN0aW9ufWAgPSBWZXJ0aWNhbERpcmVjdGlvbi5kb3duO1xuXG4gIHByaXZhdGUgX2l0ZW1zOiBzdHJpbmdbXSB8IGFueVtdID0gW107XG4gIGdldCBpdGVtcygpOiBzdHJpbmdbXSB8IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaXRlbXModmFsdWU6IHN0cmluZ1tdIHwgYW55W10pIHtcbiAgICB0aGlzLl9pdGVtcyA9IHZhbHVlO1xuICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5pdGVtc1t0aGlzLnNlbGVjdGVkSW5kZXhdIHx8IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3RlZEluZGV4OiBudW1iZXIgPSAtMTtcbiAgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZEluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleCAhPSB2YWx1ZSkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IHZhbHVlO1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLml0ZW1zW3RoaXMuc2VsZWN0ZWRJbmRleF0gfHwgbnVsbDtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBpdGVtVGV4dFByb3BlcnR5ID0gJ3RleHQnO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJ1BsZWFzZSBzZWxlY3Q6JztcblxuICBASW5wdXQoKSBzZXQgcG9wb3V0KGRpcmVjdGlvbjogSG9yaXpvbnRhbERpcmVjdGlvbiB8IGAke0hvcml6b250YWxEaXJlY3Rpb259YCkge1xuICAgIHRoaXMuaG9yaXpvbnRhbERpcmVjdGlvbiA9IGRpcmVjdGlvbiB8fCBIb3Jpem9udGFsRGlyZWN0aW9uLnJpZ2h0O1xuICB9XG5cbiAgZ2V0IHBvcG91dCgpIHtcbiAgICByZXR1cm4gdGhpcy5ob3Jpem9udGFsRGlyZWN0aW9uO1xuICB9XG5cbiAgQElucHV0KClcbiAgYXR0ZW50aW9uTGV2ZWw6ICcxJyB8ICcyJyB8ICczJyB8ICc0JyA9ICczJztcbiAgcmVhZG9ubHkgYXR0ZW50aW9uTGV2ZWxPcGVuID0gJzInO1xuXG4gIEBJbnB1dCgpXG4gIGV4cGFuZD86ICdibG9jayc7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGlzYWJsZWQnKVxuICBnZXQgX2lzRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZXJyb3InKVxuICBASW5wdXQoKVxuICBoYXNFcnJvcjogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBzaXplOiAnc20nIHwgJ21kJyA9ICdtZCc7XG5cbiAgQElucHV0KClcbiAgdGFiaW5kZXggPSAwO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2l0aC1wb3BvdmVyJylcbiAgQElucHV0KClcbiAgdXNlUG9wb3ZlciA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIGdldCBfdGFiaW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgPyAtMSA6IHRoaXMudGFiaW5kZXg7XG4gIH1cblxuICAvLyBQcmV2ZW50IElvbmljIGJsdXIgb24gc2Nyb2xsXG4gIEBIb3N0QmluZGluZygnYXR0ci5uby1ibHVyJylcbiAgZ2V0IF9ub0JsdXJPblNjcm9sbCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYW4gaXRlbSBpcyBzZWxlY3RlZCAodGFwIG9uIG1vYmlsZSwgY2xpY2sva2V5cHJlc3Mgb24gd2ViKVxuICAgKi9cbiAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZyB8IGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IGFueT4oKTtcblxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nIHwgYW55ID0gbnVsbDtcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFRleHRGcm9tSXRlbSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZXhwYW5kJylcbiAgZ2V0IF9pc0Jsb2NrTGV2ZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kID09PSAnYmxvY2snO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICBfcm9sZSA9ICdsaXN0Ym94JztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLW9wZW5pbmcnKVxuICBnZXQgX2lzT3BlbmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gT3BlblN0YXRlLm9wZW5pbmc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLW9wZW4nKVxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09PSBPcGVuU3RhdGUub3BlbjtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucG9wb3V0LWxlZnQnKVxuICBnZXQgX3BvcG91dExlZnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaG9yaXpvbnRhbERpcmVjdGlvbiA9PT0gSG9yaXpvbnRhbERpcmVjdGlvbi5sZWZ0O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wb3BvdXQtdXAnKVxuICBnZXQgX3BvcG91dFVwKCkge1xuICAgIHJldHVybiB0aGlzLnZlcnRpY2FsRGlyZWN0aW9uID09PSBWZXJ0aWNhbERpcmVjdGlvbi51cDtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoTGlzdEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgQENvbnRlbnRDaGlsZHJlbihMaXN0SXRlbVRlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgc2xvdHRlZEl0ZW1zOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuICBAVmlld0NoaWxkKENhcmRDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBjYXJkRWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoUG9wb3ZlckNvbXBvbmVudClcbiAgcG9wb3Zlcj86IFBvcG92ZXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoQnV0dG9uQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBidXR0b25FbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZHJlbihJdGVtQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAga2lyYnlJdGVtc0RlZmF1bHQ6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG4gIEBDb250ZW50Q2hpbGRyZW4oSXRlbUNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGtpcmJ5SXRlbXNTbG90dGVkOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gIHByaXZhdGUgaXRlbUNsaWNrVW5saXN0ZW46ICgoKSA9PiB2b2lkKVtdID0gW107XG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXJSZWY6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuICBwcml2YXRlIHNob3dEcm9wZG93blRpbWVvdXRJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBrZXlib2FyZEhhbmRsZXJTZXJ2aWNlOiBLZXlib2FyZEhhbmRsZXJTZXJ2aWNlXG4gICkge31cblxuICBvblRvZ2dsZShldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIHRoaXMudG9nZ2xlKCk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIG9uQnV0dG9uTW91c2VFdmVudChldmVudDogRXZlbnQpIHtcbiAgICAvLyBQcmV2ZW50IGJ1dHRvbiBmb2N1cztcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgIGlmICghdGhpcy5oYXNDb25maWd1cmVkU2xvdHRlZEl0ZW1zICYmIHRoaXMua2lyYnlJdGVtc1Nsb3R0ZWQubGVuZ3RoKSB7XG4gICAgICB0aGlzLmtpcmJ5SXRlbXNTbG90dGVkLmZvckVhY2goKGtpcmJ5SXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoa2lyYnlJdGVtLm5hdGl2ZUVsZW1lbnQsICdyb2xlJywgJ29wdGlvbicpO1xuICAgICAgICBjb25zdCB1bmxpc3RlbiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGtpcmJ5SXRlbS5uYXRpdmVFbGVtZW50LCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5vbkl0ZW1TZWxlY3QoaW5kZXgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pdGVtQ2xpY2tVbmxpc3Rlbi5wdXNoKHVubGlzdGVuKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5oYXNDb25maWd1cmVkU2xvdHRlZEl0ZW1zID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKiBVdGlsaXR5IHRoYXQgbWFrZXMgaXQgZWFzaWVyIHRvIHNldCBzdHlsZXMgb24gY2FyZCBlbGVtZW50IFxuICB3aGVuIHVzaW5nIHBvcG92ZXIqL1xuICBwcml2YXRlIHNldFBvcG92ZXJDYXJkU3R5bGUoc3R5bGU6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy51c2VQb3BvdmVyKSByZXR1cm47XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgdGhpcy5jYXJkRWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgc3R5bGUsXG4gICAgICB2YWx1ZSxcbiAgICAgIFJlbmRlcmVyU3R5bGVGbGFnczIuRGFzaENhc2VcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLnVzZVBvcG92ZXIgJiYgdGhpcy5leHBhbmQgPT09ICdibG9jaycpIHtcbiAgICAgIGNvbnN0IHsgd2lkdGggfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy5zZXRQb3BvdmVyQ2FyZFN0eWxlKCctLWtpcmJ5LWNhcmQtd2lkdGgnLCBgJHt3aWR0aH1weGApO1xuICAgICAgdGhpcy5zZXRQb3BvdmVyQ2FyZFN0eWxlKCdtYXgtd2lkdGgnLCAnaW5pdGlhbCcpO1xuICAgICAgdGhpcy5zZXRQb3BvdmVyQ2FyZFN0eWxlKCdtaW4td2lkdGgnLCAnaW5pdGlhbCcpO1xuICAgIH1cbiAgICB0aGlzLmluaXRpYWxpemVBbGlnbm1lbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUFsaWdubWVudCgpIHtcbiAgICBpZiAodGhpcy51c2VQb3BvdmVyKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyUmVmKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICByb290TWFyZ2luOiAnMHB4JyxcbiAgICAgIH07XG4gICAgICBjb25zdCBjYWxsYmFjazogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayA9IChlbnRyaWVzKSA9PiB7XG4gICAgICAgIC8vIE9ubHkgYXBwbHkgYWxpZ25tZW50IHdoZW4gb3BlbmluZzpcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgIT09IE9wZW5TdGF0ZS5vcGVuaW5nKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2FuY2VsIGFueSBwZW5kaW5nIHRpbWVyIHRvIHNob3cgZHJvcGRvd246XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNob3dEcm9wZG93blRpbWVvdXRJZCk7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LndpZHRoID4gMDtcbiAgICAgICAgaWYgKGlzVmlzaWJsZSAmJiBlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA8IDEpIHtcbiAgICAgICAgICB0aGlzLnNldEhvcml6b250YWxEaXJlY3Rpb24oZW50cnkpO1xuICAgICAgICAgIHRoaXMuc2V0VmVydGljYWxEaXJlY3Rpb24oZW50cnkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfTtcbiAgICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXJSZWYgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoY2FsbGJhY2ssIG9wdGlvbnMpO1xuICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlclJlZi5vYnNlcnZlKHRoaXMuY2FyZEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRIb3Jpem9udGFsRGlyZWN0aW9uKGVudHJ5OiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KSB7XG4gICAgLy8gSWYgcG9wb3V0IGRpcmVjdGlvbiBpcyBzZXQgdG8gcmlnaHQsIGFuZCB0aGUgZW50cnkgaXMgY3V0IG9mZiB0byB0aGUgcmlnaHQgYnkgJHtlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QucmlnaHQgLSBlbnRyeS5pbnRlcnNlY3Rpb25SZWN0LnJpZ2h0fXB4XG4gICAgLy8gaXQgaXMgc2V0IHRvIHBvcG91dCBsZWZ0IGluc3RlYWQsIGFuZCB2aWNlIHZlcnNhIGZvciBwb3BvdXQgZGlyZWN0aW9uIGxlZnRcbiAgICBpZiAodGhpcy5ob3Jpem9udGFsRGlyZWN0aW9uID09PSBIb3Jpem9udGFsRGlyZWN0aW9uLnJpZ2h0KSB7XG4gICAgICBpZiAoZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LnJpZ2h0ID4gZW50cnkucm9vdEJvdW5kcy5yaWdodCkge1xuICAgICAgICB0aGlzLmhvcml6b250YWxEaXJlY3Rpb24gPSBIb3Jpem9udGFsRGlyZWN0aW9uLmxlZnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QubGVmdCA8IGVudHJ5LnJvb3RCb3VuZHMubGVmdCkge1xuICAgICAgICB0aGlzLmhvcml6b250YWxEaXJlY3Rpb24gPSBIb3Jpem9udGFsRGlyZWN0aW9uLnJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VmVydGljYWxEaXJlY3Rpb24oZW50cnk6IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnkpIHtcbiAgICBpZiAoZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LnRvcCA8IDApIHtcbiAgICAgIC8vIGVudHJ5IGlzIGN1dCBvZmYgYXQgdGhlIHRvcCBieSAke2VudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC50b3B9cHhcbiAgICAgIC8vIG9wZW4gZG93bndhcmRzOlxuICAgICAgdGhpcy52ZXJ0aWNhbERpcmVjdGlvbiA9IFZlcnRpY2FsRGlyZWN0aW9uLmRvd247XG4gICAgfVxuICAgIGlmIChlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QuYm90dG9tID4gZW50cnkucm9vdEJvdW5kcy5ib3R0b20pIHtcbiAgICAgIC8vIGVudHJ5IGlzIGN1dCBvZmYgYXQgdGhlIGJvdHRvbSBieSAke2VudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC5ib3R0b20gLSBlbnRyeS5pbnRlcnNlY3Rpb25SZWN0LmJvdHRvbX1weFxuICAgICAgY29uc3QgY29udGFpbmVyT2Zmc2V0VG9wID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuICAgICAgY29uc3QgU1BBQ0lORyA9IDU7IC8vVE9ETzogR2V0IGZyb20gU0NTU1xuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNhcmQgY2FuIGZpdCBvbiB0b3Agb2YgYnV0dG9uOlxuICAgICAgaWYgKGNvbnRhaW5lck9mZnNldFRvcCA+IGVudHJ5LnRhcmdldC5jbGllbnRIZWlnaHQgKyBTUEFDSU5HKSB7XG4gICAgICAgIC8vIG9wZW4gdXB3YXJkczpcbiAgICAgICAgdGhpcy52ZXJ0aWNhbERpcmVjdGlvbiA9IFZlcnRpY2FsRGlyZWN0aW9uLnVwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5zdGF0ZSA9IE9wZW5TdGF0ZS5vcGVuaW5nO1xuICAgICAgLy8gZW5zdXJlcyB0aGF0IHRoZSBkcm9wZG93biBpcyBvcGVuZWQgaW4gY2FzZSB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBpc24ndCBpbnZva2VkXG4gICAgICB0aGlzLnNob3dEcm9wZG93blRpbWVvdXRJZCA9IHNldFRpbWVvdXQoXG4gICAgICAgICgpID0+IHRoaXMuc2hvd0Ryb3Bkb3duKCksXG4gICAgICAgIERyb3Bkb3duQ29tcG9uZW50Lk9QRU5fREVMQVlfSU5fTVNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG93RHJvcGRvd24oKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09IE9wZW5TdGF0ZS5vcGVuaW5nKSB7XG4gICAgICB0aGlzLnN0YXRlID0gT3BlblN0YXRlLm9wZW47XG4gICAgICB0aGlzLnBvcG92ZXI/LnNob3coKTtcbiAgICAgIHRoaXMuc2Nyb2xsSXRlbUludG9WaWV3KHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5zdGF0ZSA9IE9wZW5TdGF0ZS5jbG9zZWQ7XG4gICAgICAvLyBSZXNldCB2ZXJ0aWNhbCBkaXJlY3Rpb24gdG8gZGVmYXVsdFxuICAgICAgdGhpcy52ZXJ0aWNhbERpcmVjdGlvbiA9IFZlcnRpY2FsRGlyZWN0aW9uLmRvd247XG4gICAgICB0aGlzLnBvcG92ZXI/LmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBvbkl0ZW1TZWxlY3QoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0SXRlbShpbmRleCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgX29uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzZWxlY3QncyB2YWx1ZS4gUGFydCBvZiB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAqIHJlcXVpcmVkIHRvIGludGVncmF0ZSB3aXRoIEFuZ3VsYXIncyBjb3JlIGZvcm1zIEFQSS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIE5ldyB2YWx1ZSB0byBiZSB3cml0dGVuIHRvIHRoZSBtb2RlbC5cbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3NlbGVjdEl0ZW1CeVZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgd2hlbiB0aGUgc2VsZWN0J3MgdmFsdWVcbiAgICogY2hhbmdlcyBmcm9tIHVzZXIgaW5wdXQuIFBhcnQgb2YgdGhlIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICAgKiByZXF1aXJlZCB0byBpbnRlZ3JhdGUgd2l0aCBBbmd1bGFyJ3MgY29yZSBmb3JtcyBBUEkuXG4gICAqXG4gICAqIEBwYXJhbSBmbiBDYWxsYmFjayB0byBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBpbnZva2VkIHdoZW4gdGhlIHNlbGVjdCBpcyBibHVycmVkXG4gICAqIGJ5IHRoZSB1c2VyLiBQYXJ0IG9mIHRoZSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2UgcmVxdWlyZWRcbiAgICogdG8gaW50ZWdyYXRlIHdpdGggQW5ndWxhcidzIGNvcmUgZm9ybXMgQVBJLlxuICAgKlxuICAgKiBAcGFyYW0gZm4gQ2FsbGJhY2sgdG8gYmUgdHJpZ2dlcmVkIHdoZW4gdGhlIGNvbXBvbmVudCBoYXMgYmVlbiB0b3VjaGVkLlxuICAgKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGVzIHRoZSBzZWxlY3QuIFBhcnQgb2YgdGhlIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZSByZXF1aXJlZFxuICAgKiB0byBpbnRlZ3JhdGUgd2l0aCBBbmd1bGFyJ3MgY29yZSBmb3JtcyBBUEkuXG4gICAqXG4gICAqIEBwYXJhbSBpc0Rpc2FibGVkIFNldHMgd2hldGhlciB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RJdGVtKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoaW5kZXggIT0gdGhpcy5zZWxlY3RlZEluZGV4KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBpbmRleDtcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgIHRoaXMuc2Nyb2xsSXRlbUludG9WaWV3KGluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3RJdGVtQnlWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5pdGVtcy5pbmRleE9mKHZhbHVlKTtcbiAgfVxuXG4gIGdldFRleHRGcm9tSXRlbShpdGVtOiBzdHJpbmcgfCBhbnkpIHtcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnID8gaXRlbSA6IGl0ZW1bdGhpcy5pdGVtVGV4dFByb3BlcnR5XTtcbiAgfVxuXG4gIHNjcm9sbEl0ZW1JbnRvVmlldyhpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qga2lyYnlJdGVtcyA9XG4gICAgICB0aGlzLmtpcmJ5SXRlbXNTbG90dGVkICYmIHRoaXMua2lyYnlJdGVtc1Nsb3R0ZWQubGVuZ3RoXG4gICAgICAgID8gdGhpcy5raXJieUl0ZW1zU2xvdHRlZFxuICAgICAgICA6IHRoaXMua2lyYnlJdGVtc0RlZmF1bHQ7XG4gICAgaWYgKGtpcmJ5SXRlbXMgJiYga2lyYnlJdGVtcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkS2lyYnlJdGVtID0ga2lyYnlJdGVtcy50b0FycmF5KClbaW5kZXhdO1xuICAgICAgaWYgKHNlbGVjdGVkS2lyYnlJdGVtICYmIHNlbGVjdGVkS2lyYnlJdGVtLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaXRlbUVsZW1lbnQgPSBzZWxlY3RlZEtpcmJ5SXRlbS5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBzY3JvbGxDb250YWluZXIgPSB0aGlzLmNhcmRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGl0ZW1Ub3AgPSBpdGVtRWxlbWVudC5vZmZzZXRUb3A7XG4gICAgICAgIGNvbnN0IGl0ZW1Cb3R0b20gPSBpdGVtRWxlbWVudC5vZmZzZXRUb3AgKyBpdGVtRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclZpc2libGVUb3AgPSBzY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wO1xuICAgICAgICBjb25zdCBjb250YWluZXJWaXNpYmxlQm90dG9tID0gc2Nyb2xsQ29udGFpbmVyLmNsaWVudEhlaWdodCArIHNjcm9sbENvbnRhaW5lci5zY3JvbGxUb3A7XG4gICAgICAgIGlmIChpdGVtVG9wIDwgY29udGFpbmVyVmlzaWJsZVRvcCkge1xuICAgICAgICAgIHNjcm9sbENvbnRhaW5lci5zY3JvbGxUb3AgPSBpdGVtVG9wO1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW1Cb3R0b20gPiBjb250YWluZXJWaXNpYmxlQm90dG9tKSB7XG4gICAgICAgICAgc2Nyb2xsQ29udGFpbmVyLnNjcm9sbFRvcCA9IGl0ZW1Cb3R0b20gLSBzY3JvbGxDb250YWluZXIuY2xpZW50SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi50YWInLCBbJyRldmVudCddKVxuICBfb25UYWIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgX29uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gIF9vbkZvY3VzKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgfVxuICB9XG5cbiAgX29uUG9wb3ZlcldpbGxIaWRlKCkge1xuICAgIHRoaXMuc3RhdGUgPSBPcGVuU3RhdGUuY2xvc2VkO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJylcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2NhcGUnKVxuICBfb25FbnRlck9yRXNjYXBlKCkge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgfVxuXG4gIF9vblBvcG92ZXJDbGljayhldmVudDogUG9pbnRlckV2ZW50KSB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXG4gIF9vbkJsdXIoZXZlbnQ/OiBGb2N1c0V2ZW50KSB7XG4gICAgaWYgKHRoaXMudXNlUG9wb3ZlcikgcmV0dXJuO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uc3BhY2UnLCBbJyRldmVudCddKVxuICBfb25TcGFjZShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbnRlcicsIFsnJGV2ZW50J10pXG4gIF9vbkVudGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnRvZ2dsZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd3VwJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2Rvd24nLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93bGVmdCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dyaWdodCcsIFsnJGV2ZW50J10pXG4gIF9vbkFycm93S2V5cyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgLy8gTWlycm9yIGRlZmF1bHQgSFRNTDUgc2VsZWN0IGJlaGF2aW91ciAtIHByZXZlbnQgbGVmdC9yaWdodCBhcnJvd3Mgd2hlbiBvcGVuOlxuICAgIGlmICh0aGlzLmlzT3BlbiAmJiAoZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0JyB8fCBldmVudC5rZXkgPT09ICdBcnJvd1JpZ2h0JykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV3SW5kZXggPSB0aGlzLmtleWJvYXJkSGFuZGxlclNlcnZpY2UuaGFuZGxlKGV2ZW50LCB0aGlzLml0ZW1zLCB0aGlzLnNlbGVjdGVkSW5kZXgpO1xuICAgIGlmIChuZXdJbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLnNlbGVjdEl0ZW0obmV3SW5kZXgpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmhvbWUnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVuZCcsIFsnJGV2ZW50J10pXG4gIF9vbkhvbWVFbmRLZXlzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBjb25zdCBuZXdJbmRleCA9IHRoaXMua2V5Ym9hcmRIYW5kbGVyU2VydmljZS5oYW5kbGUoZXZlbnQsIHRoaXMuaXRlbXMsIHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgaWYgKG5ld0luZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMuc2VsZWN0SXRlbShuZXdJbmRleCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGxldCB1bmxpc3RlbjogKCkgPT4gdm9pZDtcbiAgICB3aGlsZSAoKHVubGlzdGVuID0gdGhpcy5pdGVtQ2xpY2tVbmxpc3Rlbi5wb3AoKSkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdW5saXN0ZW4oKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXJSZWYpIHtcbiAgICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXJSZWYuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGJ1dHRvblxuICBraXJieS1idXR0b25cbiAgW3NpemVdPVwic2l6ZVwiXG4gIFthdHRlbnRpb25MZXZlbF09XCJpc09wZW4gPyBhdHRlbnRpb25MZXZlbE9wZW4gOiBhdHRlbnRpb25MZXZlbFwiXG4gIHRhYmluZGV4PVwiLTFcIlxuICAoY2xpY2spPVwib25Ub2dnbGUoJGV2ZW50KVwiXG4gIChtb3VzZWRvd24pPVwib25CdXR0b25Nb3VzZUV2ZW50KCRldmVudClcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICB0eXBlPVwiYnV0dG9uXCJcbj5cbiAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCI+e3sgc2VsZWN0ZWRUZXh0IHx8IHBsYWNlaG9sZGVyIH19PC9zcGFuPlxuICA8a2lyYnktaWNvbiBbbmFtZV09XCJpc09wZW4gPyAnYXJyb3ctdXAnIDogJ2Fycm93LWRvd24nXCI+PC9raXJieS1pY29uPlxuPC9idXR0b24+XG5cbjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1c2VQb3BvdmVyID8gcG9wb3ZlclRlbXBsYXRlIDogaXRlbVdyYXBwZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3BvcG92ZXJUZW1wbGF0ZT5cbiAgPGtpcmJ5LXBvcG92ZXJcbiAgICBbdGFyZ2V0XT1cImJ1dHRvbkVsZW1lbnRcIlxuICAgIFtwb3BvdXRdPVwicG9wb3V0XCJcbiAgICAoY2xpY2spPVwiX29uUG9wb3ZlckNsaWNrKCRldmVudClcIlxuICAgICh3aWxsSGlkZSk9XCJfb25Qb3BvdmVyV2lsbEhpZGUoKVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVdyYXBwZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2tpcmJ5LXBvcG92ZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2l0ZW1XcmFwcGVyVGVtcGxhdGU+XG4gIDxraXJieS1jYXJkPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICBpdGVtVGVtcGxhdGUgfHwgZGVmYXVsdEl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgc2VsZWN0ZWQ6IGkgPT09IHNlbGVjdGVkSW5kZXgsIGluZGV4OiBpIH1cbiAgICAgICAgXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9raXJieS1jYXJkPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbVRlbXBsYXRlIGxldC1pdGVtIGxldC1zZWxlY3RlZD1cInNlbGVjdGVkXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgPGtpcmJ5LWl0ZW0gW3NlbGVjdGFibGVdPVwidHJ1ZVwiIFtzZWxlY3RlZF09XCJzZWxlY3RlZFwiIChjbGljayk9XCJvbkl0ZW1TZWxlY3QoaW5kZXgpXCIgcm9sZT1cIm9wdGlvblwiPlxuICAgIDwhLS0gVGFiaW5kZXggZml4ZXMgaXNzdWUgd2l0aCBwb3BvdmVyIGRyb3Bkb3duIG5vdCB3b3JraW5nIGluIHNhZmFyaSAtLT5cbiAgICA8aDMgdGFiaW5kZXg9XCIwXCI+e3sgZ2V0VGV4dEZyb21JdGVtKGl0ZW0pIH19PC9oMz5cbiAgICA8a2lyYnktaWNvbiAqbmdJZj1cInNlbGVjdGVkXCIgbmFtZT1cImNoZWNrbWFyay1zZWxlY3RlZFwiIHNsb3Q9XCJlbmRcIj48L2tpcmJ5LWljb24+XG4gIDwva2lyYnktaXRlbT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
541
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULG1CQUFtQixFQUNuQixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckYsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7QUFjcEUsTUFBTSxPQUFPLGlCQUFpQjtJQXVLNUIs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QUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUs3QyxpQkFBaUI7c0JBRHBCLGVBQWU7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkEyUXBELE1BQU07c0JBREwsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU3ZDLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU3JDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxPQUFPO2dCQWNyQixnQkFBZ0I7c0JBRmYsWUFBWTt1QkFBQyxlQUFlOztzQkFDNUIsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBVzlCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUWhDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBVXpDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBV3pDLFlBQVk7c0JBSlgsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQzFDLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUM1QyxZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDNUMsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFnQjlDLGNBQWM7c0JBRmIsWUFBWTt1QkFBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUN2QyxZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFJlbmRlcmVyU3R5bGVGbGFnczIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRDb21wb25lbnQgfSBmcm9tICcuLi9jYXJkL2NhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9pdGVtL2l0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IExpc3RJdGVtVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9saXN0L2xpc3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IEhvcml6b250YWxEaXJlY3Rpb24sIFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuLi9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50JztcblxuaW1wb3J0IHsgT3BlblN0YXRlLCBWZXJ0aWNhbERpcmVjdGlvbiB9IGZyb20gJy4vZHJvcGRvd24udHlwZXMnO1xuaW1wb3J0IHsgS2V5Ym9hcmRIYW5kbGVyU2VydmljZSB9IGZyb20gJy4va2V5Ym9hcmQtaGFuZGxlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERyb3Bkb3duQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHN0YXRpYyByZWFkb25seSBPUEVOX0RFTEFZX0lOX01TID0gMTAwO1xuICBwcml2YXRlIHN0YXRlID0gT3BlblN0YXRlLmNsb3NlZDtcbiAgcHJpdmF0ZSBob3Jpem9udGFsRGlyZWN0aW9uOiBIb3Jpem9udGFsRGlyZWN0aW9uIHwgYCR7SG9yaXpvbnRhbERpcmVjdGlvbn1gID1cbiAgICBIb3Jpem9udGFsRGlyZWN0aW9uLnJpZ2h0O1xuICBwcml2YXRlIHZlcnRpY2FsRGlyZWN0aW9uOiBWZXJ0aWNhbERpcmVjdGlvbiB8IGAke1ZlcnRpY2FsRGlyZWN0aW9ufWAgPSBWZXJ0aWNhbERpcmVjdGlvbi5kb3duO1xuXG4gIHByaXZhdGUgX2l0ZW1zOiBzdHJpbmdbXSB8IGFueVtdID0gW107XG4gIGdldCBpdGVtcygpOiBzdHJpbmdbXSB8IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaXRlbXModmFsdWU6IHN0cmluZ1tdIHwgYW55W10pIHtcbiAgICB0aGlzLl9pdGVtcyA9IHZhbHVlO1xuICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5pdGVtc1t0aGlzLnNlbGVjdGVkSW5kZXhdIHx8IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3RlZEluZGV4OiBudW1iZXIgPSAtMTtcbiAgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZEluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleCAhPSB2YWx1ZSkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IHZhbHVlO1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLml0ZW1zW3RoaXMuc2VsZWN0ZWRJbmRleF0gfHwgbnVsbDtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBpdGVtVGV4dFByb3BlcnR5ID0gJ3RleHQnO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJ1BsZWFzZSBzZWxlY3Q6JztcblxuICBASW5wdXQoKSBzZXQgcG9wb3V0KGRpcmVjdGlvbjogSG9yaXpvbnRhbERpcmVjdGlvbiB8IGAke0hvcml6b250YWxEaXJlY3Rpb259YCkge1xuICAgIHRoaXMuaG9yaXpvbnRhbERpcmVjdGlvbiA9IGRpcmVjdGlvbiB8fCBIb3Jpem9udGFsRGlyZWN0aW9uLnJpZ2h0O1xuICB9XG5cbiAgZ2V0IHBvcG91dCgpIHtcbiAgICByZXR1cm4gdGhpcy5ob3Jpem9udGFsRGlyZWN0aW9uO1xuICB9XG5cbiAgQElucHV0KClcbiAgYXR0ZW50aW9uTGV2ZWw6ICcxJyB8ICcyJyB8ICczJyB8ICc0JyA9ICczJztcbiAgcmVhZG9ubHkgYXR0ZW50aW9uTGV2ZWxPcGVuID0gJzInO1xuXG4gIEBJbnB1dCgpXG4gIGV4cGFuZD86ICdibG9jayc7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGlzYWJsZWQnKVxuICBnZXQgX2lzRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZXJyb3InKVxuICBASW5wdXQoKVxuICBoYXNFcnJvcjogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBzaXplOiAnc20nIHwgJ21kJyA9ICdtZCc7XG5cbiAgQElucHV0KClcbiAgdGFiaW5kZXggPSAwO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2l0aC1wb3BvdmVyJylcbiAgQElucHV0KClcbiAgdXNlUG9wb3ZlciA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIGdldCBfdGFiaW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgPyAtMSA6IHRoaXMudGFiaW5kZXg7XG4gIH1cblxuICAvLyBQcmV2ZW50IElvbmljIGJsdXIgb24gc2Nyb2xsXG4gIEBIb3N0QmluZGluZygnYXR0ci5uby1ibHVyJylcbiAgZ2V0IF9ub0JsdXJPblNjcm9sbCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYW4gaXRlbSBpcyBzZWxlY3RlZCAodGFwIG9uIG1vYmlsZSwgY2xpY2sva2V5cHJlc3Mgb24gd2ViKVxuICAgKi9cbiAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZyB8IGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IGFueT4oKTtcblxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nIHwgYW55ID0gbnVsbDtcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFRleHRGcm9tSXRlbSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZXhwYW5kJylcbiAgZ2V0IF9pc0Jsb2NrTGV2ZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kID09PSAnYmxvY2snO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICBfcm9sZSA9ICdsaXN0Ym94JztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLW9wZW5pbmcnKVxuICBnZXQgX2lzT3BlbmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gT3BlblN0YXRlLm9wZW5pbmc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLW9wZW4nKVxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09PSBPcGVuU3RhdGUub3BlbjtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucG9wb3V0LWxlZnQnKVxuICBnZXQgX3BvcG91dExlZnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaG9yaXpvbnRhbERpcmVjdGlvbiA9PT0gSG9yaXpvbnRhbERpcmVjdGlvbi5sZWZ0O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wb3BvdXQtdXAnKVxuICBnZXQgX3BvcG91dFVwKCkge1xuICAgIHJldHVybiB0aGlzLnZlcnRpY2FsRGlyZWN0aW9uID09PSBWZXJ0aWNhbERpcmVjdGlvbi51cDtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoTGlzdEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgQENvbnRlbnRDaGlsZHJlbihMaXN0SXRlbVRlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgc2xvdHRlZEl0ZW1zOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuICBAVmlld0NoaWxkKENhcmRDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBjYXJkRWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoUG9wb3ZlckNvbXBvbmVudClcbiAgcG9wb3Zlcj86IFBvcG92ZXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoQnV0dG9uQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBidXR0b25FbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZHJlbihJdGVtQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAga2lyYnlJdGVtc0RlZmF1bHQ6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG5cbiAgX2tpcmJ5SXRlbXNTbG90dGVkOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuICBAQ29udGVudENoaWxkcmVuKEl0ZW1Db21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBzZXQga2lyYnlJdGVtc1Nsb3R0ZWQoa2lyYnlJdGVtczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+Pikge1xuICAgIGNvbnN0IGhhc1Nsb3R0ZWRJdGVtcyA9IHRoaXMuaXRlbUNsaWNrVW5saXN0ZW4/Lmxlbmd0aCA+IDA7XG4gICAgaWYgKGhhc1Nsb3R0ZWRJdGVtcykge1xuICAgICAgdGhpcy51bmxpc3RlbkFsbFNsb3R0ZWRJdGVtcygpO1xuICAgIH1cblxuICAgIC8vIFNldHVwIGEgY2xpY2sgbGlzdGVuZXIgZm9yIGVhY2ggbmV3IHNsb3R0ZWQgaXRlbXNcbiAgICBraXJieUl0ZW1zLmZvckVhY2goKGtpcmJ5SXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGtpcmJ5SXRlbS5uYXRpdmVFbGVtZW50LCAncm9sZScsICdvcHRpb24nKTtcbiAgICAgIGNvbnN0IHVubGlzdGVuID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oa2lyYnlJdGVtLm5hdGl2ZUVsZW1lbnQsICdjbGljaycsICgpID0+IHtcbiAgICAgICAgdGhpcy5vbkl0ZW1TZWxlY3QoaW5kZXgpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaXRlbUNsaWNrVW5saXN0ZW4ucHVzaCh1bmxpc3Rlbik7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9raXJieUl0ZW1zU2xvdHRlZCA9IGtpcmJ5SXRlbXM7XG4gIH1cblxuICBnZXQga2lyYnlJdGVtc1Nsb3R0ZWQoKTogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2tpcmJ5SXRlbXNTbG90dGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBpdGVtQ2xpY2tVbmxpc3RlbjogKCgpID0+IHZvaWQpW10gPSBbXTtcbiAgcHJpdmF0ZSBpbnRlcnNlY3Rpb25PYnNlcnZlclJlZjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG4gIHByaXZhdGUgc2hvd0Ryb3Bkb3duVGltZW91dElkOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGtleWJvYXJkSGFuZGxlclNlcnZpY2U6IEtleWJvYXJkSGFuZGxlclNlcnZpY2VcbiAgKSB7fVxuXG4gIG9uVG9nZ2xlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy50b2dnbGUoKTtcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzT3BlbiA/IHRoaXMuY2xvc2UoKSA6IHRoaXMub3BlbigpO1xuICB9XG5cbiAgb25CdXR0b25Nb3VzZUV2ZW50KGV2ZW50OiBFdmVudCkge1xuICAgIC8vIFByZXZlbnQgYnV0dG9uIGZvY3VzO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICAvKiBVdGlsaXR5IHRoYXQgbWFrZXMgaXQgZWFzaWVyIHRvIHNldCBzdHlsZXMgb24gY2FyZCBlbGVtZW50IFxuICB3aGVuIHVzaW5nIHBvcG92ZXIqL1xuICBwcml2YXRlIHNldFBvcG92ZXJDYXJkU3R5bGUoc3R5bGU6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy51c2VQb3BvdmVyKSByZXR1cm47XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgdGhpcy5jYXJkRWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgc3R5bGUsXG4gICAgICB2YWx1ZSxcbiAgICAgIFJlbmRlcmVyU3R5bGVGbGFnczIuRGFzaENhc2VcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLnVzZVBvcG92ZXIgJiYgdGhpcy5leHBhbmQgPT09ICdibG9jaycpIHtcbiAgICAgIGNvbnN0IHsgd2lkdGggfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy5zZXRQb3BvdmVyQ2FyZFN0eWxlKCctLWtpcmJ5LWNhcmQtd2lkdGgnLCBgJHt3aWR0aH1weGApO1xuICAgICAgdGhpcy5zZXRQb3BvdmVyQ2FyZFN0eWxlKCdtYXgtd2lkdGgnLCAnaW5pdGlhbCcpO1xuICAgICAgdGhpcy5zZXRQb3BvdmVyQ2FyZFN0eWxlKCdtaW4td2lkdGgnLCAnaW5pdGlhbCcpO1xuICAgIH1cbiAgICB0aGlzLmluaXRpYWxpemVBbGlnbm1lbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUFsaWdubWVudCgpIHtcbiAgICBpZiAodGhpcy51c2VQb3BvdmVyKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyUmVmKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICByb290TWFyZ2luOiAnMHB4JyxcbiAgICAgIH07XG4gICAgICBjb25zdCBjYWxsYmFjazogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayA9IChlbnRyaWVzKSA9PiB7XG4gICAgICAgIC8vIE9ubHkgYXBwbHkgYWxpZ25tZW50IHdoZW4gb3BlbmluZzpcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgIT09IE9wZW5TdGF0ZS5vcGVuaW5nKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2FuY2VsIGFueSBwZW5kaW5nIHRpbWVyIHRvIHNob3cgZHJvcGRvd246XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNob3dEcm9wZG93blRpbWVvdXRJZCk7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LndpZHRoID4gMDtcbiAgICAgICAgaWYgKGlzVmlzaWJsZSAmJiBlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA8IDEpIHtcbiAgICAgICAgICB0aGlzLnNldEhvcml6b250YWxEaXJlY3Rpb24oZW50cnkpO1xuICAgICAgICAgIHRoaXMuc2V0VmVydGljYWxEaXJlY3Rpb24oZW50cnkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfTtcbiAgICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXJSZWYgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoY2FsbGJhY2ssIG9wdGlvbnMpO1xuICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlclJlZi5vYnNlcnZlKHRoaXMuY2FyZEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRIb3Jpem9udGFsRGlyZWN0aW9uKGVudHJ5OiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KSB7XG4gICAgLy8gSWYgcG9wb3V0IGRpcmVjdGlvbiBpcyBzZXQgdG8gcmlnaHQsIGFuZCB0aGUgZW50cnkgaXMgY3V0IG9mZiB0byB0aGUgcmlnaHQgYnkgJHtlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QucmlnaHQgLSBlbnRyeS5pbnRlcnNlY3Rpb25SZWN0LnJpZ2h0fXB4XG4gICAgLy8gaXQgaXMgc2V0IHRvIHBvcG91dCBsZWZ0IGluc3RlYWQsIGFuZCB2aWNlIHZlcnNhIGZvciBwb3BvdXQgZGlyZWN0aW9uIGxlZnRcbiAgICBpZiAodGhpcy5ob3Jpem9udGFsRGlyZWN0aW9uID09PSBIb3Jpem9udGFsRGlyZWN0aW9uLnJpZ2h0KSB7XG4gICAgICBpZiAoZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LnJpZ2h0ID4gZW50cnkucm9vdEJvdW5kcy5yaWdodCkge1xuICAgICAgICB0aGlzLmhvcml6b250YWxEaXJlY3Rpb24gPSBIb3Jpem9udGFsRGlyZWN0aW9uLmxlZnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QubGVmdCA8IGVudHJ5LnJvb3RCb3VuZHMubGVmdCkge1xuICAgICAgICB0aGlzLmhvcml6b250YWxEaXJlY3Rpb24gPSBIb3Jpem9udGFsRGlyZWN0aW9uLnJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VmVydGljYWxEaXJlY3Rpb24oZW50cnk6IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnkpIHtcbiAgICBpZiAoZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LnRvcCA8IDApIHtcbiAgICAgIC8vIGVudHJ5IGlzIGN1dCBvZmYgYXQgdGhlIHRvcCBieSAke2VudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC50b3B9cHhcbiAgICAgIC8vIG9wZW4gZG93bndhcmRzOlxuICAgICAgdGhpcy52ZXJ0aWNhbERpcmVjdGlvbiA9IFZlcnRpY2FsRGlyZWN0aW9uLmRvd247XG4gICAgfVxuICAgIGlmIChlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QuYm90dG9tID4gZW50cnkucm9vdEJvdW5kcy5ib3R0b20pIHtcbiAgICAgIC8vIGVudHJ5IGlzIGN1dCBvZmYgYXQgdGhlIGJvdHRvbSBieSAke2VudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC5ib3R0b20gLSBlbnRyeS5pbnRlcnNlY3Rpb25SZWN0LmJvdHRvbX1weFxuICAgICAgY29uc3QgY29udGFpbmVyT2Zmc2V0VG9wID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuICAgICAgY29uc3QgU1BBQ0lORyA9IDU7IC8vVE9ETzogR2V0IGZyb20gU0NTU1xuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNhcmQgY2FuIGZpdCBvbiB0b3Agb2YgYnV0dG9uOlxuICAgICAgaWYgKGNvbnRhaW5lck9mZnNldFRvcCA+IGVudHJ5LnRhcmdldC5jbGllbnRIZWlnaHQgKyBTUEFDSU5HKSB7XG4gICAgICAgIC8vIG9wZW4gdXB3YXJkczpcbiAgICAgICAgdGhpcy52ZXJ0aWNhbERpcmVjdGlvbiA9IFZlcnRpY2FsRGlyZWN0aW9uLnVwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5zdGF0ZSA9IE9wZW5TdGF0ZS5vcGVuaW5nO1xuICAgICAgLy8gZW5zdXJlcyB0aGF0IHRoZSBkcm9wZG93biBpcyBvcGVuZWQgaW4gY2FzZSB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBpc24ndCBpbnZva2VkXG4gICAgICB0aGlzLnNob3dEcm9wZG93blRpbWVvdXRJZCA9IHNldFRpbWVvdXQoXG4gICAgICAgICgpID0+IHRoaXMuc2hvd0Ryb3Bkb3duKCksXG4gICAgICAgIERyb3Bkb3duQ29tcG9uZW50Lk9QRU5fREVMQVlfSU5fTVNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG93RHJvcGRvd24oKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09IE9wZW5TdGF0ZS5vcGVuaW5nKSB7XG4gICAgICB0aGlzLnN0YXRlID0gT3BlblN0YXRlLm9wZW47XG4gICAgICB0aGlzLnBvcG92ZXI/LnNob3coKTtcbiAgICAgIHRoaXMuc2Nyb2xsSXRlbUludG9WaWV3KHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5zdGF0ZSA9IE9wZW5TdGF0ZS5jbG9zZWQ7XG4gICAgICAvLyBSZXNldCB2ZXJ0aWNhbCBkaXJlY3Rpb24gdG8gZGVmYXVsdFxuICAgICAgdGhpcy52ZXJ0aWNhbERpcmVjdGlvbiA9IFZlcnRpY2FsRGlyZWN0aW9uLmRvd247XG4gICAgICB0aGlzLnBvcG92ZXI/LmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBvbkl0ZW1TZWxlY3QoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0SXRlbShpbmRleCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgX29uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzZWxlY3QncyB2YWx1ZS4gUGFydCBvZiB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAqIHJlcXVpcmVkIHRvIGludGVncmF0ZSB3aXRoIEFuZ3VsYXIncyBjb3JlIGZvcm1zIEFQSS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIE5ldyB2YWx1ZSB0byBiZSB3cml0dGVuIHRvIHRoZSBtb2RlbC5cbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3NlbGVjdEl0ZW1CeVZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgd2hlbiB0aGUgc2VsZWN0J3MgdmFsdWVcbiAgICogY2hhbmdlcyBmcm9tIHVzZXIgaW5wdXQuIFBhcnQgb2YgdGhlIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICAgKiByZXF1aXJlZCB0byBpbnRlZ3JhdGUgd2l0aCBBbmd1bGFyJ3MgY29yZSBmb3JtcyBBUEkuXG4gICAqXG4gICAqIEBwYXJhbSBmbiBDYWxsYmFjayB0byBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBpbnZva2VkIHdoZW4gdGhlIHNlbGVjdCBpcyBibHVycmVkXG4gICAqIGJ5IHRoZSB1c2VyLiBQYXJ0IG9mIHRoZSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2UgcmVxdWlyZWRcbiAgICogdG8gaW50ZWdyYXRlIHdpdGggQW5ndWxhcidzIGNvcmUgZm9ybXMgQVBJLlxuICAgKlxuICAgKiBAcGFyYW0gZm4gQ2FsbGJhY2sgdG8gYmUgdHJpZ2dlcmVkIHdoZW4gdGhlIGNvbXBvbmVudCBoYXMgYmVlbiB0b3VjaGVkLlxuICAgKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGVzIHRoZSBzZWxlY3QuIFBhcnQgb2YgdGhlIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZSByZXF1aXJlZFxuICAgKiB0byBpbnRlZ3JhdGUgd2l0aCBBbmd1bGFyJ3MgY29yZSBmb3JtcyBBUEkuXG4gICAqXG4gICAqIEBwYXJhbSBpc0Rpc2FibGVkIFNldHMgd2hldGhlciB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RJdGVtKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoaW5kZXggIT0gdGhpcy5zZWxlY3RlZEluZGV4KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBpbmRleDtcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgIHRoaXMuc2Nyb2xsSXRlbUludG9WaWV3KGluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3RJdGVtQnlWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5pdGVtcy5pbmRleE9mKHZhbHVlKTtcbiAgfVxuXG4gIGdldFRleHRGcm9tSXRlbShpdGVtOiBzdHJpbmcgfCBhbnkpIHtcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnID8gaXRlbSA6IGl0ZW1bdGhpcy5pdGVtVGV4dFByb3BlcnR5XTtcbiAgfVxuXG4gIHNjcm9sbEl0ZW1JbnRvVmlldyhpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qga2lyYnlJdGVtcyA9XG4gICAgICB0aGlzLmtpcmJ5SXRlbXNTbG90dGVkICYmIHRoaXMua2lyYnlJdGVtc1Nsb3R0ZWQubGVuZ3RoXG4gICAgICAgID8gdGhpcy5raXJieUl0ZW1zU2xvdHRlZFxuICAgICAgICA6IHRoaXMua2lyYnlJdGVtc0RlZmF1bHQ7XG4gICAgaWYgKGtpcmJ5SXRlbXMgJiYga2lyYnlJdGVtcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkS2lyYnlJdGVtID0ga2lyYnlJdGVtcy50b0FycmF5KClbaW5kZXhdO1xuICAgICAgaWYgKHNlbGVjdGVkS2lyYnlJdGVtICYmIHNlbGVjdGVkS2lyYnlJdGVtLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaXRlbUVsZW1lbnQgPSBzZWxlY3RlZEtpcmJ5SXRlbS5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBzY3JvbGxDb250YWluZXIgPSB0aGlzLmNhcmRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGl0ZW1Ub3AgPSBpdGVtRWxlbWVudC5vZmZzZXRUb3A7XG4gICAgICAgIGNvbnN0IGl0ZW1Cb3R0b20gPSBpdGVtRWxlbWVudC5vZmZzZXRUb3AgKyBpdGVtRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclZpc2libGVUb3AgPSBzY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wO1xuICAgICAgICBjb25zdCBjb250YWluZXJWaXNpYmxlQm90dG9tID0gc2Nyb2xsQ29udGFpbmVyLmNsaWVudEhlaWdodCArIHNjcm9sbENvbnRhaW5lci5zY3JvbGxUb3A7XG4gICAgICAgIGlmIChpdGVtVG9wIDwgY29udGFpbmVyVmlzaWJsZVRvcCkge1xuICAgICAgICAgIHNjcm9sbENvbnRhaW5lci5zY3JvbGxUb3AgPSBpdGVtVG9wO1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW1Cb3R0b20gPiBjb250YWluZXJWaXNpYmxlQm90dG9tKSB7XG4gICAgICAgICAgc2Nyb2xsQ29udGFpbmVyLnNjcm9sbFRvcCA9IGl0ZW1Cb3R0b20gLSBzY3JvbGxDb250YWluZXIuY2xpZW50SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi50YWInLCBbJyRldmVudCddKVxuICBfb25UYWIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgX29uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gIF9vbkZvY3VzKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgfVxuICB9XG5cbiAgX29uUG9wb3ZlcldpbGxIaWRlKCkge1xuICAgIHRoaXMuc3RhdGUgPSBPcGVuU3RhdGUuY2xvc2VkO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJylcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2NhcGUnKVxuICBfb25FbnRlck9yRXNjYXBlKCkge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgfVxuXG4gIF9vblBvcG92ZXJDbGljayhldmVudDogUG9pbnRlckV2ZW50KSB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXG4gIF9vbkJsdXIoZXZlbnQ/OiBGb2N1c0V2ZW50KSB7XG4gICAgaWYgKHRoaXMudXNlUG9wb3ZlcikgcmV0dXJuO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uc3BhY2UnLCBbJyRldmVudCddKVxuICBfb25TcGFjZShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbnRlcicsIFsnJGV2ZW50J10pXG4gIF9vbkVudGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnRvZ2dsZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd3VwJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2Rvd24nLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93bGVmdCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dyaWdodCcsIFsnJGV2ZW50J10pXG4gIF9vbkFycm93S2V5cyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgLy8gTWlycm9yIGRlZmF1bHQgSFRNTDUgc2VsZWN0IGJlaGF2aW91ciAtIHByZXZlbnQgbGVmdC9yaWdodCBhcnJvd3Mgd2hlbiBvcGVuOlxuICAgIGlmICh0aGlzLmlzT3BlbiAmJiAoZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0JyB8fCBldmVudC5rZXkgPT09ICdBcnJvd1JpZ2h0JykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV3SW5kZXggPSB0aGlzLmtleWJvYXJkSGFuZGxlclNlcnZpY2UuaGFuZGxlKGV2ZW50LCB0aGlzLml0ZW1zLCB0aGlzLnNlbGVjdGVkSW5kZXgpO1xuICAgIGlmIChuZXdJbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLnNlbGVjdEl0ZW0obmV3SW5kZXgpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmhvbWUnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVuZCcsIFsnJGV2ZW50J10pXG4gIF9vbkhvbWVFbmRLZXlzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBjb25zdCBuZXdJbmRleCA9IHRoaXMua2V5Ym9hcmRIYW5kbGVyU2VydmljZS5oYW5kbGUoZXZlbnQsIHRoaXMuaXRlbXMsIHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgaWYgKG5ld0luZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMuc2VsZWN0SXRlbShuZXdJbmRleCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgdW5saXN0ZW5BbGxTbG90dGVkSXRlbXMoKSB7XG4gICAgbGV0IHVubGlzdGVuSXRlbTogKCkgPT4gdm9pZDtcbiAgICB3aGlsZSAoKHVubGlzdGVuSXRlbSA9IHRoaXMuaXRlbUNsaWNrVW5saXN0ZW4ucG9wKCkpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHVubGlzdGVuSXRlbSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5saXN0ZW5BbGxTbG90dGVkSXRlbXMoKTtcbiAgICBpZiAodGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlclJlZikge1xuICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlclJlZi5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8YnV0dG9uXG4gIGtpcmJ5LWJ1dHRvblxuICBbc2l6ZV09XCJzaXplXCJcbiAgW2F0dGVudGlvbkxldmVsXT1cImlzT3BlbiA/IGF0dGVudGlvbkxldmVsT3BlbiA6IGF0dGVudGlvbkxldmVsXCJcbiAgdGFiaW5kZXg9XCItMVwiXG4gIChjbGljayk9XCJvblRvZ2dsZSgkZXZlbnQpXCJcbiAgKG1vdXNlZG93bik9XCJvbkJ1dHRvbk1vdXNlRXZlbnQoJGV2ZW50KVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIHR5cGU9XCJidXR0b25cIlxuPlxuICA8c3BhbiBjbGFzcz1cInRleHRcIj57eyBzZWxlY3RlZFRleHQgfHwgcGxhY2Vob2xkZXIgfX08L3NwYW4+XG4gIDxraXJieS1pY29uIFtuYW1lXT1cImlzT3BlbiA/ICdhcnJvdy11cCcgOiAnYXJyb3ctZG93bidcIj48L2tpcmJ5LWljb24+XG48L2J1dHRvbj5cblxuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVzZVBvcG92ZXIgPyBwb3BvdmVyVGVtcGxhdGUgOiBpdGVtV3JhcHBlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjcG9wb3ZlclRlbXBsYXRlPlxuICA8a2lyYnktcG9wb3ZlclxuICAgIFt0YXJnZXRdPVwiYnV0dG9uRWxlbWVudFwiXG4gICAgW3BvcG91dF09XCJwb3BvdXRcIlxuICAgIChjbGljayk9XCJfb25Qb3BvdmVyQ2xpY2soJGV2ZW50KVwiXG4gICAgKHdpbGxIaWRlKT1cIl9vblBvcG92ZXJXaWxsSGlkZSgpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtV3JhcHBlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwva2lyYnktcG9wb3Zlcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaXRlbVdyYXBwZXJUZW1wbGF0ZT5cbiAgPGtpcmJ5LWNhcmQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIGl0ZW1UZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbVRlbXBsYXRlO1xuICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBzZWxlY3RlZDogaSA9PT0gc2VsZWN0ZWRJbmRleCwgaW5kZXg6IGkgfVxuICAgICAgICBcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2tpcmJ5LWNhcmQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRJdGVtVGVtcGxhdGUgbGV0LWl0ZW0gbGV0LXNlbGVjdGVkPVwic2VsZWN0ZWRcIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICA8a2lyYnktaXRlbSBbc2VsZWN0YWJsZV09XCJ0cnVlXCIgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCIgKGNsaWNrKT1cIm9uSXRlbVNlbGVjdChpbmRleClcIiByb2xlPVwib3B0aW9uXCI+XG4gICAgPCEtLSBUYWJpbmRleCBmaXhlcyBpc3N1ZSB3aXRoIHBvcG92ZXIgZHJvcGRvd24gbm90IHdvcmtpbmcgaW4gc2FmYXJpIC0tPlxuICAgIDxoMyB0YWJpbmRleD1cIjBcIj57eyBnZXRUZXh0RnJvbUl0ZW0oaXRlbSkgfX08L2gzPlxuICAgIDxraXJieS1pY29uICpuZ0lmPVwic2VsZWN0ZWRcIiBuYW1lPVwiY2hlY2ttYXJrLXNlbGVjdGVkXCIgc2xvdD1cImVuZFwiPjwva2lyYnktaWNvbj5cbiAgPC9raXJieS1pdGVtPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -43,10 +43,10 @@ export class FabSheetComponent {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
/** @nocollapse */ FabSheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: FabSheetComponent, deps: [{ token: i0.Renderer2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
|
|
46
|
-
/** @nocollapse */ FabSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: FabSheetComponent, selector: "kirby-fab-sheet", inputs: { disabled: "disabled", horizontalAlignment: "horizontalAlignment" }, host: { properties: { "class.is-open": "this.isFabSheetOpen", "class.backdrop-visible": "this.isBackdropVisible" } }, queries: [{ propertyName: "actionSheet", first: true, predicate: ActionSheetComponent, descendants: true }], viewQueries: [{ propertyName: "ionFabButton", first: true, predicate: IonFabButton, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-backdrop\n *ngIf=\"actionSheet && isFabSheetOpen\"\n (ionBackdropTap)=\"hideActions(fab)\"\n (click)=\"hideActions(fab)\"\n></ion-backdrop>\n<ion-fab #fab (click)=\"disabled || onFabClick(fab)\">\n <ion-fab-button
|
|
46
|
+
/** @nocollapse */ FabSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: FabSheetComponent, selector: "kirby-fab-sheet", inputs: { disabled: "disabled", horizontalAlignment: "horizontalAlignment" }, host: { properties: { "class.is-open": "this.isFabSheetOpen", "class.backdrop-visible": "this.isBackdropVisible" } }, queries: [{ propertyName: "actionSheet", first: true, predicate: ActionSheetComponent, descendants: true }], viewQueries: [{ propertyName: "ionFabButton", first: true, predicate: IonFabButton, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-backdrop\n *ngIf=\"actionSheet && isFabSheetOpen\"\n (ionBackdropTap)=\"hideActions(fab)\"\n (click)=\"hideActions(fab)\"\n></ion-backdrop>\n<ion-fab #fab (click)=\"disabled || onFabClick(fab)\">\n <ion-fab-button [disabled]=\"disabled\" [attr.disabled]=\"disabled ? true : null\" tabindex=\"-1\">\n <ng-content select=\"kirby-icon\"></ng-content>\n </ion-fab-button>\n <ion-fab-list *ngIf=\"actionSheet\" side=\"top\" class=\"{{ horizontalAlignment }}\">\n <ng-content select=\"kirby-action-sheet\"></ng-content>\n </ion-fab-list>\n</ion-fab>\n", styles: [":host{--kirby-action-sheet-margin-horizontal: 16px}ion-fab-button{--box-shadow: 0 20px 30px -15px rgba(28, 28, 28, .3), 0 0 5px 0 rgba(28, 28, 28, .08);width:64px;height:64px;-webkit-user-select:none;user-select:none;outline:none}@media (hover: hover){ion-fab-button:focus{--border-width: 1px;--border-style: solid;--border-color: rgb(77, 144, 254)}}ion-fab-button[disabled]{--background: var(--kirby-semi-light);--box-shadow: none;opacity:1}ion-fab{position:fixed;bottom:16px;right:16px}:host-context(.fixed-content) ion-fab{position:absolute}ion-backdrop{opacity:0;transition:opacity .75s;position:fixed;z-index:999}:host(.backdrop-visible) ion-backdrop{opacity:.4}@media (min-width: 721px){:host(.backdrop-visible) ion-backdrop{opacity:0}}ion-fab-list{margin-top:76px;margin-bottom:76px;right:0}\n"], components: [{ type: i1.IonBackdrop, selector: "ion-backdrop", inputs: ["stopPropagation", "tappable", "visible"] }, { type: i1.IonFab, selector: "ion-fab", inputs: ["activated", "edge", "horizontal", "vertical"] }, { type: i1.IonFabButton, selector: "ion-fab-button", inputs: ["activated", "closeIcon", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "show", "size", "target", "translucent", "type"] }, { type: i1.IonFabList, selector: "ion-fab-list", inputs: ["activated", "side"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
47
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: FabSheetComponent, decorators: [{
|
|
48
48
|
type: Component,
|
|
49
|
-
args: [{ selector: 'kirby-fab-sheet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-backdrop\n *ngIf=\"actionSheet && isFabSheetOpen\"\n (ionBackdropTap)=\"hideActions(fab)\"\n (click)=\"hideActions(fab)\"\n></ion-backdrop>\n<ion-fab #fab (click)=\"disabled || onFabClick(fab)\">\n <ion-fab-button
|
|
49
|
+
args: [{ selector: 'kirby-fab-sheet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-backdrop\n *ngIf=\"actionSheet && isFabSheetOpen\"\n (ionBackdropTap)=\"hideActions(fab)\"\n (click)=\"hideActions(fab)\"\n></ion-backdrop>\n<ion-fab #fab (click)=\"disabled || onFabClick(fab)\">\n <ion-fab-button [disabled]=\"disabled\" [attr.disabled]=\"disabled ? true : null\" tabindex=\"-1\">\n <ng-content select=\"kirby-icon\"></ng-content>\n </ion-fab-button>\n <ion-fab-list *ngIf=\"actionSheet\" side=\"top\" class=\"{{ horizontalAlignment }}\">\n <ng-content select=\"kirby-action-sheet\"></ng-content>\n </ion-fab-list>\n</ion-fab>\n", styles: [":host{--kirby-action-sheet-margin-horizontal: 16px}ion-fab-button{--box-shadow: 0 20px 30px -15px rgba(28, 28, 28, .3), 0 0 5px 0 rgba(28, 28, 28, .08);width:64px;height:64px;-webkit-user-select:none;user-select:none;outline:none}@media (hover: hover){ion-fab-button:focus{--border-width: 1px;--border-style: solid;--border-color: rgb(77, 144, 254)}}ion-fab-button[disabled]{--background: var(--kirby-semi-light);--box-shadow: none;opacity:1}ion-fab{position:fixed;bottom:16px;right:16px}:host-context(.fixed-content) ion-fab{position:absolute}ion-backdrop{opacity:0;transition:opacity .75s;position:fixed;z-index:999}:host(.backdrop-visible) ion-backdrop{opacity:.4}@media (min-width: 721px){:host(.backdrop-visible) ion-backdrop{opacity:0}}ion-fab-list{margin-top:76px;margin-bottom:76px;right:0}\n"] }]
|
|
50
50
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: undefined, decorators: [{
|
|
51
51
|
type: Inject,
|
|
52
52
|
args: [DOCUMENT]
|
|
@@ -67,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
|
|
|
67
67
|
type: ViewChild,
|
|
68
68
|
args: [IonFabButton, { static: true, read: ElementRef }]
|
|
69
69
|
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXNoZWV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mYWItc2hlZXQvZmFiLXNoZWV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mYWItc2hlZXQvZmFiLXNoZWV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFVLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7O0FBUXBGLE1BQU0sT0FBTyxpQkFBaUI7SUFxQjVCLFlBQW9CLFFBQW1CLEVBQTRCLFFBQWE7UUFBNUQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUE0QixhQUFRLEdBQVIsUUFBUSxDQUFLO1FBcEJ2RSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLHdCQUFtQixHQUFnQyxPQUFPLENBQUM7UUFFNUQsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFNakMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO0lBV3VDLENBQUM7SUFoQnBGLElBQ0ksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUdELElBQ0ksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFTRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsR0FBVztRQUNyQixHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ3RDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ2hFO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ25FO1FBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7O2lJQTVDVSxpQkFBaUIsMkNBcUJxQixRQUFRO3FIQXJCOUMsaUJBQWlCLG9TQWdCZCxvQkFBb0IsOEZBRXZCLFlBQVksMkJBQXdCLFVBQVUsMkNDekMzRCxxakJBYUE7MkZEVWEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNOzswQkF1QkwsTUFBTTsyQkFBQyxRQUFROzRDQXBCaEQsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBSUYsY0FBYztzQkFEakIsV0FBVzt1QkFBQyxlQUFlO2dCQU94QixpQkFBaUI7c0JBRHBCLFdBQVc7dUJBQUMsd0JBQXdCO2dCQUtrQixXQUFXO3NCQUFqRSxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHckQsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkZhYiwgSW9uRmFiQnV0dG9uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuXG5pbXBvcnQgeyBBY3Rpb25TaGVldENvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsL2FjdGlvbi1zaGVldC9hY3Rpb24tc2hlZXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktZmFiLXNoZWV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhYi1zaGVldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZhYi1zaGVldC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRmFiU2hlZXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaG9yaXpvbnRhbEFsaWdubWVudDogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ3JpZ2h0JztcblxuICBwcml2YXRlIF9pc0ZhYlNoZWV0T3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLW9wZW4nKVxuICBnZXQgaXNGYWJTaGVldE9wZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzRmFiU2hlZXRPcGVuO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNCYWNrZHJvcFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5iYWNrZHJvcC12aXNpYmxlJylcbiAgZ2V0IGlzQmFja2Ryb3BWaXNpYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl9pc0JhY2tkcm9wVmlzaWJsZTtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoQWN0aW9uU2hlZXRDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBhY3Rpb25TaGVldDogQWN0aW9uU2hlZXRDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChJb25GYWJCdXR0b24sIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGlvbkZhYkJ1dHRvbjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnkpIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjdGlvblNoZWV0KSB7XG4gICAgICB0aGlzLmFjdGlvblNoZWV0LmhpZGVDYW5jZWwgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGhpZGVBY3Rpb25zKGZhYjogSW9uRmFiKSB7XG4gICAgZmFiLmNsb3NlKCk7XG4gICAgdGhpcy5faXNGYWJTaGVldE9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLl9pc0JhY2tkcm9wVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCAnZmFiLXNoZWV0LWFjdGl2ZScpO1xuICB9XG5cbiAgb25GYWJDbGljayhmYWI6IElvbkZhYikge1xuICAgIHRoaXMuX2lzRmFiU2hlZXRPcGVuID0gIWZhYi5hY3RpdmF0ZWQ7XG4gICAgaWYgKHRoaXMuX2lzRmFiU2hlZXRPcGVuKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2ZhYi1zaGVldC1hY3RpdmUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdmYWItc2hlZXQtYWN0aXZlJyk7XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuX2lzQmFja2Ryb3BWaXNpYmxlID0gdGhpcy5pc0ZhYlNoZWV0T3BlbikpO1xuICB9XG59XG4iLCI8aW9uLWJhY2tkcm9wXG4gICpuZ0lmPVwiYWN0aW9uU2hlZXQgJiYgaXNGYWJTaGVldE9wZW5cIlxuICAoaW9uQmFja2Ryb3BUYXApPVwiaGlkZUFjdGlvbnMoZmFiKVwiXG4gIChjbGljayk9XCJoaWRlQWN0aW9ucyhmYWIpXCJcbj48L2lvbi1iYWNrZHJvcD5cbjxpb24tZmFiICNmYWIgKGNsaWNrKT1cImRpc2FibGVkIHx8IG9uRmFiQ2xpY2soZmFiKVwiPlxuICA8aW9uLWZhYi1idXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyB0cnVlIDogbnVsbFwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJraXJieS1pY29uXCI+PC9uZy1jb250ZW50PlxuICA8L2lvbi1mYWItYnV0dG9uPlxuICA8aW9uLWZhYi1saXN0ICpuZ0lmPVwiYWN0aW9uU2hlZXRcIiBzaWRlPVwidG9wXCIgY2xhc3M9XCJ7eyBob3Jpem9udGFsQWxpZ25tZW50IH19XCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2lyYnktYWN0aW9uLXNoZWV0XCI+PC9uZy1jb250ZW50PlxuICA8L2lvbi1mYWItbGlzdD5cbjwvaW9uLWZhYj5cbiJdfQ==
|
|
@@ -36,10 +36,10 @@ InputComponent.typeToInputmodeMap = {
|
|
|
36
36
|
search: 'search',
|
|
37
37
|
};
|
|
38
38
|
/** @nocollapse */ InputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
-
/** @nocollapse */ InputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: InputComponent, selector: "input[kirby-input]", inputs: { type: "type", size: "size", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", value: "value", maxlength: "maxlength", inputmode: "inputmode" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class": "this.size", "class.borderless": "this.borderless", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.value": "this.value", "attr.maxlength": "this.maxlength", "attr.inputmode": "this.inputmode" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-white);color:var(--kirby-white-contrast);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none
|
|
39
|
+
/** @nocollapse */ InputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: InputComponent, selector: "input[kirby-input]", inputs: { type: "type", size: "size", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", value: "value", maxlength: "maxlength", inputmode: "inputmode" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class": "this.size", "class.borderless": "this.borderless", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.value": "this.value", "attr.maxlength": "this.maxlength", "attr.inputmode": "this.inputmode" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-white);color:var(--kirby-white-contrast);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:0 5px 10px -10px #1c1c1c4d,0 0 5px #1c1c1c14;padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-text-color-semi-dark)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
40
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: InputComponent, decorators: [{
|
|
41
41
|
type: Component,
|
|
42
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'input[kirby-input]', template: '', styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-white);color:var(--kirby-white-contrast);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none
|
|
42
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'input[kirby-input]', template: '', styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-white);color:var(--kirby-white-contrast);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:0 5px 10px -10px #1c1c1c4d,0 0 5px #1c1c1c14;padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-text-color-semi-dark)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"] }]
|
|
43
43
|
}], propDecorators: { type: [{
|
|
44
44
|
type: Input
|
|
45
45
|
}], size: [{
|
|
@@ -21,10 +21,10 @@ export class TextareaComponent {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
/** @nocollapse */ TextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: TextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
/** @nocollapse */ TextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: TextareaComponent, selector: "textarea[kirby-textarea]", inputs: { value: "value", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", maxlength: "maxlength" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class.borderless": "this.borderless", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.maxlength": "this.maxlength" } }, usesOnChanges: true, ngImport: i0, template: "<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n", styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-white);color:var(--kirby-white-contrast);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none
|
|
24
|
+
/** @nocollapse */ TextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: TextareaComponent, selector: "textarea[kirby-textarea]", inputs: { value: "value", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", maxlength: "maxlength" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class.borderless": "this.borderless", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.maxlength": "this.maxlength" } }, usesOnChanges: true, ngImport: i0, template: "<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n", styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-white);color:var(--kirby-white-contrast);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:0 5px 10px -10px #1c1c1c4d,0 0 5px #1c1c1c14;padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-text-color-semi-dark)}:host{font-family:var(--kirby-font-family);resize:none}@media (min-width: 721px){:host{resize:vertical}}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
25
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: TextareaComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'textarea[kirby-textarea]', template: "<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n", styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-white);color:var(--kirby-white-contrast);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none
|
|
27
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'textarea[kirby-textarea]', template: "<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n", styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-white);color:var(--kirby-white-contrast);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:0 5px 10px -10px #1c1c1c4d,0 0 5px #1c1c1c14;padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-text-color-semi-dark)}:host{font-family:var(--kirby-font-family);resize:none}@media (min-width: 721px){:host{resize:vertical}}\n"] }]
|
|
28
28
|
}], propDecorators: { value: [{
|
|
29
29
|
type: Input
|
|
30
30
|
}], borderless: [{
|
|
@@ -62,7 +62,7 @@ export class IconComponent {
|
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
/** @nocollapse */ IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: IconComponent, deps: [{ token: i1.IconRegistryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
65
|
-
/** @nocollapse */ IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: IconComponent, selector: "kirby-icon", inputs: { size: "size", name: "name", customName: "customName" }, host: { properties: { "class.kirby-icon": "true", "class": "this.size" } }, usesOnChanges: true, ngImport: i0, template: "<ion-icon [src]=\"icon?.svg\"></ion-icon>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;font-size:var(--kirby-icon-font-size, 24px);margin-left:var(--kirby-icon-margin-left, unset);margin-right:var(--kirby-icon-margin-right, unset)}:host svg path{fill:currentcolor;stroke:currentcolor}:host(.xs){--kirby-icon-font-size: 16px}:host(.sm){--kirby-icon-font-size: 24px}:host(.md){--kirby-icon-font-size: 32px}:host(.lg){--kirby-icon-font-size: 56px}:host(.primary){color:var(--kirby-primary)}:host(.secondary){color:var(--kirby-secondary)}:host(.tertiary){color:var(--kirby-tertiary)}:host(.success){color:var(--kirby-success)}:host(.warning){color:var(--kirby-warning)}:host(.danger){color:var(--kirby-danger)}:host(.light){color:var(--kirby-light)}:host(.medium){color:var(--kirby-medium)}:host(.dark){color:var(--kirby-dark)}:host-context(kirby-item)[slot=start]{margin-inline-end:8px}:host-context(kirby-item)[slot=end]{margin-inline-start:8px}\n"], components: [{ type: i2.IonIcon, selector: "ion-icon", inputs: ["
|
|
65
|
+
/** @nocollapse */ IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: IconComponent, selector: "kirby-icon", inputs: { size: "size", name: "name", customName: "customName" }, host: { properties: { "class.kirby-icon": "true", "class": "this.size" } }, usesOnChanges: true, ngImport: i0, template: "<ion-icon [src]=\"icon?.svg\"></ion-icon>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;font-size:var(--kirby-icon-font-size, 24px);margin-left:var(--kirby-icon-margin-left, unset);margin-right:var(--kirby-icon-margin-right, unset)}:host svg path{fill:currentcolor;stroke:currentcolor}:host(.xs){--kirby-icon-font-size: 16px}:host(.sm){--kirby-icon-font-size: 24px}:host(.md){--kirby-icon-font-size: 32px}:host(.lg){--kirby-icon-font-size: 56px}:host(.primary){color:var(--kirby-primary)}:host(.secondary){color:var(--kirby-secondary)}:host(.tertiary){color:var(--kirby-tertiary)}:host(.success){color:var(--kirby-success)}:host(.warning){color:var(--kirby-warning)}:host(.danger){color:var(--kirby-danger)}:host(.light){color:var(--kirby-light)}:host(.medium){color:var(--kirby-medium)}:host(.dark){color:var(--kirby-dark)}:host-context(kirby-item)[slot=start]{margin-inline-end:8px}:host-context(kirby-item)[slot=end]{margin-inline-start:8px}\n"], components: [{ type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
66
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: IconComponent, decorators: [{
|
|
67
67
|
type: Component,
|
|
68
68
|
args: [{ selector: 'kirby-icon', host: { '[class.kirby-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-icon [src]=\"icon?.svg\"></ion-icon>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;font-size:var(--kirby-icon-font-size, 24px);margin-left:var(--kirby-icon-margin-left, unset);margin-right:var(--kirby-icon-margin-right, unset)}:host svg path{fill:currentcolor;stroke:currentcolor}:host(.xs){--kirby-icon-font-size: 16px}:host(.sm){--kirby-icon-font-size: 24px}:host(.md){--kirby-icon-font-size: 32px}:host(.lg){--kirby-icon-font-size: 56px}:host(.primary){color:var(--kirby-primary)}:host(.secondary){color:var(--kirby-secondary)}:host(.tertiary){color:var(--kirby-tertiary)}:host(.success){color:var(--kirby-success)}:host(.warning){color:var(--kirby-warning)}:host(.danger){color:var(--kirby-danger)}:host(.light){color:var(--kirby-light)}:host(.medium){color:var(--kirby-medium)}:host(.dark){color:var(--kirby-dark)}:host-context(kirby-item)[slot=start]{margin-inline-end:8px}:host-context(kirby-item)[slot=end]{margin-inline-start:8px}\n"] }]
|
|
@@ -22,7 +22,7 @@ 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) 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", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "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
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"] }]
|