@acorex/components 7.3.2 → 7.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/button/lib/button-group.component.d.ts +10 -73
- package/button/lib/button-item.class.d.ts +1 -3
- package/button/lib/button-item.component.d.ts +12 -75
- package/button/lib/button.component.d.ts +1 -1
- package/button-group/README.md +3 -0
- package/button-group/index.d.ts +2 -0
- package/button-group/lib/button-group.component.d.ts +21 -0
- package/button-group/lib/button-group.module.d.ts +8 -0
- package/calendar/lib/calendar-range.component.d.ts +2 -1
- package/calendar/lib/calendar.class.d.ts +9 -8
- package/calendar/lib/calendar.component.d.ts +2 -1
- package/check-box/lib/check-box.component.d.ts +3 -2
- package/color-box/README.md +3 -0
- package/color-box/index.d.ts +2 -0
- package/color-box/lib/color-box.component.d.ts +27 -0
- package/color-box/lib/color-box.module.d.ts +11 -0
- package/common/index.d.ts +5 -3
- package/common/lib/classes/styles.class.d.ts +0 -9
- package/common/lib/components/button-base-component.class.d.ts +0 -2
- package/common/lib/components/interactive-component.class.d.ts +7 -1
- package/common/lib/types/direction.d.ts +4 -0
- package/common/lib/types/orientation.d.ts +4 -0
- package/common/lib/types/placement.d.ts +30 -0
- package/common/lib/types/selection-mode.d.ts +4 -0
- package/data-pager/lib/data-pager.module.d.ts +5 -4
- package/data-table/lib/data-column.directive.d.ts +2 -2
- package/datetime-box/README.md +3 -0
- package/datetime-box/index.d.ts +2 -0
- package/datetime-box/lib/datetime-box.component.d.ts +34 -0
- package/datetime-box/lib/datetime-box.module.d.ts +13 -0
- package/datetime-input/README.md +3 -0
- package/datetime-input/index.d.ts +2 -0
- package/datetime-input/lib/datetime-input.component.d.ts +44 -0
- package/datetime-input/lib/datetime-input.module.d.ts +10 -0
- package/datetime-picker/README.md +3 -0
- package/datetime-picker/index.d.ts +2 -0
- package/datetime-picker/lib/datetime-picker.component.d.ts +42 -0
- package/datetime-picker/lib/datetime-picker.module.d.ts +14 -0
- package/decorators/index.d.ts +4 -4
- package/decorators/lib/decorators.module.d.ts +4 -4
- package/dropdown/index.d.ts +2 -0
- package/dropdown/lib/dropdown-box.class.d.ts +15 -0
- package/dropdown/lib/dropdown-box.component.d.ts +25 -0
- package/dropdown/lib/dropdown-panel.component.d.ts +31 -20
- package/dropdown/lib/dropdown.module.d.ts +9 -8
- package/esm2022/action-sheet/lib/action-sheet.class.mjs +1 -1
- package/esm2022/action-sheet/lib/action-sheet.component.mjs +3 -3
- package/esm2022/action-sheet/lib/action-sheet.module.mjs +4 -4
- package/esm2022/action-sheet/lib/action-sheet.service.mjs +3 -3
- package/esm2022/alert/lib/alert.component.mjs +3 -3
- package/esm2022/alert/lib/alert.module.mjs +4 -4
- package/esm2022/avatar/lib/avatar-group.component.mjs +3 -3
- package/esm2022/avatar/lib/avatar.component.mjs +3 -3
- package/esm2022/avatar/lib/avatar.module.mjs +4 -4
- package/esm2022/badge/lib/badge.component.mjs +3 -3
- package/esm2022/badge/lib/badge.module.mjs +4 -4
- package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +3 -3
- package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
- package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +4 -4
- package/esm2022/button/lib/button-group.component.mjs +36 -29
- package/esm2022/button/lib/button-item.class.mjs +1 -1
- package/esm2022/button/lib/button-item.component.mjs +46 -32
- package/esm2022/button/lib/button.component.mjs +10 -7
- package/esm2022/button/lib/button.module.mjs +4 -4
- package/esm2022/{color-picker/acorex-components-color-picker.mjs → button-group/acorex-components-button-group.mjs} +1 -1
- package/esm2022/button-group/index.mjs +3 -0
- package/esm2022/button-group/lib/button-group.component.mjs +97 -0
- package/esm2022/button-group/lib/button-group.module.mjs +21 -0
- package/esm2022/calendar/lib/calendar-range.component.mjs +14 -13
- package/esm2022/calendar/lib/calendar.class.mjs +19 -18
- package/esm2022/calendar/lib/calendar.component.mjs +80 -40
- package/esm2022/calendar/lib/calendar.module.mjs +4 -4
- package/esm2022/check-box/lib/check-box.component.mjs +9 -5
- package/esm2022/check-box/lib/check-box.module.mjs +4 -4
- package/esm2022/chips/lib/chips.component.mjs +3 -3
- package/esm2022/chips/lib/chips.module.mjs +4 -4
- package/esm2022/collapse/lib/collapse-group.component.mjs +3 -3
- package/esm2022/collapse/lib/collapse.component.mjs +3 -3
- package/esm2022/collapse/lib/collapse.module.mjs +4 -4
- package/esm2022/color-box/acorex-components-color-box.mjs +5 -0
- package/esm2022/color-box/index.mjs +3 -0
- package/esm2022/color-box/lib/color-box.component.mjs +91 -0
- package/esm2022/color-box/lib/color-box.module.mjs +24 -0
- package/esm2022/color-palette/lib/color-palette-input.component.mjs +3 -3
- package/esm2022/color-palette/lib/color-palette-picker.component.mjs +13 -13
- package/esm2022/color-palette/lib/color-palette-preview.component.mjs +3 -3
- package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +3 -3
- package/esm2022/color-palette/lib/color-palette.class.mjs +6 -6
- package/esm2022/color-palette/lib/color-palette.component.mjs +5 -5
- package/esm2022/color-palette/lib/color-palette.module.mjs +4 -4
- package/esm2022/common/index.mjs +6 -4
- package/esm2022/common/lib/classes/components.class.mjs +22 -22
- package/esm2022/common/lib/classes/styles.class.mjs +1 -2
- package/esm2022/common/lib/common.module.mjs +4 -4
- package/esm2022/common/lib/components/base-component.class.mjs +3 -3
- package/esm2022/common/lib/components/button-base-component.class.mjs +4 -18
- package/esm2022/common/lib/components/input-base-value-component.class.mjs +3 -3
- package/esm2022/common/lib/components/interactive-component.class.mjs +14 -1
- package/esm2022/common/lib/components/value-component.class.mjs +6 -6
- package/esm2022/common/lib/directives/auto-focus.directive.mjs +3 -3
- package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +3 -3
- package/esm2022/common/lib/directives/hotkey.directive.mjs +3 -3
- package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +3 -3
- package/esm2022/common/lib/directives/responsive.directive.mjs +3 -3
- package/esm2022/common/lib/services/dom.service.mjs +3 -3
- package/esm2022/common/lib/services/hotkey.service.mjs +3 -3
- package/esm2022/common/lib/types/direction.mjs +2 -0
- package/esm2022/common/lib/types/orientation.mjs +2 -0
- package/esm2022/common/lib/types/placement.mjs +160 -0
- package/esm2022/common/lib/types/range.mjs +2 -0
- package/esm2022/common/lib/types/selection-mode.mjs +5 -0
- package/esm2022/context-menu/lib/context-menu.component.mjs +3 -3
- package/esm2022/context-menu/lib/context-menu.module.mjs +4 -4
- package/esm2022/data-pager/lib/data-pager-base.component.mjs +6 -6
- package/esm2022/data-pager/lib/data-pager-info.component.mjs +3 -3
- package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +3 -3
- package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +4 -4
- package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +15 -18
- package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +7 -7
- package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +4 -4
- package/esm2022/data-pager/lib/data-pager.component.mjs +5 -5
- package/esm2022/data-pager/lib/data-pager.module.mjs +8 -7
- package/esm2022/data-table/lib/data-column.directive.mjs +6 -8
- package/esm2022/data-table/lib/data-table.component.mjs +3 -3
- package/esm2022/data-table/lib/data-table.module.mjs +4 -4
- package/esm2022/datetime-box/acorex-components-datetime-box.mjs +5 -0
- package/esm2022/datetime-box/index.mjs +3 -0
- package/esm2022/datetime-box/lib/datetime-box.component.mjs +109 -0
- package/esm2022/datetime-box/lib/datetime-box.module.mjs +38 -0
- package/esm2022/datetime-input/acorex-components-datetime-input.mjs +5 -0
- package/esm2022/datetime-input/index.mjs +3 -0
- package/esm2022/datetime-input/lib/datetime-input.component.mjs +522 -0
- package/esm2022/datetime-input/lib/datetime-input.module.mjs +23 -0
- package/esm2022/datetime-picker/acorex-components-datetime-picker.mjs +5 -0
- package/esm2022/datetime-picker/index.mjs +3 -0
- package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +232 -0
- package/esm2022/datetime-picker/lib/datetime-picker.module.mjs +41 -0
- package/esm2022/decorators/index.mjs +5 -5
- package/esm2022/decorators/lib/components/clear-button.component.mjs +58 -0
- package/esm2022/decorators/lib/components/close-button.component.mjs +43 -0
- package/esm2022/decorators/lib/components/generic-content.component.mjs +17 -0
- package/esm2022/decorators/lib/components/icon.component.mjs +26 -0
- package/esm2022/decorators/lib/decorators.module.mjs +10 -10
- package/esm2022/dialog/lib/dialog.component.mjs +4 -4
- package/esm2022/dialog/lib/dialog.module.mjs +4 -4
- package/esm2022/dialog/lib/dialog.service.mjs +3 -3
- package/esm2022/drawer/lib/drawer-container.component.mjs +3 -3
- package/esm2022/drawer/lib/drawer.component.mjs +3 -3
- package/esm2022/drawer/lib/drawer.module.mjs +4 -4
- package/esm2022/dropdown/index.mjs +3 -1
- package/esm2022/dropdown/lib/dropdown-box.class.mjs +38 -0
- package/esm2022/dropdown/lib/dropdown-box.component.mjs +94 -0
- package/esm2022/dropdown/lib/dropdown-panel.component.mjs +88 -37
- package/esm2022/dropdown/lib/dropdown.module.mjs +8 -7
- package/esm2022/form/index.mjs +2 -1
- package/esm2022/form/lib/form-field.component.mjs +3 -3
- package/esm2022/form/lib/form.component.mjs +3 -3
- package/esm2022/form/lib/form.config.mjs +36 -0
- package/esm2022/form/lib/form.module.mjs +6 -28
- package/esm2022/form/lib/validation-rule.widget.mjs +8 -7
- package/esm2022/form/lib/validation-summary.component.mjs +4 -4
- package/esm2022/image/lib/image.component.mjs +3 -3
- package/esm2022/image/lib/image.module.mjs +4 -4
- package/esm2022/label/lib/label.component.mjs +3 -3
- package/esm2022/label/lib/label.module.mjs +4 -4
- package/esm2022/loading/lib/loading-spinner.component.mjs +3 -3
- package/esm2022/loading/lib/loading.component.mjs +3 -3
- package/esm2022/loading/lib/loading.directive.mjs +3 -3
- package/esm2022/loading/lib/loading.module.mjs +4 -4
- package/esm2022/loading/lib/loading.service.mjs +3 -3
- package/esm2022/menu/lib/menu.component.mjs +3 -3
- package/esm2022/menu/lib/menu.module.mjs +4 -4
- package/esm2022/mixin/lib/base-components.class.mjs +3 -3
- package/esm2022/mixin/lib/selection-component.class.mjs +3 -3
- package/esm2022/mixin/lib/value-mixin.class.mjs +3 -3
- package/esm2022/notification/lib/notification.component.mjs +3 -3
- package/esm2022/notification/lib/notification.module.mjs +4 -4
- package/esm2022/notification/lib/notification.service.mjs +3 -3
- package/esm2022/number-box/lib/number-box.component.mjs +3 -3
- package/esm2022/number-box/lib/number-box.module.mjs +4 -4
- package/esm2022/otp/lib/otp.component.mjs +23 -11
- package/esm2022/otp/lib/otp.module.mjs +4 -4
- package/esm2022/page/lib/base-page.class.mjs +3 -3
- package/esm2022/page/lib/page.component.mjs +3 -3
- package/esm2022/page/lib/page.module.mjs +4 -4
- package/esm2022/password-box/lib/password-box.component.mjs +3 -3
- package/esm2022/password-box/lib/password-box.module.mjs +4 -4
- package/esm2022/picker/acorex-components-picker.mjs +5 -0
- package/esm2022/picker/index.mjs +4 -0
- package/esm2022/picker/lib/picker-column.directive.mjs +73 -0
- package/esm2022/picker/lib/picker.component.mjs +148 -0
- package/esm2022/picker/lib/picker.module.mjs +22 -0
- package/esm2022/popover/index.mjs +1 -2
- package/esm2022/popover/lib/popover.component.mjs +241 -176
- package/esm2022/popover/lib/popover.module.mjs +4 -4
- package/esm2022/popup/lib/popup.component.mjs +37 -12
- package/esm2022/popup/lib/popup.module.mjs +4 -4
- package/esm2022/popup/lib/popup.service.mjs +9 -6
- package/esm2022/progress-bar/lib/progress-bar.component.mjs +4 -4
- package/esm2022/progress-bar/lib/progress-bar.module.mjs +4 -4
- package/esm2022/radio/lib/radio.component.mjs +36 -21
- package/esm2022/radio/lib/radio.module.mjs +4 -4
- package/esm2022/range-slider/lib/range-slider.component.mjs +21 -34
- package/esm2022/range-slider/lib/range-slider.module.mjs +4 -4
- package/esm2022/result/lib/result.component.mjs +6 -6
- package/esm2022/result/lib/result.module.mjs +4 -4
- package/esm2022/scheduler/index.mjs +2 -1
- package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +16 -9
- package/esm2022/scheduler/lib/scheduler-week-view.component.mjs +12 -0
- package/esm2022/scheduler/lib/scheduler.component.mjs +27 -14
- package/esm2022/scheduler/lib/scheduler.module.mjs +10 -9
- package/esm2022/search-box/lib/search-box.component.mjs +3 -3
- package/esm2022/search-box/lib/search-box.module.mjs +4 -4
- package/esm2022/select-box/lib/select-box.component.mjs +7 -7
- package/esm2022/select-box/lib/select-box.module.mjs +4 -4
- package/esm2022/selection-list/lib/selection-list.component.mjs +3 -3
- package/esm2022/selection-list/lib/selection-list.module.mjs +4 -4
- package/esm2022/switch/lib/switch-content.component.mjs +3 -3
- package/esm2022/switch/lib/switch.component.mjs +3 -3
- package/esm2022/switch/lib/switch.module.mjs +4 -4
- package/esm2022/tabs/lib/tab-content.directive.mjs +3 -3
- package/esm2022/tabs/lib/tab-item.component.mjs +23 -53
- package/esm2022/tabs/lib/tabs.class.mjs +1 -1
- package/esm2022/tabs/lib/tabs.component.mjs +19 -28
- package/esm2022/tabs/lib/tabs.module.mjs +4 -4
- package/esm2022/tag/lib/tag.component.mjs +8 -10
- package/esm2022/tag/lib/tag.module.mjs +4 -4
- package/esm2022/text-area/lib/text-area.component.mjs +3 -3
- package/esm2022/text-area/lib/text-area.module.mjs +4 -4
- package/esm2022/text-box/lib/mask-options.directive.mjs +3 -3
- package/esm2022/text-box/lib/text-box.component.mjs +3 -3
- package/esm2022/text-box/lib/text-box.module.mjs +4 -4
- package/esm2022/toast/lib/toast.component.mjs +3 -3
- package/esm2022/toast/lib/toast.module.mjs +4 -4
- package/esm2022/toast/lib/toast.service.mjs +3 -3
- package/esm2022/tooltip/lib/tooltip.component.mjs +9 -13
- package/esm2022/tooltip/lib/tooltip.directive.mjs +35 -143
- package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
- package/esm2022/uploader/index.mjs +4 -2
- package/esm2022/uploader/lib/uploader-drop-zone.component.mjs +13 -0
- package/esm2022/uploader/lib/uploader-list.component.mjs +14 -0
- package/esm2022/uploader/lib/uploader-overlay.component.mjs +12 -0
- package/esm2022/uploader/lib/uploader.module.mjs +14 -11
- package/fesm2022/acorex-components-action-sheet.mjs +10 -10
- package/fesm2022/acorex-components-alert.mjs +7 -7
- package/fesm2022/acorex-components-avatar.mjs +10 -10
- package/fesm2022/acorex-components-badge.mjs +7 -7
- package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
- package/fesm2022/acorex-components-button-group.mjs +122 -0
- package/fesm2022/acorex-components-button-group.mjs.map +1 -0
- package/fesm2022/acorex-components-button.mjs +134 -113
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +110 -68
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +12 -8
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +7 -7
- package/fesm2022/acorex-components-collapse.mjs +10 -10
- package/fesm2022/acorex-components-color-box.mjs +116 -0
- package/fesm2022/acorex-components-color-box.mjs.map +1 -0
- package/fesm2022/acorex-components-color-palette.mjs +36 -36
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +236 -149
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-context-menu.mjs +7 -7
- package/fesm2022/acorex-components-data-pager.mjs +52 -54
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +12 -14
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +146 -0
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -0
- package/fesm2022/acorex-components-datetime-input.mjs +547 -0
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -0
- package/fesm2022/acorex-components-datetime-picker.mjs +273 -0
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -0
- package/fesm2022/acorex-components-decorators.mjs +50 -50
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +11 -11
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +10 -10
- package/fesm2022/acorex-components-dropdown.mjs +217 -44
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +58 -44
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +7 -7
- package/fesm2022/acorex-components-label.mjs +7 -7
- package/fesm2022/acorex-components-loading.mjs +16 -16
- package/fesm2022/acorex-components-menu.mjs +7 -7
- package/fesm2022/acorex-components-mixin.mjs +6 -7
- package/fesm2022/acorex-components-mixin.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +10 -10
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +7 -7
- package/fesm2022/acorex-components-otp.mjs +27 -15
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-page.mjs +10 -10
- package/fesm2022/acorex-components-password-box.mjs +7 -7
- package/fesm2022/acorex-components-picker.mjs +242 -0
- package/fesm2022/acorex-components-picker.mjs.map +1 -0
- package/fesm2022/acorex-components-popover.mjs +246 -251
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +48 -20
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +8 -8
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +39 -25
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +24 -37
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +9 -9
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +50 -25
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-search-box.mjs +7 -7
- package/fesm2022/acorex-components-select-box.mjs +10 -10
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +7 -7
- package/fesm2022/acorex-components-switch.mjs +10 -10
- package/fesm2022/acorex-components-tabs.mjs +45 -85
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +11 -13
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +7 -7
- package/fesm2022/acorex-components-text-box.mjs +10 -10
- package/fesm2022/acorex-components-toast.mjs +10 -10
- package/fesm2022/acorex-components-tooltip.mjs +45 -157
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +38 -103
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/form/index.d.ts +1 -0
- package/form/lib/form.config.d.ts +17 -0
- package/form/lib/form.module.d.ts +0 -1
- package/form/lib/validation-rule.widget.d.ts +1 -0
- package/mixin/lib/base-components.class.d.ts +2 -2
- package/mixin/lib/base-menu-mixin.class.d.ts +5 -5
- package/mixin/lib/button-mixin.class.d.ts +2 -2
- package/mixin/lib/clickable-mixin.class.d.ts +2 -2
- package/mixin/lib/color-look-mixing.class.d.ts +2 -2
- package/mixin/lib/datalist-component.class.d.ts +10 -10
- package/mixin/lib/dropdown-mixin.class.d.ts +2 -2
- package/mixin/lib/interactive-mixin.class.d.ts +4 -4
- package/mixin/lib/mixin.class.d.ts +61 -61
- package/mixin/lib/page-component.class.d.ts +2 -2
- package/mixin/lib/selection-component.class.d.ts +2 -2
- package/mixin/lib/sizable-mixin.class.d.ts +2 -2
- package/mixin/lib/textbox-mixin.class.d.ts +2 -2
- package/mixin/lib/value-mixin.class.d.ts +8 -8
- package/otp/lib/otp.component.d.ts +10 -6
- package/package.json +42 -24
- package/picker/README.md +3 -0
- package/picker/index.d.ts +3 -0
- package/picker/lib/picker-column.directive.d.ts +16 -0
- package/picker/lib/picker.component.d.ts +30 -0
- package/picker/lib/picker.module.d.ts +9 -0
- package/popover/index.d.ts +0 -1
- package/popover/lib/popover.component.d.ts +43 -27
- package/popup/lib/popup.component.d.ts +6 -6
- package/radio/lib/radio.component.d.ts +8 -10
- package/range-slider/lib/range-slider.component.d.ts +12 -12
- package/result/lib/result.component.d.ts +2 -2
- package/scheduler/index.d.ts +1 -0
- package/scheduler/lib/scheduler-month-view.component.d.ts +2 -1
- package/scheduler/lib/scheduler-week-view.component.d.ts +6 -0
- package/scheduler/lib/scheduler.component.d.ts +6 -0
- package/scheduler/lib/scheduler.module.d.ts +7 -6
- package/tabs/lib/tab-item.component.d.ts +7 -38
- package/tabs/lib/tabs.class.d.ts +2 -1
- package/tabs/lib/tabs.component.d.ts +7 -9
- package/tag/lib/tag.component.d.ts +2 -4
- package/tooltip/lib/tooltip.component.d.ts +3 -6
- package/tooltip/lib/tooltip.directive.d.ts +11 -17
- package/uploader/index.d.ts +3 -1
- package/uploader/lib/uploader-drop-zone.component.d.ts +6 -0
- package/uploader/lib/uploader-list.component.d.ts +6 -0
- package/uploader/lib/uploader-overlay.component.d.ts +6 -0
- package/uploader/lib/uploader.module.d.ts +7 -4
- package/color-picker/README.md +0 -3
- package/color-picker/index.d.ts +0 -2
- package/color-picker/lib/color-picker.component.d.ts +0 -191
- package/color-picker/lib/color-picker.module.d.ts +0 -18
- package/common/lib/classes/drawing.class.d.ts +0 -9
- package/common/lib/constant/positions.d.ts +0 -75
- package/date-picker/README.md +0 -3
- package/date-picker/index.d.ts +0 -2
- package/date-picker/lib/datepicker.component.d.ts +0 -40
- package/date-picker/lib/datepicker.module.d.ts +0 -15
- package/esm2022/color-picker/index.mjs +0 -3
- package/esm2022/color-picker/lib/color-picker.component.mjs +0 -116
- package/esm2022/color-picker/lib/color-picker.module.mjs +0 -61
- package/esm2022/common/lib/classes/data.class.mjs +0 -2
- package/esm2022/common/lib/classes/drawing.class.mjs +0 -2
- package/esm2022/common/lib/constant/positions.mjs +0 -75
- package/esm2022/date-picker/acorex-components-date-picker.mjs +0 -5
- package/esm2022/date-picker/index.mjs +0 -3
- package/esm2022/date-picker/lib/datepicker.component.mjs +0 -128
- package/esm2022/date-picker/lib/datepicker.module.mjs +0 -44
- package/esm2022/decorators/lib/clear-button.component.mjs +0 -58
- package/esm2022/decorators/lib/close-button.component.mjs +0 -43
- package/esm2022/decorators/lib/generic-content.component.mjs +0 -17
- package/esm2022/decorators/lib/icon.component.mjs +0 -26
- package/esm2022/popover/lib/dropdown-component.class.mjs +0 -73
- package/esm2022/time-box/acorex-components-time-box.mjs +0 -5
- package/esm2022/time-box/index.mjs +0 -3
- package/esm2022/time-box/lib/time-box.component.mjs +0 -294
- package/esm2022/time-box/lib/time-box.module.mjs +0 -32
- package/esm2022/uploader/lib/uploader.component.mjs +0 -99
- package/fesm2022/acorex-components-color-picker.mjs +0 -178
- package/fesm2022/acorex-components-color-picker.mjs.map +0 -1
- package/fesm2022/acorex-components-date-picker.mjs +0 -173
- package/fesm2022/acorex-components-date-picker.mjs.map +0 -1
- package/fesm2022/acorex-components-time-box.mjs +0 -329
- package/fesm2022/acorex-components-time-box.mjs.map +0 -1
- package/popover/lib/dropdown-component.class.d.ts +0 -17
- package/time-box/README.md +0 -3
- package/time-box/index.d.ts +0 -2
- package/time-box/lib/time-box.component.d.ts +0 -50
- package/time-box/lib/time-box.module.d.ts +0 -11
- package/uploader/lib/uploader.component.d.ts +0 -28
- /package/common/lib/{classes/data.class.d.ts → types/range.d.ts} +0 -0
- /package/decorators/lib/{clear-button.component.d.ts → components/clear-button.component.d.ts} +0 -0
- /package/decorators/lib/{close-button.component.d.ts → components/close-button.component.d.ts} +0 -0
- /package/decorators/lib/{generic-content.component.d.ts → components/generic-content.component.d.ts} +0 -0
- /package/decorators/lib/{icon.component.d.ts → components/icon.component.d.ts} +0 -0
@@ -1,294 +0,0 @@
|
|
1
|
-
import { AXStringUtil } from '@acorex/core/utils';
|
2
|
-
import { AXDateTime } from '@acorex/core/dateTime';
|
3
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, EventEmitter, Output, Input, ViewChild, } from '@angular/core';
|
4
|
-
import { MaskedRange, createMask } from 'imask';
|
5
|
-
import { IMaskDirective } from 'angular-imask';
|
6
|
-
import { AXBaseTextBoxMixin } from '@acorex/components/mixin';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
import * as i1 from "@angular/forms";
|
9
|
-
import * as i2 from "angular-imask";
|
10
|
-
/**
|
11
|
-
* The Button is a component which detects user interaction and triggers a corresponding event
|
12
|
-
*
|
13
|
-
* @category Components
|
14
|
-
*/
|
15
|
-
export class AXTimeBoxComponent extends AXBaseTextBoxMixin {
|
16
|
-
get minValue() {
|
17
|
-
return this._minValue;
|
18
|
-
}
|
19
|
-
set minValue(v) {
|
20
|
-
this._minValue = v;
|
21
|
-
}
|
22
|
-
get maxValue() {
|
23
|
-
return this._maxValue;
|
24
|
-
}
|
25
|
-
set maxValue(v) {
|
26
|
-
this._maxValue = v;
|
27
|
-
}
|
28
|
-
get format() {
|
29
|
-
return this._format;
|
30
|
-
}
|
31
|
-
set format(v) {
|
32
|
-
this._setOption({
|
33
|
-
name: 'format',
|
34
|
-
value: v,
|
35
|
-
});
|
36
|
-
}
|
37
|
-
get displayText() {
|
38
|
-
return this._displayText;
|
39
|
-
}
|
40
|
-
set displayText(v) {
|
41
|
-
this._displayText = v;
|
42
|
-
this.displayTextChange.emit(v);
|
43
|
-
}
|
44
|
-
/**
|
45
|
-
* @ignore
|
46
|
-
*/
|
47
|
-
constructor(elementRef, cdr) {
|
48
|
-
super(elementRef, cdr);
|
49
|
-
this.cdr = cdr;
|
50
|
-
this.formatChange = new EventEmitter();
|
51
|
-
this._format = 'HH:mm';
|
52
|
-
this.displayTextChange = new EventEmitter();
|
53
|
-
this._displayText = '';
|
54
|
-
}
|
55
|
-
onViewInit() {
|
56
|
-
super.onViewInit();
|
57
|
-
this._updateMask();
|
58
|
-
}
|
59
|
-
_onValueChanged(oldValue, newValue) {
|
60
|
-
this._updateText();
|
61
|
-
this._maskDirective?.maskRef?.updateValue();
|
62
|
-
this._maskDirective?.maskRef?.updateControl();
|
63
|
-
}
|
64
|
-
_updateText() {
|
65
|
-
this.displayText = this.value ? AXDateTime.convert(this.value).format(this.format) : '';
|
66
|
-
}
|
67
|
-
_onOptionChanged(option) {
|
68
|
-
super._onOptionChanged(option);
|
69
|
-
this._updateMask();
|
70
|
-
}
|
71
|
-
focus() {
|
72
|
-
this.input.nativeElement.focus();
|
73
|
-
}
|
74
|
-
_updateMask() {
|
75
|
-
if (!this._maskObj) {
|
76
|
-
this._maskObj = createMask({
|
77
|
-
mask: this.format,
|
78
|
-
lazy: false,
|
79
|
-
autofix: true,
|
80
|
-
overwrite: true,
|
81
|
-
blocks: {
|
82
|
-
HH: {
|
83
|
-
mask: MaskedRange,
|
84
|
-
from: 0,
|
85
|
-
to: 23,
|
86
|
-
maxLength: 2,
|
87
|
-
placeholderChar: '0',
|
88
|
-
autofix: 'pad',
|
89
|
-
},
|
90
|
-
mm: {
|
91
|
-
mask: MaskedRange,
|
92
|
-
from: 0,
|
93
|
-
to: 59,
|
94
|
-
maxLength: 2,
|
95
|
-
placeholderChar: '0',
|
96
|
-
autofix: 'pad',
|
97
|
-
},
|
98
|
-
ss: {
|
99
|
-
mask: MaskedRange,
|
100
|
-
from: 0,
|
101
|
-
to: 59,
|
102
|
-
maxLength: 2,
|
103
|
-
placeholderChar: '0',
|
104
|
-
autofix: 'pad',
|
105
|
-
},
|
106
|
-
},
|
107
|
-
});
|
108
|
-
}
|
109
|
-
else {
|
110
|
-
this._maskObj.updateOptions({
|
111
|
-
mask: this.format,
|
112
|
-
});
|
113
|
-
}
|
114
|
-
this._maskDirective?.maskRef?.updateValue();
|
115
|
-
this._maskDirective?.maskRef?.updateControl();
|
116
|
-
}
|
117
|
-
_handleOnKeydownEvent(e) {
|
118
|
-
const ignore = () => {
|
119
|
-
e.preventDefault();
|
120
|
-
e.stopPropagation();
|
121
|
-
};
|
122
|
-
const nums = Array(10)
|
123
|
-
.fill(0)
|
124
|
-
.map((v, i) => i.toString());
|
125
|
-
const chars = [
|
126
|
-
'Backspace',
|
127
|
-
'ArrowDown',
|
128
|
-
'ArrowUp',
|
129
|
-
'ArrowRight',
|
130
|
-
'ArrowLeft',
|
131
|
-
'Tab',
|
132
|
-
'Enter',
|
133
|
-
];
|
134
|
-
const input = e.target;
|
135
|
-
const key = e.key;
|
136
|
-
const valStr = input.value;
|
137
|
-
const sStart = input.selectionStart || 0;
|
138
|
-
const sEnd = input.selectionEnd || 0;
|
139
|
-
const dateVal = new AXDateTime(this.value);
|
140
|
-
//
|
141
|
-
const re = /[a-zA-Z0-9]+/gi;
|
142
|
-
const parts = Array.from(this.format.matchAll(re));
|
143
|
-
const word = valStr.substring(sStart, sEnd);
|
144
|
-
const part = parts.find((c) => c.index >= sStart);
|
145
|
-
const next = Array.from(valStr.substr(sEnd).matchAll(re));
|
146
|
-
const prev = Array.from(valStr.substring(0, sStart).matchAll(re));
|
147
|
-
//const part = parts[Array.from(valStr.matchAll(re)).findIndex(c => c[0] == word)];
|
148
|
-
//
|
149
|
-
const goNext = () => {
|
150
|
-
this._highlightPart(input, sEnd + (next[0]?.index || 0));
|
151
|
-
};
|
152
|
-
const goPrev = () => {
|
153
|
-
this._highlightPart(input, prev[prev.length - 1]?.index);
|
154
|
-
};
|
155
|
-
//
|
156
|
-
if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {
|
157
|
-
ignore();
|
158
|
-
e.key === 'ArrowRight' ? goNext() : goPrev();
|
159
|
-
}
|
160
|
-
else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
|
161
|
-
if (e.ctrlKey && e.key === 'ArrowDown') {
|
162
|
-
//this.open();
|
163
|
-
}
|
164
|
-
else {
|
165
|
-
const sign = e.key === 'ArrowUp' ? +1 : -1;
|
166
|
-
if (part) {
|
167
|
-
switch (part[0]) {
|
168
|
-
case 'hh':
|
169
|
-
case 'h':
|
170
|
-
case 'HH':
|
171
|
-
case 'H':
|
172
|
-
this.value = dateVal.add('hour', sign).date;
|
173
|
-
break;
|
174
|
-
case 'mm':
|
175
|
-
this.value = dateVal.add('minute', sign).date;
|
176
|
-
break;
|
177
|
-
case 'ss':
|
178
|
-
case 'SS':
|
179
|
-
this.value = dateVal.add('second', sign).date;
|
180
|
-
break;
|
181
|
-
}
|
182
|
-
setTimeout(() => {
|
183
|
-
this._highlightPart(input, sStart);
|
184
|
-
}, 10);
|
185
|
-
}
|
186
|
-
}
|
187
|
-
ignore();
|
188
|
-
}
|
189
|
-
else if (e.key == 'Backspace') {
|
190
|
-
// if (this.allowNull) {
|
191
|
-
// this.value = null;
|
192
|
-
// }
|
193
|
-
// ignore();
|
194
|
-
}
|
195
|
-
else if (e.key == 'Tab') {
|
196
|
-
if (sEnd < valStr.length && !e.shiftKey) {
|
197
|
-
goNext();
|
198
|
-
ignore();
|
199
|
-
}
|
200
|
-
else if (sStart != 0 && e.shiftKey) {
|
201
|
-
goPrev();
|
202
|
-
ignore();
|
203
|
-
}
|
204
|
-
}
|
205
|
-
else {
|
206
|
-
// const keys = {
|
207
|
-
// h: {
|
208
|
-
// v: /^[0-9]$|^[1][0-2]$/,
|
209
|
-
// p: '0'
|
210
|
-
// },
|
211
|
-
// H: {
|
212
|
-
// v: /^[0-9]$|^1[0-9]$|2[0-3]$/,
|
213
|
-
// p: '0'
|
214
|
-
// },
|
215
|
-
// m: {
|
216
|
-
// v: /^[0-9]$|^[1-5][0-9]$/,
|
217
|
-
// p: '0'
|
218
|
-
// }
|
219
|
-
// }
|
220
|
-
// // const re = new RegExp(_.orderBy(Object.keys(keys), c => c.length, ['desc']).join("|"), "gi");
|
221
|
-
// // return format.replace(re, function (matched) {
|
222
|
-
// // return keys[matched]();
|
223
|
-
// // });
|
224
|
-
// const t = keys[part[0]];
|
225
|
-
// if (!t.v.test(key)) {
|
226
|
-
// ignore();
|
227
|
-
// }
|
228
|
-
// else {
|
229
|
-
// this._updateText()
|
230
|
-
// }
|
231
|
-
}
|
232
|
-
// super._emitOnKeydownEvent(e);
|
233
|
-
}
|
234
|
-
_handleKeyUpEvent(e) {
|
235
|
-
// const input = (e.target as HTMLInputElement);
|
236
|
-
// setTimeout(() => {
|
237
|
-
// this._highlightPart(input);
|
238
|
-
// }, 700);
|
239
|
-
}
|
240
|
-
_emitOnFocusEvent(e) {
|
241
|
-
const input = e.target;
|
242
|
-
this._highlightPart(input);
|
243
|
-
super._emitOnFocusEvent(e);
|
244
|
-
}
|
245
|
-
_handleOnInputClickEvent(e) {
|
246
|
-
const input = e.target;
|
247
|
-
this._highlightPart(input);
|
248
|
-
e.preventDefault();
|
249
|
-
e.stopPropagation();
|
250
|
-
}
|
251
|
-
_highlightPart(input, pos) {
|
252
|
-
const { start, end } = AXStringUtil.getWordBoundsAtPosition(input.value, pos != null ? pos : input.selectionStart || 0);
|
253
|
-
input.setSelectionRange(start, end);
|
254
|
-
}
|
255
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXTimeBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
256
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: AXTimeBoxComponent, selector: "ax-time-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", placeholder: "placeholder", maxLength: "maxLength", type: "type", autoComplete: "autoComplete", name: "name", checked: "checked", minValue: "minValue", maxValue: "maxValue", format: "format", displayText: "displayText" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", formatChange: "formatChange", displayTextChange: "displayTextChange" }, host: { classAttribute: "ax-editor-container ax-drop-down" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "_maskDirective", first: true, predicate: IMaskDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\n</ng-content>\n<input #input class=\"ax-input\" [imask]=\"_maskObj\" [unmask]=\"false\" type=\"text\" [attr.placeholder]=\"placeholder\"\n [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\"\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [ngModel]=\"displayText\" (mouseup)=\"_handleOnInputClickEvent($event)\"\n (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\" (keyup)=\"_handleKeyUpEvent($event)\"\n (keydown)=\"_handleOnKeydownEvent($event)\" autocomplete=\"off\">\n<ng-content select=\"ax-clear-button\"></ng-content>\n<ng-content select=\"ax-suffix\">\n</ng-content>\n<ng-content select=\"ax-validation-rule\">\n</ng-content>", dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
257
|
-
}
|
258
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXTimeBoxComponent, decorators: [{
|
259
|
-
type: Component,
|
260
|
-
args: [{ selector: 'ax-time-box', inputs: [
|
261
|
-
'disabled',
|
262
|
-
'readonly',
|
263
|
-
'tabIndex',
|
264
|
-
'size',
|
265
|
-
'value',
|
266
|
-
'placeholder',
|
267
|
-
'maxLength',
|
268
|
-
'type',
|
269
|
-
'autoComplete',
|
270
|
-
'readonly',
|
271
|
-
'value',
|
272
|
-
'name',
|
273
|
-
'checked',
|
274
|
-
], outputs: ['valueChange', 'onValueChanged', 'onBlur', 'onFocus', 'valueChange', 'onValueChanged'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-editor-container ax-drop-down' }, template: "<ng-content select=\"ax-prefix\">\n</ng-content>\n<input #input class=\"ax-input\" [imask]=\"_maskObj\" [unmask]=\"false\" type=\"text\" [attr.placeholder]=\"placeholder\"\n [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\"\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [ngModel]=\"displayText\" (mouseup)=\"_handleOnInputClickEvent($event)\"\n (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\" (keyup)=\"_handleKeyUpEvent($event)\"\n (keydown)=\"_handleOnKeydownEvent($event)\" autocomplete=\"off\">\n<ng-content select=\"ax-clear-button\"></ng-content>\n<ng-content select=\"ax-suffix\">\n</ng-content>\n<ng-content select=\"ax-validation-rule\">\n</ng-content>" }]
|
275
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { input: [{
|
276
|
-
type: ViewChild,
|
277
|
-
args: ['input']
|
278
|
-
}], minValue: [{
|
279
|
-
type: Input
|
280
|
-
}], maxValue: [{
|
281
|
-
type: Input
|
282
|
-
}], formatChange: [{
|
283
|
-
type: Output
|
284
|
-
}], format: [{
|
285
|
-
type: Input
|
286
|
-
}], displayTextChange: [{
|
287
|
-
type: Output
|
288
|
-
}], displayText: [{
|
289
|
-
type: Input
|
290
|
-
}], _maskDirective: [{
|
291
|
-
type: ViewChild,
|
292
|
-
args: [IMaskDirective]
|
293
|
-
}] } });
|
294
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbWUtYm94L3NyYy9saWIvdGltZS1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbWUtYm94L3NyYy9saWIvdGltZS1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUErQixXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUE0QixNQUFNLDBCQUEwQixDQUFDOzs7O0FBR3hGOzs7O0dBSUc7QUF3QkgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUFrQjtJQUt4RCxJQUNXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFXLFFBQVEsQ0FBQyxDQUFPO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFHRCxJQUNXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFXLFFBQVEsQ0FBQyxDQUFPO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFD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LEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsbUJBQy9FLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsa0NBQWtDLEVBQUU7aUlBSW5ELEtBQUs7c0JBREosU0FBUzt1QkFBQyxPQUFPO2dCQUtQLFFBQVE7c0JBRGxCLEtBQUs7Z0JBVUssUUFBUTtzQkFEbEIsS0FBSztnQkFTTixZQUFZO3NCQURYLE1BQU07Z0JBS0ksTUFBTTtzQkFEaEIsS0FBSztnQkFZQyxpQkFBaUI7c0JBRHZCLE1BQU07Z0JBS0ksV0FBVztzQkFEckIsS0FBSztnQkFnQkUsY0FBYztzQkFEckIsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhTdHJpbmdVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEFYRGF0ZVRpbWUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZVRpbWUnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEVsZW1lbnRSZWYsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXNrZWRQYXR0ZXJuLCBNYXNrZWROdW1iZXIsIE1hc2tlZFJhbmdlLCBjcmVhdGVNYXNrIH0gZnJvbSAnaW1hc2snO1xuaW1wb3J0IHsgSU1hc2tEaXJlY3RpdmUgfSBmcm9tICdhbmd1bGFyLWltYXNrJztcbmltcG9ydCB7IEFYQmFzZVRleHRCb3hNaXhpbiwgQVhDb21wb25lbnRPcHRpb25DaGFuZ2VkIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcblxuZXhwb3J0IHR5cGUgQVhfVElNRV9GT1JNQVQgPSAnSEg6bW0nIHwgJ0hIOm1tOnNzJztcbi8qKlxuICogVGhlIEJ1dHRvbiBpcyBhIGNvbXBvbmVudCB3aGljaCBkZXRlY3RzIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRyaWdnZXJzIGEgY29ycmVzcG9uZGluZyBldmVudFxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXRpbWUtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtYm94LmNvbXBvbmVudC5odG1sJyxcbiAgaW5wdXRzOiBbXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAncmVhZG9ubHknLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ3NpemUnLFxuICAgICd2YWx1ZScsXG4gICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAnbWF4TGVuZ3RoJyxcbiAgICAndHlwZScsXG4gICAgJ2F1dG9Db21wbGV0ZScsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAndmFsdWUnLFxuICAgICduYW1lJyxcbiAgICAnY2hlY2tlZCcsXG4gIF0sXG4gIG91dHB1dHM6IFsndmFsdWVDaGFuZ2UnLCAnb25WYWx1ZUNoYW5nZWQnLCAnb25CbHVyJywgJ29uRm9jdXMnLCAndmFsdWVDaGFuZ2UnLCAnb25WYWx1ZUNoYW5nZWQnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdheC1lZGl0b3ItY29udGFpbmVyIGF4LWRyb3AtZG93bicgfSxcbn0pXG5leHBvcnQgY2xhc3MgQVhUaW1lQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dEJveE1peGluIHtcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKVxuICBpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBwcml2YXRlIF9taW5WYWx1ZTogRGF0ZTtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBtaW5WYWx1ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWluVmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCBtaW5WYWx1ZSh2OiBEYXRlKSB7XG4gICAgdGhpcy5fbWluVmFsdWUgPSB2O1xuICB9XG5cbiAgcHJpdmF0ZSBfbWF4VmFsdWU6IERhdGU7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgbWF4VmFsdWUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX21heFZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgbWF4VmFsdWUodjogRGF0ZSkge1xuICAgIHRoaXMuX21heFZhbHVlID0gdjtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBmb3JtYXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwcml2YXRlIF9mb3JtYXQ6IEFYX1RJTUVfRk9STUFUID0gJ0hIOm1tJztcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBmb3JtYXQoKTogQVhfVElNRV9GT1JNQVQge1xuICAgIHJldHVybiB0aGlzLl9mb3JtYXQ7XG4gIH1cbiAgcHVibGljIHNldCBmb3JtYXQodjogQVhfVElNRV9GT1JNQVQpIHtcbiAgICB0aGlzLl9zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2Zvcm1hdCcsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZGlzcGxheVRleHRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIHByaXZhdGUgX2Rpc3BsYXlUZXh0OiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRpc3BsYXlUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlUZXh0O1xuICB9XG5cbiAgcHVibGljIHNldCBkaXNwbGF5VGV4dCh2OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9kaXNwbGF5VGV4dCA9IHY7XG4gICAgdGhpcy5kaXNwbGF5VGV4dENoYW5nZS5lbWl0KHYpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX21hc2tPYmo6IE1hc2tlZFBhdHRlcm47XG5cbiAgQFZpZXdDaGlsZChJTWFza0RpcmVjdGl2ZSlcbiAgcHJpdmF0ZSBfbWFza0RpcmVjdGl2ZTogSU1hc2tEaXJlY3RpdmU8TWFza2VkTnVtYmVyPjtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XG4gIH1cblxuICBvdmVycmlkZSBvblZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm9uVmlld0luaXQoKTtcbiAgICB0aGlzLl91cGRhdGVNYXNrKCk7XG4gIH1cblxuICBvdmVycmlkZSBfb25WYWx1ZUNoYW5nZWQob2xkVmFsdWU/OiBhbnksIG5ld1ZhbHVlPzogYW55KSB7XG4gICAgdGhpcy5fdXBkYXRlVGV4dCgpO1xuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZVZhbHVlKCk7XG4gICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlQ29udHJvbCgpO1xuICB9XG5cbiAgX3VwZGF0ZVRleHQoKSB7XG4gICAgdGhpcy5kaXNwbGF5VGV4dCA9IHRoaXMudmFsdWUgPyBBWERhdGVUaW1lLmNvbnZlcnQodGhpcy52YWx1ZSkuZm9ybWF0KHRoaXMuZm9ybWF0KSA6ICcnO1xuICB9XG5cbiAgb3ZlcnJpZGUgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCk6IHZvaWQge1xuICAgIHN1cGVyLl9vbk9wdGlvbkNoYW5nZWQob3B0aW9uKTtcbiAgICB0aGlzLl91cGRhdGVNYXNrKCk7XG4gIH1cblxuICBvdmVycmlkZSBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZU1hc2soKSB7XG4gICAgaWYgKCF0aGlzLl9tYXNrT2JqKSB7XG4gICAgICB0aGlzLl9tYXNrT2JqID0gY3JlYXRlTWFzayh7XG4gICAgICAgIG1hc2s6IHRoaXMuZm9ybWF0LFxuICAgICAgICBsYXp5OiBmYWxzZSxcbiAgICAgICAgYXV0b2ZpeDogdHJ1ZSxcbiAgICAgICAgb3ZlcndyaXRlOiB0cnVlLFxuICAgICAgICBibG9ja3M6IHtcbiAgICAgICAgICBISDoge1xuICAgICAgICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICAgICAgICBmcm9tOiAwLFxuICAgICAgICAgICAgdG86IDIzLFxuICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnMCcsXG4gICAgICAgICAgICBhdXRvZml4OiAncGFkJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1tOiB7XG4gICAgICAgICAgICBtYXNrOiBNYXNrZWRSYW5nZSxcbiAgICAgICAgICAgIGZyb206IDAsXG4gICAgICAgICAgICB0bzogNTksXG4gICAgICAgICAgICBtYXhMZW5ndGg6IDIsXG4gICAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICcwJyxcbiAgICAgICAgICAgIGF1dG9maXg6ICdwYWQnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3M6IHtcbiAgICAgICAgICAgIG1hc2s6IE1hc2tlZFJhbmdlLFxuICAgICAgICAgICAgZnJvbTogMCxcbiAgICAgICAgICAgIHRvOiA1OSxcbiAgICAgICAgICAgIG1heExlbmd0aDogMixcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJzAnLFxuICAgICAgICAgICAgYXV0b2ZpeDogJ3BhZCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9tYXNrT2JqLnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgICBtYXNrOiB0aGlzLmZvcm1hdCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVWYWx1ZSgpO1xuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZUNvbnRyb2woKTtcbiAgfVxuXG4gIF9oYW5kbGVPbktleWRvd25FdmVudChlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3QgaWdub3JlID0gKCkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9O1xuXG4gICAgY29uc3QgbnVtczogc3RyaW5nW10gPSBBcnJheSgxMClcbiAgICAgIC5maWxsKDApXG4gICAgICAubWFwKCh2LCBpKSA9PiBpLnRvU3RyaW5nKCkpO1xuICAgIGNvbnN0IGNoYXJzOiBzdHJpbmdbXSA9IFtcbiAgICAgICdCYWNrc3BhY2UnLFxuICAgICAgJ0Fycm93RG93bicsXG4gICAgICAnQXJyb3dVcCcsXG4gICAgICAnQXJyb3dSaWdodCcsXG4gICAgICAnQXJyb3dMZWZ0JyxcbiAgICAgICdUYWInLFxuICAgICAgJ0VudGVyJyxcbiAgICBdO1xuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBrZXkgPSBlLmtleTtcbiAgICBjb25zdCB2YWxTdHIgPSBpbnB1dC52YWx1ZTtcbiAgICBjb25zdCBzU3RhcnQgPSBpbnB1dC5zZWxlY3Rpb25TdGFydCB8fCAwO1xuICAgIGNvbnN0IHNFbmQgPSBpbnB1dC5zZWxlY3Rpb25FbmQgfHwgMDtcbiAgICBjb25zdCBkYXRlVmFsID0gbmV3IEFYRGF0ZVRpbWUodGhpcy52YWx1ZSk7XG4gICAgLy9cbiAgICBjb25zdCByZSA9IC9bYS16QS1aMC05XSsvZ2k7XG4gICAgY29uc3QgcGFydHMgPSBBcnJheS5mcm9tKHRoaXMuZm9ybWF0Lm1hdGNoQWxsKHJlKSk7XG4gICAgY29uc3Qgd29yZCA9IHZhbFN0ci5zdWJzdHJpbmcoc1N0YXJ0LCBzRW5kKTtcbiAgICBjb25zdCBwYXJ0ID0gcGFydHMuZmluZCgoYzogYW55KSA9PiBjLmluZGV4ID49IHNTdGFydCk7XG4gICAgY29uc3QgbmV4dCA9IEFycmF5LmZyb20odmFsU3RyLnN1YnN0cihzRW5kKS5tYXRjaEFsbChyZSkpO1xuICAgIGNvbnN0IHByZXYgPSBBcnJheS5mcm9tKHZhbFN0ci5zdWJzdHJpbmcoMCwgc1N0YXJ0KS5tYXRjaEFsbChyZSkpO1xuICAgIC8vY29uc3QgcGFydCA9IHBhcnRzW0FycmF5LmZyb20odmFsU3RyLm1hdGNoQWxsKHJlKSkuZmluZEluZGV4KGMgPT4gY1swXSA9PSB3b3JkKV07XG4gICAgLy9cblxuICAgIGNvbnN0IGdvTmV4dCA9ICgpID0+IHtcbiAgICAgIHRoaXMuX2hpZ2hsaWdodFBhcnQoaW5wdXQsIHNFbmQgKyAobmV4dFswXT8uaW5kZXggfHwgMCkpO1xuICAgIH07XG4gICAgY29uc3QgZ29QcmV2ID0gKCkgPT4ge1xuICAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCwgcHJldltwcmV2Lmxlbmd0aCAtIDFdPy5pbmRleCk7XG4gICAgfTtcblxuICAgIC8vXG4gICAgaWYgKGUua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZS5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICBpZ25vcmUoKTtcbiAgICAgIGUua2V5ID09PSAnQXJyb3dSaWdodCcgPyBnb05leHQoKSA6IGdvUHJldigpO1xuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIGlmIChlLmN0cmxLZXkgJiYgZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgIC8vdGhpcy5vcGVuKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzaWduID0gZS5rZXkgPT09ICdBcnJvd1VwJyA/ICsxIDogLTE7XG4gICAgICAgIGlmIChwYXJ0KSB7XG4gICAgICAgICAgc3dpdGNoIChwYXJ0WzBdKSB7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgIGNhc2UgJ0hIJzpcbiAgICAgICAgICAgIGNhc2UgJ0gnOlxuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZVZhbC5hZGQoJ2hvdXInLCBzaWduKS5kYXRlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGVWYWwuYWRkKCdtaW51dGUnLCBzaWduKS5kYXRlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgIGNhc2UgJ1NTJzpcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGVWYWwuYWRkKCdzZWNvbmQnLCBzaWduKS5kYXRlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0LCBzU3RhcnQpO1xuICAgICAgICAgIH0sIDEwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWdub3JlKCk7XG4gICAgfSBlbHNlIGlmIChlLmtleSA9PSAnQmFja3NwYWNlJykge1xuICAgICAgLy8gaWYgKHRoaXMuYWxsb3dOdWxsKSB7XG4gICAgICAvLyAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAvLyB9XG4gICAgICAvLyBpZ25vcmUoKTtcbiAgICB9IGVsc2UgaWYgKGUua2V5ID09ICdUYWInKSB7XG4gICAgICBpZiAoc0VuZCA8IHZhbFN0ci5sZW5ndGggJiYgIWUuc2hpZnRLZXkpIHtcbiAgICAgICAgZ29OZXh0KCk7XG4gICAgICAgIGlnbm9yZSgpO1xuICAgICAgfSBlbHNlIGlmIChzU3RhcnQgIT0gMCAmJiBlLnNoaWZ0S2V5KSB7XG4gICAgICAgIGdvUHJldigpO1xuICAgICAgICBpZ25vcmUoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29uc3Qga2V5cyA9IHtcbiAgICAgIC8vICAgICBoOiB7XG4gICAgICAvLyAgICAgICAgIHY6IC9eWzAtOV0kfF5bMV1bMC0yXSQvLFxuICAgICAgLy8gICAgICAgICBwOiAnMCdcbiAgICAgIC8vICAgICB9LFxuICAgICAgLy8gICAgIEg6IHtcbiAgICAgIC8vICAgICAgICAgdjogL15bMC05XSR8XjFbMC05XSR8MlswLTNdJC8sXG4gICAgICAvLyAgICAgICAgIHA6ICcwJ1xuICAgICAgLy8gICAgIH0sXG4gICAgICAvLyAgICAgbToge1xuICAgICAgLy8gICAgICAgICB2OiAvXlswLTldJHxeWzEtNV1bMC05XSQvLFxuICAgICAgLy8gICAgICAgICBwOiAnMCdcbiAgICAgIC8vICAgICB9XG4gICAgICAvLyB9XG4gICAgICAvLyAvLyBjb25zdCByZSA9IG5ldyBSZWdFeHAoXy5vcmRlckJ5KE9iamVjdC5rZXlzKGtleXMpLCBjID0+IGMubGVuZ3RoLCBbJ2Rlc2MnXSkuam9pbihcInxcIiksIFwiZ2lcIik7XG4gICAgICAvLyAvLyByZXR1cm4gZm9ybWF0LnJlcGxhY2UocmUsIGZ1bmN0aW9uIChtYXRjaGVkKSB7XG4gICAgICAvLyAvLyAgIHJldHVybiBrZXlzW21hdGNoZWRdKCk7XG4gICAgICAvLyAvLyB9KTtcbiAgICAgIC8vIGNvbnN0IHQgPSBrZXlzW3BhcnRbMF1dO1xuICAgICAgLy8gaWYgKCF0LnYudGVzdChrZXkpKSB7XG4gICAgICAvLyAgICAgaWdub3JlKCk7XG4gICAgICAvLyB9XG4gICAgICAvLyBlbHNlIHtcbiAgICAgIC8vICAgICB0aGlzLl91cGRhdGVUZXh0KClcbiAgICAgIC8vIH1cbiAgICB9XG4gICAgLy8gc3VwZXIuX2VtaXRPbktleWRvd25FdmVudChlKTtcbiAgfVxuXG4gIF9oYW5kbGVLZXlVcEV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvLyBjb25zdCBpbnB1dCA9IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KTtcbiAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAvLyAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCk7XG4gICAgLy8gfSwgNzAwKTtcbiAgfVxuXG4gIG92ZXJyaWRlIF9lbWl0T25Gb2N1c0V2ZW50KGU6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCk7XG4gICAgc3VwZXIuX2VtaXRPbkZvY3VzRXZlbnQoZSk7XG4gIH1cblxuICBfaGFuZGxlT25JbnB1dENsaWNrRXZlbnQoZTogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0KTtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hpZ2hsaWdodFBhcnQoaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQsIHBvcz86IG51bWJlcikge1xuICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gQVhTdHJpbmdVdGlsLmdldFdvcmRCb3VuZHNBdFBvc2l0aW9uKFxuICAgICAgaW5wdXQudmFsdWUsXG4gICAgICBwb3MgIT0gbnVsbCA/IHBvcyA6IGlucHV0LnNlbGVjdGlvblN0YXJ0IHx8IDBcbiAgICApO1xuICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBlbmQpO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj5cbjwvbmctY29udGVudD5cbjxpbnB1dCAjaW5wdXQgY2xhc3M9XCJheC1pbnB1dFwiIFtpbWFza109XCJfbWFza09ialwiIFt1bm1hc2tdPVwiZmFsc2VcIiB0eXBlPVwidGV4dFwiIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbY2xhc3MuYXgtc3RhdGUtcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiIFtuZ01vZGVsXT1cImRpc3BsYXlUZXh0XCIgKG1vdXNldXApPVwiX2hhbmRsZU9uSW5wdXRDbGlja0V2ZW50KCRldmVudClcIlxuICAgIChmb2N1cyk9XCJfZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCIgKGJsdXIpPVwiX2VtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCIgKGtleXVwKT1cIl9oYW5kbGVLZXlVcEV2ZW50KCRldmVudClcIlxuICAgIChrZXlkb3duKT1cIl9oYW5kbGVPbktleWRvd25FdmVudCgkZXZlbnQpXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XG48bmctY29udGVudCBzZWxlY3Q9XCJheC1jbGVhci1idXR0b25cIj48L25nLWNvbnRlbnQ+XG48bmctY29udGVudCBzZWxlY3Q9XCJheC1zdWZmaXhcIj5cbjwvbmctY29udGVudD5cbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXZhbGlkYXRpb24tcnVsZVwiPlxuPC9uZy1jb250ZW50PiJdfQ==
|
@@ -1,32 +0,0 @@
|
|
1
|
-
import { NgModule } from '@angular/core';
|
2
|
-
import { CommonModule } from '@angular/common';
|
3
|
-
import { AXTimeBoxComponent } from './time-box.component';
|
4
|
-
import { FormsModule } from '@angular/forms';
|
5
|
-
import { IMaskModule } from 'angular-imask';
|
6
|
-
import { AXButtonModule } from '@acorex/components/button';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
const COMPONENT = [AXTimeBoxComponent];
|
9
|
-
const MODULES = [
|
10
|
-
CommonModule,
|
11
|
-
FormsModule,
|
12
|
-
AXButtonModule,
|
13
|
-
IMaskModule
|
14
|
-
];
|
15
|
-
export class AXTimeBoxModule {
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXTimeBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
17
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.8", ngImport: i0, type: AXTimeBoxModule, declarations: [AXTimeBoxComponent], imports: [CommonModule,
|
18
|
-
FormsModule,
|
19
|
-
AXButtonModule,
|
20
|
-
IMaskModule], exports: [AXTimeBoxComponent] }); }
|
21
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXTimeBoxModule, imports: [MODULES] }); }
|
22
|
-
}
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXTimeBoxModule, decorators: [{
|
24
|
-
type: NgModule,
|
25
|
-
args: [{
|
26
|
-
declarations: [...COMPONENT],
|
27
|
-
imports: [...MODULES],
|
28
|
-
exports: [...COMPONENT],
|
29
|
-
providers: [],
|
30
|
-
}]
|
31
|
-
}] });
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1ib3gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbWUtYm94L3NyYy9saWIvdGltZS1ib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFM0QsTUFBTSxTQUFTLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQ3ZDLE1BQU0sT0FBTyxHQUFHO0lBQ1osWUFBWTtJQUNaLFdBQVc7SUFDWCxjQUFjO0lBQ2QsV0FBVztDQUNkLENBQUM7QUFRRixNQUFNLE9BQU8sZUFBZTs4R0FBZixlQUFlOytHQUFmLGVBQWUsaUJBZFQsa0JBQWtCLGFBRWpDLFlBQVk7WUFDWixXQUFXO1lBQ1gsY0FBYztZQUNkLFdBQVcsYUFMSSxrQkFBa0I7K0dBY3hCLGVBQWUsWUFKWCxPQUFPOzsyRkFJWCxlQUFlO2tCQU4zQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztvQkFDckIsT0FBTyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVhUaW1lQm94Q29tcG9uZW50IH0gZnJvbSAnLi90aW1lLWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJTWFza01vZHVsZSB9IGZyb20gJ2FuZ3VsYXItaW1hc2snO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYVGltZUJveENvbXBvbmVudF07XG5jb25zdCBNT0RVTEVTID0gW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBJTWFza01vZHVsZVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRdLFxuICAgIGltcG9ydHM6IFsuLi5NT0RVTEVTXSxcbiAgICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcbiAgICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFRpbWVCb3hNb2R1bGUgeyB9XG4iXX0=
|
@@ -1,99 +0,0 @@
|
|
1
|
-
import { AXBaseComponentMixin } from '@acorex/components/mixin';
|
2
|
-
import { AXFileService } from '@acorex/core/file';
|
3
|
-
import { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@acorex/core/file";
|
6
|
-
import * as i2 from "@angular/common";
|
7
|
-
export class AXUploaderComponent extends AXBaseComponentMixin {
|
8
|
-
constructor(elementRef, cdr, _fileService) {
|
9
|
-
super(elementRef, cdr);
|
10
|
-
this._fileService = _fileService;
|
11
|
-
this.onValueChanged = new EventEmitter();
|
12
|
-
this.firstInit = true;
|
13
|
-
this._showText = true;
|
14
|
-
this.multiple = false;
|
15
|
-
this.accept = '*/*';
|
16
|
-
}
|
17
|
-
async _handleClick(e) {
|
18
|
-
const files = await this._fileService.choose({
|
19
|
-
accept: this.accept,
|
20
|
-
multiple: this.multiple,
|
21
|
-
});
|
22
|
-
this._handleFiles(files);
|
23
|
-
}
|
24
|
-
async _handleDrop(e) {
|
25
|
-
let dt = e.dataTransfer;
|
26
|
-
let files = dt.files;
|
27
|
-
this._handleFiles(Array.from(files));
|
28
|
-
e.preventDefault();
|
29
|
-
}
|
30
|
-
_handleFiles(files) {
|
31
|
-
this.onValueChanged.emit({
|
32
|
-
component: this,
|
33
|
-
isUserInteraction: true,
|
34
|
-
value: files,
|
35
|
-
htmlElement: this._getHostElement(),
|
36
|
-
});
|
37
|
-
}
|
38
|
-
onInit() {
|
39
|
-
this._dropArea = this._getHostElement();
|
40
|
-
['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {
|
41
|
-
this._dropArea.addEventListener(eventName, this.preventDefaults, false);
|
42
|
-
});
|
43
|
-
['dragenter', 'dragover'].forEach((eventName) => {
|
44
|
-
this._dropArea.addEventListener(eventName, this._handleHighlight.bind(this), false);
|
45
|
-
});
|
46
|
-
['dragleave', 'drop'].forEach((eventName) => {
|
47
|
-
this._dropArea.addEventListener(eventName, this._handleUnhighlight.bind(this), false);
|
48
|
-
});
|
49
|
-
}
|
50
|
-
ngDoCheck() {
|
51
|
-
this.checkIsBoxHasMinWidth();
|
52
|
-
}
|
53
|
-
checkIsBoxHasMinWidth() {
|
54
|
-
this.firstInit = false;
|
55
|
-
let boxWidth = this._getHostElement().getBoundingClientRect().width;
|
56
|
-
console.log(boxWidth);
|
57
|
-
if (boxWidth <= 176 && this.firstInit === false) {
|
58
|
-
this._showText = false;
|
59
|
-
}
|
60
|
-
}
|
61
|
-
preventDefaults(e) {
|
62
|
-
e.preventDefault();
|
63
|
-
e.stopPropagation();
|
64
|
-
}
|
65
|
-
_handleHighlight(e) {
|
66
|
-
this._dropArea.classList.add('ax-state-hover');
|
67
|
-
}
|
68
|
-
_handleUnhighlight(e) {
|
69
|
-
this._dropArea.classList.remove('ax-state-hover');
|
70
|
-
}
|
71
|
-
get __defaultClass() {
|
72
|
-
return !this._placeholder?.nativeElement.childNodes.length;
|
73
|
-
}
|
74
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXUploaderComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.AXFileService }], target: i0.ɵɵFactoryTarget.Component }); }
|
75
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: AXUploaderComponent, selector: "ax-uploader", inputs: { multiple: "multiple", accept: "accept" }, outputs: { onValueChanged: "onValueChanged" }, host: { listeners: { "click": "_handleClick($event)", "drop": "_handleDrop($event)" }, properties: { "class.ax-look-default": "this.__defaultClass" } }, viewQueries: [{ propertyName: "_placeholder", first: true, predicate: ["contentRef"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <div #contentRef><ng-content></ng-content></div>\n</ng-container>\n<ng-container *ngIf=\"contentRef.childNodes.length == 0\">\n <i class=\"ax-icon ax-icon-upload upload-icon\"></i>\n <div class=\"ax-uploader-hint\" *ngIf=\"_showText\">Drag your file here or, <span class=\"ax-text-primary-500\">click to\n browse</span></div>\n</ng-container>", styles: ["ax-uploader.ax-look-default{position:relative;width:100%;color:rgba(var(--ax-color-text-default));border-radius:var(--ax-rounded-border-default);border-width:2px;border-style:dashed;border-color:rgba(var(--ax-color-border-default));display:flex;align-items:center;justify-content:center;cursor:pointer;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;background-position:center;background-size:cover}ax-uploader.ax-look-default:hover,ax-uploader.ax-look-default.ax-state-hover{border-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-500))}ax-uploader.ax-look-default:before{content:\"\";padding-bottom:100%}ax-uploader.ax-look-default .upload-icon{font-size:3rem}ax-uploader.ax-look-default .ax-uploader-hint{padding:1rem;text-align:center}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
76
|
-
}
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXUploaderComponent, decorators: [{
|
78
|
-
type: Component,
|
79
|
-
args: [{ selector: 'ax-uploader', encapsulation: ViewEncapsulation.None, template: "<ng-container>\n <div #contentRef><ng-content></ng-content></div>\n</ng-container>\n<ng-container *ngIf=\"contentRef.childNodes.length == 0\">\n <i class=\"ax-icon ax-icon-upload upload-icon\"></i>\n <div class=\"ax-uploader-hint\" *ngIf=\"_showText\">Drag your file here or, <span class=\"ax-text-primary-500\">click to\n browse</span></div>\n</ng-container>", styles: ["ax-uploader.ax-look-default{position:relative;width:100%;color:rgba(var(--ax-color-text-default));border-radius:var(--ax-rounded-border-default);border-width:2px;border-style:dashed;border-color:rgba(var(--ax-color-border-default));display:flex;align-items:center;justify-content:center;cursor:pointer;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;background-position:center;background-size:cover}ax-uploader.ax-look-default:hover,ax-uploader.ax-look-default.ax-state-hover{border-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-500))}ax-uploader.ax-look-default:before{content:\"\";padding-bottom:100%}ax-uploader.ax-look-default .upload-icon{font-size:3rem}ax-uploader.ax-look-default .ax-uploader-hint{padding:1rem;text-align:center}\n"] }]
|
80
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.AXFileService }]; }, propDecorators: { onValueChanged: [{
|
81
|
-
type: Output
|
82
|
-
}], _placeholder: [{
|
83
|
-
type: ViewChild,
|
84
|
-
args: ['contentRef', { static: true }]
|
85
|
-
}], multiple: [{
|
86
|
-
type: Input
|
87
|
-
}], accept: [{
|
88
|
-
type: Input
|
89
|
-
}], _handleClick: [{
|
90
|
-
type: HostListener,
|
91
|
-
args: ['click', ['$event']]
|
92
|
-
}], _handleDrop: [{
|
93
|
-
type: HostListener,
|
94
|
-
args: ['drop', ['$event']]
|
95
|
-
}], __defaultClass: [{
|
96
|
-
type: HostBinding,
|
97
|
-
args: ['class.ax-look-default']
|
98
|
-
}] } });
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3VwbG9hZGVyL3NyYy9saWIvdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3VwbG9hZGVyL3NyYy9saWIvdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7QUFRdkIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLG9CQUFvQjtJQVMzRCxZQUFZLFVBQXNCLEVBQUUsR0FBc0IsRUFBVSxZQUEyQjtRQUM3RixLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRDJDLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBUC9GLG1CQUFjLEdBQThDLElBQUksWUFBWSxFQUV6RSxDQUFDO1FBRUosY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixjQUFTLEdBQVksSUFBSSxDQUFDO1FBVTFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsV0FBTSxHQUFXLEtBQUssQ0FBQztJQVR2QixDQUFDO0lBY0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFhO1FBQzlCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7WUFDM0MsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFHRCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQU07UUFDdEIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUN4QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDdkIsU0FBUyxFQUFFLElBQUk7WUFDZixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLEtBQUssRUFBRSxLQUFLO1lBQ1osV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUU7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLE1BQU07UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QyxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ25FLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUUsQ0FBQyxDQUFDLENBQUM7UUFDSCxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RGLENBQUMsQ0FBQyxDQUFDO1FBRUgsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4RixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLFFBQVEsR0FBVyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDNUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV0QixJQUFJLFFBQVEsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLENBQU07UUFDcEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsQ0FBQztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFDSSxjQUFjO1FBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQzdELENBQUM7OEdBOUZVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGdjQ3RCaEMsNlhBT2U7OzJGRGVGLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxhQUFhLGlCQUdSLGlCQUFpQixDQUFDLElBQUk7NkpBSXJDLGNBQWM7c0JBRGIsTUFBTTtnQkFhUCxZQUFZO3NCQURYLFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJekMsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFNQSxZQUFZO3NCQURqQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVM0IsV0FBVztzQkFEaEIsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkQ1QixjQUFjO3NCQURqQixXQUFXO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYQmFzZUNvbXBvbmVudE1peGluIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcbmltcG9ydCB7IEFYRmlsZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZmlsZSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC11cGxvYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYVXBsb2FkZXJDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnRNaXhpbiB7XG4gIEBPdXRwdXQoKVxuICBvblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RmlsZVtdPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RmlsZVtdPlxuICA+KCk7XG5cbiAgZmlyc3RJbml0OiBib29sZWFuID0gdHJ1ZTtcbiAgX3Nob3dUZXh0OiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF9maWxlU2VydmljZTogQVhGaWxlU2VydmljZSkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XG4gIH1cblxuICBAVmlld0NoaWxkKCdjb250ZW50UmVmJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgX3BsYWNlaG9sZGVyOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpXG4gIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgYWNjZXB0OiBzdHJpbmcgPSAnKi8qJztcblxuICBwcml2YXRlIF9kcm9wQXJlYTogSFRNTERpdkVsZW1lbnQ7XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBhc3luYyBfaGFuZGxlQ2xpY2soZTogTW91c2VFdmVudCkge1xuICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgdGhpcy5fZmlsZVNlcnZpY2UuY2hvb3NlKHtcbiAgICAgIGFjY2VwdDogdGhpcy5hY2NlcHQsXG4gICAgICBtdWx0aXBsZTogdGhpcy5tdWx0aXBsZSxcbiAgICB9KTtcbiAgICB0aGlzLl9oYW5kbGVGaWxlcyhmaWxlcyk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcbiAgYXN5bmMgX2hhbmRsZURyb3AoZTogYW55KSB7XG4gICAgbGV0IGR0ID0gZS5kYXRhVHJhbnNmZXI7XG4gICAgbGV0IGZpbGVzID0gZHQuZmlsZXM7XG4gICAgdGhpcy5faGFuZGxlRmlsZXMoQXJyYXkuZnJvbShmaWxlcykpO1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIF9oYW5kbGVGaWxlcyhmaWxlczogRmlsZVtdKSB7XG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgdmFsdWU6IGZpbGVzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuX2dldEhvc3RFbGVtZW50KCksXG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBvbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZHJvcEFyZWEgPSB0aGlzLl9nZXRIb3N0RWxlbWVudCgpO1xuICAgIFsnZHJhZ2VudGVyJywgJ2RyYWdvdmVyJywgJ2RyYWdsZWF2ZScsICdkcm9wJ10uZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB7XG4gICAgICB0aGlzLl9kcm9wQXJlYS5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgdGhpcy5wcmV2ZW50RGVmYXVsdHMsIGZhbHNlKTtcbiAgICB9KTtcbiAgICBbJ2RyYWdlbnRlcicsICdkcmFnb3ZlciddLmZvckVhY2goKGV2ZW50TmFtZSkgPT4ge1xuICAgICAgdGhpcy5fZHJvcEFyZWEuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIHRoaXMuX2hhbmRsZUhpZ2hsaWdodC5iaW5kKHRoaXMpLCBmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBbJ2RyYWdsZWF2ZScsICdkcm9wJ10uZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB7XG4gICAgICB0aGlzLl9kcm9wQXJlYS5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgdGhpcy5faGFuZGxlVW5oaWdobGlnaHQuYmluZCh0aGlzKSwgZmFsc2UpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIHRoaXMuY2hlY2tJc0JveEhhc01pbldpZHRoKCk7XG4gIH1cblxuICBjaGVja0lzQm94SGFzTWluV2lkdGgoKSB7XG4gICAgdGhpcy5maXJzdEluaXQgPSBmYWxzZTtcbiAgICBsZXQgYm94V2lkdGg6IG51bWJlciA9IHRoaXMuX2dldEhvc3RFbGVtZW50KCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgY29uc29sZS5sb2coYm94V2lkdGgpO1xuXG4gICAgaWYgKGJveFdpZHRoIDw9IDE3NiAmJiB0aGlzLmZpcnN0SW5pdCA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuX3Nob3dUZXh0ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJldmVudERlZmF1bHRzKGU6IGFueSkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgX2hhbmRsZUhpZ2hsaWdodChlKSB7XG4gICAgdGhpcy5fZHJvcEFyZWEuY2xhc3NMaXN0LmFkZCgnYXgtc3RhdGUtaG92ZXInKTtcbiAgfVxuXG4gIF9oYW5kbGVVbmhpZ2hsaWdodChlKSB7XG4gICAgdGhpcy5fZHJvcEFyZWEuY2xhc3NMaXN0LnJlbW92ZSgnYXgtc3RhdGUtaG92ZXInKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYXgtbG9vay1kZWZhdWx0JylcbiAgZ2V0IF9fZGVmYXVsdENsYXNzKCkge1xuICAgIHJldHVybiAhdGhpcy5fcGxhY2Vob2xkZXI/Lm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy5sZW5ndGg7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gICAgPGRpdiAjY29udGVudFJlZj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50UmVmLmNoaWxkTm9kZXMubGVuZ3RoID09IDBcIj5cbiAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi11cGxvYWQgdXBsb2FkLWljb25cIj48L2k+XG4gICAgPGRpdiBjbGFzcz1cImF4LXVwbG9hZGVyLWhpbnRcIiAqbmdJZj1cIl9zaG93VGV4dFwiPkRyYWcgeW91ciBmaWxlIGhlcmUgb3IsIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC1wcmltYXJ5LTUwMFwiPmNsaWNrIHRvXG4gICAgICAgICAgICBicm93c2U8L3NwYW4+PC9kaXY+XG48L25nLWNvbnRhaW5lcj4iXX0=
|