@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
|
@@ -1,1107 +0,0 @@
|
|
|
1
|
-
import { AXTranslator } from '@acorex/core';
|
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, } from '@angular/core';
|
|
3
|
-
import { AXBaseTextComponent, AXValidatableComponent, } from '../base/element.class';
|
|
4
|
-
import { AXValueEvent } from '../base/events.class';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "@angular/forms";
|
|
8
|
-
import * as i3 from "../button/button.component";
|
|
9
|
-
import * as i4 from "ngx-mask";
|
|
10
|
-
export class AXTimePickerItemChangedEvent {
|
|
11
|
-
minute;
|
|
12
|
-
second;
|
|
13
|
-
hour;
|
|
14
|
-
time;
|
|
15
|
-
}
|
|
16
|
-
export class AXTimePickerChangedEvent extends AXValueEvent {
|
|
17
|
-
}
|
|
18
|
-
export class AXTimePickerComponent extends AXBaseTextComponent {
|
|
19
|
-
cdr;
|
|
20
|
-
onValueChanged = new EventEmitter();
|
|
21
|
-
// @ViewChild('input', { static: true })
|
|
22
|
-
// @ContentChild('input', { static: true })
|
|
23
|
-
// input: ElementRef<HTMLInputElement>;
|
|
24
|
-
timeType;
|
|
25
|
-
showMask = true;
|
|
26
|
-
type = 'HHmm';
|
|
27
|
-
showCurentTime = false;
|
|
28
|
-
clearDisabled = true;
|
|
29
|
-
HHmmss = [
|
|
30
|
-
/[0-2]/,
|
|
31
|
-
/[0-9]/,
|
|
32
|
-
':',
|
|
33
|
-
/[0-5]/,
|
|
34
|
-
/[0-9]/,
|
|
35
|
-
':',
|
|
36
|
-
/[0-5]/,
|
|
37
|
-
/[0-9]/,
|
|
38
|
-
];
|
|
39
|
-
HHmm = [/[0-2]/, /[0-9]/, ':', /[0-5]/, /[0-9]/];
|
|
40
|
-
HH = [/[0-2]/, /[0-9]/];
|
|
41
|
-
hhmmss = [
|
|
42
|
-
/[0-1]/,
|
|
43
|
-
/[0-9]/,
|
|
44
|
-
':',
|
|
45
|
-
/[0-5]/,
|
|
46
|
-
/[0-9]/,
|
|
47
|
-
':',
|
|
48
|
-
/[0-5]/,
|
|
49
|
-
/[0-9]/,
|
|
50
|
-
];
|
|
51
|
-
hhmm = [/[0-1]/, /[0-9]/, ':', /[0-5]/, /[0-9]/];
|
|
52
|
-
hh = [/[0-1]/, /[0-9]/];
|
|
53
|
-
// TODO: apply am pm from locale
|
|
54
|
-
hhmmssam = [
|
|
55
|
-
/[0-1]/,
|
|
56
|
-
/[0-9]/,
|
|
57
|
-
':',
|
|
58
|
-
/[0-5]/,
|
|
59
|
-
/[0-9]/,
|
|
60
|
-
':',
|
|
61
|
-
/[0-5]/,
|
|
62
|
-
/[0-9]/,
|
|
63
|
-
' ',
|
|
64
|
-
/[a|p|ق|ب]/,
|
|
65
|
-
AXTranslator.get('dateTime.dayTime.m'),
|
|
66
|
-
];
|
|
67
|
-
hhmmam = [
|
|
68
|
-
/[0-1]/,
|
|
69
|
-
/[0-9]/,
|
|
70
|
-
':',
|
|
71
|
-
/[0-5]/,
|
|
72
|
-
/[0-9]/,
|
|
73
|
-
' ',
|
|
74
|
-
/[a|p|ق|ب]/,
|
|
75
|
-
AXTranslator.get('dateTime.dayTime.m'),
|
|
76
|
-
];
|
|
77
|
-
hham = [
|
|
78
|
-
/[0-1]/,
|
|
79
|
-
/[0-9]/,
|
|
80
|
-
' ',
|
|
81
|
-
/[a|p|ق|ب]/,
|
|
82
|
-
AXTranslator.get('dateTime.dayTime.m'),
|
|
83
|
-
];
|
|
84
|
-
textValue = '';
|
|
85
|
-
valueHam = '-- ' + AXTranslator.get('dateTime.dayTime.am');
|
|
86
|
-
valueMam = '--:-- ' + AXTranslator.get('dateTime.dayTime.am');
|
|
87
|
-
valueSam = '--:--:-- ' + AXTranslator.get('dateTime.dayTime.am');
|
|
88
|
-
_values;
|
|
89
|
-
get value() {
|
|
90
|
-
return this._values;
|
|
91
|
-
}
|
|
92
|
-
set value(v) {
|
|
93
|
-
if (v === '' ||
|
|
94
|
-
v == null ||
|
|
95
|
-
v === '--:--:--' ||
|
|
96
|
-
v === '--:--' ||
|
|
97
|
-
v === '--' ||
|
|
98
|
-
v === this.valueSam ||
|
|
99
|
-
v === this.valueMam ||
|
|
100
|
-
v === this.valueHam) {
|
|
101
|
-
this.clearDisabled = false;
|
|
102
|
-
const old = this._values;
|
|
103
|
-
switch (this.type) {
|
|
104
|
-
case 'HHmmss':
|
|
105
|
-
this.textValue = '--:--:--';
|
|
106
|
-
break;
|
|
107
|
-
case 'HHmm':
|
|
108
|
-
this.textValue = '--:--';
|
|
109
|
-
break;
|
|
110
|
-
case 'HH':
|
|
111
|
-
this.textValue = '--';
|
|
112
|
-
break;
|
|
113
|
-
case 'hhmmss':
|
|
114
|
-
this.textValue = '--:--:--';
|
|
115
|
-
break;
|
|
116
|
-
case 'hhmm':
|
|
117
|
-
this.textValue = '--:--';
|
|
118
|
-
break;
|
|
119
|
-
case 'hh':
|
|
120
|
-
this.textValue = '--';
|
|
121
|
-
break;
|
|
122
|
-
case 'hhmmssam':
|
|
123
|
-
this.textValue = this.valueSam;
|
|
124
|
-
break;
|
|
125
|
-
case 'hhmmam':
|
|
126
|
-
this.textValue = this.valueMam;
|
|
127
|
-
break;
|
|
128
|
-
case 'hham':
|
|
129
|
-
this.textValue = this.valueHam;
|
|
130
|
-
break;
|
|
131
|
-
}
|
|
132
|
-
this._values = null;
|
|
133
|
-
if (v !== old) {
|
|
134
|
-
this.valueChange.emit(null);
|
|
135
|
-
this.onValueChanged.emit({
|
|
136
|
-
component: this,
|
|
137
|
-
value: { hour: null, minute: null, second: null, time: null },
|
|
138
|
-
oldValue: { time: old },
|
|
139
|
-
htmlElement: this.ref.nativeElement,
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
this.clearDisabled = true;
|
|
145
|
-
if (this._values && v) {
|
|
146
|
-
const old = this._values;
|
|
147
|
-
const ind1 = v.charAt(0);
|
|
148
|
-
const ind2 = v.charAt(1);
|
|
149
|
-
const ind3 = v.charAt(2);
|
|
150
|
-
const ind4 = v.charAt(3);
|
|
151
|
-
const ind5 = v.charAt(4);
|
|
152
|
-
const ind6 = v.charAt(5);
|
|
153
|
-
const ind7 = v.charAt(6);
|
|
154
|
-
const ind8 = v.charAt(7);
|
|
155
|
-
const ind9 = v.charAt(8);
|
|
156
|
-
const ind10 = v.charAt(9);
|
|
157
|
-
const indOld4 = old.charAt(9);
|
|
158
|
-
const indOld7 = old.charAt(9);
|
|
159
|
-
const indOld10 = old.charAt(9);
|
|
160
|
-
// handle hhmmssAm
|
|
161
|
-
if (ind1 === '-' &&
|
|
162
|
-
ind2 !== '-' &&
|
|
163
|
-
this.timeType.mask === this.hhmmssam) {
|
|
164
|
-
this.textValue =
|
|
165
|
-
'0' +
|
|
166
|
-
ind2 +
|
|
167
|
-
ind3 +
|
|
168
|
-
ind4 +
|
|
169
|
-
ind5 +
|
|
170
|
-
ind6 +
|
|
171
|
-
ind7 +
|
|
172
|
-
ind8 +
|
|
173
|
-
ind9 +
|
|
174
|
-
ind10 +
|
|
175
|
-
AXTranslator.get('dateTime.dayTime.m');
|
|
176
|
-
setTimeout(() => {
|
|
177
|
-
this.setCaretPosition(this.input.nativeElement, 2);
|
|
178
|
-
this.cursorPosition = 2;
|
|
179
|
-
}, 0);
|
|
180
|
-
}
|
|
181
|
-
if (ind4 === '-' &&
|
|
182
|
-
ind5 !== '-' &&
|
|
183
|
-
this.timeType.mask === this.hhmmssam) {
|
|
184
|
-
this.textValue =
|
|
185
|
-
ind1 +
|
|
186
|
-
ind2 +
|
|
187
|
-
ind3 +
|
|
188
|
-
'0' +
|
|
189
|
-
ind5 +
|
|
190
|
-
ind6 +
|
|
191
|
-
ind7 +
|
|
192
|
-
ind8 +
|
|
193
|
-
ind9 +
|
|
194
|
-
ind10 +
|
|
195
|
-
AXTranslator.get('dateTime.dayTime.m');
|
|
196
|
-
setTimeout(() => {
|
|
197
|
-
this.setCaretPosition(this.input.nativeElement, 5);
|
|
198
|
-
this.cursorPosition = 5;
|
|
199
|
-
}, 0);
|
|
200
|
-
}
|
|
201
|
-
if (ind7 === '-' &&
|
|
202
|
-
ind8 !== '-' &&
|
|
203
|
-
this.timeType.mask === this.hhmmssam) {
|
|
204
|
-
this.textValue =
|
|
205
|
-
ind1 +
|
|
206
|
-
ind2 +
|
|
207
|
-
ind3 +
|
|
208
|
-
ind4 +
|
|
209
|
-
ind5 +
|
|
210
|
-
ind6 +
|
|
211
|
-
'0' +
|
|
212
|
-
ind8 +
|
|
213
|
-
ind9 +
|
|
214
|
-
ind10 +
|
|
215
|
-
AXTranslator.get('dateTime.dayTime.m');
|
|
216
|
-
setTimeout(() => {
|
|
217
|
-
this.setCaretPosition(this.input.nativeElement, 8);
|
|
218
|
-
this.cursorPosition = 8;
|
|
219
|
-
}, 0);
|
|
220
|
-
}
|
|
221
|
-
if (indOld10 === '-' && this.timeType.mask === this.hhmmssam) {
|
|
222
|
-
this.textValue =
|
|
223
|
-
ind1 +
|
|
224
|
-
ind2 +
|
|
225
|
-
ind3 +
|
|
226
|
-
ind4 +
|
|
227
|
-
ind5 +
|
|
228
|
-
ind6 +
|
|
229
|
-
ind7 +
|
|
230
|
-
ind8 +
|
|
231
|
-
ind9 +
|
|
232
|
-
AXTranslator.get('dateTime.dayTime.am');
|
|
233
|
-
}
|
|
234
|
-
//
|
|
235
|
-
if (ind1 === '-' &&
|
|
236
|
-
ind2 !== '-' &&
|
|
237
|
-
this.timeType.mask === this.hhmmam) {
|
|
238
|
-
this.textValue =
|
|
239
|
-
'0' +
|
|
240
|
-
ind2 +
|
|
241
|
-
ind3 +
|
|
242
|
-
ind4 +
|
|
243
|
-
ind5 +
|
|
244
|
-
ind6 +
|
|
245
|
-
ind7 +
|
|
246
|
-
AXTranslator.get('dateTime.dayTime.m');
|
|
247
|
-
setTimeout(() => {
|
|
248
|
-
this.setCaretPosition(this.input.nativeElement, 2);
|
|
249
|
-
this.cursorPosition = 2;
|
|
250
|
-
}, 0);
|
|
251
|
-
}
|
|
252
|
-
if (ind4 === '-' &&
|
|
253
|
-
ind5 !== '-' &&
|
|
254
|
-
this.timeType.mask === this.hhmmam) {
|
|
255
|
-
this.textValue =
|
|
256
|
-
ind1 +
|
|
257
|
-
ind2 +
|
|
258
|
-
ind3 +
|
|
259
|
-
'0' +
|
|
260
|
-
ind5 +
|
|
261
|
-
ind6 +
|
|
262
|
-
ind7 +
|
|
263
|
-
AXTranslator.get('dateTime.dayTime.m');
|
|
264
|
-
setTimeout(() => {
|
|
265
|
-
this.setCaretPosition(this.input.nativeElement, 5);
|
|
266
|
-
this.cursorPosition = 5;
|
|
267
|
-
}, 0);
|
|
268
|
-
}
|
|
269
|
-
if (indOld7 === '-' && this.timeType.mask === this.hhmmam) {
|
|
270
|
-
this.textValue =
|
|
271
|
-
ind1 +
|
|
272
|
-
ind2 +
|
|
273
|
-
ind3 +
|
|
274
|
-
ind4 +
|
|
275
|
-
ind5 +
|
|
276
|
-
ind6 +
|
|
277
|
-
AXTranslator.get('dateTime.dayTime.am');
|
|
278
|
-
}
|
|
279
|
-
//
|
|
280
|
-
if (ind1 === '-' && ind2 !== '-' && this.timeType.mask === this.hham) {
|
|
281
|
-
this.textValue =
|
|
282
|
-
'0' + ind2 + ind3 + ind4 + AXTranslator.get('dateTime.dayTime.m');
|
|
283
|
-
setTimeout(() => {
|
|
284
|
-
this.setCaretPosition(this.input.nativeElement, 2);
|
|
285
|
-
this.cursorPosition = 2;
|
|
286
|
-
}, 0);
|
|
287
|
-
}
|
|
288
|
-
if (indOld4 === '-' && this.timeType.mask === this.hham) {
|
|
289
|
-
this.textValue =
|
|
290
|
-
ind1 + ind2 + ind3 + AXTranslator.get('dateTime.dayTime.am');
|
|
291
|
-
}
|
|
292
|
-
//
|
|
293
|
-
if (ind1 === '-' &&
|
|
294
|
-
ind2 !== '-' &&
|
|
295
|
-
(this.timeType.mask === this.hhmmss ||
|
|
296
|
-
this.timeType.mask === this.HHmmss)) {
|
|
297
|
-
this.textValue = '0' + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8;
|
|
298
|
-
setTimeout(() => {
|
|
299
|
-
this.setCaretPosition(this.input.nativeElement, 2);
|
|
300
|
-
this.cursorPosition = 2;
|
|
301
|
-
}, 0);
|
|
302
|
-
}
|
|
303
|
-
if (ind4 === '-' &&
|
|
304
|
-
ind5 !== '-' &&
|
|
305
|
-
(this.timeType.mask === this.hhmmss ||
|
|
306
|
-
this.timeType.mask === this.HHmmss)) {
|
|
307
|
-
this.textValue = ind1 + ind2 + ind3 + '0' + ind5 + ind6 + ind7 + ind8;
|
|
308
|
-
setTimeout(() => {
|
|
309
|
-
this.setCaretPosition(this.input.nativeElement, 6);
|
|
310
|
-
this.cursorPosition = 6;
|
|
311
|
-
}, 0);
|
|
312
|
-
}
|
|
313
|
-
if (ind7 === '-' &&
|
|
314
|
-
ind8 !== '-' &&
|
|
315
|
-
(this.timeType.mask === this.hhmmss ||
|
|
316
|
-
this.timeType.mask === this.HHmmss)) {
|
|
317
|
-
this.textValue = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + '0' + ind8;
|
|
318
|
-
setTimeout(() => {
|
|
319
|
-
this.setCaretPosition(this.input.nativeElement, 9);
|
|
320
|
-
this.cursorPosition = 9;
|
|
321
|
-
}, 0);
|
|
322
|
-
}
|
|
323
|
-
//
|
|
324
|
-
if (ind1 === '-' &&
|
|
325
|
-
ind2 !== '-' &&
|
|
326
|
-
(this.timeType.mask === this.hhmm || this.timeType.mask === this.HHmm)) {
|
|
327
|
-
this.textValue = '0' + ind2 + ind3 + ind4 + ind5;
|
|
328
|
-
setTimeout(() => {
|
|
329
|
-
this.setCaretPosition(this.input.nativeElement, 2);
|
|
330
|
-
this.cursorPosition = 2;
|
|
331
|
-
}, 0);
|
|
332
|
-
}
|
|
333
|
-
if (ind4 === '-' &&
|
|
334
|
-
ind5 !== '-' &&
|
|
335
|
-
(this.timeType.mask === this.hhmm || this.timeType.mask === this.HHmm)) {
|
|
336
|
-
this.textValue = ind1 + ind2 + ind3 + '0' + ind5;
|
|
337
|
-
setTimeout(() => {
|
|
338
|
-
this.setCaretPosition(this.input.nativeElement, 5);
|
|
339
|
-
this.cursorPosition = 5;
|
|
340
|
-
}, 0);
|
|
341
|
-
}
|
|
342
|
-
//
|
|
343
|
-
if (ind1 === '-' &&
|
|
344
|
-
ind2 !== '-' &&
|
|
345
|
-
(this.timeType.mask === this.hh || this.timeType.mask === this.HH)) {
|
|
346
|
-
this.textValue = '0' + ind2;
|
|
347
|
-
setTimeout(() => {
|
|
348
|
-
this.setCaretPosition(this.input.nativeElement, 2);
|
|
349
|
-
this.cursorPosition = 2;
|
|
350
|
-
}, 0);
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
if (v !== this._values) {
|
|
354
|
-
const old = this._values;
|
|
355
|
-
this.textValue = v;
|
|
356
|
-
this._values = v && v.indexOf('-') === -1 ? v : null;
|
|
357
|
-
if (v.indexOf('-') === -1) {
|
|
358
|
-
this.valueChange.emit(v);
|
|
359
|
-
this.onValueChanged.emit({
|
|
360
|
-
component: this,
|
|
361
|
-
value: {
|
|
362
|
-
time: v,
|
|
363
|
-
hour: Number(v[0] + v[1]),
|
|
364
|
-
minute: v[3] &&
|
|
365
|
-
v[3] !== AXTranslator.get('dateTime.dayTime.a') &&
|
|
366
|
-
v[3] !== AXTranslator.get('dateTime.dayTime.p')
|
|
367
|
-
? Number(v[3] + v[4])
|
|
368
|
-
: null,
|
|
369
|
-
second: v[6] &&
|
|
370
|
-
v[6] !== AXTranslator.get('dateTime.dayTime.a') &&
|
|
371
|
-
v[6] !== AXTranslator.get('dateTime.dayTime.p')
|
|
372
|
-
? Number(v[6] + v[7])
|
|
373
|
-
: null,
|
|
374
|
-
},
|
|
375
|
-
oldValue: { time: old },
|
|
376
|
-
htmlElement: this.ref.nativeElement,
|
|
377
|
-
});
|
|
378
|
-
this.cdr.detectChanges();
|
|
379
|
-
this.clearValidationStyle(this.input.nativeElement);
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
cursorPosition = 0;
|
|
385
|
-
constructor(cdr, ref) {
|
|
386
|
-
super(cdr, ref);
|
|
387
|
-
this.cdr = cdr;
|
|
388
|
-
this.timeType = 'HHmm';
|
|
389
|
-
}
|
|
390
|
-
clearValue() {
|
|
391
|
-
this.clear();
|
|
392
|
-
this.handleInputFocus();
|
|
393
|
-
}
|
|
394
|
-
ngOnInit() {
|
|
395
|
-
switch (this.timeType) {
|
|
396
|
-
case 'HHmmss':
|
|
397
|
-
this.type = 'HHmmss';
|
|
398
|
-
this.timeType = 'Hh:m0:s0';
|
|
399
|
-
this.textValue = this.value ? this.value : '--:--:--';
|
|
400
|
-
break;
|
|
401
|
-
case 'HHmm':
|
|
402
|
-
this.type = 'HHmm';
|
|
403
|
-
this.timeType = 'Hh:m0';
|
|
404
|
-
this.textValue = this.value ? this.value : '--:--';
|
|
405
|
-
break;
|
|
406
|
-
case 'HH':
|
|
407
|
-
this.type = 'HH';
|
|
408
|
-
this.timeType = 'Hh';
|
|
409
|
-
this.textValue = this.value ? this.value : '--';
|
|
410
|
-
break;
|
|
411
|
-
case 'hhmmss':
|
|
412
|
-
this.type = 'hhmmss';
|
|
413
|
-
this.timeType = 'hh:m0:s0';
|
|
414
|
-
this.textValue = this.value ? this.value : '--:--:--';
|
|
415
|
-
break;
|
|
416
|
-
case 'hhmm':
|
|
417
|
-
this.type = 'hhmm';
|
|
418
|
-
this.timeType = 'hh:m0:s0';
|
|
419
|
-
this.textValue = this.value ? this.value : '--:--';
|
|
420
|
-
break;
|
|
421
|
-
case 'hh':
|
|
422
|
-
this.type = 'hh';
|
|
423
|
-
this.timeType = 'hh';
|
|
424
|
-
this.textValue = this.value ? this.value : '--';
|
|
425
|
-
break;
|
|
426
|
-
case 'hhmmssam':
|
|
427
|
-
this.type = 'hhmmssam';
|
|
428
|
-
this.timeType = 'H0h0:m0s0AA';
|
|
429
|
-
this.textValue = this.value ? this.value : this.valueSam;
|
|
430
|
-
break;
|
|
431
|
-
case 'hhmmam':
|
|
432
|
-
this.type = 'hhmmam';
|
|
433
|
-
this.timeType = 'H0h0:m0AA';
|
|
434
|
-
this.textValue = this.value ? this.value : this.valueMam;
|
|
435
|
-
break;
|
|
436
|
-
case 'hham':
|
|
437
|
-
this.type = 'hham';
|
|
438
|
-
this.timeType = 'h0h0am';
|
|
439
|
-
this.textValue = this.value ? this.value : this.valueHam;
|
|
440
|
-
break;
|
|
441
|
-
default:
|
|
442
|
-
this.type = 'HHmm';
|
|
443
|
-
this.timeType = 'H0h0:m0';
|
|
444
|
-
this.textValue = this.value ? this.value : '--:--';
|
|
445
|
-
break;
|
|
446
|
-
}
|
|
447
|
-
if (this.showCurentTime === true) {
|
|
448
|
-
const hour = new Date().getHours() > 10
|
|
449
|
-
? new Date().getHours()
|
|
450
|
-
: '0' + new Date().getHours();
|
|
451
|
-
let amHour;
|
|
452
|
-
if (new Date().getHours() > 10) {
|
|
453
|
-
if (new Date().getHours() > 12) {
|
|
454
|
-
if (new Date().getHours() - 12 < 10) {
|
|
455
|
-
amHour = '0' + (new Date().getHours() - 12);
|
|
456
|
-
}
|
|
457
|
-
else {
|
|
458
|
-
amHour = new Date().getHours();
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
else {
|
|
462
|
-
amHour = new Date().getHours();
|
|
463
|
-
}
|
|
464
|
-
}
|
|
465
|
-
else {
|
|
466
|
-
amHour = '0' + new Date().getHours();
|
|
467
|
-
}
|
|
468
|
-
const min = new Date().getMinutes() > 9
|
|
469
|
-
? new Date().getMinutes()
|
|
470
|
-
: '0' + new Date().getMinutes();
|
|
471
|
-
const sec = new Date().getSeconds() > 9
|
|
472
|
-
? new Date().getSeconds()
|
|
473
|
-
: '0' + new Date().getSeconds();
|
|
474
|
-
if (this.type === 'hh' ||
|
|
475
|
-
this.type === 'hhmm' ||
|
|
476
|
-
this.type === 'hhmmss' ||
|
|
477
|
-
this.type === 'hhmmssam') {
|
|
478
|
-
if (hour >= 12) {
|
|
479
|
-
this.value =
|
|
480
|
-
amHour +
|
|
481
|
-
':' +
|
|
482
|
-
min +
|
|
483
|
-
':' +
|
|
484
|
-
sec +
|
|
485
|
-
' ' +
|
|
486
|
-
AXTranslator.get('dateTime.dayTime.pm');
|
|
487
|
-
}
|
|
488
|
-
else {
|
|
489
|
-
this.value =
|
|
490
|
-
amHour +
|
|
491
|
-
':' +
|
|
492
|
-
min +
|
|
493
|
-
':' +
|
|
494
|
-
sec +
|
|
495
|
-
' ' +
|
|
496
|
-
AXTranslator.get('dateTime.dayTime.am');
|
|
497
|
-
}
|
|
498
|
-
}
|
|
499
|
-
else if (this.type === 'hham') {
|
|
500
|
-
if (hour >= 12) {
|
|
501
|
-
this.value = amHour + ' ' + AXTranslator.get('dateTime.dayTime.pm');
|
|
502
|
-
}
|
|
503
|
-
else {
|
|
504
|
-
this.value = amHour + ' ' + AXTranslator.get('dateTime.dayTime.am');
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
else if (this.type === 'hhmmam') {
|
|
508
|
-
if (hour >= 12) {
|
|
509
|
-
this.value =
|
|
510
|
-
amHour + ':' + min + ' ' + AXTranslator.get('dateTime.dayTime.pm');
|
|
511
|
-
}
|
|
512
|
-
else {
|
|
513
|
-
this.value =
|
|
514
|
-
amHour + ':' + min + ' ' + AXTranslator.get('dateTime.dayTime.am');
|
|
515
|
-
}
|
|
516
|
-
}
|
|
517
|
-
else {
|
|
518
|
-
this.value = hour + ':' + min + ':' + sec;
|
|
519
|
-
}
|
|
520
|
-
}
|
|
521
|
-
}
|
|
522
|
-
onStartfocus() {
|
|
523
|
-
this.input.nativeElement.style.caretColor = 'transparent';
|
|
524
|
-
setTimeout(() => {
|
|
525
|
-
this.setCaretPosition(this.input.nativeElement, 0);
|
|
526
|
-
this.cursorPosition = 0;
|
|
527
|
-
this.input.nativeElement.style.caretColor = 'auto';
|
|
528
|
-
}, 0);
|
|
529
|
-
}
|
|
530
|
-
handleInputFocus() {
|
|
531
|
-
this.onStartfocus();
|
|
532
|
-
this.input.nativeElement.focus();
|
|
533
|
-
}
|
|
534
|
-
handleInputBlur(e) {
|
|
535
|
-
if (this.textValue.indexOf('-') !== -1) {
|
|
536
|
-
switch (this.type) {
|
|
537
|
-
case 'HHmmss':
|
|
538
|
-
this.textValue = '--:--:--';
|
|
539
|
-
break;
|
|
540
|
-
case 'HHmm':
|
|
541
|
-
this.textValue = '--:--';
|
|
542
|
-
break;
|
|
543
|
-
case 'HH':
|
|
544
|
-
this.textValue = '--';
|
|
545
|
-
break;
|
|
546
|
-
case 'hhmmss':
|
|
547
|
-
this.textValue = '--:--:--';
|
|
548
|
-
break;
|
|
549
|
-
case 'hhmm':
|
|
550
|
-
this.textValue = '--:--';
|
|
551
|
-
break;
|
|
552
|
-
case 'hh':
|
|
553
|
-
this.textValue = '--';
|
|
554
|
-
break;
|
|
555
|
-
case 'hhmmssam':
|
|
556
|
-
this.textValue = this.valueSam;
|
|
557
|
-
break;
|
|
558
|
-
case 'hhmmam':
|
|
559
|
-
this.textValue = this.valueMam;
|
|
560
|
-
break;
|
|
561
|
-
case 'hham':
|
|
562
|
-
this.textValue = this.valueHam;
|
|
563
|
-
break;
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
handleKeyPress(event) {
|
|
568
|
-
const inputChar = String.fromCharCode(event.charCode);
|
|
569
|
-
const firstChar = this.textValue.charAt(0);
|
|
570
|
-
const secondChar = this.textValue.charAt(1);
|
|
571
|
-
setTimeout(() => {
|
|
572
|
-
if (this.input.nativeElement.selectionStart ||
|
|
573
|
-
this.input.nativeElement.selectionStart === 0) {
|
|
574
|
-
this.cursorPosition = this.input.nativeElement.selectionStart;
|
|
575
|
-
// this.cursorPosition += 1 ;
|
|
576
|
-
}
|
|
577
|
-
}, 0);
|
|
578
|
-
if (firstChar === '2') {
|
|
579
|
-
if (secondChar === '' ||
|
|
580
|
-
this.textValue.charAt(1) >= '4' ||
|
|
581
|
-
this.cursorPosition < 3) {
|
|
582
|
-
if (inputChar >= '4') {
|
|
583
|
-
event.preventDefault();
|
|
584
|
-
}
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
if (this.timeType.mask === this.hhmmss ||
|
|
588
|
-
this.timeType.mask === this.hhmm ||
|
|
589
|
-
this.timeType.mask === this.hh ||
|
|
590
|
-
this.timeType.mask === this.hhmmssam ||
|
|
591
|
-
this.timeType.mask === this.hhmmam ||
|
|
592
|
-
this.timeType.mask === this.hham) {
|
|
593
|
-
if (firstChar === '1') {
|
|
594
|
-
if (secondChar === '' ||
|
|
595
|
-
this.textValue.charAt(1) >= '3' ||
|
|
596
|
-
this.cursorPosition < 3) {
|
|
597
|
-
if (inputChar >= '3') {
|
|
598
|
-
event.preventDefault();
|
|
599
|
-
}
|
|
600
|
-
}
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
if (inputChar === '-') {
|
|
604
|
-
event.preventDefault();
|
|
605
|
-
}
|
|
606
|
-
}
|
|
607
|
-
handleKeyUp(event) {
|
|
608
|
-
if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
|
|
609
|
-
this.input.nativeElement.style.caretColor = 'auto';
|
|
610
|
-
event.preventDefault();
|
|
611
|
-
event.stopPropagation();
|
|
612
|
-
}
|
|
613
|
-
// up & down button
|
|
614
|
-
if (event.key === 'ArrowUp') {
|
|
615
|
-
this.setCaret();
|
|
616
|
-
}
|
|
617
|
-
if (event.key === 'ArrowDown') {
|
|
618
|
-
this.setCaret();
|
|
619
|
-
}
|
|
620
|
-
if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
|
|
621
|
-
event.preventDefault();
|
|
622
|
-
return false;
|
|
623
|
-
}
|
|
624
|
-
// left & right Button
|
|
625
|
-
if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {
|
|
626
|
-
if (this.input.nativeElement.selectionStart ||
|
|
627
|
-
this.input.nativeElement.selectionStart === 0) {
|
|
628
|
-
this.cursorPosition = this.input.nativeElement.selectionStart;
|
|
629
|
-
}
|
|
630
|
-
}
|
|
631
|
-
// home button
|
|
632
|
-
if (event.key === 'Home') {
|
|
633
|
-
this.cursorPosition = 0;
|
|
634
|
-
}
|
|
635
|
-
// end button
|
|
636
|
-
if (event.key === 'End') {
|
|
637
|
-
if (this.timeType.mask === this.hhmmssam ||
|
|
638
|
-
this.timeType.mask === this.hhmmam ||
|
|
639
|
-
this.timeType.mask === this.hham) {
|
|
640
|
-
if (this.timeType.mask === this.hhmmssam) {
|
|
641
|
-
this.cursorPosition = 9;
|
|
642
|
-
setTimeout(() => {
|
|
643
|
-
this.setCaretPosition(this.input.nativeElement, this.cursorPosition);
|
|
644
|
-
this.input.nativeElement.style.caretColor = 'auto';
|
|
645
|
-
}, 0);
|
|
646
|
-
}
|
|
647
|
-
if (this.timeType.mask === this.hhmmam) {
|
|
648
|
-
this.cursorPosition = 6;
|
|
649
|
-
setTimeout(() => {
|
|
650
|
-
this.setCaretPosition(this.input.nativeElement, this.cursorPosition);
|
|
651
|
-
this.input.nativeElement.style.caretColor = 'auto';
|
|
652
|
-
}, 0);
|
|
653
|
-
}
|
|
654
|
-
if (this.timeType.mask === this.hham) {
|
|
655
|
-
this.cursorPosition = 3;
|
|
656
|
-
setTimeout(() => {
|
|
657
|
-
this.setCaretPosition(this.input.nativeElement, this.cursorPosition);
|
|
658
|
-
this.input.nativeElement.style.caretColor = 'auto';
|
|
659
|
-
}, 0);
|
|
660
|
-
}
|
|
661
|
-
}
|
|
662
|
-
else {
|
|
663
|
-
this.cursorPosition = this.textValue.length;
|
|
664
|
-
}
|
|
665
|
-
}
|
|
666
|
-
// backspace Control
|
|
667
|
-
if (event.key === 'Backspace') {
|
|
668
|
-
const ind1 = this.textValue.charAt(0);
|
|
669
|
-
const ind2 = this.textValue.charAt(1);
|
|
670
|
-
const ind3 = this.textValue.charAt(2);
|
|
671
|
-
const ind4 = this.textValue.charAt(3);
|
|
672
|
-
const ind5 = this.textValue.charAt(4);
|
|
673
|
-
const ind6 = this.textValue.charAt(5);
|
|
674
|
-
const ind7 = this.textValue.charAt(6);
|
|
675
|
-
const ind8 = this.textValue.charAt(7);
|
|
676
|
-
const ind9 = this.textValue.charAt(8);
|
|
677
|
-
const ind10 = this.textValue.charAt(9);
|
|
678
|
-
if (this.timeType.mask === this.hhmmssam) {
|
|
679
|
-
if (ind10 === '-') {
|
|
680
|
-
this.textValue =
|
|
681
|
-
ind1 +
|
|
682
|
-
ind2 +
|
|
683
|
-
ind3 +
|
|
684
|
-
ind4 +
|
|
685
|
-
ind5 +
|
|
686
|
-
ind6 +
|
|
687
|
-
ind7 +
|
|
688
|
-
ind8 +
|
|
689
|
-
ind9 +
|
|
690
|
-
AXTranslator.get('dateTime.dayTime.am');
|
|
691
|
-
setTimeout(() => {
|
|
692
|
-
this.setCaretPosition(this.input.nativeElement, 0);
|
|
693
|
-
this.cursorPosition = 0;
|
|
694
|
-
}, 0);
|
|
695
|
-
}
|
|
696
|
-
}
|
|
697
|
-
if (this.timeType.mask === this.hhmmam) {
|
|
698
|
-
if (ind7 === '-') {
|
|
699
|
-
this.textValue =
|
|
700
|
-
ind1 +
|
|
701
|
-
ind2 +
|
|
702
|
-
ind3 +
|
|
703
|
-
ind4 +
|
|
704
|
-
ind5 +
|
|
705
|
-
ind6 +
|
|
706
|
-
AXTranslator.get('dateTime.dayTime.am');
|
|
707
|
-
setTimeout(() => {
|
|
708
|
-
this.setCaretPosition(this.input.nativeElement, 0);
|
|
709
|
-
this.cursorPosition = 0;
|
|
710
|
-
}, 0);
|
|
711
|
-
}
|
|
712
|
-
}
|
|
713
|
-
if (this.timeType.mask === this.hham) {
|
|
714
|
-
if (ind4 === '-') {
|
|
715
|
-
this.textValue =
|
|
716
|
-
ind1 + ind2 + ind3 + AXTranslator.get('dateTime.dayTime.am');
|
|
717
|
-
setTimeout(() => {
|
|
718
|
-
this.setCaretPosition(this.input.nativeElement, 0);
|
|
719
|
-
this.cursorPosition = 0;
|
|
720
|
-
}, 0);
|
|
721
|
-
}
|
|
722
|
-
}
|
|
723
|
-
if (this.textValue.length <= 0) {
|
|
724
|
-
this.cursorPosition = 0;
|
|
725
|
-
}
|
|
726
|
-
else {
|
|
727
|
-
this.cursorPosition -= 1;
|
|
728
|
-
}
|
|
729
|
-
}
|
|
730
|
-
}
|
|
731
|
-
handleKeyDown(event) {
|
|
732
|
-
if (event.key === 'End') {
|
|
733
|
-
if (this.timeType.mask === this.hhmmssam ||
|
|
734
|
-
this.timeType.mask === this.hhmmam ||
|
|
735
|
-
this.timeType.mask === this.hham) {
|
|
736
|
-
this.input.nativeElement.style.caretColor = 'transparent';
|
|
737
|
-
}
|
|
738
|
-
else {
|
|
739
|
-
this.input.nativeElement.style.caretColor = 'auto';
|
|
740
|
-
}
|
|
741
|
-
}
|
|
742
|
-
let newValue = this.textValue;
|
|
743
|
-
const ind1 = newValue.charAt(0);
|
|
744
|
-
const ind2 = newValue.charAt(1);
|
|
745
|
-
const ind3 = this.textValue.charAt(2);
|
|
746
|
-
const ind4 = this.textValue.charAt(3);
|
|
747
|
-
const ind5 = this.textValue.charAt(4);
|
|
748
|
-
const ind6 = this.textValue.charAt(5);
|
|
749
|
-
const ind7 = this.textValue.charAt(6);
|
|
750
|
-
const ind8 = this.textValue.charAt(7);
|
|
751
|
-
const ind9 = this.textValue.charAt(8);
|
|
752
|
-
const ind10 = this.textValue.charAt(9);
|
|
753
|
-
const ind11 = this.textValue.charAt(10);
|
|
754
|
-
// up key
|
|
755
|
-
if (event.key === 'ArrowUp') {
|
|
756
|
-
// hour
|
|
757
|
-
if (this.cursorPosition <= 2) {
|
|
758
|
-
const hourind = ind1 + ind2;
|
|
759
|
-
const newHour = +hourind + 1;
|
|
760
|
-
newValue = newHour.toString();
|
|
761
|
-
if (this.timeType.mask === this.hhmmss ||
|
|
762
|
-
this.timeType.mask === this.hhmm ||
|
|
763
|
-
this.timeType.mask === this.hh ||
|
|
764
|
-
this.timeType.mask === this.hhmmssam ||
|
|
765
|
-
this.timeType.mask === this.hhmmam ||
|
|
766
|
-
this.timeType.mask === this.hham) {
|
|
767
|
-
if (hourind === '--') {
|
|
768
|
-
newValue = '0';
|
|
769
|
-
}
|
|
770
|
-
if (ind1 !== '-' && hourind === ind1 + '-') {
|
|
771
|
-
newValue = '0';
|
|
772
|
-
}
|
|
773
|
-
if (ind2 !== '-' && hourind === '-' + ind2) {
|
|
774
|
-
newValue = '0';
|
|
775
|
-
}
|
|
776
|
-
if (+newValue > 12) {
|
|
777
|
-
newValue = '01';
|
|
778
|
-
}
|
|
779
|
-
else if (+newValue < 10) {
|
|
780
|
-
newValue = '0' + newValue;
|
|
781
|
-
}
|
|
782
|
-
}
|
|
783
|
-
else {
|
|
784
|
-
if (hourind === '--') {
|
|
785
|
-
newValue = '0';
|
|
786
|
-
}
|
|
787
|
-
if (ind1 !== '-' && hourind === ind1 + '-') {
|
|
788
|
-
newValue = '0';
|
|
789
|
-
}
|
|
790
|
-
if (ind2 !== '-' && hourind === '-' + ind2) {
|
|
791
|
-
newValue = '0';
|
|
792
|
-
}
|
|
793
|
-
if (+newValue > 23) {
|
|
794
|
-
newValue = '00';
|
|
795
|
-
}
|
|
796
|
-
else if (+newValue < 10) {
|
|
797
|
-
newValue = '0' + newValue;
|
|
798
|
-
}
|
|
799
|
-
}
|
|
800
|
-
const afterHourind = ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10 + ind11;
|
|
801
|
-
const hour = newValue.toString() + afterHourind;
|
|
802
|
-
this.textValue = hour;
|
|
803
|
-
}
|
|
804
|
-
// minute
|
|
805
|
-
if (this.cursorPosition >= 3 && this.cursorPosition <= 5) {
|
|
806
|
-
const hourind = ind4 + ind5;
|
|
807
|
-
const newHour = +hourind + 1;
|
|
808
|
-
newValue = newHour.toString();
|
|
809
|
-
if (hourind === '--') {
|
|
810
|
-
newValue = '0';
|
|
811
|
-
}
|
|
812
|
-
if (ind4 !== '-' && hourind === ind4 + '-') {
|
|
813
|
-
newValue = '0';
|
|
814
|
-
}
|
|
815
|
-
if (ind5 !== '-' && hourind === '-' + ind5) {
|
|
816
|
-
newValue = '0';
|
|
817
|
-
}
|
|
818
|
-
if (+newValue > 59) {
|
|
819
|
-
newValue = '00';
|
|
820
|
-
}
|
|
821
|
-
else if (+newValue < 10) {
|
|
822
|
-
newValue = '0' + newValue;
|
|
823
|
-
}
|
|
824
|
-
const beforeHourind = ind1 + ind2 + ind3;
|
|
825
|
-
const afterHourind = ind6 + ind7 + ind8 + ind9 + ind10 + ind11;
|
|
826
|
-
const minute = beforeHourind + newValue.toString() + afterHourind;
|
|
827
|
-
this.textValue = minute;
|
|
828
|
-
}
|
|
829
|
-
// second
|
|
830
|
-
if (this.cursorPosition >= 6 && this.cursorPosition <= 8) {
|
|
831
|
-
const secondind = ind7 + ind8;
|
|
832
|
-
const newSecond = +secondind + 1;
|
|
833
|
-
newValue = newSecond.toString();
|
|
834
|
-
if (secondind === '--') {
|
|
835
|
-
newValue = '0';
|
|
836
|
-
}
|
|
837
|
-
if (ind7 !== '-' && secondind === ind7 + '-') {
|
|
838
|
-
newValue = '0';
|
|
839
|
-
}
|
|
840
|
-
if (ind8 !== '-' && secondind === '-' + ind8) {
|
|
841
|
-
newValue = '0';
|
|
842
|
-
}
|
|
843
|
-
if (+newValue > 59) {
|
|
844
|
-
newValue = '00';
|
|
845
|
-
}
|
|
846
|
-
else if (+newValue < 10) {
|
|
847
|
-
newValue = '0' + newValue;
|
|
848
|
-
}
|
|
849
|
-
const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;
|
|
850
|
-
const afterHourind = ind9 + ind10 + ind11;
|
|
851
|
-
const second = beforeHourind + newValue.toString() + afterHourind;
|
|
852
|
-
this.textValue = second;
|
|
853
|
-
}
|
|
854
|
-
// type am/PM
|
|
855
|
-
if (this.timeType.mask === this.hhmmssam) {
|
|
856
|
-
if (this.cursorPosition > 8) {
|
|
857
|
-
let typeind = ind10.toString();
|
|
858
|
-
const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9;
|
|
859
|
-
const afterHourind = ind11;
|
|
860
|
-
if (ind10 === AXTranslator.get('dateTime.dayTime.p')) {
|
|
861
|
-
typeind = AXTranslator.get('dateTime.dayTime.a');
|
|
862
|
-
}
|
|
863
|
-
else if (ind10 === AXTranslator.get('dateTime.dayTime.a')) {
|
|
864
|
-
typeind = AXTranslator.get('dateTime.dayTime.p');
|
|
865
|
-
}
|
|
866
|
-
this.textValue = beforeHourind + typeind + afterHourind;
|
|
867
|
-
}
|
|
868
|
-
}
|
|
869
|
-
if (this.timeType.mask === this.hhmmam) {
|
|
870
|
-
if (this.cursorPosition >= 6) {
|
|
871
|
-
let typeind = ind7.toString();
|
|
872
|
-
const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;
|
|
873
|
-
const afterHourind = ind8;
|
|
874
|
-
if (ind7 === AXTranslator.get('dateTime.dayTime.p')) {
|
|
875
|
-
typeind = AXTranslator.get('dateTime.dayTime.a');
|
|
876
|
-
}
|
|
877
|
-
else if (ind7 === AXTranslator.get('dateTime.dayTime.a')) {
|
|
878
|
-
typeind = AXTranslator.get('dateTime.dayTime.p');
|
|
879
|
-
}
|
|
880
|
-
this.textValue = beforeHourind + typeind + afterHourind;
|
|
881
|
-
}
|
|
882
|
-
}
|
|
883
|
-
if (this.timeType.mask === this.hham) {
|
|
884
|
-
if (this.cursorPosition >= 3) {
|
|
885
|
-
let typeind2 = ind4.toString();
|
|
886
|
-
const beforeHourind = ind1 + ind2 + ind3;
|
|
887
|
-
const afterHourind = ind5;
|
|
888
|
-
if (ind4 === AXTranslator.get('dateTime.dayTime.p')) {
|
|
889
|
-
typeind2 = AXTranslator.get('dateTime.dayTime.a');
|
|
890
|
-
}
|
|
891
|
-
else if (ind4 === AXTranslator.get('dateTime.dayTime.a')) {
|
|
892
|
-
typeind2 = AXTranslator.get('dateTime.dayTime.p');
|
|
893
|
-
}
|
|
894
|
-
this.textValue = beforeHourind + typeind2 + afterHourind;
|
|
895
|
-
}
|
|
896
|
-
}
|
|
897
|
-
}
|
|
898
|
-
// key down
|
|
899
|
-
if (event.key === 'ArrowDown') {
|
|
900
|
-
// hour
|
|
901
|
-
if (this.cursorPosition <= 2) {
|
|
902
|
-
const hourind = ind1 + ind2;
|
|
903
|
-
const newHour = +hourind - 1;
|
|
904
|
-
newValue = newHour.toString();
|
|
905
|
-
if (this.timeType.mask === this.hhmmss ||
|
|
906
|
-
this.timeType.mask === this.hhmm ||
|
|
907
|
-
this.timeType.mask === this.hh ||
|
|
908
|
-
this.timeType.mask === this.hhmmssam ||
|
|
909
|
-
this.timeType.mask === this.hhmmam ||
|
|
910
|
-
this.timeType.mask === this.hham) {
|
|
911
|
-
if (hourind === '--') {
|
|
912
|
-
newValue = '0';
|
|
913
|
-
}
|
|
914
|
-
if (ind1 !== '-' && hourind === ind1 + '-') {
|
|
915
|
-
newValue = '0';
|
|
916
|
-
}
|
|
917
|
-
if (ind2 !== '-' && hourind === '-' + ind2) {
|
|
918
|
-
newValue = '0';
|
|
919
|
-
}
|
|
920
|
-
if (+newValue < 1) {
|
|
921
|
-
newValue = '12';
|
|
922
|
-
}
|
|
923
|
-
else if (+newValue < 10) {
|
|
924
|
-
newValue = '0' + newValue;
|
|
925
|
-
}
|
|
926
|
-
}
|
|
927
|
-
else {
|
|
928
|
-
if (hourind === '--') {
|
|
929
|
-
newValue = '0';
|
|
930
|
-
}
|
|
931
|
-
if (ind1 !== '-' && hourind === ind1 + '-') {
|
|
932
|
-
newValue = '0';
|
|
933
|
-
}
|
|
934
|
-
if (ind2 !== '-' && hourind === '-' + ind2) {
|
|
935
|
-
newValue = '0';
|
|
936
|
-
}
|
|
937
|
-
if (+newValue < 0) {
|
|
938
|
-
newValue = '23';
|
|
939
|
-
}
|
|
940
|
-
else if (+newValue < 10) {
|
|
941
|
-
newValue = '0' + newValue;
|
|
942
|
-
}
|
|
943
|
-
}
|
|
944
|
-
const afterHourIndex = ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10 + ind11;
|
|
945
|
-
const hour = newValue.toString() + afterHourIndex;
|
|
946
|
-
this.textValue = hour;
|
|
947
|
-
}
|
|
948
|
-
// minute
|
|
949
|
-
if (this.cursorPosition >= 3 && this.cursorPosition <= 5) {
|
|
950
|
-
const minuteind = ind4 + ind5;
|
|
951
|
-
const newMinute = +minuteind - 1;
|
|
952
|
-
newValue = newMinute.toString();
|
|
953
|
-
if (minuteind === '--') {
|
|
954
|
-
newValue = '0';
|
|
955
|
-
}
|
|
956
|
-
if (ind4 !== '-' && minuteind === ind4 + '-') {
|
|
957
|
-
newValue = '0';
|
|
958
|
-
}
|
|
959
|
-
if (ind5 !== '-' && minuteind === '-' + ind5) {
|
|
960
|
-
newValue = '0';
|
|
961
|
-
}
|
|
962
|
-
if (minuteind === '--') {
|
|
963
|
-
newValue = '0';
|
|
964
|
-
}
|
|
965
|
-
if (+newValue < 0) {
|
|
966
|
-
newValue = '59';
|
|
967
|
-
}
|
|
968
|
-
else if (+newValue < 10) {
|
|
969
|
-
newValue = '0' + newValue;
|
|
970
|
-
}
|
|
971
|
-
const beforeMinuteIndex = ind1 + ind2 + ind3;
|
|
972
|
-
const afterMinuteIndex = ind6 + ind7 + ind8 + ind9 + ind10 + ind11;
|
|
973
|
-
const minute = beforeMinuteIndex + newValue.toString() + afterMinuteIndex;
|
|
974
|
-
this.textValue = minute;
|
|
975
|
-
}
|
|
976
|
-
// second
|
|
977
|
-
if (this.cursorPosition >= 6 && this.cursorPosition <= 8) {
|
|
978
|
-
const secondIndex = ind7 + ind8;
|
|
979
|
-
const newSecond = +secondIndex - 1;
|
|
980
|
-
newValue = newSecond.toString();
|
|
981
|
-
if (secondIndex === '--') {
|
|
982
|
-
newValue = '0';
|
|
983
|
-
}
|
|
984
|
-
if (ind7 !== '-' && secondIndex === ind7 + '-') {
|
|
985
|
-
newValue = '0';
|
|
986
|
-
}
|
|
987
|
-
if (ind8 !== '-' && secondIndex === '-' + ind8) {
|
|
988
|
-
newValue = '0';
|
|
989
|
-
}
|
|
990
|
-
if (secondIndex === '--') {
|
|
991
|
-
newValue = '0';
|
|
992
|
-
}
|
|
993
|
-
if (+newValue < 0) {
|
|
994
|
-
newValue = '59';
|
|
995
|
-
}
|
|
996
|
-
else if (+newValue < 10) {
|
|
997
|
-
newValue = '0' + newValue;
|
|
998
|
-
}
|
|
999
|
-
const beforesecondIndex = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;
|
|
1000
|
-
const aftersecondIndex = ind9 + ind10 + ind11;
|
|
1001
|
-
const second = beforesecondIndex + newValue.toString() + aftersecondIndex;
|
|
1002
|
-
this.textValue = second;
|
|
1003
|
-
}
|
|
1004
|
-
// type
|
|
1005
|
-
if (this.timeType.mask === this.hhmmssam) {
|
|
1006
|
-
if (this.cursorPosition > 8) {
|
|
1007
|
-
let typeind = ind10.toString();
|
|
1008
|
-
const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9;
|
|
1009
|
-
const afterHourind = ind11;
|
|
1010
|
-
if (ind10 === AXTranslator.get('dateTime.dayTime.p')) {
|
|
1011
|
-
typeind = AXTranslator.get('dateTime.dayTime.a');
|
|
1012
|
-
}
|
|
1013
|
-
else if (ind10 === AXTranslator.get('dateTime.dayTime.a')) {
|
|
1014
|
-
typeind = AXTranslator.get('dateTime.dayTime.p');
|
|
1015
|
-
}
|
|
1016
|
-
this.textValue = beforeHourind + typeind + afterHourind;
|
|
1017
|
-
}
|
|
1018
|
-
}
|
|
1019
|
-
if (this.timeType.mask === this.hhmmam) {
|
|
1020
|
-
if (this.cursorPosition >= 6) {
|
|
1021
|
-
let typeind = ind7.toString();
|
|
1022
|
-
const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;
|
|
1023
|
-
const afterHourind = ind8;
|
|
1024
|
-
if (ind7 === AXTranslator.get('dateTime.dayTime.p')) {
|
|
1025
|
-
typeind = AXTranslator.get('dateTime.dayTime.a');
|
|
1026
|
-
}
|
|
1027
|
-
else if (ind7 === AXTranslator.get('dateTime.dayTime.a')) {
|
|
1028
|
-
typeind = AXTranslator.get('dateTime.dayTime.p');
|
|
1029
|
-
}
|
|
1030
|
-
this.textValue = beforeHourind + typeind + afterHourind;
|
|
1031
|
-
}
|
|
1032
|
-
}
|
|
1033
|
-
if (this.timeType.mask === this.hham) {
|
|
1034
|
-
if (this.cursorPosition >= 3) {
|
|
1035
|
-
let typeind2 = ind4.toString();
|
|
1036
|
-
const beforeHourind = ind1 + ind2 + ind3;
|
|
1037
|
-
const afterHourind = ind5;
|
|
1038
|
-
//TO DO this is wrong check index
|
|
1039
|
-
if (ind4 === AXTranslator.get('dateTime.dayTime.p')) {
|
|
1040
|
-
typeind2 = AXTranslator.get('dateTime.dayTime.a');
|
|
1041
|
-
}
|
|
1042
|
-
else if (ind4 === AXTranslator.get('dateTime.dayTime.a')) {
|
|
1043
|
-
typeind2 = AXTranslator.get('dateTime.dayTime.p');
|
|
1044
|
-
}
|
|
1045
|
-
this.textValue = beforeHourind + typeind2 + afterHourind;
|
|
1046
|
-
}
|
|
1047
|
-
}
|
|
1048
|
-
}
|
|
1049
|
-
if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
|
|
1050
|
-
this.input.nativeElement.style.caretColor = 'transparent';
|
|
1051
|
-
event.preventDefault();
|
|
1052
|
-
event.stopPropagation();
|
|
1053
|
-
return false;
|
|
1054
|
-
}
|
|
1055
|
-
if (event.key === 'Delete') {
|
|
1056
|
-
event.preventDefault();
|
|
1057
|
-
}
|
|
1058
|
-
}
|
|
1059
|
-
handleClick(event) {
|
|
1060
|
-
if (this.input.nativeElement.selectionStart ||
|
|
1061
|
-
this.input.nativeElement.selectionStart === 0) {
|
|
1062
|
-
this.cursorPosition = this.input.nativeElement.selectionStart;
|
|
1063
|
-
}
|
|
1064
|
-
}
|
|
1065
|
-
doGetCaretPosition(ctrl) {
|
|
1066
|
-
let CaretPos = 0;
|
|
1067
|
-
if (ctrl.selectionStart || ctrl.selectionStart === 0) {
|
|
1068
|
-
CaretPos = ctrl.selectionStart;
|
|
1069
|
-
return CaretPos;
|
|
1070
|
-
}
|
|
1071
|
-
}
|
|
1072
|
-
setCaretPosition(ctrl, pos) {
|
|
1073
|
-
if (ctrl.setSelectionRange) {
|
|
1074
|
-
ctrl.focus();
|
|
1075
|
-
ctrl.setSelectionRange(pos, pos);
|
|
1076
|
-
}
|
|
1077
|
-
else if (ctrl.createTextRange) {
|
|
1078
|
-
const range = ctrl.createTextRange();
|
|
1079
|
-
range.collapse(true);
|
|
1080
|
-
range.moveEnd('character', pos);
|
|
1081
|
-
range.moveStart('character', pos);
|
|
1082
|
-
range.select();
|
|
1083
|
-
}
|
|
1084
|
-
}
|
|
1085
|
-
setCaret() {
|
|
1086
|
-
this.setCaretPosition(this.input.nativeElement, this.cursorPosition);
|
|
1087
|
-
}
|
|
1088
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXTimePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1089
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXTimePickerComponent, selector: "ax-time-picker", inputs: { timeType: "timeType", showMask: "showMask", showCurentTime: "showCurentTime" }, outputs: { onValueChanged: "onValueChanged" }, host: { styleAttribute: "width: 100%" }, providers: [
|
|
1090
|
-
{ provide: AXValidatableComponent, useExisting: AXTimePickerComponent },
|
|
1091
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\"> </ng-content>\n <i class=\"form-item-icon {{ icon }}\" *ngIf=\"icon\"></i>\n </div>\n <div class=\"content\" #content>\n <div\n class=\"ax form-control input {{ size }}\"\n [class.disabled]=\"disabled\"\n [class.readonly]=\"readonly\"\n [class.icon]=\"icon\"\n >\n <input\n #input\n type=\"text\"\n class=\"ax {{ size }}\"\n [mask]=\"timeType\"\n [showMaskTyped]=\"showMask\"\n [(ngModel)]=\"textValue\"\n placeholder=\"{{ placeholder }}\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [ngClass]=\"setTextAlign()\"\n [class.clear]=\"value && allowClear\"\n (focus)=\"handleInputFocus()\"\n (blur)=\"handleInputBlur($event)\"\n (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (click)=\"handleClick($event)\"\n />\n </div>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button\n *ngIf=\"value && allowClear\"\n icon=\"far fa-times\"\n type=\"danger blank\"\n (click)=\"clear()\"\n [disabled]=\"disabled\"\n [tabIndex]=\"-1\"\n ></ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </div>\n</div>\n<!-- [textMask]=\"{mask: mask , showMask:showMask , guid: maskGuid , keepCharPositions: maskKeepCharPositions}\" -->\n<!-- <input #input id=\"timePickerValue\" [textMask]=\"timeType\" type=\"text\" [(ngModel)]=\"value\" (keypress)='handleKeyPress($event)'\n (keyup)=\"handleKeyUp($event)\" (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick($event)\"> -->\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "directive", type: i4.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1092
|
-
}
|
|
1093
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXTimePickerComponent, decorators: [{
|
|
1094
|
-
type: Component,
|
|
1095
|
-
args: [{ selector: 'ax-time-picker', changeDetection: ChangeDetectionStrategy.OnPush, host: { style: 'width: 100%' }, providers: [
|
|
1096
|
-
{ provide: AXValidatableComponent, useExisting: AXTimePickerComponent },
|
|
1097
|
-
], template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\"> </ng-content>\n <i class=\"form-item-icon {{ icon }}\" *ngIf=\"icon\"></i>\n </div>\n <div class=\"content\" #content>\n <div\n class=\"ax form-control input {{ size }}\"\n [class.disabled]=\"disabled\"\n [class.readonly]=\"readonly\"\n [class.icon]=\"icon\"\n >\n <input\n #input\n type=\"text\"\n class=\"ax {{ size }}\"\n [mask]=\"timeType\"\n [showMaskTyped]=\"showMask\"\n [(ngModel)]=\"textValue\"\n placeholder=\"{{ placeholder }}\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [ngClass]=\"setTextAlign()\"\n [class.clear]=\"value && allowClear\"\n (focus)=\"handleInputFocus()\"\n (blur)=\"handleInputBlur($event)\"\n (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (click)=\"handleClick($event)\"\n />\n </div>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button\n *ngIf=\"value && allowClear\"\n icon=\"far fa-times\"\n type=\"danger blank\"\n (click)=\"clear()\"\n [disabled]=\"disabled\"\n [tabIndex]=\"-1\"\n ></ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </div>\n</div>\n<!-- [textMask]=\"{mask: mask , showMask:showMask , guid: maskGuid , keepCharPositions: maskKeepCharPositions}\" -->\n<!-- <input #input id=\"timePickerValue\" [textMask]=\"timeType\" type=\"text\" [(ngModel)]=\"value\" (keypress)='handleKeyPress($event)'\n (keyup)=\"handleKeyUp($event)\" (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick($event)\"> -->\n" }]
|
|
1098
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { onValueChanged: [{
|
|
1099
|
-
type: Output
|
|
1100
|
-
}], timeType: [{
|
|
1101
|
-
type: Input
|
|
1102
|
-
}], showMask: [{
|
|
1103
|
-
type: Input
|
|
1104
|
-
}], showCurentTime: [{
|
|
1105
|
-
type: Input
|
|
1106
|
-
}] } });
|
|
1107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFFcEQsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxNQUFNLENBQVU7SUFDaEIsTUFBTSxDQUFVO0lBQ2hCLElBQUksQ0FBVTtJQUNkLElBQUksQ0FBUztDQUNkO0FBQ0QsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQTBDO0NBQUc7QUFXM0YsTUFBTSxPQUFPLHFCQUNYLFNBQVEsbUJBQW1CO0lBZ2FMO0lBNVp0QixjQUFjLEdBQ1osSUFBSSxZQUFZLEVBQTRCLENBQUM7SUFFL0Msd0NBQXdDO0lBQ3hDLDJDQUEyQztJQUMzQyx1Q0FBdUM7SUFHdkMsUUFBUSxDQUFNO0lBR2QsUUFBUSxHQUFHLElBQUksQ0FBQztJQUVoQixJQUFJLEdBQVcsTUFBTSxDQUFDO0lBRXRCLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFFaEMsYUFBYSxHQUFZLElBQUksQ0FBQztJQUM5QixNQUFNLEdBQVE7UUFD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LEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7d0dBeHBDVSxxQkFBcUI7NEZBQXJCLHFCQUFxQiwyTkFKckI7WUFDVCxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUU7U0FDeEUsaURDaENILCt0REErQ0E7OzRGRGJhLHFCQUFxQjtrQkFUakMsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBRVQsdUJBQXVCLENBQUMsTUFBTSxRQUN6QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsYUFDbkI7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyx1QkFBdUIsRUFBRTtxQkFDeEU7aUlBT0QsY0FBYztzQkFEYixNQUFNO2dCQVNQLFFBQVE7c0JBRFAsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sY0FBYztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWEJhc2VUZXh0Q29tcG9uZW50LFxuICBBWFZhbGlkYXRhYmxlQ29tcG9uZW50LFxufSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xuaW1wb3J0IHsgQVhWYWx1ZUV2ZW50IH0gZnJvbSAnLi4vYmFzZS9ldmVudHMuY2xhc3MnO1xuXG5leHBvcnQgY2xhc3MgQVhUaW1lUGlja2VySXRlbUNoYW5nZWRFdmVudCB7XG4gIG1pbnV0ZT86IG51bWJlcjtcbiAgc2Vjb25kPzogbnVtYmVyO1xuICBob3VyPzogbnVtYmVyO1xuICB0aW1lOiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgQVhUaW1lUGlja2VyQ2hhbmdlZEV2ZW50IGV4dGVuZHMgQVhWYWx1ZUV2ZW50PEFYVGltZVBpY2tlckl0ZW1DaGFuZ2VkRXZlbnQ+IHt9XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXRpbWUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHsgc3R5bGU6ICd3aWR0aDogMTAwJScgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWFZhbGlkYXRhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhUaW1lUGlja2VyQ29tcG9uZW50IH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYVGltZVBpY2tlckNvbXBvbmVudFxuICBleHRlbmRzIEFYQmFzZVRleHRDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgQE91dHB1dCgpXG4gIG9uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhUaW1lUGlja2VyQ2hhbmdlZEV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxBWFRpbWVQaWNrZXJDaGFuZ2VkRXZlbnQ+KCk7XG5cbiAgLy8gQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAvLyBAQ29udGVudENoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIC8vIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpXG4gIHRpbWVUeXBlOiBhbnk7XG5cbiAgQElucHV0KClcbiAgc2hvd01hc2sgPSB0cnVlO1xuXG4gIHR5cGU6IHN0cmluZyA9ICdISG1tJztcbiAgQElucHV0KClcbiAgc2hvd0N1cmVudFRpbWU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjbGVhckRpc2FibGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgSEhtbXNzOiBhbnkgPSBbXG4gICAgL1swLTJdLyxcbiAgICAvWzAtOV0vLFxuICAgICc6JyxcbiAgICAvWzAtNV0vLFxuICAgIC9bMC05XS8sXG4gICAgJzonLFxuICAgIC9bMC01XS8sXG4gICAgL1swLTldLyxcbiAgXTtcbiAgSEhtbTogYW55ID0gWy9bMC0yXS8sIC9bMC05XS8sICc6JywgL1swLTVdLywgL1swLTldL107XG4gIEhIOiBhbnkgPSBbL1swLTJdLywgL1swLTldL107XG4gIGhobW1zczogYW55ID0gW1xuICAgIC9bMC0xXS8sXG4gICAgL1swLTldLyxcbiAgICAnOicsXG4gICAgL1swLTVdLyxcbiAgICAvWzAtOV0vLFxuICAgICc6JyxcbiAgICAvWzAtNV0vLFxuICAgIC9bMC05XS8sXG4gIF07XG4gIGhobW06IGFueSA9IFsvWzAtMV0vLCAvWzAtOV0vLCAnOicsIC9bMC01XS8sIC9bMC05XS9dO1xuICBoaDogYW55ID0gWy9bMC0xXS8sIC9bMC05XS9dO1xuICAvLyBUT0RPOiBhcHBseSBhbSBwbSBmcm9tIGxvY2FsZVxuICBoaG1tc3NhbTogYW55ID0gW1xuICAgIC9bMC0xXS8sXG4gICAgL1swLTldLyxcbiAgICAnOicsXG4gICAgL1swLTVdLyxcbiAgICAvWzAtOV0vLFxuICAgICc6JyxcbiAgICAvWzAtNV0vLFxuICAgIC9bMC05XS8sXG4gICAgJyAnLFxuICAgIC9bYXxwfNmCfNioXS8sXG4gICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyksXG4gIF07XG4gIGhobW1hbTogYW55ID0gW1xuICAgIC9bMC0xXS8sXG4gICAgL1swLTldLyxcbiAgICAnOicsXG4gICAgL1swLTVdLyxcbiAgICAvWzAtOV0vLFxuICAgICcgJyxcbiAgICAvW2F8cHzZgnzYqF0vLFxuICAgIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpLFxuICBdO1xuICBoaGFtOiBhbnkgPSBbXG4gICAgL1swLTFdLyxcbiAgICAvWzAtOV0vLFxuICAgICcgJyxcbiAgICAvW2F8cHzZgnzYqF0vLFxuICAgIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpLFxuICBdO1xuICB0ZXh0VmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIHZhbHVlSGFtOiBzdHJpbmcgPSAnLS0gJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcbiAgdmFsdWVNYW06IHN0cmluZyA9ICctLTotLSAnICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xuICB2YWx1ZVNhbTogc3RyaW5nID0gJy0tOi0tOi0tICcgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XG5cbiAgcHJpdmF0ZSBfdmFsdWVzOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVzO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsdWUodjogc3RyaW5nKSB7XG4gICAgaWYgKFxuICAgICAgdiA9PT0gJycgfHxcbiAgICAgIHYgPT0gbnVsbCB8fFxuICAgICAgdiA9PT0gJy0tOi0tOi0tJyB8fFxuICAgICAgdiA9PT0gJy0tOi0tJyB8fFxuICAgICAgdiA9PT0gJy0tJyB8fFxuICAgICAgdiA9PT0gdGhpcy52YWx1ZVNhbSB8fFxuICAgICAgdiA9PT0gdGhpcy52YWx1ZU1hbSB8fFxuICAgICAgdiA9PT0gdGhpcy52YWx1ZUhhbVxuICAgICkge1xuICAgICAgdGhpcy5jbGVhckRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlcztcbiAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgIGNhc2UgJ0hIbW1zcyc6XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS06LS06LS0nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdISG1tJzpcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLTotLSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0hIJzpcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2hobW1zcyc6XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS06LS06LS0nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdoaG1tJzpcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLTotLSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2hobW1zc2FtJzpcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWVTYW07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2hobW1hbSc6XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlTWFtO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdoaGFtJzpcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWVIYW07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3ZhbHVlcyA9IG51bGw7XG4gICAgICBpZiAodiAhPT0gb2xkKSB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChudWxsKTtcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgICAgdmFsdWU6IHsgaG91cjogbnVsbCwgbWludXRlOiBudWxsLCBzZWNvbmQ6IG51bGwsIHRpbWU6IG51bGwgfSxcbiAgICAgICAgICBvbGRWYWx1ZTogeyB0aW1lOiBvbGQgfSxcbiAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xlYXJEaXNhYmxlZCA9IHRydWU7XG4gICAgICBpZiAodGhpcy5fdmFsdWVzICYmIHYpIHtcbiAgICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdmFsdWVzO1xuICAgICAgICBjb25zdCBpbmQxID0gdi5jaGFyQXQoMCk7XG4gICAgICAgIGNvbnN0IGluZDIgPSB2LmNoYXJBdCgxKTtcbiAgICAgICAgY29uc3QgaW5kMyA9IHYuY2hhckF0KDIpO1xuICAgICAgICBjb25zdCBpbmQ0ID0gdi5jaGFyQXQoMyk7XG4gICAgICAgIGNvbnN0IGluZDUgPSB2LmNoYXJBdCg0KTtcbiAgICAgICAgY29uc3QgaW5kNiA9IHYuY2hhckF0KDUpO1xuICAgICAgICBjb25zdCBpbmQ3ID0gdi5jaGFyQXQoNik7XG4gICAgICAgIGNvbnN0IGluZDggPSB2LmNoYXJBdCg3KTtcbiAgICAgICAgY29uc3QgaW5kOSA9IHYuY2hhckF0KDgpO1xuICAgICAgICBjb25zdCBpbmQxMCA9IHYuY2hhckF0KDkpO1xuXG4gICAgICAgIGNvbnN0IGluZE9sZDQgPSBvbGQuY2hhckF0KDkpO1xuICAgICAgICBjb25zdCBpbmRPbGQ3ID0gb2xkLmNoYXJBdCg5KTtcbiAgICAgICAgY29uc3QgaW5kT2xkMTAgPSBvbGQuY2hhckF0KDkpO1xuXG4gICAgICAgIC8vIGhhbmRsZSBoaG1tc3NBbVxuICAgICAgICBpZiAoXG4gICAgICAgICAgaW5kMSA9PT0gJy0nICYmXG4gICAgICAgICAgaW5kMiAhPT0gJy0nICYmXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID1cbiAgICAgICAgICAgICcwJyArXG4gICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgIGluZDkgK1xuICAgICAgICAgICAgaW5kMTAgK1xuICAgICAgICAgICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyk7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAyKTtcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAyO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICBpbmQ0ID09PSAnLScgJiZcbiAgICAgICAgICBpbmQ1ICE9PSAnLScgJiZcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW1cbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPVxuICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgJzAnICtcbiAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICBpbmQ3ICtcbiAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgaW5kOSArXG4gICAgICAgICAgICBpbmQxMCArXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLm0nKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDUpO1xuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDU7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGluZDcgPT09ICctJyAmJlxuICAgICAgICAgIGluZDggIT09ICctJyAmJlxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9XG4gICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICAnMCcgK1xuICAgICAgICAgICAgaW5kOCArXG4gICAgICAgICAgICBpbmQ5ICtcbiAgICAgICAgICAgIGluZDEwICtcbiAgICAgICAgICAgIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgOCk7XG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gODtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kT2xkMTAgPT09ICctJyAmJiB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0pIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9XG4gICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICBpbmQ3ICtcbiAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgaW5kOSArXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvL1xuICAgICAgICBpZiAoXG4gICAgICAgICAgaW5kMSA9PT0gJy0nICYmXG4gICAgICAgICAgaW5kMiAhPT0gJy0nICYmXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9XG4gICAgICAgICAgICAnMCcgK1xuICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICBpbmQzICtcbiAgICAgICAgICAgIGluZDQgK1xuICAgICAgICAgICAgaW5kNSArXG4gICAgICAgICAgICBpbmQ2ICtcbiAgICAgICAgICAgIGluZDcgK1xuICAgICAgICAgICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyk7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAyKTtcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAyO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICBpbmQ0ID09PSAnLScgJiZcbiAgICAgICAgICBpbmQ1ICE9PSAnLScgJiZcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID1cbiAgICAgICAgICAgIGluZDEgK1xuICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICBpbmQzICtcbiAgICAgICAgICAgICcwJyArXG4gICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLm0nKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDUpO1xuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDU7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZE9sZDcgPT09ICctJyAmJiB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtKSB7XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPVxuICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9cbiAgICAgICAgaWYgKGluZDEgPT09ICctJyAmJiBpbmQyICE9PSAnLScgJiYgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW0pIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9XG4gICAgICAgICAgICAnMCcgKyBpbmQyICsgaW5kMyArIGluZDQgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLm0nKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDIpO1xuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDI7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZE9sZDQgPT09ICctJyAmJiB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbSkge1xuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID1cbiAgICAgICAgICAgIGluZDEgKyBpbmQyICsgaW5kMyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vXG4gICAgICAgIGlmIChcbiAgICAgICAgICBpbmQxID09PSAnLScgJiZcbiAgICAgICAgICBpbmQyICE9PSAnLScgJiZcbiAgICAgICAgICAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zcyB8fFxuICAgICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLkhIbW1zcylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnMCcgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4O1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgMik7XG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMjtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgaW5kNCA9PT0gJy0nICYmXG4gICAgICAgICAgaW5kNSAhPT0gJy0nICYmXG4gICAgICAgICAgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3MgfHxcbiAgICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5ISG1tc3MpXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgJzAnICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgaW5kODtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDYpO1xuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDY7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGluZDcgPT09ICctJyAmJlxuICAgICAgICAgIGluZDggIT09ICctJyAmJlxuICAgICAgICAgICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzIHx8XG4gICAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuSEhtbXNzKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArICcwJyArIGluZDg7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCA5KTtcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSA5O1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGluZDEgPT09ICctJyAmJlxuICAgICAgICAgIGluZDIgIT09ICctJyAmJlxuICAgICAgICAgICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbSB8fCB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuSEhtbSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnMCcgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1O1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgMik7XG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMjtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgaW5kNCA9PT0gJy0nICYmXG4gICAgICAgICAgaW5kNSAhPT0gJy0nICYmXG4gICAgICAgICAgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tIHx8IHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5ISG1tKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGluZDEgKyBpbmQyICsgaW5kMyArICcwJyArIGluZDU7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCA1KTtcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSA1O1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGluZDEgPT09ICctJyAmJlxuICAgICAgICAgIGluZDIgIT09ICctJyAmJlxuICAgICAgICAgICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGggfHwgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLkhIKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICcwJyArIGluZDI7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAyKTtcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAyO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodiAhPT0gdGhpcy5fdmFsdWVzKSB7XG4gICAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlcztcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB2O1xuICAgICAgICB0aGlzLl92YWx1ZXMgPSB2ICYmIHYuaW5kZXhPZignLScpID09PSAtMSA/IHYgOiBudWxsO1xuICAgICAgICBpZiAodi5pbmRleE9mKCctJykgPT09IC0xKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHYpO1xuICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICB0aW1lOiB2LFxuICAgICAgICAgICAgICBob3VyOiBOdW1iZXIodlswXSArIHZbMV0pLFxuICAgICAgICAgICAgICBtaW51dGU6XG4gICAgICAgICAgICAgICAgdlszXSAmJlxuICAgICAgICAgICAgICAgIHZbM10gIT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpICYmXG4gICAgICAgICAgICAgICAgdlszXSAhPT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJylcbiAgICAgICAgICAgICAgICAgID8gTnVtYmVyKHZbM10gKyB2WzRdKVxuICAgICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgICBzZWNvbmQ6XG4gICAgICAgICAgICAgICAgdls2XSAmJlxuICAgICAgICAgICAgICAgIHZbNl0gIT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpICYmXG4gICAgICAgICAgICAgICAgdls2XSAhPT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJylcbiAgICAgICAgICAgICAgICAgID8gTnVtYmVyKHZbNl0gKyB2WzddKVxuICAgICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9sZFZhbHVlOiB7IHRpbWU6IG9sZCB9LFxuICAgICAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGN1cnNvclBvc2l0aW9uOiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLCByZWY6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihjZHIsIHJlZik7XG5cbiAgICB0aGlzLnRpbWVUeXBlID0gJ0hIbW0nO1xuICB9XG4gIGNsZWFyVmFsdWUoKSB7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuaGFuZGxlSW5wdXRGb2N1cygpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3dpdGNoICh0aGlzLnRpbWVUeXBlKSB7XG4gICAgICBjYXNlICdISG1tc3MnOlxuICAgICAgICB0aGlzLnR5cGUgPSAnSEhtbXNzJztcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9ICdIaDptMDpzMCc7XG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnLS06LS06LS0nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0hIbW0nOlxuICAgICAgICB0aGlzLnR5cGUgPSAnSEhtbSc7XG4gICAgICAgIHRoaXMudGltZVR5cGUgPSAnSGg6bTAnO1xuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogJy0tOi0tJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdISCc6XG4gICAgICAgIHRoaXMudHlwZSA9ICdISCc7XG4gICAgICAgIHRoaXMudGltZVR5cGUgPSAnSGgnO1xuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogJy0tJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoaG1tc3MnOlxuICAgICAgICB0aGlzLnR5cGUgPSAnaGhtbXNzJztcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9ICdoaDptMDpzMCc7XG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnLS06LS06LS0nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2hobW0nOlxuICAgICAgICB0aGlzLnR5cGUgPSAnaGhtbSc7XG4gICAgICAgIHRoaXMudGltZVR5cGUgPSAnaGg6bTA6czAnO1xuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogJy0tOi0tJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoaCc6XG4gICAgICAgIHRoaXMudHlwZSA9ICdoaCc7XG4gICAgICAgIHRoaXMudGltZVR5cGUgPSAnaGgnO1xuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogJy0tJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoaG1tc3NhbSc6XG4gICAgICAgIHRoaXMudHlwZSA9ICdoaG1tc3NhbSc7XG4gICAgICAgIHRoaXMudGltZVR5cGUgPSAnSDBoMDptMHMwQUEnO1xuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogdGhpcy52YWx1ZVNhbTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoaG1tYW0nOlxuICAgICAgICB0aGlzLnR5cGUgPSAnaGhtbWFtJztcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9ICdIMGgwOm0wQUEnO1xuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogdGhpcy52YWx1ZU1hbTtcblxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2hoYW0nOlxuICAgICAgICB0aGlzLnR5cGUgPSAnaGhhbSc7XG4gICAgICAgIHRoaXMudGltZVR5cGUgPSAnaDBoMGFtJztcblxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogdGhpcy52YWx1ZUhhbTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnR5cGUgPSAnSEhtbSc7XG4gICAgICAgIHRoaXMudGltZVR5cGUgPSAnSDBoMDptMCc7XG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnLS06LS0nO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd0N1cmVudFRpbWUgPT09IHRydWUpIHtcbiAgICAgIGNvbnN0IGhvdXI6IGFueSA9XG4gICAgICAgIG5ldyBEYXRlKCkuZ2V0SG91cnMoKSA+IDEwXG4gICAgICAgICAgPyBuZXcgRGF0ZSgpLmdldEhvdXJzKClcbiAgICAgICAgICA6ICcwJyArIG5ldyBEYXRlKCkuZ2V0SG91cnMoKTtcbiAgICAgIGxldCBhbUhvdXI6IGFueTtcblxuICAgICAgaWYgKG5ldyBEYXRlKCkuZ2V0SG91cnMoKSA+IDEwKSB7XG4gICAgICAgIGlmIChuZXcgRGF0ZSgpLmdldEhvdXJzKCkgPiAxMikge1xuICAgICAgICAgIGlmIChuZXcgRGF0ZSgpLmdldEhvdXJzKCkgLSAxMiA8IDEwKSB7XG4gICAgICAgICAgICBhbUhvdXIgPSAnMCcgKyAobmV3IERhdGUoKS5nZXRIb3VycygpIC0gMTIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbUhvdXIgPSBuZXcgRGF0ZSgpLmdldEhvdXJzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFtSG91ciA9IG5ldyBEYXRlKCkuZ2V0SG91cnMoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYW1Ib3VyID0gJzAnICsgbmV3IERhdGUoKS5nZXRIb3VycygpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtaW4gPVxuICAgICAgICBuZXcgRGF0ZSgpLmdldE1pbnV0ZXMoKSA+IDlcbiAgICAgICAgICA/IG5ldyBEYXRlKCkuZ2V0TWludXRlcygpXG4gICAgICAgICAgOiAnMCcgKyBuZXcgRGF0ZSgpLmdldE1pbnV0ZXMoKTtcbiAgICAgIGNvbnN0IHNlYyA9XG4gICAgICAgIG5ldyBEYXRlKCkuZ2V0U2Vjb25kcygpID4gOVxuICAgICAgICAgID8gbmV3IERhdGUoKS5nZXRTZWNvbmRzKClcbiAgICAgICAgICA6ICcwJyArIG5ldyBEYXRlKCkuZ2V0U2Vjb25kcygpO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnR5cGUgPT09ICdoaCcgfHxcbiAgICAgICAgdGhpcy50eXBlID09PSAnaGhtbScgfHxcbiAgICAgICAgdGhpcy50eXBlID09PSAnaGhtbXNzJyB8fFxuICAgICAgICB0aGlzLnR5cGUgPT09ICdoaG1tc3NhbSdcbiAgICAgICkge1xuICAgICAgICBpZiAoaG91ciA+PSAxMikge1xuICAgICAgICAgIHRoaXMudmFsdWUgPVxuICAgICAgICAgICAgYW1Ib3VyICtcbiAgICAgICAgICAgICc6JyArXG4gICAgICAgICAgICBtaW4gK1xuICAgICAgICAgICAgJzonICtcbiAgICAgICAgICAgIHNlYyArXG4gICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wbScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmFsdWUgPVxuICAgICAgICAgICAgYW1Ib3VyICtcbiAgICAgICAgICAgICc6JyArXG4gICAgICAgICAgICBtaW4gK1xuICAgICAgICAgICAgJzonICtcbiAgICAgICAgICAgIHNlYyArXG4gICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2hoYW0nKSB7XG4gICAgICAgIGlmIChob3VyID49IDEyKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IGFtSG91ciArICcgJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucG0nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZhbHVlID0gYW1Ib3VyICsgJyAnICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2hobW1hbScpIHtcbiAgICAgICAgaWYgKGhvdXIgPj0gMTIpIHtcbiAgICAgICAgICB0aGlzLnZhbHVlID1cbiAgICAgICAgICAgIGFtSG91ciArICc6JyArIG1pbiArICcgJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucG0nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZhbHVlID1cbiAgICAgICAgICAgIGFtSG91ciArICc6JyArIG1pbiArICcgJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGhvdXIgKyAnOicgKyBtaW4gKyAnOicgKyBzZWM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25TdGFydGZvY3VzKCkge1xuICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ3RyYW5zcGFyZW50JztcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDApO1xuICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGhhbmRsZUlucHV0Rm9jdXMoKSB7XG4gICAgdGhpcy5vblN0YXJ0Zm9jdXMoKTtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuICBoYW5kbGVJbnB1dEJsdXIoZSkge1xuICAgIGlmICh0aGlzLnRleHRWYWx1ZS5pbmRleE9mKCctJykgIT09IC0xKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICBjYXNlICdISG1tc3MnOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tOi0tJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnSEhtbSc6XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS06LS0nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdISCc6XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS0nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdoaG1tc3MnOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tOi0tJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaGhtbSc6XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS06LS0nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS0nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdoaG1tc3NhbSc6XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlU2FtO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdoaG1tYW0nOlxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZU1hbTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaGhhbSc6XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlSGFtO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUtleVByZXNzKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBpbnB1dENoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGV2ZW50LmNoYXJDb2RlKTtcbiAgICBjb25zdCBmaXJzdENoYXIgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMCk7XG4gICAgY29uc3Qgc2Vjb25kQ2hhciA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCgxKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgfHxcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSAwXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgLy8gdGhpcy5jdXJzb3JQb3NpdGlvbiArPSAxIDtcbiAgICAgIH1cbiAgICB9LCAwKTtcblxuICAgIGlmIChmaXJzdENoYXIgPT09ICcyJykge1xuICAgICAgaWYgKFxuICAgICAgICBzZWNvbmRDaGFyID09PSAnJyB8fFxuICAgICAgICB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMSkgPj0gJzQnIHx8XG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPCAzXG4gICAgICApIHtcbiAgICAgICAgaWYgKGlucHV0Q2hhciA+PSAnNCcpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3MgfHxcbiAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tIHx8XG4gICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGggfHxcbiAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSB8fFxuICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSB8fFxuICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW1cbiAgICApIHtcbiAgICAgIGlmIChmaXJzdENoYXIgPT09ICcxJykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc2Vjb25kQ2hhciA9PT0gJycgfHxcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMSkgPj0gJzMnIHx8XG4gICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA8IDNcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKGlucHV0Q2hhciA+PSAnMycpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpbnB1dENoYXIgPT09ICctJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVLZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJyB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgLy8gdXAgJiBkb3duIGJ1dHRvblxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgdGhpcy5zZXRDYXJldCgpO1xuICAgIH1cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgdGhpcy5zZXRDYXJldCgpO1xuICAgIH1cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBsZWZ0ICYgcmlnaHQgQnV0dG9uXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93TGVmdCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0IHx8XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gMFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaG9tZSBidXR0b25cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnSG9tZScpIHtcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xuICAgIH1cblxuICAgIC8vIGVuZCBidXR0b25cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW5kJykge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0gfHxcbiAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSB8fFxuICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbVxuICAgICAgKSB7XG4gICAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0pIHtcbiAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gOTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbihcbiAgICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0pIHtcbiAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gNjtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbihcbiAgICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtKSB7XG4gICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDM7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24oXG4gICAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdGhpcy50ZXh0VmFsdWUubGVuZ3RoO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGJhY2tzcGFjZSBDb250cm9sXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgIGNvbnN0IGluZDEgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMCk7XG4gICAgICBjb25zdCBpbmQyID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDEpO1xuICAgICAgY29uc3QgaW5kMyA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCgyKTtcbiAgICAgIGNvbnN0IGluZDQgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMyk7XG4gICAgICBjb25zdCBpbmQ1ID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDQpO1xuICAgICAgY29uc3QgaW5kNiA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg1KTtcbiAgICAgIGNvbnN0IGluZDcgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNik7XG4gICAgICBjb25zdCBpbmQ4ID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDcpO1xuICAgICAgY29uc3QgaW5kOSA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg4KTtcbiAgICAgIGNvbnN0IGluZDEwID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDkpO1xuICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSkge1xuICAgICAgICBpZiAoaW5kMTAgPT09ICctJykge1xuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID1cbiAgICAgICAgICAgIGluZDEgK1xuICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICBpbmQzICtcbiAgICAgICAgICAgIGluZDQgK1xuICAgICAgICAgICAgaW5kNSArXG4gICAgICAgICAgICBpbmQ2ICtcbiAgICAgICAgICAgIGluZDcgK1xuICAgICAgICAgICAgaW5kOCArXG4gICAgICAgICAgICBpbmQ5ICtcbiAgICAgICAgICAgIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDApO1xuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtKSB7XG4gICAgICAgIGlmIChpbmQ3ID09PSAnLScpIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9XG4gICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAwKTtcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW0pIHtcbiAgICAgICAgaWYgKGluZDQgPT09ICctJykge1xuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID1cbiAgICAgICAgICAgIGluZDEgKyBpbmQyICsgaW5kMyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDApO1xuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMudGV4dFZhbHVlLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiAtPSAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW5kJykge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0gfHxcbiAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSB8fFxuICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ3RyYW5zcGFyZW50JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBuZXdWYWx1ZSA9IHRoaXMudGV4dFZhbHVlO1xuXG4gICAgY29uc3QgaW5kMSA9IG5ld1ZhbHVlLmNoYXJBdCgwKTtcbiAgICBjb25zdCBpbmQyID0gbmV3VmFsdWUuY2hhckF0KDEpO1xuICAgIGNvbnN0IGluZDMgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMik7XG4gICAgY29uc3QgaW5kNCA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCgzKTtcbiAgICBjb25zdCBpbmQ1ID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDQpO1xuICAgIGNvbnN0IGluZDYgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNSk7XG4gICAgY29uc3QgaW5kNyA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg2KTtcbiAgICBjb25zdCBpbmQ4ID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDcpO1xuICAgIGNvbnN0IGluZDkgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoOCk7XG4gICAgY29uc3QgaW5kMTAgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoOSk7XG4gICAgY29uc3QgaW5kMTEgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMTApO1xuXG4gICAgLy8gdXAga2V5XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAvLyBob3VyXG4gICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA8PSAyKSB7XG4gICAgICAgIGNvbnN0IGhvdXJpbmQgPSBpbmQxICsgaW5kMjtcbiAgICAgICAgY29uc3QgbmV3SG91ciA9ICtob3VyaW5kICsgMTtcbiAgICAgICAgbmV3VmFsdWUgPSBuZXdIb3VyLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzIHx8XG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW0gfHxcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGggfHxcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0gfHxcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtIHx8XG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW1cbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKGhvdXJpbmQgPT09ICctLScpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaW5kMSAhPT0gJy0nICYmIGhvdXJpbmQgPT09IGluZDEgKyAnLScpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaW5kMiAhPT0gJy0nICYmIGhvdXJpbmQgPT09ICctJyArIGluZDIpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoK25ld1ZhbHVlID4gMTIpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAxJztcbiAgICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJyArIG5ld1ZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoaG91cmluZCA9PT0gJy0tJykge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbmQxICE9PSAnLScgJiYgaG91cmluZCA9PT0gaW5kMSArICctJykge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbmQyICE9PSAnLScgJiYgaG91cmluZCA9PT0gJy0nICsgaW5kMikge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICgrbmV3VmFsdWUgPiAyMykge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMDAnO1xuICAgICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9XG4gICAgICAgICAgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwICsgaW5kMTE7XG4gICAgICAgIGNvbnN0IGhvdXIgPSBuZXdWYWx1ZS50b1N0cmluZygpICsgYWZ0ZXJIb3VyaW5kO1xuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGhvdXI7XG4gICAgICB9XG4gICAgICAvLyBtaW51dGVcbiAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDMgJiYgdGhpcy5jdXJzb3JQb3NpdGlvbiA8PSA1KSB7XG4gICAgICAgIGNvbnN0IGhvdXJpbmQgPSBpbmQ0ICsgaW5kNTtcbiAgICAgICAgY29uc3QgbmV3SG91ciA9ICtob3VyaW5kICsgMTtcblxuICAgICAgICBuZXdWYWx1ZSA9IG5ld0hvdXIudG9TdHJpbmcoKTtcbiAgICAgICAgaWYgKGhvdXJpbmQgPT09ICctLScpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kNCAhPT0gJy0nICYmIGhvdXJpbmQgPT09IGluZDQgKyAnLScpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kNSAhPT0gJy0nICYmIGhvdXJpbmQgPT09ICctJyArIGluZDUpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoK25ld1ZhbHVlID4gNTkpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwMCc7XG4gICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJyArIG5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJlZm9yZUhvdXJpbmQgPSBpbmQxICsgaW5kMiArIGluZDM7XG4gICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMCArIGluZDExO1xuICAgICAgICBjb25zdCBtaW51dGUgPSBiZWZvcmVIb3VyaW5kICsgbmV3VmFsdWUudG9TdHJpbmcoKSArIGFmdGVySG91cmluZDtcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBtaW51dGU7XG4gICAgICB9XG5cbiAgICAgIC8vIHNlY29uZFxuICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gNiAmJiB0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDgpIHtcbiAgICAgICAgY29uc3Qgc2Vjb25kaW5kID0gaW5kNyArIGluZDg7XG4gICAgICAgIGNvbnN0IG5ld1NlY29uZCA9ICtzZWNvbmRpbmQgKyAxO1xuXG4gICAgICAgIG5ld1ZhbHVlID0gbmV3U2Vjb25kLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChzZWNvbmRpbmQgPT09ICctLScpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kNyAhPT0gJy0nICYmIHNlY29uZGluZCA9PT0gaW5kNyArICctJykge1xuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmQ4ICE9PSAnLScgJiYgc2Vjb25kaW5kID09PSAnLScgKyBpbmQ4KSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCtuZXdWYWx1ZSA+IDU5KSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMDAnO1xuICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCcgKyBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2O1xuICAgICAgICBjb25zdCBhZnRlckhvdXJpbmQgPSBpbmQ5ICsgaW5kMTAgKyBpbmQxMTtcbiAgICAgICAgY29uc3Qgc2Vjb25kID0gYmVmb3JlSG91cmluZCArIG5ld1ZhbHVlLnRvU3RyaW5nKCkgKyBhZnRlckhvdXJpbmQ7XG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gc2Vjb25kO1xuICAgICAgfVxuXG4gICAgICAvLyB0eXBlIGFtL1BNXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID4gOCkge1xuICAgICAgICAgIGxldCB0eXBlaW5kID0gaW5kMTAudG9TdHJpbmcoKTtcblxuICAgICAgICAgIGNvbnN0IGJlZm9yZUhvdXJpbmQgPVxuICAgICAgICAgICAgaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyBpbmQ5O1xuICAgICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDExO1xuXG4gICAgICAgICAgaWYgKGluZDEwID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKSkge1xuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kMTAgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpKSB7XG4gICAgICAgICAgICB0eXBlaW5kID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gYmVmb3JlSG91cmluZCArIHR5cGVpbmQgKyBhZnRlckhvdXJpbmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDYpIHtcbiAgICAgICAgICBsZXQgdHlwZWluZCA9IGluZDcudG9TdHJpbmcoKTtcblxuICAgICAgICAgIGNvbnN0IGJlZm9yZUhvdXJpbmQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDY7XG4gICAgICAgICAgY29uc3QgYWZ0ZXJIb3VyaW5kID0gaW5kODtcblxuICAgICAgICAgIGlmIChpbmQ3ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKSkge1xuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kNyA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJykpIHtcbiAgICAgICAgICAgIHR5cGVpbmQgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBiZWZvcmVIb3VyaW5kICsgdHlwZWluZCArIGFmdGVySG91cmluZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDMpIHtcbiAgICAgICAgICBsZXQgdHlwZWluZDIgPSBpbmQ0LnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID0gaW5kMSArIGluZDIgKyBpbmQzO1xuICAgICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDU7XG5cbiAgICAgICAgICBpZiAoaW5kNCA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJykpIHtcbiAgICAgICAgICAgIHR5cGVpbmQyID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJyk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpbmQ0ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKSkge1xuICAgICAgICAgICAgdHlwZWluZDIgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBiZWZvcmVIb3VyaW5kICsgdHlwZWluZDIgKyBhZnRlckhvdXJpbmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBrZXkgZG93blxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAvLyBob3VyXG4gICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA8PSAyKSB7XG4gICAgICAgIGNvbnN0IGhvdXJpbmQgPSBpbmQxICsgaW5kMjtcbiAgICAgICAgY29uc3QgbmV3SG91ciA9ICtob3VyaW5kIC0gMTtcblxuICAgICAgICBuZXdWYWx1ZSA9IG5ld0hvdXIudG9TdHJpbmcoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3MgfHxcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbSB8fFxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaCB8fFxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSB8fFxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0gfHxcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbVxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoaG91cmluZCA9PT0gJy0tJykge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbmQxICE9PSAnLScgJiYgaG91cmluZCA9PT0gaW5kMSArICctJykge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbmQyICE9PSAnLScgJiYgaG91cmluZCA9PT0gJy0nICsgaW5kMikge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICgrbmV3VmFsdWUgPCAxKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcxMic7XG4gICAgICAgICAgfSBlbHNlIGlmICgrbmV3VmFsdWUgPCAxMCkge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCcgKyBuZXdWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGhvdXJpbmQgPT09ICctLScpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaW5kMSAhPT0gJy0nICYmIGhvdXJpbmQgPT09IGluZDEgKyAnLScpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaW5kMiAhPT0gJy0nICYmIGhvdXJpbmQgPT09ICctJyArIGluZDIpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoK25ld1ZhbHVlIDwgMCkge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMjMnO1xuICAgICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFmdGVySG91ckluZGV4ID1cbiAgICAgICAgICBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyBpbmQ5ICsgaW5kMTAgKyBpbmQxMTtcbiAgICAgICAgY29uc3QgaG91ciA9IG5ld1ZhbHVlLnRvU3RyaW5nKCkgKyBhZnRlckhvdXJJbmRleDtcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBob3VyO1xuICAgICAgfVxuICAgICAgLy8gbWludXRlXG4gICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSAzICYmIHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gNSkge1xuICAgICAgICBjb25zdCBtaW51dGVpbmQgPSBpbmQ0ICsgaW5kNTtcbiAgICAgICAgY29uc3QgbmV3TWludXRlID0gK21pbnV0ZWluZCAtIDE7XG5cbiAgICAgICAgbmV3VmFsdWUgPSBuZXdNaW51dGUudG9TdHJpbmcoKTtcbiAgICAgICAgaWYgKG1pbnV0ZWluZCA9PT0gJy0tJykge1xuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmQ0ICE9PSAnLScgJiYgbWludXRlaW5kID09PSBpbmQ0ICsgJy0nKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZDUgIT09ICctJyAmJiBtaW51dGVpbmQgPT09ICctJyArIGluZDUpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgfVxuICAgICAgICBpZiAobWludXRlaW5kID09PSAnLS0nKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCtuZXdWYWx1ZSA8IDApIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9ICc1OSc7XG4gICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJyArIG5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJlZm9yZU1pbnV0ZUluZGV4ID0gaW5kMSArIGluZDIgKyBpbmQzO1xuICAgICAgICBjb25zdCBhZnRlck1pbnV0ZUluZGV4ID0gaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwICsgaW5kMTE7XG4gICAgICAgIGNvbnN0IG1pbnV0ZSA9XG4gICAgICAgICAgYmVmb3JlTWludXRlSW5kZXggKyBuZXdWYWx1ZS50b1N0cmluZygpICsgYWZ0ZXJNaW51dGVJbmRleDtcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBtaW51dGU7XG4gICAgICB9XG5cbiAgICAgIC8vIHNlY29uZFxuICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gNiAmJiB0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDgpIHtcbiAgICAgICAgY29uc3Qgc2Vjb25kSW5kZXggPSBpbmQ3ICsgaW5kODtcbiAgICAgICAgY29uc3QgbmV3U2Vjb25kID0gK3NlY29uZEluZGV4IC0gMTtcblxuICAgICAgICBuZXdWYWx1ZSA9IG5ld1NlY29uZC50b1N0cmluZygpO1xuICAgICAgICBpZiAoc2Vjb25kSW5kZXggPT09ICctLScpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kNyAhPT0gJy0nICYmIHNlY29uZEluZGV4ID09PSBpbmQ3ICsgJy0nKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZDggIT09ICctJyAmJiBzZWNvbmRJbmRleCA9PT0gJy0nICsgaW5kOCkge1xuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZWNvbmRJbmRleCA9PT0gJy0tJykge1xuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xuICAgICAgICB9XG4gICAgICAgIGlmICgrbmV3VmFsdWUgPCAwKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnNTknO1xuICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCcgKyBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBiZWZvcmVzZWNvbmRJbmRleCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNjtcbiAgICAgICAgY29uc3QgYWZ0ZXJzZWNvbmRJbmRleCA9IGluZDkgKyBpbmQxMCArIGluZDExO1xuICAgICAgICBjb25zdCBzZWNvbmQgPVxuICAgICAgICAgIGJlZm9yZXNlY29uZEluZGV4ICsgbmV3VmFsdWUudG9TdHJpbmcoKSArIGFmdGVyc2Vjb25kSW5kZXg7XG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gc2Vjb25kO1xuICAgICAgfVxuXG4gICAgICAvLyB0eXBlXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID4gOCkge1xuICAgICAgICAgIGxldCB0eXBlaW5kID0gaW5kMTAudG9TdHJpbmcoKTtcblxuICAgICAgICAgIGNvbnN0IGJlZm9yZUhvdXJpbmQgPVxuICAgICAgICAgICAgaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyBpbmQ5O1xuICAgICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDExO1xuXG4gICAgICAgICAgaWYgKGluZDEwID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKSkge1xuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kMTAgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpKSB7XG4gICAgICAgICAgICB0eXBlaW5kID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gYmVmb3JlSG91cmluZCArIHR5cGVpbmQgKyBhZnRlckhvdXJpbmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDYpIHtcbiAgICAgICAgICBsZXQgdHlwZWluZCA9IGluZDcudG9TdHJpbmcoKTtcblxuICAgICAgICAgIGNvbnN0IGJlZm9yZUhvdXJpbmQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDY7XG4gICAgICAgICAgY29uc3QgYWZ0ZXJIb3VyaW5kID0gaW5kODtcblxuICAgICAgICAgIGlmIChpbmQ3ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKSkge1xuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kNyA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJykpIHtcbiAgICAgICAgICAgIHR5cGVpbmQgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBiZWZvcmVIb3VyaW5kICsgdHlwZWluZCArIGFmdGVySG91cmluZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDMpIHtcbiAgICAgICAgICBsZXQgdHlwZWluZDIgPSBpbmQ0LnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID0gaW5kMSArIGluZDIgKyBpbmQzO1xuICAgICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDU7XG4gICAgICAgICAgLy9UTyBETyB0aGlzIGlzIHdyb25nIGNoZWNrIGluZGV4XG4gICAgICAgICAgaWYgKGluZDQgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpKSB7XG4gICAgICAgICAgICB0eXBlaW5kMiA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kNCA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJykpIHtcbiAgICAgICAgICAgIHR5cGVpbmQyID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gYmVmb3JlSG91cmluZCArIHR5cGVpbmQyICsgYWZ0ZXJIb3VyaW5kO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ3RyYW5zcGFyZW50JztcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2xpY2soZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgfHxcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gMFxuICAgICkge1xuICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICB9XG4gIH1cblxuICBkb0dldENhcmV0UG9zaXRpb24oY3RybCkge1xuICAgIGxldCBDYXJldFBvcyA9IDA7XG4gICAgaWYgKGN0cmwuc2VsZWN0aW9uU3RhcnQgfHwgY3RybC5zZWxlY3Rpb25TdGFydCA9PT0gMCkge1xuICAgICAgQ2FyZXRQb3MgPSBjdHJsLnNlbGVjdGlvblN0YXJ0O1xuICAgICAgcmV0dXJuIENhcmV0UG9zO1xuICAgIH1cbiAgfVxuXG4gIHNldENhcmV0UG9zaXRpb24oY3RybCwgcG9zKSB7XG4gICAgaWYgKGN0cmwuc2V0U2VsZWN0aW9uUmFuZ2UpIHtcbiAgICAgIGN0cmwuZm9jdXMoKTtcbiAgICAgIGN0cmwuc2V0U2VsZWN0aW9uUmFuZ2UocG9zLCBwb3MpO1xuICAgIH0gZWxzZSBpZiAoY3RybC5jcmVhdGVUZXh0UmFuZ2UpIHtcbiAgICAgIGNvbnN0IHJhbmdlID0gY3RybC5jcmVhdGVUZXh0UmFuZ2UoKTtcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgcmFuZ2UubW92ZUVuZCgnY2hhcmFjdGVyJywgcG9zKTtcbiAgICAgIHJhbmdlLm1vdmVTdGFydCgnY2hhcmFjdGVyJywgcG9zKTtcbiAgICAgIHJhbmdlLnNlbGVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIHNldENhcmV0KCkge1xuICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3Vyc29yUG9zaXRpb24pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXggZm9ybS1pdGVtXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCIgW2F0dHIuaWRdPVwidWlkXCIgI2ZjPlxuICA8ZGl2IGNsYXNzPVwiYXggaXRlbXMtd3JhcHBlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzdGFydF1cIj4gPC9uZy1jb250ZW50PlxuICAgIDxpIGNsYXNzPVwiZm9ybS1pdGVtLWljb24ge3sgaWNvbiB9fVwiICpuZ0lmPVwiaWNvblwiPjwvaT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgI2NvbnRlbnQ+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJheCBmb3JtLWNvbnRyb2wgaW5wdXQge3sgc2l6ZSB9fVwiXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2NsYXNzLnJlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFtjbGFzcy5pY29uXT1cImljb25cIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBjbGFzcz1cImF4IHt7IHNpemUgfX1cIlxuICAgICAgICBbbWFza109XCJ0aW1lVHlwZVwiXG4gICAgICAgIFtzaG93TWFza1R5cGVkXT1cInNob3dNYXNrXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ0ZXh0VmFsdWVcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW25nQ2xhc3NdPVwic2V0VGV4dEFsaWduKClcIlxuICAgICAgICBbY2xhc3MuY2xlYXJdPVwidmFsdWUgJiYgYWxsb3dDbGVhclwiXG4gICAgICAgIChmb2N1cyk9XCJoYW5kbGVJbnB1dEZvY3VzKClcIlxuICAgICAgICAoYmx1cik9XCJoYW5kbGVJbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgICAgIChrZXl1cCk9XCJoYW5kbGVLZXlVcCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJheCBpdGVtcy13cmFwcGVyXCI+XG4gICAgPGF4LWJ1dHRvblxuICAgICAgKm5nSWY9XCJ2YWx1ZSAmJiBhbGxvd0NsZWFyXCJcbiAgICAgIGljb249XCJmYXIgZmEtdGltZXNcIlxuICAgICAgdHlwZT1cImRhbmdlciBibGFua1wiXG4gICAgICAoY2xpY2spPVwiY2xlYXIoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3RhYkluZGV4XT1cIi0xXCJcbiAgICA+PC9heC1idXR0b24+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2VuZF1cIj4gPC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuPCEtLSBbdGV4dE1hc2tdPVwie21hc2s6IG1hc2sgLCBzaG93TWFzazpzaG93TWFzayAsIGd1aWQ6IG1hc2tHdWlkICwga2VlcENoYXJQb3NpdGlvbnM6IG1hc2tLZWVwQ2hhclBvc2l0aW9uc31cIiAtLT5cbjwhLS0gPGlucHV0ICNpbnB1dCBpZD1cInRpbWVQaWNrZXJWYWx1ZVwiIFt0ZXh0TWFza109XCJ0aW1lVHlwZVwiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIChrZXlwcmVzcyk9J2hhbmRsZUtleVByZXNzKCRldmVudCknXG4gICAgKGtleXVwKT1cImhhbmRsZUtleVVwKCRldmVudClcIiAoa2V5ZG93bik9XCJoYW5kbGVLZXlEb3duKCRldmVudClcIiAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiPiAtLT5cbiJdfQ==
|