cax-design-system 2.7.11 → 2.8.0
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 +46 -46
- package/esm2022/accordion/accordion.mjs +3 -3
- package/esm2022/autocomplete/autocomplete.mjs +3 -3
- package/esm2022/avatar/avatar.mjs +3 -3
- package/esm2022/avatargroup/avatargroup.mjs +3 -3
- package/esm2022/badge/badge.mjs +3 -3
- package/esm2022/breadcrumb/breadcrumb.mjs +3 -3
- package/esm2022/button/button.mjs +3 -3
- package/esm2022/calendar/calendar.mjs +3 -3
- package/esm2022/card/card.mjs +3 -3
- package/esm2022/cascadeselect/cascadeselect.mjs +5 -5
- package/esm2022/checkbox/checkbox.mjs +3 -3
- package/esm2022/chip/chip.mjs +3 -3
- package/esm2022/chips/chips.mjs +3 -3
- package/esm2022/colorpicker/colorpicker.mjs +3 -3
- package/esm2022/commentbox/commentbox.mjs +5 -4
- package/esm2022/confirmdialog/confirmdialog.mjs +3 -3
- package/esm2022/dialog/dialog.mjs +3 -3
- package/esm2022/divider/divider.mjs +3 -3
- package/esm2022/dropdown/dropdown-item.mjs +3 -3
- package/esm2022/dropdown/dropdown.mjs +3 -3
- package/esm2022/editor/editor.mjs +3 -3
- package/esm2022/image/image.mjs +3 -3
- package/esm2022/inputgroup/inputgroup.mjs +3 -3
- package/esm2022/inputgroupaddon/inputgroupaddon.mjs +3 -3
- package/esm2022/inputmask/inputmask.mjs +3 -3
- package/esm2022/inputnumber/inputnumber.mjs +3 -3
- package/esm2022/inputtext/inputtext.component.mjs +3 -3
- package/esm2022/inputtextarea/inputtextarea.component.mjs +3 -3
- package/esm2022/logo/logo.mjs +3 -3
- package/esm2022/menu/menu.mjs +5 -5
- package/esm2022/messages/messages.mjs +3 -3
- package/esm2022/multiselect/multiselect.mjs +5 -5
- package/esm2022/navigation/navigation.mjs +3 -3
- package/esm2022/overlay/overlay.mjs +3 -3
- package/esm2022/overlaypanel/overlaypanel.mjs +3 -3
- package/esm2022/paginator/paginator.mjs +3 -3
- package/esm2022/progressbar/progressbar.mjs +3 -3
- package/esm2022/progressspinner/progressspinner.mjs +3 -3
- package/esm2022/radiobutton/radiobutton.mjs +3 -3
- package/esm2022/scroller/scroller.mjs +3 -3
- package/esm2022/selectbutton/selectbutton.mjs +3 -3
- package/esm2022/sidebar/sidebar.mjs +3 -3
- package/esm2022/skeleton/skeleton.mjs +3 -3
- package/esm2022/speeddial/speeddial.mjs +3 -3
- package/esm2022/splitbutton/splitbutton.mjs +3 -3
- package/esm2022/splitter/splitter.mjs +3 -3
- package/esm2022/steps/steps.mjs +3 -3
- package/esm2022/table/components/cell-editor/cell-editor.mjs +3 -3
- package/esm2022/table/components/column-filter/column-filter.mjs +3 -3
- package/esm2022/table/components/column-filter-form-element/column-filter-form-element.mjs +3 -3
- package/esm2022/table/components/sort-icon/sort-icon.mjs +3 -3
- package/esm2022/table/components/table-body/table-body.mjs +3 -3
- package/esm2022/table/components/table-checkbox/table-checkbox.mjs +3 -3
- package/esm2022/table/components/table-header-checkbox/table-header-checkbox.mjs +3 -3
- package/esm2022/table/components/table-radio-button/table-radio-button.mjs +3 -3
- package/esm2022/table/table.mjs +3 -3
- package/esm2022/tableconfiguration/tableconfiguration.mjs +3 -3
- package/esm2022/tabview/tabview.mjs +5 -5
- package/esm2022/tag/tag.mjs +3 -3
- package/esm2022/timeline/timeline.mjs +3 -3
- package/esm2022/toast/toast.mjs +3 -3
- package/esm2022/toast/toastitem.mjs +3 -3
- package/esm2022/toggleswitch/toggleswitch.mjs +3 -3
- package/esm2022/tree/tree.mjs +5 -5
- package/esm2022/treeselect/treeselect.mjs +3 -3
- package/esm2022/tristatecheckbox/tristatecheckbox.mjs +3 -3
- package/esm2022/upload/upload.component.mjs +3 -3
- package/fesm2022/cax-design-system-accordion.mjs +2 -2
- package/fesm2022/cax-design-system-accordion.mjs.map +1 -1
- package/fesm2022/cax-design-system-autocomplete.mjs +2 -2
- package/fesm2022/cax-design-system-autocomplete.mjs.map +1 -1
- package/fesm2022/cax-design-system-avatar.mjs +2 -2
- package/fesm2022/cax-design-system-avatar.mjs.map +1 -1
- package/fesm2022/cax-design-system-avatargroup.mjs +2 -2
- package/fesm2022/cax-design-system-avatargroup.mjs.map +1 -1
- package/fesm2022/cax-design-system-badge.mjs +2 -2
- package/fesm2022/cax-design-system-badge.mjs.map +1 -1
- package/fesm2022/cax-design-system-breadcrumb.mjs +2 -2
- package/fesm2022/cax-design-system-breadcrumb.mjs.map +1 -1
- package/fesm2022/cax-design-system-button.mjs +2 -2
- package/fesm2022/cax-design-system-button.mjs.map +1 -1
- package/fesm2022/cax-design-system-calendar.mjs +2 -2
- package/fesm2022/cax-design-system-calendar.mjs.map +1 -1
- package/fesm2022/cax-design-system-card.mjs +2 -2
- package/fesm2022/cax-design-system-card.mjs.map +1 -1
- package/fesm2022/cax-design-system-cascadeselect.mjs +4 -4
- package/fesm2022/cax-design-system-cascadeselect.mjs.map +1 -1
- package/fesm2022/cax-design-system-checkbox.mjs +2 -2
- package/fesm2022/cax-design-system-checkbox.mjs.map +1 -1
- package/fesm2022/cax-design-system-chip.mjs +2 -2
- package/fesm2022/cax-design-system-chip.mjs.map +1 -1
- package/fesm2022/cax-design-system-chips.mjs +2 -2
- package/fesm2022/cax-design-system-chips.mjs.map +1 -1
- package/fesm2022/cax-design-system-colorpicker.mjs +2 -2
- package/fesm2022/cax-design-system-colorpicker.mjs.map +1 -1
- package/fesm2022/cax-design-system-commentbox.mjs +4 -3
- package/fesm2022/cax-design-system-commentbox.mjs.map +1 -1
- package/fesm2022/cax-design-system-confirmdialog.mjs +2 -2
- package/fesm2022/cax-design-system-confirmdialog.mjs.map +1 -1
- package/fesm2022/cax-design-system-dialog.mjs +2 -2
- package/fesm2022/cax-design-system-dialog.mjs.map +1 -1
- package/fesm2022/cax-design-system-divider.mjs +2 -2
- package/fesm2022/cax-design-system-divider.mjs.map +1 -1
- package/fesm2022/cax-design-system-dropdown.mjs +4 -4
- package/fesm2022/cax-design-system-dropdown.mjs.map +1 -1
- package/fesm2022/cax-design-system-editor.mjs +2 -2
- package/fesm2022/cax-design-system-editor.mjs.map +1 -1
- package/fesm2022/cax-design-system-image.mjs +2 -2
- package/fesm2022/cax-design-system-image.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputgroup.mjs +2 -2
- package/fesm2022/cax-design-system-inputgroup.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputgroupaddon.mjs +2 -2
- package/fesm2022/cax-design-system-inputgroupaddon.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputmask.mjs +2 -2
- package/fesm2022/cax-design-system-inputmask.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputnumber.mjs +2 -2
- package/fesm2022/cax-design-system-inputnumber.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputtext.mjs +2 -2
- package/fesm2022/cax-design-system-inputtext.mjs.map +1 -1
- package/fesm2022/cax-design-system-inputtextarea.mjs +2 -2
- package/fesm2022/cax-design-system-inputtextarea.mjs.map +1 -1
- package/fesm2022/cax-design-system-logo.mjs +2 -2
- package/fesm2022/cax-design-system-logo.mjs.map +1 -1
- package/fesm2022/cax-design-system-menu.mjs +4 -4
- package/fesm2022/cax-design-system-menu.mjs.map +1 -1
- package/fesm2022/cax-design-system-messages.mjs +2 -2
- package/fesm2022/cax-design-system-messages.mjs.map +1 -1
- package/fesm2022/cax-design-system-multiselect.mjs +4 -4
- package/fesm2022/cax-design-system-multiselect.mjs.map +1 -1
- package/fesm2022/cax-design-system-navigation.mjs +2 -2
- package/fesm2022/cax-design-system-navigation.mjs.map +1 -1
- package/fesm2022/cax-design-system-overlay.mjs +2 -2
- package/fesm2022/cax-design-system-overlay.mjs.map +1 -1
- package/fesm2022/cax-design-system-overlaypanel.mjs +2 -2
- package/fesm2022/cax-design-system-overlaypanel.mjs.map +1 -1
- package/fesm2022/cax-design-system-paginator.mjs +2 -2
- package/fesm2022/cax-design-system-paginator.mjs.map +1 -1
- package/fesm2022/cax-design-system-progressbar.mjs +2 -2
- package/fesm2022/cax-design-system-progressbar.mjs.map +1 -1
- package/fesm2022/cax-design-system-progressspinner.mjs +2 -2
- package/fesm2022/cax-design-system-progressspinner.mjs.map +1 -1
- package/fesm2022/cax-design-system-radiobutton.mjs +2 -2
- package/fesm2022/cax-design-system-radiobutton.mjs.map +1 -1
- package/fesm2022/cax-design-system-scroller.mjs +2 -2
- package/fesm2022/cax-design-system-scroller.mjs.map +1 -1
- package/fesm2022/cax-design-system-selectbutton.mjs +2 -2
- package/fesm2022/cax-design-system-selectbutton.mjs.map +1 -1
- package/fesm2022/cax-design-system-sidebar.mjs +2 -2
- package/fesm2022/cax-design-system-sidebar.mjs.map +1 -1
- package/fesm2022/cax-design-system-skeleton.mjs +2 -2
- package/fesm2022/cax-design-system-skeleton.mjs.map +1 -1
- package/fesm2022/cax-design-system-speeddial.mjs +2 -2
- package/fesm2022/cax-design-system-speeddial.mjs.map +1 -1
- package/fesm2022/cax-design-system-splitbutton.mjs +2 -2
- package/fesm2022/cax-design-system-splitbutton.mjs.map +1 -1
- package/fesm2022/cax-design-system-splitter.mjs +2 -2
- package/fesm2022/cax-design-system-splitter.mjs.map +1 -1
- package/fesm2022/cax-design-system-steps.mjs +2 -2
- package/fesm2022/cax-design-system-steps.mjs.map +1 -1
- package/fesm2022/cax-design-system-table.mjs +18 -18
- package/fesm2022/cax-design-system-table.mjs.map +1 -1
- package/fesm2022/cax-design-system-tableconfiguration.mjs +2 -2
- package/fesm2022/cax-design-system-tableconfiguration.mjs.map +1 -1
- package/fesm2022/cax-design-system-tabview.mjs +4 -4
- package/fesm2022/cax-design-system-tabview.mjs.map +1 -1
- package/fesm2022/cax-design-system-tag.mjs +2 -2
- package/fesm2022/cax-design-system-tag.mjs.map +1 -1
- package/fesm2022/cax-design-system-timeline.mjs +2 -2
- package/fesm2022/cax-design-system-timeline.mjs.map +1 -1
- package/fesm2022/cax-design-system-toast.mjs +4 -4
- package/fesm2022/cax-design-system-toast.mjs.map +1 -1
- package/fesm2022/cax-design-system-toggleswitch.mjs +2 -2
- package/fesm2022/cax-design-system-toggleswitch.mjs.map +1 -1
- package/fesm2022/cax-design-system-tree.mjs +4 -4
- package/fesm2022/cax-design-system-tree.mjs.map +1 -1
- package/fesm2022/cax-design-system-treeselect.mjs +2 -2
- package/fesm2022/cax-design-system-treeselect.mjs.map +1 -1
- package/fesm2022/cax-design-system-tristatecheckbox.mjs +2 -2
- package/fesm2022/cax-design-system-tristatecheckbox.mjs.map +1 -1
- package/fesm2022/cax-design-system-upload.mjs +2 -2
- package/fesm2022/cax-design-system-upload.mjs.map +1 -1
- package/package.json +300 -300
- package/resources/cax.min.scss +1 -1
- package/resources/cax.scss +12518 -12488
- package/resources/components/accordion/accordion.scss +46 -46
- package/resources/components/autocomplete/autocomplete.scss +183 -183
- package/resources/components/avatar/avatar.scss +34 -34
- package/resources/components/avatargroup/avatargroup.scss +10 -10
- package/resources/components/badge/badge.scss +67 -67
- package/resources/components/blockui/blockui.css +26 -26
- package/resources/components/breadcrumb/breadcrumb.scss +33 -33
- package/resources/components/button/button.scss +163 -163
- package/resources/components/calendar/calendar.scss +235 -235
- package/resources/components/card/card.scss +50 -50
- package/resources/components/carousel/carousel.css +71 -71
- package/resources/components/cascadeselect/cascadeselect.scss +105 -105
- package/resources/components/checkbox/checkbox.scss +30 -30
- package/resources/components/chip/chip.scss +6 -6
- package/resources/components/chips/chips.scss +205 -205
- package/resources/components/colorpicker/colorpicker-images.scss +6 -6
- package/resources/components/colorpicker/colorpicker.scss +82 -82
- package/resources/components/commentbox/commentbox.scss +611 -611
- package/resources/components/common/common.scss +183 -183
- package/resources/components/confirmpopup/confirmpopup.css +53 -53
- package/resources/components/contextmenu/contextmenu.css +42 -42
- package/resources/components/dataview/dataview.css +13 -13
- package/resources/components/dialog/dialog.scss +171 -171
- package/resources/components/divider/divider.scss +86 -86
- package/resources/components/dock/dock.css +107 -107
- package/resources/components/dropdown/dropdown.scss +94 -94
- package/resources/components/editor/editor.scss +3 -3
- package/resources/components/fieldset/fieldset.css +30 -30
- package/resources/components/fileupload/fileupload.css +47 -47
- package/resources/components/galleria/galleria.css +281 -281
- package/resources/components/iconfield/iconfield.css +5 -5
- package/resources/components/image/image.scss +92 -92
- package/resources/components/inplace/inplace.css +19 -19
- package/resources/components/inputicon/inputicon.css +6 -6
- package/resources/components/inputmask/inputmask.scss +12 -12
- package/resources/components/inputnumber/inputnumber.scss +109 -109
- package/resources/components/inputotp/inputotp.css +2 -2
- package/resources/components/inputswitch/inputswitch.css +23 -23
- package/resources/components/inputtext/inputtext.scss +145 -145
- package/resources/components/inputtextarea/inputtextarea.scss +10 -10
- package/resources/components/knob/knob.css +20 -20
- package/resources/components/listbox/listbox.css +40 -40
- package/resources/components/megamenu/megamenu.css +108 -108
- package/resources/components/menu/menu.scss +30 -30
- package/resources/components/menubar/menubar.css +81 -81
- package/resources/components/message/message.css +17 -17
- package/resources/components/messages/messages.scss +55 -55
- package/resources/components/multiselect/multiselect.scss +132 -132
- package/resources/components/navigation/navigation.scss +196 -196
- package/resources/components/orderlist/orderlist.css +78 -78
- package/resources/components/organizationchart/organizationchart.css +62 -62
- package/resources/components/overlay/overlay.scss +80 -80
- package/resources/components/overlaypanel/overlaypanel.scss +66 -66
- package/resources/components/paginator/paginator.scss +41 -41
- package/resources/components/panel/panel.css +29 -29
- package/resources/components/panelmenu/panelmenu.css +45 -45
- package/resources/components/password/password.css +54 -54
- package/resources/components/picklist/picklist.css +60 -60
- package/resources/components/progressbar/progressbar.scss +107 -107
- package/resources/components/progressspinner/progressspinner.scss +94 -94
- package/resources/components/radiobutton/radiobutton.scss +34 -34
- package/resources/components/rating/rating.css +15 -15
- package/resources/components/ripple/ripple.scss +29 -29
- package/resources/components/scroller/scroller.scss +58 -58
- package/resources/components/scrollpanel/scrollpanel.css +50 -50
- package/resources/components/scrolltop/scrolltop.css +18 -18
- package/resources/components/sidebar/sidebar.scss +117 -117
- package/resources/components/skeleton/skeleton.scss +24 -24
- package/resources/components/slidemenu/slidemenu.css +100 -100
- package/resources/components/slider/slider.css +41 -41
- package/resources/components/speeddial/speeddial.scss +122 -122
- package/resources/components/spinner/spinner.css +63 -63
- package/resources/components/splitbutton/splitbutton.scss +53 -53
- package/resources/components/splitter/splitter.scss +73 -73
- package/resources/components/stepper/stepper.css +9 -9
- package/resources/components/steps/steps.scss +50 -50
- package/resources/components/table/table.scss +451 -451
- package/resources/components/tableconfiguration/tableconfiguration.scss +115 -115
- package/resources/components/tabmenu/tabmenu.css +80 -80
- package/resources/components/tabview/tabview.scss +198 -198
- package/resources/components/tag/tag.scss +23 -23
- package/resources/components/terminal/terminal.css +24 -24
- package/resources/components/tieredmenu/tieredmenu.scss +55 -55
- package/resources/components/timeline/timeline.scss +128 -128
- package/resources/components/toast/toast.scss +87 -87
- package/resources/components/toggleswitch/toggleswitch.scss +36 -36
- package/resources/components/toolbar/toolbar.css +19 -19
- package/resources/components/tooltip/tooltip.scss +124 -124
- package/resources/components/tree/tree.scss +154 -154
- package/resources/components/treeselect/treeselect.scss +114 -114
- package/resources/components/treetable/treetable.css +205 -205
- package/resources/components/upload/upload.component.scss +145 -145
- package/resources/logo/dataX-dark.svg +12 -12
- package/resources/logo/dataX-icon-dark.svg +5 -5
- package/resources/logo/dataX-icon.svg +5 -5
- package/resources/logo/dataX.svg +12 -12
- package/resources/styles/colors.scss +397 -397
- package/resources/styles/shadow-blur.scss +21 -21
- package/resources/styles/space-radius-border.scss +49 -49
- package/resources/styles/typography.scss +116 -135
|
@@ -167,13 +167,13 @@ export class TriStateCheckbox {
|
|
|
167
167
|
this.cd.markForCheck();
|
|
168
168
|
}
|
|
169
169
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TriStateCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.caxConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
170
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: TriStateCheckbox, isStandalone: true, selector: "cax-triStateCheckbox", inputs: { disabled: ["disabled", "disabled", booleanAttribute], name: "name", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", variant: "variant", tabindex: ["tabindex", "tabindex", numberAttribute], inputId: "inputId", style: "style", styleClass: "styleClass", label: "label", readonly: ["readonly", "readonly", booleanAttribute], checkboxTrueIcon: "checkboxTrueIcon", checkboxFalseIcon: "checkboxFalseIcon", autofocus: ["autofocus", "autofocus", booleanAttribute] }, outputs: { onChange: "onChange" }, host: { classAttribute: "cax-element" }, providers: [TRISTATECHECKBOX_VALUE_ACCESSOR], queries: [{ propertyName: "templates", predicate: CaxTemplate }], ngImport: i0, template: "<div\
|
|
170
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: TriStateCheckbox, isStandalone: true, selector: "cax-triStateCheckbox", inputs: { disabled: ["disabled", "disabled", booleanAttribute], name: "name", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", variant: "variant", tabindex: ["tabindex", "tabindex", numberAttribute], inputId: "inputId", style: "style", styleClass: "styleClass", label: "label", readonly: ["readonly", "readonly", booleanAttribute], checkboxTrueIcon: "checkboxTrueIcon", checkboxFalseIcon: "checkboxFalseIcon", autofocus: ["autofocus", "autofocus", booleanAttribute] }, outputs: { onChange: "onChange" }, host: { classAttribute: "cax-element" }, providers: [TRISTATECHECKBOX_VALUE_ACCESSOR], queries: [{ propertyName: "templates", predicate: CaxTemplate }], ngImport: i0, template: "<div\n [ngStyle]=\"style\"\n [ngClass]=\"{ 'cax-checkbox cax-component': true, 'cax-checkbox-disabled': disabled, 'cax-checkbox-focused': focused, 'cax-variant-filled': variant === 'filled' || config.inputStyle() === 'filled' }\"\n [class]=\"styleClass\"\n (click)=\"onClick($event, input)\"\n [attr.data-pc-name]=\"'tristatecheckbox'\"\n [attr.data-pc-section]=\"'root'\"\n>\n <div class=\"cax-hidden-accessible\">\n <input\n #input\n [attr.id]=\"inputId\"\n type=\"checkbox\"\n [name]=\"name\"\n [attr.tabindex]=\"tabindex\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"ariaLabel\"\n inputmode=\"none\"\n [attr.data-pc-section]=\"'hiddenInput'\"\n pAutoFocus\n [autofocus]=\"autofocus\"\n />\n </div>\n <div class=\"cax-checkbox-box\" role=\"checkbox\" [attr.aria-checked]=\"value === true\" [ngClass]=\"{ 'cax-highlight': value != null, 'cax-disabled': disabled, 'cax-focus': focused }\">\n <ng-container *ngIf=\"value === true\">\n <span *ngIf=\"checkboxTrueIcon\" [ngClass]=\"checkboxTrueIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\"></span>\n <ng-container *ngIf=\"!checkboxTrueIcon\">\n <CheckIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!checkIconTemplate\" [attr.data-pc-section]=\"'checkIcon'\" />\n <span *ngIf=\"checkIconTemplate\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\">\n <ng-template *ngTemplateOutlet=\"checkIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"value === false\">\n <span *ngIf=\"checkboxFalseIcon\" [ngClass]=\"checkboxFalseIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'uncheckIcon'\"></span>\n <ng-container *ngIf=\"!checkboxFalseIcon\">\n <TimesIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\" />\n <span class=\"cax-checkbox-icon\" *ngIf=\"uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\">\n <ng-template *ngTemplateOutlet=\"uncheckIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </ng-container>\n </div>\n</div>\n<label class=\"cax-checkbox-label\" (click)=\"onClick($event, input)\" [ngClass]=\"{ 'cax-checkbox-label-active': value != null, 'cax-disabled': disabled, 'cax-checkbox-label-focus': focused }\" *ngIf=\"label\" [attr.for]=\"inputId\">{{ label }}</label>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: AutoFocusModule }, { kind: "component", type: CheckIcon, selector: "CheckIcon" }, { kind: "component", type: TimesIcon, selector: "TimesIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
171
171
|
}
|
|
172
172
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TriStateCheckbox, decorators: [{
|
|
173
173
|
type: Component,
|
|
174
174
|
args: [{ selector: 'cax-triStateCheckbox', providers: [TRISTATECHECKBOX_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, SharedModule, AutoFocusModule, CheckIcon, TimesIcon], host: {
|
|
175
175
|
class: 'cax-element'
|
|
176
|
-
}, template: "<div\
|
|
176
|
+
}, template: "<div\n [ngStyle]=\"style\"\n [ngClass]=\"{ 'cax-checkbox cax-component': true, 'cax-checkbox-disabled': disabled, 'cax-checkbox-focused': focused, 'cax-variant-filled': variant === 'filled' || config.inputStyle() === 'filled' }\"\n [class]=\"styleClass\"\n (click)=\"onClick($event, input)\"\n [attr.data-pc-name]=\"'tristatecheckbox'\"\n [attr.data-pc-section]=\"'root'\"\n>\n <div class=\"cax-hidden-accessible\">\n <input\n #input\n [attr.id]=\"inputId\"\n type=\"checkbox\"\n [name]=\"name\"\n [attr.tabindex]=\"tabindex\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"ariaLabel\"\n inputmode=\"none\"\n [attr.data-pc-section]=\"'hiddenInput'\"\n pAutoFocus\n [autofocus]=\"autofocus\"\n />\n </div>\n <div class=\"cax-checkbox-box\" role=\"checkbox\" [attr.aria-checked]=\"value === true\" [ngClass]=\"{ 'cax-highlight': value != null, 'cax-disabled': disabled, 'cax-focus': focused }\">\n <ng-container *ngIf=\"value === true\">\n <span *ngIf=\"checkboxTrueIcon\" [ngClass]=\"checkboxTrueIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\"></span>\n <ng-container *ngIf=\"!checkboxTrueIcon\">\n <CheckIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!checkIconTemplate\" [attr.data-pc-section]=\"'checkIcon'\" />\n <span *ngIf=\"checkIconTemplate\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'checkIcon'\">\n <ng-template *ngTemplateOutlet=\"checkIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"value === false\">\n <span *ngIf=\"checkboxFalseIcon\" [ngClass]=\"checkboxFalseIcon\" class=\"cax-checkbox-icon\" [attr.data-pc-section]=\"'uncheckIcon'\"></span>\n <ng-container *ngIf=\"!checkboxFalseIcon\">\n <TimesIcon [styleClass]=\"'cax-checkbox-icon'\" *ngIf=\"!uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\" />\n <span class=\"cax-checkbox-icon\" *ngIf=\"uncheckIconTemplate\" [attr.data-pc-section]=\"'uncheckIcon'\">\n <ng-template *ngTemplateOutlet=\"uncheckIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </ng-container>\n </div>\n</div>\n<label class=\"cax-checkbox-label\" (click)=\"onClick($event, input)\" [ngClass]=\"{ 'cax-checkbox-label-active': value != null, 'cax-disabled': disabled, 'cax-checkbox-label-focus': focused }\" *ngIf=\"label\" [attr.for]=\"inputId\">{{ label }}</label>\n" }]
|
|
177
177
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.caxConfig }], propDecorators: { disabled: [{
|
|
178
178
|
type: Input,
|
|
179
179
|
args: [{ transform: booleanAttribute }]
|
|
@@ -212,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
212
212
|
type: ContentChildren,
|
|
213
213
|
args: [CaxTemplate]
|
|
214
214
|
}] } });
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpc3RhdGVjaGVja2JveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy90cmlzdGF0ZWNoZWNrYm94L3RyaXN0YXRlY2hlY2tib3gudHMiLCIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvdHJpc3RhdGVjaGVja2JveC90cmlzdGF0ZWNoZWNrYm94Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBMEIsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5TixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFhLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQUc5RCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBUTtJQUNoRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7SUFDL0MsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBQ0Y7OztHQUdHO0FBYUgsTUFBTSxPQUFPLGdCQUFnQjtJQUViO0lBQ0Q7SUFGWCxZQUNZLEVBQXFCLEVBQ3RCLE1BQWlCO1FBRGhCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3RCLFdBQU0sR0FBTixNQUFN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L0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFLN0IsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS2lDLFFBQVE7c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUs1QixPQUFPO3NCQUFmLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtrQyxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUs3QixnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUtrQyxTQUFTO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU01QixRQUFRO3NCQUFqQixNQUFNO2dCQUV1QixTQUFTO3NCQUF0QyxlQUFlO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiwgYm9vbGVhbkF0dHJpYnV0ZSwgZm9yd2FyZFJlZiwgbnVtYmVyQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjYXhDb25maWcsIENheFRlbXBsYXRlLCBTaGFyZWRNb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9hcGknO1xuaW1wb3J0IHsgQ2hlY2tJY29uIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vaWNvbnMvY2hlY2snO1xuaW1wb3J0IHsgVGltZXNJY29uIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vaWNvbnMvdGltZXMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS90cy1oZWxwZXJzJztcbmltcG9ydCB7IEF1dG9Gb2N1c01vZHVsZSB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL2F1dG9mb2N1cyc7XG5pbXBvcnQgeyBUcmlTdGF0ZUNoZWNrYm94Q2hhbmdlRXZlbnQgfSBmcm9tICcuL3RyaXN0YXRlY2hlY2tib3guaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IFRSSVNUQVRFQ0hFQ0tCT1hfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUcmlTdGF0ZUNoZWNrYm94KSxcbiAgICBtdWx0aTogdHJ1ZVxufTtcbi8qKlxuICogVHJpU3RhdGVDaGVja2JveCBpcyB1c2VkIHRvIHNlbGVjdCBlaXRoZXIgJ3RydWUnLCAnZmFsc2UnIG9yICdudWxsJyBhcyB0aGUgdmFsdWUuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NheC10cmlTdGF0ZUNoZWNrYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdHJpc3RhdGVjaGVja2JveC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtUUklTVEFURUNIRUNLQk9YX1ZBTFVFX0FDQ0VTU09SXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2hhcmVkTW9kdWxlLCBBdXRvRm9jdXNNb2R1bGUsIENoZWNrSWNvbiwgVGltZXNJY29uXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnY2F4LWVsZW1lbnQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUcmlTdGF0ZUNoZWNrYm94IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHVibGljIGNvbmZpZzogY2F4Q29uZmlnXG4gICAgKSB7fVxuICAgIC8qKlxuICAgICAqIFdoZW4gcHJlc2VudCwgaXQgc3BlY2lmaWVzIHRoYXQgdGhlIGVsZW1lbnQgc2hvdWxkIGJlIGRpc2FibGVkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgYSBzdHJpbmcgdGhhdCBsYWJlbHMgdGhlIGlucHV0IGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEVzdGFibGlzaGVzIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgY29tcG9uZW50IGFuZCBsYWJlbChzKSB3aGVyZSBpdHMgdmFsdWUgc2hvdWxkIGJlIG9uZSBvciBtb3JlIGVsZW1lbnQgSURzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFyaWFMYWJlbGxlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIHRoZSBpbnB1dCB2YXJpYW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdmFyaWFudDogJ2ZpbGxlZCcgfCAnb3V0bGluZWQnID0gJ291dGxpbmVkJztcbiAgICAvKipcbiAgICAgKiBJbmRleCBvZiB0aGUgZWxlbWVudCBpbiB0YWJiaW5nIG9yZGVyLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRhYmluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciBvZiB0aGUgZm9jdXMgaW5wdXQgdG8gbWF0Y2ggYSBsYWJlbCBkZWZpbmVkIGZvciB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGlucHV0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBMYWJlbCBvZiB0aGUgY2hlY2tib3guXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGVuIHByZXNlbnQsIGl0IHNwZWNpZmllcyB0aGF0IHRoZSBjb21wb25lbnQgY2Fubm90IGJlIGVkaXRlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcmVhZG9ubHk6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIHRoZSBpY29uIGZvciBjaGVja2JveCB0cnVlIHZhbHVlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNoZWNrYm94VHJ1ZUljb246IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgdGhlIGljb24gZm9yIGNoZWNrYm94IGZhbHNlIHZhbHVlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNoZWNrYm94RmFsc2VJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hlbiBwcmVzZW50LCBpdCBzcGVjaWZpZXMgdGhhdCB0aGUgY29tcG9uZW50IHNob3VsZCBhdXRvbWF0aWNhbGx5IGdldCBmb2N1cyBvbiBsb2FkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhdXRvZm9jdXM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIG9uIHZhbHVlIGNoYW5nZS5cbiAgICAgKiBAcGFyYW0ge1RyaVN0YXRlQ2hlY2tib3hDaGFuZ2VFdmVudH0gZXZlbnQgLSBDdXN0b20gY2hhbmdlIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPFRyaVN0YXRlQ2hlY2tib3hDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyaVN0YXRlQ2hlY2tib3hDaGFuZ2VFdmVudD4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oQ2F4VGVtcGxhdGUpIHRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxDYXhUZW1wbGF0ZT47XG5cbiAgICBjaGVja0ljb25UZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICB1bmNoZWNrSWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIGZvY3VzZWQ6IE51bGxhYmxlPGJvb2xlYW4+O1xuXG4gICAgdmFsdWU6IE51bGxhYmxlPGJvb2xlYW4+O1xuXG4gICAgb25Nb2RlbENoYW5nZTogRnVuY3Rpb24gPSAoKSA9PiB7fTtcblxuICAgIG9uTW9kZWxUb3VjaGVkOiBGdW5jdGlvbiA9ICgpID0+IHt9O1xuXG4gICAgb25DbGljayhldmVudDogRXZlbnQsIGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoZXZlbnQpO1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZShldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCB8fCB0aGlzLnZhbHVlID09IHVuZGVmaW5lZCkgdGhpcy52YWx1ZSA9IHRydWU7XG4gICAgICAgIGVsc2UgaWYgKHRoaXMudmFsdWUgPT0gdHJ1ZSkgdGhpcy52YWx1ZSA9IGZhbHNlO1xuICAgICAgICBlbHNlIGlmICh0aGlzLnZhbHVlID09IGZhbHNlKSB0aGlzLnZhbHVlID0gbnVsbDtcblxuICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NoZWNraWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3VuY2hlY2tpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51bmNoZWNrSWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRm9jdXMoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgb25CbHVyKCkge1xuICAgICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vbk1vZGVsVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG59XG4iLCI8ZGl2XHJcbiAgICBbbmdTdHlsZV09XCJzdHlsZVwiXHJcbiAgICBbbmdDbGFzc109XCJ7ICdjYXgtY2hlY2tib3ggY2F4LWNvbXBvbmVudCc6IHRydWUsICdjYXgtY2hlY2tib3gtZGlzYWJsZWQnOiBkaXNhYmxlZCwgJ2NheC1jaGVja2JveC1mb2N1c2VkJzogZm9jdXNlZCwgJ2NheC12YXJpYW50LWZpbGxlZCc6IHZhcmlhbnQgPT09ICdmaWxsZWQnIHx8IGNvbmZpZy5pbnB1dFN0eWxlKCkgPT09ICdmaWxsZWQnIH1cIlxyXG4gICAgW2NsYXNzXT1cInN0eWxlQ2xhc3NcIlxyXG4gICAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50LCBpbnB1dClcIlxyXG4gICAgW2F0dHIuZGF0YS1wYy1uYW1lXT1cIid0cmlzdGF0ZWNoZWNrYm94J1wiXHJcbiAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3Jvb3QnXCJcclxuPlxyXG4gICAgPGRpdiBjbGFzcz1cImNheC1oaWRkZW4tYWNjZXNzaWJsZVwiPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAjaW5wdXRcclxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiaW5wdXRJZFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleFwiXHJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxyXG4gICAgICAgICAgICBpbnB1dG1vZGU9XCJub25lXCJcclxuICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidoaWRkZW5JbnB1dCdcIlxyXG4gICAgICAgICAgICBwQXV0b0ZvY3VzXHJcbiAgICAgICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcclxuICAgICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2F4LWNoZWNrYm94LWJveFwiIHJvbGU9XCJjaGVja2JveFwiIFthdHRyLmFyaWEtY2hlY2tlZF09XCJ2YWx1ZSA9PT0gdHJ1ZVwiIFtuZ0NsYXNzXT1cInsgJ2NheC1oaWdobGlnaHQnOiB2YWx1ZSAhPSBudWxsLCAnY2F4LWRpc2FibGVkJzogZGlzYWJsZWQsICdjYXgtZm9jdXMnOiBmb2N1c2VkIH1cIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWUgPT09IHRydWVcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjaGVja2JveFRydWVJY29uXCIgW25nQ2xhc3NdPVwiY2hlY2tib3hUcnVlSWNvblwiIGNsYXNzPVwiY2F4LWNoZWNrYm94LWljb25cIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2NoZWNrSWNvbidcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY2hlY2tib3hUcnVlSWNvblwiPlxyXG4gICAgICAgICAgICAgICAgPENoZWNrSWNvbiBbc3R5bGVDbGFzc109XCInY2F4LWNoZWNrYm94LWljb24nXCIgKm5nSWY9XCIhY2hlY2tJY29uVGVtcGxhdGVcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2NoZWNrSWNvbidcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjaGVja0ljb25UZW1wbGF0ZVwiIGNsYXNzPVwiY2F4LWNoZWNrYm94LWljb25cIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2NoZWNrSWNvbidcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjaGVja0ljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2YWx1ZSA9PT0gZmFsc2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjaGVja2JveEZhbHNlSWNvblwiIFtuZ0NsYXNzXT1cImNoZWNrYm94RmFsc2VJY29uXCIgY2xhc3M9XCJjYXgtY2hlY2tib3gtaWNvblwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIndW5jaGVja0ljb24nXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNoZWNrYm94RmFsc2VJY29uXCI+XHJcbiAgICAgICAgICAgICAgICA8VGltZXNJY29uIFtzdHlsZUNsYXNzXT1cIidjYXgtY2hlY2tib3gtaWNvbidcIiAqbmdJZj1cIiF1bmNoZWNrSWNvblRlbXBsYXRlXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIid1bmNoZWNrSWNvbidcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXgtY2hlY2tib3gtaWNvblwiICpuZ0lmPVwidW5jaGVja0ljb25UZW1wbGF0ZVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIndW5jaGVja0ljb24nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwidW5jaGVja0ljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48bGFiZWwgY2xhc3M9XCJjYXgtY2hlY2tib3gtbGFiZWxcIiAoY2xpY2spPVwib25DbGljaygkZXZlbnQsIGlucHV0KVwiIFtuZ0NsYXNzXT1cInsgJ2NheC1jaGVja2JveC1sYWJlbC1hY3RpdmUnOiB2YWx1ZSAhPSBudWxsLCAnY2F4LWRpc2FibGVkJzogZGlzYWJsZWQsICdjYXgtY2hlY2tib3gtbGFiZWwtZm9jdXMnOiBmb2N1c2VkIH1cIiAqbmdJZj1cImxhYmVsXCIgW2F0dHIuZm9yXT1cImlucHV0SWRcIj57eyBsYWJlbCB9fTwvbGFiZWw+XHJcbiJdfQ==
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpc3RhdGVjaGVja2JveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy90cmlzdGF0ZWNoZWNrYm94L3RyaXN0YXRlY2hlY2tib3gudHMiLCIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvdHJpc3RhdGVjaGVja2JveC90cmlzdGF0ZWNoZWNrYm94Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBMEIsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5TixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFhLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQUc5RCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBUTtJQUNoRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7SUFDL0MsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBQ0Y7OztHQUdHO0FBYUgsTUFBTSxPQUFPLGdCQUFnQjtJQUViO0lBQ0Q7SUFGWCxZQUNZLEVBQXFCLEVBQ3RCLE1BQWlCO1FBRGhCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3RCLFdBQU0sR0FBTixNQUFN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L0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFLN0IsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS2lDLFFBQVE7c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUs1QixPQUFPO3NCQUFmLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtrQyxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUs3QixnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUtrQyxTQUFTO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU01QixRQUFRO3NCQUFqQixNQUFNO2dCQUV1QixTQUFTO3NCQUF0QyxlQUFlO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiwgYm9vbGVhbkF0dHJpYnV0ZSwgZm9yd2FyZFJlZiwgbnVtYmVyQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjYXhDb25maWcsIENheFRlbXBsYXRlLCBTaGFyZWRNb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9hcGknO1xuaW1wb3J0IHsgQ2hlY2tJY29uIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vaWNvbnMvY2hlY2snO1xuaW1wb3J0IHsgVGltZXNJY29uIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vaWNvbnMvdGltZXMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS90cy1oZWxwZXJzJztcbmltcG9ydCB7IEF1dG9Gb2N1c01vZHVsZSB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL2F1dG9mb2N1cyc7XG5pbXBvcnQgeyBUcmlTdGF0ZUNoZWNrYm94Q2hhbmdlRXZlbnQgfSBmcm9tICcuL3RyaXN0YXRlY2hlY2tib3guaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IFRSSVNUQVRFQ0hFQ0tCT1hfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUcmlTdGF0ZUNoZWNrYm94KSxcbiAgICBtdWx0aTogdHJ1ZVxufTtcbi8qKlxuICogVHJpU3RhdGVDaGVja2JveCBpcyB1c2VkIHRvIHNlbGVjdCBlaXRoZXIgJ3RydWUnLCAnZmFsc2UnIG9yICdudWxsJyBhcyB0aGUgdmFsdWUuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NheC10cmlTdGF0ZUNoZWNrYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdHJpc3RhdGVjaGVja2JveC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtUUklTVEFURUNIRUNLQk9YX1ZBTFVFX0FDQ0VTU09SXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2hhcmVkTW9kdWxlLCBBdXRvRm9jdXNNb2R1bGUsIENoZWNrSWNvbiwgVGltZXNJY29uXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnY2F4LWVsZW1lbnQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUcmlTdGF0ZUNoZWNrYm94IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHVibGljIGNvbmZpZzogY2F4Q29uZmlnXG4gICAgKSB7fVxuICAgIC8qKlxuICAgICAqIFdoZW4gcHJlc2VudCwgaXQgc3BlY2lmaWVzIHRoYXQgdGhlIGVsZW1lbnQgc2hvdWxkIGJlIGRpc2FibGVkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgYSBzdHJpbmcgdGhhdCBsYWJlbHMgdGhlIGlucHV0IGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEVzdGFibGlzaGVzIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgY29tcG9uZW50IGFuZCBsYWJlbChzKSB3aGVyZSBpdHMgdmFsdWUgc2hvdWxkIGJlIG9uZSBvciBtb3JlIGVsZW1lbnQgSURzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFyaWFMYWJlbGxlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIHRoZSBpbnB1dCB2YXJpYW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdmFyaWFudDogJ2ZpbGxlZCcgfCAnb3V0bGluZWQnID0gJ291dGxpbmVkJztcbiAgICAvKipcbiAgICAgKiBJbmRleCBvZiB0aGUgZWxlbWVudCBpbiB0YWJiaW5nIG9yZGVyLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRhYmluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciBvZiB0aGUgZm9jdXMgaW5wdXQgdG8gbWF0Y2ggYSBsYWJlbCBkZWZpbmVkIGZvciB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGlucHV0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBMYWJlbCBvZiB0aGUgY2hlY2tib3guXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGVuIHByZXNlbnQsIGl0IHNwZWNpZmllcyB0aGF0IHRoZSBjb21wb25lbnQgY2Fubm90IGJlIGVkaXRlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcmVhZG9ubHk6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIHRoZSBpY29uIGZvciBjaGVja2JveCB0cnVlIHZhbHVlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNoZWNrYm94VHJ1ZUljb246IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgdGhlIGljb24gZm9yIGNoZWNrYm94IGZhbHNlIHZhbHVlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNoZWNrYm94RmFsc2VJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hlbiBwcmVzZW50LCBpdCBzcGVjaWZpZXMgdGhhdCB0aGUgY29tcG9uZW50IHNob3VsZCBhdXRvbWF0aWNhbGx5IGdldCBmb2N1cyBvbiBsb2FkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhdXRvZm9jdXM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIG9uIHZhbHVlIGNoYW5nZS5cbiAgICAgKiBAcGFyYW0ge1RyaVN0YXRlQ2hlY2tib3hDaGFuZ2VFdmVudH0gZXZlbnQgLSBDdXN0b20gY2hhbmdlIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPFRyaVN0YXRlQ2hlY2tib3hDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyaVN0YXRlQ2hlY2tib3hDaGFuZ2VFdmVudD4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oQ2F4VGVtcGxhdGUpIHRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxDYXhUZW1wbGF0ZT47XG5cbiAgICBjaGVja0ljb25UZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICB1bmNoZWNrSWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIGZvY3VzZWQ6IE51bGxhYmxlPGJvb2xlYW4+O1xuXG4gICAgdmFsdWU6IE51bGxhYmxlPGJvb2xlYW4+O1xuXG4gICAgb25Nb2RlbENoYW5nZTogRnVuY3Rpb24gPSAoKSA9PiB7fTtcblxuICAgIG9uTW9kZWxUb3VjaGVkOiBGdW5jdGlvbiA9ICgpID0+IHt9O1xuXG4gICAgb25DbGljayhldmVudDogRXZlbnQsIGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoZXZlbnQpO1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZShldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCB8fCB0aGlzLnZhbHVlID09IHVuZGVmaW5lZCkgdGhpcy52YWx1ZSA9IHRydWU7XG4gICAgICAgIGVsc2UgaWYgKHRoaXMudmFsdWUgPT0gdHJ1ZSkgdGhpcy52YWx1ZSA9IGZhbHNlO1xuICAgICAgICBlbHNlIGlmICh0aGlzLnZhbHVlID09IGZhbHNlKSB0aGlzLnZhbHVlID0gbnVsbDtcblxuICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NoZWNraWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3VuY2hlY2tpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51bmNoZWNrSWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRm9jdXMoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgb25CbHVyKCkge1xuICAgICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vbk1vZGVsVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgW25nU3R5bGVdPVwic3R5bGVcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2NheC1jaGVja2JveCBjYXgtY29tcG9uZW50JzogdHJ1ZSwgJ2NheC1jaGVja2JveC1kaXNhYmxlZCc6IGRpc2FibGVkLCAnY2F4LWNoZWNrYm94LWZvY3VzZWQnOiBmb2N1c2VkLCAnY2F4LXZhcmlhbnQtZmlsbGVkJzogdmFyaWFudCA9PT0gJ2ZpbGxlZCcgfHwgY29uZmlnLmlucHV0U3R5bGUoKSA9PT0gJ2ZpbGxlZCcgfVwiXG4gICAgW2NsYXNzXT1cInN0eWxlQ2xhc3NcIlxuICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudCwgaW5wdXQpXCJcbiAgICBbYXR0ci5kYXRhLXBjLW5hbWVdPVwiJ3RyaXN0YXRlY2hlY2tib3gnXCJcbiAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3Jvb3QnXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwiY2F4LWhpZGRlbi1hY2Nlc3NpYmxlXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI2lucHV0XG4gICAgICAgICAgICBbYXR0ci5pZF09XCJpbnB1dElkXCJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwibm9uZVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2hpZGRlbklucHV0J1wiXG4gICAgICAgICAgICBwQXV0b0ZvY3VzXG4gICAgICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNheC1jaGVja2JveC1ib3hcIiByb2xlPVwiY2hlY2tib3hcIiBbYXR0ci5hcmlhLWNoZWNrZWRdPVwidmFsdWUgPT09IHRydWVcIiBbbmdDbGFzc109XCJ7ICdjYXgtaGlnaGxpZ2h0JzogdmFsdWUgIT0gbnVsbCwgJ2NheC1kaXNhYmxlZCc6IGRpc2FibGVkLCAnY2F4LWZvY3VzJzogZm9jdXNlZCB9XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2YWx1ZSA9PT0gdHJ1ZVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjaGVja2JveFRydWVJY29uXCIgW25nQ2xhc3NdPVwiY2hlY2tib3hUcnVlSWNvblwiIGNsYXNzPVwiY2F4LWNoZWNrYm94LWljb25cIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2NoZWNrSWNvbidcIj48L3NwYW4+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNoZWNrYm94VHJ1ZUljb25cIj5cbiAgICAgICAgICAgICAgICA8Q2hlY2tJY29uIFtzdHlsZUNsYXNzXT1cIidjYXgtY2hlY2tib3gtaWNvbidcIiAqbmdJZj1cIiFjaGVja0ljb25UZW1wbGF0ZVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInY2hlY2tJY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjaGVja0ljb25UZW1wbGF0ZVwiIGNsYXNzPVwiY2F4LWNoZWNrYm94LWljb25cIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2NoZWNrSWNvbidcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hlY2tJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhbHVlID09PSBmYWxzZVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjaGVja2JveEZhbHNlSWNvblwiIFtuZ0NsYXNzXT1cImNoZWNrYm94RmFsc2VJY29uXCIgY2xhc3M9XCJjYXgtY2hlY2tib3gtaWNvblwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIndW5jaGVja0ljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjaGVja2JveEZhbHNlSWNvblwiPlxuICAgICAgICAgICAgICAgIDxUaW1lc0ljb24gW3N0eWxlQ2xhc3NdPVwiJ2NheC1jaGVja2JveC1pY29uJ1wiICpuZ0lmPVwiIXVuY2hlY2tJY29uVGVtcGxhdGVcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3VuY2hlY2tJY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXgtY2hlY2tib3gtaWNvblwiICpuZ0lmPVwidW5jaGVja0ljb25UZW1wbGF0ZVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIndW5jaGVja0ljb24nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInVuY2hlY2tJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGxhYmVsIGNsYXNzPVwiY2F4LWNoZWNrYm94LWxhYmVsXCIgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50LCBpbnB1dClcIiBbbmdDbGFzc109XCJ7ICdjYXgtY2hlY2tib3gtbGFiZWwtYWN0aXZlJzogdmFsdWUgIT0gbnVsbCwgJ2NheC1kaXNhYmxlZCc6IGRpc2FibGVkLCAnY2F4LWNoZWNrYm94LWxhYmVsLWZvY3VzJzogZm9jdXNlZCB9XCIgKm5nSWY9XCJsYWJlbFwiIFthdHRyLmZvcl09XCJpbnB1dElkXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuIl19
|
|
@@ -311,13 +311,13 @@ export class UploadComponent {
|
|
|
311
311
|
return activeFilesCount > 0 ? Math.round((totalProgress / (activeFilesCount * 100)) * 100) : 0;
|
|
312
312
|
}
|
|
313
313
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
314
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: UploadComponent, selector: "cax-upload", inputs: { invalid: "invalid", style: "style", maxFileSize: "maxFileSize", inputFiles: "inputFiles", uploadString: "uploadString", errorText: "errorText", allowMultiple: "allowMultiple", componentId: "componentId", allowedFileTypes: "allowedFileTypes" }, outputs: { fileSelected: "fileSelected", filesQueued: "filesQueued", uploadStarted: "uploadStarted", uploadCompleted: "uploadCompleted", uploadCanceled: "uploadCanceled", uploadError: "uploadError", fileRemoved: "fileRemoved", allFilesRemoved: "allFilesRemoved", uploadStatusChange: "uploadStatusChange" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" }, classAttribute: "cax-element" }, ngImport: i0, template: "<p class=\"cax-files\">{{inputFiles}}</p>\
|
|
314
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: UploadComponent, selector: "cax-upload", inputs: { invalid: "invalid", style: "style", maxFileSize: "maxFileSize", inputFiles: "inputFiles", uploadString: "uploadString", errorText: "errorText", allowMultiple: "allowMultiple", componentId: "componentId", allowedFileTypes: "allowedFileTypes" }, outputs: { fileSelected: "fileSelected", filesQueued: "filesQueued", uploadStarted: "uploadStarted", uploadCompleted: "uploadCompleted", uploadCanceled: "uploadCanceled", uploadError: "uploadError", fileRemoved: "fileRemoved", allFilesRemoved: "allFilesRemoved", uploadStatusChange: "uploadStatusChange" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" }, classAttribute: "cax-element" }, ngImport: i0, template: "<p class=\"cax-files\">{{inputFiles}}</p>\n<div class=\"cax-upload-menu\" [ngStyle]=\"style\"\n [class.dragging]=\"isDragging\" \n (click)=\"openFileSelector()\">\n <input\n type=\"file\"\n id=\"fileInput-{{uniqueId}}\"\n style=\"display:none\"\n [multiple]=\"allowMultiple\"\n [accept]=\"acceptFileTypes\"\n (change)=\"handleFileInput($event)\"\n />\n\n <!-- Default Upload State -->\n <ng-container *ngIf=\"uploadStatus === 'idle'\" >\n <div class=\"cax-upload-options\" >\n <p class=\"hint-text\">\n <span class=\"drop-files\">Drop files here</span> or browse files from your device\n </p>\n <p class=\"max-size\">Max. File Size: {{ maxFileSize }}MB</p>\n </div>\n </ng-container>\n\n\n <!-- Uploading State -->\n<div *ngIf=\"uploadStatus === 'uploading'\" class=\"cax-upload-status uploading\" >\n <div class=\"status-container\">\n <cax-progressSpinner\n [strokeColor]=\"'primary'\"\n [size]=\"'lg'\"\n [animationDuration]=\"'2s'\"\n ></cax-progressSpinner>\n <p >{{ uploadingProgressText }}</p>\n <cax-button\n [label]=\"'Cancel'\"\n [rounded]=\"false\"\n [severity]=\"'danger'\"\n [size]=\"'large'\"\n [outlined]=\"'false'\"\n [link]=\"true\"\n (click)=\"cancelCurrentUpload(); $event.stopPropagation()\"\n />\n </div>\n</div>\n\n <!-- Complete State -->\n <div *ngIf=\"uploadStatus === 'complete'\" class=\"cax-upload-status complete\">\n <div class=\"status-container\">\n <div class=\"success-icon\"><i class=\"cax cax-check\"></i></div>\n <p>{{uploadString}}</p>\n <cax-button\n [label]=\"'Remove'\"\n [rounded]=\"false\"\n [severity]=\"'danger'\"\n [size]=\"'large'\"\n [outlined]=\"'false'\"\n [link]=\"true\"\n (click)=\"removeAllFiles(); $event.stopPropagation()\"\n />\n </div>\n </div>\n <div *ngIf=\"invalid\" id=\"helper-text\" class=\"cax-error-upload\"></div>\n</div>\n<div *ngIf=\"invalid\" id=\"helper-text\" class=\"cax-error-upload\">\n {{ errorText }}\n</div>\n\n<!-- stacked file -->\n<div *ngIf=\"uploadedFiles.length > 0\" class=\"cax-file-preview-wrapper\" [ngStyle]=\"style\">\n <div\n *ngFor=\"let item of uploadedFiles; let i = index\"\n class=\"cax-file-preview\"\n [ngClass]=\"{\n 'queued': item.status === 'queued',\n 'uploading': item.status === 'uploading',\n 'complete': item.status === 'complete',\n 'canceled': item.status === 'canceled'\n }\"\n >\n <div class=\"file-info\">\n <p class=\"file-name\">{{ item.file.name }}</p>\n </div> \n\n <!-- Show spinner for queued or uploading files -->\n <div *ngIf=\"item.status === 'queued' || item.status === 'uploading'\" class=\"spinner\">\n <cax-progressSpinner\n [strokeColor]=\"'primary'\"\n [size]=\"'sm'\"\n [animationDuration]=\"'2s'\">\n </cax-progressSpinner>\n </div>\n \n <!-- Show remove button only for complete or canceled files -->\n <button\n *ngIf=\"item.status === 'complete' || item.status === 'canceled'\"\n class=\"remove-button\"\n (click)=\"removeFile(i); $event.stopPropagation()\">\n <i class=\"cax cax-close\"></i> \n </button>\n </div>\n</div>", styles: ["@layer cax{.cax-files{font-size:14px;font-weight:500;margin-bottom:10px}.cax-upload-menu{border-radius:12px;padding:24px 56px}.status-container{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:16px;height:150px}.status-container p{margin:0;font-size:14px;font-weight:500}.status-container .success-icon{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center}.status-container .success-icon i{font-size:1.5rem;font-weight:800}.cax-upload-options{text-align:center}.cax-upload-options .hint-text{font-size:14px;font-weight:500}.cax-upload-options .drop-files{font-weight:500;font-size:14px}.cax-upload-options .max-size{font-size:12px;margin-bottom:20px;font-weight:400}.cax-error-upload{font-size:14px;font-weight:400;padding-top:8px}.cax-options-container{display:flex;gap:24px;justify-content:center}.cax-upload-option{display:flex;flex-direction:column;align-items:center;cursor:pointer}.cax-upload-option .icon-container{width:48px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.cax-upload-option span{font-size:14px;font-weight:600;padding-top:10px}.cax-file-preview-wrapper{display:flex;flex-direction:column;gap:10px;margin-top:1rem}.cax-file-preview{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:8px}.cax-file-preview .file-info{display:flex;align-items:center;gap:10px}.cax-file-preview .file-info .file-icon img{width:32px;height:32px}.cax-file-preview .file-info .file-name{font-weight:500;font-size:14px}.cax-file-preview .spinner{margin-left:auto;font-size:20px!important}.cax-file-preview .remove-button{background:none;border:none;margin-left:auto;cursor:pointer}.cax-file-preview .remove-button i{font-size:20px}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.ProgressSpinner, selector: "cax-progressSpinner", inputs: ["styleClass", "strokeColor", "backgroundStrokeColor", "size", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: i3.Button, selector: "cax-button", inputs: ["type", "iconPos", "icon", "badge", "rightIcon", "leftIcon", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }] });
|
|
315
315
|
}
|
|
316
316
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UploadComponent, decorators: [{
|
|
317
317
|
type: Component,
|
|
318
318
|
args: [{ selector: 'cax-upload', host: {
|
|
319
319
|
class: 'cax-element'
|
|
320
|
-
}, template: "<p class=\"cax-files\">{{inputFiles}}</p>\
|
|
320
|
+
}, template: "<p class=\"cax-files\">{{inputFiles}}</p>\n<div class=\"cax-upload-menu\" [ngStyle]=\"style\"\n [class.dragging]=\"isDragging\" \n (click)=\"openFileSelector()\">\n <input\n type=\"file\"\n id=\"fileInput-{{uniqueId}}\"\n style=\"display:none\"\n [multiple]=\"allowMultiple\"\n [accept]=\"acceptFileTypes\"\n (change)=\"handleFileInput($event)\"\n />\n\n <!-- Default Upload State -->\n <ng-container *ngIf=\"uploadStatus === 'idle'\" >\n <div class=\"cax-upload-options\" >\n <p class=\"hint-text\">\n <span class=\"drop-files\">Drop files here</span> or browse files from your device\n </p>\n <p class=\"max-size\">Max. File Size: {{ maxFileSize }}MB</p>\n </div>\n </ng-container>\n\n\n <!-- Uploading State -->\n<div *ngIf=\"uploadStatus === 'uploading'\" class=\"cax-upload-status uploading\" >\n <div class=\"status-container\">\n <cax-progressSpinner\n [strokeColor]=\"'primary'\"\n [size]=\"'lg'\"\n [animationDuration]=\"'2s'\"\n ></cax-progressSpinner>\n <p >{{ uploadingProgressText }}</p>\n <cax-button\n [label]=\"'Cancel'\"\n [rounded]=\"false\"\n [severity]=\"'danger'\"\n [size]=\"'large'\"\n [outlined]=\"'false'\"\n [link]=\"true\"\n (click)=\"cancelCurrentUpload(); $event.stopPropagation()\"\n />\n </div>\n</div>\n\n <!-- Complete State -->\n <div *ngIf=\"uploadStatus === 'complete'\" class=\"cax-upload-status complete\">\n <div class=\"status-container\">\n <div class=\"success-icon\"><i class=\"cax cax-check\"></i></div>\n <p>{{uploadString}}</p>\n <cax-button\n [label]=\"'Remove'\"\n [rounded]=\"false\"\n [severity]=\"'danger'\"\n [size]=\"'large'\"\n [outlined]=\"'false'\"\n [link]=\"true\"\n (click)=\"removeAllFiles(); $event.stopPropagation()\"\n />\n </div>\n </div>\n <div *ngIf=\"invalid\" id=\"helper-text\" class=\"cax-error-upload\"></div>\n</div>\n<div *ngIf=\"invalid\" id=\"helper-text\" class=\"cax-error-upload\">\n {{ errorText }}\n</div>\n\n<!-- stacked file -->\n<div *ngIf=\"uploadedFiles.length > 0\" class=\"cax-file-preview-wrapper\" [ngStyle]=\"style\">\n <div\n *ngFor=\"let item of uploadedFiles; let i = index\"\n class=\"cax-file-preview\"\n [ngClass]=\"{\n 'queued': item.status === 'queued',\n 'uploading': item.status === 'uploading',\n 'complete': item.status === 'complete',\n 'canceled': item.status === 'canceled'\n }\"\n >\n <div class=\"file-info\">\n <p class=\"file-name\">{{ item.file.name }}</p>\n </div> \n\n <!-- Show spinner for queued or uploading files -->\n <div *ngIf=\"item.status === 'queued' || item.status === 'uploading'\" class=\"spinner\">\n <cax-progressSpinner\n [strokeColor]=\"'primary'\"\n [size]=\"'sm'\"\n [animationDuration]=\"'2s'\">\n </cax-progressSpinner>\n </div>\n \n <!-- Show remove button only for complete or canceled files -->\n <button\n *ngIf=\"item.status === 'complete' || item.status === 'canceled'\"\n class=\"remove-button\"\n (click)=\"removeFile(i); $event.stopPropagation()\">\n <i class=\"cax cax-close\"></i> \n </button>\n </div>\n</div>", styles: ["@layer cax{.cax-files{font-size:14px;font-weight:500;margin-bottom:10px}.cax-upload-menu{border-radius:12px;padding:24px 56px}.status-container{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:16px;height:150px}.status-container p{margin:0;font-size:14px;font-weight:500}.status-container .success-icon{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center}.status-container .success-icon i{font-size:1.5rem;font-weight:800}.cax-upload-options{text-align:center}.cax-upload-options .hint-text{font-size:14px;font-weight:500}.cax-upload-options .drop-files{font-weight:500;font-size:14px}.cax-upload-options .max-size{font-size:12px;margin-bottom:20px;font-weight:400}.cax-error-upload{font-size:14px;font-weight:400;padding-top:8px}.cax-options-container{display:flex;gap:24px;justify-content:center}.cax-upload-option{display:flex;flex-direction:column;align-items:center;cursor:pointer}.cax-upload-option .icon-container{width:48px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.cax-upload-option span{font-size:14px;font-weight:600;padding-top:10px}.cax-file-preview-wrapper{display:flex;flex-direction:column;gap:10px;margin-top:1rem}.cax-file-preview{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:8px}.cax-file-preview .file-info{display:flex;align-items:center;gap:10px}.cax-file-preview .file-info .file-icon img{width:32px;height:32px}.cax-file-preview .file-info .file-name{font-weight:500;font-size:14px}.cax-file-preview .spinner{margin-left:auto;font-size:20px!important}.cax-file-preview .remove-button{background:none;border:none;margin-left:auto;cursor:pointer}.cax-file-preview .remove-button i{font-size:20px}}\n"] }]
|
|
321
321
|
}], propDecorators: { invalid: [{
|
|
322
322
|
type: Input
|
|
323
323
|
}], style: [{
|
|
@@ -364,4 +364,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
364
364
|
type: HostListener,
|
|
365
365
|
args: ['drop', ['$event']]
|
|
366
366
|
}] } });
|
|
367
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy91cGxvYWQvdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy91cGxvYWQvdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7OztBQW1CN0YsTUFBTSxPQUFPLGVBQWU7SUFDZixPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3pCLEtBQUssQ0FBOEM7SUFDbkQsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUN6QixVQUFVLEdBQVcsYUFBYSxDQUFDO0lBQ25DLFlBQVksR0FBVyxvQkFBb0IsQ0FBQztJQUM1QyxTQUFTLEdBQVcsc0JBQXNCLENBQUM7SUFDM0MsYUFBYSxHQUFZLElBQUksQ0FBQztJQUM5QixXQUFXLEdBQVcsRUFBRSxDQUFDO0lBQ3pCLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUN6QywwQkFBMEI7SUFDaEIsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDeEMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDekMsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDekMsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDM0MsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDMUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFpQyxDQUFDO0lBQ2hFLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBQ3ZDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBQzNDLGtCQUFrQixHQUFHLElBQUksWUFBWSxFQUFxQyxDQUFDO0lBRXJGLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDNUIsYUFBYSxHQUFpQixFQUFFLENBQUM7SUFDakMsWUFBWSxHQUFzQyxNQUFNLENBQUM7SUFDekQsaUJBQWlCLEdBQVksS0FBSyxDQUFDO0lBQ25DLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFFdEIsdURBQXVEO0lBQ3ZELElBQUksZUFBZTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDNUUsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCx5REFBeUQ7SUFDekQsSUFBWSxnQkFBZ0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEYsQ0FBQztJQUVELFFBQVE7UUFDSixtREFBbUQ7UUFDbkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLFVBQVUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDaEcsQ0FBQztJQUdELFVBQVUsQ0FBQyxLQUFnQjtRQUN2QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFHRCxXQUFXLENBQUMsS0FBZ0I7UUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBR0QsTUFBTSxDQUFDLEtBQWdCO1FBQ25CLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFFeEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBRXpDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXZFLDZCQUE2QjtRQUM3QixVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFbkQsOEJBQThCO1FBQzlCLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBVTtRQUN0QixNQUFNLEtBQUssR0FBYSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFFbkIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFdkUsNkJBQTZCO1FBQzdCLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUVuRCw4QkFBOEI7UUFDOUIsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCx1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0wsQ0FBQztJQUVELGlDQUFpQztJQUN6QixZQUFZLENBQUMsSUFBVTtRQUMzQixrQkFBa0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGlDQUFpQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQztZQUM1RSxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsdUJBQXVCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFFBQVEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDbkYsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsc0NBQXNDO0lBQzlCLGdCQUFnQixDQUFDLFFBQWdCO1FBQ3JDLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELDBCQUEwQjtJQUNsQixTQUFTLENBQUMsSUFBVTtRQUN4QixNQUFNLFdBQVcsR0FBZTtZQUM1QixJQUFJO1lBQ0osTUFBTSxFQUFFLFFBQVE7WUFDaEIsUUFBUSxFQUFFLENBQUM7U0FDZCxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFckMsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0wsQ0FBQztJQUVELHNDQUFzQztJQUM5QixrQkFBa0IsQ0FBQyxNQUF5QztRQUNoRSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0wsQ0FBQztJQUVELDBDQUEwQztJQUNsQyxLQUFLLENBQUMsWUFBWTtRQUN0QixJQUFJLElBQUksQ0FBQyxpQkFBaUI7WUFBRSxPQUFPO1FBRW5DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFFOUIsK0JBQStCO1FBQy9CLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBRXJGLE9BQU8sYUFBYSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN0RCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBRW5ELHNDQUFzQztZQUN0QyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDckYsQ0FBQztRQUVELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFL0IsMkVBQTJFO1FBQzNFLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDL0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO0lBRUQsNENBQTRDO0lBQzVDLGdCQUFnQjtRQUNaLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsYUFBYSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQXFCLENBQUM7UUFDNUYsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQjtJQUNYLFNBQVMsQ0FBQyxJQUFVLEVBQUUsT0FBZTtRQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFxQixFQUFFLEtBQWE7UUFDMUQsNkJBQTZCO1FBQzdCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO1FBQy9CLFNBQVMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDO1lBQ0Qsd0NBQXdDO1lBQ3hDLEtBQUssSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLFFBQVEsSUFBSSxHQUFHLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNyRCwrQ0FBK0M7Z0JBQy9DLDJEQUEyRDtnQkFDM0QsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO29CQUNuQyw2QkFBNkI7b0JBQzdCLE1BQU07Z0JBQ1YsQ0FBQztnQkFFRCxTQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztnQkFFOUIseUJBQXlCO2dCQUN6QixNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDN0QsQ0FBQztZQUVELG9FQUFvRTtZQUNwRSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQ25DLFNBQVMsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO2dCQUM5QixTQUFTLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLGdCQUFnQjtZQUNoQixTQUFTLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztZQUMzQixNQUFNLFlBQVksR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQztZQUNyRixTQUFTLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztZQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYTtRQUN0QixtREFBbUQ7UUFDbkQsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNmLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7Z0JBQzNDLElBQUksY0FBYyxLQUFLLFdBQVcsSUFBSSxjQUFjLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQ2hFLFlBQVksQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO29CQUNqQywyREFBMkQ7b0JBQzNELElBQUksY0FBYyxLQUFLLFdBQVcsRUFBRSxDQUFDO3dCQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2hELENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBQ0QsbUZBQW1GO1FBQ25GLG9FQUFvRTtRQUNwRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ25ELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNMLENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsbUJBQW1CO1FBQ2YsMkNBQTJDO1FBQzNDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUM7UUFDL0YsSUFBSSxrQkFBa0IsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7SUFFRCxxQkFBcUI7SUFDckIsZ0JBQWdCO1FBQ1osSUFBSSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzFELGdCQUFnQixHQUFHLElBQUksQ0FBQztnQkFDeEIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7Z0JBRXpCLElBQUksY0FBYyxLQUFLLFdBQVcsRUFBRSxDQUFDO29CQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDTCxDQUFDO0lBRUQsOEJBQThCO0lBQzlCLFVBQVUsQ0FBQyxLQUFhO1FBQ3BCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0MsOEJBQThCO1FBQzlCLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxXQUFXLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMxRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpDLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFcEMsZ0NBQWdDO1FBQ2hDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDeEUsNkVBQTZFO1lBQzdFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixjQUFjO1FBQ1YsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhCLDBDQUEwQztRQUMxQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDeEksQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3JCLCtDQUErQztRQUMvQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDOUYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUM7UUFDckYsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNoQixtRUFBbUU7WUFDbkUsT0FBTyxhQUFhLGNBQWMsSUFBSSxnQkFBZ0IsUUFBUSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7UUFDdkcsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM5RCxPQUFPLGFBQWEsY0FBYyxHQUFHLENBQUMsSUFBSSxnQkFBZ0IsUUFBUSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7UUFDM0csQ0FBQztRQUNELE9BQU8sYUFBYSxjQUFjLElBQUksZ0JBQWdCLFFBQVEsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO0lBQ3ZHLENBQUM7SUFFRCx5REFBeUQ7SUFDekQsSUFBSSxlQUFlO1FBQ2YsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFFOUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDMUQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFVBQVU7Z0JBQUUsT0FBTyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ2pELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxVQUFVLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBQ3RFLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFTixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUUzSCxPQUFPLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLGFBQWEsR0FBRyxDQUFDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRyxDQUFDO3VHQTNXUSxlQUFlOzJGQUFmLGVBQWUsMnZCQ25CNUIsMjZHQW9HTTs7MkZEakZPLGVBQWU7a0JBUjNCLFNBQVM7K0JBQ0ksWUFBWSxRQUdoQjt3QkFDRixLQUFLLEVBQUUsYUFBYTtxQkFDdkI7OEJBR1EsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkF5QlAsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRcEMsV0FBVztzQkFEVixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRckMsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBVcGxvYWRGaWxlU3RhdHVzID0gJ3F1ZXVlZCcgfCAndXBsb2FkaW5nJyB8ICdjb21wbGV0ZScgfCAnY2FuY2VsZWQnIHwgJ2Vycm9yJztcblxuZXhwb3J0IHR5cGUgVXBsb2FkRmlsZSA9IHtcbiAgICBmaWxlOiBGaWxlO1xuICAgIHN0YXR1czogVXBsb2FkRmlsZVN0YXR1cztcbiAgICBwcm9ncmVzcz86IG51bWJlcjtcbiAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NheC11cGxvYWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VwbG9hZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdjYXgtZWxlbWVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgaW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIG1heEZpbGVTaXplOiBudW1iZXIgPSAzMDtcbiAgICBASW5wdXQoKSBpbnB1dEZpbGVzOiBzdHJpbmcgPSAnSW5wdXQgRmlsZXMnO1xuICAgIEBJbnB1dCgpIHVwbG9hZFN0cmluZzogc3RyaW5nID0gJ3VwbG9hZGluZyB0aGUgZmlsZSc7XG4gICAgQElucHV0KCkgZXJyb3JUZXh0OiBzdHJpbmcgPSAnUGxlYXNlIHVwbG9hZCBhIGZpbGUnO1xuICAgIEBJbnB1dCgpIGFsbG93TXVsdGlwbGU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGNvbXBvbmVudElkOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBhbGxvd2VkRmlsZVR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIC8vIEVuaGFuY2VkIGV2ZW50IGVtaXR0ZXJzXG4gICAgQE91dHB1dCgpIGZpbGVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcbiAgICBAT3V0cHV0KCkgZmlsZXNRdWV1ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcbiAgICBAT3V0cHV0KCkgdXBsb2FkU3RhcnRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcbiAgICBAT3V0cHV0KCkgdXBsb2FkQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlPigpO1xuICAgIEBPdXRwdXQoKSB1cGxvYWRDYW5jZWxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcbiAgICBAT3V0cHV0KCkgdXBsb2FkRXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmlsZTogRmlsZTsgZXJyb3I6IHN0cmluZyB9PigpO1xuICAgIEBPdXRwdXQoKSBmaWxlUmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcbiAgICBAT3V0cHV0KCkgYWxsRmlsZXNSZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSB1cGxvYWRTdGF0dXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPCdpZGxlJyB8ICd1cGxvYWRpbmcnIHwgJ2NvbXBsZXRlJz4oKTtcblxuICAgIGlzRHJhZ2dpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICB1cGxvYWRlZEZpbGVzOiBVcGxvYWRGaWxlW10gPSBbXTtcbiAgICB1cGxvYWRTdGF0dXM6ICdpZGxlJyB8ICd1cGxvYWRpbmcnIHwgJ2NvbXBsZXRlJyA9ICdpZGxlJztcbiAgICBpc1Byb2Nlc3NpbmdRdWV1ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHVuaXF1ZUlkOiBzdHJpbmcgPSAnJztcblxuICAgIC8vIENvbXB1dGVkIHByb3BlcnR5IGZvciBhY2NlcHQgYXR0cmlidXRlIGluIGZpbGUgaW5wdXRcbiAgICBnZXQgYWNjZXB0RmlsZVR5cGVzKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdGhpcy5hbGxvd2VkRmlsZVR5cGVzIHx8IHRoaXMuYWxsb3dlZEZpbGVUeXBlcy5sZW5ndGggPT09IDApIHJldHVybiAnJztcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsb3dlZEZpbGVUeXBlcy5tYXAoKHR5cGUpID0+IGAuJHt0eXBlfWApLmpvaW4oJywnKTtcbiAgICB9XG5cbiAgICAvLyBUcmFjayBhY3R1YWwgZmlsZXMgdG8gcHJvY2VzcyAoZXhjbHVkZXMgY2FuY2VsZWQgb25lcylcbiAgICBwcml2YXRlIGdldCBhY3RpdmVGaWxlc0NvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwbG9hZGVkRmlsZXMuZmlsdGVyKChmaWxlKSA9PiBmaWxlLnN0YXR1cyAhPT0gJ2NhbmNlbGVkJykubGVuZ3RoO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBHZW5lcmF0ZSB1bmlxdWUgSUQgaWYgbm90IHByb3ZpZGVkIHRocm91Z2ggaW5wdXRcbiAgICAgICAgdGhpcy51bmlxdWVJZCA9IHRoaXMuY29tcG9uZW50SWQgfHwgYHVwbG9hZC0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCAxMSl9YDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pXG4gICAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXG4gICAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlcztcbiAgICAgICAgaWYgKCFmaWxlcyB8fCBmaWxlcy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgICAgICBjb25zdCBmaWxlQXJyYXkgPSBBcnJheS5mcm9tKGZpbGVzKTtcbiAgICAgICAgY29uc3QgdmFsaWRGaWxlcyA9IGZpbGVBcnJheS5maWx0ZXIoKGZpbGUpID0+IHRoaXMudmFsaWRhdGVGaWxlKGZpbGUpKTtcblxuICAgICAgICAvLyBRdWV1ZSBhbGwgZmlsZXMgZm9yIHVwbG9hZFxuICAgICAgICB2YWxpZEZpbGVzLmZvckVhY2goKGZpbGUpID0+IHRoaXMucXVldWVGaWxlKGZpbGUpKTtcblxuICAgICAgICAvLyBFbWl0IHRoZSBxdWV1ZWQgZmlsZXMgZXZlbnRcbiAgICAgICAgaWYgKHZhbGlkRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5maWxlc1F1ZXVlZC5lbWl0KHZhbGlkRmlsZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3RhcnQgcHJvY2Vzc2luZyB0aGUgcXVldWUgaWYgbm90IGFscmVhZHkgcHJvY2Vzc2luZ1xuICAgICAgICBpZiAoIXRoaXMuaXNQcm9jZXNzaW5nUXVldWUpIHtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc1F1ZXVlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVGaWxlSW5wdXQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlczogRmlsZUxpc3QgPSBldmVudC50YXJnZXQuZmlsZXM7XG4gICAgICAgIGlmICghZmlsZXMpIHJldHVybjtcblxuICAgICAgICBjb25zdCBmaWxlQXJyYXkgPSBBcnJheS5mcm9tKGZpbGVzKTtcbiAgICAgICAgY29uc3QgdmFsaWRGaWxlcyA9IGZpbGVBcnJheS5maWx0ZXIoKGZpbGUpID0+IHRoaXMudmFsaWRhdGVGaWxlKGZpbGUpKTtcblxuICAgICAgICAvLyBRdWV1ZSBhbGwgZmlsZXMgZm9yIHVwbG9hZFxuICAgICAgICB2YWxpZEZpbGVzLmZvckVhY2goKGZpbGUpID0+IHRoaXMucXVldWVGaWxlKGZpbGUpKTtcblxuICAgICAgICAvLyBFbWl0IHRoZSBxdWV1ZWQgZmlsZXMgZXZlbnRcbiAgICAgICAgaWYgKHZhbGlkRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5maWxlc1F1ZXVlZC5lbWl0KHZhbGlkRmlsZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3RhcnQgcHJvY2Vzc2luZyB0aGUgcXVldWUgaWYgbm90IGFscmVhZHkgcHJvY2Vzc2luZ1xuICAgICAgICBpZiAoIXRoaXMuaXNQcm9jZXNzaW5nUXVldWUpIHtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc1F1ZXVlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXcgbWV0aG9kIGZvciBmaWxlIHZhbGlkYXRpb25cbiAgICBwcml2YXRlIHZhbGlkYXRlRmlsZShmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIFNpemUgdmFsaWRhdGlvblxuICAgICAgICBpZiAoZmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZSAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgICB0aGlzLmVtaXRFcnJvcihmaWxlLCBgRmlsZSBzaXplIHNob3VsZCBiZSBsZXNzIHRoYW4gJHt0aGlzLm1heEZpbGVTaXplfU1CYCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaWxlIHR5cGUgdmFsaWRhdGlvblxuICAgICAgICBpZiAodGhpcy5hbGxvd2VkRmlsZVR5cGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSB0aGlzLmdldEZpbGVFeHRlbnNpb24oZmlsZS5uYW1lKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRFcnJvcihmaWxlLCBgT25seSAke3RoaXMuYWxsb3dlZEZpbGVUeXBlcy5qb2luKCcsICcpfSBmaWxlcyBhcmUgYWxsb3dlZGApO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIEhlbHBlciBtZXRob2QgdG8gZ2V0IGZpbGUgZXh0ZW5zaW9uXG4gICAgcHJpdmF0ZSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZmlsZW5hbWUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJztcbiAgICB9XG5cbiAgICAvLyBRdWV1ZSBhIGZpbGUgZm9yIHVwbG9hZFxuICAgIHByaXZhdGUgcXVldWVGaWxlKGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXBsb2FkRW50cnk6IFVwbG9hZEZpbGUgPSB7XG4gICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgc3RhdHVzOiAncXVldWVkJyxcbiAgICAgICAgICAgIHByb2dyZXNzOiAwXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzLnB1c2godXBsb2FkRW50cnkpO1xuXG4gICAgICAgIGlmICh0aGlzLnVwbG9hZFN0YXR1cyA9PT0gJ2lkbGUnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVVwbG9hZFN0YXR1cygndXBsb2FkaW5nJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdXBsb2FkIHN0YXR1cyBhbmQgZW1pdCBldmVudFxuICAgIHByaXZhdGUgdXBkYXRlVXBsb2FkU3RhdHVzKHN0YXR1czogJ2lkbGUnIHwgJ3VwbG9hZGluZycgfCAnY29tcGxldGUnKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnVwbG9hZFN0YXR1cyAhPT0gc3RhdHVzKSB7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZFN0YXR1cyA9IHN0YXR1cztcbiAgICAgICAgICAgIHRoaXMudXBsb2FkU3RhdHVzQ2hhbmdlLmVtaXQoc3RhdHVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByb2Nlc3MgdGhlIHF1ZXVlIG9mIGZpbGVzIHNlcXVlbnRpYWxseVxuICAgIHByaXZhdGUgYXN5bmMgcHJvY2Vzc1F1ZXVlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pc1Byb2Nlc3NpbmdRdWV1ZSkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nUXVldWUgPSB0cnVlO1xuXG4gICAgICAgIC8vIEZpbmQgdGhlIG5leHQgZmlsZSB0byB1cGxvYWRcbiAgICAgICAgbGV0IG5leHRGaWxlSW5kZXggPSB0aGlzLnVwbG9hZGVkRmlsZXMuZmluZEluZGV4KChmaWxlKSA9PiBmaWxlLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpO1xuXG4gICAgICAgIHdoaWxlIChuZXh0RmlsZUluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEZpbGUgPSB0aGlzLnVwbG9hZGVkRmlsZXNbbmV4dEZpbGVJbmRleF07XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NGaWxlKGN1cnJlbnRGaWxlLCBuZXh0RmlsZUluZGV4KTtcblxuICAgICAgICAgICAgLy8gRmluZCB0aGUgbmV4dCBmaWxlIGFmdGVyIHByb2Nlc3NpbmdcbiAgICAgICAgICAgIG5leHRGaWxlSW5kZXggPSB0aGlzLnVwbG9hZGVkRmlsZXMuZmluZEluZGV4KChmaWxlKSA9PiBmaWxlLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdRdWV1ZSA9IGZhbHNlO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGFsbCB1cGxvYWRzIGFyZSBjb21wbGV0ZSBhbmQgdGhlcmUgYXJlIG5vIG1vcmUgZmlsZXMgdG8gcHJvY2Vzc1xuICAgICAgICBpZiAodGhpcy51cGxvYWRlZEZpbGVzLmxlbmd0aCA+IDAgJiYgdGhpcy51cGxvYWRlZEZpbGVzLnNvbWUoKGZpbGUpID0+IGZpbGUuc3RhdHVzID09PSAnY29tcGxldGUnKSAmJiAhdGhpcy5oYXNRdWV1ZWRPclVwbG9hZGluZykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVVcGxvYWRTdGF0dXMoJ2NvbXBsZXRlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUcmlnZ2VyIGZpbGUgaW5wdXQgY2xpY2sgcHJvZ3JhbW1hdGljYWxseVxuICAgIG9wZW5GaWxlU2VsZWN0b3IoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpbGVJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBmaWxlSW5wdXQtJHt0aGlzLnVuaXF1ZUlkfWApIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGlmIChmaWxlSW5wdXQpIHtcbiAgICAgICAgICAgIGZpbGVJbnB1dC5jbGljaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW1pdCBlcnJvciBldmVudFxuICAgIHByaXZhdGUgZW1pdEVycm9yKGZpbGU6IEZpbGUsIG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwbG9hZEVycm9yLmVtaXQoeyBmaWxlLCBlcnJvcjogbWVzc2FnZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHByb2Nlc3NGaWxlKGZpbGVFbnRyeTogVXBsb2FkRmlsZSwgaW5kZXg6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyBVcGRhdGUgc3RhdHVzIHRvIHVwbG9hZGluZ1xuICAgICAgICBmaWxlRW50cnkuc3RhdHVzID0gJ3VwbG9hZGluZyc7XG4gICAgICAgIGZpbGVFbnRyeS5wcm9ncmVzcyA9IDA7XG5cbiAgICAgICAgdGhpcy5maWxlU2VsZWN0ZWQuZW1pdChmaWxlRW50cnkuZmlsZSk7XG4gICAgICAgIHRoaXMudXBsb2FkU3RhcnRlZC5lbWl0KGZpbGVFbnRyeS5maWxlKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gU2ltdWxhdGUgdXBsb2FkIHdpdGggcHJvZ3Jlc3MgdXBkYXRlc1xuICAgICAgICAgICAgZm9yIChsZXQgcHJvZ3Jlc3MgPSAwOyBwcm9ncmVzcyA8PSAxMDA7IHByb2dyZXNzICs9IDEwKSB7XG4gICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdXBsb2FkIHdhcyBjYW5jZWxlZCBkdXJpbmcgcHJvZ3Jlc3NcbiAgICAgICAgICAgICAgICAvLyBOZWVkIHRvIGNoZWNrIGN1cnJlbnQgc3RhdHVzIHNpbmNlIGl0IG1pZ2h0IGhhdmUgY2hhbmdlZFxuICAgICAgICAgICAgICAgIGlmIChmaWxlRW50cnkuc3RhdHVzICE9PSAndXBsb2FkaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBFaXRoZXIgY2FuY2VsZWQgb3IgZXJyb3JlZFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmaWxlRW50cnkucHJvZ3Jlc3MgPSBwcm9ncmVzcztcblxuICAgICAgICAgICAgICAgIC8vIFNpbXVsYXRlIG5ldHdvcmsgZGVsYXlcbiAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAyMDApKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gT25seSBzZXQgdG8gY29tcGxldGUgaWYgc3RpbGwgdXBsb2FkaW5nIChub3QgY2FuY2VsZWQgb3IgZXJyb3JlZClcbiAgICAgICAgICAgIGlmIChmaWxlRW50cnkuc3RhdHVzID09PSAndXBsb2FkaW5nJykge1xuICAgICAgICAgICAgICAgIGZpbGVFbnRyeS5zdGF0dXMgPSAnY29tcGxldGUnO1xuICAgICAgICAgICAgICAgIGZpbGVFbnRyeS5wcm9ncmVzcyA9IDEwMDtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZENvbXBsZXRlZC5lbWl0KGZpbGVFbnRyeS5maWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBlcnJvcnNcbiAgICAgICAgICAgIGZpbGVFbnRyeS5zdGF0dXMgPSAnZXJyb3InO1xuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biB1cGxvYWQgZXJyb3InO1xuICAgICAgICAgICAgZmlsZUVudHJ5LmVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZTtcbiAgICAgICAgICAgIHRoaXMuZW1pdEVycm9yKGZpbGVFbnRyeS5maWxlLCBlcnJvck1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FuY2VsVXBsb2FkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgLy8gQ2FuY2VsIHRoZSBzcGVjaWZpZWQgZmlsZSBhbmQgYWxsIGZpbGVzIGJlbG93IGl0XG4gICAgICAgIGZvciAobGV0IGkgPSBpbmRleDsgaSA8IHRoaXMudXBsb2FkZWRGaWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZmlsZVRvQ2FuY2VsID0gdGhpcy51cGxvYWRlZEZpbGVzW2ldO1xuICAgICAgICAgICAgaWYgKGZpbGVUb0NhbmNlbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzU3RhdHVzID0gZmlsZVRvQ2FuY2VsLnN0YXR1cztcbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTdGF0dXMgPT09ICd1cGxvYWRpbmcnIHx8IHByZXZpb3VzU3RhdHVzID09PSAncXVldWVkJykge1xuICAgICAgICAgICAgICAgICAgICBmaWxlVG9DYW5jZWwuc3RhdHVzID0gJ2NhbmNlbGVkJztcbiAgICAgICAgICAgICAgICAgICAgLy8gT25seSBlbWl0IGlmIGl0IHdhcyBhY3RpdmVseSB1cGxvYWRpbmcgKG5vdCBqdXN0IHF1ZXVlZClcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzU3RhdHVzID09PSAndXBsb2FkaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRDYW5jZWxlZC5lbWl0KGZpbGVUb0NhbmNlbC5maWxlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgZmlsZSBhdCB0aGUgc3BlY2lmaWVkIGluZGV4IHdhcyB1cGxvYWRpbmcsIHByb2Nlc3MgdGhlIG5leHQgZmlsZSBpbiBxdWV1ZVxuICAgICAgICAvLyAod2hpY2ggd291bGQgbm93IGJlIGEgZmlsZSBiZWZvcmUgdGhlIGluZGV4IHRoYXQgbWlnaHQgYmUgcXVldWVkKVxuICAgICAgICBpZiAodGhpcy51cGxvYWRlZEZpbGVzW2luZGV4XT8uc3RhdHVzID09PSAnY2FuY2VsZWQnKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucHJvY2Vzc1F1ZXVlKCksIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2FuY2VsIHRoZSBjdXJyZW50IHVwbG9hZFxuICAgIGNhbmNlbEN1cnJlbnRVcGxvYWQoKTogdm9pZCB7XG4gICAgICAgIC8vIEZpbmQgdGhlIGZpbGUgdGhhdCdzIGN1cnJlbnRseSB1cGxvYWRpbmdcbiAgICAgICAgY29uc3QgY3VycmVudFVwbG9hZEluZGV4ID0gdGhpcy51cGxvYWRlZEZpbGVzLmZpbmRJbmRleCgoZmlsZSkgPT4gZmlsZS5zdGF0dXMgPT09ICd1cGxvYWRpbmcnKTtcbiAgICAgICAgaWYgKGN1cnJlbnRVcGxvYWRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmNhbmNlbFVwbG9hZChjdXJyZW50VXBsb2FkSW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2FuY2VsIGFsbCB1cGxvYWRzXG4gICAgY2FuY2VsQWxsVXBsb2FkcygpOiB2b2lkIHtcbiAgICAgICAgbGV0IGhhZEFjdGl2ZVVwbG9hZHMgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGZpbGUuc3RhdHVzID09PSAndXBsb2FkaW5nJyB8fCBmaWxlLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpIHtcbiAgICAgICAgICAgICAgICBoYWRBY3RpdmVVcGxvYWRzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1N0YXR1cyA9IGZpbGUuc3RhdHVzO1xuICAgICAgICAgICAgICAgIGZpbGUuc3RhdHVzID0gJ2NhbmNlbGVkJztcblxuICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1N0YXR1cyA9PT0gJ3VwbG9hZGluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRDYW5jZWxlZC5lbWl0KGZpbGUuZmlsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoaGFkQWN0aXZlVXBsb2FkcyAmJiAhdGhpcy5oYXNRdWV1ZWRPclVwbG9hZGluZykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVVcGxvYWRTdGF0dXMoJ2lkbGUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlbW92ZSBhIGZpbGUgZnJvbSB0aGUgbGlzdFxuICAgIHJlbW92ZUZpbGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlVG9SZW1vdmUgPSB0aGlzLnVwbG9hZGVkRmlsZXNbaW5kZXhdO1xuXG4gICAgICAgIC8vIENhbmNlbCBmaXJzdCBpZiBpdCdzIGFjdGl2ZVxuICAgICAgICBpZiAoZmlsZVRvUmVtb3ZlLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycgfHwgZmlsZVRvUmVtb3ZlLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsVXBsb2FkKGluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEVtaXQgcmVtb3ZhbCBldmVudFxuICAgICAgICB0aGlzLmZpbGVSZW1vdmVkLmVtaXQoZmlsZVRvUmVtb3ZlLmZpbGUpO1xuXG4gICAgICAgIC8vIFJlbW92ZSBmcm9tIGFycmF5XG4gICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICAgIC8vIFJlc2V0IHN0YXR1cyBpZiBubyBmaWxlcyBsZWZ0XG4gICAgICAgIGlmICh0aGlzLnVwbG9hZGVkRmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVVwbG9hZFN0YXR1cygnaWRsZScpO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmhhc1F1ZXVlZE9yVXBsb2FkaW5nICYmIHRoaXMudXBsb2FkU3RhdHVzICE9PSAnY29tcGxldGUnKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbm8gbW9yZSBxdWV1ZWQgb3IgdXBsb2FkaW5nIGZpbGVzIGJ1dCB3ZSBoYXZlIGNvbXBsZXRlZCBmaWxlc1xuICAgICAgICAgICAgdGhpcy51cGRhdGVVcGxvYWRTdGF0dXMoJ2NvbXBsZXRlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgYWxsIGZpbGVzXG4gICAgcmVtb3ZlQWxsRmlsZXMoKTogdm9pZCB7XG4gICAgICAgIC8vIENhbmNlbCBhbnkgYWN0aXZlIHVwbG9hZHNcbiAgICAgICAgdGhpcy5jYW5jZWxBbGxVcGxvYWRzKCk7XG5cbiAgICAgICAgLy8gT25seSBlbWl0IGlmIHRoZXJlIHdlcmUgZmlsZXMgdG8gcmVtb3ZlXG4gICAgICAgIGlmICh0aGlzLnVwbG9hZGVkRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5hbGxGaWxlc1JlbW92ZWQuZW1pdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gW107XG4gICAgICAgIHRoaXMudXBkYXRlVXBsb2FkU3RhdHVzKCdpZGxlJyk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1VwbG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkZWRGaWxlcy5zb21lKChmaWxlKSA9PiBmaWxlLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycpO1xuICAgIH1cblxuICAgIGdldCBoYXNRdWV1ZWRPclVwbG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkZWRGaWxlcy5zb21lKChmaWxlKSA9PiBmaWxlLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycgfHwgZmlsZS5zdGF0dXMgPT09ICdxdWV1ZWQnKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRlZEZpbGVzLnNvbWUoKGZpbGUpID0+IGZpbGUuc3RhdHVzID09PSAnZXJyb3InKTtcbiAgICB9XG5cbiAgICBnZXQgYWxsVXBsb2Fkc0NvbXBsZXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRlZEZpbGVzLmxlbmd0aCA+IDAgJiYgdGhpcy51cGxvYWRlZEZpbGVzLnNvbWUoKGZpbGUpID0+IGZpbGUuc3RhdHVzID09PSAnY29tcGxldGUnKSAmJiAhdGhpcy5oYXNRdWV1ZWRPclVwbG9hZGluZztcbiAgICB9XG5cbiAgICBnZXQgdXBsb2FkaW5nUHJvZ3Jlc3NUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIC8vIENvdW50IGFjdGl2ZSBmaWxlcyAoZXhjbHVkaW5nIGNhbmNlbGVkIG9uZXMpXG4gICAgICAgIGNvbnN0IHRvdGFsQWN0aXZlRmlsZXMgPSB0aGlzLmFjdGl2ZUZpbGVzQ291bnQ7XG4gICAgICAgIGNvbnN0IGNvbXBsZXRlZENvdW50ID0gdGhpcy51cGxvYWRlZEZpbGVzLmZpbHRlcigoZmlsZSkgPT4gZmlsZS5zdGF0dXMgPT09ICdjb21wbGV0ZScpLmxlbmd0aDtcbiAgICAgICAgY29uc3QgdXBsb2FkaW5nRmlsZSA9IHRoaXMudXBsb2FkZWRGaWxlcy5maW5kKChmaWxlKSA9PiBmaWxlLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycpO1xuICAgICAgICBpZiAodXBsb2FkaW5nRmlsZSkge1xuICAgICAgICAgICAgLy8gV2UncmUgY3VycmVudGx5IHVwbG9hZGluZyB0aGUgKGNvbXBsZXRlZENvdW50ICsgMSl0aCBhY3RpdmUgZmlsZVxuICAgICAgICAgICAgcmV0dXJuIGBVcGxvYWRpbmcgJHtjb21wbGV0ZWRDb3VudH0vJHt0b3RhbEFjdGl2ZUZpbGVzfSBmaWxlJHt0b3RhbEFjdGl2ZUZpbGVzID4gMSA/ICdzJyA6ICcnfS4uLmA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudXBsb2FkZWRGaWxlcy5zb21lKChmaWxlKSA9PiBmaWxlLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gYFVwbG9hZGluZyAke2NvbXBsZXRlZENvdW50ICsgMX0vJHt0b3RhbEFjdGl2ZUZpbGVzfSBmaWxlJHt0b3RhbEFjdGl2ZUZpbGVzID4gMSA/ICdzJyA6ICcnfS4uLmA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGBVcGxvYWRpbmcgJHtjb21wbGV0ZWRDb3VudH0vJHt0b3RhbEFjdGl2ZUZpbGVzfSBmaWxlJHt0b3RhbEFjdGl2ZUZpbGVzID4gMSA/ICdzJyA6ICcnfS4uLmA7XG4gICAgfVxuXG4gICAgLy8gQ2FsY3VsYXRlIG92ZXJhbGwgcHJvZ3Jlc3MgcGVyY2VudGFnZSBhY3Jvc3MgYWxsIGZpbGVzXG4gICAgZ2V0IG92ZXJhbGxQcm9ncmVzcygpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy51cGxvYWRlZEZpbGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDA7XG5cbiAgICAgICAgY29uc3QgdG90YWxQcm9ncmVzcyA9IHRoaXMudXBsb2FkZWRGaWxlcy5yZWR1Y2UoKHN1bSwgZmlsZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGZpbGUuc3RhdHVzID09PSAnY29tcGxldGUnKSByZXR1cm4gc3VtICsgMTAwO1xuICAgICAgICAgICAgaWYgKGZpbGUuc3RhdHVzID09PSAnY2FuY2VsZWQnIHx8IGZpbGUuc3RhdHVzID09PSAnZXJyb3InKSByZXR1cm4gc3VtO1xuICAgICAgICAgICAgcmV0dXJuIHN1bSArIChmaWxlLnByb2dyZXNzIHx8IDApO1xuICAgICAgICB9LCAwKTtcblxuICAgICAgICBjb25zdCBhY3RpdmVGaWxlc0NvdW50ID0gdGhpcy51cGxvYWRlZEZpbGVzLmZpbHRlcigoZmlsZSkgPT4gZmlsZS5zdGF0dXMgIT09ICdjYW5jZWxlZCcgJiYgZmlsZS5zdGF0dXMgIT09ICdlcnJvcicpLmxlbmd0aDtcblxuICAgICAgICByZXR1cm4gYWN0aXZlRmlsZXNDb3VudCA+IDAgPyBNYXRoLnJvdW5kKCh0b3RhbFByb2dyZXNzIC8gKGFjdGl2ZUZpbGVzQ291bnQgKiAxMDApKSAqIDEwMCkgOiAwO1xuICAgIH1cbn1cbiIsIjxwIGNsYXNzPVwiY2F4LWZpbGVzXCI+e3tpbnB1dEZpbGVzfX08L3A+XHJcbjxkaXYgY2xhc3M9XCJjYXgtdXBsb2FkLW1lbnVcIiBbbmdTdHlsZV09XCJzdHlsZVwiXHJcbiAgICAgW2NsYXNzLmRyYWdnaW5nXT1cImlzRHJhZ2dpbmdcIiBcclxuICAgICAoY2xpY2spPVwib3BlbkZpbGVTZWxlY3RvcigpXCI+XHJcbiAgICAgPGlucHV0XHJcbiAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgIGlkPVwiZmlsZUlucHV0LXt7dW5pcXVlSWR9fVwiXHJcbiAgICAgc3R5bGU9XCJkaXNwbGF5Om5vbmVcIlxyXG4gICAgIFttdWx0aXBsZV09XCJhbGxvd011bHRpcGxlXCJcclxuICAgICBbYWNjZXB0XT1cImFjY2VwdEZpbGVUeXBlc1wiXHJcbiAgICAgKGNoYW5nZSk9XCJoYW5kbGVGaWxlSW5wdXQoJGV2ZW50KVwiXHJcbiAgIC8+XHJcblxyXG4gIDwhLS0gRGVmYXVsdCBVcGxvYWQgU3RhdGUgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVwbG9hZFN0YXR1cyA9PT0gJ2lkbGUnXCIgPlxyXG4gICAgPGRpdiBjbGFzcz1cImNheC11cGxvYWQtb3B0aW9uc1wiID5cclxuICAgICAgPHAgY2xhc3M9XCJoaW50LXRleHRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtZmlsZXNcIj5Ecm9wIGZpbGVzIGhlcmU8L3NwYW4+IG9yIGJyb3dzZSBmaWxlcyBmcm9tIHlvdXIgZGV2aWNlXHJcbiAgICAgIDwvcD5cclxuICAgICAgPHAgY2xhc3M9XCJtYXgtc2l6ZVwiPk1heC4gRmlsZSBTaXplOiB7eyBtYXhGaWxlU2l6ZSB9fU1CPC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICA8IS0tIFVwbG9hZGluZyBTdGF0ZSAtLT5cclxuPGRpdiAqbmdJZj1cInVwbG9hZFN0YXR1cyA9PT0gJ3VwbG9hZGluZydcIiBjbGFzcz1cImNheC11cGxvYWQtc3RhdHVzIHVwbG9hZGluZ1wiID5cclxuICA8ZGl2IGNsYXNzPVwic3RhdHVzLWNvbnRhaW5lclwiPlxyXG4gICAgPGNheC1wcm9ncmVzc1NwaW5uZXJcclxuICAgICAgICBbc3Ryb2tlQ29sb3JdPVwiJ3ByaW1hcnknXCJcclxuICAgICAgICBbc2l6ZV09XCInbGcnXCJcclxuICAgICAgICBbYW5pbWF0aW9uRHVyYXRpb25dPVwiJzJzJ1wiXHJcbiAgICAgID48L2NheC1wcm9ncmVzc1NwaW5uZXI+XHJcbiAgICA8cCA+e3sgdXBsb2FkaW5nUHJvZ3Jlc3NUZXh0IH19PC9wPlxyXG4gICAgPGNheC1idXR0b25cclxuICAgICAgW2xhYmVsXT1cIidDYW5jZWwnXCJcclxuICAgICAgW3JvdW5kZWRdPVwiZmFsc2VcIlxyXG4gICAgICBbc2V2ZXJpdHldPVwiJ2RhbmdlcidcIlxyXG4gICAgICBbc2l6ZV09XCInbGFyZ2UnXCJcclxuICAgICAgW291dGxpbmVkXT1cIidmYWxzZSdcIlxyXG4gICAgICBbbGlua109XCJ0cnVlXCJcclxuICAgICAgKGNsaWNrKT1cImNhbmNlbEN1cnJlbnRVcGxvYWQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuICA8IS0tIENvbXBsZXRlIFN0YXRlIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCJ1cGxvYWRTdGF0dXMgPT09ICdjb21wbGV0ZSdcIiBjbGFzcz1cImNheC11cGxvYWQtc3RhdHVzIGNvbXBsZXRlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RhdHVzLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3VjY2Vzcy1pY29uXCI+PGkgY2xhc3M9XCJjYXggY2F4LWNoZWNrXCI+PC9pPjwvZGl2PlxyXG4gICAgICA8cD57e3VwbG9hZFN0cmluZ319PC9wPlxyXG4gICAgICA8Y2F4LWJ1dHRvblxyXG4gICAgICAgIFtsYWJlbF09XCInUmVtb3ZlJ1wiXHJcbiAgICAgICAgW3JvdW5kZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtzZXZlcml0eV09XCInZGFuZ2VyJ1wiXHJcbiAgICAgICAgW3NpemVdPVwiJ2xhcmdlJ1wiXHJcbiAgICAgICAgW291dGxpbmVkXT1cIidmYWxzZSdcIlxyXG4gICAgICAgIFtsaW5rXT1cInRydWVcIlxyXG4gICAgICAgIChjbGljayk9XCJyZW1vdmVBbGxGaWxlcygpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cImludmFsaWRcIiBpZD1cImhlbHBlci10ZXh0XCIgY2xhc3M9XCJjYXgtZXJyb3ItdXBsb2FkXCI+PC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiaW52YWxpZFwiIGlkPVwiaGVscGVyLXRleHRcIiBjbGFzcz1cImNheC1lcnJvci11cGxvYWRcIj5cclxuICB7eyBlcnJvclRleHQgfX1cclxuPC9kaXY+XHJcblxyXG48IS0tIHN0YWNrZWQgZmlsZSAtLT5cclxuPGRpdiAqbmdJZj1cInVwbG9hZGVkRmlsZXMubGVuZ3RoID4gMFwiIGNsYXNzPVwiY2F4LWZpbGUtcHJldmlldy13cmFwcGVyXCIgW25nU3R5bGVdPVwic3R5bGVcIj5cclxuICA8ZGl2XHJcbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB1cGxvYWRlZEZpbGVzOyBsZXQgaSA9IGluZGV4XCJcclxuICAgIGNsYXNzPVwiY2F4LWZpbGUtcHJldmlld1wiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICdxdWV1ZWQnOiBpdGVtLnN0YXR1cyA9PT0gJ3F1ZXVlZCcsXHJcbiAgICAgICd1cGxvYWRpbmcnOiBpdGVtLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycsXHJcbiAgICAgICdjb21wbGV0ZSc6IGl0ZW0uc3RhdHVzID09PSAnY29tcGxldGUnLFxyXG4gICAgICAnY2FuY2VsZWQnOiBpdGVtLnN0YXR1cyA9PT0gJ2NhbmNlbGVkJ1xyXG4gICAgfVwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbGUtaW5mb1wiPlxyXG4gICAgICA8cCBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGl0ZW0uZmlsZS5uYW1lIH19PC9wPlxyXG4gICAgPC9kaXY+IFxyXG5cclxuICAgIDwhLS0gU2hvdyBzcGlubmVyIGZvciBxdWV1ZWQgb3IgdXBsb2FkaW5nIGZpbGVzIC0tPlxyXG4gICAgPGRpdiAqbmdJZj1cIml0ZW0uc3RhdHVzID09PSAncXVldWVkJyB8fCBpdGVtLnN0YXR1cyA9PT0gJ3VwbG9hZGluZydcIiBjbGFzcz1cInNwaW5uZXJcIj5cclxuICAgICAgPGNheC1wcm9ncmVzc1NwaW5uZXJcclxuICAgICAgICBbc3Ryb2tlQ29sb3JdPVwiJ3ByaW1hcnknXCJcclxuICAgICAgICBbc2l6ZV09XCInc20nXCJcclxuICAgICAgICBbYW5pbWF0aW9uRHVyYXRpb25dPVwiJzJzJ1wiPlxyXG4gICAgICA8L2NheC1wcm9ncmVzc1NwaW5uZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgPCEtLSBTaG93IHJlbW92ZSBidXR0b24gb25seSBmb3IgY29tcGxldGUgb3IgY2FuY2VsZWQgZmlsZXMgLS0+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICpuZ0lmPVwiaXRlbS5zdGF0dXMgPT09ICdjb21wbGV0ZScgfHwgaXRlbS5zdGF0dXMgPT09ICdjYW5jZWxlZCdcIlxyXG4gICAgICBjbGFzcz1cInJlbW92ZS1idXR0b25cIlxyXG4gICAgICAoY2xpY2spPVwicmVtb3ZlRmlsZShpKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwiY2F4IGNheC1jbG9zZVwiPjwvaT4gXHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
367
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy91cGxvYWQvdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy91cGxvYWQvdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7OztBQW1CN0YsTUFBTSxPQUFPLGVBQWU7SUFDZixPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3pCLEtBQUssQ0FBOEM7SUFDbkQsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUN6QixVQUFVLEdBQVcsYUFBYSxDQUFDO0lBQ25DLFlBQVksR0FBVyxvQkFBb0IsQ0FBQztJQUM1QyxTQUFTLEdBQVcsc0JBQXNCLENBQUM7SUFDM0MsYUFBYSxHQUFZLElBQUksQ0FBQztJQUM5QixXQUFXLEdBQVcsRUFBRSxDQUFDO0lBQ3pCLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUN6QywwQkFBMEI7SUFDaEIsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDeEMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDekMsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDekMsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDM0MsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDMUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFpQyxDQUFDO0lBQ2hFLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBQ3ZDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBQzNDLGtCQUFrQixHQUFHLElBQUksWUFBWSxFQUFxQyxDQUFDO0lBRXJGLFVBQVUsR0FB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QUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkF5QlAsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRcEMsV0FBVztzQkFEVixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRckMsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBVcGxvYWRGaWxlU3RhdHVzID0gJ3F1ZXVlZCcgfCAndXBsb2FkaW5nJyB8ICdjb21wbGV0ZScgfCAnY2FuY2VsZWQnIHwgJ2Vycm9yJztcblxuZXhwb3J0IHR5cGUgVXBsb2FkRmlsZSA9IHtcbiAgICBmaWxlOiBGaWxlO1xuICAgIHN0YXR1czogVXBsb2FkRmlsZVN0YXR1cztcbiAgICBwcm9ncmVzcz86IG51bWJlcjtcbiAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NheC11cGxvYWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VwbG9hZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdjYXgtZWxlbWVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgaW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIG1heEZpbGVTaXplOiBudW1iZXIgPSAzMDtcbiAgICBASW5wdXQoKSBpbnB1dEZpbGVzOiBzdHJpbmcgPSAnSW5wdXQgRmlsZXMnO1xuICAgIEBJbnB1dCgpIHVwbG9hZFN0cmluZzogc3RyaW5nID0gJ3VwbG9hZGluZyB0aGUgZmlsZSc7XG4gICAgQElucHV0KCkgZXJyb3JUZXh0OiBzdHJpbmcgPSAnUGxlYXNlIHVwbG9hZCBhIGZpbGUnO1xuICAgIEBJbnB1dCgpIGFsbG93TXVsdGlwbGU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGNvbXBvbmVudElkOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBhbGxvd2VkRmlsZVR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIC8vIEVuaGFuY2VkIGV2ZW50IGVtaXR0ZXJzXG4gICAgQE91dHB1dCgpIGZpbGVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcbiAgICBAT3V0cHV0KCkgZmlsZXNRdWV1ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcbiAgICBAT3V0cHV0KCkgdXBsb2FkU3RhcnRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcbiAgICBAT3V0cHV0KCkgdXBsb2FkQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlPigpO1xuICAgIEBPdXRwdXQoKSB1cGxvYWRDYW5jZWxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcbiAgICBAT3V0cHV0KCkgdXBsb2FkRXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmlsZTogRmlsZTsgZXJyb3I6IHN0cmluZyB9PigpO1xuICAgIEBPdXRwdXQoKSBmaWxlUmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcbiAgICBAT3V0cHV0KCkgYWxsRmlsZXNSZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSB1cGxvYWRTdGF0dXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPCdpZGxlJyB8ICd1cGxvYWRpbmcnIHwgJ2NvbXBsZXRlJz4oKTtcblxuICAgIGlzRHJhZ2dpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICB1cGxvYWRlZEZpbGVzOiBVcGxvYWRGaWxlW10gPSBbXTtcbiAgICB1cGxvYWRTdGF0dXM6ICdpZGxlJyB8ICd1cGxvYWRpbmcnIHwgJ2NvbXBsZXRlJyA9ICdpZGxlJztcbiAgICBpc1Byb2Nlc3NpbmdRdWV1ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHVuaXF1ZUlkOiBzdHJpbmcgPSAnJztcblxuICAgIC8vIENvbXB1dGVkIHByb3BlcnR5IGZvciBhY2NlcHQgYXR0cmlidXRlIGluIGZpbGUgaW5wdXRcbiAgICBnZXQgYWNjZXB0RmlsZVR5cGVzKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdGhpcy5hbGxvd2VkRmlsZVR5cGVzIHx8IHRoaXMuYWxsb3dlZEZpbGVUeXBlcy5sZW5ndGggPT09IDApIHJldHVybiAnJztcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsb3dlZEZpbGVUeXBlcy5tYXAoKHR5cGUpID0+IGAuJHt0eXBlfWApLmpvaW4oJywnKTtcbiAgICB9XG5cbiAgICAvLyBUcmFjayBhY3R1YWwgZmlsZXMgdG8gcHJvY2VzcyAoZXhjbHVkZXMgY2FuY2VsZWQgb25lcylcbiAgICBwcml2YXRlIGdldCBhY3RpdmVGaWxlc0NvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwbG9hZGVkRmlsZXMuZmlsdGVyKChmaWxlKSA9PiBmaWxlLnN0YXR1cyAhPT0gJ2NhbmNlbGVkJykubGVuZ3RoO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBHZW5lcmF0ZSB1bmlxdWUgSUQgaWYgbm90IHByb3ZpZGVkIHRocm91Z2ggaW5wdXRcbiAgICAgICAgdGhpcy51bmlxdWVJZCA9IHRoaXMuY29tcG9uZW50SWQgfHwgYHVwbG9hZC0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCAxMSl9YDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pXG4gICAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXG4gICAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlcztcbiAgICAgICAgaWYgKCFmaWxlcyB8fCBmaWxlcy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgICAgICBjb25zdCBmaWxlQXJyYXkgPSBBcnJheS5mcm9tKGZpbGVzKTtcbiAgICAgICAgY29uc3QgdmFsaWRGaWxlcyA9IGZpbGVBcnJheS5maWx0ZXIoKGZpbGUpID0+IHRoaXMudmFsaWRhdGVGaWxlKGZpbGUpKTtcblxuICAgICAgICAvLyBRdWV1ZSBhbGwgZmlsZXMgZm9yIHVwbG9hZFxuICAgICAgICB2YWxpZEZpbGVzLmZvckVhY2goKGZpbGUpID0+IHRoaXMucXVldWVGaWxlKGZpbGUpKTtcblxuICAgICAgICAvLyBFbWl0IHRoZSBxdWV1ZWQgZmlsZXMgZXZlbnRcbiAgICAgICAgaWYgKHZhbGlkRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5maWxlc1F1ZXVlZC5lbWl0KHZhbGlkRmlsZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3RhcnQgcHJvY2Vzc2luZyB0aGUgcXVldWUgaWYgbm90IGFscmVhZHkgcHJvY2Vzc2luZ1xuICAgICAgICBpZiAoIXRoaXMuaXNQcm9jZXNzaW5nUXVldWUpIHtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc1F1ZXVlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVGaWxlSW5wdXQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlczogRmlsZUxpc3QgPSBldmVudC50YXJnZXQuZmlsZXM7XG4gICAgICAgIGlmICghZmlsZXMpIHJldHVybjtcblxuICAgICAgICBjb25zdCBmaWxlQXJyYXkgPSBBcnJheS5mcm9tKGZpbGVzKTtcbiAgICAgICAgY29uc3QgdmFsaWRGaWxlcyA9IGZpbGVBcnJheS5maWx0ZXIoKGZpbGUpID0+IHRoaXMudmFsaWRhdGVGaWxlKGZpbGUpKTtcblxuICAgICAgICAvLyBRdWV1ZSBhbGwgZmlsZXMgZm9yIHVwbG9hZFxuICAgICAgICB2YWxpZEZpbGVzLmZvckVhY2goKGZpbGUpID0+IHRoaXMucXVldWVGaWxlKGZpbGUpKTtcblxuICAgICAgICAvLyBFbWl0IHRoZSBxdWV1ZWQgZmlsZXMgZXZlbnRcbiAgICAgICAgaWYgKHZhbGlkRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5maWxlc1F1ZXVlZC5lbWl0KHZhbGlkRmlsZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3RhcnQgcHJvY2Vzc2luZyB0aGUgcXVldWUgaWYgbm90IGFscmVhZHkgcHJvY2Vzc2luZ1xuICAgICAgICBpZiAoIXRoaXMuaXNQcm9jZXNzaW5nUXVldWUpIHtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc1F1ZXVlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXcgbWV0aG9kIGZvciBmaWxlIHZhbGlkYXRpb25cbiAgICBwcml2YXRlIHZhbGlkYXRlRmlsZShmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIFNpemUgdmFsaWRhdGlvblxuICAgICAgICBpZiAoZmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZSAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgICB0aGlzLmVtaXRFcnJvcihmaWxlLCBgRmlsZSBzaXplIHNob3VsZCBiZSBsZXNzIHRoYW4gJHt0aGlzLm1heEZpbGVTaXplfU1CYCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaWxlIHR5cGUgdmFsaWRhdGlvblxuICAgICAgICBpZiAodGhpcy5hbGxvd2VkRmlsZVR5cGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSB0aGlzLmdldEZpbGVFeHRlbnNpb24oZmlsZS5uYW1lKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRFcnJvcihmaWxlLCBgT25seSAke3RoaXMuYWxsb3dlZEZpbGVUeXBlcy5qb2luKCcsICcpfSBmaWxlcyBhcmUgYWxsb3dlZGApO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIEhlbHBlciBtZXRob2QgdG8gZ2V0IGZpbGUgZXh0ZW5zaW9uXG4gICAgcHJpdmF0ZSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZmlsZW5hbWUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJztcbiAgICB9XG5cbiAgICAvLyBRdWV1ZSBhIGZpbGUgZm9yIHVwbG9hZFxuICAgIHByaXZhdGUgcXVldWVGaWxlKGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXBsb2FkRW50cnk6IFVwbG9hZEZpbGUgPSB7XG4gICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgc3RhdHVzOiAncXVldWVkJyxcbiAgICAgICAgICAgIHByb2dyZXNzOiAwXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzLnB1c2godXBsb2FkRW50cnkpO1xuXG4gICAgICAgIGlmICh0aGlzLnVwbG9hZFN0YXR1cyA9PT0gJ2lkbGUnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVVwbG9hZFN0YXR1cygndXBsb2FkaW5nJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdXBsb2FkIHN0YXR1cyBhbmQgZW1pdCBldmVudFxuICAgIHByaXZhdGUgdXBkYXRlVXBsb2FkU3RhdHVzKHN0YXR1czogJ2lkbGUnIHwgJ3VwbG9hZGluZycgfCAnY29tcGxldGUnKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnVwbG9hZFN0YXR1cyAhPT0gc3RhdHVzKSB7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZFN0YXR1cyA9IHN0YXR1cztcbiAgICAgICAgICAgIHRoaXMudXBsb2FkU3RhdHVzQ2hhbmdlLmVtaXQoc3RhdHVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByb2Nlc3MgdGhlIHF1ZXVlIG9mIGZpbGVzIHNlcXVlbnRpYWxseVxuICAgIHByaXZhdGUgYXN5bmMgcHJvY2Vzc1F1ZXVlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pc1Byb2Nlc3NpbmdRdWV1ZSkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nUXVldWUgPSB0cnVlO1xuXG4gICAgICAgIC8vIEZpbmQgdGhlIG5leHQgZmlsZSB0byB1cGxvYWRcbiAgICAgICAgbGV0IG5leHRGaWxlSW5kZXggPSB0aGlzLnVwbG9hZGVkRmlsZXMuZmluZEluZGV4KChmaWxlKSA9PiBmaWxlLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpO1xuXG4gICAgICAgIHdoaWxlIChuZXh0RmlsZUluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEZpbGUgPSB0aGlzLnVwbG9hZGVkRmlsZXNbbmV4dEZpbGVJbmRleF07XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NGaWxlKGN1cnJlbnRGaWxlLCBuZXh0RmlsZUluZGV4KTtcblxuICAgICAgICAgICAgLy8gRmluZCB0aGUgbmV4dCBmaWxlIGFmdGVyIHByb2Nlc3NpbmdcbiAgICAgICAgICAgIG5leHRGaWxlSW5kZXggPSB0aGlzLnVwbG9hZGVkRmlsZXMuZmluZEluZGV4KChmaWxlKSA9PiBmaWxlLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdRdWV1ZSA9IGZhbHNlO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGFsbCB1cGxvYWRzIGFyZSBjb21wbGV0ZSBhbmQgdGhlcmUgYXJlIG5vIG1vcmUgZmlsZXMgdG8gcHJvY2Vzc1xuICAgICAgICBpZiAodGhpcy51cGxvYWRlZEZpbGVzLmxlbmd0aCA+IDAgJiYgdGhpcy51cGxvYWRlZEZpbGVzLnNvbWUoKGZpbGUpID0+IGZpbGUuc3RhdHVzID09PSAnY29tcGxldGUnKSAmJiAhdGhpcy5oYXNRdWV1ZWRPclVwbG9hZGluZykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVVcGxvYWRTdGF0dXMoJ2NvbXBsZXRlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUcmlnZ2VyIGZpbGUgaW5wdXQgY2xpY2sgcHJvZ3JhbW1hdGljYWxseVxuICAgIG9wZW5GaWxlU2VsZWN0b3IoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpbGVJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBmaWxlSW5wdXQtJHt0aGlzLnVuaXF1ZUlkfWApIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGlmIChmaWxlSW5wdXQpIHtcbiAgICAgICAgICAgIGZpbGVJbnB1dC5jbGljaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW1pdCBlcnJvciBldmVudFxuICAgIHByaXZhdGUgZW1pdEVycm9yKGZpbGU6IEZpbGUsIG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwbG9hZEVycm9yLmVtaXQoeyBmaWxlLCBlcnJvcjogbWVzc2FnZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHByb2Nlc3NGaWxlKGZpbGVFbnRyeTogVXBsb2FkRmlsZSwgaW5kZXg6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyBVcGRhdGUgc3RhdHVzIHRvIHVwbG9hZGluZ1xuICAgICAgICBmaWxlRW50cnkuc3RhdHVzID0gJ3VwbG9hZGluZyc7XG4gICAgICAgIGZpbGVFbnRyeS5wcm9ncmVzcyA9IDA7XG5cbiAgICAgICAgdGhpcy5maWxlU2VsZWN0ZWQuZW1pdChmaWxlRW50cnkuZmlsZSk7XG4gICAgICAgIHRoaXMudXBsb2FkU3RhcnRlZC5lbWl0KGZpbGVFbnRyeS5maWxlKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gU2ltdWxhdGUgdXBsb2FkIHdpdGggcHJvZ3Jlc3MgdXBkYXRlc1xuICAgICAgICAgICAgZm9yIChsZXQgcHJvZ3Jlc3MgPSAwOyBwcm9ncmVzcyA8PSAxMDA7IHByb2dyZXNzICs9IDEwKSB7XG4gICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdXBsb2FkIHdhcyBjYW5jZWxlZCBkdXJpbmcgcHJvZ3Jlc3NcbiAgICAgICAgICAgICAgICAvLyBOZWVkIHRvIGNoZWNrIGN1cnJlbnQgc3RhdHVzIHNpbmNlIGl0IG1pZ2h0IGhhdmUgY2hhbmdlZFxuICAgICAgICAgICAgICAgIGlmIChmaWxlRW50cnkuc3RhdHVzICE9PSAndXBsb2FkaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBFaXRoZXIgY2FuY2VsZWQgb3IgZXJyb3JlZFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmaWxlRW50cnkucHJvZ3Jlc3MgPSBwcm9ncmVzcztcblxuICAgICAgICAgICAgICAgIC8vIFNpbXVsYXRlIG5ldHdvcmsgZGVsYXlcbiAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAyMDApKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gT25seSBzZXQgdG8gY29tcGxldGUgaWYgc3RpbGwgdXBsb2FkaW5nIChub3QgY2FuY2VsZWQgb3IgZXJyb3JlZClcbiAgICAgICAgICAgIGlmIChmaWxlRW50cnkuc3RhdHVzID09PSAndXBsb2FkaW5nJykge1xuICAgICAgICAgICAgICAgIGZpbGVFbnRyeS5zdGF0dXMgPSAnY29tcGxldGUnO1xuICAgICAgICAgICAgICAgIGZpbGVFbnRyeS5wcm9ncmVzcyA9IDEwMDtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZENvbXBsZXRlZC5lbWl0KGZpbGVFbnRyeS5maWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBlcnJvcnNcbiAgICAgICAgICAgIGZpbGVFbnRyeS5zdGF0dXMgPSAnZXJyb3InO1xuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biB1cGxvYWQgZXJyb3InO1xuICAgICAgICAgICAgZmlsZUVudHJ5LmVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZTtcbiAgICAgICAgICAgIHRoaXMuZW1pdEVycm9yKGZpbGVFbnRyeS5maWxlLCBlcnJvck1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FuY2VsVXBsb2FkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgLy8gQ2FuY2VsIHRoZSBzcGVjaWZpZWQgZmlsZSBhbmQgYWxsIGZpbGVzIGJlbG93IGl0XG4gICAgICAgIGZvciAobGV0IGkgPSBpbmRleDsgaSA8IHRoaXMudXBsb2FkZWRGaWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZmlsZVRvQ2FuY2VsID0gdGhpcy51cGxvYWRlZEZpbGVzW2ldO1xuICAgICAgICAgICAgaWYgKGZpbGVUb0NhbmNlbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzU3RhdHVzID0gZmlsZVRvQ2FuY2VsLnN0YXR1cztcbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTdGF0dXMgPT09ICd1cGxvYWRpbmcnIHx8IHByZXZpb3VzU3RhdHVzID09PSAncXVldWVkJykge1xuICAgICAgICAgICAgICAgICAgICBmaWxlVG9DYW5jZWwuc3RhdHVzID0gJ2NhbmNlbGVkJztcbiAgICAgICAgICAgICAgICAgICAgLy8gT25seSBlbWl0IGlmIGl0IHdhcyBhY3RpdmVseSB1cGxvYWRpbmcgKG5vdCBqdXN0IHF1ZXVlZClcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzU3RhdHVzID09PSAndXBsb2FkaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRDYW5jZWxlZC5lbWl0KGZpbGVUb0NhbmNlbC5maWxlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgZmlsZSBhdCB0aGUgc3BlY2lmaWVkIGluZGV4IHdhcyB1cGxvYWRpbmcsIHByb2Nlc3MgdGhlIG5leHQgZmlsZSBpbiBxdWV1ZVxuICAgICAgICAvLyAod2hpY2ggd291bGQgbm93IGJlIGEgZmlsZSBiZWZvcmUgdGhlIGluZGV4IHRoYXQgbWlnaHQgYmUgcXVldWVkKVxuICAgICAgICBpZiAodGhpcy51cGxvYWRlZEZpbGVzW2luZGV4XT8uc3RhdHVzID09PSAnY2FuY2VsZWQnKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucHJvY2Vzc1F1ZXVlKCksIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2FuY2VsIHRoZSBjdXJyZW50IHVwbG9hZFxuICAgIGNhbmNlbEN1cnJlbnRVcGxvYWQoKTogdm9pZCB7XG4gICAgICAgIC8vIEZpbmQgdGhlIGZpbGUgdGhhdCdzIGN1cnJlbnRseSB1cGxvYWRpbmdcbiAgICAgICAgY29uc3QgY3VycmVudFVwbG9hZEluZGV4ID0gdGhpcy51cGxvYWRlZEZpbGVzLmZpbmRJbmRleCgoZmlsZSkgPT4gZmlsZS5zdGF0dXMgPT09ICd1cGxvYWRpbmcnKTtcbiAgICAgICAgaWYgKGN1cnJlbnRVcGxvYWRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmNhbmNlbFVwbG9hZChjdXJyZW50VXBsb2FkSW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2FuY2VsIGFsbCB1cGxvYWRzXG4gICAgY2FuY2VsQWxsVXBsb2FkcygpOiB2b2lkIHtcbiAgICAgICAgbGV0IGhhZEFjdGl2ZVVwbG9hZHMgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGZpbGUuc3RhdHVzID09PSAndXBsb2FkaW5nJyB8fCBmaWxlLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpIHtcbiAgICAgICAgICAgICAgICBoYWRBY3RpdmVVcGxvYWRzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1N0YXR1cyA9IGZpbGUuc3RhdHVzO1xuICAgICAgICAgICAgICAgIGZpbGUuc3RhdHVzID0gJ2NhbmNlbGVkJztcblxuICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1N0YXR1cyA9PT0gJ3VwbG9hZGluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRDYW5jZWxlZC5lbWl0KGZpbGUuZmlsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoaGFkQWN0aXZlVXBsb2FkcyAmJiAhdGhpcy5oYXNRdWV1ZWRPclVwbG9hZGluZykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVVcGxvYWRTdGF0dXMoJ2lkbGUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlbW92ZSBhIGZpbGUgZnJvbSB0aGUgbGlzdFxuICAgIHJlbW92ZUZpbGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlVG9SZW1vdmUgPSB0aGlzLnVwbG9hZGVkRmlsZXNbaW5kZXhdO1xuXG4gICAgICAgIC8vIENhbmNlbCBmaXJzdCBpZiBpdCdzIGFjdGl2ZVxuICAgICAgICBpZiAoZmlsZVRvUmVtb3ZlLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycgfHwgZmlsZVRvUmVtb3ZlLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsVXBsb2FkKGluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEVtaXQgcmVtb3ZhbCBldmVudFxuICAgICAgICB0aGlzLmZpbGVSZW1vdmVkLmVtaXQoZmlsZVRvUmVtb3ZlLmZpbGUpO1xuXG4gICAgICAgIC8vIFJlbW92ZSBmcm9tIGFycmF5XG4gICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICAgIC8vIFJlc2V0IHN0YXR1cyBpZiBubyBmaWxlcyBsZWZ0XG4gICAgICAgIGlmICh0aGlzLnVwbG9hZGVkRmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVVwbG9hZFN0YXR1cygnaWRsZScpO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmhhc1F1ZXVlZE9yVXBsb2FkaW5nICYmIHRoaXMudXBsb2FkU3RhdHVzICE9PSAnY29tcGxldGUnKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbm8gbW9yZSBxdWV1ZWQgb3IgdXBsb2FkaW5nIGZpbGVzIGJ1dCB3ZSBoYXZlIGNvbXBsZXRlZCBmaWxlc1xuICAgICAgICAgICAgdGhpcy51cGRhdGVVcGxvYWRTdGF0dXMoJ2NvbXBsZXRlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgYWxsIGZpbGVzXG4gICAgcmVtb3ZlQWxsRmlsZXMoKTogdm9pZCB7XG4gICAgICAgIC8vIENhbmNlbCBhbnkgYWN0aXZlIHVwbG9hZHNcbiAgICAgICAgdGhpcy5jYW5jZWxBbGxVcGxvYWRzKCk7XG5cbiAgICAgICAgLy8gT25seSBlbWl0IGlmIHRoZXJlIHdlcmUgZmlsZXMgdG8gcmVtb3ZlXG4gICAgICAgIGlmICh0aGlzLnVwbG9hZGVkRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5hbGxGaWxlc1JlbW92ZWQuZW1pdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gW107XG4gICAgICAgIHRoaXMudXBkYXRlVXBsb2FkU3RhdHVzKCdpZGxlJyk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1VwbG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkZWRGaWxlcy5zb21lKChmaWxlKSA9PiBmaWxlLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycpO1xuICAgIH1cblxuICAgIGdldCBoYXNRdWV1ZWRPclVwbG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkZWRGaWxlcy5zb21lKChmaWxlKSA9PiBmaWxlLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycgfHwgZmlsZS5zdGF0dXMgPT09ICdxdWV1ZWQnKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRlZEZpbGVzLnNvbWUoKGZpbGUpID0+IGZpbGUuc3RhdHVzID09PSAnZXJyb3InKTtcbiAgICB9XG5cbiAgICBnZXQgYWxsVXBsb2Fkc0NvbXBsZXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRlZEZpbGVzLmxlbmd0aCA+IDAgJiYgdGhpcy51cGxvYWRlZEZpbGVzLnNvbWUoKGZpbGUpID0+IGZpbGUuc3RhdHVzID09PSAnY29tcGxldGUnKSAmJiAhdGhpcy5oYXNRdWV1ZWRPclVwbG9hZGluZztcbiAgICB9XG5cbiAgICBnZXQgdXBsb2FkaW5nUHJvZ3Jlc3NUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIC8vIENvdW50IGFjdGl2ZSBmaWxlcyAoZXhjbHVkaW5nIGNhbmNlbGVkIG9uZXMpXG4gICAgICAgIGNvbnN0IHRvdGFsQWN0aXZlRmlsZXMgPSB0aGlzLmFjdGl2ZUZpbGVzQ291bnQ7XG4gICAgICAgIGNvbnN0IGNvbXBsZXRlZENvdW50ID0gdGhpcy51cGxvYWRlZEZpbGVzLmZpbHRlcigoZmlsZSkgPT4gZmlsZS5zdGF0dXMgPT09ICdjb21wbGV0ZScpLmxlbmd0aDtcbiAgICAgICAgY29uc3QgdXBsb2FkaW5nRmlsZSA9IHRoaXMudXBsb2FkZWRGaWxlcy5maW5kKChmaWxlKSA9PiBmaWxlLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycpO1xuICAgICAgICBpZiAodXBsb2FkaW5nRmlsZSkge1xuICAgICAgICAgICAgLy8gV2UncmUgY3VycmVudGx5IHVwbG9hZGluZyB0aGUgKGNvbXBsZXRlZENvdW50ICsgMSl0aCBhY3RpdmUgZmlsZVxuICAgICAgICAgICAgcmV0dXJuIGBVcGxvYWRpbmcgJHtjb21wbGV0ZWRDb3VudH0vJHt0b3RhbEFjdGl2ZUZpbGVzfSBmaWxlJHt0b3RhbEFjdGl2ZUZpbGVzID4gMSA/ICdzJyA6ICcnfS4uLmA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudXBsb2FkZWRGaWxlcy5zb21lKChmaWxlKSA9PiBmaWxlLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gYFVwbG9hZGluZyAke2NvbXBsZXRlZENvdW50ICsgMX0vJHt0b3RhbEFjdGl2ZUZpbGVzfSBmaWxlJHt0b3RhbEFjdGl2ZUZpbGVzID4gMSA/ICdzJyA6ICcnfS4uLmA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGBVcGxvYWRpbmcgJHtjb21wbGV0ZWRDb3VudH0vJHt0b3RhbEFjdGl2ZUZpbGVzfSBmaWxlJHt0b3RhbEFjdGl2ZUZpbGVzID4gMSA/ICdzJyA6ICcnfS4uLmA7XG4gICAgfVxuXG4gICAgLy8gQ2FsY3VsYXRlIG92ZXJhbGwgcHJvZ3Jlc3MgcGVyY2VudGFnZSBhY3Jvc3MgYWxsIGZpbGVzXG4gICAgZ2V0IG92ZXJhbGxQcm9ncmVzcygpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy51cGxvYWRlZEZpbGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDA7XG5cbiAgICAgICAgY29uc3QgdG90YWxQcm9ncmVzcyA9IHRoaXMudXBsb2FkZWRGaWxlcy5yZWR1Y2UoKHN1bSwgZmlsZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGZpbGUuc3RhdHVzID09PSAnY29tcGxldGUnKSByZXR1cm4gc3VtICsgMTAwO1xuICAgICAgICAgICAgaWYgKGZpbGUuc3RhdHVzID09PSAnY2FuY2VsZWQnIHx8IGZpbGUuc3RhdHVzID09PSAnZXJyb3InKSByZXR1cm4gc3VtO1xuICAgICAgICAgICAgcmV0dXJuIHN1bSArIChmaWxlLnByb2dyZXNzIHx8IDApO1xuICAgICAgICB9LCAwKTtcblxuICAgICAgICBjb25zdCBhY3RpdmVGaWxlc0NvdW50ID0gdGhpcy51cGxvYWRlZEZpbGVzLmZpbHRlcigoZmlsZSkgPT4gZmlsZS5zdGF0dXMgIT09ICdjYW5jZWxlZCcgJiYgZmlsZS5zdGF0dXMgIT09ICdlcnJvcicpLmxlbmd0aDtcblxuICAgICAgICByZXR1cm4gYWN0aXZlRmlsZXNDb3VudCA+IDAgPyBNYXRoLnJvdW5kKCh0b3RhbFByb2dyZXNzIC8gKGFjdGl2ZUZpbGVzQ291bnQgKiAxMDApKSAqIDEwMCkgOiAwO1xuICAgIH1cbn1cbiIsIjxwIGNsYXNzPVwiY2F4LWZpbGVzXCI+e3tpbnB1dEZpbGVzfX08L3A+XG48ZGl2IGNsYXNzPVwiY2F4LXVwbG9hZC1tZW51XCIgW25nU3R5bGVdPVwic3R5bGVcIlxuICAgICBbY2xhc3MuZHJhZ2dpbmddPVwiaXNEcmFnZ2luZ1wiIFxuICAgICAoY2xpY2spPVwib3BlbkZpbGVTZWxlY3RvcigpXCI+XG4gICAgIDxpbnB1dFxuICAgICB0eXBlPVwiZmlsZVwiXG4gICAgIGlkPVwiZmlsZUlucHV0LXt7dW5pcXVlSWR9fVwiXG4gICAgIHN0eWxlPVwiZGlzcGxheTpub25lXCJcbiAgICAgW211bHRpcGxlXT1cImFsbG93TXVsdGlwbGVcIlxuICAgICBbYWNjZXB0XT1cImFjY2VwdEZpbGVUeXBlc1wiXG4gICAgIChjaGFuZ2UpPVwiaGFuZGxlRmlsZUlucHV0KCRldmVudClcIlxuICAgLz5cblxuICA8IS0tIERlZmF1bHQgVXBsb2FkIFN0YXRlIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidXBsb2FkU3RhdHVzID09PSAnaWRsZSdcIiA+XG4gICAgPGRpdiBjbGFzcz1cImNheC11cGxvYWQtb3B0aW9uc1wiID5cbiAgICAgIDxwIGNsYXNzPVwiaGludC10ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1maWxlc1wiPkRyb3AgZmlsZXMgaGVyZTwvc3Bhbj4gb3IgYnJvd3NlIGZpbGVzIGZyb20geW91ciBkZXZpY2VcbiAgICAgIDwvcD5cbiAgICAgIDxwIGNsYXNzPVwibWF4LXNpemVcIj5NYXguIEZpbGUgU2l6ZToge3sgbWF4RmlsZVNpemUgfX1NQjwvcD5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cblxuICA8IS0tIFVwbG9hZGluZyBTdGF0ZSAtLT5cbjxkaXYgKm5nSWY9XCJ1cGxvYWRTdGF0dXMgPT09ICd1cGxvYWRpbmcnXCIgY2xhc3M9XCJjYXgtdXBsb2FkLXN0YXR1cyB1cGxvYWRpbmdcIiA+XG4gIDxkaXYgY2xhc3M9XCJzdGF0dXMtY29udGFpbmVyXCI+XG4gICAgPGNheC1wcm9ncmVzc1NwaW5uZXJcbiAgICAgICAgW3N0cm9rZUNvbG9yXT1cIidwcmltYXJ5J1wiXG4gICAgICAgIFtzaXplXT1cIidsZydcIlxuICAgICAgICBbYW5pbWF0aW9uRHVyYXRpb25dPVwiJzJzJ1wiXG4gICAgICA+PC9jYXgtcHJvZ3Jlc3NTcGlubmVyPlxuICAgIDxwID57eyB1cGxvYWRpbmdQcm9ncmVzc1RleHQgfX08L3A+XG4gICAgPGNheC1idXR0b25cbiAgICAgIFtsYWJlbF09XCInQ2FuY2VsJ1wiXG4gICAgICBbcm91bmRlZF09XCJmYWxzZVwiXG4gICAgICBbc2V2ZXJpdHldPVwiJ2RhbmdlcidcIlxuICAgICAgW3NpemVdPVwiJ2xhcmdlJ1wiXG4gICAgICBbb3V0bGluZWRdPVwiJ2ZhbHNlJ1wiXG4gICAgICBbbGlua109XCJ0cnVlXCJcbiAgICAgIChjbGljayk9XCJjYW5jZWxDdXJyZW50VXBsb2FkKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgLz5cbiAgPC9kaXY+XG48L2Rpdj5cblxuICA8IS0tIENvbXBsZXRlIFN0YXRlIC0tPlxuICA8ZGl2ICpuZ0lmPVwidXBsb2FkU3RhdHVzID09PSAnY29tcGxldGUnXCIgY2xhc3M9XCJjYXgtdXBsb2FkLXN0YXR1cyBjb21wbGV0ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3VjY2Vzcy1pY29uXCI+PGkgY2xhc3M9XCJjYXggY2F4LWNoZWNrXCI+PC9pPjwvZGl2PlxuICAgICAgPHA+e3t1cGxvYWRTdHJpbmd9fTwvcD5cbiAgICAgIDxjYXgtYnV0dG9uXG4gICAgICAgIFtsYWJlbF09XCInUmVtb3ZlJ1wiXG4gICAgICAgIFtyb3VuZGVkXT1cImZhbHNlXCJcbiAgICAgICAgW3NldmVyaXR5XT1cIidkYW5nZXInXCJcbiAgICAgICAgW3NpemVdPVwiJ2xhcmdlJ1wiXG4gICAgICAgIFtvdXRsaW5lZF09XCInZmFsc2UnXCJcbiAgICAgICAgW2xpbmtdPVwidHJ1ZVwiXG4gICAgICAgIChjbGljayk9XCJyZW1vdmVBbGxGaWxlcygpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJpbnZhbGlkXCIgaWQ9XCJoZWxwZXItdGV4dFwiIGNsYXNzPVwiY2F4LWVycm9yLXVwbG9hZFwiPjwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiaW52YWxpZFwiIGlkPVwiaGVscGVyLXRleHRcIiBjbGFzcz1cImNheC1lcnJvci11cGxvYWRcIj5cbiAge3sgZXJyb3JUZXh0IH19XG48L2Rpdj5cblxuPCEtLSBzdGFja2VkIGZpbGUgLS0+XG48ZGl2ICpuZ0lmPVwidXBsb2FkZWRGaWxlcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJjYXgtZmlsZS1wcmV2aWV3LXdyYXBwZXJcIiBbbmdTdHlsZV09XCJzdHlsZVwiPlxuICA8ZGl2XG4gICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdXBsb2FkZWRGaWxlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgY2xhc3M9XCJjYXgtZmlsZS1wcmV2aWV3XCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAncXVldWVkJzogaXRlbS5zdGF0dXMgPT09ICdxdWV1ZWQnLFxuICAgICAgJ3VwbG9hZGluZyc6IGl0ZW0uc3RhdHVzID09PSAndXBsb2FkaW5nJyxcbiAgICAgICdjb21wbGV0ZSc6IGl0ZW0uc3RhdHVzID09PSAnY29tcGxldGUnLFxuICAgICAgJ2NhbmNlbGVkJzogaXRlbS5zdGF0dXMgPT09ICdjYW5jZWxlZCdcbiAgICB9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJmaWxlLWluZm9cIj5cbiAgICAgIDxwIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgaXRlbS5maWxlLm5hbWUgfX08L3A+XG4gICAgPC9kaXY+IFxuXG4gICAgPCEtLSBTaG93IHNwaW5uZXIgZm9yIHF1ZXVlZCBvciB1cGxvYWRpbmcgZmlsZXMgLS0+XG4gICAgPGRpdiAqbmdJZj1cIml0ZW0uc3RhdHVzID09PSAncXVldWVkJyB8fCBpdGVtLnN0YXR1cyA9PT0gJ3VwbG9hZGluZydcIiBjbGFzcz1cInNwaW5uZXJcIj5cbiAgICAgIDxjYXgtcHJvZ3Jlc3NTcGlubmVyXG4gICAgICAgIFtzdHJva2VDb2xvcl09XCIncHJpbWFyeSdcIlxuICAgICAgICBbc2l6ZV09XCInc20nXCJcbiAgICAgICAgW2FuaW1hdGlvbkR1cmF0aW9uXT1cIicycydcIj5cbiAgICAgIDwvY2F4LXByb2dyZXNzU3Bpbm5lcj5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8IS0tIFNob3cgcmVtb3ZlIGJ1dHRvbiBvbmx5IGZvciBjb21wbGV0ZSBvciBjYW5jZWxlZCBmaWxlcyAtLT5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cIml0ZW0uc3RhdHVzID09PSAnY29tcGxldGUnIHx8IGl0ZW0uc3RhdHVzID09PSAnY2FuY2VsZWQnXCJcbiAgICAgIGNsYXNzPVwicmVtb3ZlLWJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwicmVtb3ZlRmlsZShpKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICA8aSBjbGFzcz1cImNheCBjYXgtY2xvc2VcIj48L2k+IFxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -212,7 +212,7 @@ class AccordionTab {
|
|
|
212
212
|
this.accordion.tabs.splice(this.findTabIndex(), 1);
|
|
213
213
|
}
|
|
214
214
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AccordionTab, deps: [{ token: forwardRef(() => Accordion) }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
215
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: AccordionTab, selector: "cax-accordionTab", inputs: { extraLabel: "extraLabel", extraLabelStyle: "extraLabelStyle", id: "id", header: "header", headerStyle: "headerStyle", tabStyle: "tabStyle", contentStyle: "contentStyle", tabStyleClass: "tabStyleClass", headerStyleClass: "headerStyleClass", contentStyleClass: "contentStyleClass", disabled: ["disabled", "disabled", booleanAttribute], cache: ["cache", "cache", booleanAttribute], transitionOptions: "transitionOptions", iconPos: "iconPos", selected: "selected", accordionIconPosition: "accordionIconPosition", headerAriaLevel: ["headerAriaLevel", "headerAriaLevel", numberAttribute] }, outputs: { selectedChange: "selectedChange" }, host: { classAttribute: "cax-element" }, queries: [{ propertyName: "headerFacet", predicate: Header }, { propertyName: "templates", predicate: CaxTemplate }], ngImport: i0, template: "<div class=\"cax-accordion-tab\" [class.cax-accordion-tab-active]=\"selected\" [ngClass]=\"tabStyleClass\" [ngStyle]=\"tabStyle\" [attr.data-pc-name]=\"'accordiontab'\">\
|
|
215
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: AccordionTab, selector: "cax-accordionTab", inputs: { extraLabel: "extraLabel", extraLabelStyle: "extraLabelStyle", id: "id", header: "header", headerStyle: "headerStyle", tabStyle: "tabStyle", contentStyle: "contentStyle", tabStyleClass: "tabStyleClass", headerStyleClass: "headerStyleClass", contentStyleClass: "contentStyleClass", disabled: ["disabled", "disabled", booleanAttribute], cache: ["cache", "cache", booleanAttribute], transitionOptions: "transitionOptions", iconPos: "iconPos", selected: "selected", accordionIconPosition: "accordionIconPosition", headerAriaLevel: ["headerAriaLevel", "headerAriaLevel", numberAttribute] }, outputs: { selectedChange: "selectedChange" }, host: { classAttribute: "cax-element" }, queries: [{ propertyName: "headerFacet", predicate: Header }, { propertyName: "templates", predicate: CaxTemplate }], ngImport: i0, template: "<div class=\"cax-accordion-tab\" [class.cax-accordion-tab-active]=\"selected\" [ngClass]=\"tabStyleClass\" [ngStyle]=\"tabStyle\" [attr.data-pc-name]=\"'accordiontab'\">\n <div class=\"cax-accordion-header\" role=\"heading\" [attr.aria-level]=\"headerAriaLevel\" [class.cax-highlight]=\"selected\" [class.cax-disabled]=\"disabled\" [attr.data-cax-disabled]=\"disabled\" [attr.data-pc-section]=\"'header'\">\n <a\n [ngClass]=\"headerStyleClass\"\n [ngStyle]=\"headerStyle\"\n role=\"button\"\n class=\"cax-accordion-header-link\"\n (click)=\"toggle($event); $event.stopPropagation()\"\n (keydown)=\"onKeydown($event)\"\n [attr.tabindex]=\"disabled ? null : 0\"\n [attr.id]=\"getTabHeaderActionId(id)\"\n [attr.aria-controls]=\"getTabContentId(id)\"\n [attr.aria-expanded]=\"selected\"\n [attr.aria-disabled]=\"disabled\"\n [attr.data-pc-section]=\"'headeraction'\"\n >\n \n <span class=\"cax-accordion-icon\" *ngIf=\"accordionIconPosition === 'right'\">\n <ng-container *ngIf=\"!iconTemplate\">\n <ng-container *ngIf=\"selected\">\n <span *ngIf=\"accordion.collapseIcon\" [class]=\"accordion.collapseIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\"></span>\n <ChevronUpIcon *ngIf=\"!accordion.collapseIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n <ng-container *ngIf=\"!selected\">\n <span *ngIf=\"accordion.expandIcon\" [class]=\"accordion.expandIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\"></span>\n <ChevronUpIcon *ngIf=\"!accordion.expandIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n </ng-container>\n <ng-template *ngTemplateOutlet=\"iconTemplate; context: { $implicit: selected }\"></ng-template>\n </span>\n <span class=\"extra-label\" *ngIf=\"extraLabel\" [ngStyle]=\"extraLabelStyle\" style=\"margin-left: auto; margin-right: 8px;\">\n {{ extraLabel }}\n </span>\n <span class=\"cax-accordion-header-text\" *ngIf=\"!hasHeaderFacet\"> {{ header }} </span>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <span class=\"cax-accordion-icon\" *ngIf=\"accordionIconPosition === 'left'\">\n <ng-container *ngIf=\"!iconTemplate\">\n <ng-container *ngIf=\"selected\">\n <span *ngIf=\"accordion.collapseIcon\" [class]=\"accordion.collapseIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\"></span>\n <ChevronUpIcon *ngIf=\"!accordion.collapseIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n <ng-container *ngIf=\"!selected\">\n <span *ngIf=\"accordion.expandIcon\" [class]=\"accordion.expandIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\"></span>\n <ChevronUpIcon *ngIf=\"!accordion.expandIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n </ng-container>\n <ng-template *ngTemplateOutlet=\"iconTemplate; context: { $implicit: selected }\"></ng-template>\n </span>\n <ng-content select=\"cax-header\" *ngIf=\"hasHeaderFacet\"></ng-content>\n </a>\n </div>\n <div\n [attr.id]=\"getTabContentId(id)\"\n class=\"cax-toggleable-content\"\n [@tabContent]=\"selected ? { value: 'visible', params: { transitionParams: transitionOptions } } : { value: 'hidden', params: { transitionParams: transitionOptions } }\"\n role=\"region\"\n [attr.aria-hidden]=\"!selected\"\n [attr.aria-labelledby]=\"getTabHeaderActionId(id)\"\n [attr.data-pc-section]=\"'toggleablecontent'\"\n >\n <div class=\"cax-accordion-content\" [ngClass]=\"contentStyleClass\" [ngStyle]=\"contentStyle\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"contentTemplate && (cache ? loaded : selected)\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n", styles: ["@layer cax{.cax-accordion-header-link{cursor:pointer;display:flex;align-items:center;-webkit-user-select:none;user-select:none;position:relative;text-decoration:none}.cax-accordion-icon{margin-right:8px;display:flex;align-items:center;width:18px;height:18px}.cax-accordion-header-link:focus{z-index:1}.cax-accordion-header-text{flex:1}.cax-accordion .cax-toggleable-content{overflow:hidden}.cax-accordion .cax-accordion-tab-active>.cax-toggleable-content:not(.ng-animating){overflow:inherit}.cax-accordion-toggle-icon-end{order:1;margin-left:auto}.cax-accordion-toggle-icon{order:0;width:16px;height:16px}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.ChevronUpIcon, selector: "ChevronUpIcon" }], animations: [
|
|
216
216
|
trigger('tabContent', [
|
|
217
217
|
state('hidden', style({
|
|
218
218
|
height: '0',
|
|
@@ -244,7 +244,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
244
244
|
])
|
|
245
245
|
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
246
246
|
class: 'cax-element'
|
|
247
|
-
}, template: "<div class=\"cax-accordion-tab\" [class.cax-accordion-tab-active]=\"selected\" [ngClass]=\"tabStyleClass\" [ngStyle]=\"tabStyle\" [attr.data-pc-name]=\"'accordiontab'\">\
|
|
247
|
+
}, template: "<div class=\"cax-accordion-tab\" [class.cax-accordion-tab-active]=\"selected\" [ngClass]=\"tabStyleClass\" [ngStyle]=\"tabStyle\" [attr.data-pc-name]=\"'accordiontab'\">\n <div class=\"cax-accordion-header\" role=\"heading\" [attr.aria-level]=\"headerAriaLevel\" [class.cax-highlight]=\"selected\" [class.cax-disabled]=\"disabled\" [attr.data-cax-disabled]=\"disabled\" [attr.data-pc-section]=\"'header'\">\n <a\n [ngClass]=\"headerStyleClass\"\n [ngStyle]=\"headerStyle\"\n role=\"button\"\n class=\"cax-accordion-header-link\"\n (click)=\"toggle($event); $event.stopPropagation()\"\n (keydown)=\"onKeydown($event)\"\n [attr.tabindex]=\"disabled ? null : 0\"\n [attr.id]=\"getTabHeaderActionId(id)\"\n [attr.aria-controls]=\"getTabContentId(id)\"\n [attr.aria-expanded]=\"selected\"\n [attr.aria-disabled]=\"disabled\"\n [attr.data-pc-section]=\"'headeraction'\"\n >\n \n <span class=\"cax-accordion-icon\" *ngIf=\"accordionIconPosition === 'right'\">\n <ng-container *ngIf=\"!iconTemplate\">\n <ng-container *ngIf=\"selected\">\n <span *ngIf=\"accordion.collapseIcon\" [class]=\"accordion.collapseIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\"></span>\n <ChevronUpIcon *ngIf=\"!accordion.collapseIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n <ng-container *ngIf=\"!selected\">\n <span *ngIf=\"accordion.expandIcon\" [class]=\"accordion.expandIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\"></span>\n <ChevronUpIcon *ngIf=\"!accordion.expandIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n </ng-container>\n <ng-template *ngTemplateOutlet=\"iconTemplate; context: { $implicit: selected }\"></ng-template>\n </span>\n <span class=\"extra-label\" *ngIf=\"extraLabel\" [ngStyle]=\"extraLabelStyle\" style=\"margin-left: auto; margin-right: 8px;\">\n {{ extraLabel }}\n </span>\n <span class=\"cax-accordion-header-text\" *ngIf=\"!hasHeaderFacet\"> {{ header }} </span>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <span class=\"cax-accordion-icon\" *ngIf=\"accordionIconPosition === 'left'\">\n <ng-container *ngIf=\"!iconTemplate\">\n <ng-container *ngIf=\"selected\">\n <span *ngIf=\"accordion.collapseIcon\" [class]=\"accordion.collapseIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\"></span>\n <ChevronUpIcon *ngIf=\"!accordion.collapseIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n <ng-container *ngIf=\"!selected\">\n <span *ngIf=\"accordion.expandIcon\" [class]=\"accordion.expandIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\"></span>\n <ChevronUpIcon *ngIf=\"!accordion.expandIcon\" [ngClass]=\"iconClass\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n </ng-container>\n <ng-template *ngTemplateOutlet=\"iconTemplate; context: { $implicit: selected }\"></ng-template>\n </span>\n <ng-content select=\"cax-header\" *ngIf=\"hasHeaderFacet\"></ng-content>\n </a>\n </div>\n <div\n [attr.id]=\"getTabContentId(id)\"\n class=\"cax-toggleable-content\"\n [@tabContent]=\"selected ? { value: 'visible', params: { transitionParams: transitionOptions } } : { value: 'hidden', params: { transitionParams: transitionOptions } }\"\n role=\"region\"\n [attr.aria-hidden]=\"!selected\"\n [attr.aria-labelledby]=\"getTabHeaderActionId(id)\"\n [attr.data-pc-section]=\"'toggleablecontent'\"\n >\n <div class=\"cax-accordion-content\" [ngClass]=\"contentStyleClass\" [ngStyle]=\"contentStyle\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"contentTemplate && (cache ? loaded : selected)\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n", styles: ["@layer cax{.cax-accordion-header-link{cursor:pointer;display:flex;align-items:center;-webkit-user-select:none;user-select:none;position:relative;text-decoration:none}.cax-accordion-icon{margin-right:8px;display:flex;align-items:center;width:18px;height:18px}.cax-accordion-header-link:focus{z-index:1}.cax-accordion-header-text{flex:1}.cax-accordion .cax-toggleable-content{overflow:hidden}.cax-accordion .cax-accordion-tab-active>.cax-toggleable-content:not(.ng-animating){overflow:inherit}.cax-accordion-toggle-icon-end{order:1;margin-left:auto}.cax-accordion-toggle-icon{order:0;width:16px;height:16px}}\n"] }]
|
|
248
248
|
}], ctorParameters: () => [{ type: Accordion, decorators: [{
|
|
249
249
|
type: Inject,
|
|
250
250
|
args: [forwardRef(() => Accordion)]
|