@acorex/components 5.0.2 → 5.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/acorex-components.d.ts +5 -5
- package/bundles/acorex-components.umd.js +6719 -6658
- package/bundles/acorex-components.umd.js.map +1 -1
- package/esm2015/acorex-components.js +4 -4
- package/esm2015/lib/alert/alert-button.component.js +52 -52
- package/esm2015/lib/alert/alert-contnet.component.js +21 -21
- package/esm2015/lib/alert/alert-footer.component.js +27 -27
- package/esm2015/lib/alert/alert-suffix.component.js +27 -27
- package/esm2015/lib/alert/alert-title.component.js +23 -23
- package/esm2015/lib/alert/alert.component.js +131 -130
- package/esm2015/lib/alert/alert.module.js +43 -43
- package/esm2015/lib/alert/index.js +8 -8
- package/esm2015/lib/avatar/avatar.component.js +55 -55
- package/esm2015/lib/avatar/avatar.module.js +21 -21
- package/esm2015/lib/avatar/index.js +3 -3
- package/esm2015/lib/base/common.module.js +18 -18
- package/esm2015/lib/base/custom-cdk-overlay.service.js +47 -47
- package/esm2015/lib/base/drawing.class.js +11 -11
- package/esm2015/lib/base/events.class.js +53 -47
- package/esm2015/lib/base/index.js +7 -7
- package/esm2015/lib/base/mixin/base-components.class.js +83 -83
- package/esm2015/lib/base/mixin/button-mixin.class.js +129 -129
- package/esm2015/lib/base/mixin/clickable-mixin.class.js +24 -24
- package/esm2015/lib/base/mixin/constratctor.js +2 -2
- package/esm2015/lib/base/mixin/datalist-component.class.js +97 -97
- package/esm2015/lib/base/mixin/dropdown-mixin.class.js +36 -36
- package/esm2015/lib/base/mixin/index.js +3 -3
- package/esm2015/lib/base/mixin/interactive-mixin.class.js +72 -72
- package/esm2015/lib/base/mixin/loading-mixin.class.js +18 -18
- package/esm2015/lib/base/mixin/mixin.class.js +23 -23
- package/esm2015/lib/base/mixin/selection-component.class.js +158 -158
- package/esm2015/lib/base/mixin/sizable-mixin.class.js +18 -18
- package/esm2015/lib/base/mixin/textbox-mixin.class.js +38 -38
- package/esm2015/lib/base/mixin/value-mixin.class.js +190 -190
- package/esm2015/lib/base/overlay.service.js +91 -91
- package/esm2015/lib/base/responsive.directive.js +34 -34
- package/esm2015/lib/base/styles.class.js +4 -4
- package/esm2015/lib/button/button-group.component.js +131 -131
- package/esm2015/lib/button/button-item.class.js +2 -2
- package/esm2015/lib/button/button-item.component.js +81 -81
- package/esm2015/lib/button/button.component.js +51 -52
- package/esm2015/lib/button/button.module.js +37 -37
- package/esm2015/lib/button/dropdown-button.component.js +200 -200
- package/esm2015/lib/button/index.js +7 -7
- package/esm2015/lib/calendar/calendar.component.js +59 -59
- package/esm2015/lib/calendar/calendar.module.js +24 -24
- package/esm2015/lib/calendar/index.js +3 -3
- package/esm2015/lib/carousel/carousel-arrows.component.js +53 -53
- package/esm2015/lib/carousel/carousel-item.component.js +21 -21
- package/esm2015/lib/carousel/carousel-pager.component.js +74 -74
- package/esm2015/lib/carousel/carousel-splidejs.class.js +82 -82
- package/esm2015/lib/carousel/carousel.class.js +10 -10
- package/esm2015/lib/carousel/carousel.component.js +246 -246
- package/esm2015/lib/carousel/carousel.module.js +24 -24
- package/esm2015/lib/carousel/index.js +7 -7
- package/esm2015/lib/checkbox/checkbox.component.js +40 -40
- package/esm2015/lib/checkbox/checkbox.module.js +20 -20
- package/esm2015/lib/checkbox/index.js +3 -3
- package/esm2015/lib/datalist/datalist.component.js +81 -81
- package/esm2015/lib/datalist/datalist.module.js +22 -22
- package/esm2015/lib/datalist/index.js +3 -3
- package/esm2015/lib/datepicker/datepicker.component.js +64 -64
- package/esm2015/lib/datepicker/datepicker.module.js +23 -23
- package/esm2015/lib/datepicker/index.js +3 -3
- package/esm2015/lib/decorators/decorators.module.js +22 -22
- package/esm2015/lib/decorators/index.js +4 -4
- package/esm2015/lib/decorators/prefix.component.js +27 -27
- package/esm2015/lib/decorators/suffix.component.js +35 -35
- package/esm2015/lib/dialog/dialog.class.js +2 -2
- package/esm2015/lib/dialog/dialog.component.js +45 -45
- package/esm2015/lib/dialog/dialog.module.js +26 -26
- package/esm2015/lib/dialog/dialog.service.js +127 -127
- package/esm2015/lib/dialog/index.js +5 -5
- package/esm2015/lib/drawer/drawer-container.component.js +73 -73
- package/esm2015/lib/drawer/drawer-content.component.js +27 -27
- package/esm2015/lib/drawer/drawer.component.js +145 -145
- package/esm2015/lib/drawer/drawer.module.js +23 -23
- package/esm2015/lib/drawer/index.js +5 -5
- package/esm2015/lib/dropdown/dropdown-panel.component.js +194 -191
- package/esm2015/lib/dropdown/dropdown.component.js +139 -139
- package/esm2015/lib/dropdown/dropdown.module.js +24 -24
- package/esm2015/lib/dropdown/index.js +4 -4
- package/esm2015/lib/form/form-field.component.js +20 -20
- package/esm2015/lib/form/form-field.module.js +21 -21
- package/esm2015/lib/form/form-hint.component.js +20 -20
- package/esm2015/lib/form/form.component.js +51 -51
- package/esm2015/lib/form/index.js +5 -5
- package/esm2015/lib/icon/icon.component.js +28 -28
- package/esm2015/lib/icon/icon.module.js +21 -21
- package/esm2015/lib/icon/index.js +3 -3
- package/esm2015/lib/input-mask/index.js +3 -3
- package/esm2015/lib/input-mask/input-mask.component.js +42 -42
- package/esm2015/lib/input-mask/input-mask.module.js +23 -23
- package/esm2015/lib/label/index.js +3 -3
- package/esm2015/lib/label/label.component.js +20 -20
- package/esm2015/lib/label/label.module.js +21 -21
- package/esm2015/lib/loading/index.js +6 -6
- package/esm2015/lib/loading/loading-spinner.component.js +32 -32
- package/esm2015/lib/loading/loading.component.js +54 -54
- package/esm2015/lib/loading/loading.directive.js +67 -67
- package/esm2015/lib/loading/loading.module.js +35 -35
- package/esm2015/lib/loading/loading.service.js +155 -155
- package/esm2015/lib/number-box/index.js +3 -3
- package/esm2015/lib/number-box/number-box.component.js +289 -289
- package/esm2015/lib/number-box/number-box.module.js +32 -32
- package/esm2015/lib/page/base-page.class.js +66 -66
- package/esm2015/lib/page/index.js +5 -5
- package/esm2015/lib/page/page-footer.component.js +32 -32
- package/esm2015/lib/page/page.component.js +33 -33
- package/esm2015/lib/page/page.module.js +18 -18
- package/esm2015/lib/popover/index.js +3 -3
- package/esm2015/lib/popover/popover.component.js +119 -119
- package/esm2015/lib/popover/popover.module.js +19 -19
- package/esm2015/lib/popup/index.js +4 -4
- package/esm2015/lib/popup/popup.component.js +97 -97
- package/esm2015/lib/popup/popup.module.js +26 -26
- package/esm2015/lib/popup/popup.service.js +94 -94
- package/esm2015/lib/range-slider/index.js +3 -0
- package/esm2015/lib/range-slider/range-slider.component.js +22 -0
- package/esm2015/lib/range-slider/range-slider.module.js +21 -0
- package/esm2015/lib/selectbox/index.js +3 -3
- package/esm2015/lib/selectbox/selectbox.component.js +193 -193
- package/esm2015/lib/selectbox/selectbox.module.js +21 -21
- package/esm2015/lib/selection-list/index.js +3 -3
- package/esm2015/lib/selection-list/selection-list.component.js +46 -46
- package/esm2015/lib/selection-list/selection-list.module.js +21 -21
- package/esm2015/lib/side-menu/index.js +3 -3
- package/esm2015/lib/side-menu/side-menu.component.js +21 -21
- package/esm2015/lib/side-menu/side-menu.module.js +21 -21
- package/esm2015/lib/switch/index.js +3 -3
- package/esm2015/lib/switch/switch.component.js +30 -30
- package/esm2015/lib/switch/switch.module.js +21 -21
- package/esm2015/lib/tabs/index.js +6 -6
- package/esm2015/lib/tabs/tab-strip.component.js +61 -61
- package/esm2015/lib/tabs/tab-view.component.js +46 -46
- package/esm2015/lib/tabs/tab.component.js +59 -59
- package/esm2015/lib/tabs/tabs.class.js +4 -4
- package/esm2015/lib/tabs/tabs.module.js +23 -23
- package/esm2015/lib/textbox/index.js +3 -3
- package/esm2015/lib/textbox/textbox.component.js +62 -60
- package/esm2015/lib/textbox/textbox.module.js +43 -39
- package/esm2015/lib/time-box/index.js +3 -3
- package/esm2015/lib/time-box/time-box.component.js +134 -134
- package/esm2015/lib/time-box/time-box.module.js +32 -32
- package/esm2015/lib/toast/index.js +5 -5
- package/esm2015/lib/toast/toast.class.js +2 -2
- package/esm2015/lib/toast/toast.component.js +50 -50
- package/esm2015/lib/toast/toast.module.js +22 -22
- package/esm2015/lib/toast/toast.service.js +114 -114
- package/esm2015/lib/tooltip/index.js +4 -4
- package/esm2015/lib/tooltip/tooltip.component.js +45 -45
- package/esm2015/lib/tooltip/tooltip.directive.js +86 -86
- package/esm2015/lib/tooltip/tooltip.module.js +23 -23
- package/esm2015/lib/validation/index.js +3 -3
- package/esm2015/lib/validation/validation-rule.widget.js +113 -113
- package/esm2015/lib/validation/validation.class.js +2 -2
- package/esm2015/lib/validation/validation.module.js +32 -32
- package/esm2015/public-api.js +39 -38
- package/fesm2015/acorex-components.js +5811 -5763
- package/fesm2015/acorex-components.js.map +1 -1
- package/lib/alert/alert-button.component.d.ts +13 -13
- package/lib/alert/alert-contnet.component.d.ts +5 -5
- package/lib/alert/alert-footer.component.d.ts +5 -5
- package/lib/alert/alert-suffix.component.d.ts +5 -5
- package/lib/alert/alert-title.component.d.ts +5 -5
- package/lib/alert/alert.component.d.ts +46 -46
- package/lib/alert/alert.module.d.ts +13 -13
- package/lib/alert/index.d.ts +7 -7
- package/lib/avatar/avatar.component.d.ts +20 -20
- package/lib/avatar/avatar.module.d.ts +8 -8
- package/lib/avatar/index.d.ts +2 -2
- package/lib/base/common.module.d.ts +7 -7
- package/lib/base/custom-cdk-overlay.service.d.ts +19 -19
- package/lib/base/drawing.class.d.ts +9 -9
- package/lib/base/events.class.d.ts +72 -65
- package/lib/base/index.d.ts +6 -6
- package/lib/base/mixin/base-components.class.d.ts +84 -84
- package/lib/base/mixin/button-mixin.class.d.ts +79 -79
- package/lib/base/mixin/clickable-mixin.class.d.ts +42 -42
- package/lib/base/mixin/constratctor.d.ts +4 -4
- package/lib/base/mixin/datalist-component.class.d.ts +54 -54
- package/lib/base/mixin/dropdown-mixin.class.d.ts +47 -47
- package/lib/base/mixin/index.d.ts +2 -2
- package/lib/base/mixin/interactive-mixin.class.d.ts +60 -63
- package/lib/base/mixin/loading-mixin.class.d.ts +46 -48
- package/lib/base/mixin/mixin.class.d.ts +814 -814
- package/lib/base/mixin/selection-component.class.d.ts +55 -55
- package/lib/base/mixin/sizable-mixin.class.d.ts +40 -40
- package/lib/base/mixin/textbox-mixin.class.d.ts +59 -61
- package/lib/base/mixin/value-mixin.class.d.ts +68 -71
- package/lib/base/overlay.service.d.ts +31 -31
- package/lib/base/responsive.directive.d.ts +10 -10
- package/lib/base/styles.class.d.ts +17 -17
- package/lib/button/button-group.component.d.ts +36 -35
- package/lib/button/button-item.class.d.ts +22 -22
- package/lib/button/button-item.component.d.ts +92 -92
- package/lib/button/button.component.d.ts +18 -18
- package/lib/button/button.module.d.ts +13 -13
- package/lib/button/dropdown-button.component.d.ts +234 -234
- package/lib/button/index.d.ts +6 -6
- package/lib/calendar/calendar.component.d.ts +16 -16
- package/lib/calendar/calendar.module.d.ts +11 -11
- package/lib/calendar/index.d.ts +2 -2
- package/lib/carousel/carousel-arrows.component.d.ts +14 -14
- package/lib/carousel/carousel-item.component.d.ts +8 -8
- package/lib/carousel/carousel-pager.component.d.ts +22 -22
- package/lib/carousel/carousel-splidejs.class.d.ts +18 -18
- package/lib/carousel/carousel.class.d.ts +48 -48
- package/lib/carousel/carousel.component.d.ts +62 -62
- package/lib/carousel/carousel.module.d.ts +11 -11
- package/lib/carousel/index.d.ts +6 -6
- package/lib/checkbox/checkbox.component.d.ts +12 -12
- package/lib/checkbox/checkbox.module.d.ts +9 -9
- package/lib/checkbox/index.d.ts +2 -2
- package/lib/datalist/datalist.component.d.ts +25 -25
- package/lib/datalist/datalist.module.d.ts +9 -9
- package/lib/datalist/index.d.ts +2 -2
- package/lib/datepicker/datepicker.component.d.ts +18 -18
- package/lib/datepicker/datepicker.module.d.ts +10 -10
- package/lib/datepicker/index.d.ts +2 -2
- package/lib/decorators/decorators.module.d.ts +9 -9
- package/lib/decorators/index.d.ts +3 -3
- package/lib/decorators/prefix.component.d.ts +8 -8
- package/lib/decorators/suffix.component.d.ts +8 -8
- package/lib/dialog/dialog.class.d.ts +12 -12
- package/lib/dialog/dialog.component.d.ts +15 -15
- package/lib/dialog/dialog.module.d.ts +13 -13
- package/lib/dialog/dialog.service.d.ts +18 -18
- package/lib/dialog/index.d.ts +4 -4
- package/lib/drawer/drawer-container.component.d.ts +13 -13
- package/lib/drawer/drawer-content.component.d.ts +8 -8
- package/lib/drawer/drawer.component.d.ts +30 -30
- package/lib/drawer/drawer.module.d.ts +10 -10
- package/lib/drawer/index.d.ts +4 -4
- package/lib/dropdown/dropdown-panel.component.d.ts +117 -116
- package/lib/dropdown/dropdown.component.d.ts +31 -31
- package/lib/dropdown/dropdown.module.d.ts +13 -13
- package/lib/dropdown/index.d.ts +3 -3
- package/lib/form/form-field.component.d.ts +8 -8
- package/lib/form/form-field.module.d.ts +10 -10
- package/lib/form/form-hint.component.d.ts +8 -8
- package/lib/form/form.component.d.ts +13 -13
- package/lib/form/index.d.ts +4 -4
- package/lib/icon/icon.component.d.ts +10 -10
- package/lib/icon/icon.module.d.ts +8 -8
- package/lib/icon/index.d.ts +2 -2
- package/lib/input-mask/index.d.ts +2 -2
- package/lib/input-mask/input-mask.component.d.ts +14 -14
- package/lib/input-mask/input-mask.module.d.ts +9 -9
- package/lib/label/index.d.ts +2 -2
- package/lib/label/label.component.d.ts +8 -8
- package/lib/label/label.module.d.ts +8 -8
- package/lib/loading/index.d.ts +5 -5
- package/lib/loading/loading-spinner.component.d.ts +5 -5
- package/lib/loading/loading.component.d.ts +19 -19
- package/lib/loading/loading.directive.d.ts +22 -22
- package/lib/loading/loading.module.d.ts +13 -13
- package/lib/loading/loading.service.d.ts +48 -48
- package/lib/number-box/index.d.ts +2 -2
- package/lib/number-box/number-box.component.d.ts +69 -69
- package/lib/number-box/number-box.module.d.ts +11 -11
- package/lib/page/base-page.class.d.ts +37 -37
- package/lib/page/index.d.ts +4 -4
- package/lib/page/page-footer.component.d.ts +7 -7
- package/lib/page/page.component.d.ts +13 -13
- package/lib/page/page.module.d.ts +7 -7
- package/lib/popover/index.d.ts +2 -2
- package/lib/popover/popover.component.d.ts +30 -30
- package/lib/popover/popover.module.d.ts +8 -8
- package/lib/popup/index.d.ts +3 -3
- package/lib/popup/popup.component.d.ts +33 -33
- package/lib/popup/popup.module.d.ts +12 -12
- package/lib/popup/popup.service.d.ts +37 -37
- package/lib/range-slider/index.d.ts +2 -0
- package/lib/range-slider/range-slider.component.d.ts +8 -0
- package/lib/range-slider/range-slider.module.d.ts +8 -0
- package/lib/selectbox/index.d.ts +2 -2
- package/lib/selectbox/selectbox.component.d.ts +28 -28
- package/lib/selectbox/selectbox.module.d.ts +10 -10
- package/lib/selection-list/index.d.ts +2 -2
- package/lib/selection-list/selection-list.component.d.ts +10 -10
- package/lib/selection-list/selection-list.module.d.ts +10 -10
- package/lib/side-menu/index.d.ts +2 -2
- package/lib/side-menu/side-menu.component.d.ts +8 -8
- package/lib/side-menu/side-menu.module.d.ts +8 -8
- package/lib/switch/index.d.ts +2 -2
- package/lib/switch/switch.component.d.ts +9 -9
- package/lib/switch/switch.module.d.ts +9 -9
- package/lib/tabs/index.d.ts +5 -5
- package/lib/tabs/tab-strip.component.d.ts +17 -17
- package/lib/tabs/tab-view.component.d.ts +14 -14
- package/lib/tabs/tab.component.d.ts +18 -18
- package/lib/tabs/tabs.class.d.ts +18 -18
- package/lib/tabs/tabs.module.d.ts +10 -10
- package/lib/textbox/index.d.ts +2 -2
- package/lib/textbox/textbox.component.d.ts +19 -19
- package/lib/textbox/textbox.module.d.ts +13 -12
- package/lib/time-box/index.d.ts +2 -2
- package/lib/time-box/time-box.component.d.ts +29 -29
- package/lib/time-box/time-box.module.d.ts +11 -11
- package/lib/toast/index.d.ts +4 -4
- package/lib/toast/toast.class.d.ts +14 -14
- package/lib/toast/toast.component.d.ts +16 -16
- package/lib/toast/toast.module.d.ts +9 -9
- package/lib/toast/toast.service.d.ts +18 -18
- package/lib/tooltip/index.d.ts +3 -3
- package/lib/tooltip/tooltip.component.d.ts +10 -10
- package/lib/tooltip/tooltip.directive.d.ts +18 -18
- package/lib/tooltip/tooltip.module.d.ts +10 -10
- package/lib/validation/index.d.ts +2 -2
- package/lib/validation/validation-rule.widget.d.ts +25 -25
- package/lib/validation/validation.class.d.ts +17 -17
- package/lib/validation/validation.module.d.ts +9 -9
- package/package.json +18 -18
- package/public-api.d.ts +37 -36
|
@@ -1,200 +1,200 @@
|
|
|
1
|
-
import { TemplatePortal } from '@angular/cdk/portal';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, HostListener, Input, Output, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import { AXBaseComponent } from '../base';
|
|
4
|
-
import { BUTTON_INPUTS, _ButtonComponentMixin } from '../base/mixin/button-mixin.class';
|
|
5
|
-
import { _ClickableComponenetMixin } from '../base/mixin/clickable-mixin.class';
|
|
6
|
-
import { _DropdownComponenetMixin } from '../base/mixin/dropdown-mixin.class';
|
|
7
|
-
import { _InteractiveComponenetMixin } from '../base/mixin/interactive-mixin.class';
|
|
8
|
-
import { _SizableComponenetMixin } from '../base/mixin/sizable-mixin.class';
|
|
9
|
-
import { AXButtonItemComponent } from './button-item.component';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
12
|
-
import * as i2 from "@acorex/core";
|
|
13
|
-
import * as i3 from "../icon/icon.component";
|
|
14
|
-
import * as i4 from "./button-item.component";
|
|
15
|
-
import * as i5 from "../decorators/prefix.component";
|
|
16
|
-
import * as i6 from "@angular/common";
|
|
17
|
-
export const AXBaseDropdownButtonMixin = _SizableComponenetMixin(_InteractiveComponenetMixin(_ClickableComponenetMixin(_ButtonComponentMixin(_DropdownComponenetMixin((AXBaseComponent))))));
|
|
18
|
-
export class AXDropdownButtonComponent extends AXBaseDropdownButtonMixin {
|
|
19
|
-
constructor(_elementRef, _cdr, _overlay, _platform, _viewContainerRef) {
|
|
20
|
-
super(_elementRef, _cdr);
|
|
21
|
-
this._overlay = _overlay;
|
|
22
|
-
this._platform = _platform;
|
|
23
|
-
this._viewContainerRef = _viewContainerRef;
|
|
24
|
-
this.onItemClick = new EventEmitter();
|
|
25
|
-
this._subs = [];
|
|
26
|
-
this.dropdownIcon = 'ax-ic-chevron ax-transform ax--rotate-90';
|
|
27
|
-
this.splited = true;
|
|
28
|
-
}
|
|
29
|
-
get items() {
|
|
30
|
-
return this._items || [];
|
|
31
|
-
}
|
|
32
|
-
set items(v) {
|
|
33
|
-
this._items = v;
|
|
34
|
-
this._cdr.markForCheck();
|
|
35
|
-
}
|
|
36
|
-
_getAllButtons() {
|
|
37
|
-
return [...Array.from(this._viewButtons), ...Array.from(this._contentButtons)];
|
|
38
|
-
}
|
|
39
|
-
onViewInit() {
|
|
40
|
-
this._getAllButtons().forEach(c => {
|
|
41
|
-
this._subs.push(c.onClick.subscribe(this._handleOnItemClick.bind(this)));
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
onDestroy() {
|
|
45
|
-
var _a, _b;
|
|
46
|
-
(_a = this._overlayRef) === null || _a === void 0 ? void 0 : _a.detach();
|
|
47
|
-
(_b = this._overlayRef) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
48
|
-
this._subs.forEach(s => {
|
|
49
|
-
s === null || s === void 0 ? void 0 : s.unsubscribe();
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
_handleKeydownHandler(e) {
|
|
53
|
-
if (e.key === 'Enter' && e.type === 'keydown') {
|
|
54
|
-
this.toggle();
|
|
55
|
-
}
|
|
56
|
-
if (e.key === 'Escape') {
|
|
57
|
-
if (this.isOpen) {
|
|
58
|
-
this.close();
|
|
59
|
-
e.stopPropagation();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
_emitOnClickEvent(e) {
|
|
64
|
-
if (!this.splited) {
|
|
65
|
-
this.toggle();
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
super._emitOnClickEvent(e);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
_handleArrowClickEvent(e) {
|
|
72
|
-
this.toggle();
|
|
73
|
-
}
|
|
74
|
-
_emitOnItemClickEvent(e, item) {
|
|
75
|
-
this.onItemClick.emit({
|
|
76
|
-
component: this,
|
|
77
|
-
htmlElement: this._getHostElement(),
|
|
78
|
-
nativeEvent: e.nativeEvent,
|
|
79
|
-
name: item.name,
|
|
80
|
-
data: item.data,
|
|
81
|
-
});
|
|
82
|
-
this.close();
|
|
83
|
-
}
|
|
84
|
-
_handleOnItemClick(e) {
|
|
85
|
-
this.close();
|
|
86
|
-
this._emitOnItemClickEvent(e, e.component);
|
|
87
|
-
}
|
|
88
|
-
toggle() {
|
|
89
|
-
if (this.disabled !== true) {
|
|
90
|
-
this.isOpen ? this.close() : this.open();
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
close() {
|
|
94
|
-
var _a, _b;
|
|
95
|
-
if (!this.isOpen) {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
(_a = this._overlayRef) === null || _a === void 0 ? void 0 : _a.detach();
|
|
99
|
-
(_b = this._subs[1]) === null || _b === void 0 ? void 0 : _b.unsubscribe();
|
|
100
|
-
this._emitOnClosedEvent();
|
|
101
|
-
}
|
|
102
|
-
open() {
|
|
103
|
-
if (this.isOpen) {
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
this._ensureOverlayCreated();
|
|
107
|
-
this._overlayRef.attach(this._templatePortal);
|
|
108
|
-
this._emitOnOpenedEvent();
|
|
109
|
-
}
|
|
110
|
-
_ensureOverlayCreated() {
|
|
111
|
-
let baseSize = Number(getComputedStyle(document.documentElement).getPropertyValue('--ax-base-size').replace('px', '')) / 2;
|
|
112
|
-
if (!this._overlayRef) {
|
|
113
|
-
const positionStrategy = this._overlay.position()
|
|
114
|
-
.flexibleConnectedTo(this._getInnerElement())
|
|
115
|
-
.withPositions([
|
|
116
|
-
{
|
|
117
|
-
originX: 'start',
|
|
118
|
-
originY: 'bottom',
|
|
119
|
-
overlayX: 'start',
|
|
120
|
-
overlayY: 'top',
|
|
121
|
-
offsetY: baseSize
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
originX: 'start',
|
|
125
|
-
originY: 'top',
|
|
126
|
-
overlayX: 'start',
|
|
127
|
-
overlayY: 'bottom'
|
|
128
|
-
}
|
|
129
|
-
])
|
|
130
|
-
.withPush(false);
|
|
131
|
-
this._overlayRef = this._overlay.create({
|
|
132
|
-
positionStrategy,
|
|
133
|
-
scrollStrategy: this._overlay.scrollStrategies.close(),
|
|
134
|
-
panelClass: ['animate__animated', 'animate__fadeIn', 'animate__faster'],
|
|
135
|
-
hasBackdrop: false,
|
|
136
|
-
backdropClass: ['cdk-overlay-transparent-backdrop']
|
|
137
|
-
});
|
|
138
|
-
this._subs[0] = this._overlayRef._outsidePointerEvents.subscribe(c => {
|
|
139
|
-
const target = c.target;
|
|
140
|
-
const comElem = this._getHostElement();
|
|
141
|
-
if (!(comElem.contains(target))) {
|
|
142
|
-
this.close();
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
this._subs[1] = this._overlayRef.attachments().subscribe(() => {
|
|
146
|
-
if (this.fitParent === true) {
|
|
147
|
-
this._dropdownWidth = this._getHostElement().offsetWidth;
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
this._dropdownWidth = this._getHostElement().offsetWidth * 1.5;
|
|
151
|
-
}
|
|
152
|
-
this._subs[2] = this._platform.scroll.subscribe(c => {
|
|
153
|
-
if (!c.nativeEvent.target.closest('.ax-overlay-pane'))
|
|
154
|
-
this.close();
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
if (!this._templatePortal) {
|
|
159
|
-
this._templatePortal = new TemplatePortal(this._baseTemplate, this._viewContainerRef);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
get isOpen() {
|
|
163
|
-
return this._overlayRef ? this._overlayRef.hasAttached() : false;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
AXDropdownButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDropdownButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i2.AXPlatform }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
167
|
-
AXDropdownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: { disabled: "disabled", tabIndex: "tabIndex", size: "size", cssClass: "cssClass", text: "text", submitBehavior: "submitBehavior", cancelBehavior: "cancelBehavior", color: "color", look: "look", toggleable: "toggleable", selected: "selected", items: "items", dropdownIcon: "dropdownIcon", splited: "splited" }, outputs: { onClick: "onClick", onBlur: "onBlur", onFocus: "onFocus", onItemClick: "onItemClick" }, host: { listeners: { "keydown": "_handleKeydownHandler($event)" }, classAttribute: "ax-dropdown-button" }, queries: [{ propertyName: "_contentButtons", predicate: AXButtonItemComponent }], viewQueries: [{ propertyName: "_baseTemplate", first: true, predicate: ["baseTemplate"], descendants: true }, { propertyName: "_viewButtons", predicate: AXButtonItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<button [ngClass]=\"_classes\" class=\"{{cssClass}}\" [disabled]=\"disabled\" [tabindex]=\"tabIndex\" [attr.style]=\"cssStyle\"\
|
|
168
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDropdownButtonComponent, decorators: [{
|
|
169
|
-
type: Component,
|
|
170
|
-
args: [{
|
|
171
|
-
selector: 'ax-dropdown-button',
|
|
172
|
-
templateUrl: 'dropdown-button.component.html',
|
|
173
|
-
inputs: ['disabled', 'tabIndex', 'size', 'cssClass', ...BUTTON_INPUTS],
|
|
174
|
-
outputs: ['onClick', 'onBlur', 'onFocus'],
|
|
175
|
-
encapsulation: ViewEncapsulation.None,
|
|
176
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
177
|
-
host: { class: 'ax-dropdown-button' }
|
|
178
|
-
}]
|
|
179
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i2.AXPlatform }, { type: i0.ViewContainerRef }]; }, propDecorators: { _contentButtons: [{
|
|
180
|
-
type: ContentChildren,
|
|
181
|
-
args: [AXButtonItemComponent]
|
|
182
|
-
}], _viewButtons: [{
|
|
183
|
-
type: ViewChildren,
|
|
184
|
-
args: [AXButtonItemComponent]
|
|
185
|
-
}], onItemClick: [{
|
|
186
|
-
type: Output
|
|
187
|
-
}], items: [{
|
|
188
|
-
type: Input
|
|
189
|
-
}], _baseTemplate: [{
|
|
190
|
-
type: ViewChild,
|
|
191
|
-
args: ['baseTemplate']
|
|
192
|
-
}], dropdownIcon: [{
|
|
193
|
-
type: Input
|
|
194
|
-
}], splited: [{
|
|
195
|
-
type: Input
|
|
196
|
-
}], _handleKeydownHandler: [{
|
|
197
|
-
type: HostListener,
|
|
198
|
-
args: ['keydown', ['$event']]
|
|
199
|
-
}] } });
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvYnV0dG9uL2Ryb3Bkb3duLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL2J1dHRvbi9kcm9wZG93bi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBR04sU0FBUyxFQUNULFlBQVksRUFFWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBeUUsTUFBTSxTQUFTLENBQUM7QUFDakgsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQUVoRSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FDbEMsdUJBQXVCLENBQ25CLDJCQUEyQixDQUN2Qix5QkFBeUIsQ0FDckIscUJBQXFCLENBQ2pCLHdCQUF3QixDQUFDLENBQUMsZUFBZSxDQUFDLENBQ3pDLENBQ0osQ0FDSixDQUNKLENBQ0osQ0FBQTtBQVdMLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx5QkFBeUI7SUFpQ3BFLFlBQ0ksV0FBdUIsRUFDdkIsSUFBdUIsRUFDZixRQUFpQixFQUNqQixTQUFxQixFQUNyQixpQkFBbUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUhoQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQVk7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQWhDL0MsZ0JBQVcsR0FBcUMsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUF3QnZGLFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBa0MzQixpQkFBWSxHQUFXLDBDQUEwQyxDQUFDO1FBR2xFLFlBQU8sR0FBWSxJQUFJLENBQUM7SUEzQnhCLENBQUM7SUEzQkQsSUFDVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsQ0FBaUI7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBd0JPLGNBQWM7UUFDbEIsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFHRCxVQUFVO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxTQUFTOztRQUNMLE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsTUFBTSxFQUFFLENBQUM7UUFDM0IsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxPQUFPLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQixDQUFDLGFBQUQsQ0FBQyx1QkFBRCxDQUFDLENBQUUsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBU0QscUJBQXFCLENBQUMsQ0FBZ0I7UUFDbEMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUMzQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDakI7UUFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFO1lBQ3BCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2IsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ3ZCO1NBQ0o7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsQ0FBYTtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNqQjthQUNJO1lBQ0QsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlCO0lBQ0wsQ0FBQztJQUVELHNCQUFzQixDQUFDLENBQWE7UUFDaEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxDQUFlLEVBQUUsSUFBMkI7UUFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDbEIsU0FBUyxFQUFFLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNuQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVc7WUFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsQ0FBZTtRQUN0QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUvQyxDQUFDO0lBR0QsTUFBTTtRQUNGLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDNUM7SUFDTCxDQUFDO0lBRUQsS0FBSzs7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNkLE9BQU87U0FDVjtRQUNELE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsTUFBTSxFQUFFLENBQUM7UUFDM0IsTUFBQSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQywwQ0FBRSxXQUFXLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTNILElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7aUJBQzVDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2lCQUM1QyxhQUFhLENBQUM7Z0JBQ1g7b0JBQ0ksT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sRUFBRSxRQUFRO29CQUNqQixRQUFRLEVBQUUsT0FBTztvQkFDakIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsT0FBTyxFQUFFLFFBQVE7aUJBQ3BCO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUUsS0FBSztvQkFDZCxRQUFRLEVBQUUsT0FBTztvQkFDakIsUUFBUSxFQUFFLFFBQVE7aUJBQ3JCO2FBQ0osQ0FBQztpQkFDRCxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDcEMsZ0JBQWdCO2dCQUNoQixjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3RELFVBQVUsRUFBRSxDQUFDLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDO2dCQUN2RSxXQUFXLEVBQUUsS0FBSztnQkFDbEIsYUFBYSxFQUFFLENBQUMsa0NBQWtDLENBQUM7YUFDdEQsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQXFCLENBQUM7Z0JBQ3ZDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO29CQUM3QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQ2hCO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDMUQsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRTtvQkFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUM1RDtxQkFBTTtvQkFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO2lCQUNsRTtnQkFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDaEQsSUFBSSxDQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBc0IsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7d0JBQ2xFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDckIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3pGO0lBQ0wsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3JFLENBQUM7O3NIQWhNUSx5QkFBeUI7MEdBQXpCLHlCQUF5QixzbUJBRWpCLHFCQUFxQiw4SkFDeEIscUJBQXFCLHVFQ3hEdkMsMmlEQWdDYzsyRkRxQkQseUJBQXlCO2tCQVRyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLGFBQWEsQ0FBQztvQkFDdEUsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUM7b0JBQ3pDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFO2lCQUN4QzsrTUFHMkMsZUFBZTtzQkFBdEQsZUFBZTt1QkFBQyxxQkFBcUI7Z0JBQ0QsWUFBWTtzQkFBaEQsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBR25DLFdBQVc7c0JBRFYsTUFBTTtnQkFTSSxLQUFLO3NCQURmLEtBQUs7Z0JBWU4sYUFBYTtzQkFEWixTQUFTO3VCQUFDLGNBQWM7Z0JBd0N6QixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLHFCQUFxQjtzQkFEcEIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBRdWVyeUxpc3QsXHJcbiAgICBUZW1wbGF0ZVJlZixcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdDaGlsZHJlbixcclxuICAgIFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQVhCYXNlQ29tcG9uZW50LCBBWEJ1dHRvbkNsaWNrRXZlbnQsIEFYQ2xpY2tFdmVudCwgQVhTdHlsZUJ1dHRvbkxvb2ssIEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICcuLi9iYXNlJztcclxuaW1wb3J0IHsgQlVUVE9OX0lOUFVUUywgX0J1dHRvbkNvbXBvbmVudE1peGluIH0gZnJvbSAnLi4vYmFzZS9taXhpbi9idXR0b24tbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgeyBfQ2xpY2thYmxlQ29tcG9uZW5ldE1peGluIH0gZnJvbSAnLi4vYmFzZS9taXhpbi9jbGlja2FibGUtbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgeyBfRGF0YWxpc3RDb21wb25lbmV0TWl4aW4gfSBmcm9tICcuLi9iYXNlL21peGluL2RhdGFsaXN0LWNvbXBvbmVudC5jbGFzcyc7XHJcbmltcG9ydCB7IF9Ecm9wZG93bkNvbXBvbmVuZXRNaXhpbiB9IGZyb20gJy4uL2Jhc2UvbWl4aW4vZHJvcGRvd24tbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgeyBfSW50ZXJhY3RpdmVDb21wb25lbmV0TWl4aW4gfSBmcm9tICcuLi9iYXNlL21peGluL2ludGVyYWN0aXZlLW1peGluLmNsYXNzJztcclxuaW1wb3J0IHsgX1NpemFibGVDb21wb25lbmV0TWl4aW4gfSBmcm9tICcuLi9iYXNlL21peGluL3NpemFibGUtbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgeyBfVmFsdWVDb21wb25lbmV0TWl4aW4gfSBmcm9tICcuLi9iYXNlL21peGluL3ZhbHVlLW1peGluLmNsYXNzJztcclxuaW1wb3J0IHsgQVhCdXR0b25JdGVtIH0gZnJvbSAnLi9idXR0b24taXRlbS5jbGFzcyc7XHJcbmltcG9ydCB7IEFYQnV0dG9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9uLWl0ZW0uY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBjb25zdCBBWEJhc2VEcm9wZG93bkJ1dHRvbk1peGluID1cclxuICAgIF9TaXphYmxlQ29tcG9uZW5ldE1peGluKFxyXG4gICAgICAgIF9JbnRlcmFjdGl2ZUNvbXBvbmVuZXRNaXhpbihcclxuICAgICAgICAgICAgX0NsaWNrYWJsZUNvbXBvbmVuZXRNaXhpbihcclxuICAgICAgICAgICAgICAgIF9CdXR0b25Db21wb25lbnRNaXhpbihcclxuICAgICAgICAgICAgICAgICAgICBfRHJvcGRvd25Db21wb25lbmV0TWl4aW4oKEFYQmFzZUNvbXBvbmVudClcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApXHJcbiAgICApXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXgtZHJvcGRvd24tYnV0dG9uJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnZHJvcGRvd24tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICAgIGlucHV0czogWydkaXNhYmxlZCcsICd0YWJJbmRleCcsICdzaXplJywgJ2Nzc0NsYXNzJywgLi4uQlVUVE9OX0lOUFVUU10sXHJcbiAgICBvdXRwdXRzOiBbJ29uQ2xpY2snLCAnb25CbHVyJywgJ29uRm9jdXMnXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGhvc3Q6IHsgY2xhc3M6ICdheC1kcm9wZG93bi1idXR0b24nIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYRHJvcGRvd25CdXR0b25Db21wb25lbnQgZXh0ZW5kcyBBWEJhc2VEcm9wZG93bkJ1dHRvbk1peGluIHtcclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKEFYQnV0dG9uSXRlbUNvbXBvbmVudCkgX2NvbnRlbnRCdXR0b25zOiBRdWVyeUxpc3Q8QVhCdXR0b25JdGVtQ29tcG9uZW50PjtcclxuICAgIEBWaWV3Q2hpbGRyZW4oQVhCdXR0b25JdGVtQ29tcG9uZW50KSBfdmlld0J1dHRvbnM6IFF1ZXJ5TGlzdDxBWEJ1dHRvbkl0ZW1Db21wb25lbnQ+O1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgb25JdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxBWEJ1dHRvbkNsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEJ1dHRvbkNsaWNrRXZlbnQ+KCk7XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgIHByaXZhdGUgX2l0ZW1zOiBBWEJ1dHRvbkl0ZW1bXTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IGl0ZW1zKCk6IEFYQnV0dG9uSXRlbVtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMgfHwgW107XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IGl0ZW1zKHY6IEFYQnV0dG9uSXRlbVtdKSB7XHJcbiAgICAgICAgdGhpcy5faXRlbXMgPSB2O1xyXG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2Jhc2VUZW1wbGF0ZScpXHJcbiAgICBfYmFzZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XHJcbiAgICBfdGVtcGxhdGVQb3J0YWw6IFRlbXBsYXRlUG9ydGFsO1xyXG5cclxuICAgIF9kcm9wZG93bldpZHRoOiBudW1iZXI7XHJcbiAgICBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcclxuICAgICAgICBwcml2YXRlIF9wbGF0Zm9ybTogQVhQbGF0Zm9ybSxcclxuICAgICAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICAgICAgc3VwZXIoX2VsZW1lbnRSZWYsIF9jZHIpXHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBwcml2YXRlIF9nZXRBbGxCdXR0b25zKCk6IEFYQnV0dG9uSXRlbUNvbXBvbmVudFtdIHtcclxuICAgICAgICByZXR1cm4gWy4uLkFycmF5LmZyb20odGhpcy5fdmlld0J1dHRvbnMpLCAuLi5BcnJheS5mcm9tKHRoaXMuX2NvbnRlbnRCdXR0b25zKV07XHJcbiAgICB9XHJcblxyXG5cclxuICAgIG9uVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5fZ2V0QWxsQnV0dG9ucygpLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX3N1YnMucHVzaChjLm9uQ2xpY2suc3Vic2NyaWJlKHRoaXMuX2hhbmRsZU9uSXRlbUNsaWNrLmJpbmQodGhpcykpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gICAgICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHtcclxuICAgICAgICAgICAgcz8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZHJvcGRvd25JY29uOiBzdHJpbmcgPSAnYXgtaWMtY2hldnJvbiBheC10cmFuc2Zvcm0gYXgtLXJvdGF0ZS05MCc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNwbGl0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG4gICAgX2hhbmRsZUtleWRvd25IYW5kbGVyKGU6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgZS50eXBlID09PSAna2V5ZG93bicpIHtcclxuICAgICAgICAgICAgdGhpcy50b2dnbGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgX2VtaXRPbkNsaWNrRXZlbnQoZTogTW91c2VFdmVudCkge1xyXG4gICAgICAgIGlmICghdGhpcy5zcGxpdGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzdXBlci5fZW1pdE9uQ2xpY2tFdmVudChlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgX2hhbmRsZUFycm93Q2xpY2tFdmVudChlOiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy50b2dnbGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBfZW1pdE9uSXRlbUNsaWNrRXZlbnQoZTogQVhDbGlja0V2ZW50LCBpdGVtOiBBWEJ1dHRvbkl0ZW1Db21wb25lbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uSXRlbUNsaWNrLmVtaXQoe1xyXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLFxyXG4gICAgICAgICAgICBuYXRpdmVFdmVudDogZS5uYXRpdmVFdmVudCxcclxuICAgICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgICBkYXRhOiBpdGVtLmRhdGEsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2hhbmRsZU9uSXRlbUNsaWNrKGU6IEFYQ2xpY2tFdmVudCkge1xyXG4gICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLl9lbWl0T25JdGVtQ2xpY2tFdmVudChlLCBlLmNvbXBvbmVudCk7XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0b2dnbGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgIT09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2UoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzT3Blbikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xyXG4gICAgICAgIHRoaXMuX3N1YnNbMV0/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fZW1pdE9uQ2xvc2VkRXZlbnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2Vuc3VyZU92ZXJsYXlDcmVhdGVkKCk7XHJcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2godGhpcy5fdGVtcGxhdGVQb3J0YWwpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRPbk9wZW5lZEV2ZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZW5zdXJlT3ZlcmxheUNyZWF0ZWQoKSB7XHJcbiAgICAgICAgbGV0IGJhc2VTaXplID0gTnVtYmVyKGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCctLWF4LWJhc2Utc2l6ZScpLnJlcGxhY2UoJ3B4JywgJycpKSAvIDI7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fb3ZlcmxheVJlZikge1xyXG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpXHJcbiAgICAgICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9nZXRJbm5lckVsZW1lbnQoKSlcclxuICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRZOiBiYXNlU2l6ZVxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIF0pXHJcbiAgICAgICAgICAgICAgICAud2l0aFB1c2goZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoe1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneSxcclxuICAgICAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKSxcclxuICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnYW5pbWF0ZV9fYW5pbWF0ZWQnLCAnYW5pbWF0ZV9fZmFkZUluJywgJ2FuaW1hdGVfX2Zhc3RlciddLFxyXG4gICAgICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogWydjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCddXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLl9zdWJzWzBdID0gdGhpcy5fb3ZlcmxheVJlZi5fb3V0c2lkZVBvaW50ZXJFdmVudHMuc3Vic2NyaWJlKGMgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gYy50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb21FbGVtID0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKTtcclxuICAgICAgICAgICAgICAgIGlmICghKGNvbUVsZW0uY29udGFpbnModGFyZ2V0KSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLl9zdWJzWzFdID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2htZW50cygpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5maXRQYXJlbnQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kcm9wZG93bldpZHRoID0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5vZmZzZXRXaWR0aDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZHJvcGRvd25XaWR0aCA9IHRoaXMuX2dldEhvc3RFbGVtZW50KCkub2Zmc2V0V2lkdGggKiAxLjU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zdWJzWzJdID0gdGhpcy5fcGxhdGZvcm0uc2Nyb2xsLnN1YnNjcmliZShjID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIShjLm5hdGl2ZUV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdCgnLmF4LW92ZXJsYXktcGFuZScpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5fdGVtcGxhdGVQb3J0YWwpIHtcclxuICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGVQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fYmFzZVRlbXBsYXRlLCB0aGlzLl92aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZiA/IHRoaXMuX292ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSA6IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuXHJcbn0iLCI8YnV0dG9uIFtuZ0NsYXNzXT1cIl9jbGFzc2VzXCIgY2xhc3M9XCJ7e2Nzc0NsYXNzfX1cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIiBbYXR0ci5zdHlsZV09XCJjc3NTdHlsZVwiXHJcbiAgICAoY2xpY2spPVwiX2VtaXRPbkNsaWNrRXZlbnQoJGV2ZW50KVwiIChmb2N1cyk9XCJfZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCIgKGJsdXIpPVwiX2VtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1sb2FkaW5nXCI+XHJcbiAgICA8L25nLWNvbnRlbnQ+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj5cclxuICAgIDwvbmctY29udGVudD5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWljb25cIj5cclxuICAgIDwvbmctY29udGVudD5cclxuICAgIDxzcGFuICpuZ0lmPVwidGV4dFwiPnt7dGV4dH19PC9zcGFuPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+XHJcbiAgICA8L25nLWNvbnRlbnQ+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNwbGl0ZWRcIj5cclxuICAgICAgICA8YXgtaWNvbiBbaWNvbl09XCJkcm9wZG93bkljb25cIj48L2F4LWljb24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9idXR0b24+XHJcbjxidXR0b24gY2xhc3M9XCJheC1idXR0b24gYXgtZHJvcGRvd24tYXJyb3cge3tjc3NDbGFzc319XCIgKGNsaWNrKT1cIl9oYW5kbGVBcnJvd0NsaWNrRXZlbnQoJGV2ZW50KVwiICpuZ0lmPVwic3BsaXRlZFwiPlxyXG4gICAgPGF4LWljb24gW2ljb25dPVwiZHJvcGRvd25JY29uXCI+PC9heC1pY29uPlxyXG48L2J1dHRvbj5cclxuPG5nLXRlbXBsYXRlICNiYXNlVGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXgtb3ZlcmxheS1wYW5lIGF4LWRyb3Bkb3duLWxpc3RcIiBbc3R5bGUubWluLXdpZHRoLnB4XT1cIl9kcm9wZG93bldpZHRoXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1zICYmIGl0ZW1zLmxlbmd0aDtlbHNlIHBhbmVsVHBsXCI+XHJcbiAgICAgICAgICAgIDxheC1idXR0b24taXRlbSBbdGV4dF09XCJpdGVtLnRleHRcIiBbY29sb3JdPVwiaXRlbS5jb2xvclwiICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgIDxheC1wcmVmaXggKm5nSWY9XCJpdGVtLmljb25DbGFzc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxheC1pY29uIFtpY29uXT1cIml0ZW0uaWNvbkNsYXNzXCI+PC9heC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNwYW5lbFRwbD5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibmctY29udGFpbmVyW3BhbmVsXSxheC1idXR0b24taXRlbVwiPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
1
|
+
import { TemplatePortal } from '@angular/cdk/portal';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, HostListener, Input, Output, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { AXBaseComponent } from '../base';
|
|
4
|
+
import { BUTTON_INPUTS, _ButtonComponentMixin } from '../base/mixin/button-mixin.class';
|
|
5
|
+
import { _ClickableComponenetMixin } from '../base/mixin/clickable-mixin.class';
|
|
6
|
+
import { _DropdownComponenetMixin } from '../base/mixin/dropdown-mixin.class';
|
|
7
|
+
import { _InteractiveComponenetMixin } from '../base/mixin/interactive-mixin.class';
|
|
8
|
+
import { _SizableComponenetMixin } from '../base/mixin/sizable-mixin.class';
|
|
9
|
+
import { AXButtonItemComponent } from './button-item.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
12
|
+
import * as i2 from "@acorex/core";
|
|
13
|
+
import * as i3 from "../icon/icon.component";
|
|
14
|
+
import * as i4 from "./button-item.component";
|
|
15
|
+
import * as i5 from "../decorators/prefix.component";
|
|
16
|
+
import * as i6 from "@angular/common";
|
|
17
|
+
export const AXBaseDropdownButtonMixin = _SizableComponenetMixin(_InteractiveComponenetMixin(_ClickableComponenetMixin(_ButtonComponentMixin(_DropdownComponenetMixin((AXBaseComponent))))));
|
|
18
|
+
export class AXDropdownButtonComponent extends AXBaseDropdownButtonMixin {
|
|
19
|
+
constructor(_elementRef, _cdr, _overlay, _platform, _viewContainerRef) {
|
|
20
|
+
super(_elementRef, _cdr);
|
|
21
|
+
this._overlay = _overlay;
|
|
22
|
+
this._platform = _platform;
|
|
23
|
+
this._viewContainerRef = _viewContainerRef;
|
|
24
|
+
this.onItemClick = new EventEmitter();
|
|
25
|
+
this._subs = [];
|
|
26
|
+
this.dropdownIcon = 'ax-ic-chevron ax-transform ax--rotate-90';
|
|
27
|
+
this.splited = true;
|
|
28
|
+
}
|
|
29
|
+
get items() {
|
|
30
|
+
return this._items || [];
|
|
31
|
+
}
|
|
32
|
+
set items(v) {
|
|
33
|
+
this._items = v;
|
|
34
|
+
this._cdr.markForCheck();
|
|
35
|
+
}
|
|
36
|
+
_getAllButtons() {
|
|
37
|
+
return [...Array.from(this._viewButtons), ...Array.from(this._contentButtons)];
|
|
38
|
+
}
|
|
39
|
+
onViewInit() {
|
|
40
|
+
this._getAllButtons().forEach(c => {
|
|
41
|
+
this._subs.push(c.onClick.subscribe(this._handleOnItemClick.bind(this)));
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
onDestroy() {
|
|
45
|
+
var _a, _b;
|
|
46
|
+
(_a = this._overlayRef) === null || _a === void 0 ? void 0 : _a.detach();
|
|
47
|
+
(_b = this._overlayRef) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
48
|
+
this._subs.forEach(s => {
|
|
49
|
+
s === null || s === void 0 ? void 0 : s.unsubscribe();
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
_handleKeydownHandler(e) {
|
|
53
|
+
if (e.key === 'Enter' && e.type === 'keydown') {
|
|
54
|
+
this.toggle();
|
|
55
|
+
}
|
|
56
|
+
if (e.key === 'Escape') {
|
|
57
|
+
if (this.isOpen) {
|
|
58
|
+
this.close();
|
|
59
|
+
e.stopPropagation();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
_emitOnClickEvent(e) {
|
|
64
|
+
if (!this.splited) {
|
|
65
|
+
this.toggle();
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
super._emitOnClickEvent(e);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
_handleArrowClickEvent(e) {
|
|
72
|
+
this.toggle();
|
|
73
|
+
}
|
|
74
|
+
_emitOnItemClickEvent(e, item) {
|
|
75
|
+
this.onItemClick.emit({
|
|
76
|
+
component: this,
|
|
77
|
+
htmlElement: this._getHostElement(),
|
|
78
|
+
nativeEvent: e.nativeEvent,
|
|
79
|
+
name: item.name,
|
|
80
|
+
data: item.data,
|
|
81
|
+
});
|
|
82
|
+
this.close();
|
|
83
|
+
}
|
|
84
|
+
_handleOnItemClick(e) {
|
|
85
|
+
this.close();
|
|
86
|
+
this._emitOnItemClickEvent(e, e.component);
|
|
87
|
+
}
|
|
88
|
+
toggle() {
|
|
89
|
+
if (this.disabled !== true) {
|
|
90
|
+
this.isOpen ? this.close() : this.open();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
close() {
|
|
94
|
+
var _a, _b;
|
|
95
|
+
if (!this.isOpen) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
(_a = this._overlayRef) === null || _a === void 0 ? void 0 : _a.detach();
|
|
99
|
+
(_b = this._subs[1]) === null || _b === void 0 ? void 0 : _b.unsubscribe();
|
|
100
|
+
this._emitOnClosedEvent();
|
|
101
|
+
}
|
|
102
|
+
open() {
|
|
103
|
+
if (this.isOpen) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
this._ensureOverlayCreated();
|
|
107
|
+
this._overlayRef.attach(this._templatePortal);
|
|
108
|
+
this._emitOnOpenedEvent();
|
|
109
|
+
}
|
|
110
|
+
_ensureOverlayCreated() {
|
|
111
|
+
let baseSize = Number(getComputedStyle(document.documentElement).getPropertyValue('--ax-base-size').replace('px', '')) / 2;
|
|
112
|
+
if (!this._overlayRef) {
|
|
113
|
+
const positionStrategy = this._overlay.position()
|
|
114
|
+
.flexibleConnectedTo(this._getInnerElement())
|
|
115
|
+
.withPositions([
|
|
116
|
+
{
|
|
117
|
+
originX: 'start',
|
|
118
|
+
originY: 'bottom',
|
|
119
|
+
overlayX: 'start',
|
|
120
|
+
overlayY: 'top',
|
|
121
|
+
offsetY: baseSize
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
originX: 'start',
|
|
125
|
+
originY: 'top',
|
|
126
|
+
overlayX: 'start',
|
|
127
|
+
overlayY: 'bottom'
|
|
128
|
+
}
|
|
129
|
+
])
|
|
130
|
+
.withPush(false);
|
|
131
|
+
this._overlayRef = this._overlay.create({
|
|
132
|
+
positionStrategy,
|
|
133
|
+
scrollStrategy: this._overlay.scrollStrategies.close(),
|
|
134
|
+
panelClass: ['animate__animated', 'animate__fadeIn', 'animate__faster'],
|
|
135
|
+
hasBackdrop: false,
|
|
136
|
+
backdropClass: ['cdk-overlay-transparent-backdrop']
|
|
137
|
+
});
|
|
138
|
+
this._subs[0] = this._overlayRef._outsidePointerEvents.subscribe(c => {
|
|
139
|
+
const target = c.target;
|
|
140
|
+
const comElem = this._getHostElement();
|
|
141
|
+
if (!(comElem.contains(target))) {
|
|
142
|
+
this.close();
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
this._subs[1] = this._overlayRef.attachments().subscribe(() => {
|
|
146
|
+
if (this.fitParent === true) {
|
|
147
|
+
this._dropdownWidth = this._getHostElement().offsetWidth;
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this._dropdownWidth = this._getHostElement().offsetWidth * 1.5;
|
|
151
|
+
}
|
|
152
|
+
this._subs[2] = this._platform.scroll.subscribe(c => {
|
|
153
|
+
if (!c.nativeEvent.target.closest('.ax-overlay-pane'))
|
|
154
|
+
this.close();
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
if (!this._templatePortal) {
|
|
159
|
+
this._templatePortal = new TemplatePortal(this._baseTemplate, this._viewContainerRef);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
get isOpen() {
|
|
163
|
+
return this._overlayRef ? this._overlayRef.hasAttached() : false;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
AXDropdownButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDropdownButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i2.AXPlatform }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
167
|
+
AXDropdownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: { disabled: "disabled", tabIndex: "tabIndex", size: "size", cssClass: "cssClass", text: "text", submitBehavior: "submitBehavior", cancelBehavior: "cancelBehavior", color: "color", look: "look", toggleable: "toggleable", selected: "selected", items: "items", dropdownIcon: "dropdownIcon", splited: "splited" }, outputs: { onClick: "onClick", onBlur: "onBlur", onFocus: "onFocus", onItemClick: "onItemClick" }, host: { listeners: { "keydown": "_handleKeydownHandler($event)" }, classAttribute: "ax-dropdown-button" }, queries: [{ propertyName: "_contentButtons", predicate: AXButtonItemComponent }], viewQueries: [{ propertyName: "_baseTemplate", first: true, predicate: ["baseTemplate"], descendants: true }, { propertyName: "_viewButtons", predicate: AXButtonItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<button [ngClass]=\"_classes\" class=\"{{cssClass}}\" [disabled]=\"disabled\" [tabindex]=\"tabIndex\" [attr.style]=\"cssStyle\"\n (click)=\"_emitOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\n <ng-content select=\"ax-loading\">\n </ng-content>\n <ng-content select=\"ax-prefix\">\n </ng-content>\n <ng-content select=\"ax-icon\">\n </ng-content>\n <span *ngIf=\"text\">{{text}}</span>\n <ng-content select=\"ax-suffix\">\n </ng-content>\n <ng-container *ngIf=\"!splited\">\n <ax-icon [icon]=\"dropdownIcon\"></ax-icon>\n </ng-container>\n</button>\n<button class=\"ax-button ax-dropdown-arrow {{cssClass}}\" (click)=\"_handleArrowClickEvent($event)\" *ngIf=\"splited\">\n <ax-icon [icon]=\"dropdownIcon\"></ax-icon>\n</button>\n<ng-template #baseTemplate>\n <div class=\"ax-overlay-pane ax-dropdown-list\" [style.min-width.px]=\"_dropdownWidth\">\n <ng-container *ngIf=\"items && items.length;else panelTpl\">\n <ax-button-item [text]=\"item.text\" [color]=\"item.color\" *ngFor=\"let item of items\">\n <ax-prefix *ngIf=\"item.iconClass\">\n <ax-icon [icon]=\"item.iconClass\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n <ng-template #panelTpl>\n <ng-content select=\"ng-container[panel],ax-button-item\">\n </ng-content>\n </ng-template>\n </div>\n</ng-template>", components: [{ type: i3.AXIconComponent, selector: "ax-icon", inputs: ["icon"] }, { type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["text", "tooltip", "selected", "seperated", "name", "data", "color"] }, { type: i5.AXDecoratorPrefixComponent, selector: "ax-prefix" }], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDropdownButtonComponent, decorators: [{
|
|
169
|
+
type: Component,
|
|
170
|
+
args: [{
|
|
171
|
+
selector: 'ax-dropdown-button',
|
|
172
|
+
templateUrl: 'dropdown-button.component.html',
|
|
173
|
+
inputs: ['disabled', 'tabIndex', 'size', 'cssClass', ...BUTTON_INPUTS],
|
|
174
|
+
outputs: ['onClick', 'onBlur', 'onFocus'],
|
|
175
|
+
encapsulation: ViewEncapsulation.None,
|
|
176
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
177
|
+
host: { class: 'ax-dropdown-button' }
|
|
178
|
+
}]
|
|
179
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i2.AXPlatform }, { type: i0.ViewContainerRef }]; }, propDecorators: { _contentButtons: [{
|
|
180
|
+
type: ContentChildren,
|
|
181
|
+
args: [AXButtonItemComponent]
|
|
182
|
+
}], _viewButtons: [{
|
|
183
|
+
type: ViewChildren,
|
|
184
|
+
args: [AXButtonItemComponent]
|
|
185
|
+
}], onItemClick: [{
|
|
186
|
+
type: Output
|
|
187
|
+
}], items: [{
|
|
188
|
+
type: Input
|
|
189
|
+
}], _baseTemplate: [{
|
|
190
|
+
type: ViewChild,
|
|
191
|
+
args: ['baseTemplate']
|
|
192
|
+
}], dropdownIcon: [{
|
|
193
|
+
type: Input
|
|
194
|
+
}], splited: [{
|
|
195
|
+
type: Input
|
|
196
|
+
}], _handleKeydownHandler: [{
|
|
197
|
+
type: HostListener,
|
|
198
|
+
args: ['keydown', ['$event']]
|
|
199
|
+
}] } });
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvYnV0dG9uL2Ryb3Bkb3duLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL2J1dHRvbi9kcm9wZG93bi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBR04sU0FBUyxFQUNULFlBQVksRUFFWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBeUUsTUFBTSxTQUFTLENBQUM7QUFDakgsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQUVoRSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FDbEMsdUJBQXVCLENBQ25CLDJCQUEyQixDQUN2Qix5QkFBeUIsQ0FDckIscUJBQXFCLENBQ2pCLHdCQUF3QixDQUFDLENBQUMsZUFBZSxDQUFDLENBQ3pDLENBQ0osQ0FDSixDQUNKLENBQ0osQ0FBQTtBQVdMLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx5QkFBeUI7SUFpQ3BFLFlBQ0ksV0FBdUIsRUFDdkIsSUFBdUIsRUFDZixRQUFpQixFQUNqQixTQUFxQixFQUNyQixpQkFBbUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUhoQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQVk7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQWhDL0MsZ0JBQVcsR0FBcUMsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUF3QnZGLFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBa0MzQixpQkFBWSxHQUFXLDBDQUEwQyxDQUFDO1FBR2xFLFlBQU8sR0FBWSxJQUFJLENBQUM7SUEzQnhCLENBQUM7SUEzQkQsSUFDVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsQ0FBaUI7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBd0JPLGNBQWM7UUFDbEIsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFHRCxVQUFVO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxTQUFTOztRQUNMLE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsTUFBTSxFQUFFLENBQUM7UUFDM0IsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxPQUFPLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQixDQUFDLGFBQUQsQ0FBQyx1QkFBRCxDQUFDLENBQUUsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBU0QscUJBQXFCLENBQUMsQ0FBZ0I7UUFDbEMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUMzQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDakI7UUFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFO1lBQ3BCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2IsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ3ZCO1NBQ0o7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsQ0FBYTtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNqQjthQUNJO1lBQ0QsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlCO0lBQ0wsQ0FBQztJQUVELHNCQUFzQixDQUFDLENBQWE7UUFDaEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxDQUFlLEVBQUUsSUFBMkI7UUFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDbEIsU0FBUyxFQUFFLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNuQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVc7WUFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsQ0FBZTtRQUN0QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUvQyxDQUFDO0lBR0QsTUFBTTtRQUNGLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDNUM7SUFDTCxDQUFDO0lBRUQsS0FBSzs7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNkLE9BQU87U0FDVjtRQUNELE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsTUFBTSxFQUFFLENBQUM7UUFDM0IsTUFBQSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQywwQ0FBRSxXQUFXLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTNILElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7aUJBQzVDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2lCQUM1QyxhQUFhLENBQUM7Z0JBQ1g7b0JBQ0ksT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sRUFBRSxRQUFRO29CQUNqQixRQUFRLEVBQUUsT0FBTztvQkFDakIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsT0FBTyxFQUFFLFFBQVE7aUJBQ3BCO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUUsS0FBSztvQkFDZCxRQUFRLEVBQUUsT0FBTztvQkFDakIsUUFBUSxFQUFFLFFBQVE7aUJBQ3JCO2FBQ0osQ0FBQztpQkFDRCxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDcEMsZ0JBQWdCO2dCQUNoQixjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3RELFVBQVUsRUFBRSxDQUFDLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDO2dCQUN2RSxXQUFXLEVBQUUsS0FBSztnQkFDbEIsYUFBYSxFQUFFLENBQUMsa0NBQWtDLENBQUM7YUFDdEQsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQXFCLENBQUM7Z0JBQ3ZDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO29CQUM3QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQ2hCO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDMUQsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRTtvQkFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUM1RDtxQkFBTTtvQkFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO2lCQUNsRTtnQkFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDaEQsSUFBSSxDQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBc0IsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7d0JBQ2xFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDckIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3pGO0lBQ0wsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3JFLENBQUM7O3NIQWhNUSx5QkFBeUI7MEdBQXpCLHlCQUF5QixzbUJBRWpCLHFCQUFxQiw4SkFDeEIscUJBQXFCLHVFQ3hEdkMsMitDQWdDYzsyRkRxQkQseUJBQXlCO2tCQVRyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLGFBQWEsQ0FBQztvQkFDdEUsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUM7b0JBQ3pDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFO2lCQUN4QzsrTUFHMkMsZUFBZTtzQkFBdEQsZUFBZTt1QkFBQyxxQkFBcUI7Z0JBQ0QsWUFBWTtzQkFBaEQsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBR25DLFdBQVc7c0JBRFYsTUFBTTtnQkFTSSxLQUFLO3NCQURmLEtBQUs7Z0JBWU4sYUFBYTtzQkFEWixTQUFTO3VCQUFDLGNBQWM7Z0JBd0N6QixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLHFCQUFxQjtzQkFEcEIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhCYXNlQ29tcG9uZW50LCBBWEJ1dHRvbkNsaWNrRXZlbnQsIEFYQ2xpY2tFdmVudCwgQVhTdHlsZUJ1dHRvbkxvb2ssIEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICcuLi9iYXNlJztcbmltcG9ydCB7IEJVVFRPTl9JTlBVVFMsIF9CdXR0b25Db21wb25lbnRNaXhpbiB9IGZyb20gJy4uL2Jhc2UvbWl4aW4vYnV0dG9uLW1peGluLmNsYXNzJztcbmltcG9ydCB7IF9DbGlja2FibGVDb21wb25lbmV0TWl4aW4gfSBmcm9tICcuLi9iYXNlL21peGluL2NsaWNrYWJsZS1taXhpbi5jbGFzcyc7XG5pbXBvcnQgeyBfRGF0YWxpc3RDb21wb25lbmV0TWl4aW4gfSBmcm9tICcuLi9iYXNlL21peGluL2RhdGFsaXN0LWNvbXBvbmVudC5jbGFzcyc7XG5pbXBvcnQgeyBfRHJvcGRvd25Db21wb25lbmV0TWl4aW4gfSBmcm9tICcuLi9iYXNlL21peGluL2Ryb3Bkb3duLW1peGluLmNsYXNzJztcbmltcG9ydCB7IF9JbnRlcmFjdGl2ZUNvbXBvbmVuZXRNaXhpbiB9IGZyb20gJy4uL2Jhc2UvbWl4aW4vaW50ZXJhY3RpdmUtbWl4aW4uY2xhc3MnO1xuaW1wb3J0IHsgX1NpemFibGVDb21wb25lbmV0TWl4aW4gfSBmcm9tICcuLi9iYXNlL21peGluL3NpemFibGUtbWl4aW4uY2xhc3MnO1xuaW1wb3J0IHsgX1ZhbHVlQ29tcG9uZW5ldE1peGluIH0gZnJvbSAnLi4vYmFzZS9taXhpbi92YWx1ZS1taXhpbi5jbGFzcyc7XG5pbXBvcnQgeyBBWEJ1dHRvbkl0ZW0gfSBmcm9tICcuL2J1dHRvbi1pdGVtLmNsYXNzJztcbmltcG9ydCB7IEFYQnV0dG9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9uLWl0ZW0uY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IEFYQmFzZURyb3Bkb3duQnV0dG9uTWl4aW4gPVxuICAgIF9TaXphYmxlQ29tcG9uZW5ldE1peGluKFxuICAgICAgICBfSW50ZXJhY3RpdmVDb21wb25lbmV0TWl4aW4oXG4gICAgICAgICAgICBfQ2xpY2thYmxlQ29tcG9uZW5ldE1peGluKFxuICAgICAgICAgICAgICAgIF9CdXR0b25Db21wb25lbnRNaXhpbihcbiAgICAgICAgICAgICAgICAgICAgX0Ryb3Bkb3duQ29tcG9uZW5ldE1peGluKChBWEJhc2VDb21wb25lbnQpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgIClcbiAgICApXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXgtZHJvcGRvd24tYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2Ryb3Bkb3duLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3RhYkluZGV4JywgJ3NpemUnLCAnY3NzQ2xhc3MnLCAuLi5CVVRUT05fSU5QVVRTXSxcbiAgICBvdXRwdXRzOiBbJ29uQ2xpY2snLCAnb25CbHVyJywgJ29uRm9jdXMnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdheC1kcm9wZG93bi1idXR0b24nIH1cbn0pXG5leHBvcnQgY2xhc3MgQVhEcm9wZG93bkJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIEFYQmFzZURyb3Bkb3duQnV0dG9uTWl4aW4ge1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihBWEJ1dHRvbkl0ZW1Db21wb25lbnQpIF9jb250ZW50QnV0dG9uczogUXVlcnlMaXN0PEFYQnV0dG9uSXRlbUNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZHJlbihBWEJ1dHRvbkl0ZW1Db21wb25lbnQpIF92aWV3QnV0dG9uczogUXVlcnlMaXN0PEFYQnV0dG9uSXRlbUNvbXBvbmVudD47XG5cbiAgICBAT3V0cHV0KClcbiAgICBvbkl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEFYQnV0dG9uQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQnV0dG9uQ2xpY2tFdmVudD4oKTtcblxuXG5cblxuXG4gICAgcHJpdmF0ZSBfaXRlbXM6IEFYQnV0dG9uSXRlbVtdO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBpdGVtcygpOiBBWEJ1dHRvbkl0ZW1bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtcyB8fCBbXTtcbiAgICB9XG4gICAgcHVibGljIHNldCBpdGVtcyh2OiBBWEJ1dHRvbkl0ZW1bXSkge1xuICAgICAgICB0aGlzLl9pdGVtcyA9IHY7XG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cblxuXG4gICAgQFZpZXdDaGlsZCgnYmFzZVRlbXBsYXRlJylcbiAgICBfYmFzZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuICAgIF90ZW1wbGF0ZVBvcnRhbDogVGVtcGxhdGVQb3J0YWw7XG5cbiAgICBfZHJvcGRvd25XaWR0aDogbnVtYmVyO1xuICAgIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBwcml2YXRlIF9wbGF0Zm9ybTogQVhQbGF0Zm9ybSxcbiAgICAgICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xuICAgICAgICBzdXBlcihfZWxlbWVudFJlZiwgX2NkcilcbiAgICB9XG5cblxuXG4gICAgcHJpdmF0ZSBfZ2V0QWxsQnV0dG9ucygpOiBBWEJ1dHRvbkl0ZW1Db21wb25lbnRbXSB7XG4gICAgICAgIHJldHVybiBbLi4uQXJyYXkuZnJvbSh0aGlzLl92aWV3QnV0dG9ucyksIC4uLkFycmF5LmZyb20odGhpcy5fY29udGVudEJ1dHRvbnMpXTtcbiAgICB9XG5cblxuICAgIG9uVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuX2dldEFsbEJ1dHRvbnMoKS5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc3Vicy5wdXNoKGMub25DbGljay5zdWJzY3JpYmUodGhpcy5faGFuZGxlT25JdGVtQ2xpY2suYmluZCh0aGlzKSkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gICAgICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHtcbiAgICAgICAgICAgIHM/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZHJvcGRvd25JY29uOiBzdHJpbmcgPSAnYXgtaWMtY2hldnJvbiBheC10cmFuc2Zvcm0gYXgtLXJvdGF0ZS05MCc7XG5cbiAgICBASW5wdXQoKVxuICAgIHNwbGl0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgX2hhbmRsZUtleWRvd25IYW5kbGVyKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInICYmIGUudHlwZSA9PT0gJ2tleWRvd24nKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2VtaXRPbkNsaWNrRXZlbnQoZTogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuc3BsaXRlZCkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLl9lbWl0T25DbGlja0V2ZW50KGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2hhbmRsZUFycm93Q2xpY2tFdmVudChlOiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgfVxuXG4gICAgX2VtaXRPbkl0ZW1DbGlja0V2ZW50KGU6IEFYQ2xpY2tFdmVudCwgaXRlbTogQVhCdXR0b25JdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25JdGVtQ2xpY2suZW1pdCh7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSxcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBlLm5hdGl2ZUV2ZW50LFxuICAgICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgICAgICAgZGF0YTogaXRlbS5kYXRhLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hhbmRsZU9uSXRlbUNsaWNrKGU6IEFYQ2xpY2tFdmVudCkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuX2VtaXRPbkl0ZW1DbGlja0V2ZW50KGUsIGUuY29tcG9uZW50KTtcblxuICAgIH1cblxuXG4gICAgdG9nZ2xlKCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhpcy5pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsb3NlKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gICAgICAgIHRoaXMuX3N1YnNbMV0/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX2VtaXRPbkNsb3NlZEV2ZW50KCk7XG4gICAgfVxuXG4gICAgb3BlbigpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZW5zdXJlT3ZlcmxheUNyZWF0ZWQoKTtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2godGhpcy5fdGVtcGxhdGVQb3J0YWwpO1xuICAgICAgICB0aGlzLl9lbWl0T25PcGVuZWRFdmVudCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Vuc3VyZU92ZXJsYXlDcmVhdGVkKCkge1xuICAgICAgICBsZXQgYmFzZVNpemUgPSBOdW1iZXIoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0tYXgtYmFzZS1zaXplJykucmVwbGFjZSgncHgnLCAnJykpIC8gMjtcblxuICAgICAgICBpZiAoIXRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKClcbiAgICAgICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9nZXRJbm5lckVsZW1lbnQoKSlcbiAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WTogYmFzZVNpemVcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbSdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgLndpdGhQdXNoKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKCksXG4gICAgICAgICAgICAgICAgcGFuZWxDbGFzczogWydhbmltYXRlX19hbmltYXRlZCcsICdhbmltYXRlX19mYWRlSW4nLCAnYW5pbWF0ZV9fZmFzdGVyJ10sXG4gICAgICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6IFsnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9zdWJzWzBdID0gdGhpcy5fb3ZlcmxheVJlZi5fb3V0c2lkZVBvaW50ZXJFdmVudHMuc3Vic2NyaWJlKGMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGMudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbUVsZW0gPSB0aGlzLl9nZXRIb3N0RWxlbWVudCgpO1xuICAgICAgICAgICAgICAgIGlmICghKGNvbUVsZW0uY29udGFpbnModGFyZ2V0KSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fc3Vic1sxXSA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNobWVudHMoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpdFBhcmVudCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kcm9wZG93bldpZHRoID0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5vZmZzZXRXaWR0aDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kcm9wZG93bldpZHRoID0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5vZmZzZXRXaWR0aCAqIDEuNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fc3Vic1syXSA9IHRoaXMuX3BsYXRmb3JtLnNjcm9sbC5zdWJzY3JpYmUoYyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghKGMubmF0aXZlRXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KCcuYXgtb3ZlcmxheS1wYW5lJykpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX3RlbXBsYXRlUG9ydGFsKSB7XG4gICAgICAgICAgICB0aGlzLl90ZW1wbGF0ZVBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLl9iYXNlVGVtcGxhdGUsIHRoaXMuX3ZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJsYXlSZWYgPyB0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkgOiBmYWxzZTtcbiAgICB9XG5cblxufSIsIjxidXR0b24gW25nQ2xhc3NdPVwiX2NsYXNzZXNcIiBjbGFzcz1cInt7Y3NzQ2xhc3N9fVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiIFthdHRyLnN0eWxlXT1cImNzc1N0eWxlXCJcbiAgICAoY2xpY2spPVwiX2VtaXRPbkNsaWNrRXZlbnQoJGV2ZW50KVwiIChmb2N1cyk9XCJfZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCIgKGJsdXIpPVwiX2VtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtbG9hZGluZ1wiPlxuICAgIDwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj5cbiAgICA8L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtaWNvblwiPlxuICAgIDwvbmctY29udGVudD5cbiAgICA8c3BhbiAqbmdJZj1cInRleHRcIj57e3RleHR9fTwvc3Bhbj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zdWZmaXhcIj5cbiAgICA8L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzcGxpdGVkXCI+XG4gICAgICAgIDxheC1pY29uIFtpY29uXT1cImRyb3Bkb3duSWNvblwiPjwvYXgtaWNvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvYnV0dG9uPlxuPGJ1dHRvbiBjbGFzcz1cImF4LWJ1dHRvbiBheC1kcm9wZG93bi1hcnJvdyB7e2Nzc0NsYXNzfX1cIiAoY2xpY2spPVwiX2hhbmRsZUFycm93Q2xpY2tFdmVudCgkZXZlbnQpXCIgKm5nSWY9XCJzcGxpdGVkXCI+XG4gICAgPGF4LWljb24gW2ljb25dPVwiZHJvcGRvd25JY29uXCI+PC9heC1pY29uPlxuPC9idXR0b24+XG48bmctdGVtcGxhdGUgI2Jhc2VUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtb3ZlcmxheS1wYW5lIGF4LWRyb3Bkb3duLWxpc3RcIiBbc3R5bGUubWluLXdpZHRoLnB4XT1cIl9kcm9wZG93bldpZHRoXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtcyAmJiBpdGVtcy5sZW5ndGg7ZWxzZSBwYW5lbFRwbFwiPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIFt0ZXh0XT1cIml0ZW0udGV4dFwiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCIgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxuICAgICAgICAgICAgICAgIDxheC1wcmVmaXggKm5nSWY9XCJpdGVtLmljb25DbGFzc1wiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBbaWNvbl09XCJpdGVtLmljb25DbGFzc1wiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3BhbmVsVHBsPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibmctY29udGFpbmVyW3BhbmVsXSxheC1idXR0b24taXRlbVwiPlxuICAgICAgICAgICAgPC9uZy1jb250ZW50PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * from './button.component';
|
|
2
|
-
export * from './dropdown-button.component';
|
|
3
|
-
export * from './button-group.component';
|
|
4
|
-
export * from './button-item.component';
|
|
5
|
-
export * from './button.module';
|
|
6
|
-
export * from './button-item.class';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from './button.component';
|
|
2
|
+
export * from './dropdown-button.component';
|
|
3
|
+
export * from './button-group.component';
|
|
4
|
+
export * from './button-item.component';
|
|
5
|
+
export * from './button.module';
|
|
6
|
+
export * from './button-item.class';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL2J1dHRvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duLWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi1pdGVtLmNsYXNzJzsiXX0=
|