@acorex/components 18.16.0-next.9 → 19.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/color-palette/lib/color-palette-picker.component.d.ts +1 -5
- package/fesm2022/acorex-components-action-sheet.mjs +11 -11
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +8 -8
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +8 -8
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +12 -11
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +8 -8
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +12 -12
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +12 -12
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs +12 -11
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +16 -15
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +15 -15
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +8 -8
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +8 -8
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +8 -8
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-collapse.mjs +12 -11
- package/fesm2022/acorex-components-collapse.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +8 -8
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +53 -63
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +36 -36
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +100 -89
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +60 -60
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +53 -53
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +38 -32
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +42 -36
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +8 -8
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +8 -8
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +8 -8
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +20 -19
- 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 +16 -16
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +8 -8
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +15 -15
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +21 -18
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +46 -43
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +8 -8
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +9 -9
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +8 -8
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +8 -8
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +11 -11
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +19 -18
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +268 -11
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +51 -51
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +19 -19
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-nav.mjs +12 -12
- package/fesm2022/acorex-components-nav.mjs.map +1 -1
- package/fesm2022/acorex-components-navbar.mjs +8 -8
- package/fesm2022/acorex-components-navbar.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +11 -11
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +8 -8
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +9 -9
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-page.mjs +10 -10
- package/fesm2022/acorex-components-paint.mjs +38 -30
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +12 -12
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +8 -8
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +12 -11
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +8 -8
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +11 -11
- 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-qrcode.mjs +8 -8
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +8 -8
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +18 -11
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +8 -8
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +8 -8
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +8 -8
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +16 -16
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-scss.mjs +4 -4
- package/fesm2022/acorex-components-search-box.mjs +8 -8
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +8 -8
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +8 -8
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +12 -12
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +8 -8
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
- package/fesm2022/acorex-components-slider.mjs +8 -8
- package/fesm2022/acorex-components-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +16 -15
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +12 -11
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +44 -46
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +8 -8
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +8 -8
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +12 -11
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +14 -14
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +11 -11
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +12 -11
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +13 -13
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +27 -25
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +47 -47
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/image-editor/lib/image-editor-view/image-editor-view.component.d.ts +1 -0
- package/map/index.d.ts +2 -1
- package/map/lib/map.component.d.ts +1 -1
- package/map/lib/map.config.d.ts +13 -0
- package/map/lib/map.service.d.ts +37 -0
- package/package.json +4 -166
- package/paint/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.d.ts +5 -2
- package/range-slider/lib/range-slider.component.d.ts +1 -0
- package/esm2022/acorex-components.mjs +0 -5
- package/esm2022/action-sheet/acorex-components-action-sheet.mjs +0 -5
- package/esm2022/action-sheet/index.mjs +0 -5
- package/esm2022/action-sheet/lib/action-sheet.class.mjs +0 -2
- package/esm2022/action-sheet/lib/action-sheet.component.mjs +0 -109
- package/esm2022/action-sheet/lib/action-sheet.module.mjs +0 -54
- package/esm2022/action-sheet/lib/action-sheet.service.mjs +0 -60
- package/esm2022/alert/acorex-components-alert.mjs +0 -5
- package/esm2022/alert/index.mjs +0 -3
- package/esm2022/alert/lib/alert.component.mjs +0 -142
- package/esm2022/alert/lib/alert.module.mjs +0 -22
- package/esm2022/audio-wave/acorex-components-audio-wave.mjs +0 -5
- package/esm2022/audio-wave/index.mjs +0 -4
- package/esm2022/audio-wave/lib/audio-wave.component.mjs +0 -347
- package/esm2022/audio-wave/lib/audio-wave.module.mjs +0 -22
- package/esm2022/audio-wave/lib/interfaces/audio-wave.interface.mjs +0 -2
- package/esm2022/avatar/acorex-components-avatar.mjs +0 -5
- package/esm2022/avatar/index.mjs +0 -4
- package/esm2022/avatar/lib/avatar-group.component.mjs +0 -14
- package/esm2022/avatar/lib/avatar.component.mjs +0 -54
- package/esm2022/avatar/lib/avatar.module.mjs +0 -22
- package/esm2022/badge/acorex-components-badge.mjs +0 -5
- package/esm2022/badge/index.mjs +0 -3
- package/esm2022/badge/lib/badge.component.mjs +0 -30
- package/esm2022/badge/lib/badge.module.mjs +0 -19
- package/esm2022/bottom-navigation/acorex-components-bottom-navigation.mjs +0 -5
- package/esm2022/bottom-navigation/index.mjs +0 -4
- package/esm2022/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.mjs +0 -46
- package/esm2022/bottom-navigation/lib/bottom-navigation.component.mjs +0 -67
- package/esm2022/bottom-navigation/lib/bottom-navigation.module.mjs +0 -22
- package/esm2022/breadcrumbs/acorex-components-breadcrumbs.mjs +0 -5
- package/esm2022/breadcrumbs/index.mjs +0 -5
- package/esm2022/breadcrumbs/lib/breadcrumbs-item.class.mjs +0 -2
- package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +0 -41
- package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +0 -31
- package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +0 -21
- package/esm2022/button/acorex-components-button.mjs +0 -5
- package/esm2022/button/index.mjs +0 -7
- package/esm2022/button/lib/button-item-list.component.mjs +0 -153
- package/esm2022/button/lib/button-item.class.mjs +0 -2
- package/esm2022/button/lib/button-item.component.mjs +0 -152
- package/esm2022/button/lib/button.class.mjs +0 -2
- package/esm2022/button/lib/button.component.mjs +0 -116
- package/esm2022/button/lib/button.module.mjs +0 -26
- package/esm2022/button-group/acorex-components-button-group.mjs +0 -5
- package/esm2022/button-group/index.mjs +0 -4
- package/esm2022/button-group/lib/button-group-item.component.mjs +0 -141
- package/esm2022/button-group/lib/button-group.component.mjs +0 -170
- package/esm2022/button-group/lib/button-group.module.mjs +0 -23
- package/esm2022/calendar/acorex-components-calendar.mjs +0 -5
- package/esm2022/calendar/index.mjs +0 -5
- package/esm2022/calendar/lib/calendar-range.component.mjs +0 -248
- package/esm2022/calendar/lib/calendar.class.mjs +0 -163
- package/esm2022/calendar/lib/calendar.component.mjs +0 -631
- package/esm2022/calendar/lib/calendar.module.mjs +0 -26
- package/esm2022/check-box/acorex-components-check-box.mjs +0 -5
- package/esm2022/check-box/index.mjs +0 -3
- package/esm2022/check-box/lib/check-box.component.mjs +0 -138
- package/esm2022/check-box/lib/check-box.module.mjs +0 -21
- package/esm2022/chips/acorex-components-chips.mjs +0 -5
- package/esm2022/chips/index.mjs +0 -3
- package/esm2022/chips/lib/chips.component.mjs +0 -36
- package/esm2022/chips/lib/chips.module.mjs +0 -19
- package/esm2022/circular-progress/acorex-components-circular-progress.mjs +0 -5
- package/esm2022/circular-progress/index.mjs +0 -3
- package/esm2022/circular-progress/lib/circular-progress.component.mjs +0 -95
- package/esm2022/circular-progress/lib/circular-progress.module.mjs +0 -17
- package/esm2022/collapse/acorex-components-collapse.mjs +0 -5
- package/esm2022/collapse/index.mjs +0 -4
- package/esm2022/collapse/lib/collapse-group.component.mjs +0 -171
- package/esm2022/collapse/lib/collapse.component.mjs +0 -198
- package/esm2022/collapse/lib/collapse.module.mjs +0 -21
- package/esm2022/color-box/acorex-components-color-box.mjs +0 -5
- package/esm2022/color-box/index.mjs +0 -3
- package/esm2022/color-box/lib/color-box.component.mjs +0 -92
- package/esm2022/color-box/lib/color-box.module.mjs +0 -24
- package/esm2022/color-palette/acorex-components-color-palette.mjs +0 -5
- package/esm2022/color-palette/index.mjs +0 -8
- package/esm2022/color-palette/lib/color-palette-input.component.mjs +0 -157
- package/esm2022/color-palette/lib/color-palette-picker.component.mjs +0 -277
- package/esm2022/color-palette/lib/color-palette-preview.component.mjs +0 -80
- package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +0 -121
- package/esm2022/color-palette/lib/color-palette.class.mjs +0 -238
- package/esm2022/color-palette/lib/color-palette.component.mjs +0 -58
- package/esm2022/color-palette/lib/color-palette.module.mjs +0 -66
- package/esm2022/comment/acorex-components-comment.mjs +0 -5
- package/esm2022/comment/index.mjs +0 -10
- package/esm2022/comment/lib/comment-container/comment-container.component.mjs +0 -37
- package/esm2022/comment/lib/comment-item/comment-item.component.mjs +0 -37
- package/esm2022/comment/lib/comment-tools/comment-date/comment-date.component.mjs +0 -16
- package/esm2022/comment/lib/comment-tools/comment-like/comment-like.component.mjs +0 -28
- package/esm2022/comment/lib/comment-tools/comment-menu-options/comment-menu-options.component.mjs +0 -16
- package/esm2022/comment/lib/comment-tools/comment-reply-more/comment-reply-more.component.mjs +0 -12
- package/esm2022/comment/lib/comment-tools/comment-reply-text/comment-reply-text.component.mjs +0 -12
- package/esm2022/comment/lib/comment-view/comment-view.component.mjs +0 -15
- package/esm2022/comment/lib/comment.module.mjs +0 -71
- package/esm2022/common/acorex-components-common.mjs +0 -5
- package/esm2022/common/index.mjs +0 -31
- package/esm2022/common/lib/classes/components.class.mjs +0 -76
- package/esm2022/common/lib/classes/datalist.class.mjs +0 -50
- package/esm2022/common/lib/classes/datasource.class.mjs +0 -134
- package/esm2022/common/lib/classes/events.class.mjs +0 -79
- package/esm2022/common/lib/classes/styles.class.mjs +0 -13
- package/esm2022/common/lib/common.module.mjs +0 -22
- package/esm2022/common/lib/components/base-component.class.mjs +0 -74
- package/esm2022/common/lib/components/button-base-component.class.mjs +0 -88
- package/esm2022/common/lib/components/color-component.class.mjs +0 -25
- package/esm2022/common/lib/components/colorlook-component.class.mjs +0 -6
- package/esm2022/common/lib/components/input-base-value-component.class.mjs +0 -54
- package/esm2022/common/lib/components/interactive-component.class.mjs +0 -129
- package/esm2022/common/lib/components/look-component.class.mjs +0 -33
- package/esm2022/common/lib/components/selection-base.component.class.mjs +0 -233
- package/esm2022/common/lib/components/value-component.class.mjs +0 -232
- package/esm2022/common/lib/directives/auto-focus.directive.mjs +0 -63
- package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +0 -51
- package/esm2022/common/lib/directives/hotkey.directive.mjs +0 -80
- package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +0 -60
- package/esm2022/common/lib/directives/inverted-color.directive.mjs +0 -52
- package/esm2022/common/lib/directives/responsive.directive.mjs +0 -37
- package/esm2022/common/lib/directives/ripple.directive.mjs +0 -65
- package/esm2022/common/lib/services/dom.service.mjs +0 -16
- package/esm2022/common/lib/services/hotkey.service.mjs +0 -52
- package/esm2022/common/lib/types/base/button.type.mjs +0 -18
- package/esm2022/common/lib/types/base/color.type.mjs +0 -16
- package/esm2022/common/lib/types/base/component.types.mjs +0 -27
- package/esm2022/common/lib/types/base/events.types.mjs +0 -19
- package/esm2022/common/lib/types/base/index.mjs +0 -8
- package/esm2022/common/lib/types/base/interactive.type.mjs +0 -31
- package/esm2022/common/lib/types/base/look.type.mjs +0 -16
- package/esm2022/common/lib/types/base/value.type.mjs +0 -19
- package/esm2022/common/lib/types/direction.mjs +0 -2
- package/esm2022/common/lib/types/orientation.mjs +0 -2
- package/esm2022/common/lib/types/placement.mjs +0 -166
- package/esm2022/common/lib/types/range.mjs +0 -2
- package/esm2022/common/lib/types/selection-mode.mjs +0 -5
- package/esm2022/conversation/acorex-components-conversation.mjs +0 -5
- package/esm2022/conversation/index.mjs +0 -19
- package/esm2022/conversation/lib/classes/events.interface.mjs +0 -4
- package/esm2022/conversation/lib/conversation-container/conversation-container.component.mjs +0 -15
- package/esm2022/conversation/lib/conversation-input/conversation-input.component.mjs +0 -193
- package/esm2022/conversation/lib/conversation-input/conversation-input.interface.mjs +0 -2
- package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +0 -110
- package/esm2022/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.mjs +0 -147
- package/esm2022/conversation/lib/conversation-messages/conversation-message-file/conversation-message-file.component.mjs +0 -79
- package/esm2022/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.mjs +0 -69
- package/esm2022/conversation/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.mjs +0 -24
- package/esm2022/conversation/lib/conversation-messages/conversation-message-text/conversation-message-text.component.mjs +0 -130
- package/esm2022/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.mjs +0 -31
- package/esm2022/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.mjs +0 -190
- package/esm2022/conversation/lib/conversation-view/conversation-view.component.mjs +0 -52
- package/esm2022/conversation/lib/conversation.module.mjs +0 -200
- package/esm2022/conversation/lib/conversation.types.mjs +0 -10
- package/esm2022/conversation/lib/services/conversation-message-type-registry.service.mjs +0 -20
- package/esm2022/conversation/lib/services/conversation.service.mjs +0 -14
- package/esm2022/conversation/lib/services/recording.service.mjs +0 -76
- package/esm2022/cron-job/acorex-components-cron-job.mjs +0 -5
- package/esm2022/cron-job/index.mjs +0 -9
- package/esm2022/cron-job/lib/cron-job-container/cron-job-container.component.mjs +0 -107
- package/esm2022/cron-job/lib/cron-job.module.mjs +0 -80
- package/esm2022/cron-job/lib/cron-job.service.mjs +0 -60
- package/esm2022/cron-job/lib/day/day.component.mjs +0 -66
- package/esm2022/cron-job/lib/day/day.model.mjs +0 -88
- package/esm2022/cron-job/lib/day/day.service.mjs +0 -196
- package/esm2022/cron-job/lib/hours/hours.component.mjs +0 -43
- package/esm2022/cron-job/lib/hours/hours.model.mjs +0 -8
- package/esm2022/cron-job/lib/hours/hours.service.mjs +0 -82
- package/esm2022/cron-job/lib/minutes/minutes.component.mjs +0 -43
- package/esm2022/cron-job/lib/minutes/minutes.model.mjs +0 -8
- package/esm2022/cron-job/lib/minutes/minutes.service.mjs +0 -82
- package/esm2022/cron-job/lib/month/month.component.mjs +0 -52
- package/esm2022/cron-job/lib/month/month.model.mjs +0 -8
- package/esm2022/cron-job/lib/month/month.service.mjs +0 -96
- package/esm2022/cron-job/lib/seconds/seconds.component.mjs +0 -43
- package/esm2022/cron-job/lib/seconds/seconds.model.mjs +0 -8
- package/esm2022/cron-job/lib/seconds/seconds.service.mjs +0 -82
- package/esm2022/cron-job/lib/types/iexpression.mjs +0 -2
- package/esm2022/cron-job/lib/types/shared.model.mjs +0 -49
- package/esm2022/cron-job/lib/year/year.component.mjs +0 -50
- package/esm2022/cron-job/lib/year/year.model.mjs +0 -28
- package/esm2022/cron-job/lib/year/year.service.mjs +0 -82
- package/esm2022/data-pager/acorex-components-data-pager.mjs +0 -5
- package/esm2022/data-pager/index.mjs +0 -10
- package/esm2022/data-pager/lib/data-pager-base.component.mjs +0 -52
- package/esm2022/data-pager/lib/data-pager-info.component.mjs +0 -50
- package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +0 -90
- package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +0 -113
- package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +0 -166
- package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +0 -105
- package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +0 -112
- package/esm2022/data-pager/lib/data-pager.component.mjs +0 -298
- package/esm2022/data-pager/lib/data-pager.module.mjs +0 -73
- package/esm2022/data-table/acorex-components-data-table.mjs +0 -5
- package/esm2022/data-table/index.mjs +0 -11
- package/esm2022/data-table/lib/base-data-table.class.mjs +0 -46
- package/esm2022/data-table/lib/columns/data-table-column-resizable.directive.mjs +0 -61
- package/esm2022/data-table/lib/columns/data-table-column.mjs +0 -34
- package/esm2022/data-table/lib/columns/data-text-column.component.mjs +0 -128
- package/esm2022/data-table/lib/columns/row-command-column.component.mjs +0 -343
- package/esm2022/data-table/lib/columns/row-index-column.component.mjs +0 -128
- package/esm2022/data-table/lib/columns/row-select-column.component.mjs +0 -168
- package/esm2022/data-table/lib/data-table/data-table.component.mjs +0 -513
- package/esm2022/data-table/lib/data-table.module.mjs +0 -107
- package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +0 -438
- package/esm2022/datetime-box/acorex-components-datetime-box.mjs +0 -5
- package/esm2022/datetime-box/index.mjs +0 -3
- package/esm2022/datetime-box/lib/datetime-box.component.mjs +0 -186
- package/esm2022/datetime-box/lib/datetime-box.module.mjs +0 -26
- package/esm2022/datetime-input/acorex-components-datetime-input.mjs +0 -5
- package/esm2022/datetime-input/index.mjs +0 -3
- package/esm2022/datetime-input/lib/datetime-input.component.mjs +0 -673
- package/esm2022/datetime-input/lib/datetime-input.module.mjs +0 -23
- package/esm2022/datetime-picker/acorex-components-datetime-picker.mjs +0 -5
- package/esm2022/datetime-picker/index.mjs +0 -4
- package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +0 -389
- package/esm2022/datetime-picker/lib/datetime-picker.config.mjs +0 -22
- package/esm2022/datetime-picker/lib/datetime-picker.module.mjs +0 -44
- package/esm2022/decorators/acorex-components-decorators.mjs +0 -5
- package/esm2022/decorators/index.mjs +0 -6
- package/esm2022/decorators/lib/components/clear-button.component.mjs +0 -80
- package/esm2022/decorators/lib/components/close-button.component.mjs +0 -65
- package/esm2022/decorators/lib/components/generic-content.component.mjs +0 -42
- package/esm2022/decorators/lib/components/icon.component.mjs +0 -37
- package/esm2022/decorators/lib/decorators.module.mjs +0 -24
- package/esm2022/dialog/acorex-components-dialog.mjs +0 -5
- package/esm2022/dialog/index.mjs +0 -5
- package/esm2022/dialog/lib/dialog.class.mjs +0 -2
- package/esm2022/dialog/lib/dialog.component.mjs +0 -77
- package/esm2022/dialog/lib/dialog.module.mjs +0 -48
- package/esm2022/dialog/lib/dialog.service.mjs +0 -168
- package/esm2022/drawer/acorex-components-drawer.mjs +0 -5
- package/esm2022/drawer/index.mjs +0 -4
- package/esm2022/drawer/lib/drawer/drawer-container/drawer-container.component.mjs +0 -32
- package/esm2022/drawer/lib/drawer/drawer-item/drawer.component.mjs +0 -157
- package/esm2022/drawer/lib/drawer.module.mjs +0 -22
- package/esm2022/drawer/lib/drawer.service.mjs +0 -13
- package/esm2022/dropdown/acorex-components-dropdown.mjs +0 -5
- package/esm2022/dropdown/index.mjs +0 -5
- package/esm2022/dropdown/lib/dropdown-box.class.mjs +0 -50
- package/esm2022/dropdown/lib/dropdown-box.component.mjs +0 -160
- package/esm2022/dropdown/lib/dropdown-panel.component.mjs +0 -221
- package/esm2022/dropdown/lib/dropdown.module.mjs +0 -25
- package/esm2022/dropdown-button/acorex-components-dropdown-button.mjs +0 -5
- package/esm2022/dropdown-button/index.mjs +0 -3
- package/esm2022/dropdown-button/lib/dropdown-button.component.mjs +0 -124
- package/esm2022/dropdown-button/lib/dropdown-button.module.mjs +0 -26
- package/esm2022/form/acorex-components-form.mjs +0 -5
- package/esm2022/form/index.mjs +0 -7
- package/esm2022/form/lib/form-field.component.mjs +0 -142
- package/esm2022/form/lib/form.component.mjs +0 -205
- package/esm2022/form/lib/form.config.mjs +0 -16
- package/esm2022/form/lib/form.module.mjs +0 -27
- package/esm2022/form/lib/validation-rule.directive.mjs +0 -36
- package/esm2022/form/lib/validation-summary.component.mjs +0 -157
- package/esm2022/image/acorex-components-image.mjs +0 -5
- package/esm2022/image/index.mjs +0 -3
- package/esm2022/image/lib/image.component.mjs +0 -118
- package/esm2022/image/lib/image.module.mjs +0 -19
- package/esm2022/image-editor/acorex-components-image-editor.mjs +0 -5
- package/esm2022/image-editor/index.mjs +0 -8
- package/esm2022/image-editor/lib/image-editor-container/image-editor-container.component.mjs +0 -24
- package/esm2022/image-editor/lib/image-editor-toolbar/image-editor-toolbar.component.mjs +0 -69
- package/esm2022/image-editor/lib/image-editor-tools/image-editor-color-picker/image-editor-color-picker.component.mjs +0 -36
- package/esm2022/image-editor/lib/image-editor-tools/image-editor-crop/image-editor-crop.component.mjs +0 -37
- package/esm2022/image-editor/lib/image-editor-tools/image-editor-pen-mode-changer/image-editor-pen-mode-changer.component.mjs +0 -57
- package/esm2022/image-editor/lib/image-editor-view/image-editor-view.component.mjs +0 -359
- package/esm2022/image-editor/lib/image-editor.module.mjs +0 -72
- package/esm2022/image-editor/lib/image-editor.service.mjs +0 -23
- package/esm2022/index.mjs +0 -2
- package/esm2022/json-viewer/acorex-components-json-viewer.mjs +0 -5
- package/esm2022/json-viewer/index.mjs +0 -3
- package/esm2022/json-viewer/lib/json-viewer/json-viewer.component.mjs +0 -43
- package/esm2022/json-viewer/lib/json-viewer.module.mjs +0 -23
- package/esm2022/label/acorex-components-label.mjs +0 -5
- package/esm2022/label/index.mjs +0 -3
- package/esm2022/label/lib/label.component.mjs +0 -78
- package/esm2022/label/lib/label.module.mjs +0 -21
- package/esm2022/list/acorex-components-list.mjs +0 -5
- package/esm2022/list/index.mjs +0 -3
- package/esm2022/list/lib/list.component.mjs +0 -295
- package/esm2022/list/lib/list.module.mjs +0 -23
- package/esm2022/loading/acorex-components-loading.mjs +0 -5
- package/esm2022/loading/index.mjs +0 -7
- package/esm2022/loading/lib/loading-spinner.component.mjs +0 -62
- package/esm2022/loading/lib/loading.component.mjs +0 -80
- package/esm2022/loading/lib/loading.config.mjs +0 -17
- package/esm2022/loading/lib/loading.directive.mjs +0 -39
- package/esm2022/loading/lib/loading.module.mjs +0 -27
- package/esm2022/loading/lib/loading.service.mjs +0 -123
- package/esm2022/loading-dialog/acorex-components-loading-dialog.mjs +0 -5
- package/esm2022/loading-dialog/index.mjs +0 -5
- package/esm2022/loading-dialog/lib/loading-dialog.class.mjs +0 -2
- package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +0 -98
- package/esm2022/loading-dialog/lib/loading-dialog.module.mjs +0 -27
- package/esm2022/loading-dialog/lib/loading-dialog.service.mjs +0 -37
- package/esm2022/map/acorex-components-map.mjs +0 -5
- package/esm2022/map/index.mjs +0 -3
- package/esm2022/map/lib/map.component.mjs +0 -182
- package/esm2022/map/lib/map.module.mjs +0 -18
- package/esm2022/media-viewer/acorex-components-media-viewer.mjs +0 -5
- package/esm2022/media-viewer/index.mjs +0 -12
- package/esm2022/media-viewer/lib/media-viewer-container/media-viewer-container.component.mjs +0 -52
- package/esm2022/media-viewer/lib/media-viewer-slider/media-viewer-slider.component.mjs +0 -37
- package/esm2022/media-viewer/lib/media-viewer-thumbnail/media-viewer-thumbnail.component.mjs +0 -24
- package/esm2022/media-viewer/lib/media-viewer-tools/audio-player/audio-player.component.mjs +0 -19
- package/esm2022/media-viewer/lib/media-viewer-tools/file-info/file-info.component.mjs +0 -21
- package/esm2022/media-viewer/lib/media-viewer-tools/full-screen/full-screen.component.mjs +0 -20
- package/esm2022/media-viewer/lib/media-viewer-tools/image-viewer/image-viewer.component.mjs +0 -15
- package/esm2022/media-viewer/lib/media-viewer-tools/pdf-reader/pdf-reader.component.mjs +0 -17
- package/esm2022/media-viewer/lib/media-viewer-tools/video-player/video-player.component.mjs +0 -19
- package/esm2022/media-viewer/lib/media-viewer-type-registry.service.mjs +0 -20
- package/esm2022/media-viewer/lib/media-viewer-types.mjs +0 -10
- package/esm2022/media-viewer/lib/media-viewer.module.mjs +0 -140
- package/esm2022/media-viewer/lib/media-viewer.service.mjs +0 -15
- package/esm2022/menu/acorex-components-menu.mjs +0 -5
- package/esm2022/menu/index.mjs +0 -7
- package/esm2022/menu/lib/context-menu.component.mjs +0 -251
- package/esm2022/menu/lib/menu-item.component.mjs +0 -310
- package/esm2022/menu/lib/menu.component.mjs +0 -58
- package/esm2022/menu/lib/menu.module.mjs +0 -28
- package/esm2022/menu/lib/menu.service.mjs +0 -19
- package/esm2022/menu/lib/menu.types.mjs +0 -14
- package/esm2022/nav/acorex-components-nav.mjs +0 -5
- package/esm2022/nav/index.mjs +0 -4
- package/esm2022/nav/lib/nav-item/nav-item.component.mjs +0 -63
- package/esm2022/nav/lib/nav.component.mjs +0 -16
- package/esm2022/nav/lib/nav.module.mjs +0 -23
- package/esm2022/navbar/acorex-components-navbar.mjs +0 -5
- package/esm2022/navbar/index.mjs +0 -3
- package/esm2022/navbar/lib/navbar.component.mjs +0 -23
- package/esm2022/navbar/lib/navbar.module.mjs +0 -18
- package/esm2022/notification/acorex-components-notification.mjs +0 -5
- package/esm2022/notification/index.mjs +0 -6
- package/esm2022/notification/lib/notification.class.mjs +0 -2
- package/esm2022/notification/lib/notification.component.mjs +0 -110
- package/esm2022/notification/lib/notification.config.mjs +0 -21
- package/esm2022/notification/lib/notification.module.mjs +0 -28
- package/esm2022/notification/lib/notification.service.mjs +0 -195
- package/esm2022/number-box/acorex-components-number-box.mjs +0 -5
- package/esm2022/number-box/index.mjs +0 -3
- package/esm2022/number-box/lib/number-box.component.mjs +0 -378
- package/esm2022/number-box/lib/number-box.module.mjs +0 -25
- package/esm2022/otp/acorex-components-otp.mjs +0 -5
- package/esm2022/otp/index.mjs +0 -4
- package/esm2022/otp/lib/otp.class.mjs +0 -4
- package/esm2022/otp/lib/otp.component.mjs +0 -195
- package/esm2022/otp/lib/otp.module.mjs +0 -22
- package/esm2022/page/acorex-components-page.mjs +0 -5
- package/esm2022/page/index.mjs +0 -4
- package/esm2022/page/lib/base-page.class.mjs +0 -62
- package/esm2022/page/lib/page.component.mjs +0 -58
- package/esm2022/page/lib/page.module.mjs +0 -18
- package/esm2022/paint/acorex-components-paint.mjs +0 -5
- package/esm2022/paint/index.mjs +0 -7
- package/esm2022/paint/lib/paint/paint-container/paint-container.component.mjs +0 -41
- package/esm2022/paint/lib/paint/paint-toolbar/paint-toolbar.component.mjs +0 -15
- package/esm2022/paint/lib/paint/paint-tools/paint-color-picker/paint-color-picker.component.mjs +0 -36
- package/esm2022/paint/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.mjs +0 -56
- package/esm2022/paint/lib/paint/paint-view/paint-view.component.mjs +0 -161
- package/esm2022/paint/lib/paint/paint.service.mjs +0 -16
- package/esm2022/paint/lib/paint.module.mjs +0 -62
- package/esm2022/password-box/acorex-components-password-box.mjs +0 -5
- package/esm2022/password-box/index.mjs +0 -4
- package/esm2022/password-box/lib/password-box.component.mjs +0 -93
- package/esm2022/password-box/lib/password-box.module.mjs +0 -42
- package/esm2022/password-box/lib/password-strength-validation/password-strength-validation.component.mjs +0 -71
- package/esm2022/phone-box/acorex-components-phone-box.mjs +0 -5
- package/esm2022/phone-box/index.mjs +0 -3
- package/esm2022/phone-box/lib/phone-box.component.mjs +0 -207
- package/esm2022/phone-box/lib/phone-box.module.mjs +0 -44
- package/esm2022/picker/acorex-components-picker.mjs +0 -5
- package/esm2022/picker/index.mjs +0 -4
- package/esm2022/picker/lib/picker-column.directive.mjs +0 -66
- package/esm2022/picker/lib/picker.component.mjs +0 -193
- package/esm2022/picker/lib/picker.module.mjs +0 -22
- package/esm2022/popover/acorex-components-popover.mjs +0 -5
- package/esm2022/popover/index.mjs +0 -3
- package/esm2022/popover/lib/popover.component.mjs +0 -525
- package/esm2022/popover/lib/popover.module.mjs +0 -19
- package/esm2022/popup/acorex-components-popup.mjs +0 -5
- package/esm2022/popup/index.mjs +0 -5
- package/esm2022/popup/lib/popup.component.mjs +0 -178
- package/esm2022/popup/lib/popup.interface.mjs +0 -2
- package/esm2022/popup/lib/popup.module.mjs +0 -45
- package/esm2022/popup/lib/popup.service.mjs +0 -69
- package/esm2022/progress-bar/acorex-components-progress-bar.mjs +0 -5
- package/esm2022/progress-bar/index.mjs +0 -3
- package/esm2022/progress-bar/lib/progress-bar.component.mjs +0 -86
- package/esm2022/progress-bar/lib/progress-bar.module.mjs +0 -19
- package/esm2022/qrcode/acorex-components-qrcode.mjs +0 -5
- package/esm2022/qrcode/index.mjs +0 -4
- package/esm2022/qrcode/lib/qrcode.class.mjs +0 -12
- package/esm2022/qrcode/lib/qrcode.component.mjs +0 -93
- package/esm2022/qrcode/lib/qrcode.module.mjs +0 -18
- package/esm2022/radio/acorex-components-radio.mjs +0 -5
- package/esm2022/radio/index.mjs +0 -3
- package/esm2022/radio/lib/radio.component.mjs +0 -57
- package/esm2022/radio/lib/radio.module.mjs +0 -22
- package/esm2022/range-slider/acorex-components-range-slider.mjs +0 -5
- package/esm2022/range-slider/index.mjs +0 -4
- package/esm2022/range-slider/lib/range-slider.class.mjs +0 -3
- package/esm2022/range-slider/lib/range-slider.component.mjs +0 -650
- package/esm2022/range-slider/lib/range-slider.module.mjs +0 -18
- package/esm2022/rate-picker/acorex-components-rate-picker.mjs +0 -5
- package/esm2022/rate-picker/index.mjs +0 -3
- package/esm2022/rate-picker/lib/calculatePercentage.mjs +0 -45
- package/esm2022/rate-picker/lib/rate-picker.component.mjs +0 -253
- package/esm2022/rate-picker/lib/rate-picker.module.mjs +0 -18
- package/esm2022/result/acorex-components-result.mjs +0 -5
- package/esm2022/result/index.mjs +0 -3
- package/esm2022/result/lib/result.component.mjs +0 -41
- package/esm2022/result/lib/result.module.mjs +0 -19
- package/esm2022/routing-progress/acorex-components-routing-progress.mjs +0 -5
- package/esm2022/routing-progress/index.mjs +0 -3
- package/esm2022/routing-progress/lib/routing-progress.component.mjs +0 -72
- package/esm2022/routing-progress/lib/routing-progress.module.mjs +0 -21
- package/esm2022/scheduler/acorex-components-scheduler.mjs +0 -5
- package/esm2022/scheduler/index.mjs +0 -5
- package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +0 -72
- package/esm2022/scheduler/lib/scheduler-week-view.component.mjs +0 -16
- package/esm2022/scheduler/lib/scheduler.component.mjs +0 -54
- package/esm2022/scheduler/lib/scheduler.module.mjs +0 -27
- package/esm2022/scss/acorex-components-scss.mjs +0 -5
- package/esm2022/scss/index.mjs +0 -2
- package/esm2022/scss/lib/scss.module.mjs +0 -15
- package/esm2022/search-box/acorex-components-search-box.mjs +0 -5
- package/esm2022/search-box/index.mjs +0 -3
- package/esm2022/search-box/lib/search-box.component.mjs +0 -90
- package/esm2022/search-box/lib/search-box.module.mjs +0 -46
- package/esm2022/select-box/acorex-components-select-box.mjs +0 -5
- package/esm2022/select-box/index.mjs +0 -3
- package/esm2022/select-box/lib/select-box.component.mjs +0 -368
- package/esm2022/select-box/lib/select-box.module.mjs +0 -69
- package/esm2022/selection-list/acorex-components-selection-list.mjs +0 -5
- package/esm2022/selection-list/index.mjs +0 -3
- package/esm2022/selection-list/lib/selection-list.component.mjs +0 -173
- package/esm2022/selection-list/lib/selection-list.module.mjs +0 -24
- package/esm2022/side-menu/acorex-components-side-menu.mjs +0 -5
- package/esm2022/side-menu/index.mjs +0 -4
- package/esm2022/side-menu/lib/side-menu-item/side-menu-item.component.mjs +0 -87
- package/esm2022/side-menu/lib/side-menu.component.mjs +0 -16
- package/esm2022/side-menu/lib/side-menu.module.mjs +0 -43
- package/esm2022/skeleton/acorex-components-skeleton.mjs +0 -5
- package/esm2022/skeleton/index.mjs +0 -3
- package/esm2022/skeleton/lib/skeleton.component.mjs +0 -34
- package/esm2022/skeleton/lib/skeleton.module.mjs +0 -18
- package/esm2022/slider/acorex-components-slider.mjs +0 -5
- package/esm2022/slider/index.mjs +0 -3
- package/esm2022/slider/lib/slider.component.mjs +0 -163
- package/esm2022/slider/lib/slider.module.mjs +0 -23
- package/esm2022/step-wizard/acorex-components-step-wizard.mjs +0 -5
- package/esm2022/step-wizard/index.mjs +0 -6
- package/esm2022/step-wizard/lib/step-wizard-item/step-wizard-item.component.mjs +0 -70
- package/esm2022/step-wizard/lib/step-wizard.class.mjs +0 -2
- package/esm2022/step-wizard/lib/step-wizard.component.mjs +0 -151
- package/esm2022/step-wizard/lib/step-wizard.directive.mjs +0 -28
- package/esm2022/step-wizard/lib/step-wizard.module.mjs +0 -25
- package/esm2022/switch/acorex-components-switch.mjs +0 -5
- package/esm2022/switch/index.mjs +0 -4
- package/esm2022/switch/lib/switch-content.component.mjs +0 -19
- package/esm2022/switch/lib/switch.component.mjs +0 -54
- package/esm2022/switch/lib/switch.module.mjs +0 -21
- package/esm2022/tabs/acorex-components-tabs.mjs +0 -5
- package/esm2022/tabs/index.mjs +0 -6
- package/esm2022/tabs/lib/tab-content.directive.mjs +0 -28
- package/esm2022/tabs/lib/tab-item.component.mjs +0 -149
- package/esm2022/tabs/lib/tabs.class.mjs +0 -4
- package/esm2022/tabs/lib/tabs.component.mjs +0 -183
- package/esm2022/tabs/lib/tabs.module.mjs +0 -25
- package/esm2022/tag/acorex-components-tag.mjs +0 -5
- package/esm2022/tag/index.mjs +0 -3
- package/esm2022/tag/lib/tag.component.mjs +0 -25
- package/esm2022/tag/lib/tag.module.mjs +0 -19
- package/esm2022/text-area/acorex-components-text-area.mjs +0 -5
- package/esm2022/text-area/index.mjs +0 -3
- package/esm2022/text-area/lib/text-area.component.mjs +0 -76
- package/esm2022/text-area/lib/text-area.module.mjs +0 -19
- package/esm2022/text-box/acorex-components-text-box.mjs +0 -5
- package/esm2022/text-box/index.mjs +0 -4
- package/esm2022/text-box/lib/mask-options.directive.mjs +0 -29
- package/esm2022/text-box/lib/text-box.component.mjs +0 -153
- package/esm2022/text-box/lib/text-box.module.mjs +0 -24
- package/esm2022/time-line/acorex-components-time-line.mjs +0 -5
- package/esm2022/time-line/index.mjs +0 -4
- package/esm2022/time-line/lib/time-line-item.component.mjs +0 -47
- package/esm2022/time-line/lib/time-line.component.mjs +0 -28
- package/esm2022/time-line/lib/time-line.module.mjs +0 -19
- package/esm2022/toast/acorex-components-toast.mjs +0 -5
- package/esm2022/toast/index.mjs +0 -6
- package/esm2022/toast/lib/toast.class.mjs +0 -2
- package/esm2022/toast/lib/toast.component.mjs +0 -86
- package/esm2022/toast/lib/toast.config.mjs +0 -26
- package/esm2022/toast/lib/toast.module.mjs +0 -27
- package/esm2022/toast/lib/toast.service.mjs +0 -235
- package/esm2022/tooltip/acorex-components-tooltip.mjs +0 -5
- package/esm2022/tooltip/index.mjs +0 -4
- package/esm2022/tooltip/lib/tooltip.component.mjs +0 -20
- package/esm2022/tooltip/lib/tooltip.directive.mjs +0 -80
- package/esm2022/tooltip/lib/tooltip.module.mjs +0 -22
- package/esm2022/tree-view/acorex-components-tree-view.mjs +0 -5
- package/esm2022/tree-view/index.mjs +0 -4
- package/esm2022/tree-view/lib/tree-view-item.component.mjs +0 -86
- package/esm2022/tree-view/lib/tree-view.class.mjs +0 -4
- package/esm2022/tree-view/lib/tree-view.component.mjs +0 -338
- package/esm2022/tree-view/lib/tree-view.component.module.mjs +0 -50
- package/esm2022/uploader/acorex-components-uploader.mjs +0 -5
- package/esm2022/uploader/index.mjs +0 -9
- package/esm2022/uploader/lib/uploader-browse-handle.directive.mjs +0 -27
- package/esm2022/uploader/lib/uploader-dialog-container/uploader-dialog-container.component.mjs +0 -55
- package/esm2022/uploader/lib/uploader-drop-zone/uploader-drop-zone.component.mjs +0 -27
- package/esm2022/uploader/lib/uploader-list/uploader-list.component.mjs +0 -24
- package/esm2022/uploader/lib/uploader-zone.directive.mjs +0 -121
- package/esm2022/uploader/lib/uploader.models.mjs +0 -100
- package/esm2022/uploader/lib/uploader.module.mjs +0 -76
- package/esm2022/uploader/lib/uploader.service.mjs +0 -125
- package/esm2022/wysiwyg/acorex-components-wysiwyg.mjs +0 -5
- package/esm2022/wysiwyg/index.mjs +0 -11
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +0 -137
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.mjs +0 -21
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.mjs +0 -56
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.mjs +0 -76
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.mjs +0 -129
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.mjs +0 -30
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.mjs +0 -43
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.mjs +0 -64
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.mjs +0 -49
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg.service.mjs +0 -17
- package/esm2022/wysiwyg/lib/wysiwyg.module.mjs +0 -75
@@ -1,650 +0,0 @@
|
|
1
|
-
import { AXValuableComponent, MXValueComponent, } from '@acorex/components/common';
|
2
|
-
import { ChangeDetectionStrategy, Component, HostBinding, HostListener, NgZone, ViewEncapsulation, computed, effect, forwardRef, inject, input, model, } from '@angular/core';
|
3
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
4
|
-
import { classes } from 'polytype';
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
import * as i1 from "@angular/common";
|
7
|
-
/**
|
8
|
-
* @description
|
9
|
-
* A range slider for selecting a range of values, supporting both single and dual modes.
|
10
|
-
* The slider offers step, snap, and tooltip configurations.
|
11
|
-
*
|
12
|
-
* @example
|
13
|
-
* <ax-range-slider [min]="0" [max]="100" [step]="1" [mode]="'dual'"></ax-range-slider>
|
14
|
-
*/
|
15
|
-
export class AXRangeSliderComponent extends classes((MXValueComponent)) {
|
16
|
-
constructor() {
|
17
|
-
super();
|
18
|
-
this.zone = inject(NgZone);
|
19
|
-
/**
|
20
|
-
* @description
|
21
|
-
* The orientation of the slider, either 'horizontal' or 'vertical'.
|
22
|
-
* @default 'horizontal'
|
23
|
-
*/
|
24
|
-
this.orientation = input('horizontal');
|
25
|
-
/**
|
26
|
-
* @description
|
27
|
-
* Color theme for the slider, affecting highlight, tooltip, and handler.
|
28
|
-
* @default 'primary'
|
29
|
-
*/
|
30
|
-
this.color = input('primary');
|
31
|
-
/**
|
32
|
-
* @description
|
33
|
-
* The value(s) of the slider. Can be a single number for single mode or an array of two numbers for dual mode.
|
34
|
-
*/
|
35
|
-
this.values = model(this.value);
|
36
|
-
/**
|
37
|
-
* @description
|
38
|
-
* The mode of the slider, either 'single' or 'dual'.
|
39
|
-
* @default 'single'
|
40
|
-
*/
|
41
|
-
this.mode = input('single');
|
42
|
-
/**
|
43
|
-
* @description
|
44
|
-
* The minimum value of the slider.
|
45
|
-
* @default 0
|
46
|
-
*/
|
47
|
-
this.min = input(0);
|
48
|
-
/**
|
49
|
-
* @description
|
50
|
-
* The maximum value of the slider.
|
51
|
-
* @default 100
|
52
|
-
*/
|
53
|
-
this.max = input(100);
|
54
|
-
/**
|
55
|
-
* @description
|
56
|
-
* The step increment for value changes.
|
57
|
-
* @default 1
|
58
|
-
*/
|
59
|
-
this.step = input(1);
|
60
|
-
/**
|
61
|
-
* @description
|
62
|
-
* The snapping increment for the slider.
|
63
|
-
* @default 1
|
64
|
-
*/
|
65
|
-
this.snap = input(1);
|
66
|
-
/**
|
67
|
-
* @description
|
68
|
-
* Mode for displaying tooltips, can be at the start, end, or both.
|
69
|
-
* @default 'end'
|
70
|
-
*/
|
71
|
-
this.tooltipMode = input('end');
|
72
|
-
/**
|
73
|
-
* @description
|
74
|
-
* Mode for snapping, can snap at the start, end, or both.
|
75
|
-
* @default 'start'
|
76
|
-
*/
|
77
|
-
this.snapMode = input('start');
|
78
|
-
/**
|
79
|
-
* @description
|
80
|
-
* Whether the slider should have steps.
|
81
|
-
* @default true
|
82
|
-
*/
|
83
|
-
this.hasStep = input(true);
|
84
|
-
/**
|
85
|
-
* @description
|
86
|
-
* Whether the slider should display snapping.
|
87
|
-
* @default false
|
88
|
-
*/
|
89
|
-
this.hasSnap = input(false);
|
90
|
-
/**
|
91
|
-
* @description
|
92
|
-
* Whether the slider should display labels for snapping points.
|
93
|
-
* @default Value derived from `hasSnap()`
|
94
|
-
*/
|
95
|
-
this.hasLable = input(this.hasSnap());
|
96
|
-
/**
|
97
|
-
* @description
|
98
|
-
* Whether the slider should display tooltips.
|
99
|
-
* @default false
|
100
|
-
*/
|
101
|
-
this.hasTooltip = input(false);
|
102
|
-
/**
|
103
|
-
* @ignore
|
104
|
-
*/
|
105
|
-
this.height = 0.25;
|
106
|
-
/**
|
107
|
-
* @ignore
|
108
|
-
*/
|
109
|
-
this.newHeight = 'var(--ax-range-slider-base-thickness)';
|
110
|
-
/**
|
111
|
-
* @ignore
|
112
|
-
*/
|
113
|
-
this.range = computed(() => this.max() - this.min());
|
114
|
-
/**
|
115
|
-
* @ignore
|
116
|
-
*/
|
117
|
-
this.isHorizontal = computed(() => this.orientation() === 'horizontal');
|
118
|
-
/**
|
119
|
-
* @ignore
|
120
|
-
*/
|
121
|
-
this.isDual = computed(() => this.mode() === 'dual');
|
122
|
-
/**
|
123
|
-
* @ignore
|
124
|
-
*/
|
125
|
-
this.correctMinMax = computed(() => this.max() - this.min() > 0);
|
126
|
-
/**
|
127
|
-
* @ignore
|
128
|
-
*/
|
129
|
-
this.calculateSnapBar = computed(() => {
|
130
|
-
if (this.hasSnap()) {
|
131
|
-
if (this.snap() <= 0) {
|
132
|
-
console.error('Wrong Snap!');
|
133
|
-
return null;
|
134
|
-
}
|
135
|
-
let array = [];
|
136
|
-
for (let i = this.min(); i < this.max(); i += this.snap()) {
|
137
|
-
array.push(i);
|
138
|
-
}
|
139
|
-
array = [...array, this.max()];
|
140
|
-
if (array[0] < 0) {
|
141
|
-
array = array.map((i) => i + -array[0]).sort((a, b) => a - b);
|
142
|
-
}
|
143
|
-
if (array[0] > 0) {
|
144
|
-
array = array.map((i) => i - array[0]).sort((a, b) => a - b);
|
145
|
-
}
|
146
|
-
return array;
|
147
|
-
}
|
148
|
-
return null;
|
149
|
-
});
|
150
|
-
/**
|
151
|
-
* @ignore
|
152
|
-
*/
|
153
|
-
this.calculatePos = computed(() => {
|
154
|
-
if (this.isDual() && this.values()) {
|
155
|
-
return [
|
156
|
-
((this.values()[0] - this.min()) / this.range()) * 100,
|
157
|
-
((this.values()[1] - this.min()) / this.range()) * 100,
|
158
|
-
];
|
159
|
-
}
|
160
|
-
else {
|
161
|
-
return ((this.values() - this.min()) / this.range()) * 100;
|
162
|
-
}
|
163
|
-
});
|
164
|
-
/**
|
165
|
-
* @ignore
|
166
|
-
*/
|
167
|
-
this.choosenHandler = undefined;
|
168
|
-
/**
|
169
|
-
* @ignore
|
170
|
-
*/
|
171
|
-
this.sliderElement = null;
|
172
|
-
/**
|
173
|
-
* @ignore
|
174
|
-
*/
|
175
|
-
this.AXRangeSliderHighlight = computed(() => this.isHorizontal()
|
176
|
-
? {
|
177
|
-
left: this.isDual() ? this.calculatePos()[0] + '%' : '0%',
|
178
|
-
width: this.isDual()
|
179
|
-
? this.calculatePos()[1] - this.calculatePos()[0] + '%'
|
180
|
-
: this.calculatePos() + '%',
|
181
|
-
}
|
182
|
-
: {
|
183
|
-
height: this.isDual()
|
184
|
-
? this.calculatePos()[1] - this.calculatePos()[0] + '%'
|
185
|
-
: this.calculatePos() + '%',
|
186
|
-
bottom: this.mode() === 'dual' ? this.calculatePos()[0] + '%' : '0%',
|
187
|
-
});
|
188
|
-
/**
|
189
|
-
* @ignore
|
190
|
-
*/
|
191
|
-
this.AXRangeSliderHandler1 = computed(() => this.isHorizontal()
|
192
|
-
? {
|
193
|
-
left: this.isDual() ? this.calculatePos()[0] + '%' : this.calculatePos() + '%',
|
194
|
-
}
|
195
|
-
: {
|
196
|
-
bottom: this.isDual()
|
197
|
-
? 'calc(' + this.calculatePos()[0] + '% - ' + 6 * this.height + 'rem)'
|
198
|
-
: 'calc(' + this.calculatePos() + '% - ' + 6 * this.height + 'rem)',
|
199
|
-
});
|
200
|
-
/**
|
201
|
-
* @ignore
|
202
|
-
*/
|
203
|
-
this.AXRangeSliderHandler2 = computed(() => this.isHorizontal()
|
204
|
-
? {
|
205
|
-
left: this.calculatePos()[1] + '%',
|
206
|
-
}
|
207
|
-
: {
|
208
|
-
bottom: 'calc(' + this.calculatePos()[1] + '% - ' + 6 * this.height + 'rem)',
|
209
|
-
});
|
210
|
-
/**
|
211
|
-
* @ignore
|
212
|
-
*/
|
213
|
-
this.AXRangeSliderStep = computed(() => {
|
214
|
-
if (this.isHorizontal()) {
|
215
|
-
switch (this.snapMode()) {
|
216
|
-
case 'both':
|
217
|
-
return { top: '0', height: 8 * this.height + 'rem' };
|
218
|
-
case 'start':
|
219
|
-
return { top: 4 * this.height + 'rem', height: 4 * this.height + 'rem' };
|
220
|
-
case 'end':
|
221
|
-
return { top: -2 * this.height + 'rem', height: 4 * this.height + 'rem' };
|
222
|
-
}
|
223
|
-
}
|
224
|
-
else {
|
225
|
-
switch (this.snapMode()) {
|
226
|
-
case 'both':
|
227
|
-
return { top: '0', width: 8 * this.height + 'rem' };
|
228
|
-
case 'start':
|
229
|
-
return { left: 4 * this.height + 'rem', width: 4 * this.height + 'rem' };
|
230
|
-
case 'end':
|
231
|
-
return { left: -2 * this.height + 'rem', width: 4 * this.height + 'rem' };
|
232
|
-
}
|
233
|
-
}
|
234
|
-
});
|
235
|
-
/**
|
236
|
-
* @ignore
|
237
|
-
*/
|
238
|
-
this.AXRangeLabel = computed(() => {
|
239
|
-
if (this.isHorizontal()) {
|
240
|
-
switch (this.snapMode()) {
|
241
|
-
case 'both':
|
242
|
-
return { top: 6 * this.height + 'rem' };
|
243
|
-
case 'start':
|
244
|
-
return { top: 4 * this.height + 'rem' };
|
245
|
-
case 'end':
|
246
|
-
return { top: -6 * this.height + 'rem' };
|
247
|
-
}
|
248
|
-
}
|
249
|
-
else {
|
250
|
-
switch (this.snapMode()) {
|
251
|
-
case 'both':
|
252
|
-
return { left: 8 * this.height + 'rem' };
|
253
|
-
case 'start':
|
254
|
-
return { left: 4 * this.height + 'rem' };
|
255
|
-
case 'end':
|
256
|
-
return { left: -8 * this.height + 'rem' };
|
257
|
-
}
|
258
|
-
}
|
259
|
-
});
|
260
|
-
effect(() => this.commitValue(this.values()));
|
261
|
-
effect(() => {
|
262
|
-
if (this.correctMinMax()) {
|
263
|
-
this.fixInitializeValues();
|
264
|
-
this.fixChangingMode();
|
265
|
-
}
|
266
|
-
else {
|
267
|
-
console.error(`Min = ${this.min()} And Max = ${this.max()} is not correct inputs.`);
|
268
|
-
}
|
269
|
-
}, { allowSignalWrites: true });
|
270
|
-
this.onValueChanged.subscribe((value) => {
|
271
|
-
if (value?.value != undefined && value?.value != null && this.values() !== value.value)
|
272
|
-
this.values.set(value.value);
|
273
|
-
});
|
274
|
-
}
|
275
|
-
/**
|
276
|
-
* @ignore
|
277
|
-
*/
|
278
|
-
ngOnInit() {
|
279
|
-
super.ngOnInit();
|
280
|
-
//(window as any).rangeSlider = this; //for debugging purpose only
|
281
|
-
if (!this.correctMinMax()) {
|
282
|
-
console.error(`Min = ${this.min()} And Max = ${this.max()} is not correct inputs.`);
|
283
|
-
}
|
284
|
-
else {
|
285
|
-
this.initializeValues();
|
286
|
-
}
|
287
|
-
}
|
288
|
-
/**
|
289
|
-
* @ignore
|
290
|
-
*/
|
291
|
-
onStartHandler(event, circle) {
|
292
|
-
this.zone.runOutsideAngular(() => {
|
293
|
-
if (this.disabled || this.readonly || !this.correctMinMax())
|
294
|
-
return;
|
295
|
-
event.preventDefault();
|
296
|
-
this.sliderElement = event.target.closest('.ax-range-slider');
|
297
|
-
if (this.sliderElement) {
|
298
|
-
this.choosenHandler = circle;
|
299
|
-
const moveListener = (moveEvent) => this.onMove(moveEvent, circle);
|
300
|
-
const endListener = () => this.onEnd(moveListener, endListener);
|
301
|
-
window.addEventListener('mousemove', moveListener);
|
302
|
-
window.addEventListener('mouseup', endListener);
|
303
|
-
window.addEventListener('touchmove', moveListener, { passive: true });
|
304
|
-
window.addEventListener('touchend', endListener);
|
305
|
-
}
|
306
|
-
});
|
307
|
-
}
|
308
|
-
/**
|
309
|
-
* @ignore
|
310
|
-
*/
|
311
|
-
onStartBar(event) {
|
312
|
-
let circle = 'first';
|
313
|
-
this.sliderElement = event.target.closest('.ax-range-slider');
|
314
|
-
this.zone.runOutsideAngular(() => {
|
315
|
-
if (!this.sliderElement || this.disabled || this.readonly)
|
316
|
-
return;
|
317
|
-
const calculatePercent = this.calculatePercentOnMove(event);
|
318
|
-
const exactValue = this.getValueFromPercent(calculatePercent);
|
319
|
-
let value = Number.parseFloat(exactValue.toFixed(2));
|
320
|
-
if (this.hasStep()) {
|
321
|
-
value = this.roundToStep(value);
|
322
|
-
}
|
323
|
-
if (this.isDual()) {
|
324
|
-
if (Math.abs(exactValue - this.values()[0]) > Math.abs(exactValue - this.values()[1])) {
|
325
|
-
this.values.set([this.values()[0], value]);
|
326
|
-
circle = 'second';
|
327
|
-
}
|
328
|
-
else {
|
329
|
-
if (this.values()[1] === this.min()) {
|
330
|
-
this.values.set([this.values()[0], value]);
|
331
|
-
circle = 'second';
|
332
|
-
}
|
333
|
-
else {
|
334
|
-
this.values.set([value, this.values()[1]]);
|
335
|
-
circle = 'first';
|
336
|
-
}
|
337
|
-
}
|
338
|
-
}
|
339
|
-
else {
|
340
|
-
this.values.set(value);
|
341
|
-
}
|
342
|
-
});
|
343
|
-
this.onStartHandler(event, circle);
|
344
|
-
}
|
345
|
-
/**
|
346
|
-
* @ignore
|
347
|
-
*/
|
348
|
-
onMove(event, circle) {
|
349
|
-
if (!this.sliderElement)
|
350
|
-
return;
|
351
|
-
const calculatePercent = this.calculatePercentOnMove(event);
|
352
|
-
let value = this.getValueFromPercent(calculatePercent);
|
353
|
-
value = Number.parseFloat(value.toFixed(2));
|
354
|
-
if (this.hasStep()) {
|
355
|
-
value = this.roundToStep(value);
|
356
|
-
}
|
357
|
-
if (this.isDual()) {
|
358
|
-
if (circle === 'first' && value <= this.values()[1]) {
|
359
|
-
if (this.checkValues(value, 'first', this.values()[1]) && this.values()[0] !== value) {
|
360
|
-
this.values.set([value, this.values()[1]]);
|
361
|
-
}
|
362
|
-
}
|
363
|
-
else if (circle === 'second' && value >= this.values()[0] && this.values()[1] !== value) {
|
364
|
-
if (this.checkValues(value, 'second', this.values()[0])) {
|
365
|
-
this.values.set([this.values()[0], value]);
|
366
|
-
}
|
367
|
-
}
|
368
|
-
}
|
369
|
-
else {
|
370
|
-
if (this.checkValue(value) && this.values() !== value) {
|
371
|
-
this.values.set(value);
|
372
|
-
}
|
373
|
-
}
|
374
|
-
}
|
375
|
-
/**
|
376
|
-
* @ignore
|
377
|
-
*/
|
378
|
-
onEnd(moveListener, endListener) {
|
379
|
-
window.removeEventListener('mousemove', moveListener);
|
380
|
-
window.removeEventListener('mouseup', endListener);
|
381
|
-
window.removeEventListener('touchmove', moveListener);
|
382
|
-
window.removeEventListener('touchend', endListener);
|
383
|
-
this.sliderElement = null;
|
384
|
-
}
|
385
|
-
/**
|
386
|
-
* @ignore
|
387
|
-
*/
|
388
|
-
initializeValues() {
|
389
|
-
this.fixInitializeUndefined();
|
390
|
-
this.fixInitializeValues();
|
391
|
-
this.fixInitializeStep();
|
392
|
-
}
|
393
|
-
/**
|
394
|
-
* @ignore
|
395
|
-
*/
|
396
|
-
fixInitializeUndefined() {
|
397
|
-
if (typeof this.values() === 'undefined') {
|
398
|
-
if (this.isDual()) {
|
399
|
-
this.values.set([this.min(), this.max()]);
|
400
|
-
}
|
401
|
-
else {
|
402
|
-
this.values.set(this.min());
|
403
|
-
}
|
404
|
-
}
|
405
|
-
}
|
406
|
-
/**
|
407
|
-
* @ignore
|
408
|
-
*/
|
409
|
-
fixInitializeValues() {
|
410
|
-
if (this.isDual() && this.values()[0] > this.values()[1]) {
|
411
|
-
this.values.set([this.values()[1], this.values()[0]]);
|
412
|
-
}
|
413
|
-
if (typeof this.values() === 'number' && !this.checkValue(this.values())) {
|
414
|
-
this.values.set(this.min());
|
415
|
-
}
|
416
|
-
else if (typeof this.values() !== 'number' &&
|
417
|
-
!this.checkValues(this.values()[0], 'first', this.values()[1])) {
|
418
|
-
this.values.set([this.min(), this.max()]);
|
419
|
-
}
|
420
|
-
}
|
421
|
-
/**
|
422
|
-
* @ignore
|
423
|
-
*/
|
424
|
-
fixInitializeStep() {
|
425
|
-
if (this.step() !== 1) {
|
426
|
-
if (this.isDual()) {
|
427
|
-
this.values.update((old) => [this.roundToStep(old[0]), this.roundToStep(old[1])]);
|
428
|
-
if (this.values()[0] === this.values()[1]) {
|
429
|
-
this.values.update((old) => [this.roundToStep(old[0]), this.roundToStep(old[1]) + this.step()]);
|
430
|
-
}
|
431
|
-
}
|
432
|
-
else {
|
433
|
-
this.values.update((old) => this.roundToStep(old));
|
434
|
-
}
|
435
|
-
}
|
436
|
-
}
|
437
|
-
/**
|
438
|
-
* @ignore
|
439
|
-
*/
|
440
|
-
fixChangingMode() {
|
441
|
-
if (typeof this.values() === 'number' && this.isDual()) {
|
442
|
-
this.values.set([this.min(), this.max()]);
|
443
|
-
}
|
444
|
-
else if (typeof this.values() !== 'number' && !this.isDual()) {
|
445
|
-
this.values.set(this.min());
|
446
|
-
}
|
447
|
-
}
|
448
|
-
/**
|
449
|
-
* @ignore
|
450
|
-
*/
|
451
|
-
calculatePercentOnMove(event) {
|
452
|
-
const sliderRect = this.sliderElement.getBoundingClientRect();
|
453
|
-
let percent;
|
454
|
-
if (this.isHorizontal()) {
|
455
|
-
const clientX = event instanceof MouseEvent ? event.clientX : event.touches[0].clientX;
|
456
|
-
const x = clientX - sliderRect.left;
|
457
|
-
percent = (x / sliderRect.width) * 100;
|
458
|
-
}
|
459
|
-
else {
|
460
|
-
const clientY = event instanceof MouseEvent ? event.clientY : event.touches[0].clientY;
|
461
|
-
const y = -(clientY - sliderRect.bottom); //reverce slider from bottom to top
|
462
|
-
percent = (y / sliderRect.height) * 100;
|
463
|
-
}
|
464
|
-
if (percent < 0) {
|
465
|
-
percent = 0;
|
466
|
-
}
|
467
|
-
else if (percent > 100) {
|
468
|
-
percent = 100;
|
469
|
-
}
|
470
|
-
return percent;
|
471
|
-
}
|
472
|
-
/**
|
473
|
-
* @ignore
|
474
|
-
*/
|
475
|
-
roundToStep(value) {
|
476
|
-
const lower = Math.max(this.min(), Math.floor((value - this.min()) / this.step()) * this.step() + this.min());
|
477
|
-
const upper = Math.min(this.max(), lower + this.step());
|
478
|
-
if (value - lower < upper - value) {
|
479
|
-
return lower;
|
480
|
-
}
|
481
|
-
else {
|
482
|
-
return upper;
|
483
|
-
}
|
484
|
-
}
|
485
|
-
/**
|
486
|
-
* @ignore
|
487
|
-
*/
|
488
|
-
checkValue(x) {
|
489
|
-
if (x >= this.min() && x <= this.max())
|
490
|
-
return true;
|
491
|
-
else
|
492
|
-
return false;
|
493
|
-
}
|
494
|
-
/**
|
495
|
-
* @ignore
|
496
|
-
*/
|
497
|
-
checkValues(value1, y, value2) {
|
498
|
-
if (value1 >= this.min() && value1 <= this.max()) {
|
499
|
-
if (y === 'first') {
|
500
|
-
if (value1 <= value2 && value2 <= this.max())
|
501
|
-
return true;
|
502
|
-
else
|
503
|
-
return false;
|
504
|
-
}
|
505
|
-
else {
|
506
|
-
if (value1 >= value2 && value2 >= this.min())
|
507
|
-
return true;
|
508
|
-
else
|
509
|
-
return false;
|
510
|
-
}
|
511
|
-
}
|
512
|
-
else
|
513
|
-
return false;
|
514
|
-
}
|
515
|
-
/**
|
516
|
-
* @ignore
|
517
|
-
*/
|
518
|
-
getValueFromPercent(value) {
|
519
|
-
return this.min() + (value * (this.max() - this.min())) / 100;
|
520
|
-
}
|
521
|
-
/**
|
522
|
-
* @ignore
|
523
|
-
*/
|
524
|
-
getPercantage(value) {
|
525
|
-
return this.range() !== 0 ? (value / this.range()) * 100 : 0;
|
526
|
-
}
|
527
|
-
/**
|
528
|
-
* Increase a step to value if slider in single mode
|
529
|
-
* and increase a step the second value if slider in dual mode
|
530
|
-
* @method increaseStep
|
531
|
-
*/
|
532
|
-
increaseStep() {
|
533
|
-
if (this.isDual()) {
|
534
|
-
const newValue = this.roundToStep(this.values()[1] + this.step());
|
535
|
-
this.values.set([this.values()[0], newValue]);
|
536
|
-
}
|
537
|
-
else {
|
538
|
-
const newValue = this.roundToStep(this.values() + this.step());
|
539
|
-
this.values.set(newValue);
|
540
|
-
}
|
541
|
-
}
|
542
|
-
/**
|
543
|
-
* Decrease a step to value if slider in single mode
|
544
|
-
* and decrease a step the second value if slider in dual mode
|
545
|
-
* @method decreaseStep
|
546
|
-
*/
|
547
|
-
decreaseStep() {
|
548
|
-
if (this.isDual()) {
|
549
|
-
const newValue = this.roundToStep(this.values()[0] - this.step());
|
550
|
-
this.values.set([newValue, this.values()[1]]);
|
551
|
-
}
|
552
|
-
else {
|
553
|
-
const newValue = this.roundToStep(this.values() - this.step());
|
554
|
-
this.values.set(newValue);
|
555
|
-
}
|
556
|
-
}
|
557
|
-
/**
|
558
|
-
* @ignore
|
559
|
-
*/
|
560
|
-
onWheel(event) {
|
561
|
-
this.zone.runOutsideAngular(() => {
|
562
|
-
event.preventDefault();
|
563
|
-
if (!this.choosenHandler || this.readonly || this.disabled || !this.correctMinMax())
|
564
|
-
return;
|
565
|
-
let newValue;
|
566
|
-
if (this.isDual()) {
|
567
|
-
if (event.deltaY < 0) {
|
568
|
-
if (this.choosenHandler === 'first') {
|
569
|
-
newValue = this.roundToStep(this.values()[0] + this.step());
|
570
|
-
if (this.checkValues(newValue, this.choosenHandler, this.values()[1]) &&
|
571
|
-
this.values()[0] !== newValue) {
|
572
|
-
this.values.update((old) => [this.roundToStep(old[0] + this.step()), old[1]]);
|
573
|
-
}
|
574
|
-
}
|
575
|
-
else {
|
576
|
-
newValue = this.roundToStep(this.values()[1] + this.step());
|
577
|
-
if (newValue <= this.max() && this.values()[1] !== newValue) {
|
578
|
-
this.values.update((old) => [old[0], this.roundToStep(old[1] + this.step())]);
|
579
|
-
}
|
580
|
-
}
|
581
|
-
}
|
582
|
-
else {
|
583
|
-
if (this.choosenHandler === 'first') {
|
584
|
-
newValue = this.roundToStep(this.values()[0] - this.step());
|
585
|
-
if (this.checkValues(newValue, this.choosenHandler, this.values()[1]) &&
|
586
|
-
this.values() !== newValue) {
|
587
|
-
this.values.update((old) => [this.roundToStep(old[0] - this.step()), old[1]]);
|
588
|
-
}
|
589
|
-
}
|
590
|
-
else {
|
591
|
-
newValue = this.roundToStep(this.values()[1] - this.step());
|
592
|
-
if (this.checkValues(newValue, this.choosenHandler, this.values()[0]) &&
|
593
|
-
this.values()[1] !== newValue) {
|
594
|
-
this.values.update((old) => [old[0], this.roundToStep(old[1] - this.step())]);
|
595
|
-
}
|
596
|
-
}
|
597
|
-
}
|
598
|
-
}
|
599
|
-
else {
|
600
|
-
if (event.deltaY < 0) {
|
601
|
-
if (this.checkValue(this.roundToStep(this.values() + this.step()))) {
|
602
|
-
this.values.update((old) => this.roundToStep(old + this.step()));
|
603
|
-
}
|
604
|
-
}
|
605
|
-
else {
|
606
|
-
if (this.checkValue(this.roundToStep(this.values() - this.step()))) {
|
607
|
-
this.values.update((old) => this.roundToStep(old - this.step()));
|
608
|
-
}
|
609
|
-
}
|
610
|
-
}
|
611
|
-
});
|
612
|
-
}
|
613
|
-
/**
|
614
|
-
* @ignore
|
615
|
-
*/
|
616
|
-
get __hostClass() {
|
617
|
-
return [
|
618
|
-
`ax-${this.color()}-solid`,
|
619
|
-
`${this.disabled ? 'ax-state-disabled' : ''}`,
|
620
|
-
`${this.readonly ? 'ax-state-readonly' : ''}`,
|
621
|
-
];
|
622
|
-
}
|
623
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXRangeSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
624
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXRangeSliderComponent, selector: "ax-range-slider", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, values: { classPropertyName: "values", publicName: "values", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, snap: { classPropertyName: "snap", publicName: "snap", isSignal: true, isRequired: false, transformFunction: null }, tooltipMode: { classPropertyName: "tooltipMode", publicName: "tooltipMode", isSignal: true, isRequired: false, transformFunction: null }, snapMode: { classPropertyName: "snapMode", publicName: "snapMode", isSignal: true, isRequired: false, transformFunction: null }, hasStep: { classPropertyName: "hasStep", publicName: "hasStep", isSignal: true, isRequired: false, transformFunction: null }, hasSnap: { classPropertyName: "hasSnap", publicName: "hasSnap", isSignal: true, isRequired: false, transformFunction: null }, hasLable: { classPropertyName: "hasLable", publicName: "hasLable", isSignal: true, isRequired: false, transformFunction: null }, hasTooltip: { classPropertyName: "hasTooltip", publicName: "hasTooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { values: "valuesChange" }, host: { listeners: { "wheel": "onWheel($event)" }, properties: { "class": "this.__hostClass" } }, providers: [
|
625
|
-
{ provide: AXValuableComponent, useExisting: AXRangeSliderComponent },
|
626
|
-
{
|
627
|
-
provide: NG_VALUE_ACCESSOR,
|
628
|
-
useExisting: forwardRef(() => AXRangeSliderComponent),
|
629
|
-
multi: true,
|
630
|
-
},
|
631
|
-
], usesInheritance: true, ngImport: i0, template: "@if (correctMinMax()) {\n <div class=\"ax-range-slider\" [class]=\"'ax-orientation-' + orientation()\">\n <div class=\"ax-range-slider-bar\" (mousedown)=\"onStartBar($event)\" (touchstart)=\"onStartBar($event)\"></div>\n <div\n class=\"ax-range-slider-highlight\"\n [ngStyle]=\"AXRangeSliderHighlight()\"\n (mousedown)=\"onStartBar($event)\"\n (touchstart)=\"onStartBar($event)\"\n ></div>\n\n <div\n class=\"ax-range-slider-handler\"\n [ngStyle]=\"AXRangeSliderHandler1()\"\n name=\"first\"\n (mousedown)=\"onStartBar($event)\"\n (touchstart)=\"onStartBar($event)\"\n >\n @if (hasTooltip()) {\n <div class=\"ax-range-slider-tooltip\">{{ isDual() ? values()[0] : values() }}</div>\n }\n </div>\n\n @if (isDual()) {\n <div\n class=\"ax-range-slider-handler\"\n [ngStyle]=\"AXRangeSliderHandler2()\"\n name=\"second\"\n (mousedown)=\"onStartBar($event)\"\n (touchstart)=\"onStartBar($event)\"\n >\n @if (hasTooltip()) {\n <div class=\"ax-range-slider-tooltip\">{{ values()[1] }}</div>\n }\n </div>\n }\n @if (hasSnap()) {\n <div class=\"ax-range-slider-step\" [ngStyle]=\"AXRangeSliderStep()\">\n @for (item of calculateSnapBar(); track $index) {\n <div\n class=\"ax-range-slider-steps\"\n [ngStyle]=\"\n isHorizontal() ? { left: getPercantage(item) + '%' } : { bottom: getPercantage(item) + '%' }\n \"\n >\n @if (hasLable()) {\n <div class=\"ax-range-slider-label\" [ngStyle]=\"AXRangeLabel()\">\n {{ item + min() }}\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: [":root{--ax-range-slider-base-thickness: .25rem}ax-range-slider{display:flex;align-items:center;justify-content:center;padding:1rem;font-size:small}ax-range-slider .ax-range-slider.ax-orientation-horizontal{position:relative;width:100%;height:calc(var(--ax-range-slider-base-thickness) * 4)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-bar{position:absolute;top:50%;left:0;width:100.1%;height:var(--ax-range-slider-base-thickness);transform:translateY(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-bg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-highlight{position:absolute;top:50%;height:calc(var(--ax-range-slider-base-thickness) * 3 / 2);transform:translateY(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-fg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler{position:absolute;top:50%;width:calc(var(--ax-range-slider-base-thickness) * 6);height:calc(var(--ax-range-slider-base-thickness) * 6);z-index:20;background-color:rgb(var(--ax-range-slider-fg));border-radius:50%;cursor:pointer;transform:translate(-45%,-50%);transition:box-shadow .1s linear}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler:hover{box-shadow:var(--tw-ring-inset) 0 0 0 calc(.6rem + var(--tw-ring-offset-width)) rgba(var(--ax-range-slider-fg),.25)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler:active{box-shadow:var(--tw-ring-inset) 0 0 0 calc(.6rem + var(--tw-ring-offset-width)) rgba(var(--ax-range-slider-fg),.25)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-tooltip{position:absolute;left:calc(var(--ax-range-slider-base-thickness) * 2.8);top:calc(var(--ax-range-slider-base-thickness) * -2);background-color:rgb(var(--ax-range-slider-fg));color:rgb(var(--ax-range-tooltip-fore));padding:5px 10px;border-radius:3px;white-space:nowrap;font-weight:600;transform:translate(-50%,-125%)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-tooltip:after{content:\"\";position:absolute;top:calc(var(--ax-range-slider-base-thickness) * 7);left:50%;transform:translate(-50%);border-width:.5rem;border-style:solid;border-color:rgb(var(--ax-range-slider-fg)) transparent transparent transparent}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step{position:absolute;display:flex;flex-direction:row;width:100%;z-index:10}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step .ax-range-slider-steps{position:absolute;border-left:calc(var(--ax-range-slider-base-thickness) / 2) solid rgb(var(--ax-color-border-default));height:50%}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step .ax-range-slider-steps .ax-range-slider-label{position:relative;text-align:center;top:calc(var(--ax-range-slider-base-thickness) * 2);left:-50%}ax-range-slider .ax-range-slider.ax-orientation-vertical{position:relative;width:calc(var(--ax-range-slider-base-thickness) * 4);height:100%}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-bar{position:absolute;top:0;left:50%;width:var(--ax-range-slider-base-thickness);height:100.1%;transform:translate(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-bg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-highlight{position:absolute;left:50%;width:calc(var(--ax-range-slider-base-thickness) * 3 / 2);transform:translate(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-fg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-handler{position:absolute;left:50%;width:calc(var(--ax-range-slider-base-thickness) * 6);height:calc(var(--ax-range-slider-base-thickness) * 6);z-index:20;background-color:rgb(var(--ax-range-slider-fg));border-radius:50%;cursor:pointer;transform:translate(-50%,-55%);transition:background-color .2s ease}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-handler:active{border:1px solid transparent;box-shadow:var(--tw-ring-inset) 0 0 0 calc(.5rem + var(--tw-ring-offset-width)) rgba(var(--ax-range-slider-fg),.25)}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-tooltip{position:absolute;top:calc(var(--ax-range-slider-base-thickness) * 8.5);left:calc(var(--ax-range-slider-base-thickness) * -8);background-color:rgb(var(--ax-range-slider-fg));color:rgb(var(--ax-range-tooltip-fore));padding:5px 10px;border-radius:3px;font-weight:600;white-space:nowrap;transform:translate(-50%,-125%)}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-tooltip:after{content:\"\";position:absolute;top:50%;left:97%;transform:translateY(-50%);border-width:.5rem;border-style:solid;border-color:transparent transparent transparent rgb(var(--ax-range-slider-fg))}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step{position:absolute;display:flex;flex-direction:column;height:100%;z-index:10}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step .ax-range-slider-steps{position:absolute;width:50%;border-top:calc(var(--ax-range-slider-base-thickness) / 2) solid rgb(var(--ax-color-border-default))}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step .ax-range-slider-steps .ax-range-slider-label{position:absolute;left:150%;top:calc(var(--ax-range-slider-base-thickness) * -3)}ax-range-slider.ax-primary-solid{--ax-range-slider-bg: var(--ax-color-primary-200);--ax-range-slider-fg: var(--ax-color-primary-500);--ax-range-tooltip-fore: var(--ax-color-primary-fore)}ax-range-slider.ax-secondary-solid{--ax-range-slider-bg: var(--ax-color-secondary-200);--ax-range-slider-fg: var(--ax-color-secondary-500);--ax-range-tooltip-fore: var(--ax-color-secondary-fore)}ax-range-slider.ax-success-solid{--ax-range-slider-bg: var(--ax-color-success-200);--ax-range-slider-fg: var(--ax-color-success-500);--ax-range-tooltip-fore: var(--ax-color-success-fore)}ax-range-slider.ax-warning-solid{--ax-range-slider-bg: var(--ax-color-warning-200);--ax-range-slider-fg: var(--ax-color-warning-500);--ax-range-tooltip-fore: var(--ax-color-warning-fore)}ax-range-slider.ax-danger-solid{--ax-range-slider-bg: var(--ax-color-danger-200);--ax-range-slider-fg: var(--ax-color-danger-500);--ax-range-tooltip-fore: var(--ax-color-danger-fore)}ax-range-slider.ax-info-solid{--ax-range-slider-bg: var(--ax-color-info-200);--ax-range-slider-fg: var(--ax-color-info-500);--ax-range-tooltip-fore: var(--ax-color-info-fore)}ax-range-slider.ax-state-disabled{opacity:.5;cursor:not-allowed}ax-range-slider.ax-state-readonly{opacity:.75}.ax-dark ax-range-slider.ax-primary-solid{--ax-range-slider-bg: var(--ax-color-primary-700);--ax-range-slider-fg: var(--ax-color-primary-200);--ax-range-tooltip-fore: var(--ax-color-primary-fore-tint)}.ax-dark ax-range-slider.ax-secondary-solid{--ax-range-slider-bg: var(--ax-color-secondary-700);--ax-range-slider-fg: var(--ax-color-secondary-200);--ax-range-tooltip-fore: var(--ax-color-secondary-fore-tint)}.ax-dark ax-range-slider.ax-success-solid{--ax-range-slider-bg: var(--ax-color-success-700);--ax-range-slider-fg: var(--ax-color-success-200);--ax-range-tooltip-fore: var(--ax-color-success-fore-tint)}.ax-dark ax-range-slider.ax-warning-solid{--ax-range-slider-bg: var(--ax-color-warning-700);--ax-range-slider-fg: var(--ax-color-warning-200);--ax-range-tooltip-fore: var(--ax-color-warning-fore-tint)}.ax-dark ax-range-slider.ax-danger-solid{--ax-range-slider-bg: var(--ax-color-danger-700);--ax-range-slider-fg: var(--ax-color-danger-200);--ax-range-tooltip-fore: var(--ax-color-danger-fore-tint)}.ax-dark ax-range-slider.ax-info-solid{--ax-range-slider-bg: var(--ax-color-info-700);--ax-range-slider-fg: var(--ax-color-info-200);--ax-range-tooltip-fore: var(--ax-color-info-fore-tint)}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
632
|
-
}
|
633
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXRangeSliderComponent, decorators: [{
|
634
|
-
type: Component,
|
635
|
-
args: [{ selector: 'ax-range-slider', inputs: ['disabled', 'readonly'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
636
|
-
{ provide: AXValuableComponent, useExisting: AXRangeSliderComponent },
|
637
|
-
{
|
638
|
-
provide: NG_VALUE_ACCESSOR,
|
639
|
-
useExisting: forwardRef(() => AXRangeSliderComponent),
|
640
|
-
multi: true,
|
641
|
-
},
|
642
|
-
], template: "@if (correctMinMax()) {\n <div class=\"ax-range-slider\" [class]=\"'ax-orientation-' + orientation()\">\n <div class=\"ax-range-slider-bar\" (mousedown)=\"onStartBar($event)\" (touchstart)=\"onStartBar($event)\"></div>\n <div\n class=\"ax-range-slider-highlight\"\n [ngStyle]=\"AXRangeSliderHighlight()\"\n (mousedown)=\"onStartBar($event)\"\n (touchstart)=\"onStartBar($event)\"\n ></div>\n\n <div\n class=\"ax-range-slider-handler\"\n [ngStyle]=\"AXRangeSliderHandler1()\"\n name=\"first\"\n (mousedown)=\"onStartBar($event)\"\n (touchstart)=\"onStartBar($event)\"\n >\n @if (hasTooltip()) {\n <div class=\"ax-range-slider-tooltip\">{{ isDual() ? values()[0] : values() }}</div>\n }\n </div>\n\n @if (isDual()) {\n <div\n class=\"ax-range-slider-handler\"\n [ngStyle]=\"AXRangeSliderHandler2()\"\n name=\"second\"\n (mousedown)=\"onStartBar($event)\"\n (touchstart)=\"onStartBar($event)\"\n >\n @if (hasTooltip()) {\n <div class=\"ax-range-slider-tooltip\">{{ values()[1] }}</div>\n }\n </div>\n }\n @if (hasSnap()) {\n <div class=\"ax-range-slider-step\" [ngStyle]=\"AXRangeSliderStep()\">\n @for (item of calculateSnapBar(); track $index) {\n <div\n class=\"ax-range-slider-steps\"\n [ngStyle]=\"\n isHorizontal() ? { left: getPercantage(item) + '%' } : { bottom: getPercantage(item) + '%' }\n \"\n >\n @if (hasLable()) {\n <div class=\"ax-range-slider-label\" [ngStyle]=\"AXRangeLabel()\">\n {{ item + min() }}\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: [":root{--ax-range-slider-base-thickness: .25rem}ax-range-slider{display:flex;align-items:center;justify-content:center;padding:1rem;font-size:small}ax-range-slider .ax-range-slider.ax-orientation-horizontal{position:relative;width:100%;height:calc(var(--ax-range-slider-base-thickness) * 4)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-bar{position:absolute;top:50%;left:0;width:100.1%;height:var(--ax-range-slider-base-thickness);transform:translateY(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-bg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-highlight{position:absolute;top:50%;height:calc(var(--ax-range-slider-base-thickness) * 3 / 2);transform:translateY(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-fg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler{position:absolute;top:50%;width:calc(var(--ax-range-slider-base-thickness) * 6);height:calc(var(--ax-range-slider-base-thickness) * 6);z-index:20;background-color:rgb(var(--ax-range-slider-fg));border-radius:50%;cursor:pointer;transform:translate(-45%,-50%);transition:box-shadow .1s linear}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler:hover{box-shadow:var(--tw-ring-inset) 0 0 0 calc(.6rem + var(--tw-ring-offset-width)) rgba(var(--ax-range-slider-fg),.25)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler:active{box-shadow:var(--tw-ring-inset) 0 0 0 calc(.6rem + var(--tw-ring-offset-width)) rgba(var(--ax-range-slider-fg),.25)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-tooltip{position:absolute;left:calc(var(--ax-range-slider-base-thickness) * 2.8);top:calc(var(--ax-range-slider-base-thickness) * -2);background-color:rgb(var(--ax-range-slider-fg));color:rgb(var(--ax-range-tooltip-fore));padding:5px 10px;border-radius:3px;white-space:nowrap;font-weight:600;transform:translate(-50%,-125%)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-tooltip:after{content:\"\";position:absolute;top:calc(var(--ax-range-slider-base-thickness) * 7);left:50%;transform:translate(-50%);border-width:.5rem;border-style:solid;border-color:rgb(var(--ax-range-slider-fg)) transparent transparent transparent}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step{position:absolute;display:flex;flex-direction:row;width:100%;z-index:10}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step .ax-range-slider-steps{position:absolute;border-left:calc(var(--ax-range-slider-base-thickness) / 2) solid rgb(var(--ax-color-border-default));height:50%}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step .ax-range-slider-steps .ax-range-slider-label{position:relative;text-align:center;top:calc(var(--ax-range-slider-base-thickness) * 2);left:-50%}ax-range-slider .ax-range-slider.ax-orientation-vertical{position:relative;width:calc(var(--ax-range-slider-base-thickness) * 4);height:100%}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-bar{position:absolute;top:0;left:50%;width:var(--ax-range-slider-base-thickness);height:100.1%;transform:translate(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-bg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-highlight{position:absolute;left:50%;width:calc(var(--ax-range-slider-base-thickness) * 3 / 2);transform:translate(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-fg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-handler{position:absolute;left:50%;width:calc(var(--ax-range-slider-base-thickness) * 6);height:calc(var(--ax-range-slider-base-thickness) * 6);z-index:20;background-color:rgb(var(--ax-range-slider-fg));border-radius:50%;cursor:pointer;transform:translate(-50%,-55%);transition:background-color .2s ease}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-handler:active{border:1px solid transparent;box-shadow:var(--tw-ring-inset) 0 0 0 calc(.5rem + var(--tw-ring-offset-width)) rgba(var(--ax-range-slider-fg),.25)}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-tooltip{position:absolute;top:calc(var(--ax-range-slider-base-thickness) * 8.5);left:calc(var(--ax-range-slider-base-thickness) * -8);background-color:rgb(var(--ax-range-slider-fg));color:rgb(var(--ax-range-tooltip-fore));padding:5px 10px;border-radius:3px;font-weight:600;white-space:nowrap;transform:translate(-50%,-125%)}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-tooltip:after{content:\"\";position:absolute;top:50%;left:97%;transform:translateY(-50%);border-width:.5rem;border-style:solid;border-color:transparent transparent transparent rgb(var(--ax-range-slider-fg))}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step{position:absolute;display:flex;flex-direction:column;height:100%;z-index:10}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step .ax-range-slider-steps{position:absolute;width:50%;border-top:calc(var(--ax-range-slider-base-thickness) / 2) solid rgb(var(--ax-color-border-default))}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step .ax-range-slider-steps .ax-range-slider-label{position:absolute;left:150%;top:calc(var(--ax-range-slider-base-thickness) * -3)}ax-range-slider.ax-primary-solid{--ax-range-slider-bg: var(--ax-color-primary-200);--ax-range-slider-fg: var(--ax-color-primary-500);--ax-range-tooltip-fore: var(--ax-color-primary-fore)}ax-range-slider.ax-secondary-solid{--ax-range-slider-bg: var(--ax-color-secondary-200);--ax-range-slider-fg: var(--ax-color-secondary-500);--ax-range-tooltip-fore: var(--ax-color-secondary-fore)}ax-range-slider.ax-success-solid{--ax-range-slider-bg: var(--ax-color-success-200);--ax-range-slider-fg: var(--ax-color-success-500);--ax-range-tooltip-fore: var(--ax-color-success-fore)}ax-range-slider.ax-warning-solid{--ax-range-slider-bg: var(--ax-color-warning-200);--ax-range-slider-fg: var(--ax-color-warning-500);--ax-range-tooltip-fore: var(--ax-color-warning-fore)}ax-range-slider.ax-danger-solid{--ax-range-slider-bg: var(--ax-color-danger-200);--ax-range-slider-fg: var(--ax-color-danger-500);--ax-range-tooltip-fore: var(--ax-color-danger-fore)}ax-range-slider.ax-info-solid{--ax-range-slider-bg: var(--ax-color-info-200);--ax-range-slider-fg: var(--ax-color-info-500);--ax-range-tooltip-fore: var(--ax-color-info-fore)}ax-range-slider.ax-state-disabled{opacity:.5;cursor:not-allowed}ax-range-slider.ax-state-readonly{opacity:.75}.ax-dark ax-range-slider.ax-primary-solid{--ax-range-slider-bg: var(--ax-color-primary-700);--ax-range-slider-fg: var(--ax-color-primary-200);--ax-range-tooltip-fore: var(--ax-color-primary-fore-tint)}.ax-dark ax-range-slider.ax-secondary-solid{--ax-range-slider-bg: var(--ax-color-secondary-700);--ax-range-slider-fg: var(--ax-color-secondary-200);--ax-range-tooltip-fore: var(--ax-color-secondary-fore-tint)}.ax-dark ax-range-slider.ax-success-solid{--ax-range-slider-bg: var(--ax-color-success-700);--ax-range-slider-fg: var(--ax-color-success-200);--ax-range-tooltip-fore: var(--ax-color-success-fore-tint)}.ax-dark ax-range-slider.ax-warning-solid{--ax-range-slider-bg: var(--ax-color-warning-700);--ax-range-slider-fg: var(--ax-color-warning-200);--ax-range-tooltip-fore: var(--ax-color-warning-fore-tint)}.ax-dark ax-range-slider.ax-danger-solid{--ax-range-slider-bg: var(--ax-color-danger-700);--ax-range-slider-fg: var(--ax-color-danger-200);--ax-range-tooltip-fore: var(--ax-color-danger-fore-tint)}.ax-dark ax-range-slider.ax-info-solid{--ax-range-slider-bg: var(--ax-color-info-700);--ax-range-slider-fg: var(--ax-color-info-200);--ax-range-tooltip-fore: var(--ax-color-info-fore-tint)}\n"] }]
|
643
|
-
}], ctorParameters: () => [], propDecorators: { onWheel: [{
|
644
|
-
type: HostListener,
|
645
|
-
args: ['wheel', ['$event']]
|
646
|
-
}], __hostClass: [{
|
647
|
-
type: HostBinding,
|
648
|
-
args: ['class']
|
649
|
-
}] } });
|
650
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9yYW5nZS1zbGlkZXIvc3JjL2xpYi9yYW5nZS1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3JhbmdlLXNsaWRlci9zcmMvbGliL3JhbmdlLXNsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsbUJBQW1CLEVBQ25CLGdCQUFnQixHQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFRbkM7Ozs7Ozs7R0FPRztBQWlCSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsT0FBTyxDQUFDLENBQUEsZ0JBQW9DLENBQUEsQ0FBQztJQXNRdkY7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQXRRRixTQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlCOzs7O1dBSUc7UUFDSCxnQkFBVyxHQUFHLEtBQUssQ0FBZ0IsWUFBWSxDQUFDLENBQUM7UUFFakQ7Ozs7V0FJRztRQUNILFVBQUssR0FBRyxLQUFLLENBQXFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdEOzs7V0FHRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQXFCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQzs7OztX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SixDQUFDOzhHQWxtQlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsZ3BFQVR0QjtZQUNULEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRTtZQUNyRTtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUNyRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsaURDbkRILHF3REF1REE7OzJGREZhLHNCQUFzQjtrQkFoQmxDLFNBQVM7K0JBQ0UsaUJBQWlCLFVBR25CLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxpQkFDakIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHdCQUF3QixFQUFFO3dCQUNyRTs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0RBcWlCRCxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTBEckIsV0FBVztzQkFEdEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhPcmllbnRhdGlvbixcbiAgQVhTdHlsZUNvbG9yVHlwZSxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgTVhWYWx1ZUNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBOZ1pvbmUsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQge1xuICBBWFJhbmdlU2xpZGVyTW9kZSxcbiAgQVhSYW5nZVNsaWRlclNuYXBNb2RlLFxuICBBWFJhbmdlU2xpZGVyVG9vbHRpcE1vZGUsXG4gIEFYUmFuZ2VTbGlkZXJWYWx1ZSxcbn0gZnJvbSAnLi9yYW5nZS1zbGlkZXIuY2xhc3MnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogQSByYW5nZSBzbGlkZXIgZm9yIHNlbGVjdGluZyBhIHJhbmdlIG9mIHZhbHVlcywgc3VwcG9ydGluZyBib3RoIHNpbmdsZSBhbmQgZHVhbCBtb2Rlcy5cbiAqIFRoZSBzbGlkZXIgb2ZmZXJzIHN0ZXAsIHNuYXAsIGFuZCB0b29sdGlwIGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8YXgtcmFuZ2Utc2xpZGVyIFttaW5dPVwiMFwiIFttYXhdPVwiMTAwXCIgW3N0ZXBdPVwiMVwiIFttb2RlXT1cIidkdWFsJ1wiPjwvYXgtcmFuZ2Utc2xpZGVyPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1yYW5nZS1zbGlkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdyZWFkb25seSddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhSYW5nZVNsaWRlckNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhSYW5nZVNsaWRlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFJhbmdlU2xpZGVyQ29tcG9uZW50IGV4dGVuZHMgY2xhc3NlcyhNWFZhbHVlQ29tcG9uZW50PEFYUmFuZ2VTbGlkZXJWYWx1ZT4pIHtcbiAgcHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgb3JpZW50YXRpb24gb2YgdGhlIHNsaWRlciwgZWl0aGVyICdob3Jpem9udGFsJyBvciAndmVydGljYWwnLlxuICAgKiBAZGVmYXVsdCAnaG9yaXpvbnRhbCdcbiAgICovXG4gIG9yaWVudGF0aW9uID0gaW5wdXQ8QVhPcmllbnRhdGlvbj4oJ2hvcml6b250YWwnKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENvbG9yIHRoZW1lIGZvciB0aGUgc2xpZGVyLCBhZmZlY3RpbmcgaGlnaGxpZ2h0LCB0b29sdGlwLCBhbmQgaGFuZGxlci5cbiAgICogQGRlZmF1bHQgJ3ByaW1hcnknXG4gICAqL1xuICBjb2xvciA9IGlucHV0PEV4Y2x1ZGU8QVhTdHlsZUNvbG9yVHlwZSwgJ2dob3N0Jz4+KCdwcmltYXJ5Jyk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgdmFsdWUocykgb2YgdGhlIHNsaWRlci4gQ2FuIGJlIGEgc2luZ2xlIG51bWJlciBmb3Igc2luZ2xlIG1vZGUgb3IgYW4gYXJyYXkgb2YgdHdvIG51bWJlcnMgZm9yIGR1YWwgbW9kZS5cbiAgICovXG4gIHZhbHVlcyA9IG1vZGVsPEFYUmFuZ2VTbGlkZXJWYWx1ZT4odGhpcy52YWx1ZSk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgbW9kZSBvZiB0aGUgc2xpZGVyLCBlaXRoZXIgJ3NpbmdsZScgb3IgJ2R1YWwnLlxuICAgKiBAZGVmYXVsdCAnc2luZ2xlJ1xuICAgKi9cbiAgbW9kZSA9IGlucHV0PEFYUmFuZ2VTbGlkZXJNb2RlPignc2luZ2xlJyk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgc2xpZGVyLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBtaW4gPSBpbnB1dDxudW1iZXI+KDApO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIG1heGltdW0gdmFsdWUgb2YgdGhlIHNsaWRlci5cbiAgICogQGRlZmF1bHQgMTAwXG4gICAqL1xuICBtYXggPSBpbnB1dDxudW1iZXI+KDEwMCk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgc3RlcCBpbmNyZW1lbnQgZm9yIHZhbHVlIGNoYW5nZXMuXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHN0ZXAgPSBpbnB1dDxudW1iZXI+KDEpO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIHNuYXBwaW5nIGluY3JlbWVudCBmb3IgdGhlIHNsaWRlci5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgc25hcCA9IGlucHV0PG51bWJlcj4oMSk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBNb2RlIGZvciBkaXNwbGF5aW5nIHRvb2x0aXBzLCBjYW4gYmUgYXQgdGhlIHN0YXJ0LCBlbmQsIG9yIGJvdGguXG4gICAqIEBkZWZhdWx0ICdlbmQnXG4gICAqL1xuICB0b29sdGlwTW9kZSA9IGlucHV0PEFYUmFuZ2VTbGlkZXJUb29sdGlwTW9kZT4oJ2VuZCcpO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTW9kZSBmb3Igc25hcHBpbmcsIGNhbiBzbmFwIGF0IHRoZSBzdGFydCwgZW5kLCBvciBib3RoLlxuICAgKiBAZGVmYXVsdCAnc3RhcnQnXG4gICAqL1xuICBzbmFwTW9kZSA9IGlucHV0PEFYUmFuZ2VTbGlkZXJTbmFwTW9kZT4oJ3N0YXJ0Jyk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGV0aGVyIHRoZSBzbGlkZXIgc2hvdWxkIGhhdmUgc3RlcHMuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGhhc1N0ZXAgPSBpbnB1dCh0cnVlKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdoZXRoZXIgdGhlIHNsaWRlciBzaG91bGQgZGlzcGxheSBzbmFwcGluZy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGhhc1NuYXAgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGV0aGVyIHRoZSBzbGlkZXIgc2hvdWxkIGRpc3BsYXkgbGFiZWxzIGZvciBzbmFwcGluZyBwb2ludHMuXG4gICAqIEBkZWZhdWx0IFZhbHVlIGRlcml2ZWQgZnJvbSBgaGFzU25hcCgpYFxuICAgKi9cbiAgaGFzTGFibGUgPSBpbnB1dCh0aGlzLmhhc1NuYXAoKSk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGV0aGVyIHRoZSBzbGlkZXIgc2hvdWxkIGRpc3BsYXkgdG9vbHRpcHMuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBoYXNUb29sdGlwID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBoZWlnaHQgPSAwLjI1O1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbmV3SGVpZ2h0ID0gJ3ZhcigtLWF4LXJhbmdlLXNsaWRlci1iYXNlLXRoaWNrbmVzcyknO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcmFuZ2UgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1heCgpIC0gdGhpcy5taW4oKSk7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBpc0hvcml6b250YWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9yaWVudGF0aW9uKCkgPT09ICdob3Jpem9udGFsJyk7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBpc0R1YWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1vZGUoKSA9PT0gJ2R1YWwnKTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvcnJlY3RNaW5NYXggPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1heCgpIC0gdGhpcy5taW4oKSA+IDApO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cblxuICBwcm90ZWN0ZWQgY2FsY3VsYXRlU25hcEJhciA9IGNvbXB1dGVkPG51bWJlcltdIHwgbnVsbD4oKCkgPT4ge1xuICAgIGlmICh0aGlzLmhhc1NuYXAoKSkge1xuICAgICAgaWYgKHRoaXMuc25hcCgpIDw9IDApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignV3JvbmcgU25hcCEnKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBsZXQgYXJyYXkgPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLm1pbigpOyBpIDwgdGhpcy5tYXgoKTsgaSArPSB0aGlzLnNuYXAoKSkge1xuICAgICAgICBhcnJheS5wdXNoKGkpO1xuICAgICAgfVxuICAgICAgYXJyYXkgPSBbLi4uYXJyYXksIHRoaXMubWF4KCldO1xuICAgICAgaWYgKGFycmF5WzBdIDwgMCkge1xuICAgICAgICBhcnJheSA9IGFycmF5Lm1hcCgoaSkgPT4gaSArIC1hcnJheVswXSkuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgICAgfVxuICAgICAgaWYgKGFycmF5WzBdID4gMCkge1xuICAgICAgICBhcnJheSA9IGFycmF5Lm1hcCgoaSkgPT4gaSAtIGFycmF5WzBdKS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9KTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBjYWxjdWxhdGVQb3MgPSBjb21wdXRlZDxBWFJhbmdlU2xpZGVyVmFsdWU+KCgpID0+IHtcbiAgICBpZiAodGhpcy5pc0R1YWwoKSAmJiB0aGlzLnZhbHVlcygpKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAoKHRoaXMudmFsdWVzKClbMF0gLSB0aGlzLm1pbigpKSAvIHRoaXMucmFuZ2UoKSkgKiAxMDAsXG4gICAgICAgICgodGhpcy52YWx1ZXMoKVsxXSAtIHRoaXMubWluKCkpIC8gdGhpcy5yYW5nZSgpKSAqIDEwMCxcbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoKCh0aGlzLnZhbHVlcygpIGFzIG51bWJlcikgLSB0aGlzLm1pbigpKSAvIHRoaXMucmFuZ2UoKSkgKiAxMDA7XG4gICAgfVxuICB9KTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgY2hvb3NlbkhhbmRsZXI6ICdmaXJzdCcgfCAnc2Vjb25kJyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgc2xpZGVyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBBWFJhbmdlU2xpZGVySGlnaGxpZ2h0ID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmlzSG9yaXpvbnRhbCgpXG4gICAgICA/IHtcbiAgICAgICAgICBsZWZ0OiB0aGlzLmlzRHVhbCgpID8gdGhpcy5jYWxjdWxhdGVQb3MoKVswXSArICclJyA6ICcwJScsXG4gICAgICAgICAgd2lkdGg6IHRoaXMuaXNEdWFsKClcbiAgICAgICAgICAgID8gdGhpcy5jYWxjdWxhdGVQb3MoKVsxXSAtIHRoaXMuY2FsY3VsYXRlUG9zKClbMF0gKyAnJSdcbiAgICAgICAgICAgIDogdGhpcy5jYWxjdWxhdGVQb3MoKSArICclJyxcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgaGVpZ2h0OiB0aGlzLmlzRHVhbCgpXG4gICAgICAgICAgICA/IHRoaXMuY2FsY3VsYXRlUG9zKClbMV0gLSB0aGlzLmNhbGN1bGF0ZVBvcygpWzBdICsgJyUnXG4gICAgICAgICAgICA6IHRoaXMuY2FsY3VsYXRlUG9zKCkgKyAnJScsXG4gICAgICAgICAgYm90dG9tOiB0aGlzLm1vZGUoKSA9PT0gJ2R1YWwnID8gdGhpcy5jYWxjdWxhdGVQb3MoKVswXSArICclJyA6ICcwJScsXG4gICAgICAgIH0sXG4gICk7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgQVhSYW5nZVNsaWRlckhhbmRsZXIxID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmlzSG9yaXpvbnRhbCgpXG4gICAgICA/IHtcbiAgICAgICAgICBsZWZ0OiB0aGlzLmlzRHVhbCgpID8gdGhpcy5jYWxjdWxhdGVQb3MoKVswXSArICclJyA6ICh0aGlzLmNhbGN1bGF0ZVBvcygpIGFzIG51bWJlcikgKyAnJScsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGJvdHRvbTogdGhpcy5pc0R1YWwoKVxuICAgICAgICAgICAgPyAnY2FsYygnICsgdGhpcy5jYWxjdWxhdGVQb3MoKVswXSArICclIC0gJyArIDYgKiB0aGlzLmhlaWdodCArICdyZW0pJ1xuICAgICAgICAgICAgOiAnY2FsYygnICsgdGhpcy5jYWxjdWxhdGVQb3MoKSArICclIC0gJyArIDYgKiB0aGlzLmhlaWdodCArICdyZW0pJyxcbiAgICAgICAgfSxcbiAgKTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBBWFJhbmdlU2xpZGVySGFuZGxlcjIgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuaXNIb3Jpem9udGFsKClcbiAgICAgID8ge1xuICAgICAgICAgIGxlZnQ6IHRoaXMuY2FsY3VsYXRlUG9zKClbMV0gKyAnJScsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGJvdHRvbTogJ2NhbGMoJyArIHRoaXMuY2FsY3VsYXRlUG9zKClbMV0gKyAnJSAtICcgKyA2ICogdGhpcy5oZWlnaHQgKyAncmVtKScsXG4gICAgICAgIH0sXG4gICk7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgQVhSYW5nZVNsaWRlclN0ZXAgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuaXNIb3Jpem9udGFsKCkpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5zbmFwTW9kZSgpKSB7XG4gICAgICAgIGNhc2UgJ2JvdGgnOlxuICAgICAgICAgIHJldHVybiB7IHRvcDogJzAnLCBoZWlnaHQ6IDggKiB0aGlzLmhlaWdodCArICdyZW0nIH07XG4gICAgICAgIGNhc2UgJ3N0YXJ0JzpcbiAgICAgICAgICByZXR1cm4geyB0b3A6IDQgKiB0aGlzLmhlaWdodCArICdyZW0nLCBoZWlnaHQ6IDQgKiB0aGlzLmhlaWdodCArICdyZW0nIH07XG4gICAgICAgIGNhc2UgJ2VuZCc6XG4gICAgICAgICAgcmV0dXJuIHsgdG9wOiAtMiAqIHRoaXMuaGVpZ2h0ICsgJ3JlbScsIGhlaWdodDogNCAqIHRoaXMuaGVpZ2h0ICsgJ3JlbScgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoICh0aGlzLnNuYXBNb2RlKCkpIHtcbiAgICAgICAgY2FzZSAnYm90aCc6XG4gICAgICAgICAgcmV0dXJuIHsgdG9wOiAnMCcsIHdpZHRoOiA4ICogdGhpcy5oZWlnaHQgKyAncmVtJyB9O1xuICAgICAgICBjYXNlICdzdGFydCc6XG4gICAgICAgICAgcmV0dXJuIHsgbGVmdDogNCAqIHRoaXMuaGVpZ2h0ICsgJ3JlbScsIHdpZHRoOiA0ICogdGhpcy5oZWlnaHQgKyAncmVtJyB9O1xuICAgICAgICBjYXNlICdlbmQnOlxuICAgICAgICAgIHJldHVybiB7IGxlZnQ6IC0yICogdGhpcy5oZWlnaHQgKyAncmVtJywgd2lkdGg6IDQgKiB0aGlzLmhlaWdodCArICdyZW0nIH07XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBBWFJhbmdlTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuaXNIb3Jpem9udGFsKCkpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5zbmFwTW9kZSgpKSB7XG4gICAgICAgIGNhc2UgJ2JvdGgnOlxuICAgICAgICAgIHJldHVybiB7IHRvcDogNiAqIHRoaXMuaGVpZ2h0ICsgJ3JlbScgfTtcbiAgICAgICAgY2FzZSAnc3RhcnQnOlxuICAgICAgICAgIHJldHVybiB7IHRvcDogNCAqIHRoaXMuaGVpZ2h0ICsgJ3JlbScgfTtcbiAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICByZXR1cm4geyB0b3A6IC02ICogdGhpcy5oZWlnaHQgKyAncmVtJyB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuc25hcE1vZGUoKSkge1xuICAgICAgICBjYXNlICdib3RoJzpcbiAgICAgICAgICByZXR1cm4geyBsZWZ0OiA4ICogdGhpcy5oZWlnaHQgKyAncmVtJyB9O1xuICAgICAgICBjYXNlICdzdGFydCc6XG4gICAgICAgICAgcmV0dXJuIHsgbGVmdDogNCAqIHRoaXMuaGVpZ2h0ICsgJ3JlbScgfTtcbiAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICByZXR1cm4geyBsZWZ0OiAtOCAqIHRoaXMuaGVpZ2h0ICsgJ3JlbScgfTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGVmZmVjdCgoKSA9PiB0aGlzLmNvbW1pdFZhbHVlKHRoaXMudmFsdWVzKCkpKTtcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvcnJlY3RNaW5NYXgoKSkge1xuICAgICAgICAgIHRoaXMuZml4SW5pdGlhbGl6ZVZhbHVlcygpO1xuICAgICAgICAgIHRoaXMuZml4Q2hhbmdpbmdNb2RlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgTWluID0gJHt0aGlzLm1pbigpfSBBbmQgTWF4ID0gJHt0aGlzLm1heCgpfSBpcyBub3QgY29ycmVjdCBpbnB1dHMuYCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIGlmICh2YWx1ZT8udmFsdWUgIT0gdW5kZWZpbmVkICYmIHZhbHVlPy52YWx1ZSAhPSBudWxsICYmIHRoaXMudmFsdWVzKCkgIT09IHZhbHVlLnZhbHVlKVxuICAgICAgICB0aGlzLnZhbHVlcy5zZXQodmFsdWUudmFsdWUpO1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAvLyh3aW5kb3cgYXMgYW55KS5yYW5nZVNsaWRlciA9IHRoaXM7IC8vZm9yIGRlYnVnZ2luZyBwdXJwb3NlIG9ubHlcbiAgICBpZiAoIXRoaXMuY29ycmVjdE1pbk1heCgpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNaW4gPSAke3RoaXMubWluKCl9IEFuZCBNYXggPSAke3RoaXMubWF4KCl9IGlzIG5vdCBjb3JyZWN0IGlucHV0cy5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsaXplVmFsdWVzKCk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgb25TdGFydEhhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBjaXJjbGU6ICdmaXJzdCcgfCAnc2Vjb25kJyk6IHZvaWQge1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5IHx8ICF0aGlzLmNvcnJlY3RNaW5NYXgoKSkgcmV0dXJuO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2xpZGVyRWxlbWVudCA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5heC1yYW5nZS1zbGlkZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmICh0aGlzLnNsaWRlckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5jaG9vc2VuSGFuZGxlciA9IGNpcmNsZTtcbiAgICAgICAgY29uc3QgbW92ZUxpc3RlbmVyID0gKG1vdmVFdmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpID0+IHRoaXMub25Nb3ZlKG1vdmVFdmVudCwgY2lyY2xlKTtcbiAgICAgICAgY29uc3QgZW5kTGlzdGVuZXIgPSAoKSA9PiB0aGlzLm9uRW5kKG1vdmVMaXN0ZW5lciwgZW5kTGlzdGVuZXIpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgbW92ZUxpc3RlbmVyKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBlbmRMaXN0ZW5lcik7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBtb3ZlTGlzdGVuZXIsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZW5kTGlzdGVuZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgb25TdGFydEJhcihldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpIHtcbiAgICBsZXQgY2lyY2xlOiAnZmlyc3QnIHwgJ3NlY29uZCcgPSAnZmlyc3QnO1xuICAgIHRoaXMuc2xpZGVyRWxlbWVudCA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5heC1yYW5nZS1zbGlkZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnNsaWRlckVsZW1lbnQgfHwgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSByZXR1cm47XG4gICAgICBjb25zdCBjYWxjdWxhdGVQZXJjZW50ID0gdGhpcy5jYWxjdWxhdGVQZXJjZW50T25Nb3ZlKGV2ZW50KTtcbiAgICAgIGNvbnN0IGV4YWN0VmFsdWUgPSB0aGlzLmdldFZhbHVlRnJvbVBlcmNlbnQoY2FsY3VsYXRlUGVyY2VudCk7XG4gICAgICBsZXQgdmFsdWUgPSBOdW1iZXIucGFyc2VGbG9hdChleGFjdFZhbHVlLnRvRml4ZWQoMikpO1xuICAgICAgaWYgKHRoaXMuaGFzU3RlcCgpKSB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5yb3VuZFRvU3RlcCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc0R1YWwoKSkge1xuICAgICAgICBpZiAoTWF0aC5hYnMoZXhhY3RWYWx1ZSAtIHRoaXMudmFsdWVzKClbMF0pID4gTWF0aC5hYnMoZXhhY3RWYWx1ZSAtIHRoaXMudmFsdWVzKClbMV0pKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KFt0aGlzLnZhbHVlcygpWzBdLCB2YWx1ZV0pO1xuICAgICAgICAgIGNpcmNsZSA9ICdzZWNvbmQnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLnZhbHVlcygpWzFdID09PSB0aGlzLm1pbigpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoW3RoaXMudmFsdWVzKClbMF0sIHZhbHVlXSk7XG4gICAgICAgICAgICBjaXJjbGUgPSAnc2Vjb25kJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KFt2YWx1ZSwgdGhpcy52YWx1ZXMoKVsxXV0pO1xuICAgICAgICAgICAgY2lyY2xlID0gJ2ZpcnN0JztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmFsdWVzLnNldCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5vblN0YXJ0SGFuZGxlcihldmVudCwgY2lyY2xlKTtcbiAgfVxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIG9uTW92ZShldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsIGNpcmNsZTogJ2ZpcnN0JyB8ICdzZWNvbmQnKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNsaWRlckVsZW1lbnQpIHJldHVybjtcbiAgICBjb25zdCBjYWxjdWxhdGVQZXJjZW50ID0gdGhpcy5jYWxjdWxhdGVQZXJjZW50T25Nb3ZlKGV2ZW50KTtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmdldFZhbHVlRnJvbVBlcmNlbnQoY2FsY3VsYXRlUGVyY2VudCk7XG4gICAgdmFsdWUgPSBOdW1iZXIucGFyc2VGbG9hdCh2YWx1ZS50b0ZpeGVkKDIpKTtcbiAgICBpZiAodGhpcy5oYXNTdGVwKCkpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5yb3VuZFRvU3RlcCh2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRHVhbCgpKSB7XG4gICAgICBpZiAoY2lyY2xlID09PSAnZmlyc3QnICYmIHZhbHVlIDw9IHRoaXMudmFsdWVzKClbMV0pIHtcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tWYWx1ZXModmFsdWUsICdmaXJzdCcsIHRoaXMudmFsdWVzKClbMV0pICYmIHRoaXMudmFsdWVzKClbMF0gIT09IHZhbHVlKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KFt2YWx1ZSwgdGhpcy52YWx1ZXMoKVsxXV0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNpcmNsZSA9PT0gJ3NlY29uZCcgJiYgdmFsdWUgPj0gdGhpcy52YWx1ZXMoKVswXSAmJiB0aGlzLnZhbHVlcygpWzFdICE9PSB2YWx1ZSkge1xuICAgICAgICBpZiAodGhpcy5jaGVja1ZhbHVlcyh2YWx1ZSwgJ3NlY29uZCcsIHRoaXMudmFsdWVzKClbMF0pKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KFt0aGlzLnZhbHVlcygpWzBdLCB2YWx1ZV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrVmFsdWUodmFsdWUpICYmIHRoaXMudmFsdWVzKCkgIT09IHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWVzLnNldCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgb25FbmQobW92ZUxpc3RlbmVyOiAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB2b2lkLCBlbmRMaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBtb3ZlTGlzdGVuZXIpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgZW5kTGlzdGVuZXIpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBtb3ZlTGlzdGVuZXIpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGVuZExpc3RlbmVyKTtcbiAgICB0aGlzLnNsaWRlckVsZW1lbnQgPSBudWxsO1xuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGluaXRpYWxpemVWYWx1ZXMoKSB7XG4gICAgdGhpcy5maXhJbml0aWFsaXplVW5kZWZpbmVkKCk7XG4gICAgdGhpcy5maXhJbml0aWFsaXplVmFsdWVzKCk7XG4gICAgdGhpcy5maXhJbml0aWFsaXplU3RlcCgpO1xuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGZpeEluaXRpYWxpemVVbmRlZmluZWQoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlcygpID09PSAndW5kZWZpbmVkJykge1xuICAgICAgaWYgKHRoaXMuaXNEdWFsKCkpIHtcbiAgICAgICAgdGhpcy52YWx1ZXMuc2V0KFt0aGlzLm1pbigpLCB0aGlzLm1heCgpXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnZhbHVlcy5zZXQodGhpcy5taW4oKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGZpeEluaXRpYWxpemVWYWx1ZXMoKSB7XG4gICAgaWYgKHRoaXMuaXNEdWFsKCkgJiYgdGhpcy52YWx1ZXMoKVswXSA+IHRoaXMudmFsdWVzKClbMV0pIHtcbiAgICAgIHRoaXMudmFsdWVzLnNldChbdGhpcy52YWx1ZXMoKVsxXSwgdGhpcy52YWx1ZXMoKVswXV0pO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHRoaXMudmFsdWVzKCkgPT09ICdudW1iZXInICYmICF0aGlzLmNoZWNrVmFsdWUodGhpcy52YWx1ZXMoKSBhcyBudW1iZXIpKSB7XG4gICAgICB0aGlzLnZhbHVlcy5zZXQodGhpcy5taW4oKSk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHR5cGVvZiB0aGlzLnZhbHVlcygpICE9PSAnbnVtYmVyJyAmJlxuICAgICAgIXRoaXMuY2hlY2tWYWx1ZXModGhpcy52YWx1ZXMoKVswXSwgJ2ZpcnN0JywgdGhpcy52YWx1ZXMoKVsxXSlcbiAgICApIHtcbiAgICAgIHRoaXMudmFsdWVzLnNldChbdGhpcy5taW4oKSwgdGhpcy5tYXgoKV0pO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBmaXhJbml0aWFsaXplU3RlcCgpIHtcbiAgICBpZiAodGhpcy5zdGVwKCkgIT09IDEpIHtcbiAgICAgIGlmICh0aGlzLmlzRHVhbCgpKSB7XG4gICAgICAgIHRoaXMudmFsdWVzLnVwZGF0ZSgob2xkKSA9PiBbdGhpcy5yb3VuZFRvU3RlcChvbGRbMF0pLCB0aGlzLnJvdW5kVG9TdGVwKG9sZFsxXSldKTtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVzKClbMF0gPT09IHRoaXMudmFsdWVzKClbMV0pIHtcbiAgICAgICAgICB0aGlzLnZhbHVlcy51cGRhdGUoKG9sZCkgPT4gW3RoaXMucm91bmRUb1N0ZXAob2xkWzBdKSwgdGhpcy5yb3VuZFRvU3RlcChvbGRbMV0pICsgdGhpcy5zdGVwKCldKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YWx1ZXMudXBkYXRlKChvbGQpID0+IHRoaXMucm91bmRUb1N0ZXAob2xkIGFzIG51bWJlcikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBmaXhDaGFuZ2luZ01vZGUoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlcygpID09PSAnbnVtYmVyJyAmJiB0aGlzLmlzRHVhbCgpKSB7XG4gICAgICB0aGlzLnZhbHVlcy5zZXQoW3RoaXMubWluKCksIHRoaXMubWF4KCldKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLnZhbHVlcygpICE9PSAnbnVtYmVyJyAmJiAhdGhpcy5pc0R1YWwoKSkge1xuICAgICAgdGhpcy52YWx1ZXMuc2V0KHRoaXMubWluKCkpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBjYWxjdWxhdGVQZXJjZW50T25Nb3ZlKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IG51bWJlciB7XG4gICAgY29uc3Qgc2xpZGVyUmVjdCA9IHRoaXMuc2xpZGVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBsZXQgcGVyY2VudDogbnVtYmVyO1xuICAgIGlmICh0aGlzLmlzSG9yaXpvbnRhbCgpKSB7XG4gICAgICBjb25zdCBjbGllbnRYID0gZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50ID8gZXZlbnQuY2xpZW50WCA6IChldmVudCBhcyBUb3VjaEV2ZW50KS50b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICBjb25zdCB4ID0gY2xpZW50WCAtIHNsaWRlclJlY3QubGVmdDtcbiAgICAgIHBlcmNlbnQgPSAoeCAvIHNsaWRlclJlY3Qud2lkdGgpICogMTAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjbGllbnRZID0gZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50ID8gZXZlbnQuY2xpZW50WSA6IChldmVudCBhcyBUb3VjaEV2ZW50KS50b3VjaGVzWzBdLmNsaWVudFk7XG4gICAgICBjb25zdCB5ID0gLShjbGllbnRZIC0gc2xpZGVyUmVjdC5ib3R0b20pOyAvL3JldmVyY2Ugc2xpZGVyIGZyb20gYm90dG9tIHRvIHRvcFxuICAgICAgcGVyY2VudCA9ICh5IC8gc2xpZGVyUmVjdC5oZWlnaHQpICogMTAwO1xuICAgIH1cbiAgICBpZiAocGVyY2VudCA8IDApIHtcbiAgICAgIHBlcmNlbnQgPSAwO1xuICAgIH0gZWxzZSBpZiAocGVyY2VudCA+IDEwMCkge1xuICAgICAgcGVyY2VudCA9IDEwMDtcbiAgICB9XG4gICAgcmV0dXJuIHBlcmNlbnQ7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSByb3VuZFRvU3RlcCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBsb3dlciA9IE1hdGgubWF4KFxuICAgICAgdGhpcy5taW4oKSxcbiAgICAgIE1hdGguZmxvb3IoKHZhbHVlIC0gdGhpcy5taW4oKSkgLyB0aGlzLnN0ZXAoKSkgKiB0aGlzLnN0ZXAoKSArIHRoaXMubWluKCksXG4gICAgKTtcbiAgICBjb25zdCB1cHBlciA9IE1hdGgubWluKHRoaXMubWF4KCksIGxvd2VyICsgdGhpcy5zdGVwKCkpO1xuICAgIGlmICh2YWx1ZSAtIGxvd2VyIDwgdXBwZXIgLSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGxvd2VyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdXBwZXI7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgY2hlY2tWYWx1ZSh4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAoeCA+PSB0aGlzLm1pbigpICYmIHggPD0gdGhpcy5tYXgoKSkgcmV0dXJuIHRydWU7XG4gICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgY2hlY2tWYWx1ZXModmFsdWUxOiBudW1iZXIsIHk6ICdmaXJzdCcgfCAnc2Vjb25kJywgdmFsdWUyOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAodmFsdWUxID49IHRoaXMubWluKCkgJiYgdmFsdWUxIDw9IHRoaXMubWF4KCkpIHtcbiAgICAgIGlmICh5ID09PSAnZmlyc3QnKSB7XG4gICAgICAgIGlmICh2YWx1ZTEgPD0gdmFsdWUyICYmIHZhbHVlMiA8PSB0aGlzLm1heCgpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodmFsdWUxID49IHZhbHVlMiAmJiB2YWx1ZTIgPj0gdGhpcy5taW4oKSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGVsc2UgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBnZXRWYWx1ZUZyb21QZXJjZW50KHZhbHVlOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5taW4oKSArICh2YWx1ZSAqICh0aGlzLm1heCgpIC0gdGhpcy5taW4oKSkpIC8gMTAwO1xuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0UGVyY2FudGFnZSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yYW5nZSgpICE9PSAwID8gKHZhbHVlIC8gdGhpcy5yYW5nZSgpKSAqIDEwMCA6IDA7XG4gIH1cbiAgLyoqXG4gICAqIEluY3JlYXNlIGEgc3RlcCB0byB2YWx1ZSBpZiBzbGlkZXIgaW4gc2luZ2xlIG1vZGVcbiAgICogYW5kIGluY3JlYXNlIGEgc3RlcCB0aGUgc2Vjb25kIHZhbHVlIGlmIHNsaWRlciBpbiBkdWFsIG1vZGVcbiAgICogQG1ldGhvZCBpbmNyZWFzZVN0ZXBcbiAgICovXG4gIHB1YmxpYyBpbmNyZWFzZVN0ZXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEdWFsKCkpIHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5yb3VuZFRvU3RlcCh0aGlzLnZhbHVlcygpWzFdICsgdGhpcy5zdGVwKCkpO1xuICAgICAgdGhpcy52YWx1ZXMuc2V0KFt0aGlzLnZhbHVlcygpWzBdLCBuZXdWYWx1ZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMucm91bmRUb1N0ZXAoKHRoaXMudmFsdWVzKCkgYXMgbnVtYmVyKSArIHRoaXMuc3RlcCgpKTtcbiAgICAgIHRoaXMudmFsdWVzLnNldChuZXdWYWx1ZSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBEZWNyZWFzZSBhIHN0ZXAgdG8gdmFsdWUgaWYgc2xpZGVyIGluIHNpbmdsZSBtb2RlXG4gICAqIGFuZCBkZWNyZWFzZSBhIHN0ZXAgdGhlIHNlY29uZCB2YWx1ZSBpZiBzbGlkZXIgaW4gZHVhbCBtb2RlXG4gICAqIEBtZXRob2QgZGVjcmVhc2VTdGVwXG4gICAqL1xuICBwdWJsaWMgZGVjcmVhc2VTdGVwKCkge1xuICAgIGlmICh0aGlzLmlzRHVhbCgpKSB7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMucm91bmRUb1N0ZXAodGhpcy52YWx1ZXMoKVswXSAtIHRoaXMuc3RlcCgpKTtcbiAgICAgIHRoaXMudmFsdWVzLnNldChbbmV3VmFsdWUsIHRoaXMudmFsdWVzKClbMV1dKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnJvdW5kVG9TdGVwKCh0aGlzLnZhbHVlcygpIGFzIG51bWJlcikgLSB0aGlzLnN0ZXAoKSk7XG4gICAgICB0aGlzLnZhbHVlcy5zZXQobmV3VmFsdWUpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignd2hlZWwnLCBbJyRldmVudCddKVxuICBvbldoZWVsKGV2ZW50OiBXaGVlbEV2ZW50KSB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAoIXRoaXMuY2hvb3NlbkhhbmRsZXIgfHwgdGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkIHx8ICF0aGlzLmNvcnJlY3RNaW5NYXgoKSkgcmV0dXJuO1xuICAgICAgbGV0IG5ld1ZhbHVlO1xuICAgICAgaWYgKHRoaXMuaXNEdWFsKCkpIHtcbiAgICAgICAgaWYgKGV2ZW50LmRlbHRhWSA8IDApIHtcbiAgICAgICAgICBpZiAodGhpcy5jaG9vc2VuSGFuZGxlciA9PT0gJ2ZpcnN0Jykge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSB0aGlzLnJvdW5kVG9TdGVwKCh0aGlzLnZhbHVlcygpWzBdIGFzIG51bWJlcikgKyB0aGlzLnN0ZXAoKSk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tWYWx1ZXMobmV3VmFsdWUsIHRoaXMuY2hvb3NlbkhhbmRsZXIsIHRoaXMudmFsdWVzKClbMV0pICYmXG4gICAgICAgICAgICAgIHRoaXMudmFsdWVzKClbMF0gIT09IG5ld1ZhbHVlXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZXMudXBkYXRlKChvbGQpID0+IFt0aGlzLnJvdW5kVG9TdGVwKChvbGRbMF0gYXMgbnVtYmVyKSArIHRoaXMuc3RlcCgpKSwgb2xkWzFdXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gdGhpcy5yb3VuZFRvU3RlcCgodGhpcy52YWx1ZXMoKVsxXSBhcyBudW1iZXIpICsgdGhpcy5zdGVwKCkpO1xuICAgICAgICAgICAgaWYgKG5ld1ZhbHVlIDw9IHRoaXMubWF4KCkgJiYgdGhpcy52YWx1ZXMoKVsxXSAhPT0gbmV3VmFsdWUpIHtcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZXMudXBkYXRlKChvbGQpID0+IFtvbGRbMF0sIHRoaXMucm91bmRUb1N0ZXAoKG9sZFsxXSBhcyBudW1iZXIpICsgdGhpcy5zdGVwKCkpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLmNob29zZW5IYW5kbGVyID09PSAnZmlyc3QnKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHRoaXMucm91bmRUb1N0ZXAoKHRoaXMudmFsdWVzKClbMF0gYXMgbnVtYmVyKSAtIHRoaXMuc3RlcCgpKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy5jaGVja1ZhbHVlcyhuZXdWYWx1ZSwgdGhpcy5jaG9vc2VuSGFuZGxlciwgdGhpcy52YWx1ZXMoKVsxXSkgJiZcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZXMoKSAhPT0gbmV3VmFsdWVcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aGlzLnZhbHVlcy51cGRhdGUoKG9sZCkgPT4gW3RoaXMucm91bmRUb1N0ZXAoKG9sZFswXSBhcyBudW1iZXIpIC0gdGhpcy5zdGVwKCkpLCBvbGRbMV1dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSB0aGlzLnJvdW5kVG9TdGVwKCh0aGlzLnZhbHVlcygpWzFdIGFzIG51bWJlcikgLSB0aGlzLnN0ZXAoKSk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tWYWx1ZXMobmV3VmFsdWUsIHRoaXMuY2hvb3NlbkhhbmRsZXIsIHRoaXMudmFsdWVzKClbMF0pICYmXG4gICAgICAgICAgICAgIHRoaXMudmFsdWVzKClbMV0gIT09IG5ld1ZhbHVlXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZXMudXBkYXRlKChvbGQpID0+IFtvbGRbMF0sIHRoaXMucm91bmRUb1N0ZXAoKG9sZFsxXSBhcyBudW1iZXIpIC0gdGhpcy5zdGVwKCkpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXZlbnQuZGVsdGFZIDwgMCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoZWNrVmFsdWUodGhpcy5yb3VuZFRvU3RlcCgodGhpcy52YWx1ZXMoKSBhcyBudW1iZXIpICsgdGhpcy5zdGVwKCkpKSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXMudXBkYXRlKChvbGQpID0+IHRoaXMucm91bmRUb1N0ZXAoKG9sZCBhcyBudW1iZXIpICsgdGhpcy5zdGVwKCkpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hlY2tWYWx1ZSh0aGlzLnJvdW5kVG9TdGVwKCh0aGlzLnZhbHVlcygpIGFzIG51bWJlcikgLSB0aGlzLnN0ZXAoKSkpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlcy51cGRhdGUoKG9sZCkgPT4gdGhpcy5yb3VuZFRvU3RlcCgob2xkIGFzIG51bWJlcikgLSB0aGlzLnN0ZXAoKSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXG4gICAgICBgYXgtJHt0aGlzLmNvbG9yKCl9LXNvbGlkYCxcbiAgICAgIGAke3RoaXMuZGlzYWJsZWQgPyAnYXgtc3RhdGUtZGlzYWJsZWQnIDogJyd9YCxcbiAgICAgIGAke3RoaXMucmVhZG9ubHkgPyAnYXgtc3RhdGUtcmVhZG9ubHknIDogJyd9YCxcbiAgICBdO1xuICB9XG59XG4iLCJAaWYgKGNvcnJlY3RNaW5NYXgoKSkge1xuICA8ZGl2IGNsYXNzPVwiYXgtcmFuZ2Utc2xpZGVyXCIgW2NsYXNzXT1cIidheC1vcmllbnRhdGlvbi0nICsgb3JpZW50YXRpb24oKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC1yYW5nZS1zbGlkZXItYmFyXCIgKG1vdXNlZG93bik9XCJvblN0YXJ0QmFyKCRldmVudClcIiAodG91Y2hzdGFydCk9XCJvblN0YXJ0QmFyKCRldmVudClcIj48L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImF4LXJhbmdlLXNsaWRlci1oaWdobGlnaHRcIlxuICAgICAgW25nU3R5bGVdPVwiQVhSYW5nZVNsaWRlckhpZ2hsaWdodCgpXCJcbiAgICAgIChtb3VzZWRvd24pPVwib25TdGFydEJhcigkZXZlbnQpXCJcbiAgICAgICh0b3VjaHN0YXJ0KT1cIm9uU3RhcnRCYXIoJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJheC1yYW5nZS1zbGlkZXItaGFuZGxlclwiXG4gICAgICBbbmdTdHlsZV09XCJBWFJhbmdlU2xpZGVySGFuZGxlcjEoKVwiXG4gICAgICBuYW1lPVwiZmlyc3RcIlxuICAgICAgKG1vdXNlZG93bik9XCJvblN0YXJ0QmFyKCRldmVudClcIlxuICAgICAgKHRvdWNoc3RhcnQpPVwib25TdGFydEJhcigkZXZlbnQpXCJcbiAgICA+XG4gICAgICBAaWYgKGhhc1Rvb2x0aXAoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcmFuZ2Utc2xpZGVyLXRvb2x0aXBcIj57eyBpc0R1YWwoKSA/IHZhbHVlcygpWzBdIDogdmFsdWVzKCkgfX08L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoaXNEdWFsKCkpIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJheC1yYW5nZS1zbGlkZXItaGFuZGxlclwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIkFYUmFuZ2VTbGlkZXJIYW5kbGVyMigpXCJcbiAgICAgICAgbmFtZT1cInNlY29uZFwiXG4gICAgICAgIChtb3VzZWRvd24pPVwib25TdGFydEJhcigkZXZlbnQpXCJcbiAgICAgICAgKHRvdWNoc3RhcnQpPVwib25TdGFydEJhcigkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgQGlmIChoYXNUb29sdGlwKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcmFuZ2Utc2xpZGVyLXRvb2x0aXBcIj57eyB2YWx1ZXMoKVsxXSB9fTwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChoYXNTbmFwKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1yYW5nZS1zbGlkZXItc3RlcFwiIFtuZ1N0eWxlXT1cIkFYUmFuZ2VTbGlkZXJTdGVwKClcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBjYWxjdWxhdGVTbmFwQmFyKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYXgtcmFuZ2Utc2xpZGVyLXN0ZXBzXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgICBpc0hvcml6b250YWwoKSA/IHsgbGVmdDogZ2V0UGVyY2FudGFnZShpdGVtKSArICclJyB9IDogeyBib3R0b206IGdldFBlcmNhbnRhZ2UoaXRlbSkgKyAnJScgfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGhhc0xhYmxlKCkpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXJhbmdlLXNsaWRlci1sYWJlbFwiIFtuZ1N0eWxlXT1cIkFYUmFuZ2VMYWJlbCgpXCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbSArIG1pbigpIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxufVxuIl19
|