@acorex/components 16.0.2 → 17.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/action-sheet/README.md +3 -0
- package/action-sheet/index.d.ts +4 -0
- package/action-sheet/lib/action-sheet.class.d.ts +31 -0
- package/action-sheet/lib/action-sheet.component.d.ts +23 -0
- package/action-sheet/lib/action-sheet.module.d.ts +16 -0
- package/action-sheet/lib/action-sheet.service.d.ts +13 -0
- package/alert/README.md +3 -0
- package/alert/index.d.ts +2 -0
- package/alert/lib/alert.component.d.ts +55 -0
- package/alert/lib/alert.module.d.ts +9 -0
- package/avatar/README.md +3 -0
- package/avatar/index.d.ts +3 -0
- package/avatar/lib/avatar-group.component.d.ts +5 -0
- package/avatar/lib/avatar.component.d.ts +17 -0
- package/avatar/lib/avatar.module.d.ts +9 -0
- package/badge/README.md +3 -0
- package/badge/index.d.ts +2 -0
- package/badge/lib/badge.component.d.ts +8 -0
- package/badge/lib/badge.module.d.ts +8 -0
- package/bottom-navigation/README.md +3 -0
- package/bottom-navigation/index.d.ts +3 -0
- package/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.d.ts +15 -0
- package/bottom-navigation/lib/bottom-navigation.component.d.ts +17 -0
- package/bottom-navigation/lib/bottom-navigation.module.d.ts +9 -0
- package/breadcrumbs/README.md +3 -0
- package/breadcrumbs/index.d.ts +4 -0
- package/breadcrumbs/lib/breadcrumbs-item.class.d.ts +9 -0
- package/breadcrumbs/lib/breadcrumbs-item.component.d.ts +14 -0
- package/breadcrumbs/lib/breadcrumbs.component.d.ts +9 -0
- package/breadcrumbs/lib/breadcrumbs.module.d.ts +10 -0
- package/button/README.md +3 -0
- package/button/index.d.ts +5 -0
- package/button/lib/button-item-list.component.d.ts +19 -0
- package/button/lib/button-item.class.d.ts +24 -0
- package/button/lib/button-item.component.d.ts +30 -0
- package/button/lib/button.component.d.ts +26 -0
- package/button/lib/button.module.d.ts +13 -0
- package/button-group/README.md +3 -0
- package/button-group/index.d.ts +2 -0
- package/button-group/lib/button-group.component.d.ts +24 -0
- package/button-group/lib/button-group.module.d.ts +8 -0
- package/calendar/README.md +3 -0
- package/calendar/index.d.ts +4 -0
- package/calendar/lib/calendar-range.component.d.ts +31 -0
- package/calendar/lib/calendar.class.d.ts +80 -0
- package/calendar/lib/calendar.component.d.ts +51 -0
- package/calendar/lib/calendar.module.d.ts +11 -0
- package/chat/README.md +3 -0
- package/chat/index.d.ts +13 -0
- package/chat/lib/chat-input/chat-input.component.d.ts +35 -0
- package/chat/lib/chat-input/chat-input.interface.d.ts +10 -0
- package/chat/lib/chat-message/chat-message.component.d.ts +12 -0
- package/chat/lib/chat-messages/chat-message-audio.component.d.ts +7 -0
- package/chat/lib/chat-messages/chat-message-text.component.d.ts +8 -0
- package/chat/lib/chat-view/chat-view.component.d.ts +10 -0
- package/chat/lib/chat-voice/chat-voice.component.d.ts +6 -0
- package/chat/lib/chat.module.d.ts +29 -0
- package/chat/lib/chat.types.d.ts +21 -0
- package/chat/lib/classes/events.interface.d.ts +4 -0
- package/chat/lib/services/chat-message-type-registry.service.d.ts +9 -0
- package/chat/lib/services/chat.service.d.ts +5 -0
- package/chat/lib/services/recording.service.d.ts +20 -0
- package/check-box/README.md +3 -0
- package/check-box/index.d.ts +2 -0
- package/check-box/lib/check-box.component.d.ts +16 -0
- package/check-box/lib/check-box.module.d.ts +10 -0
- package/chips/README.md +3 -0
- package/chips/index.d.ts +2 -0
- package/chips/lib/chips.component.d.ts +11 -0
- package/chips/lib/chips.module.d.ts +8 -0
- package/circular-progress/README.md +3 -0
- package/circular-progress/index.d.ts +2 -0
- package/circular-progress/lib/circular-progress.component.d.ts +33 -0
- package/circular-progress/lib/circular-progress.module.d.ts +7 -0
- package/collapse/README.md +3 -0
- package/collapse/index.d.ts +3 -0
- package/collapse/lib/collapse-group.component.d.ts +30 -0
- package/collapse/lib/collapse.component.d.ts +46 -0
- package/collapse/lib/collapse.module.d.ts +10 -0
- package/color-box/README.md +3 -0
- package/color-box/index.d.ts +2 -0
- package/color-box/lib/color-box.component.d.ts +27 -0
- package/color-box/lib/color-box.module.d.ts +11 -0
- package/color-palette/README.md +3 -0
- package/color-palette/index.d.ts +7 -0
- package/color-palette/lib/color-palette-input.component.d.ts +25 -0
- package/color-palette/lib/color-palette-picker.component.d.ts +35 -0
- package/color-palette/lib/color-palette-preview.component.d.ts +16 -0
- package/color-palette/lib/color-palette-swatches.component.d.ts +21 -0
- package/color-palette/lib/color-palette.class.d.ts +28 -0
- package/color-palette/lib/color-palette.component.d.ts +10 -0
- package/color-palette/lib/color-palette.module.d.ts +20 -0
- package/common/README.md +3 -0
- package/common/index.d.ts +28 -0
- package/common/lib/classes/components.class.d.ts +83 -0
- package/common/lib/classes/datalist.class.d.ts +37 -0
- package/common/lib/classes/datasource.class.d.ts +78 -0
- package/common/lib/classes/events.class.d.ts +96 -0
- package/common/lib/classes/styles.class.d.ts +8 -0
- package/common/lib/common.module.d.ts +10 -0
- package/common/lib/components/base-component.class.d.ts +38 -0
- package/common/lib/components/button-base-component.class.d.ts +35 -0
- package/common/lib/components/color-component.class.d.ts +12 -0
- package/common/lib/components/colorlook-component.class.d.ts +6 -0
- package/common/lib/components/input-base-value-component.class.d.ts +27 -0
- package/common/lib/components/interactive-component.class.d.ts +42 -0
- package/common/lib/components/look-component.class.d.ts +18 -0
- package/common/lib/components/selection-base.component.class.d.ts +48 -0
- package/common/lib/components/value-component.class.d.ts +67 -0
- package/common/lib/directives/auto-focus.directive.d.ts +15 -0
- package/common/lib/directives/delayed-value-changed.directive.d.ts +17 -0
- package/common/lib/directives/hotkey.directive.d.ts +22 -0
- package/common/lib/directives/infinite-scroll.directive.d.ts +25 -0
- package/common/lib/directives/responsive.directive.d.ts +10 -0
- package/common/lib/directives/ripple.directive.d.ts +16 -0
- package/common/lib/services/dom.service.d.ts +6 -0
- package/common/lib/services/hotkey.service.d.ts +31 -0
- package/common/lib/types/direction.d.ts +4 -0
- package/common/lib/types/orientation.d.ts +4 -0
- package/common/lib/types/placement.d.ts +30 -0
- package/common/lib/types/range.d.ts +4 -0
- package/common/lib/types/selection-mode.d.ts +4 -0
- package/data-pager/README.md +3 -0
- package/data-pager/index.d.ts +9 -0
- package/data-pager/lib/data-pager-base.component.d.ts +54 -0
- package/data-pager/lib/data-pager-info.component.d.ts +11 -0
- package/data-pager/lib/data-pager-input-selector.component.d.ts +11 -0
- package/data-pager/lib/data-pager-next-buttons.components.d.ts +10 -0
- package/data-pager/lib/data-pager-numeric-selector.component.d.ts +13 -0
- package/data-pager/lib/data-pager-pagesize-dropdown.component.d.ts +14 -0
- package/data-pager/lib/data-pager-prev-buttons.component.d.ts +10 -0
- package/data-pager/lib/data-pager.component.d.ts +34 -0
- package/data-pager/lib/data-pager.module.d.ts +21 -0
- package/data-table/README.md +3 -0
- package/data-table/index.d.ts +10 -0
- package/data-table/lib/base-data-table.class.d.ts +25 -0
- package/data-table/lib/columns/data-table-column-resizable.directive.d.ts +22 -0
- package/data-table/lib/columns/data-table-column.d.ts +20 -0
- package/data-table/lib/columns/data-text-column.component.d.ts +18 -0
- package/data-table/lib/columns/row-command-column.component.d.ts +40 -0
- package/data-table/lib/columns/row-index-column.component.d.ts +18 -0
- package/data-table/lib/columns/row-select-column.component.d.ts +14 -0
- package/data-table/lib/data-table/data-table.component.d.ts +52 -0
- package/data-table/lib/data-table.module.d.ts +26 -0
- package/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.d.ts +66 -0
- package/datetime-box/README.md +3 -0
- package/datetime-box/index.d.ts +2 -0
- package/datetime-box/lib/datetime-box.component.d.ts +36 -0
- package/datetime-box/lib/datetime-box.module.d.ts +13 -0
- package/datetime-input/README.md +3 -0
- package/datetime-input/index.d.ts +2 -0
- package/datetime-input/lib/datetime-input.component.d.ts +45 -0
- package/datetime-input/lib/datetime-input.module.d.ts +10 -0
- package/datetime-picker/README.md +3 -0
- package/datetime-picker/index.d.ts +3 -0
- package/datetime-picker/lib/datetime-picker.component.d.ts +49 -0
- package/datetime-picker/lib/datetime-picker.config.d.ts +8 -0
- package/datetime-picker/lib/datetime-picker.module.d.ts +15 -0
- package/decorators/README.md +3 -0
- package/decorators/index.d.ts +5 -0
- package/decorators/lib/components/clear-button.component.d.ts +13 -0
- package/decorators/lib/components/close-button.component.d.ts +12 -0
- package/decorators/lib/components/generic-content.component.d.ts +6 -0
- package/decorators/lib/components/icon.component.d.ts +8 -0
- package/decorators/lib/decorators.module.d.ts +11 -0
- package/dialog/README.md +3 -0
- package/dialog/index.d.ts +4 -0
- package/dialog/lib/dialog.class.d.ts +36 -0
- package/dialog/lib/dialog.component.d.ts +19 -0
- package/dialog/lib/dialog.module.d.ts +16 -0
- package/dialog/lib/dialog.service.d.ts +31 -0
- package/drawer/README.md +3 -0
- package/drawer/index.d.ts +3 -0
- package/drawer/lib/drawer-container.component.d.ts +7 -0
- package/drawer/lib/drawer.component.d.ts +39 -0
- package/drawer/lib/drawer.module.d.ts +9 -0
- package/dropdown/README.md +3 -0
- package/dropdown/index.d.ts +4 -0
- package/dropdown/lib/dropdown-box.class.d.ts +15 -0
- package/dropdown/lib/dropdown-box.component.d.ts +30 -0
- package/dropdown/lib/dropdown-panel.component.d.ts +33 -0
- package/dropdown/lib/dropdown.module.d.ts +14 -0
- package/dropdown-button/README.md +3 -0
- package/dropdown-button/index.d.ts +2 -0
- package/dropdown-button/lib/dropdown-button.component.d.ts +28 -0
- package/dropdown-button/lib/dropdown-button.module.d.ts +13 -0
- package/esm2022/action-sheet/acorex-components-action-sheet.mjs +5 -0
- package/esm2022/action-sheet/index.mjs +5 -0
- package/esm2022/action-sheet/lib/action-sheet.class.mjs +2 -0
- package/esm2022/action-sheet/lib/action-sheet.component.mjs +98 -0
- package/esm2022/action-sheet/lib/action-sheet.module.mjs +54 -0
- package/esm2022/action-sheet/lib/action-sheet.service.mjs +57 -0
- package/esm2022/alert/acorex-components-alert.mjs +5 -0
- package/esm2022/alert/index.mjs +3 -0
- package/esm2022/alert/lib/alert.component.mjs +195 -0
- package/esm2022/alert/lib/alert.module.mjs +22 -0
- package/esm2022/avatar/acorex-components-avatar.mjs +5 -0
- package/esm2022/avatar/index.mjs +4 -0
- package/esm2022/avatar/lib/avatar-group.component.mjs +14 -0
- package/esm2022/avatar/lib/avatar.component.mjs +41 -0
- package/esm2022/avatar/lib/avatar.module.mjs +22 -0
- package/esm2022/badge/acorex-components-badge.mjs +5 -0
- package/esm2022/badge/index.mjs +3 -0
- package/esm2022/badge/lib/badge.component.mjs +24 -0
- package/esm2022/badge/lib/badge.module.mjs +19 -0
- package/esm2022/bottom-navigation/acorex-components-bottom-navigation.mjs +5 -0
- package/esm2022/bottom-navigation/index.mjs +4 -0
- package/esm2022/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.mjs +46 -0
- package/esm2022/bottom-navigation/lib/bottom-navigation.component.mjs +49 -0
- package/esm2022/bottom-navigation/lib/bottom-navigation.module.mjs +27 -0
- package/esm2022/breadcrumbs/acorex-components-breadcrumbs.mjs +5 -0
- package/esm2022/breadcrumbs/index.mjs +5 -0
- package/esm2022/breadcrumbs/lib/breadcrumbs-item.class.mjs +2 -0
- package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +36 -0
- package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +19 -0
- package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +21 -0
- package/esm2022/button/acorex-components-button.mjs +5 -0
- package/esm2022/button/index.mjs +6 -0
- package/esm2022/button/lib/button-item-list.component.mjs +114 -0
- package/esm2022/button/lib/button-item.class.mjs +2 -0
- package/esm2022/button/lib/button-item.component.mjs +106 -0
- package/esm2022/button/lib/button.component.mjs +98 -0
- package/esm2022/button/lib/button.module.mjs +47 -0
- package/esm2022/button-group/acorex-components-button-group.mjs +5 -0
- package/esm2022/button-group/index.mjs +3 -0
- package/esm2022/button-group/lib/button-group.component.mjs +118 -0
- package/esm2022/button-group/lib/button-group.module.mjs +21 -0
- package/esm2022/calendar/acorex-components-calendar.mjs +5 -0
- package/esm2022/calendar/index.mjs +5 -0
- package/esm2022/calendar/lib/calendar-range.component.mjs +175 -0
- package/esm2022/calendar/lib/calendar.class.mjs +176 -0
- package/esm2022/calendar/lib/calendar.component.mjs +477 -0
- package/esm2022/calendar/lib/calendar.module.mjs +24 -0
- package/esm2022/chat/acorex-components-chat.mjs +5 -0
- package/esm2022/chat/index.mjs +15 -0
- package/esm2022/chat/lib/chat-input/chat-input.component.mjs +125 -0
- package/esm2022/chat/lib/chat-input/chat-input.interface.mjs +2 -0
- package/esm2022/chat/lib/chat-message/chat-message.component.mjs +30 -0
- package/esm2022/chat/lib/chat-messages/chat-message-audio.component.mjs +17 -0
- package/esm2022/chat/lib/chat-messages/chat-message-text.component.mjs +23 -0
- package/esm2022/chat/lib/chat-view/chat-view.component.mjs +22 -0
- package/esm2022/chat/lib/chat-voice/chat-voice.component.mjs +12 -0
- package/esm2022/chat/lib/chat.module.mjs +125 -0
- package/esm2022/chat/lib/chat.types.mjs +10 -0
- package/esm2022/chat/lib/classes/events.interface.mjs +2 -0
- package/esm2022/chat/lib/services/chat-message-type-registry.service.mjs +20 -0
- package/esm2022/chat/lib/services/chat.service.mjs +10 -0
- package/esm2022/chat/lib/services/recording.service.mjs +78 -0
- package/esm2022/check-box/acorex-components-check-box.mjs +5 -0
- package/esm2022/check-box/index.mjs +3 -0
- package/esm2022/check-box/lib/check-box.component.mjs +100 -0
- package/esm2022/check-box/lib/check-box.module.mjs +21 -0
- package/esm2022/chips/acorex-components-chips.mjs +5 -0
- package/esm2022/chips/index.mjs +3 -0
- package/esm2022/chips/lib/chips.component.mjs +28 -0
- package/esm2022/chips/lib/chips.module.mjs +19 -0
- package/esm2022/circular-progress/acorex-components-circular-progress.mjs +5 -0
- package/esm2022/circular-progress/index.mjs +3 -0
- package/esm2022/circular-progress/lib/circular-progress.component.mjs +96 -0
- package/esm2022/circular-progress/lib/circular-progress.module.mjs +17 -0
- package/esm2022/collapse/acorex-components-collapse.mjs +5 -0
- package/esm2022/collapse/index.mjs +4 -0
- package/esm2022/collapse/lib/collapse-group.component.mjs +131 -0
- package/esm2022/collapse/lib/collapse.component.mjs +146 -0
- package/esm2022/collapse/lib/collapse.module.mjs +21 -0
- package/esm2022/color-box/acorex-components-color-box.mjs +5 -0
- package/esm2022/color-box/index.mjs +3 -0
- package/esm2022/color-box/lib/color-box.component.mjs +71 -0
- package/esm2022/color-box/lib/color-box.module.mjs +32 -0
- package/esm2022/color-palette/acorex-components-color-palette.mjs +5 -0
- package/esm2022/color-palette/index.mjs +8 -0
- package/esm2022/color-palette/lib/color-palette-input.component.mjs +127 -0
- package/esm2022/color-palette/lib/color-palette-picker.component.mjs +175 -0
- package/esm2022/color-palette/lib/color-palette-preview.component.mjs +71 -0
- package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +95 -0
- package/esm2022/color-palette/lib/color-palette.class.mjs +238 -0
- package/esm2022/color-palette/lib/color-palette.component.mjs +66 -0
- package/esm2022/color-palette/lib/color-palette.module.mjs +63 -0
- package/esm2022/common/acorex-components-common.mjs +5 -0
- package/esm2022/common/index.mjs +29 -0
- package/esm2022/common/lib/classes/components.class.mjs +76 -0
- package/esm2022/common/lib/classes/datalist.class.mjs +50 -0
- package/esm2022/common/lib/classes/datasource.class.mjs +133 -0
- package/esm2022/common/lib/classes/events.class.mjs +79 -0
- package/esm2022/common/lib/classes/styles.class.mjs +20 -0
- package/esm2022/common/lib/common.module.mjs +38 -0
- package/esm2022/common/lib/components/base-component.class.mjs +81 -0
- package/esm2022/common/lib/components/button-base-component.class.mjs +67 -0
- package/esm2022/common/lib/components/color-component.class.mjs +25 -0
- package/esm2022/common/lib/components/colorlook-component.class.mjs +6 -0
- package/esm2022/common/lib/components/input-base-value-component.class.mjs +47 -0
- package/esm2022/common/lib/components/interactive-component.class.mjs +107 -0
- package/esm2022/common/lib/components/look-component.class.mjs +33 -0
- package/esm2022/common/lib/components/selection-base.component.class.mjs +196 -0
- package/esm2022/common/lib/components/value-component.class.mjs +223 -0
- package/esm2022/common/lib/directives/auto-focus.directive.mjs +66 -0
- package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +51 -0
- package/esm2022/common/lib/directives/hotkey.directive.mjs +81 -0
- package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +61 -0
- package/esm2022/common/lib/directives/responsive.directive.mjs +42 -0
- package/esm2022/common/lib/directives/ripple.directive.mjs +62 -0
- package/esm2022/common/lib/services/dom.service.mjs +16 -0
- package/esm2022/common/lib/services/hotkey.service.mjs +53 -0
- package/esm2022/common/lib/types/direction.mjs +2 -0
- package/esm2022/common/lib/types/orientation.mjs +2 -0
- package/esm2022/common/lib/types/placement.mjs +180 -0
- package/esm2022/common/lib/types/range.mjs +2 -0
- package/esm2022/common/lib/types/selection-mode.mjs +5 -0
- package/esm2022/data-pager/acorex-components-data-pager.mjs +5 -0
- package/esm2022/data-pager/index.mjs +10 -0
- package/esm2022/data-pager/lib/data-pager-base.component.mjs +50 -0
- package/esm2022/data-pager/lib/data-pager-info.component.mjs +47 -0
- package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +73 -0
- package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +61 -0
- package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +129 -0
- package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +109 -0
- package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +97 -0
- package/esm2022/data-pager/lib/data-pager.component.mjs +170 -0
- package/esm2022/data-pager/lib/data-pager.module.mjs +70 -0
- package/esm2022/data-table/acorex-components-data-table.mjs +5 -0
- package/esm2022/data-table/index.mjs +11 -0
- package/esm2022/data-table/lib/base-data-table.class.mjs +36 -0
- package/esm2022/data-table/lib/columns/data-table-column-resizable.directive.mjs +59 -0
- package/esm2022/data-table/lib/columns/data-table-column.mjs +38 -0
- package/esm2022/data-table/lib/columns/data-text-column.component.mjs +81 -0
- package/esm2022/data-table/lib/columns/row-command-column.component.mjs +231 -0
- package/esm2022/data-table/lib/columns/row-index-column.component.mjs +71 -0
- package/esm2022/data-table/lib/columns/row-select-column.component.mjs +61 -0
- package/esm2022/data-table/lib/data-table/data-table.component.mjs +233 -0
- package/esm2022/data-table/lib/data-table.module.mjs +107 -0
- package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +272 -0
- package/esm2022/datetime-box/acorex-components-datetime-box.mjs +5 -0
- package/esm2022/datetime-box/index.mjs +3 -0
- package/esm2022/datetime-box/lib/datetime-box.component.mjs +110 -0
- package/esm2022/datetime-box/lib/datetime-box.module.mjs +38 -0
- package/esm2022/datetime-input/acorex-components-datetime-input.mjs +5 -0
- package/esm2022/datetime-input/index.mjs +3 -0
- package/esm2022/datetime-input/lib/datetime-input.component.mjs +553 -0
- package/esm2022/datetime-input/lib/datetime-input.module.mjs +23 -0
- package/esm2022/datetime-picker/acorex-components-datetime-picker.mjs +5 -0
- package/esm2022/datetime-picker/index.mjs +4 -0
- package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +266 -0
- package/esm2022/datetime-picker/lib/datetime-picker.config.mjs +22 -0
- package/esm2022/datetime-picker/lib/datetime-picker.module.mjs +44 -0
- package/esm2022/decorators/acorex-components-decorators.mjs +5 -0
- package/esm2022/decorators/index.mjs +6 -0
- package/esm2022/decorators/lib/components/clear-button.component.mjs +70 -0
- package/esm2022/decorators/lib/components/close-button.component.mjs +52 -0
- package/esm2022/decorators/lib/components/generic-content.component.mjs +38 -0
- package/esm2022/decorators/lib/components/icon.component.mjs +25 -0
- package/esm2022/decorators/lib/decorators.module.mjs +35 -0
- package/esm2022/dialog/acorex-components-dialog.mjs +5 -0
- package/esm2022/dialog/index.mjs +5 -0
- package/esm2022/dialog/lib/dialog.class.mjs +2 -0
- package/esm2022/dialog/lib/dialog.component.mjs +62 -0
- package/esm2022/dialog/lib/dialog.module.mjs +48 -0
- package/esm2022/dialog/lib/dialog.service.mjs +164 -0
- package/esm2022/drawer/acorex-components-drawer.mjs +5 -0
- package/esm2022/drawer/index.mjs +4 -0
- package/esm2022/drawer/lib/drawer-container.component.mjs +33 -0
- package/esm2022/drawer/lib/drawer.component.mjs +151 -0
- package/esm2022/drawer/lib/drawer.module.mjs +22 -0
- package/esm2022/dropdown/acorex-components-dropdown.mjs +5 -0
- package/esm2022/dropdown/index.mjs +5 -0
- package/esm2022/dropdown/lib/dropdown-box.class.mjs +38 -0
- package/esm2022/dropdown/lib/dropdown-box.component.mjs +103 -0
- package/esm2022/dropdown/lib/dropdown-panel.component.mjs +145 -0
- package/esm2022/dropdown/lib/dropdown.module.mjs +42 -0
- package/esm2022/dropdown-button/acorex-components-dropdown-button.mjs +5 -0
- package/esm2022/dropdown-button/index.mjs +3 -0
- package/esm2022/dropdown-button/lib/dropdown-button.component.mjs +97 -0
- package/esm2022/dropdown-button/lib/dropdown-button.module.mjs +45 -0
- package/esm2022/form/acorex-components-form.mjs +5 -0
- package/esm2022/form/index.mjs +7 -0
- package/esm2022/form/lib/form-field.component.mjs +40 -0
- package/esm2022/form/lib/form.component.mjs +122 -0
- package/esm2022/form/lib/form.config.mjs +16 -0
- package/esm2022/form/lib/form.module.mjs +60 -0
- package/esm2022/form/lib/validation-rule.directive.mjs +36 -0
- package/esm2022/form/lib/validation-summary.component.mjs +133 -0
- package/esm2022/image/acorex-components-image.mjs +5 -0
- package/esm2022/image/index.mjs +3 -0
- package/esm2022/image/lib/image.component.mjs +72 -0
- package/esm2022/image/lib/image.module.mjs +19 -0
- package/esm2022/index.mjs +2 -158
- package/esm2022/label/acorex-components-label.mjs +5 -0
- package/esm2022/label/index.mjs +3 -0
- package/esm2022/label/lib/label.component.mjs +47 -0
- package/esm2022/label/lib/label.module.mjs +21 -0
- package/esm2022/list/acorex-components-list.mjs +5 -0
- package/esm2022/list/index.mjs +3 -0
- package/esm2022/list/lib/list.component.mjs +184 -0
- package/esm2022/list/lib/list.module.mjs +23 -0
- package/esm2022/loading/acorex-components-loading.mjs +5 -0
- package/esm2022/loading/index.mjs +7 -0
- package/esm2022/loading/lib/loading-spinner.component.mjs +44 -0
- package/esm2022/loading/lib/loading.component.mjs +62 -0
- package/esm2022/loading/lib/loading.config.mjs +17 -0
- package/esm2022/loading/lib/loading.directive.mjs +39 -0
- package/esm2022/loading/lib/loading.module.mjs +35 -0
- package/esm2022/loading/lib/loading.service.mjs +129 -0
- package/esm2022/loading-dialog/acorex-components-loading-dialog.mjs +5 -0
- package/esm2022/loading-dialog/index.mjs +5 -0
- package/esm2022/loading-dialog/lib/loading-dialog.class.mjs +2 -0
- package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +63 -0
- package/esm2022/loading-dialog/lib/loading-dialog.module.mjs +46 -0
- package/esm2022/loading-dialog/lib/loading-dialog.service.mjs +37 -0
- package/esm2022/menu/acorex-components-menu.mjs +5 -0
- package/esm2022/menu/index.mjs +5 -0
- package/esm2022/menu/lib/class/root-menu.class.mjs +3 -0
- package/esm2022/menu/lib/menu-item/menu-item.component.mjs +140 -0
- package/esm2022/menu/lib/menu.component.mjs +48 -0
- package/esm2022/menu/lib/menu.module.mjs +37 -0
- package/esm2022/nav/acorex-components-nav.mjs +5 -0
- package/esm2022/nav/index.mjs +4 -0
- package/esm2022/nav/lib/nav-item/nav-item.component.mjs +41 -0
- package/esm2022/nav/lib/nav.component.mjs +12 -0
- package/esm2022/nav/lib/nav.module.mjs +23 -0
- package/esm2022/navbar/acorex-components-navbar.mjs +5 -0
- package/esm2022/navbar/index.mjs +3 -0
- package/esm2022/navbar/lib/navbar.component.mjs +18 -0
- package/esm2022/navbar/lib/navbar.module.mjs +18 -0
- package/esm2022/notification/acorex-components-notification.mjs +5 -0
- package/esm2022/notification/index.mjs +6 -0
- package/esm2022/notification/lib/notification.class.mjs +2 -0
- package/esm2022/notification/lib/notification.component.mjs +105 -0
- package/esm2022/notification/lib/notification.config.mjs +20 -0
- package/esm2022/notification/lib/notification.module.mjs +42 -0
- package/esm2022/notification/lib/notification.service.mjs +102 -0
- package/esm2022/number-box/acorex-components-number-box.mjs +5 -0
- package/esm2022/number-box/index.mjs +3 -0
- package/esm2022/number-box/lib/number-box.component.mjs +294 -0
- package/esm2022/number-box/lib/number-box.module.mjs +35 -0
- package/esm2022/otp/acorex-components-otp.mjs +5 -0
- package/esm2022/otp/index.mjs +4 -0
- package/esm2022/otp/lib/otp.class.mjs +4 -0
- package/esm2022/otp/lib/otp.component.mjs +158 -0
- package/esm2022/otp/lib/otp.module.mjs +22 -0
- package/esm2022/page/acorex-components-page.mjs +5 -0
- package/esm2022/page/index.mjs +4 -0
- package/esm2022/page/lib/base-page.class.mjs +62 -0
- package/esm2022/page/lib/page.component.mjs +44 -0
- package/esm2022/page/lib/page.module.mjs +18 -0
- package/esm2022/password-box/acorex-components-password-box.mjs +5 -0
- package/esm2022/password-box/index.mjs +3 -0
- package/esm2022/password-box/lib/password-box.component.mjs +94 -0
- package/esm2022/password-box/lib/password-box.module.mjs +24 -0
- package/esm2022/phone-box/acorex-components-phone-box.mjs +5 -0
- package/esm2022/phone-box/index.mjs +3 -0
- package/esm2022/phone-box/lib/phone-box.component.mjs +135 -0
- package/esm2022/phone-box/lib/phone-box.module.mjs +44 -0
- package/esm2022/picker/acorex-components-picker.mjs +5 -0
- package/esm2022/picker/index.mjs +4 -0
- package/esm2022/picker/lib/picker-column.directive.mjs +66 -0
- package/esm2022/picker/lib/picker.component.mjs +164 -0
- package/esm2022/picker/lib/picker.module.mjs +22 -0
- package/esm2022/popover/acorex-components-popover.mjs +5 -0
- package/esm2022/popover/index.mjs +3 -0
- package/esm2022/popover/lib/popover.component.mjs +379 -0
- package/esm2022/popover/lib/popover.module.mjs +19 -0
- package/esm2022/popup/acorex-components-popup.mjs +5 -0
- package/esm2022/popup/index.mjs +5 -0
- package/esm2022/popup/lib/popup.component.mjs +153 -0
- package/esm2022/popup/lib/popup.interface.mjs +2 -0
- package/esm2022/popup/lib/popup.module.mjs +45 -0
- package/esm2022/popup/lib/popup.service.mjs +65 -0
- package/esm2022/progress-bar/acorex-components-progress-bar.mjs +5 -0
- package/esm2022/progress-bar/index.mjs +3 -0
- package/esm2022/progress-bar/lib/progress-bar.component.mjs +57 -0
- package/esm2022/progress-bar/lib/progress-bar.module.mjs +19 -0
- package/esm2022/radio/acorex-components-radio.mjs +5 -0
- package/esm2022/radio/index.mjs +3 -0
- package/esm2022/radio/lib/radio.component.mjs +62 -0
- package/esm2022/radio/lib/radio.module.mjs +22 -0
- package/esm2022/range-slider/acorex-components-range-slider.mjs +5 -0
- package/esm2022/range-slider/index.mjs +3 -0
- package/esm2022/range-slider/lib/range-slider.component.mjs +117 -0
- package/esm2022/range-slider/lib/range-slider.module.mjs +23 -0
- package/esm2022/result/acorex-components-result.mjs +5 -0
- package/esm2022/result/index.mjs +3 -0
- package/esm2022/result/lib/result.component.mjs +27 -0
- package/esm2022/result/lib/result.module.mjs +19 -0
- package/esm2022/routing-progress/acorex-components-routing-progress.mjs +5 -0
- package/esm2022/routing-progress/index.mjs +3 -0
- package/esm2022/routing-progress/lib/routing-progress.component.mjs +57 -0
- package/esm2022/routing-progress/lib/routing-progress.module.mjs +21 -0
- package/esm2022/scheduler/acorex-components-scheduler.mjs +5 -0
- package/esm2022/scheduler/index.mjs +5 -0
- package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +53 -0
- package/esm2022/scheduler/lib/scheduler-week-view.component.mjs +12 -0
- package/esm2022/scheduler/lib/scheduler.component.mjs +43 -0
- package/esm2022/scheduler/lib/scheduler.module.mjs +45 -0
- package/esm2022/scss/acorex-components-scss.mjs +5 -0
- package/esm2022/scss/index.mjs +2 -0
- package/esm2022/scss/lib/scss.module.mjs +15 -0
- package/esm2022/search-box/acorex-components-search-box.mjs +5 -0
- package/esm2022/search-box/index.mjs +3 -0
- package/esm2022/search-box/lib/search-box.component.mjs +87 -0
- package/esm2022/search-box/lib/search-box.module.mjs +46 -0
- package/esm2022/select-box/acorex-components-select-box.mjs +5 -0
- package/esm2022/select-box/index.mjs +3 -0
- package/esm2022/select-box/lib/select-box.component.mjs +299 -0
- package/esm2022/select-box/lib/select-box.module.mjs +69 -0
- package/esm2022/selection-list/acorex-components-selection-list.mjs +5 -0
- package/esm2022/selection-list/index.mjs +3 -0
- package/esm2022/selection-list/lib/selection-list.component.mjs +135 -0
- package/esm2022/selection-list/lib/selection-list.module.mjs +41 -0
- package/esm2022/side-menu/acorex-components-side-menu.mjs +5 -0
- package/esm2022/side-menu/index.mjs +4 -0
- package/esm2022/side-menu/lib/side-menu-item/side-menu-item.compoent.mjs +147 -0
- package/esm2022/side-menu/lib/side-menu.component.mjs +12 -0
- package/esm2022/side-menu/lib/side-menu.module.mjs +25 -0
- package/esm2022/skeleton/acorex-components-skeleton.mjs +5 -0
- package/esm2022/skeleton/index.mjs +3 -0
- package/esm2022/skeleton/lib/skeleton.component.mjs +24 -0
- package/esm2022/skeleton/lib/skeleton.module.mjs +18 -0
- package/esm2022/step-wizard/acorex-components-step-wizard.mjs +5 -0
- package/esm2022/step-wizard/index.mjs +6 -0
- package/esm2022/step-wizard/lib/step-wizard-item/step-wizard-item.component.mjs +66 -0
- package/esm2022/step-wizard/lib/step-wizard.class.mjs +2 -0
- package/esm2022/step-wizard/lib/step-wizard.component.mjs +102 -0
- package/esm2022/step-wizard/lib/step-wizard.directive.mjs +28 -0
- package/esm2022/step-wizard/lib/step-wizard.module.mjs +33 -0
- package/esm2022/switch/acorex-components-switch.mjs +5 -0
- package/esm2022/switch/index.mjs +4 -0
- package/esm2022/switch/lib/switch-content.component.mjs +15 -0
- package/esm2022/switch/lib/switch.component.mjs +51 -0
- package/esm2022/switch/lib/switch.module.mjs +21 -0
- package/esm2022/tabs/acorex-components-tabs.mjs +5 -0
- package/esm2022/tabs/index.mjs +6 -0
- package/esm2022/tabs/lib/tab-content.directive.mjs +28 -0
- package/esm2022/tabs/lib/tab-item.component.mjs +121 -0
- package/esm2022/tabs/lib/tabs.class.mjs +4 -0
- package/esm2022/tabs/lib/tabs.component.mjs +99 -0
- package/esm2022/tabs/lib/tabs.module.mjs +25 -0
- package/esm2022/tag/acorex-components-tag.mjs +5 -0
- package/esm2022/tag/index.mjs +3 -0
- package/esm2022/tag/lib/tag.component.mjs +20 -0
- package/esm2022/tag/lib/tag.module.mjs +19 -0
- package/esm2022/text-area/acorex-components-text-area.mjs +5 -0
- package/esm2022/text-area/index.mjs +3 -0
- package/esm2022/text-area/lib/text-area.component.mjs +65 -0
- package/esm2022/text-area/lib/text-area.module.mjs +19 -0
- package/esm2022/text-box/acorex-components-text-box.mjs +5 -0
- package/esm2022/text-box/index.mjs +4 -0
- package/esm2022/text-box/lib/mask-options.directive.mjs +17 -0
- package/esm2022/text-box/lib/text-box.component.mjs +131 -0
- package/esm2022/text-box/lib/text-box.module.mjs +38 -0
- package/esm2022/toast/acorex-components-toast.mjs +5 -0
- package/esm2022/toast/index.mjs +6 -0
- package/esm2022/toast/lib/toast.class.mjs +2 -0
- package/esm2022/toast/lib/toast.component.mjs +81 -0
- package/esm2022/toast/lib/toast.config.mjs +25 -0
- package/esm2022/toast/lib/toast.module.mjs +39 -0
- package/esm2022/toast/lib/toast.service.mjs +139 -0
- package/esm2022/tooltip/acorex-components-tooltip.mjs +5 -0
- package/esm2022/tooltip/index.mjs +4 -0
- package/esm2022/tooltip/lib/tooltip.component.mjs +16 -0
- package/esm2022/tooltip/lib/tooltip.directive.mjs +80 -0
- package/esm2022/tooltip/lib/tooltip.module.mjs +22 -0
- package/esm2022/uploader/acorex-components-uploader.mjs +5 -0
- package/esm2022/uploader/index.mjs +8 -0
- package/esm2022/uploader/lib/uploader-browse-handle.directive.mjs +27 -0
- package/esm2022/uploader/lib/uploader-dialog-container.component.mjs +40 -0
- package/esm2022/uploader/lib/uploader-drop-zone.component.mjs +14 -0
- package/esm2022/uploader/lib/uploader-list.component.mjs +21 -0
- package/esm2022/uploader/lib/uploader-zone.directive.mjs +79 -0
- package/esm2022/uploader/lib/uploader.models.mjs +68 -0
- package/esm2022/uploader/lib/uploader.module.mjs +84 -0
- package/esm2022/uploader/lib/uploader.service.mjs +86 -0
- package/fesm2022/acorex-components-action-sheet.mjs +205 -0
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -0
- package/fesm2022/acorex-components-alert.mjs +220 -0
- package/fesm2022/acorex-components-alert.mjs.map +1 -0
- package/fesm2022/acorex-components-avatar.mjs +78 -0
- package/fesm2022/acorex-components-avatar.mjs.map +1 -0
- package/fesm2022/acorex-components-badge.mjs +47 -0
- package/fesm2022/acorex-components-badge.mjs.map +1 -0
- package/fesm2022/acorex-components-bottom-navigation.mjs +120 -0
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -0
- package/fesm2022/acorex-components-breadcrumbs.mjs +73 -0
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -0
- package/fesm2022/acorex-components-button-group.mjs +143 -0
- package/fesm2022/acorex-components-button-group.mjs.map +1 -0
- package/fesm2022/acorex-components-button.mjs +356 -0
- package/fesm2022/acorex-components-button.mjs.map +1 -0
- package/fesm2022/acorex-components-calendar.mjs +840 -0
- package/fesm2022/acorex-components-calendar.mjs.map +1 -0
- package/fesm2022/acorex-components-chat.mjs +441 -0
- package/fesm2022/acorex-components-chat.mjs.map +1 -0
- package/fesm2022/acorex-components-check-box.mjs +124 -0
- package/fesm2022/acorex-components-check-box.mjs.map +1 -0
- package/fesm2022/acorex-components-chips.mjs +51 -0
- package/fesm2022/acorex-components-chips.mjs.map +1 -0
- package/fesm2022/acorex-components-circular-progress.mjs +117 -0
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -0
- package/fesm2022/acorex-components-collapse.mjs +296 -0
- package/fesm2022/acorex-components-collapse.mjs.map +1 -0
- package/fesm2022/acorex-components-color-box.mjs +104 -0
- package/fesm2022/acorex-components-color-box.mjs.map +1 -0
- package/fesm2022/acorex-components-color-palette.mjs +800 -0
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -0
- package/fesm2022/acorex-components-common.mjs +1737 -0
- package/fesm2022/acorex-components-common.mjs.map +1 -0
- package/fesm2022/acorex-components-data-pager.mjs +758 -0
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -0
- package/fesm2022/acorex-components-data-table.mjs +1143 -0
- package/fesm2022/acorex-components-data-table.mjs.map +1 -0
- package/fesm2022/acorex-components-datetime-box.mjs +147 -0
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -0
- package/fesm2022/acorex-components-datetime-input.mjs +578 -0
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -0
- package/fesm2022/acorex-components-datetime-picker.mjs +328 -0
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -0
- package/fesm2022/acorex-components-decorators.mjs +210 -0
- package/fesm2022/acorex-components-decorators.mjs.map +1 -0
- package/fesm2022/acorex-components-dialog.mjs +271 -0
- package/fesm2022/acorex-components-dialog.mjs.map +1 -0
- package/fesm2022/acorex-components-drawer.mjs +206 -0
- package/fesm2022/acorex-components-drawer.mjs.map +1 -0
- package/fesm2022/acorex-components-dropdown-button.mjs +145 -0
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -0
- package/fesm2022/acorex-components-dropdown.mjs +319 -0
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -0
- package/fesm2022/acorex-components-form.mjs +394 -0
- package/fesm2022/acorex-components-form.mjs.map +1 -0
- package/fesm2022/acorex-components-image.mjs +95 -0
- package/fesm2022/acorex-components-image.mjs.map +1 -0
- package/fesm2022/acorex-components-label.mjs +72 -0
- package/fesm2022/acorex-components-label.mjs.map +1 -0
- package/fesm2022/acorex-components-list.mjs +210 -0
- package/fesm2022/acorex-components-list.mjs.map +1 -0
- package/fesm2022/acorex-components-loading-dialog.mjs +144 -0
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -0
- package/fesm2022/acorex-components-loading.mjs +313 -0
- package/fesm2022/acorex-components-loading.mjs.map +1 -0
- package/fesm2022/acorex-components-menu.mjs +224 -0
- package/fesm2022/acorex-components-menu.mjs.map +1 -0
- package/fesm2022/acorex-components-nav.mjs +75 -0
- package/fesm2022/acorex-components-nav.mjs.map +1 -0
- package/fesm2022/acorex-components-navbar.mjs +40 -0
- package/fesm2022/acorex-components-navbar.mjs.map +1 -0
- package/fesm2022/acorex-components-notification.mjs +264 -0
- package/fesm2022/acorex-components-notification.mjs.map +1 -0
- package/fesm2022/acorex-components-number-box.mjs +331 -0
- package/fesm2022/acorex-components-number-box.mjs.map +1 -0
- package/fesm2022/acorex-components-otp.mjs +186 -0
- package/fesm2022/acorex-components-otp.mjs.map +1 -0
- package/fesm2022/acorex-components-page.mjs +125 -0
- package/fesm2022/acorex-components-page.mjs.map +1 -0
- package/fesm2022/acorex-components-password-box.mjs +121 -0
- package/fesm2022/acorex-components-password-box.mjs.map +1 -0
- package/fesm2022/acorex-components-phone-box.mjs +182 -0
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -0
- package/fesm2022/acorex-components-picker.mjs +251 -0
- package/fesm2022/acorex-components-picker.mjs.map +1 -0
- package/fesm2022/acorex-components-popover.mjs +402 -0
- package/fesm2022/acorex-components-popover.mjs.map +1 -0
- package/fesm2022/acorex-components-popup.mjs +256 -0
- package/fesm2022/acorex-components-popup.mjs.map +1 -0
- package/fesm2022/acorex-components-progress-bar.mjs +80 -0
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -0
- package/fesm2022/acorex-components-radio.mjs +87 -0
- package/fesm2022/acorex-components-radio.mjs.map +1 -0
- package/fesm2022/acorex-components-range-slider.mjs +142 -0
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -0
- package/fesm2022/acorex-components-result.mjs +50 -0
- package/fesm2022/acorex-components-result.mjs.map +1 -0
- package/fesm2022/acorex-components-routing-progress.mjs +82 -0
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -0
- package/fesm2022/acorex-components-scheduler.mjs +142 -0
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -0
- package/fesm2022/acorex-components-scss.mjs +22 -0
- package/fesm2022/acorex-components-scss.mjs.map +1 -0
- package/fesm2022/acorex-components-search-box.mjs +135 -0
- package/fesm2022/acorex-components-search-box.mjs.map +1 -0
- package/fesm2022/acorex-components-select-box.mjs +368 -0
- package/fesm2022/acorex-components-select-box.mjs.map +1 -0
- package/fesm2022/acorex-components-selection-list.mjs +179 -0
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -0
- package/fesm2022/acorex-components-side-menu.mjs +183 -0
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -0
- package/fesm2022/acorex-components-skeleton.mjs +46 -0
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -0
- package/fesm2022/acorex-components-step-wizard.mjs +224 -0
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -0
- package/fesm2022/acorex-components-switch.mjs +86 -0
- package/fesm2022/acorex-components-switch.mjs.map +1 -0
- package/fesm2022/acorex-components-tabs.mjs +271 -0
- package/fesm2022/acorex-components-tabs.mjs.map +1 -0
- package/fesm2022/acorex-components-tag.mjs +43 -0
- package/fesm2022/acorex-components-tag.mjs.map +1 -0
- package/fesm2022/acorex-components-text-area.mjs +87 -0
- package/fesm2022/acorex-components-text-area.mjs.map +1 -0
- package/fesm2022/acorex-components-text-box.mjs +184 -0
- package/fesm2022/acorex-components-text-box.mjs.map +1 -0
- package/fesm2022/acorex-components-toast.mjs +280 -0
- package/fesm2022/acorex-components-toast.mjs.map +1 -0
- package/fesm2022/acorex-components-tooltip.mjs +117 -0
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -0
- package/fesm2022/acorex-components-uploader.mjs +399 -0
- package/fesm2022/acorex-components-uploader.mjs.map +1 -0
- package/fesm2022/acorex-components.mjs +2 -17392
- package/fesm2022/acorex-components.mjs.map +1 -1
- package/form/README.md +3 -0
- package/form/index.d.ts +6 -0
- package/form/lib/form-field.component.d.ts +12 -0
- package/form/lib/form.component.d.ts +42 -0
- package/form/lib/form.config.d.ts +7 -0
- package/form/lib/form.module.d.ts +16 -0
- package/form/lib/validation-rule.directive.d.ts +16 -0
- package/form/lib/validation-summary.component.d.ts +25 -0
- package/image/README.md +3 -0
- package/image/index.d.ts +2 -0
- package/image/lib/image.component.d.ts +21 -0
- package/image/lib/image.module.d.ts +8 -0
- package/index.d.ts +1 -155
- package/label/README.md +3 -0
- package/label/index.d.ts +2 -0
- package/label/lib/label.component.d.ts +14 -0
- package/list/README.md +3 -0
- package/list/index.d.ts +2 -0
- package/list/lib/list.component.d.ts +39 -0
- package/list/lib/list.module.d.ts +10 -0
- package/loading/README.md +3 -0
- package/loading/index.d.ts +6 -0
- package/loading/lib/loading-spinner.component.d.ts +10 -0
- package/loading/lib/loading.component.d.ts +18 -0
- package/loading/lib/loading.config.d.ts +8 -0
- package/loading/lib/loading.directive.d.ts +15 -0
- package/loading/lib/loading.module.d.ts +13 -0
- package/loading/lib/loading.service.d.ts +29 -0
- package/loading-dialog/README.md +3 -0
- package/loading-dialog/index.d.ts +4 -0
- package/loading-dialog/lib/loading-dialog.class.d.ts +35 -0
- package/loading-dialog/lib/loading-dialog.component.d.ts +25 -0
- package/loading-dialog/lib/loading-dialog.module.d.ts +14 -0
- package/loading-dialog/lib/loading-dialog.service.d.ts +8 -0
- package/menu/README.md +3 -0
- package/menu/index.d.ts +4 -0
- package/menu/lib/class/root-menu.class.d.ts +6 -0
- package/menu/lib/menu-item/menu-item.component.d.ts +37 -0
- package/menu/lib/menu.component.d.ts +14 -0
- package/menu/lib/menu.module.d.ts +14 -0
- package/nav/README.md +3 -0
- package/nav/index.d.ts +3 -0
- package/nav/lib/nav-item/nav-item.component.d.ts +15 -0
- package/nav/lib/nav.component.d.ts +6 -0
- package/nav/lib/nav.module.d.ts +10 -0
- package/navbar/README.md +3 -0
- package/navbar/index.d.ts +2 -0
- package/navbar/lib/navbar.component.d.ts +7 -0
- package/navbar/lib/navbar.module.d.ts +8 -0
- package/notification/README.md +3 -0
- package/notification/index.d.ts +5 -0
- package/notification/lib/notification.class.d.ts +40 -0
- package/notification/lib/notification.component.d.ts +29 -0
- package/notification/lib/notification.config.d.ts +13 -0
- package/notification/lib/notification.module.d.ts +14 -0
- package/notification/lib/notification.service.d.ts +12 -0
- package/number-box/README.md +3 -0
- package/number-box/index.d.ts +2 -0
- package/number-box/lib/number-box.component.d.ts +80 -0
- package/number-box/lib/number-box.module.d.ts +12 -0
- package/otp/README.md +3 -0
- package/otp/index.d.ts +3 -0
- package/otp/lib/otp.class.d.ts +5 -0
- package/otp/lib/otp.component.d.ts +31 -0
- package/otp/lib/otp.module.d.ts +9 -0
- package/package.json +403 -6
- package/page/README.md +3 -0
- package/page/index.d.ts +3 -0
- package/page/lib/base-page.class.d.ts +22 -0
- package/page/lib/page.component.d.ts +14 -0
- package/page/lib/page.module.d.ts +6 -0
- package/password-box/README.md +3 -0
- package/password-box/index.d.ts +2 -0
- package/password-box/lib/password-box.component.d.ts +29 -0
- package/password-box/lib/password-box.module.d.ts +11 -0
- package/phone-box/README.md +3 -0
- package/phone-box/index.d.ts +2 -0
- package/phone-box/lib/phone-box.component.d.ts +30 -0
- package/phone-box/lib/phone-box.module.d.ts +15 -0
- package/picker/README.md +3 -0
- package/picker/index.d.ts +3 -0
- package/picker/lib/picker-column.directive.d.ts +16 -0
- package/picker/lib/picker.component.d.ts +31 -0
- package/picker/lib/picker.module.d.ts +9 -0
- package/popover/README.md +3 -0
- package/popover/index.d.ts +2 -0
- package/popover/lib/popover.component.d.ts +72 -0
- package/popup/README.md +3 -0
- package/popup/index.d.ts +4 -0
- package/popup/lib/popup.component.d.ts +40 -0
- package/popup/lib/popup.interface.d.ts +28 -0
- package/popup/lib/popup.module.d.ts +15 -0
- package/popup/lib/popup.service.d.ts +21 -0
- package/progress-bar/README.md +3 -0
- package/progress-bar/index.d.ts +2 -0
- package/progress-bar/lib/progress-bar.component.d.ts +25 -0
- package/radio/README.md +3 -0
- package/radio/index.d.ts +2 -0
- package/radio/lib/radio.component.d.ts +16 -0
- package/radio/lib/radio.module.d.ts +9 -0
- package/range-slider/README.md +3 -0
- package/range-slider/index.d.ts +2 -0
- package/range-slider/lib/range-slider.component.d.ts +40 -0
- package/range-slider/lib/range-slider.module.d.ts +10 -0
- package/result/README.md +3 -0
- package/result/index.d.ts +2 -0
- package/result/lib/result.component.d.ts +10 -0
- package/result/lib/result.module.d.ts +8 -0
- package/routing-progress/README.md +3 -0
- package/routing-progress/index.d.ts +2 -0
- package/routing-progress/lib/routing-progress.component.d.ts +14 -0
- package/routing-progress/lib/routing-progress.module.d.ts +8 -0
- package/scheduler/README.md +3 -0
- package/scheduler/index.d.ts +4 -0
- package/scheduler/lib/scheduler-month-view.component.d.ts +21 -0
- package/scheduler/lib/scheduler-week-view.component.d.ts +6 -0
- package/scheduler/lib/scheduler.component.d.ts +17 -0
- package/scheduler/lib/scheduler.module.d.ts +14 -0
- package/scss/README.md +3 -0
- package/scss/index.d.ts +1 -0
- package/scss/lib/scss.module.d.ts +7 -0
- package/search-box/README.md +3 -0
- package/search-box/index.d.ts +2 -0
- package/search-box/lib/search-box.component.d.ts +17 -0
- package/search-box/lib/search-box.module.d.ts +14 -0
- package/select-box/README.md +3 -0
- package/select-box/index.d.ts +2 -0
- package/select-box/lib/select-box.component.d.ts +60 -0
- package/select-box/lib/select-box.module.d.ts +20 -0
- package/selection-list/README.md +3 -0
- package/selection-list/index.d.ts +2 -0
- package/selection-list/lib/selection-list.component.d.ts +30 -0
- package/selection-list/lib/selection-list.module.d.ts +13 -0
- package/side-menu/README.md +3 -0
- package/side-menu/index.d.ts +3 -0
- package/side-menu/lib/side-menu-item/side-menu-item.compoent.d.ts +48 -0
- package/side-menu/lib/side-menu.component.d.ts +6 -0
- package/side-menu/lib/side-menu.module.d.ts +12 -0
- package/skeleton/README.md +3 -0
- package/skeleton/index.d.ts +2 -0
- package/skeleton/lib/skeleton.component.d.ts +8 -0
- package/skeleton/lib/skeleton.module.d.ts +8 -0
- package/step-wizard/README.md +3 -0
- package/step-wizard/index.d.ts +5 -0
- package/step-wizard/lib/step-wizard-item/step-wizard-item.component.d.ts +23 -0
- package/step-wizard/lib/step-wizard.class.d.ts +5 -0
- package/step-wizard/lib/step-wizard.component.d.ts +28 -0
- package/step-wizard/lib/step-wizard.directive.d.ts +11 -0
- package/step-wizard/lib/step-wizard.module.d.ts +12 -0
- package/switch/README.md +3 -0
- package/switch/index.d.ts +3 -0
- package/switch/lib/switch-content.component.d.ts +6 -0
- package/switch/lib/switch.component.d.ts +15 -0
- package/switch/lib/switch.module.d.ts +10 -0
- package/tabs/README.md +3 -0
- package/tabs/index.d.ts +5 -0
- package/tabs/lib/tab-content.directive.d.ts +11 -0
- package/tabs/lib/tab-item.component.d.ts +18 -0
- package/tabs/lib/tabs.class.d.ts +8 -0
- package/tabs/lib/tabs.component.d.ts +27 -0
- package/tabs/lib/tabs.module.d.ts +12 -0
- package/tag/README.md +3 -0
- package/tag/index.d.ts +2 -0
- package/tag/lib/tag.component.d.ts +8 -0
- package/tag/lib/tag.module.d.ts +8 -0
- package/text-area/README.md +3 -0
- package/text-area/index.d.ts +2 -0
- package/text-area/lib/text-area.component.d.ts +19 -0
- package/text-area/lib/text-area.module.d.ts +9 -0
- package/text-box/README.md +3 -0
- package/text-box/index.d.ts +3 -0
- package/text-box/lib/mask-options.directive.d.ts +13 -0
- package/text-box/lib/text-box.component.d.ts +33 -0
- package/text-box/lib/text-box.module.d.ts +13 -0
- package/toast/README.md +3 -0
- package/toast/index.d.ts +5 -0
- package/toast/lib/toast.class.d.ts +24 -0
- package/toast/lib/toast.component.d.ts +27 -0
- package/toast/lib/toast.config.d.ts +12 -0
- package/toast/lib/toast.module.d.ts +13 -0
- package/toast/lib/toast.service.d.ts +21 -0
- package/tooltip/README.md +3 -0
- package/tooltip/index.d.ts +3 -0
- package/tooltip/lib/tooltip.component.d.ts +8 -0
- package/tooltip/lib/tooltip.directive.d.ts +22 -0
- package/tooltip/lib/tooltip.module.d.ts +10 -0
- package/uploader/README.md +3 -0
- package/uploader/index.d.ts +7 -0
- package/uploader/lib/uploader-browse-handle.directive.d.ts +11 -0
- package/uploader/lib/uploader-dialog-container.component.d.ts +9 -0
- package/uploader/lib/uploader-drop-zone.component.d.ts +6 -0
- package/uploader/lib/uploader-list.component.d.ts +8 -0
- package/uploader/lib/uploader-zone.directive.d.ts +24 -0
- package/uploader/lib/uploader.models.d.ts +19 -0
- package/uploader/lib/uploader.module.d.ts +22 -0
- package/uploader/lib/uploader.service.d.ts +21 -0
- package/esm2022/lib/accordion/accordion.component.mjs +0 -45
- package/esm2022/lib/accordion/accordion.module.mjs +0 -20
- package/esm2022/lib/base/base-page.class.mjs +0 -97
- package/esm2022/lib/base/components.class.mjs +0 -17
- package/esm2022/lib/base/element.class.mjs +0 -301
- package/esm2022/lib/base/events.class.mjs +0 -17
- package/esm2022/lib/button/button.component.mjs +0 -74
- package/esm2022/lib/button/button.module.mjs +0 -21
- package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +0 -426
- package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +0 -22
- package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +0 -59
- package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +0 -16
- package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +0 -226
- package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +0 -68
- package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +0 -136
- package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +0 -37
- package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +0 -49
- package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +0 -102
- package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +0 -214
- package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +0 -99
- package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +0 -85
- package/esm2022/lib/checkbox/checkbox.component.mjs +0 -109
- package/esm2022/lib/checkbox/checkbox.module.mjs +0 -20
- package/esm2022/lib/color-picker/color-box/color-box.component.mjs +0 -423
- package/esm2022/lib/color-picker/color-picker.component.mjs +0 -89
- package/esm2022/lib/color-picker/color-picker.module.mjs +0 -24
- package/esm2022/lib/context-menu/context-menu.component.mjs +0 -68
- package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -146
- package/esm2022/lib/context-menu/context-menu.module.mjs +0 -20
- package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +0 -140
- package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +0 -119
- package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +0 -75
- package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +0 -119
- package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +0 -267
- package/esm2022/lib/data-filter/filter.class.mjs +0 -46
- package/esm2022/lib/data-filter/filter.module.mjs +0 -88
- package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +0 -168
- package/esm2022/lib/data-list/core/data-list.component.mjs +0 -37
- package/esm2022/lib/data-list/list/list.component.mjs +0 -134
- package/esm2022/lib/data-list/list/list.module.mjs +0 -22
- package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +0 -84
- package/esm2022/lib/data-source/datasource.component.mjs +0 -47
- package/esm2022/lib/data-source/datasource.module.mjs +0 -18
- package/esm2022/lib/data-source/read-param.mjs +0 -7
- package/esm2022/lib/date-picker/date-picker.component.mjs +0 -1102
- package/esm2022/lib/date-picker/date-picker.module.mjs +0 -49
- package/esm2022/lib/dialog/dialog.component.mjs +0 -26
- package/esm2022/lib/dialog/dialog.module.mjs +0 -21
- package/esm2022/lib/dialog/dialog.service.mjs +0 -160
- package/esm2022/lib/drawer/content.component.mjs +0 -18
- package/esm2022/lib/drawer/drawer-container.component.mjs +0 -38
- package/esm2022/lib/drawer/drawer.component.mjs +0 -146
- package/esm2022/lib/drawer/drawer.module.mjs +0 -23
- package/esm2022/lib/dropdown/dropdown.component.mjs +0 -186
- package/esm2022/lib/dropdown/dropdown.module.mjs +0 -26
- package/esm2022/lib/fieldset/fieldset.component.mjs +0 -57
- package/esm2022/lib/fieldset/fieldset.module.mjs +0 -19
- package/esm2022/lib/form-group/form-group.component.mjs +0 -37
- package/esm2022/lib/form-group/form-group.module.mjs +0 -21
- package/esm2022/lib/label/label.component.mjs +0 -19
- package/esm2022/lib/label/label.module.mjs +0 -21
- package/esm2022/lib/loading/loading-indicator.component.mjs +0 -18
- package/esm2022/lib/loading/loading-panel.component.mjs +0 -45
- package/esm2022/lib/loading/loading.module.mjs +0 -21
- package/esm2022/lib/loading/loading.service.mjs +0 -47
- package/esm2022/lib/menu/menu-item.component.mjs +0 -50
- package/esm2022/lib/menu/menu.component.mjs +0 -98
- package/esm2022/lib/menu/menu.module.mjs +0 -22
- package/esm2022/lib/menu/menu2.component.mjs +0 -100
- package/esm2022/lib/number-box/number-box.component.mjs +0 -628
- package/esm2022/lib/number-box/number-box.module.mjs +0 -21
- package/esm2022/lib/page/content.component.mjs +0 -27
- package/esm2022/lib/page/footer.component.mjs +0 -19
- package/esm2022/lib/page/page.component.mjs +0 -57
- package/esm2022/lib/page/page.module.mjs +0 -22
- package/esm2022/lib/panel-box/panel-box.component.mjs +0 -87
- package/esm2022/lib/panel-box/panel-box.module.mjs +0 -19
- package/esm2022/lib/password-box/password-box.component.mjs +0 -32
- package/esm2022/lib/password-box/password-box.module.mjs +0 -23
- package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +0 -50
- package/esm2022/lib/popover/overlay.service.mjs +0 -94
- package/esm2022/lib/popover/popover.component.mjs +0 -145
- package/esm2022/lib/popover/popover.module.mjs +0 -19
- package/esm2022/lib/popup/popup.component.mjs +0 -160
- package/esm2022/lib/popup/popup.module.mjs +0 -25
- package/esm2022/lib/popup/popup.service.mjs +0 -94
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -16
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -19
- package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +0 -65
- package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +0 -22
- package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +0 -41
- package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +0 -24
- package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +0 -118
- package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +0 -32
- package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +0 -216
- package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +0 -76
- package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +0 -87
- package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +0 -24
- package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +0 -72
- package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +0 -24
- package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +0 -145
- package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +0 -59
- package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +0 -76
- package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +0 -75
- package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +0 -25
- package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +0 -73
- package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +0 -22
- package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +0 -30
- package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +0 -25
- package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +0 -36
- package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +0 -24
- package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +0 -35
- package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +0 -24
- package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +0 -55
- package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +0 -24
- package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +0 -167
- package/esm2022/lib/property-editor/property-editor.class.mjs +0 -108
- package/esm2022/lib/property-editor/property-editor.module.mjs +0 -194
- package/esm2022/lib/query-builder/query-builder-group.component.mjs +0 -129
- package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +0 -177
- package/esm2022/lib/query-builder/query-builder-rule.component.mjs +0 -428
- package/esm2022/lib/query-builder/query-builder.class.mjs +0 -42
- package/esm2022/lib/query-builder/query-builder.component.mjs +0 -92
- package/esm2022/lib/query-builder/query-builder.module.mjs +0 -62
- package/esm2022/lib/query-builder/query-builder.service.mjs +0 -199
- package/esm2022/lib/search-bar/search-bar.component.mjs +0 -293
- package/esm2022/lib/search-bar/search-bar.module.mjs +0 -61
- package/esm2022/lib/searchbox/searchbox.component.mjs +0 -106
- package/esm2022/lib/searchbox/searchbox.module.mjs +0 -24
- package/esm2022/lib/selectbox/selectbox.component.mjs +0 -1135
- package/esm2022/lib/selectbox/selectbox.module.mjs +0 -44
- package/esm2022/lib/selectbox/selectbox2.component.mjs +0 -617
- package/esm2022/lib/selection-list/selection-list.component.mjs +0 -113
- package/esm2022/lib/selection-list/selection-list.module.mjs +0 -21
- package/esm2022/lib/switch/switch.component.mjs +0 -55
- package/esm2022/lib/switch/switch.module.mjs +0 -20
- package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +0 -75
- package/esm2022/lib/tab-page/tab-page-host.component.mjs +0 -124
- package/esm2022/lib/tab-page/tab-page.module.mjs +0 -21
- package/esm2022/lib/tab-page/tab-page.service.mjs +0 -159
- package/esm2022/lib/tab-strip/tab-strip.component.mjs +0 -38
- package/esm2022/lib/tab-strip/tab-strip.module.mjs +0 -19
- package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +0 -25
- package/esm2022/lib/tab-view/tab-view.component.mjs +0 -110
- package/esm2022/lib/tab-view/tab-view.module.mjs +0 -21
- package/esm2022/lib/tab-view/tab.component.mjs +0 -33
- package/esm2022/lib/textarea/textarea.component.mjs +0 -27
- package/esm2022/lib/textarea/textarea.module.mjs +0 -21
- package/esm2022/lib/textbox/textbox.component.mjs +0 -42
- package/esm2022/lib/textbox/textbox.module.mjs +0 -36
- package/esm2022/lib/time-picker/time-picker.component.mjs +0 -1107
- package/esm2022/lib/time-picker/time-picker.module.mjs +0 -34
- package/esm2022/lib/toast/toast-message/toast-message.component.mjs +0 -76
- package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +0 -13
- package/esm2022/lib/toast/toast.module.mjs +0 -21
- package/esm2022/lib/toast/toast.service.mjs +0 -45
- package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +0 -77
- package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +0 -62
- package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +0 -56
- package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +0 -37
- package/esm2022/lib/toolbar/toolbar-item.mjs +0 -4
- package/esm2022/lib/toolbar/toolbar.component.mjs +0 -13
- package/esm2022/lib/toolbar/toolbar.module.mjs +0 -40
- package/esm2022/lib/tooltip/tooltip.directive.mjs +0 -104
- package/esm2022/lib/tooltip/tooltip.module.mjs +0 -19
- package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +0 -697
- package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +0 -33
- package/esm2022/lib/tree-view/tree-view.component.mjs +0 -854
- package/esm2022/lib/tree-view/tree-view.module.mjs +0 -22
- package/esm2022/lib/upload-file/upload-file.component.mjs +0 -226
- package/esm2022/lib/upload-file/upload-file.events.mjs +0 -2
- package/esm2022/lib/upload-file/upload-file.module.mjs +0 -24
- package/esm2022/lib/validation/validation-form.component.mjs +0 -68
- package/esm2022/lib/validation/validation-rule.widget.mjs +0 -114
- package/esm2022/lib/validation/validation.class.mjs +0 -2
- package/esm2022/lib/validation/validation.component.mjs +0 -89
- package/esm2022/lib/validation/validation.module.mjs +0 -34
- package/lib/accordion/accordion.component.d.ts +0 -13
- package/lib/accordion/accordion.module.d.ts +0 -9
- package/lib/base/base-page.class.d.ts +0 -46
- package/lib/base/components.class.d.ts +0 -10
- package/lib/base/element.class.d.ts +0 -106
- package/lib/base/events.class.d.ts +0 -18
- package/lib/button/button.component.d.ts +0 -21
- package/lib/button/button.module.d.ts +0 -8
- package/lib/calendar/calendar-box/calendar-box.component.d.ts +0 -81
- package/lib/calendar/calendar-box/calendar-box.module.d.ts +0 -11
- package/lib/calendar/scheduler/scheduler-views.property.d.ts +0 -19
- package/lib/calendar/scheduler/scheduler.class.d.ts +0 -36
- package/lib/calendar/scheduler/scheduler.component.d.ts +0 -39
- package/lib/calendar/scheduler/scheduler.module.d.ts +0 -21
- package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +0 -25
- package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +0 -14
- package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +0 -16
- package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +0 -26
- package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +0 -37
- package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +0 -28
- package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +0 -24
- package/lib/checkbox/checkbox.component.d.ts +0 -30
- package/lib/checkbox/checkbox.module.d.ts +0 -9
- package/lib/color-picker/color-box/color-box.component.d.ts +0 -25
- package/lib/color-picker/color-picker.component.d.ts +0 -30
- package/lib/color-picker/color-picker.module.d.ts +0 -13
- package/lib/context-menu/context-menu.component.d.ts +0 -22
- package/lib/context-menu/context-menu.directive.d.ts +0 -38
- package/lib/context-menu/context-menu.module.d.ts +0 -9
- package/lib/data-filter/columns/filter-column-date.component.d.ts +0 -22
- package/lib/data-filter/columns/filter-column-number.component.d.ts +0 -15
- package/lib/data-filter/columns/filter-column-selection.component.d.ts +0 -18
- package/lib/data-filter/columns/filter-column-string.component.d.ts +0 -15
- package/lib/data-filter/filter-panel/filter-panel.component.d.ts +0 -45
- package/lib/data-filter/filter.class.d.ts +0 -40
- package/lib/data-filter/filter.module.d.ts +0 -24
- package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +0 -25
- package/lib/data-list/core/data-list.component.d.ts +0 -15
- package/lib/data-list/list/list.component.d.ts +0 -40
- package/lib/data-list/list/list.module.d.ts +0 -11
- package/lib/data-list/list/toolbar-list-view.component.d.ts +0 -17
- package/lib/data-source/datasource.component.d.ts +0 -16
- package/lib/data-source/datasource.module.d.ts +0 -7
- package/lib/data-source/read-param.d.ts +0 -40
- package/lib/date-picker/date-picker.component.d.ts +0 -84
- package/lib/date-picker/date-picker.module.d.ts +0 -14
- package/lib/dialog/dialog.component.d.ts +0 -14
- package/lib/dialog/dialog.module.d.ts +0 -10
- package/lib/dialog/dialog.service.d.ts +0 -36
- package/lib/drawer/content.component.d.ts +0 -7
- package/lib/drawer/drawer-container.component.d.ts +0 -10
- package/lib/drawer/drawer.component.d.ts +0 -34
- package/lib/drawer/drawer.module.d.ts +0 -10
- package/lib/dropdown/dropdown.component.d.ts +0 -38
- package/lib/dropdown/dropdown.module.d.ts +0 -13
- package/lib/fieldset/fieldset.component.d.ts +0 -11
- package/lib/fieldset/fieldset.module.d.ts +0 -8
- package/lib/form-group/form-group.component.d.ts +0 -14
- package/lib/form-group/form-group.module.d.ts +0 -8
- package/lib/label/label.component.d.ts +0 -9
- package/lib/loading/loading-indicator.component.d.ts +0 -9
- package/lib/loading/loading-panel.component.d.ts +0 -13
- package/lib/loading/loading.module.d.ts +0 -10
- package/lib/loading/loading.service.d.ts +0 -13
- package/lib/menu/menu-item.component.d.ts +0 -18
- package/lib/menu/menu.component.d.ts +0 -35
- package/lib/menu/menu.module.d.ts +0 -11
- package/lib/menu/menu2.component.d.ts +0 -21
- package/lib/number-box/number-box.component.d.ts +0 -52
- package/lib/number-box/number-box.module.d.ts +0 -10
- package/lib/page/content.component.d.ts +0 -8
- package/lib/page/footer.component.d.ts +0 -5
- package/lib/page/page.component.d.ts +0 -16
- package/lib/page/page.module.d.ts +0 -11
- package/lib/panel-box/panel-box.component.d.ts +0 -19
- package/lib/panel-box/panel-box.module.d.ts +0 -8
- package/lib/password-box/password-box.component.d.ts +0 -12
- package/lib/password-box/password-box.module.d.ts +0 -10
- package/lib/popover/custom-cdk-overlay.service.d.ts +0 -19
- package/lib/popover/overlay.service.d.ts +0 -32
- package/lib/popover/popover.component.d.ts +0 -35
- package/lib/popup/popup.component.d.ts +0 -40
- package/lib/popup/popup.module.d.ts +0 -13
- package/lib/popup/popup.service.d.ts +0 -22
- package/lib/progress-bar/progress-bar.component.d.ts +0 -7
- package/lib/property-editor/editors/check-editor/check-editor.d.ts +0 -19
- package/lib/property-editor/editors/check-editor/check.module.d.ts +0 -11
- package/lib/property-editor/editors/color-editor/color.editor.d.ts +0 -13
- package/lib/property-editor/editors/color-editor/color.module.d.ts +0 -12
- package/lib/property-editor/editors/column-editor/column.editor.d.ts +0 -34
- package/lib/property-editor/editors/column-editor/column.module.d.ts +0 -20
- package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +0 -44
- package/lib/property-editor/editors/conditional-color-editor/conditional-color.module.d.ts +0 -19
- package/lib/property-editor/editors/date-editor/date.editor.d.ts +0 -28
- package/lib/property-editor/editors/date-editor/date.module.d.ts +0 -12
- package/lib/property-editor/editors/number-editor/number.editor.d.ts +0 -22
- package/lib/property-editor/editors/number-editor/number.module.d.ts +0 -12
- package/lib/property-editor/editors/range-editor/range.editor.d.ts +0 -29
- package/lib/property-editor/editors/range-editor/range.module.d.ts +0 -18
- package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +0 -29
- package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +0 -28
- package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +0 -14
- package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +0 -25
- package/lib/property-editor/editors/selection-editor/selection.module.d.ts +0 -11
- package/lib/property-editor/editors/switch-editor/number.editor.d.ts +0 -11
- package/lib/property-editor/editors/switch-editor/number.module.d.ts +0 -13
- package/lib/property-editor/editors/text-editor/text.editor.d.ts +0 -18
- package/lib/property-editor/editors/text-editor/text.module.d.ts +0 -12
- package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +0 -17
- package/lib/property-editor/editors/textarea-editor/textarea.module.d.ts +0 -12
- package/lib/property-editor/editors/time-editor/time.editor.d.ts +0 -17
- package/lib/property-editor/editors/time-editor/time.module.d.ts +0 -12
- package/lib/property-editor/property-editor-renderer.directive.d.ts +0 -31
- package/lib/property-editor/property-editor.class.d.ts +0 -93
- package/lib/property-editor/property-editor.module.d.ts +0 -21
- package/lib/query-builder/query-builder-group.component.d.ts +0 -33
- package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +0 -35
- package/lib/query-builder/query-builder-rule.component.d.ts +0 -45
- package/lib/query-builder/query-builder.class.d.ts +0 -45
- package/lib/query-builder/query-builder.component.d.ts +0 -29
- package/lib/query-builder/query-builder.module.d.ts +0 -23
- package/lib/query-builder/query-builder.service.d.ts +0 -18
- package/lib/search-bar/search-bar.component.d.ts +0 -62
- package/lib/search-bar/search-bar.module.d.ts +0 -18
- package/lib/searchbox/searchbox.component.d.ts +0 -23
- package/lib/searchbox/searchbox.module.d.ts +0 -13
- package/lib/selectbox/selectbox.component.d.ts +0 -149
- package/lib/selectbox/selectbox.module.d.ts +0 -15
- package/lib/selectbox/selectbox2.component.d.ts +0 -103
- package/lib/selection-list/selection-list.component.d.ts +0 -32
- package/lib/selection-list/selection-list.module.d.ts +0 -10
- package/lib/switch/switch.component.d.ts +0 -20
- package/lib/switch/switch.module.d.ts +0 -9
- package/lib/tab-page/tab-page-Renderer.component.d.ts +0 -16
- package/lib/tab-page/tab-page-host.component.d.ts +0 -24
- package/lib/tab-page/tab-page.module.d.ts +0 -10
- package/lib/tab-page/tab-page.service.d.ts +0 -30
- package/lib/tab-strip/tab-strip.component.d.ts +0 -28
- package/lib/tab-strip/tab-strip.module.d.ts +0 -8
- package/lib/tab-view/dynamic-tabs.directive.d.ts +0 -16
- package/lib/tab-view/tab-view.component.d.ts +0 -26
- package/lib/tab-view/tab-view.module.d.ts +0 -10
- package/lib/tab-view/tab.component.d.ts +0 -12
- package/lib/textarea/textarea.component.d.ts +0 -12
- package/lib/textarea/textarea.module.d.ts +0 -8
- package/lib/textbox/textbox.component.d.ts +0 -16
- package/lib/textbox/textbox.module.d.ts +0 -11
- package/lib/time-picker/time-picker.component.d.ts +0 -53
- package/lib/time-picker/time-picker.module.d.ts +0 -11
- package/lib/toast/toast-message/toast-message.component.d.ts +0 -18
- package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +0 -8
- package/lib/toast/toast.module.d.ts +0 -9
- package/lib/toast/toast.service.d.ts +0 -18
- package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +0 -12
- package/lib/toolbar/menu/toolbar-menu.component.d.ts +0 -24
- package/lib/toolbar/search/toolbar-search.component.d.ts +0 -16
- package/lib/toolbar/title/toolbar-title.component.d.ts +0 -9
- package/lib/toolbar/toolbar-item.d.ts +0 -3
- package/lib/toolbar/toolbar.component.d.ts +0 -8
- package/lib/toolbar/toolbar.module.d.ts +0 -14
- package/lib/tooltip/tooltip.directive.d.ts +0 -21
- package/lib/tooltip/tooltip.module.d.ts +0 -8
- package/lib/tree-side-menu/tree-side-menu.component.d.ts +0 -111
- package/lib/tree-side-menu/tree-side-menu.module.d.ts +0 -11
- package/lib/tree-view/tree-view.component.d.ts +0 -121
- package/lib/tree-view/tree-view.module.d.ts +0 -11
- package/lib/upload-file/upload-file.component.d.ts +0 -42
- package/lib/upload-file/upload-file.events.d.ts +0 -10
- package/lib/upload-file/upload-file.module.d.ts +0 -13
- package/lib/validation/validation-form.component.d.ts +0 -19
- package/lib/validation/validation-rule.widget.d.ts +0 -23
- package/lib/validation/validation.class.d.ts +0 -16
- package/lib/validation/validation.component.d.ts +0 -25
- package/lib/validation/validation.module.d.ts +0 -11
- /package/{lib/label → label/lib}/label.module.d.ts +0 -0
- /package/{lib/popover → popover/lib}/popover.module.d.ts +0 -0
- /package/{lib/progress-bar → progress-bar/lib}/progress-bar.module.d.ts +0 -0
|
@@ -0,0 +1,553 @@
|
|
|
1
|
+
import { AXClearableComponent, AXComponent, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, } from '@acorex/components/common';
|
|
2
|
+
import { AXCalendarService, } from '@acorex/core/date-time';
|
|
3
|
+
import { AXStringUtil } from '@acorex/core/utils';
|
|
4
|
+
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild, ViewEncapsulation, forwardRef, inject, } from '@angular/core';
|
|
5
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/forms";
|
|
8
|
+
export class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.calendarService = inject(AXCalendarService);
|
|
12
|
+
this._editingParts = {
|
|
13
|
+
year: {
|
|
14
|
+
key: 'year',
|
|
15
|
+
placeholder: 'yyyy',
|
|
16
|
+
placeholders: ['YY', 'yy', 'YYYY', 'yyyy'],
|
|
17
|
+
enabled: false,
|
|
18
|
+
default: 2023,
|
|
19
|
+
typedValue: null,
|
|
20
|
+
realValue: () => this.editingDateObj.format(this._editingParts.year.placeholder),
|
|
21
|
+
},
|
|
22
|
+
month: {
|
|
23
|
+
key: 'month',
|
|
24
|
+
placeholder: 'MM',
|
|
25
|
+
placeholders: ['MMM', 'MMMM', 'MM', 'M'],
|
|
26
|
+
enabled: false,
|
|
27
|
+
default: 1,
|
|
28
|
+
typedValue: null,
|
|
29
|
+
realValue: () => this.editingDateObj.format(this._editingParts.month.placeholder),
|
|
30
|
+
},
|
|
31
|
+
day: {
|
|
32
|
+
key: 'day',
|
|
33
|
+
placeholder: 'dd',
|
|
34
|
+
placeholders: ['dd', 'd', 'DDDD', 'DDD'],
|
|
35
|
+
enabled: false,
|
|
36
|
+
default: 1,
|
|
37
|
+
typedValue: null,
|
|
38
|
+
realValue: () => this.editingDateObj.format(this._editingParts.day.placeholder),
|
|
39
|
+
},
|
|
40
|
+
hour: {
|
|
41
|
+
key: 'hour',
|
|
42
|
+
placeholder: 'HH',
|
|
43
|
+
placeholders: ['HH', 'H', 'hh', 'h'],
|
|
44
|
+
enabled: false,
|
|
45
|
+
default: 0,
|
|
46
|
+
typedValue: null,
|
|
47
|
+
realValue: () => this.editingDateObj.format(this._editingParts.hour.placeholder),
|
|
48
|
+
},
|
|
49
|
+
minute: {
|
|
50
|
+
key: 'minute',
|
|
51
|
+
placeholder: 'mm',
|
|
52
|
+
placeholders: ['mm', 'm'],
|
|
53
|
+
enabled: false,
|
|
54
|
+
default: 0,
|
|
55
|
+
typedValue: null,
|
|
56
|
+
realValue: () => this.editingDateObj.format(this._editingParts.minute.placeholder),
|
|
57
|
+
},
|
|
58
|
+
second: {
|
|
59
|
+
key: 'second',
|
|
60
|
+
placeholder: 'ss',
|
|
61
|
+
placeholders: ['ss', 's'],
|
|
62
|
+
enabled: false,
|
|
63
|
+
default: 0,
|
|
64
|
+
typedValue: null,
|
|
65
|
+
realValue: () => this.editingDateObj.format(this._editingParts.second.placeholder),
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
this._inputChars = [];
|
|
69
|
+
this._type = this.calendarService.calendar.name();
|
|
70
|
+
this._activePart = 'hour';
|
|
71
|
+
this._editingDateObj = this.calendarService.now(this.type);
|
|
72
|
+
this.formatChange = new EventEmitter();
|
|
73
|
+
this.onClick = new EventEmitter();
|
|
74
|
+
this._format = this.calendarService.calendar.formats.dateTimeInput;
|
|
75
|
+
}
|
|
76
|
+
get type() {
|
|
77
|
+
return this._type || this.calendarService.calendar.name();
|
|
78
|
+
}
|
|
79
|
+
set type(v) {
|
|
80
|
+
this.setOption({
|
|
81
|
+
name: 'type',
|
|
82
|
+
value: v,
|
|
83
|
+
afterCallback: () => {
|
|
84
|
+
this.cdr.markForCheck();
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
get activePart() {
|
|
89
|
+
return this._activePart;
|
|
90
|
+
}
|
|
91
|
+
set activePart(v) {
|
|
92
|
+
this._activePart = v;
|
|
93
|
+
this._clearInputBuffer();
|
|
94
|
+
}
|
|
95
|
+
get editingDateObj() {
|
|
96
|
+
return this._editingDateObj;
|
|
97
|
+
}
|
|
98
|
+
get minValue() {
|
|
99
|
+
return this._minValue;
|
|
100
|
+
}
|
|
101
|
+
set minValue(v) {
|
|
102
|
+
this._minValue = v;
|
|
103
|
+
}
|
|
104
|
+
get maxValue() {
|
|
105
|
+
return this._maxValue;
|
|
106
|
+
}
|
|
107
|
+
set maxValue(v) {
|
|
108
|
+
this._maxValue = v;
|
|
109
|
+
}
|
|
110
|
+
get format() {
|
|
111
|
+
return this._format;
|
|
112
|
+
}
|
|
113
|
+
set format(v) {
|
|
114
|
+
this.setOption({
|
|
115
|
+
name: 'format',
|
|
116
|
+
value: v,
|
|
117
|
+
afterCallback: (o, n) => {
|
|
118
|
+
Object.values(this._editingParts).forEach((e) => {
|
|
119
|
+
e.enabled = false;
|
|
120
|
+
});
|
|
121
|
+
const formatParts = n.split(/[^a-zA-Z]+/);
|
|
122
|
+
formatParts.forEach((f) => {
|
|
123
|
+
const found = Object.values(this._editingParts).find((c) => c.placeholders.some((d) => d == f));
|
|
124
|
+
if (found) {
|
|
125
|
+
found.enabled = true;
|
|
126
|
+
found.placeholder = f;
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
_getOrderedParts() {
|
|
133
|
+
// TODO: better spliter format
|
|
134
|
+
const formatParts = this.format.split(/[^a-zA-Z]+/);
|
|
135
|
+
const result = [];
|
|
136
|
+
formatParts.forEach((f) => {
|
|
137
|
+
const found = Object.values(this._editingParts).find((c) => c.placeholders.some((d) => d == f));
|
|
138
|
+
if (found && found.enabled)
|
|
139
|
+
result.push(found);
|
|
140
|
+
});
|
|
141
|
+
return result;
|
|
142
|
+
}
|
|
143
|
+
_clearInputBuffer() {
|
|
144
|
+
this._inputChars = [];
|
|
145
|
+
}
|
|
146
|
+
_updateText() {
|
|
147
|
+
let text = this.format;
|
|
148
|
+
//
|
|
149
|
+
Object.values(this._editingParts).forEach((part) => {
|
|
150
|
+
if (this.activePart == part.key) {
|
|
151
|
+
if (part.typedValue)
|
|
152
|
+
text = text.replace(part.placeholder, part.typedValue);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
if (part.typedValue != part.placeholder && part.typedValue != null) {
|
|
156
|
+
text = text.replace(part.placeholder, part.realValue());
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
this._editingText = text == this.format ? '' : text;
|
|
161
|
+
if (this.activePart) {
|
|
162
|
+
this._highlightActivePart();
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
internalSetValue(value) {
|
|
166
|
+
if (value) {
|
|
167
|
+
let editingDate = this.calendarService.create(value, this.type);
|
|
168
|
+
let applyChanges = false;
|
|
169
|
+
Object.values(this._editingParts).forEach((part) => {
|
|
170
|
+
if (!part.enabled) {
|
|
171
|
+
editingDate = editingDate.set(part.key, part.default);
|
|
172
|
+
applyChanges = true;
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
if (applyChanges) {
|
|
176
|
+
return editingDate.date;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return value;
|
|
180
|
+
}
|
|
181
|
+
internalValueChanged(value) {
|
|
182
|
+
if (value) {
|
|
183
|
+
this._editingDateObj = this.calendarService.create(value, this.type);
|
|
184
|
+
}
|
|
185
|
+
Object.values(this._editingParts).forEach((part) => {
|
|
186
|
+
if (value) {
|
|
187
|
+
if (part.typedValue != part.placeholder)
|
|
188
|
+
part.typedValue = part.realValue();
|
|
189
|
+
}
|
|
190
|
+
else
|
|
191
|
+
part.typedValue = null;
|
|
192
|
+
});
|
|
193
|
+
this._updateText();
|
|
194
|
+
}
|
|
195
|
+
_handleOnKeydownEvent(e) {
|
|
196
|
+
const ignore = () => {
|
|
197
|
+
e.preventDefault();
|
|
198
|
+
e.stopPropagation();
|
|
199
|
+
};
|
|
200
|
+
const input = e.target;
|
|
201
|
+
//
|
|
202
|
+
const orderedParts = this._getOrderedParts();
|
|
203
|
+
const part = this.activePart
|
|
204
|
+
? this._editingParts[this.activePart]
|
|
205
|
+
: orderedParts[0];
|
|
206
|
+
const nextPart = part ? orderedParts[orderedParts.indexOf(part) + 1] : null;
|
|
207
|
+
const prevPart = part ? orderedParts[orderedParts.indexOf(part) - 1] : null;
|
|
208
|
+
//
|
|
209
|
+
const goNext = () => {
|
|
210
|
+
this._clearInputBuffer();
|
|
211
|
+
if (nextPart) {
|
|
212
|
+
this.activePart = nextPart.key;
|
|
213
|
+
this._highlightActivePart();
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
const goPrev = () => {
|
|
217
|
+
this._clearInputBuffer();
|
|
218
|
+
if (prevPart) {
|
|
219
|
+
this.activePart = prevPart.key;
|
|
220
|
+
this._highlightActivePart();
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
/*************** Handle Left and Right **************/
|
|
224
|
+
if (e.code === 'ArrowRight' || e.code === 'ArrowLeft') {
|
|
225
|
+
ignore();
|
|
226
|
+
e.code === 'ArrowRight' ? goNext() : goPrev();
|
|
227
|
+
}
|
|
228
|
+
else if ((e.code === 'ArrowUp' || e.code === 'ArrowDown') && !e.ctrlKey) {
|
|
229
|
+
/*************** Handle Up and Down **************/
|
|
230
|
+
if (this.disabled || this.readonly) {
|
|
231
|
+
ignore();
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
ignore();
|
|
236
|
+
const sign = e.code === 'ArrowUp' ? +1 : -1;
|
|
237
|
+
this.activePart = part.key;
|
|
238
|
+
let newVal = this.editingDateObj.add(part.key, sign);
|
|
239
|
+
this._editingParts[part.key].typedValue = newVal.format(this._editingParts[part.key].placeholder);
|
|
240
|
+
this._editingDateObj = newVal;
|
|
241
|
+
this._detectValueChanges();
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
else if (e.code == 'Backspace' || e.code == 'Delete') {
|
|
245
|
+
/*************** Handle Backspace **************/
|
|
246
|
+
if (this.disabled || this.readonly) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
if (input.value) {
|
|
250
|
+
ignore();
|
|
251
|
+
this._editingParts[part.key].typedValue =
|
|
252
|
+
this._editingParts[part.key].placeholder;
|
|
253
|
+
this._detectValueChanges();
|
|
254
|
+
goPrev();
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
else if (e.code == 'Tab' || e.code == 'Space') {
|
|
258
|
+
/*************** Handle Backspace **************/
|
|
259
|
+
if (input.value) {
|
|
260
|
+
if (!e.shiftKey && nextPart) {
|
|
261
|
+
ignore();
|
|
262
|
+
goNext();
|
|
263
|
+
}
|
|
264
|
+
else if (e.shiftKey && prevPart) {
|
|
265
|
+
ignore();
|
|
266
|
+
goPrev();
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
else if (e.key?.trim() && !isNaN(Number(e.key))) {
|
|
271
|
+
ignore();
|
|
272
|
+
if (this.disabled || this.readonly) {
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
let next = false;
|
|
276
|
+
const editing = this._editingParts[part.key];
|
|
277
|
+
//
|
|
278
|
+
switch (part.key) {
|
|
279
|
+
case 'year': {
|
|
280
|
+
if (editing.placeholder.length == 2 && this._inputChars.length == 0) {
|
|
281
|
+
this._inputChars.push(...this.calendarService
|
|
282
|
+
.now(this.type)
|
|
283
|
+
.format('yyyy')
|
|
284
|
+
.substring(0, 2)
|
|
285
|
+
.split(''));
|
|
286
|
+
}
|
|
287
|
+
if (this._inputChars.length < 4) {
|
|
288
|
+
editing.typedValue = `${this._inputChars.join('')}${e.key}`;
|
|
289
|
+
this._inputChars.push(e.key);
|
|
290
|
+
if (this._inputChars.length > 3) {
|
|
291
|
+
next = true;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
next = true;
|
|
296
|
+
}
|
|
297
|
+
editing.typedValue = ('0000' + editing.typedValue).slice(-4);
|
|
298
|
+
const nv = parseInt(editing.typedValue);
|
|
299
|
+
//if (nv > 0) {
|
|
300
|
+
const newVal = this.editingDateObj.set('year', nv);
|
|
301
|
+
this._editingDateObj = newVal;
|
|
302
|
+
this._detectValueChanges();
|
|
303
|
+
//}
|
|
304
|
+
break;
|
|
305
|
+
}
|
|
306
|
+
case 'month': {
|
|
307
|
+
if (this._inputChars.length == 0) {
|
|
308
|
+
this._inputChars.push(e.key);
|
|
309
|
+
editing.typedValue = `0${e.key}`;
|
|
310
|
+
if (parseInt(e.key) > 1) {
|
|
311
|
+
this._clearInputBuffer();
|
|
312
|
+
next = true;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
else if (this._inputChars.length == 1) {
|
|
316
|
+
const newStr = parseInt(`${this._inputChars[0]}${e.key}`);
|
|
317
|
+
if (newStr > 12) {
|
|
318
|
+
editing.typedValue = `0${e.key}`;
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
editing.typedValue = newStr.toString();
|
|
322
|
+
}
|
|
323
|
+
this._clearInputBuffer();
|
|
324
|
+
next = true;
|
|
325
|
+
}
|
|
326
|
+
editing.typedValue =
|
|
327
|
+
editing.typedValue?.length === 1
|
|
328
|
+
? '0' + editing.typedValue
|
|
329
|
+
: editing.typedValue;
|
|
330
|
+
const nv = parseInt(editing.typedValue);
|
|
331
|
+
if (nv > 0) {
|
|
332
|
+
const newVal = this.editingDateObj.set(part.key, nv);
|
|
333
|
+
this._editingDateObj = newVal;
|
|
334
|
+
this._detectValueChanges();
|
|
335
|
+
}
|
|
336
|
+
break;
|
|
337
|
+
}
|
|
338
|
+
case 'day': {
|
|
339
|
+
if (this._inputChars.length == 0) {
|
|
340
|
+
this._inputChars.push(e.key);
|
|
341
|
+
editing.typedValue = `0${e.key}`;
|
|
342
|
+
if (parseInt(e.key) > 3) {
|
|
343
|
+
this._clearInputBuffer();
|
|
344
|
+
next = true;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
else if (this._inputChars.length == 1) {
|
|
348
|
+
const newStr = parseInt(`${this._inputChars[0]}${e.key}`);
|
|
349
|
+
if (newStr > this._editingDateObj.month.totalDays) {
|
|
350
|
+
editing.typedValue = `0${e.key}`;
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
editing.typedValue = newStr.toString();
|
|
354
|
+
}
|
|
355
|
+
this._clearInputBuffer();
|
|
356
|
+
next = true;
|
|
357
|
+
}
|
|
358
|
+
editing.typedValue =
|
|
359
|
+
editing.typedValue?.length === 1
|
|
360
|
+
? '0' + editing.typedValue
|
|
361
|
+
: editing.typedValue;
|
|
362
|
+
const nv = parseInt(editing.typedValue);
|
|
363
|
+
if (nv > 0) {
|
|
364
|
+
const newVal = this.editingDateObj.set(part.key, nv);
|
|
365
|
+
this._editingDateObj = newVal;
|
|
366
|
+
this._detectValueChanges();
|
|
367
|
+
}
|
|
368
|
+
break;
|
|
369
|
+
}
|
|
370
|
+
case 'hour': {
|
|
371
|
+
if (this._inputChars.length == 0) {
|
|
372
|
+
this._inputChars.push(e.key);
|
|
373
|
+
editing.typedValue = `0${e.key}`;
|
|
374
|
+
if (parseInt(e.key) > 2) {
|
|
375
|
+
next = true;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
else if (this._inputChars.length == 1) {
|
|
379
|
+
const newStr = parseInt(`${this._inputChars[0]}${e.key}`);
|
|
380
|
+
if (newStr > 23) {
|
|
381
|
+
editing.typedValue = `0${e.key}`;
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
editing.typedValue = newStr.toString();
|
|
385
|
+
}
|
|
386
|
+
next = true;
|
|
387
|
+
}
|
|
388
|
+
editing.typedValue =
|
|
389
|
+
editing.typedValue?.length === 1
|
|
390
|
+
? '0' + editing.typedValue
|
|
391
|
+
: editing.typedValue;
|
|
392
|
+
const newVal = this.editingDateObj.set('hour', parseInt(editing.typedValue));
|
|
393
|
+
this._editingDateObj = newVal;
|
|
394
|
+
this._detectValueChanges();
|
|
395
|
+
break;
|
|
396
|
+
}
|
|
397
|
+
case 'minute':
|
|
398
|
+
case 'second':
|
|
399
|
+
if (this._inputChars.length == 0) {
|
|
400
|
+
this._inputChars.push(e.key);
|
|
401
|
+
editing.typedValue = `0${e.key}`;
|
|
402
|
+
if (parseInt(e.key) > 5) {
|
|
403
|
+
this._clearInputBuffer();
|
|
404
|
+
next = true;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
else if (this._inputChars.length == 1) {
|
|
408
|
+
const newStr = parseInt(`${this._inputChars[0]}${e.key}`);
|
|
409
|
+
if (newStr > 59) {
|
|
410
|
+
editing.typedValue = `0${e.key}`;
|
|
411
|
+
}
|
|
412
|
+
else {
|
|
413
|
+
editing.typedValue = newStr.toString();
|
|
414
|
+
}
|
|
415
|
+
this._clearInputBuffer();
|
|
416
|
+
next = true;
|
|
417
|
+
}
|
|
418
|
+
editing.typedValue =
|
|
419
|
+
editing.typedValue?.length === 1
|
|
420
|
+
? '0' + editing.typedValue
|
|
421
|
+
: editing.typedValue;
|
|
422
|
+
const newVal = this.editingDateObj.set(part.key, parseInt(editing.typedValue));
|
|
423
|
+
this._editingDateObj = newVal;
|
|
424
|
+
this._detectValueChanges();
|
|
425
|
+
break;
|
|
426
|
+
default:
|
|
427
|
+
}
|
|
428
|
+
if (next) {
|
|
429
|
+
goNext();
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
/*************** Emit Event **************/
|
|
434
|
+
super.emitOnKeydownEvent(e);
|
|
435
|
+
}
|
|
436
|
+
_handleKeyUpEvent(e) {
|
|
437
|
+
if (this.activePart) {
|
|
438
|
+
this._highlightActivePart();
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
_handleFocusEvent(e) {
|
|
442
|
+
//this._highlightActivePart();
|
|
443
|
+
super.emitOnFocusEvent(e);
|
|
444
|
+
}
|
|
445
|
+
_handleBlurEvent(e) {
|
|
446
|
+
super.emitOnBlurEvent(e);
|
|
447
|
+
}
|
|
448
|
+
_handleOnInputClickEvent(e) {
|
|
449
|
+
setTimeout(() => {
|
|
450
|
+
this._detectPartAtPosition();
|
|
451
|
+
}, 0);
|
|
452
|
+
this.onClick.emit({
|
|
453
|
+
component: this,
|
|
454
|
+
htmlElement: this.getHostElement(),
|
|
455
|
+
nativeEvent: e,
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
_detectPartAtPosition() {
|
|
459
|
+
const input = this.input.nativeElement;
|
|
460
|
+
if (!input.value)
|
|
461
|
+
return;
|
|
462
|
+
const sStart = input.selectionEnd || 0;
|
|
463
|
+
const re = /[a-zA-Z0-9]+/gi;
|
|
464
|
+
const valueParts = Array.from(input.value.matchAll(re));
|
|
465
|
+
const orderedParts = this._getOrderedParts();
|
|
466
|
+
const index = valueParts.findIndex((c) => c.index <= sStart && c.index + c[0].length >= sStart);
|
|
467
|
+
this.activePart = orderedParts[index].key;
|
|
468
|
+
this._highlightActivePart();
|
|
469
|
+
}
|
|
470
|
+
_highlightActivePart() {
|
|
471
|
+
const input = this.input?.nativeElement;
|
|
472
|
+
if (!input || !input.value || !this.activePart)
|
|
473
|
+
return;
|
|
474
|
+
const orderedParts = this._getOrderedParts();
|
|
475
|
+
const index = orderedParts.findIndex((c) => c.key == this.activePart);
|
|
476
|
+
const re = /[a-zA-Z0-9]+/gi;
|
|
477
|
+
const valueParts = Array.from(input.value.matchAll(re));
|
|
478
|
+
const { start, end } = AXStringUtil.getWordBoundsAtPosition(input.value, valueParts[index]?.index);
|
|
479
|
+
input.setSelectionRange(start, end);
|
|
480
|
+
}
|
|
481
|
+
_detectValueChanges() {
|
|
482
|
+
this.commitValue(this._editingDateObj.date, true);
|
|
483
|
+
}
|
|
484
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
485
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: AXDateTimeInputComponent, selector: "ax-datetime-input", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", type: "type", minValue: "minValue", maxValue: "maxValue", format: "format" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", readonlyChange: "readonlyChange", disabledChange: "disabledChange", formatChange: "formatChange" }, host: { listeners: { "keydown": "_handleOnKeydownEvent($event)", "keyup": "_handleKeyUpEvent($event)" }, classAttribute: "ax-editor-input" }, providers: [
|
|
486
|
+
{ provide: AXComponent, useExisting: AXDateTimeInputComponent },
|
|
487
|
+
{ provide: AXFocusableComponent, useExisting: AXDateTimeInputComponent },
|
|
488
|
+
{ provide: AXValuableComponent, useExisting: AXDateTimeInputComponent },
|
|
489
|
+
{ provide: AXClearableComponent, useExisting: AXDateTimeInputComponent },
|
|
490
|
+
{
|
|
491
|
+
provide: NG_VALUE_ACCESSOR,
|
|
492
|
+
useExisting: forwardRef(() => AXDateTimeInputComponent),
|
|
493
|
+
multi: true,
|
|
494
|
+
},
|
|
495
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "input2", first: true, predicate: ["input2"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<input #input id=\"input\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" class=\"ax-input\"\n type=\"text\" [attr.placeholder]=\"placeholder\" [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"true\" [ngModel]=\"_editingText\"\n (mouseup)=\"_handleOnInputClickEvent($event)\" (blur)=\"_handleBlurEvent($event)\" (focus)=\"_handleFocusEvent($event)\">\n<ng-content select=\"ax-validation-rule\">\n</ng-content>", dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
496
|
+
}
|
|
497
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeInputComponent, decorators: [{
|
|
498
|
+
type: Component,
|
|
499
|
+
args: [{ selector: 'ax-datetime-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: [
|
|
500
|
+
'disabled',
|
|
501
|
+
'readonly',
|
|
502
|
+
'tabIndex',
|
|
503
|
+
'placeholder',
|
|
504
|
+
'value',
|
|
505
|
+
'state',
|
|
506
|
+
'name',
|
|
507
|
+
'id',
|
|
508
|
+
], host: { class: 'ax-editor-input' }, outputs: [
|
|
509
|
+
'valueChange',
|
|
510
|
+
'stateChange',
|
|
511
|
+
'onValueChanged',
|
|
512
|
+
'onBlur',
|
|
513
|
+
'onFocus',
|
|
514
|
+
'onClick',
|
|
515
|
+
'readonlyChange',
|
|
516
|
+
'disabledChange',
|
|
517
|
+
], providers: [
|
|
518
|
+
{ provide: AXComponent, useExisting: AXDateTimeInputComponent },
|
|
519
|
+
{ provide: AXFocusableComponent, useExisting: AXDateTimeInputComponent },
|
|
520
|
+
{ provide: AXValuableComponent, useExisting: AXDateTimeInputComponent },
|
|
521
|
+
{ provide: AXClearableComponent, useExisting: AXDateTimeInputComponent },
|
|
522
|
+
{
|
|
523
|
+
provide: NG_VALUE_ACCESSOR,
|
|
524
|
+
useExisting: forwardRef(() => AXDateTimeInputComponent),
|
|
525
|
+
multi: true,
|
|
526
|
+
},
|
|
527
|
+
], template: "<input #input id=\"input\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" class=\"ax-input\"\n type=\"text\" [attr.placeholder]=\"placeholder\" [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"true\" [ngModel]=\"_editingText\"\n (mouseup)=\"_handleOnInputClickEvent($event)\" (blur)=\"_handleBlurEvent($event)\" (focus)=\"_handleFocusEvent($event)\">\n<ng-content select=\"ax-validation-rule\">\n</ng-content>" }]
|
|
528
|
+
}], propDecorators: { type: [{
|
|
529
|
+
type: Input
|
|
530
|
+
}], input: [{
|
|
531
|
+
type: ViewChild,
|
|
532
|
+
args: ['input']
|
|
533
|
+
}], input2: [{
|
|
534
|
+
type: ViewChild,
|
|
535
|
+
args: ['input2']
|
|
536
|
+
}], minValue: [{
|
|
537
|
+
type: Input
|
|
538
|
+
}], maxValue: [{
|
|
539
|
+
type: Input
|
|
540
|
+
}], formatChange: [{
|
|
541
|
+
type: Output
|
|
542
|
+
}], onClick: [{
|
|
543
|
+
type: Output
|
|
544
|
+
}], format: [{
|
|
545
|
+
type: Input
|
|
546
|
+
}], _handleOnKeydownEvent: [{
|
|
547
|
+
type: HostListener,
|
|
548
|
+
args: ['keydown', ['$event']]
|
|
549
|
+
}], _handleKeyUpEvent: [{
|
|
550
|
+
type: HostListener,
|
|
551
|
+
args: ['keyup', ['$event']]
|
|
552
|
+
}] } });
|
|
553
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lLWlucHV0L3NyYy9saWIvZGF0ZXRpbWUtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lLWlucHV0L3NyYy9saWIvZGF0ZXRpbWUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLG9CQUFvQixFQUVwQixXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQix5QkFBeUIsR0FDMUIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsaUJBQWlCLEdBS2xCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUF3Q25ELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx5QkFBK0I7SUF0QzdFOztRQXVDVSxvQkFBZSxHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUvRCxrQkFBYSxHQUFvQjtZQUN2QyxJQUFJLEVBQUU7Z0JBQ0osR0FBRyxFQUFFLE1BQU07Z0JBQ1gsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLFlBQVksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztnQkFDMUMsT0FBTyxFQUFFLEtB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Q1U7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsMEJBQTBCLEVBQUU7d0JBQy9ELEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsMEJBQTBCLEVBQUU7d0JBQ3hFLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsMEJBQTBCLEVBQUU7d0JBQ3ZFLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsMEJBQTBCLEVBQUU7d0JBQ3hFOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHlCQUF5QixDQUFDOzRCQUN2RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkEwRVUsSUFBSTtzQkFEZCxLQUFLO2dCQTZCTixLQUFLO3NCQURKLFNBQVM7dUJBQUMsT0FBTztnQkFJbEIsTUFBTTtzQkFETCxTQUFTO3VCQUFDLFFBQVE7Z0JBS1IsUUFBUTtzQkFEbEIsS0FBSztnQkFVSyxRQUFRO3NCQURsQixLQUFLO2dCQVNOLFlBQVk7c0JBRFgsTUFBTTtnQkFJUCxPQUFPO3NCQUROLE1BQU07Z0JBS0ksTUFBTTtzQkFEaEIsS0FBSztnQkE2Rk4scUJBQXFCO3NCQURwQixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFnUG5DLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENsZWFyYWJsZUNvbXBvbmVudCxcbiAgQVhDbGlja0V2ZW50LFxuICBBWENvbXBvbmVudCxcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYVmFsdWFibGVDb21wb25lbnQsXG4gIE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhDYWxlbmRhclNlcnZpY2UsXG4gIEFYRGF0ZVRpbWUsXG4gIEFYRGF0ZVRpbWVQYXJ0LFxuICBBWERhdGVUaW1lUGFydHMsXG4gIFRpbWVVbml0LFxufSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZS10aW1lJztcbmltcG9ydCB7IEFYU3RyaW5nVXRpbCB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1kYXRldGltZS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRldGltZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbnB1dHM6IFtcbiAgICAnZGlzYWJsZWQnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3RhYkluZGV4JyxcbiAgICAncGxhY2Vob2xkZXInLFxuICAgICd2YWx1ZScsXG4gICAgJ3N0YXRlJyxcbiAgICAnbmFtZScsXG4gICAgJ2lkJyxcbiAgXSxcbiAgaG9zdDogeyBjbGFzczogJ2F4LWVkaXRvci1pbnB1dCcgfSxcbiAgb3V0cHV0czogW1xuICAgICd2YWx1ZUNoYW5nZScsXG4gICAgJ3N0YXRlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdvbkJsdXInLFxuICAgICdvbkZvY3VzJyxcbiAgICAnb25DbGljaycsXG4gICAgJ3JlYWRvbmx5Q2hhbmdlJyxcbiAgICAnZGlzYWJsZWRDaGFuZ2UnLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRlVGltZUlucHV0Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRGF0ZVRpbWVJbnB1dENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRGF0ZVRpbWVJbnB1dENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbGVhcmFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGVUaW1lSW5wdXRDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYRGF0ZVRpbWVJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBNWElucHV0QmFzZVZhbHVlQ29tcG9uZW50PERhdGU+IHtcbiAgcHJpdmF0ZSBjYWxlbmRhclNlcnZpY2U6IEFYQ2FsZW5kYXJTZXJ2aWNlID0gaW5qZWN0KEFYQ2FsZW5kYXJTZXJ2aWNlKTtcblxuICBwcml2YXRlIF9lZGl0aW5nUGFydHM6IEFYRGF0ZVRpbWVQYXJ0cyA9IHtcbiAgICB5ZWFyOiB7XG4gICAgICBrZXk6ICd5ZWFyJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAneXl5eScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnWVknLCAneXknLCAnWVlZWScsICd5eXl5J10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDIwMjMsXG4gICAgICB0eXBlZFZhbHVlOiBudWxsLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PlxuICAgICAgICB0aGlzLmVkaXRpbmdEYXRlT2JqLmZvcm1hdCh0aGlzLl9lZGl0aW5nUGFydHMueWVhci5wbGFjZWhvbGRlciksXG4gICAgfSxcbiAgICBtb250aDoge1xuICAgICAga2V5OiAnbW9udGgnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdNTScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnTU1NJywgJ01NTU0nLCAnTU0nLCAnTSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAxLFxuICAgICAgdHlwZWRWYWx1ZTogbnVsbCxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT5cbiAgICAgICAgdGhpcy5lZGl0aW5nRGF0ZU9iai5mb3JtYXQodGhpcy5fZWRpdGluZ1BhcnRzLm1vbnRoLnBsYWNlaG9sZGVyKSxcbiAgICB9LFxuICAgIGRheToge1xuICAgICAga2V5OiAnZGF5JyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnZGQnLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ2RkJywgJ2QnLCAnRERERCcsICdEREQnXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMSxcbiAgICAgIHR5cGVkVmFsdWU6IG51bGwsXG4gICAgICByZWFsVmFsdWU6ICgpID0+XG4gICAgICAgIHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX2VkaXRpbmdQYXJ0cy5kYXkucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gICAgaG91cjoge1xuICAgICAga2V5OiAnaG91cicsXG4gICAgICBwbGFjZWhvbGRlcjogJ0hIJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydISCcsICdIJywgJ2hoJywgJ2gnXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICAgIHR5cGVkVmFsdWU6IG51bGwsXG4gICAgICByZWFsVmFsdWU6ICgpID0+XG4gICAgICAgIHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX2VkaXRpbmdQYXJ0cy5ob3VyLnBsYWNlaG9sZGVyKSxcbiAgICB9LFxuICAgIG1pbnV0ZToge1xuICAgICAga2V5OiAnbWludXRlJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnbW0nLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ21tJywgJ20nXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICAgIHR5cGVkVmFsdWU6IG51bGwsXG4gICAgICByZWFsVmFsdWU6ICgpID0+XG4gICAgICAgIHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX2VkaXRpbmdQYXJ0cy5taW51dGUucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gICAgc2Vjb25kOiB7XG4gICAgICBrZXk6ICdzZWNvbmQnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdzcycsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnc3MnLCAncyddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgdHlwZWRWYWx1ZTogbnVsbCxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT5cbiAgICAgICAgdGhpcy5lZGl0aW5nRGF0ZU9iai5mb3JtYXQodGhpcy5fZWRpdGluZ1BhcnRzLnNlY29uZC5wbGFjZWhvbGRlciksXG4gICAgfSxcbiAgfTtcblxuICBwcm90ZWN0ZWQgX2VkaXRpbmdUZXh0OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfaW5wdXRDaGFyczogc3RyaW5nW10gPSBbXTtcblxuICBwcml2YXRlIF90eXBlOiBzdHJpbmcgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jYWxlbmRhci5uYW1lKCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgfHwgdGhpcy5jYWxlbmRhclNlcnZpY2UuY2FsZW5kYXIubmFtZSgpO1xuICB9XG4gIHB1YmxpYyBzZXQgdHlwZSh2OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAndHlwZScsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWN0aXZlUGFydCA9ICdob3VyJztcbiAgcHVibGljIGdldCBhY3RpdmVQYXJ0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBhcnQ7XG4gIH1cbiAgcHVibGljIHNldCBhY3RpdmVQYXJ0KHY6IHN0cmluZykge1xuICAgIHRoaXMuX2FjdGl2ZVBhcnQgPSB2O1xuICAgIHRoaXMuX2NsZWFySW5wdXRCdWZmZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VkaXRpbmdEYXRlT2JqOiBBWERhdGVUaW1lID0gdGhpcy5jYWxlbmRhclNlcnZpY2Uubm93KHRoaXMudHlwZSk7XG4gIHByaXZhdGUgZ2V0IGVkaXRpbmdEYXRlT2JqKCk6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiB0aGlzLl9lZGl0aW5nRGF0ZU9iajtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JylcbiAgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXQyJylcbiAgaW5wdXQyOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgX21pblZhbHVlOiBEYXRlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IG1pblZhbHVlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl9taW5WYWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IG1pblZhbHVlKHY6IERhdGUpIHtcbiAgICB0aGlzLl9taW5WYWx1ZSA9IHY7XG4gIH1cblxuICBwcml2YXRlIF9tYXhWYWx1ZTogRGF0ZTtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4VmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCBtYXhWYWx1ZSh2OiBEYXRlKSB7XG4gICAgdGhpcy5fbWF4VmFsdWUgPSB2O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIGZvcm1hdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8QVhDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhDbGlja0V2ZW50PigpO1xuXG4gIHByaXZhdGUgX2Zvcm1hdCA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNhbGVuZGFyLmZvcm1hdHMuZGF0ZVRpbWVJbnB1dDtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBmb3JtYXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xuICB9XG4gIHB1YmxpYyBzZXQgZm9ybWF0KHY6IHN0cmluZykge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdmb3JtYXQnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAobywgbikgPT4ge1xuICAgICAgICBPYmplY3QudmFsdWVzKHRoaXMuX2VkaXRpbmdQYXJ0cykuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgICAgIGUuZW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZm9ybWF0UGFydHMgPSBuLnNwbGl0KC9bXmEtekEtWl0rLyk7XG4gICAgICAgIGZvcm1hdFBhcnRzLmZvckVhY2goKGYpID0+IHtcbiAgICAgICAgICBjb25zdCBmb3VuZCA9IE9iamVjdC52YWx1ZXModGhpcy5fZWRpdGluZ1BhcnRzKS5maW5kKChjKSA9PlxuICAgICAgICAgICAgYy5wbGFjZWhvbGRlcnMuc29tZSgoZCkgPT4gZCA9PSBmKVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICBmb3VuZC5lbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGZvdW5kLnBsYWNlaG9sZGVyID0gZjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE9yZGVyZWRQYXJ0cygpOiBBWERhdGVUaW1lUGFydFtdIHtcbiAgICAvLyBUT0RPOiBiZXR0ZXIgc3BsaXRlciBmb3JtYXRcbiAgICBjb25zdCBmb3JtYXRQYXJ0cyA9IHRoaXMuZm9ybWF0LnNwbGl0KC9bXmEtekEtWl0rLyk7XG4gICAgY29uc3QgcmVzdWx0OiBBWERhdGVUaW1lUGFydFtdID0gW107XG4gICAgZm9ybWF0UGFydHMuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgY29uc3QgZm91bmQgPSBPYmplY3QudmFsdWVzKHRoaXMuX2VkaXRpbmdQYXJ0cykuZmluZCgoYykgPT5cbiAgICAgICAgYy5wbGFjZWhvbGRlcnMuc29tZSgoZCkgPT4gZCA9PSBmKVxuICAgICAgKTtcbiAgICAgIGlmIChmb3VuZCAmJiBmb3VuZC5lbmFibGVkKSByZXN1bHQucHVzaChmb3VuZCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgX2NsZWFySW5wdXRCdWZmZXIoKSB7XG4gICAgdGhpcy5faW5wdXRDaGFycyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVGV4dCgpIHtcbiAgICBsZXQgdGV4dCA9IHRoaXMuZm9ybWF0O1xuICAgIC8vXG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLl9lZGl0aW5nUGFydHMpLmZvckVhY2goKHBhcnQpID0+IHtcbiAgICAgIGlmICh0aGlzLmFjdGl2ZVBhcnQgPT0gcGFydC5rZXkpIHtcbiAgICAgICAgaWYgKHBhcnQudHlwZWRWYWx1ZSlcbiAgICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKHBhcnQucGxhY2Vob2xkZXIsIHBhcnQudHlwZWRWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocGFydC50eXBlZFZhbHVlICE9IHBhcnQucGxhY2Vob2xkZXIgJiYgcGFydC50eXBlZFZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKHBhcnQucGxhY2Vob2xkZXIsIHBhcnQucmVhbFZhbHVlKCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5fZWRpdGluZ1RleHQgPSB0ZXh0ID09IHRoaXMuZm9ybWF0ID8gJycgOiB0ZXh0O1xuICAgIGlmICh0aGlzLmFjdGl2ZVBhcnQpIHtcbiAgICAgIHRoaXMuX2hpZ2hsaWdodEFjdGl2ZVBhcnQoKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBpbnRlcm5hbFNldFZhbHVlKHZhbHVlPzogRGF0ZSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgbGV0IGVkaXRpbmdEYXRlID0gdGhpcy5jYWxlbmRhclNlcnZpY2UuY3JlYXRlKHZhbHVlLCB0aGlzLnR5cGUpO1xuICAgICAgbGV0IGFwcGx5Q2hhbmdlcyA9IGZhbHNlO1xuICAgICAgT2JqZWN0LnZhbHVlcyh0aGlzLl9lZGl0aW5nUGFydHMpLmZvckVhY2goKHBhcnQpID0+IHtcbiAgICAgICAgaWYgKCFwYXJ0LmVuYWJsZWQpIHtcbiAgICAgICAgICBlZGl0aW5nRGF0ZSA9IGVkaXRpbmdEYXRlLnNldChwYXJ0LmtleSBhcyBUaW1lVW5pdCwgcGFydC5kZWZhdWx0KTtcbiAgICAgICAgICBhcHBseUNoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGlmIChhcHBseUNoYW5nZXMpIHtcbiAgICAgICAgcmV0dXJuIGVkaXRpbmdEYXRlLmRhdGU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIG92ZXJyaWRlIGludGVybmFsVmFsdWVDaGFuZ2VkKHZhbHVlPzogRGF0ZSk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jcmVhdGUodmFsdWUsIHRoaXMudHlwZSk7XG4gICAgfVxuICAgIE9iamVjdC52YWx1ZXModGhpcy5fZWRpdGluZ1BhcnRzKS5mb3JFYWNoKChwYXJ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgaWYgKHBhcnQudHlwZWRWYWx1ZSAhPSBwYXJ0LnBsYWNlaG9sZGVyKVxuICAgICAgICAgIHBhcnQudHlwZWRWYWx1ZSA9IHBhcnQucmVhbFZhbHVlKCk7XG4gICAgICB9IGVsc2UgcGFydC50eXBlZFZhbHVlID0gbnVsbDtcbiAgICB9KTtcbiAgICB0aGlzLl91cGRhdGVUZXh0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgX2hhbmRsZU9uS2V5ZG93bkV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBpZ25vcmUgPSAoKSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH07XG5cbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgLy9cbiAgICBjb25zdCBvcmRlcmVkUGFydHMgPSB0aGlzLl9nZXRPcmRlcmVkUGFydHMoKTtcbiAgICBjb25zdCBwYXJ0ID0gdGhpcy5hY3RpdmVQYXJ0XG4gICAgICA/IHRoaXMuX2VkaXRpbmdQYXJ0c1t0aGlzLmFjdGl2ZVBhcnRdXG4gICAgICA6IG9yZGVyZWRQYXJ0c1swXTtcbiAgICBjb25zdCBuZXh0UGFydCA9IHBhcnQgPyBvcmRlcmVkUGFydHNbb3JkZXJlZFBhcnRzLmluZGV4T2YocGFydCkgKyAxXSA6IG51bGw7XG4gICAgY29uc3QgcHJldlBhcnQgPSBwYXJ0ID8gb3JkZXJlZFBhcnRzW29yZGVyZWRQYXJ0cy5pbmRleE9mKHBhcnQpIC0gMV0gOiBudWxsO1xuICAgIC8vXG4gICAgY29uc3QgZ29OZXh0ID0gKCkgPT4ge1xuICAgICAgdGhpcy5fY2xlYXJJbnB1dEJ1ZmZlcigpO1xuICAgICAgaWYgKG5leHRQYXJ0KSB7XG4gICAgICAgIHRoaXMuYWN0aXZlUGFydCA9IG5leHRQYXJ0LmtleTtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0QWN0aXZlUGFydCgpO1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgZ29QcmV2ID0gKCkgPT4ge1xuICAgICAgdGhpcy5fY2xlYXJJbnB1dEJ1ZmZlcigpO1xuICAgICAgaWYgKHByZXZQYXJ0KSB7XG4gICAgICAgIHRoaXMuYWN0aXZlUGFydCA9IHByZXZQYXJ0LmtleTtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0QWN0aXZlUGFydCgpO1xuICAgICAgfVxuICAgIH07XG4gICAgLyoqKioqKioqKioqKioqKiAgSGFuZGxlIExlZnQgYW5kIFJpZ2h0ICAqKioqKioqKioqKioqKi9cbiAgICBpZiAoZS5jb2RlID09PSAnQXJyb3dSaWdodCcgfHwgZS5jb2RlID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgaWdub3JlKCk7XG4gICAgICBlLmNvZGUgPT09ICdBcnJvd1JpZ2h0JyA/IGdvTmV4dCgpIDogZ29QcmV2KCk7XG4gICAgfSBlbHNlIGlmICgoZS5jb2RlID09PSAnQXJyb3dVcCcgfHwgZS5jb2RlID09PSAnQXJyb3dEb3duJykgJiYgIWUuY3RybEtleSkge1xuICAgICAgLyoqKioqKioqKioqKioqKiAgSGFuZGxlIFVwIGFuZCBEb3duICAqKioqKioqKioqKioqKi9cbiAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgaWdub3JlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlnbm9yZSgpO1xuICAgICAgICBjb25zdCBzaWduID0gZS5jb2RlID09PSAnQXJyb3dVcCcgPyArMSA6IC0xO1xuICAgICAgICB0aGlzLmFjdGl2ZVBhcnQgPSBwYXJ0LmtleTtcbiAgICAgICAgbGV0IG5ld1ZhbDogQVhEYXRlVGltZSA9IHRoaXMuZWRpdGluZ0RhdGVPYmouYWRkKHBhcnQua2V5LCBzaWduKTtcbiAgICAgICAgdGhpcy5fZWRpdGluZ1BhcnRzW3BhcnQua2V5XS50eXBlZFZhbHVlID0gbmV3VmFsLmZvcm1hdChcbiAgICAgICAgICB0aGlzLl9lZGl0aW5nUGFydHNbcGFydC5rZXldLnBsYWNlaG9sZGVyXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2VkaXRpbmdEYXRlT2JqID0gbmV3VmFsO1xuICAgICAgICB0aGlzLl9kZXRlY3RWYWx1ZUNoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGUuY29kZSA9PSAnQmFja3NwYWNlJyB8fCBlLmNvZGUgPT0gJ0RlbGV0ZScpIHtcbiAgICAgIC8qKioqKioqKioqKioqKiogIEhhbmRsZSBCYWNrc3BhY2UgICoqKioqKioqKioqKioqL1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoaW5wdXQudmFsdWUpIHtcbiAgICAgICAgaWdub3JlKCk7XG4gICAgICAgIHRoaXMuX2VkaXRpbmdQYXJ0c1twYXJ0LmtleV0udHlwZWRWYWx1ZSA9XG4gICAgICAgICAgdGhpcy5fZWRpdGluZ1BhcnRzW3BhcnQua2V5XS5wbGFjZWhvbGRlcjtcbiAgICAgICAgdGhpcy5fZGV0ZWN0VmFsdWVDaGFuZ2VzKCk7XG4gICAgICAgIGdvUHJldigpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZS5jb2RlID09ICdUYWInIHx8IGUuY29kZSA9PSAnU3BhY2UnKSB7XG4gICAgICAvKioqKioqKioqKioqKioqICBIYW5kbGUgQmFja3NwYWNlICAqKioqKioqKioqKioqKi9cbiAgICAgIGlmIChpbnB1dC52YWx1ZSkge1xuICAgICAgICBpZiAoIWUuc2hpZnRLZXkgJiYgbmV4dFBhcnQpIHtcbiAgICAgICAgICBpZ25vcmUoKTtcbiAgICAgICAgICBnb05leHQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChlLnNoaWZ0S2V5ICYmIHByZXZQYXJ0KSB7XG4gICAgICAgICAgaWdub3JlKCk7XG4gICAgICAgICAgZ29QcmV2KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGUua2V5Py50cmltKCkgJiYgIWlzTmFOKE51bWJlcihlLmtleSkpKSB7XG4gICAgICBpZ25vcmUoKTtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IG5leHQgPSBmYWxzZTtcbiAgICAgIGNvbnN0IGVkaXRpbmcgPSB0aGlzLl9lZGl0aW5nUGFydHNbcGFydC5rZXldO1xuICAgICAgLy9cbiAgICAgIHN3aXRjaCAocGFydC5rZXkpIHtcbiAgICAgICAgY2FzZSAneWVhcic6IHtcbiAgICAgICAgICBpZiAoZWRpdGluZy5wbGFjZWhvbGRlci5sZW5ndGggPT0gMiAmJiB0aGlzLl9pbnB1dENoYXJzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl9pbnB1dENoYXJzLnB1c2goXG4gICAgICAgICAgICAgIC4uLnRoaXMuY2FsZW5kYXJTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLm5vdyh0aGlzLnR5cGUpXG4gICAgICAgICAgICAgICAgLmZvcm1hdCgneXl5eScpXG4gICAgICAgICAgICAgICAgLnN1YnN0cmluZygwLCAyKVxuICAgICAgICAgICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLl9pbnB1dENoYXJzLmxlbmd0aCA8IDQpIHtcbiAgICAgICAgICAgIGVkaXRpbmcudHlwZWRWYWx1ZSA9IGAke3RoaXMuX2lucHV0Q2hhcnMuam9pbignJyl9JHtlLmtleX1gO1xuICAgICAgICAgICAgdGhpcy5faW5wdXRDaGFycy5wdXNoKGUua2V5KTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pbnB1dENoYXJzLmxlbmd0aCA+IDMpIHtcbiAgICAgICAgICAgICAgbmV4dCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5leHQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlZGl0aW5nLnR5cGVkVmFsdWUgPSAoJzAwMDAnICsgZWRpdGluZy50eXBlZFZhbHVlKS5zbGljZSgtNCk7XG4gICAgICAgICAgY29uc3QgbnYgPSBwYXJzZUludChlZGl0aW5nLnR5cGVkVmFsdWUpO1xuICAgICAgICAgIC8vaWYgKG52ID4gMCkge1xuICAgICAgICAgIGNvbnN0IG5ld1ZhbCA9IHRoaXMuZWRpdGluZ0RhdGVPYmouc2V0KCd5ZWFyJywgbnYpO1xuICAgICAgICAgIHRoaXMuX2VkaXRpbmdEYXRlT2JqID0gbmV3VmFsO1xuICAgICAgICAgIHRoaXMuX2RldGVjdFZhbHVlQ2hhbmdlcygpO1xuICAgICAgICAgIC8vfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ21vbnRoJzoge1xuICAgICAgICAgIGlmICh0aGlzLl9pbnB1dENoYXJzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl9pbnB1dENoYXJzLnB1c2goZS5rZXkpO1xuICAgICAgICAgICAgZWRpdGluZy50eXBlZFZhbHVlID0gYDAke2Uua2V5fWA7XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQoZS5rZXkpID4gMSkge1xuICAgICAgICAgICAgICB0aGlzLl9jbGVhcklucHV0QnVmZmVyKCk7XG4gICAgICAgICAgICAgIG5leHQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXRDaGFycy5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgY29uc3QgbmV3U3RyID0gcGFyc2VJbnQoYCR7dGhpcy5faW5wdXRDaGFyc1swXX0ke2Uua2V5fWApO1xuICAgICAgICAgICAgaWYgKG5ld1N0ciA+IDEyKSB7XG4gICAgICAgICAgICAgIGVkaXRpbmcudHlwZWRWYWx1ZSA9IGAwJHtlLmtleX1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZWRpdGluZy50eXBlZFZhbHVlID0gbmV3U3RyLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9jbGVhcklucHV0QnVmZmVyKCk7XG4gICAgICAgICAgICBuZXh0ID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWRpdGluZy50eXBlZFZhbHVlID1cbiAgICAgICAgICAgIGVkaXRpbmcudHlwZWRWYWx1ZT8ubGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgID8gJzAnICsgZWRpdGluZy50eXBlZFZhbHVlXG4gICAgICAgICAgICAgIDogZWRpdGluZy50eXBlZFZhbHVlO1xuICAgICAgICAgIGNvbnN0IG52ID0gcGFyc2VJbnQoZWRpdGluZy50eXBlZFZhbHVlKTtcbiAgICAgICAgICBpZiAobnYgPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWwgPSB0aGlzLmVkaXRpbmdEYXRlT2JqLnNldChwYXJ0LmtleSwgbnYpO1xuICAgICAgICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSBuZXdWYWw7XG4gICAgICAgICAgICB0aGlzLl9kZXRlY3RWYWx1ZUNoYW5nZXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnZGF5Jzoge1xuICAgICAgICAgIGlmICh0aGlzLl9pbnB1dENoYXJzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl9pbnB1dENoYXJzLnB1c2goZS5rZXkpO1xuICAgICAgICAgICAgZWRpdGluZy50eXBlZFZhbHVlID0gYDAke2Uua2V5fWA7XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQoZS5rZXkpID4gMykge1xuICAgICAgICAgICAgICB0aGlzLl9jbGVhcklucHV0QnVmZmVyKCk7XG4gICAgICAgICAgICAgIG5leHQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXRDaGFycy5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgY29uc3QgbmV3U3RyID0gcGFyc2VJbnQoYCR7dGhpcy5faW5wdXRDaGFyc1swXX0ke2Uua2V5fWApO1xuICAgICAgICAgICAgaWYgKG5ld1N0ciA+IHRoaXMuX2VkaXRpbmdEYXRlT2JqLm1vbnRoLnRvdGFsRGF5cykge1xuICAgICAgICAgICAgICBlZGl0aW5nLnR5cGVkVmFsdWUgPSBgMCR7ZS5rZXl9YDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGVkaXRpbmcudHlwZWRWYWx1ZSA9IG5ld1N0ci50b1N0cmluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fY2xlYXJJbnB1dEJ1ZmZlcigpO1xuICAgICAgICAgICAgbmV4dCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVkaXRpbmcudHlwZWRWYWx1ZSA9XG4gICAgICAgICAgICBlZGl0aW5nLnR5cGVkVmFsdWU/Lmxlbmd0aCA9PT0gMVxuICAgICAgICAgICAgICA/ICcwJyArIGVkaXRpbmcudHlwZWRWYWx1ZVxuICAgICAgICAgICAgICA6IGVkaXRpbmcudHlwZWRWYWx1ZTtcbiAgICAgICAgICBjb25zdCBudiA9IHBhcnNlSW50KGVkaXRpbmcudHlwZWRWYWx1ZSk7XG4gICAgICAgICAgaWYgKG52ID4gMCkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsID0gdGhpcy5lZGl0aW5nRGF0ZU9iai5zZXQocGFydC5rZXksIG52KTtcbiAgICAgICAgICAgIHRoaXMuX2VkaXRpbmdEYXRlT2JqID0gbmV3VmFsO1xuICAgICAgICAgICAgdGhpcy5fZGV0ZWN0VmFsdWVDaGFuZ2VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2hvdXInOiB7XG4gICAgICAgICAgaWYgKHRoaXMuX2lucHV0Q2hhcnMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2lucHV0Q2hhcnMucHVzaChlLmtleSk7XG4gICAgICAgICAgICBlZGl0aW5nLnR5cGVkVmFsdWUgPSBgMCR7ZS5rZXl9YDtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChlLmtleSkgPiAyKSB7XG4gICAgICAgICAgICAgIG5leHQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXRDaGFycy5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgY29uc3QgbmV3U3RyID0gcGFyc2VJbnQoYCR7dGhpcy5faW5wdXRDaGFyc1swXX0ke2Uua2V5fWApO1xuICAgICAgICAgICAgaWYgKG5ld1N0ciA+IDIzKSB7XG4gICAgICAgICAgICAgIGVkaXRpbmcudHlwZWRWYWx1ZSA9IGAwJHtlLmtleX1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZWRpdGluZy50eXBlZFZhbHVlID0gbmV3U3RyLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXh0ID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWRpdGluZy50eXBlZFZhbHVlID1cbiAgICAgICAgICAgIGVkaXRpbmcudHlwZWRWYWx1ZT8ubGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgID8gJzAnICsgZWRpdGluZy50eXBlZFZhbHVlXG4gICAgICAgICAgICAgIDogZWRpdGluZy50eXBlZFZhbHVlO1xuICAgICAgICAgIGNvbnN0IG5ld1ZhbCA9IHRoaXMuZWRpdGluZ0RhdGVPYmouc2V0KFxuICAgICAgICAgICAgJ2hvdXInLFxuICAgICAgICAgICAgcGFyc2VJbnQoZWRpdGluZy50eXBlZFZhbHVlKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSBuZXdWYWw7XG4gICAgICAgICAgdGhpcy5fZGV0ZWN0VmFsdWVDaGFuZ2VzKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgICBpZiAodGhpcy5faW5wdXRDaGFycy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5faW5wdXRDaGFycy5wdXNoKGUua2V5KTtcbiAgICAgICAgICAgIGVkaXRpbmcudHlwZWRWYWx1ZSA9IGAwJHtlLmtleX1gO1xuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGUua2V5KSA+IDUpIHtcbiAgICAgICAgICAgICAgdGhpcy5fY2xlYXJJbnB1dEJ1ZmZlcigpO1xuICAgICAgICAgICAgICBuZXh0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2lucHV0Q2hhcnMubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1N0ciA9IHBhcnNlSW50KGAke3RoaXMuX2lucHV0Q2hhcnNbMF19JHtlLmtleX1gKTtcbiAgICAgICAgICAgIGlmIChuZXdTdHIgPiA1OSkge1xuICAgICAgICAgICAgICBlZGl0aW5nLnR5cGVkVmFsdWUgPSBgMCR7ZS5rZXl9YDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGVkaXRpbmcudHlwZWRWYWx1ZSA9IG5ld1N0ci50b1N0cmluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fY2xlYXJJbnB1dEJ1ZmZlcigpO1xuICAgICAgICAgICAgbmV4dCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVkaXRpbmcudHlwZWRWYWx1ZSA9XG4gICAgICAgICAgICBlZGl0aW5nLnR5cGVkVmFsdWU/Lmxlbmd0aCA9PT0gMVxuICAgICAgICAgICAgICA/ICcwJyArIGVkaXRpbmcudHlwZWRWYWx1ZVxuICAgICAgICAgICAgICA6IGVkaXRpbmcudHlwZWRWYWx1ZTtcbiAgICAgICAgICBjb25zdCBuZXdWYWwgPSB0aGlzLmVkaXRpbmdEYXRlT2JqLnNldChcbiAgICAgICAgICAgIHBhcnQua2V5LFxuICAgICAgICAgICAgcGFyc2VJbnQoZWRpdGluZy50eXBlZFZhbHVlKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSBuZXdWYWw7XG4gICAgICAgICAgdGhpcy5fZGV0ZWN0VmFsdWVDaGFuZ2VzKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICB9XG4gICAgICBpZiAobmV4dCkge1xuICAgICAgICBnb05leHQoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICAvKioqKioqKioqKioqKioqICBFbWl0IEV2ZW50ICAqKioqKioqKioqKioqKi9cbiAgICBzdXBlci5lbWl0T25LZXlkb3duRXZlbnQoZSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gIF9oYW5kbGVLZXlVcEV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVQYXJ0KSB7XG4gICAgICB0aGlzLl9oaWdobGlnaHRBY3RpdmVQYXJ0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVGb2N1c0V2ZW50KGU6IEZvY3VzRXZlbnQpIHtcbiAgICAvL3RoaXMuX2hpZ2hsaWdodEFjdGl2ZVBhcnQoKTtcbiAgICBzdXBlci5lbWl0T25Gb2N1c0V2ZW50KGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVCbHVyRXZlbnQoZTogRm9jdXNFdmVudCkge1xuICAgIHN1cGVyLmVtaXRPbkJsdXJFdmVudChlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25JbnB1dENsaWNrRXZlbnQoZTogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fZGV0ZWN0UGFydEF0UG9zaXRpb24oKTtcbiAgICB9LCAwKTtcbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9kZXRlY3RQYXJ0QXRQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWlucHV0LnZhbHVlKSByZXR1cm47XG4gICAgY29uc3Qgc1N0YXJ0ID0gaW5wdXQuc2VsZWN0aW9uRW5kIHx8IDA7XG4gICAgY29uc3QgcmUgPSAvW2EtekEtWjAtOV0rL2dpO1xuICAgIGNvbnN0IHZhbHVlUGFydHMgPSBBcnJheS5mcm9tKGlucHV0LnZhbHVlLm1hdGNoQWxsKHJlKSk7XG4gICAgY29uc3Qgb3JkZXJlZFBhcnRzID0gdGhpcy5fZ2V0T3JkZXJlZFBhcnRzKCk7XG4gICAgY29uc3QgaW5kZXggPSB2YWx1ZVBhcnRzLmZpbmRJbmRleChcbiAgICAgIChjOiBhbnkpID0+IGMuaW5kZXggPD0gc1N0YXJ0ICYmIGMuaW5kZXggKyBjWzBdLmxlbmd0aCA+PSBzU3RhcnRcbiAgICApO1xuICAgIHRoaXMuYWN0aXZlUGFydCA9IG9yZGVyZWRQYXJ0c1tpbmRleF0ua2V5O1xuICAgIHRoaXMuX2hpZ2hsaWdodEFjdGl2ZVBhcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hpZ2hsaWdodEFjdGl2ZVBhcnQoKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghaW5wdXQgfHwgIWlucHV0LnZhbHVlIHx8ICF0aGlzLmFjdGl2ZVBhcnQpIHJldHVybjtcbiAgICBjb25zdCBvcmRlcmVkUGFydHMgPSB0aGlzLl9nZXRPcmRlcmVkUGFydHMoKTtcbiAgICBjb25zdCBpbmRleCA9IG9yZGVyZWRQYXJ0cy5maW5kSW5kZXgoKGMpID0+IGMua2V5ID09IHRoaXMuYWN0aXZlUGFydCk7XG4gICAgY29uc3QgcmUgPSAvW2EtekEtWjAtOV0rL2dpO1xuICAgIGNvbnN0IHZhbHVlUGFydHMgPSBBcnJheS5mcm9tKGlucHV0LnZhbHVlLm1hdGNoQWxsKHJlKSk7XG4gICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBBWFN0cmluZ1V0aWwuZ2V0V29yZEJvdW5kc0F0UG9zaXRpb24oXG4gICAgICBpbnB1dC52YWx1ZSxcbiAgICAgIHZhbHVlUGFydHNbaW5kZXhdPy5pbmRleFxuICAgICk7XG4gICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCk7XG4gIH1cblxuICBwcml2YXRlIF9kZXRlY3RWYWx1ZUNoYW5nZXMoKSB7XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLl9lZGl0aW5nRGF0ZU9iai5kYXRlLCB0cnVlKTtcbiAgfVxufVxuIiwiPGlucHV0ICNpbnB1dCBpZD1cImlucHV0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgYXV0b2NvcnJlY3Q9XCJvZmZcIiBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiIHNwZWxsY2hlY2s9XCJmYWxzZVwiIGNsYXNzPVwiYXgtaW5wdXRcIlxuICAgIHR5cGU9XCJ0ZXh0XCIgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtjbGFzcy5heC1zdGF0ZS1yZWFkb25seV09XCJyZWFkb25seVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtyZWFkb25seV09XCJ0cnVlXCIgW25nTW9kZWxdPVwiX2VkaXRpbmdUZXh0XCJcbiAgICAobW91c2V1cCk9XCJfaGFuZGxlT25JbnB1dENsaWNrRXZlbnQoJGV2ZW50KVwiIChibHVyKT1cIl9oYW5kbGVCbHVyRXZlbnQoJGV2ZW50KVwiIChmb2N1cyk9XCJfaGFuZGxlRm9jdXNFdmVudCgkZXZlbnQpXCI+XG48bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj5cbjwvbmctY29udGVudD4iXX0=
|