@acorex/components 7.1.0 → 7.1.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/index.d.ts +5 -5
- package/action-sheet/public-api.d.ts +3 -3
- package/action-sheet/src/action-sheet.component.d.ts +25 -25
- package/action-sheet/src/action-sheet.interface.d.ts +20 -20
- package/action-sheet/src/action-sheet.module.d.ts +14 -14
- package/action-sheet/src/action-sheet.service.d.ts +13 -13
- package/alert/index.d.ts +5 -5
- package/alert/public-api.d.ts +2 -2
- package/alert/src/alert.component.d.ts +88 -88
- package/alert/src/alert.module.d.ts +9 -9
- package/avatar/index.d.ts +5 -5
- package/avatar/public-api.d.ts +3 -3
- package/avatar/src/avatar-group.component.d.ts +8 -8
- package/avatar/src/avatar.component.d.ts +20 -20
- package/avatar/src/avatar.module.d.ts +9 -9
- package/badge/index.d.ts +5 -5
- package/badge/public-api.d.ts +2 -2
- package/badge/src/badge.component.d.ts +41 -41
- package/badge/src/badge.module.d.ts +8 -8
- package/breadcrumbs/index.d.ts +5 -5
- package/breadcrumbs/public-api.d.ts +4 -4
- package/breadcrumbs/src/breadcrumbs-item.class.d.ts +9 -9
- package/breadcrumbs/src/breadcrumbs-item.component.d.ts +77 -79
- package/breadcrumbs/src/breadcrumbs.component.d.ts +13 -13
- package/breadcrumbs/src/breadcrumbs.module.d.ts +9 -9
- package/button/index.d.ts +5 -5
- package/button/public-api.d.ts +5 -5
- package/button/src/button-group.component.d.ts +86 -86
- package/button/src/button-item.class.d.ts +24 -24
- package/button/src/button-item.component.d.ts +82 -80
- package/button/src/button.component.d.ts +23 -23
- package/button/src/button.module.d.ts +11 -11
- package/calendar/index.d.ts +5 -5
- package/calendar/public-api.d.ts +4 -4
- package/calendar/src/calendar-range.component.d.ts +29 -29
- package/calendar/src/calendar.class.d.ts +100 -100
- package/calendar/src/calendar.component.d.ts +44 -44
- package/calendar/src/calendar.module.d.ts +10 -10
- package/card/index.d.ts +5 -5
- package/card/public-api.d.ts +2 -2
- package/card/src/card.component.d.ts +10 -10
- package/card/src/card.module.d.ts +8 -8
- package/checkbox/index.d.ts +5 -5
- package/checkbox/public-api.d.ts +2 -2
- package/checkbox/src/checkbox.component.d.ts +12 -12
- package/checkbox/src/checkbox.module.d.ts +10 -10
- package/chips/index.d.ts +5 -5
- package/chips/public-api.d.ts +2 -2
- package/chips/src/chips.component.d.ts +72 -72
- package/chips/src/chips.module.d.ts +8 -8
- package/collapse/index.d.ts +5 -5
- package/collapse/public-api.d.ts +3 -3
- package/collapse/src/collapse-group.component.d.ts +15 -15
- package/collapse/src/collapse.component.d.ts +17 -17
- package/collapse/src/collapse.module.d.ts +9 -9
- package/color-palette/index.d.ts +5 -5
- package/color-palette/public-api.d.ts +7 -7
- package/color-palette/src/color-palette-input.component.d.ts +22 -22
- package/color-palette/src/color-palette-picker.component.d.ts +32 -32
- package/color-palette/src/color-palette-preview.component.d.ts +11 -11
- package/color-palette/src/color-palette-swatches.component.d.ts +18 -18
- package/color-palette/src/color-palette.class.d.ts +22 -22
- package/color-palette/src/color-palette.component.d.ts +16 -16
- package/color-palette/src/color-palette.module.d.ts +19 -19
- package/color-picker/index.d.ts +5 -5
- package/color-picker/public-api.d.ts +2 -2
- package/color-picker/src/color-picker.component.d.ts +190 -193
- package/color-picker/src/color-picker.module.d.ts +18 -18
- package/common/index.d.ts +5 -5
- package/common/public-api.d.ts +16 -16
- package/common/src/classes/components.class.d.ts +62 -62
- package/common/src/classes/data.class.d.ts +4 -4
- package/common/src/classes/drawing.class.d.ts +9 -9
- package/common/src/classes/events.class.d.ts +95 -95
- package/common/src/classes/styles.class.d.ts +17 -17
- package/common/src/common.module.d.ts +11 -11
- package/common/src/components/base-component.class.d.ts +28 -28
- package/common/src/components/button-base-component.class.d.ts +36 -36
- package/common/src/components/color-component.class.d.ts +15 -15
- package/common/src/components/colorlook-component.class.d.ts +9 -9
- package/common/src/components/index.d.ts +7 -7
- package/common/src/components/interactive-component.class.d.ts +37 -37
- package/common/src/components/look-component.class.d.ts +15 -15
- package/common/src/components/value-component.class.d.ts +45 -45
- package/common/src/constant/positions.d.ts +75 -75
- package/common/src/directives/auto-focus.directive.d.ts +13 -13
- package/common/src/directives/debounce-time.directive.d.ts +17 -17
- package/common/src/directives/hotkey.directive.d.ts +22 -22
- package/common/src/directives/infinite-scroll.directive.d.ts +25 -25
- package/common/src/directives/responsive.directive.d.ts +10 -10
- package/common/src/services/custom-cdk-overlay.service.d.ts +19 -19
- package/common/src/services/hotkey.service.d.ts +17 -17
- package/common/src/services/overlay.service.d.ts +34 -34
- package/context-menu/index.d.ts +5 -5
- package/context-menu/public-api.d.ts +2 -2
- package/context-menu/src/context-menu.component.d.ts +34 -34
- package/context-menu/src/context-menu.module.d.ts +13 -13
- package/data-pager/index.d.ts +5 -5
- package/data-pager/public-api.d.ts +9 -9
- package/data-pager/src/data-pager-base.component.d.ts +49 -49
- package/data-pager/src/data-pager-info.component.d.ts +15 -15
- package/data-pager/src/data-pager-input-selector.component.d.ts +15 -15
- package/data-pager/src/data-pager-next-buttons.components.d.ts +16 -16
- package/data-pager/src/data-pager-numeric-selector.component.d.ts +18 -18
- package/data-pager/src/data-pager-pagesize-dropdown.component.d.ts +18 -18
- package/data-pager/src/data-pager-prev-buttons.component.d.ts +15 -15
- package/data-pager/src/data-pager.component.d.ts +35 -35
- package/data-pager/src/data-pager.module.d.ts +18 -18
- package/data-table/index.d.ts +5 -5
- package/data-table/public-api.d.ts +4 -4
- package/data-table/src/data-column-cell-template.directive.d.ts +8 -8
- package/data-table/src/data-column.directive.d.ts +16 -16
- package/data-table/src/data-table.component.d.ts +37 -37
- package/data-table/src/data-table.module.d.ts +14 -14
- package/date-picker/index.d.ts +5 -5
- package/date-picker/public-api.d.ts +2 -2
- package/date-picker/src/datepicker.component.d.ts +154 -154
- package/date-picker/src/datepicker.module.d.ts +15 -15
- package/decorators/index.d.ts +5 -5
- package/decorators/public-api.d.ts +14 -14
- package/decorators/src/close-button.component.d.ts +14 -14
- package/decorators/src/content.component.d.ts +8 -8
- package/decorators/src/decorators.module.d.ts +20 -20
- package/decorators/src/footer.component.d.ts +8 -8
- package/decorators/src/form-hint.component.d.ts +8 -8
- package/decorators/src/header.component.d.ts +8 -8
- package/decorators/src/icon.component.d.ts +10 -10
- package/decorators/src/overlay.component.d.ts +6 -6
- package/decorators/src/placeholder.component.d.ts +5 -5
- package/decorators/src/prefix.component.d.ts +8 -8
- package/decorators/src/sub-title.component.d.ts +9 -9
- package/decorators/src/suffix.component.d.ts +8 -8
- package/decorators/src/text.component.d.ts +9 -9
- package/decorators/src/title.component.d.ts +8 -8
- package/dialog/index.d.ts +5 -5
- package/dialog/public-api.d.ts +4 -4
- package/dialog/src/dialog.class.d.ts +13 -13
- package/dialog/src/dialog.component.d.ts +16 -16
- package/dialog/src/dialog.module.d.ts +14 -14
- package/dialog/src/dialog.service.d.ts +38 -38
- package/drawer/index.d.ts +5 -5
- package/drawer/public-api.d.ts +3 -3
- package/drawer/src/drawer-container.component.d.ts +10 -10
- package/drawer/src/drawer.component.d.ts +36 -36
- package/drawer/src/drawer.module.d.ts +9 -9
- package/dropdown/index.d.ts +5 -5
- package/dropdown/public-api.d.ts +2 -2
- package/dropdown/src/dropdown-panel.component.d.ts +30 -30
- package/dropdown/src/dropdown.module.d.ts +14 -14
- package/esm2022/acorex-components.mjs +4 -4
- package/esm2022/action-sheet/acorex-components-action-sheet.mjs +4 -4
- package/esm2022/action-sheet/public-api.mjs +3 -3
- package/esm2022/action-sheet/src/action-sheet.component.mjs +81 -80
- package/esm2022/action-sheet/src/action-sheet.interface.mjs +2 -2
- package/esm2022/action-sheet/src/action-sheet.module.mjs +27 -26
- package/esm2022/action-sheet/src/action-sheet.service.mjs +94 -93
- package/esm2022/alert/acorex-components-alert.mjs +4 -4
- package/esm2022/alert/public-api.mjs +2 -2
- package/esm2022/alert/src/alert.component.mjs +189 -188
- package/esm2022/alert/src/alert.module.mjs +23 -22
- package/esm2022/avatar/acorex-components-avatar.mjs +4 -4
- package/esm2022/avatar/public-api.mjs +3 -3
- package/esm2022/avatar/src/avatar-group.component.mjs +17 -16
- package/esm2022/avatar/src/avatar.component.mjs +44 -43
- package/esm2022/avatar/src/avatar.module.mjs +23 -22
- package/esm2022/badge/acorex-components-badge.mjs +4 -4
- package/esm2022/badge/public-api.mjs +2 -2
- package/esm2022/badge/src/badge.component.mjs +29 -28
- package/esm2022/badge/src/badge.module.mjs +22 -21
- package/esm2022/breadcrumbs/acorex-components-breadcrumbs.mjs +4 -4
- package/esm2022/breadcrumbs/public-api.mjs +4 -4
- package/esm2022/breadcrumbs/src/breadcrumbs-item.class.mjs +1 -1
- package/esm2022/breadcrumbs/src/breadcrumbs-item.component.mjs +51 -50
- package/esm2022/breadcrumbs/src/breadcrumbs.component.mjs +28 -27
- package/esm2022/breadcrumbs/src/breadcrumbs.module.mjs +21 -20
- package/esm2022/button/acorex-components-button.mjs +4 -4
- package/esm2022/button/public-api.mjs +5 -5
- package/esm2022/button/src/button-group.component.mjs +92 -91
- package/esm2022/button/src/button-item.class.mjs +1 -1
- package/esm2022/button/src/button-item.component.mjs +70 -69
- package/esm2022/button/src/button.component.mjs +79 -78
- package/esm2022/button/src/button.module.mjs +33 -32
- package/esm2022/calendar/acorex-components-calendar.mjs +4 -4
- package/esm2022/calendar/public-api.mjs +4 -4
- package/esm2022/calendar/src/calendar-range.component.mjs +175 -174
- package/esm2022/calendar/src/calendar.class.mjs +282 -280
- package/esm2022/calendar/src/calendar.component.mjs +373 -372
- package/esm2022/calendar/src/calendar.module.mjs +24 -23
- package/esm2022/card/acorex-components-card.mjs +4 -4
- package/esm2022/card/public-api.mjs +2 -2
- package/esm2022/card/src/card.component.mjs +19 -18
- package/esm2022/card/src/card.module.mjs +20 -19
- package/esm2022/checkbox/acorex-components-checkbox.mjs +4 -4
- package/esm2022/checkbox/public-api.mjs +2 -2
- package/esm2022/checkbox/src/checkbox.component.mjs +43 -42
- package/esm2022/checkbox/src/checkbox.module.mjs +22 -21
- package/esm2022/chips/acorex-components-chips.mjs +4 -4
- package/esm2022/chips/public-api.mjs +2 -2
- package/esm2022/chips/src/chips.component.mjs +34 -33
- package/esm2022/chips/src/chips.module.mjs +20 -19
- package/esm2022/collapse/acorex-components-collapse.mjs +4 -4
- package/esm2022/collapse/public-api.mjs +3 -3
- package/esm2022/collapse/src/collapse-group.component.mjs +53 -52
- package/esm2022/collapse/src/collapse.component.mjs +48 -47
- package/esm2022/collapse/src/collapse.module.mjs +21 -20
- package/esm2022/color-palette/acorex-components-color-palette.mjs +4 -4
- package/esm2022/color-palette/public-api.mjs +7 -7
- package/esm2022/color-palette/src/color-palette-input.component.mjs +131 -130
- package/esm2022/color-palette/src/color-palette-picker.component.mjs +160 -159
- package/esm2022/color-palette/src/color-palette-preview.component.mjs +57 -56
- package/esm2022/color-palette/src/color-palette-swatches.component.mjs +295 -294
- package/esm2022/color-palette/src/color-palette.class.mjs +19 -17
- package/esm2022/color-palette/src/color-palette.component.mjs +76 -75
- package/esm2022/color-palette/src/color-palette.module.mjs +61 -60
- package/esm2022/color-picker/acorex-components-color-picker.mjs +4 -4
- package/esm2022/color-picker/public-api.mjs +2 -2
- package/esm2022/color-picker/src/color-picker.component.mjs +120 -119
- package/esm2022/color-picker/src/color-picker.module.mjs +62 -61
- package/esm2022/common/acorex-components-common.mjs +4 -4
- package/esm2022/common/public-api.mjs +16 -16
- package/esm2022/common/src/classes/components.class.mjs +78 -72
- package/esm2022/common/src/classes/data.class.mjs +1 -1
- package/esm2022/common/src/classes/drawing.class.mjs +1 -1
- package/esm2022/common/src/classes/events.class.mjs +95 -95
- package/esm2022/common/src/classes/styles.class.mjs +12 -12
- package/esm2022/common/src/common.module.mjs +43 -42
- package/esm2022/common/src/components/base-component.class.mjs +56 -56
- package/esm2022/common/src/components/button-base-component.class.mjs +68 -68
- package/esm2022/common/src/components/color-component.class.mjs +26 -26
- package/esm2022/common/src/components/colorlook-component.class.mjs +10 -10
- package/esm2022/common/src/components/index.mjs +7 -7
- package/esm2022/common/src/components/interactive-component.class.mjs +62 -62
- package/esm2022/common/src/components/look-component.class.mjs +26 -26
- package/esm2022/common/src/components/value-component.class.mjs +207 -206
- package/esm2022/common/src/constant/positions.mjs +74 -74
- package/esm2022/common/src/directives/auto-focus.directive.mjs +58 -57
- package/esm2022/common/src/directives/debounce-time.directive.mjs +50 -49
- package/esm2022/common/src/directives/hotkey.directive.mjs +83 -82
- package/esm2022/common/src/directives/infinite-scroll.directive.mjs +70 -69
- package/esm2022/common/src/directives/responsive.directive.mjs +36 -35
- package/esm2022/common/src/services/custom-cdk-overlay.service.mjs +52 -50
- package/esm2022/common/src/services/hotkey.service.mjs +41 -40
- package/esm2022/common/src/services/overlay.service.mjs +116 -115
- package/esm2022/context-menu/acorex-components-context-menu.mjs +4 -4
- package/esm2022/context-menu/public-api.mjs +2 -2
- package/esm2022/context-menu/src/context-menu.component.mjs +271 -270
- package/esm2022/context-menu/src/context-menu.module.mjs +37 -36
- package/esm2022/data-pager/acorex-components-data-pager.mjs +4 -4
- package/esm2022/data-pager/public-api.mjs +9 -9
- package/esm2022/data-pager/src/data-pager-base.component.mjs +37 -35
- package/esm2022/data-pager/src/data-pager-info.component.mjs +62 -61
- package/esm2022/data-pager/src/data-pager-input-selector.component.mjs +46 -45
- package/esm2022/data-pager/src/data-pager-next-buttons.components.mjs +51 -50
- package/esm2022/data-pager/src/data-pager-numeric-selector.component.mjs +75 -74
- package/esm2022/data-pager/src/data-pager-pagesize-dropdown.component.mjs +67 -66
- package/esm2022/data-pager/src/data-pager-prev-buttons.component.mjs +48 -47
- package/esm2022/data-pager/src/data-pager.component.mjs +147 -146
- package/esm2022/data-pager/src/data-pager.module.mjs +52 -51
- package/esm2022/data-table/acorex-components-data-table.mjs +4 -4
- package/esm2022/data-table/public-api.mjs +4 -4
- package/esm2022/data-table/src/data-column-cell-template.directive.mjs +19 -18
- package/esm2022/data-table/src/data-column.directive.mjs +51 -50
- package/esm2022/data-table/src/data-table.component.mjs +140 -139
- package/esm2022/data-table/src/data-table.module.mjs +28 -27
- package/esm2022/date-picker/acorex-components-date-picker.mjs +4 -4
- package/esm2022/date-picker/public-api.mjs +2 -2
- package/esm2022/date-picker/src/datepicker.component.mjs +241 -240
- package/esm2022/date-picker/src/datepicker.module.mjs +45 -44
- package/esm2022/decorators/acorex-components-decorators.mjs +4 -4
- package/esm2022/decorators/public-api.mjs +14 -14
- package/esm2022/decorators/src/close-button.component.mjs +44 -43
- package/esm2022/decorators/src/content.component.mjs +22 -21
- package/esm2022/decorators/src/decorators.module.mjs +72 -71
- package/esm2022/decorators/src/footer.component.mjs +22 -21
- package/esm2022/decorators/src/form-hint.component.mjs +21 -20
- package/esm2022/decorators/src/header.component.mjs +22 -21
- package/esm2022/decorators/src/icon.component.mjs +31 -30
- package/esm2022/decorators/src/overlay.component.mjs +21 -20
- package/esm2022/decorators/src/placeholder.component.mjs +15 -14
- package/esm2022/decorators/src/prefix.component.mjs +22 -21
- package/esm2022/decorators/src/sub-title.component.mjs +26 -25
- package/esm2022/decorators/src/suffix.component.mjs +22 -21
- package/esm2022/decorators/src/text.component.mjs +23 -22
- package/esm2022/decorators/src/title.component.mjs +21 -20
- package/esm2022/dialog/acorex-components-dialog.mjs +4 -4
- package/esm2022/dialog/public-api.mjs +4 -4
- package/esm2022/dialog/src/dialog.class.mjs +1 -1
- package/esm2022/dialog/src/dialog.component.mjs +56 -55
- package/esm2022/dialog/src/dialog.module.mjs +28 -27
- package/esm2022/dialog/src/dialog.service.mjs +155 -154
- package/esm2022/drawer/acorex-components-drawer.mjs +4 -4
- package/esm2022/drawer/public-api.mjs +3 -3
- package/esm2022/drawer/src/drawer-container.component.mjs +31 -30
- package/esm2022/drawer/src/drawer.component.mjs +139 -138
- package/esm2022/drawer/src/drawer.module.mjs +23 -22
- package/esm2022/dropdown/acorex-components-dropdown.mjs +4 -4
- package/esm2022/dropdown/public-api.mjs +2 -2
- package/esm2022/dropdown/src/dropdown-panel.component.mjs +106 -105
- package/esm2022/dropdown/src/dropdown.module.mjs +26 -25
- package/esm2022/form/acorex-components-form.mjs +4 -4
- package/esm2022/form/public-api.mjs +6 -6
- package/esm2022/form/src/form-field.component.mjs +16 -15
- package/esm2022/form/src/form.component.mjs +164 -163
- package/esm2022/form/src/form.module.mjs +64 -63
- package/esm2022/form/src/validation-rule.widget.mjs +114 -113
- package/esm2022/form/src/validation-summary.component.mjs +82 -81
- package/esm2022/form/src/validation.class.mjs +1 -1
- package/esm2022/image/acorex-components-image.mjs +4 -4
- package/esm2022/image/public-api.mjs +2 -2
- package/esm2022/image/src/image.component.mjs +80 -79
- package/esm2022/image/src/image.module.mjs +20 -19
- package/esm2022/label/acorex-components-label.mjs +4 -4
- package/esm2022/label/public-api.mjs +2 -2
- package/esm2022/label/src/label.component.mjs +49 -48
- package/esm2022/label/src/label.module.mjs +22 -21
- package/esm2022/loading/acorex-components-loading.mjs +4 -4
- package/esm2022/loading/public-api.mjs +5 -5
- package/esm2022/loading/src/loading-spinner.component.mjs +18 -17
- package/esm2022/loading/src/loading.component.mjs +58 -57
- package/esm2022/loading/src/loading.directive.mjs +77 -76
- package/esm2022/loading/src/loading.module.mjs +36 -35
- package/esm2022/loading/src/loading.service.mjs +159 -158
- package/esm2022/menu/acorex-components-menu.mjs +4 -4
- package/esm2022/menu/public-api.mjs +2 -2
- package/esm2022/menu/src/menu.component.mjs +347 -346
- package/esm2022/menu/src/menu.module.mjs +34 -33
- package/esm2022/mixin/acorex-components-mixin.mjs +4 -4
- package/esm2022/mixin/public-api.mjs +17 -17
- package/esm2022/mixin/src/base-components.class.mjs +111 -110
- package/esm2022/mixin/src/base-menu-mixin.class.mjs +133 -133
- package/esm2022/mixin/src/button-mixin.class.mjs +70 -70
- package/esm2022/mixin/src/clickable-mixin.class.mjs +23 -23
- package/esm2022/mixin/src/color-look-mixing.class.mjs +47 -47
- package/esm2022/mixin/src/constratctor.mjs +1 -1
- package/esm2022/mixin/src/datalist-component.class.mjs +150 -150
- package/esm2022/mixin/src/datalist.class.mjs +2 -2
- package/esm2022/mixin/src/dropdown-mixin.class.mjs +98 -98
- package/esm2022/mixin/src/interactive-mixin.class.mjs +80 -80
- package/esm2022/mixin/src/loading-mixin.class.mjs +25 -25
- package/esm2022/mixin/src/mixin.class.mjs +25 -25
- package/esm2022/mixin/src/page-component.class.mjs +10 -10
- package/esm2022/mixin/src/selection-component.class.mjs +182 -182
- package/esm2022/mixin/src/sizable-mixin.class.mjs +21 -21
- package/esm2022/mixin/src/textbox-mixin.class.mjs +65 -65
- package/esm2022/mixin/src/value-mixin.class.mjs +219 -219
- package/esm2022/notification/acorex-components-notification.mjs +4 -4
- package/esm2022/notification/public-api.mjs +4 -4
- package/esm2022/notification/src/notification.class.mjs +1 -1
- package/esm2022/notification/src/notification.component.mjs +93 -92
- package/esm2022/notification/src/notification.module.mjs +24 -23
- package/esm2022/notification/src/notification.service.mjs +110 -109
- package/esm2022/number-box/acorex-components-number-box.mjs +4 -4
- package/esm2022/number-box/public-api.mjs +2 -2
- package/esm2022/number-box/src/number-box.component.mjs +269 -268
- package/esm2022/number-box/src/number-box.module.mjs +36 -35
- package/esm2022/page/acorex-components-page.mjs +4 -4
- package/esm2022/page/public-api.mjs +3 -3
- package/esm2022/page/src/base-page.class.mjs +64 -63
- package/esm2022/page/src/page.component.mjs +47 -46
- package/esm2022/page/src/page.module.mjs +19 -18
- package/esm2022/password-box/acorex-components-password-box.mjs +4 -4
- package/esm2022/password-box/public-api.mjs +2 -2
- package/esm2022/password-box/src/password-box.component.mjs +64 -63
- package/esm2022/password-box/src/password-box.module.mjs +33 -32
- package/esm2022/picker/acorex-components-picker.mjs +4 -4
- package/esm2022/picker/public-api.mjs +3 -3
- package/esm2022/picker/src/picker-column.component.mjs +21 -20
- package/esm2022/picker/src/picker.component.mjs +17 -16
- package/esm2022/picker/src/picker.module.mjs +38 -37
- package/esm2022/popover/acorex-components-popover.mjs +4 -4
- package/esm2022/popover/public-api.mjs +2 -2
- package/esm2022/popover/src/popover.component.mjs +263 -262
- package/esm2022/popover/src/popover.module.mjs +20 -19
- package/esm2022/popup/acorex-components-popup.mjs +4 -4
- package/esm2022/popup/public-api.mjs +3 -3
- package/esm2022/popup/src/popup.component.mjs +146 -145
- package/esm2022/popup/src/popup.module.mjs +28 -27
- package/esm2022/popup/src/popup.service.mjs +117 -116
- package/esm2022/progress-bar/acorex-components-progress-bar.mjs +4 -4
- package/esm2022/progress-bar/public-api.mjs +2 -2
- package/esm2022/progress-bar/src/progress-bar.component.mjs +34 -33
- package/esm2022/progress-bar/src/progress-bar.module.mjs +20 -19
- package/esm2022/public-api.mjs +4 -4
- package/esm2022/radio/acorex-components-radio.mjs +4 -4
- package/esm2022/radio/public-api.mjs +2 -2
- package/esm2022/radio/src/radio.component.mjs +40 -39
- package/esm2022/radio/src/radio.module.mjs +23 -22
- package/esm2022/range-slider/acorex-components-range-slider.mjs +4 -4
- package/esm2022/range-slider/public-api.mjs +2 -2
- package/esm2022/range-slider/src/range-slider.component.mjs +118 -117
- package/esm2022/range-slider/src/range-slider.module.mjs +23 -22
- package/esm2022/rating/acorex-components-rating.mjs +4 -4
- package/esm2022/rating/public-api.mjs +2 -2
- package/esm2022/rating/src/rating.component.mjs +42 -41
- package/esm2022/rating/src/rating.component.module.mjs +20 -19
- package/esm2022/result/acorex-components-result.mjs +4 -4
- package/esm2022/result/public-api.mjs +2 -2
- package/esm2022/result/src/result.component.mjs +27 -26
- package/esm2022/result/src/result.module.mjs +20 -19
- package/esm2022/search-box/acorex-components-search-box.mjs +4 -4
- package/esm2022/search-box/public-api.mjs +2 -2
- package/esm2022/search-box/src/search-box.component.mjs +55 -54
- package/esm2022/search-box/src/search-box.module.mjs +26 -25
- package/esm2022/select-box/acorex-components-select-box.mjs +4 -4
- package/esm2022/select-box/public-api.mjs +2 -2
- package/esm2022/select-box/src/selectbox.component.mjs +392 -391
- package/esm2022/select-box/src/selectbox.module.mjs +65 -64
- package/esm2022/selection-list/acorex-components-selection-list.mjs +4 -4
- package/esm2022/selection-list/public-api.mjs +2 -2
- package/esm2022/selection-list/src/selection-list.component.mjs +60 -60
- package/esm2022/selection-list/src/selection-list.module.mjs +25 -24
- package/esm2022/switch/acorex-components-switch.mjs +4 -4
- package/esm2022/switch/public-api.mjs +3 -3
- package/esm2022/switch/src/switch-content.component.mjs +17 -16
- package/esm2022/switch/src/switch.component.mjs +55 -54
- package/esm2022/switch/src/switch.module.mjs +23 -22
- package/esm2022/tabs/acorex-components-tabs.mjs +4 -4
- package/esm2022/tabs/public-api.mjs +5 -5
- package/esm2022/tabs/src/tab-content.directive.mjs +32 -31
- package/esm2022/tabs/src/tab-item.component.mjs +91 -90
- package/esm2022/tabs/src/tabs.class.mjs +5 -5
- package/esm2022/tabs/src/tabs.component.mjs +103 -102
- package/esm2022/tabs/src/tabs.module.mjs +26 -25
- package/esm2022/tag/acorex-components-tag.mjs +4 -4
- package/esm2022/tag/public-api.mjs +2 -2
- package/esm2022/tag/src/tag.component.mjs +30 -29
- package/esm2022/tag/src/tag.module.mjs +20 -19
- package/esm2022/textarea/acorex-components-textarea.mjs +4 -4
- package/esm2022/textarea/public-api.mjs +2 -2
- package/esm2022/textarea/src/textarea.component.mjs +30 -29
- package/esm2022/textarea/src/textarea.module.mjs +20 -19
- package/esm2022/textbox/acorex-components-textbox.mjs +4 -4
- package/esm2022/textbox/public-api.mjs +3 -3
- package/esm2022/textbox/src/mask-options.directive.mjs +20 -19
- package/esm2022/textbox/src/textbox.component.mjs +96 -95
- package/esm2022/textbox/src/textbox.module.mjs +39 -38
- package/esm2022/time-box/acorex-components-time-box.mjs +4 -4
- package/esm2022/time-box/public-api.mjs +2 -2
- package/esm2022/time-box/src/time-box.component.mjs +306 -305
- package/esm2022/time-box/src/time-box.module.mjs +33 -32
- package/esm2022/toast/acorex-components-toast.mjs +4 -4
- package/esm2022/toast/public-api.mjs +4 -4
- package/esm2022/toast/src/toast.class.mjs +1 -1
- package/esm2022/toast/src/toast.component.mjs +68 -67
- package/esm2022/toast/src/toast.module.mjs +23 -22
- package/esm2022/toast/src/toast.service.mjs +137 -136
- package/esm2022/tooltip/acorex-components-tooltip.mjs +4 -4
- package/esm2022/tooltip/public-api.mjs +3 -3
- package/esm2022/tooltip/src/tooltip.component.mjs +22 -21
- package/esm2022/tooltip/src/tooltip.directive.mjs +164 -163
- package/esm2022/tooltip/src/tooltip.module.mjs +23 -22
- package/esm2022/tree-view/acorex-components-tree-view.mjs +4 -4
- package/esm2022/tree-view/public-api.mjs +2 -2
- package/esm2022/tree-view/src/tree-view.component.mjs +108 -107
- package/esm2022/tree-view/src/tree-view.module.mjs +21 -20
- package/esm2022/uploader/acorex-components-uploader.mjs +4 -4
- package/esm2022/uploader/public-api.mjs +2 -2
- package/esm2022/uploader/src/uploader.component.mjs +102 -101
- package/esm2022/uploader/src/uploader.module.mjs +21 -20
- package/fesm2022/acorex-components-action-sheet.mjs +170 -170
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +196 -196
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +66 -66
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +39 -39
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +78 -78
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +245 -245
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +815 -815
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-card.mjs +28 -28
- package/fesm2022/acorex-components-card.mjs.map +1 -1
- package/fesm2022/acorex-components-checkbox.mjs +51 -51
- package/fesm2022/acorex-components-checkbox.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +42 -42
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-collapse.mjs +102 -102
- package/fesm2022/acorex-components-collapse.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +717 -717
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-color-picker.mjs +153 -153
- package/fesm2022/acorex-components-color-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +1150 -1150
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-context-menu.mjs +287 -287
- package/fesm2022/acorex-components-context-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +487 -487
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +205 -205
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-date-picker.mjs +256 -256
- package/fesm2022/acorex-components-date-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +287 -287
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +207 -207
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +174 -174
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +111 -111
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +392 -392
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +88 -88
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +59 -59
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +308 -308
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +359 -359
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-mixin.mjs +1214 -1214
- package/fesm2022/acorex-components-mixin.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +200 -200
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +284 -284
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-page.mjs +112 -112
- package/fesm2022/acorex-components-page.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +81 -81
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +54 -54
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +266 -266
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +258 -258
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +43 -43
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +50 -50
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +127 -127
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rating.mjs +51 -51
- package/fesm2022/acorex-components-rating.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +35 -35
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-search-box.mjs +59 -59
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +422 -422
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +68 -69
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +74 -74
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +227 -227
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +38 -38
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-textarea.mjs +37 -37
- package/fesm2022/acorex-components-textarea.mjs.map +1 -1
- package/fesm2022/acorex-components-textbox.mjs +130 -130
- package/fesm2022/acorex-components-textbox.mjs.map +1 -1
- package/fesm2022/acorex-components-time-box.mjs +319 -319
- package/fesm2022/acorex-components-time-box.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +204 -204
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +187 -187
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +116 -116
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +109 -109
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components.mjs +5 -5
- package/form/index.d.ts +5 -5
- package/form/public-api.d.ts +6 -6
- package/form/src/form-field.component.d.ts +8 -8
- package/form/src/form.component.d.ts +51 -51
- package/form/src/form.module.d.ts +15 -15
- package/form/src/validation-rule.widget.d.ts +18 -18
- package/form/src/validation-summary.component.d.ts +23 -23
- package/form/src/validation.class.d.ts +18 -18
- package/image/index.d.ts +5 -5
- package/image/public-api.d.ts +2 -2
- package/image/src/image.component.d.ts +27 -27
- package/image/src/image.module.d.ts +8 -8
- package/index.d.ts +5 -5
- package/label/index.d.ts +5 -5
- package/label/public-api.d.ts +2 -2
- package/label/src/label.component.d.ts +17 -17
- package/label/src/label.module.d.ts +8 -8
- package/loading/index.d.ts +5 -5
- package/loading/public-api.d.ts +5 -5
- package/loading/src/loading-spinner.component.d.ts +6 -6
- package/loading/src/loading.component.d.ts +21 -21
- package/loading/src/loading.directive.d.ts +22 -22
- package/loading/src/loading.module.d.ts +13 -13
- package/loading/src/loading.service.d.ts +48 -48
- package/menu/index.d.ts +5 -5
- package/menu/public-api.d.ts +2 -2
- package/menu/src/menu.component.d.ts +39 -39
- package/menu/src/menu.module.d.ts +12 -12
- package/mixin/index.d.ts +5 -5
- package/mixin/public-api.d.ts +17 -17
- package/mixin/src/base-components.class.d.ts +84 -84
- package/mixin/src/base-menu-mixin.class.d.ts +53 -53
- package/mixin/src/button-mixin.class.d.ts +53 -53
- package/mixin/src/clickable-mixin.class.d.ts +36 -36
- package/mixin/src/color-look-mixing.class.d.ts +44 -44
- package/mixin/src/constratctor.d.ts +4 -4
- package/mixin/src/datalist-component.class.d.ts +59 -59
- package/mixin/src/datalist.class.d.ts +11 -11
- package/mixin/src/dropdown-mixin.class.d.ts +47 -47
- package/mixin/src/interactive-mixin.class.d.ts +63 -63
- package/mixin/src/loading-mixin.class.d.ts +40 -40
- package/mixin/src/mixin.class.d.ts +679 -679
- package/mixin/src/page-component.class.d.ts +28 -28
- package/mixin/src/selection-component.class.d.ts +61 -61
- package/mixin/src/sizable-mixin.class.d.ts +34 -34
- package/mixin/src/textbox-mixin.class.d.ts +72 -72
- package/mixin/src/value-mixin.class.d.ts +63 -63
- package/notification/index.d.ts +5 -5
- package/notification/public-api.d.ts +4 -4
- package/notification/src/notification.class.d.ts +18 -18
- package/notification/src/notification.component.d.ts +30 -30
- package/notification/src/notification.module.d.ts +10 -10
- package/notification/src/notification.service.d.ts +16 -16
- package/number-box/index.d.ts +5 -5
- package/number-box/public-api.d.ts +2 -2
- package/number-box/src/number-box.component.d.ts +77 -77
- package/number-box/src/number-box.module.d.ts +12 -12
- package/package.json +8 -8
- package/page/index.d.ts +5 -5
- package/page/public-api.d.ts +3 -3
- package/page/src/base-page.class.d.ts +25 -25
- package/page/src/page.component.d.ts +14 -14
- package/page/src/page.module.d.ts +6 -6
- package/password-box/index.d.ts +5 -5
- package/password-box/public-api.d.ts +2 -2
- package/password-box/src/password-box.component.d.ts +25 -25
- package/password-box/src/password-box.module.d.ts +11 -11
- package/picker/index.d.ts +5 -5
- package/picker/public-api.d.ts +3 -3
- package/picker/src/picker-column.component.d.ts +11 -11
- package/picker/src/picker.component.d.ts +10 -10
- package/picker/src/picker.module.d.ts +14 -14
- package/popover/index.d.ts +5 -5
- package/popover/public-api.d.ts +2 -2
- package/popover/src/popover.component.d.ts +51 -51
- package/popover/src/popover.module.d.ts +8 -8
- package/popup/index.d.ts +5 -5
- package/popup/public-api.d.ts +3 -3
- package/popup/src/popup.component.d.ts +45 -45
- package/popup/src/popup.module.d.ts +14 -14
- package/popup/src/popup.service.d.ts +42 -42
- package/progress-bar/index.d.ts +5 -5
- package/progress-bar/public-api.d.ts +2 -2
- package/progress-bar/src/progress-bar.component.d.ts +18 -18
- package/progress-bar/src/progress-bar.module.d.ts +8 -8
- package/public-api.d.ts +1 -1
- package/radio/index.d.ts +5 -5
- package/radio/public-api.d.ts +2 -2
- package/radio/src/radio.component.d.ts +18 -18
- package/radio/src/radio.module.d.ts +9 -9
- package/range-slider/index.d.ts +5 -5
- package/range-slider/public-api.d.ts +2 -2
- package/range-slider/src/range-slider.component.d.ts +41 -41
- package/range-slider/src/range-slider.module.d.ts +9 -9
- package/rating/index.d.ts +5 -5
- package/rating/public-api.d.ts +2 -2
- package/rating/src/rating.component.d.ts +21 -21
- package/rating/src/rating.component.module.d.ts +8 -8
- package/result/index.d.ts +5 -5
- package/result/public-api.d.ts +2 -2
- package/result/src/result.component.d.ts +12 -12
- package/result/src/result.module.d.ts +8 -8
- package/search-box/index.d.ts +5 -5
- package/search-box/public-api.d.ts +2 -2
- package/search-box/src/search-box.component.d.ts +18 -18
- package/search-box/src/search-box.module.d.ts +12 -12
- package/select-box/index.d.ts +5 -5
- package/select-box/public-api.d.ts +2 -2
- package/select-box/src/selectbox.component.d.ts +66 -66
- package/select-box/src/selectbox.module.d.ts +19 -19
- package/selection-list/index.d.ts +5 -5
- package/selection-list/public-api.d.ts +2 -2
- package/selection-list/src/selection-list.component.d.ts +23 -23
- package/selection-list/src/selection-list.module.d.ts +13 -13
- package/switch/index.d.ts +5 -5
- package/switch/public-api.d.ts +3 -3
- package/switch/src/switch-content.component.d.ts +8 -8
- package/switch/src/switch.component.d.ts +13 -13
- package/switch/src/switch.module.d.ts +11 -11
- package/tabs/index.d.ts +5 -5
- package/tabs/public-api.d.ts +5 -5
- package/tabs/src/tab-content.directive.d.ts +11 -11
- package/tabs/src/tab-item.component.d.ts +48 -48
- package/tabs/src/tabs.class.d.ts +7 -7
- package/tabs/src/tabs.component.d.ts +29 -29
- package/tabs/src/tabs.module.d.ts +12 -12
- package/tag/index.d.ts +5 -5
- package/tag/public-api.d.ts +2 -2
- package/tag/src/tag.component.d.ts +11 -11
- package/tag/src/tag.module.d.ts +8 -8
- package/textarea/index.d.ts +5 -5
- package/textarea/public-api.d.ts +2 -2
- package/textarea/src/textarea.component.d.ts +14 -14
- package/textarea/src/textarea.module.d.ts +9 -9
- package/textbox/index.d.ts +5 -5
- package/textbox/public-api.d.ts +3 -3
- package/textbox/src/mask-options.directive.d.ts +13 -13
- package/textbox/src/textbox.component.d.ts +27 -27
- package/textbox/src/textbox.module.d.ts +13 -13
- package/time-box/index.d.ts +5 -5
- package/time-box/public-api.d.ts +2 -2
- package/time-box/src/time-box.component.d.ts +50 -50
- package/time-box/src/time-box.module.d.ts +11 -11
- package/toast/index.d.ts +5 -5
- package/toast/public-api.d.ts +4 -4
- package/toast/src/toast.class.d.ts +15 -15
- package/toast/src/toast.component.d.ts +25 -25
- package/toast/src/toast.module.d.ts +9 -9
- package/toast/src/toast.service.d.ts +21 -21
- package/tooltip/index.d.ts +5 -5
- package/tooltip/public-api.d.ts +3 -3
- package/tooltip/src/tooltip.component.d.ts +11 -11
- package/tooltip/src/tooltip.directive.d.ts +22 -22
- package/tooltip/src/tooltip.module.d.ts +10 -10
- package/tree-view/index.d.ts +5 -5
- package/tree-view/public-api.d.ts +2 -2
- package/tree-view/src/tree-view.component.d.ts +33 -33
- package/tree-view/src/tree-view.module.d.ts +9 -9
- package/uploader/index.d.ts +5 -5
- package/uploader/public-api.d.ts +2 -2
- package/uploader/src/uploader.component.d.ts +28 -28
- package/uploader/src/uploader.module.d.ts +9 -9
@@ -1,305 +1,306 @@
|
|
1
|
-
import { AXStringUtil } from '@acorex/core/utils';
|
2
|
-
import { AXDateTime } from '@acorex/core/dateTime';
|
3
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, EventEmitter, Output, Input, ViewChild, } from '@angular/core';
|
4
|
-
import IMask from 'imask';
|
5
|
-
import { IMaskDirective } from 'angular-imask';
|
6
|
-
import { AXBaseTextBoxMixin } from '@acorex/components/mixin';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
import * as i1 from "@angular/forms";
|
9
|
-
import * as i2 from "angular-imask";
|
10
|
-
/**
|
11
|
-
* The Button is a component which detects user interaction and triggers a corresponding event
|
12
|
-
*
|
13
|
-
* @category Components
|
14
|
-
*/
|
15
|
-
|
16
|
-
cdr;
|
17
|
-
input;
|
18
|
-
_minValue;
|
19
|
-
get minValue() {
|
20
|
-
return this._minValue;
|
21
|
-
}
|
22
|
-
set minValue(v) {
|
23
|
-
this._minValue = v;
|
24
|
-
}
|
25
|
-
_maxValue;
|
26
|
-
get maxValue() {
|
27
|
-
return this._maxValue;
|
28
|
-
}
|
29
|
-
set maxValue(v) {
|
30
|
-
this._maxValue = v;
|
31
|
-
}
|
32
|
-
formatChange = new EventEmitter();
|
33
|
-
_format = 'HH:mm';
|
34
|
-
get format() {
|
35
|
-
return this._format;
|
36
|
-
}
|
37
|
-
set format(v) {
|
38
|
-
this._setOption({
|
39
|
-
name: 'format',
|
40
|
-
value: v,
|
41
|
-
});
|
42
|
-
}
|
43
|
-
displayTextChange = new EventEmitter();
|
44
|
-
_displayText = '';
|
45
|
-
get displayText() {
|
46
|
-
return this._displayText;
|
47
|
-
}
|
48
|
-
set displayText(v) {
|
49
|
-
this._displayText = v;
|
50
|
-
this.displayTextChange.emit(v);
|
51
|
-
}
|
52
|
-
/**
|
53
|
-
* @ignore
|
54
|
-
*/
|
55
|
-
_maskObj;
|
56
|
-
_maskDirective;
|
57
|
-
/**
|
58
|
-
* @ignore
|
59
|
-
*/
|
60
|
-
constructor(elementRef, cdr) {
|
61
|
-
super(elementRef, cdr);
|
62
|
-
this.cdr = cdr;
|
63
|
-
}
|
64
|
-
onViewInit() {
|
65
|
-
super.onViewInit();
|
66
|
-
this._updateMask();
|
67
|
-
}
|
68
|
-
_onValueChanged(oldValue, newValue) {
|
69
|
-
this._updateText();
|
70
|
-
this._maskDirective?.maskRef?.updateValue();
|
71
|
-
this._maskDirective?.maskRef?.updateControl();
|
72
|
-
}
|
73
|
-
_updateText() {
|
74
|
-
this.displayText = this.value
|
75
|
-
? AXDateTime.convert(this.value).format(this.format)
|
76
|
-
: '';
|
77
|
-
}
|
78
|
-
_onOptionChanged(option) {
|
79
|
-
super._onOptionChanged(option);
|
80
|
-
this._updateMask();
|
81
|
-
}
|
82
|
-
focus() {
|
83
|
-
this.input.nativeElement.focus();
|
84
|
-
}
|
85
|
-
_updateMask() {
|
86
|
-
if (!this._maskObj) {
|
87
|
-
this._maskObj = IMask.createMask({
|
88
|
-
mask: this.format,
|
89
|
-
lazy: false,
|
90
|
-
autofix: true,
|
91
|
-
overwrite: true,
|
92
|
-
blocks: {
|
93
|
-
HH: {
|
94
|
-
mask: IMask.MaskedRange,
|
95
|
-
from: 0,
|
96
|
-
to: 23,
|
97
|
-
maxLength: 2,
|
98
|
-
placeholderChar: '0',
|
99
|
-
autofix: 'pad',
|
100
|
-
},
|
101
|
-
mm: {
|
102
|
-
mask: IMask.MaskedRange,
|
103
|
-
from: 0,
|
104
|
-
to: 59,
|
105
|
-
maxLength: 2,
|
106
|
-
placeholderChar: '0',
|
107
|
-
autofix: 'pad',
|
108
|
-
},
|
109
|
-
ss: {
|
110
|
-
mask: IMask.MaskedRange,
|
111
|
-
from: 0,
|
112
|
-
to: 59,
|
113
|
-
maxLength: 2,
|
114
|
-
placeholderChar: '0',
|
115
|
-
autofix: 'pad',
|
116
|
-
},
|
117
|
-
},
|
118
|
-
});
|
119
|
-
}
|
120
|
-
else {
|
121
|
-
this._maskObj.updateOptions({
|
122
|
-
mask: this.format,
|
123
|
-
});
|
124
|
-
}
|
125
|
-
this._maskDirective?.maskRef?.updateValue();
|
126
|
-
this._maskDirective?.maskRef?.updateControl();
|
127
|
-
}
|
128
|
-
_handleOnKeydownEvent(e) {
|
129
|
-
debugger;
|
130
|
-
const ignore = () => {
|
131
|
-
e.preventDefault();
|
132
|
-
e.stopPropagation();
|
133
|
-
};
|
134
|
-
const nums = Array(10)
|
135
|
-
.fill(0)
|
136
|
-
.map((v, i) => i.toString());
|
137
|
-
const chars = [
|
138
|
-
'Backspace',
|
139
|
-
'ArrowDown',
|
140
|
-
'ArrowUp',
|
141
|
-
'ArrowRight',
|
142
|
-
'ArrowLeft',
|
143
|
-
'Tab',
|
144
|
-
'Enter',
|
145
|
-
];
|
146
|
-
const input = e.target;
|
147
|
-
const key = e.key;
|
148
|
-
const valStr = input.value;
|
149
|
-
const sStart = input.selectionStart || 0;
|
150
|
-
const sEnd = input.selectionEnd || 0;
|
151
|
-
const dateVal = new AXDateTime(this.value);
|
152
|
-
//
|
153
|
-
const re = /[a-zA-Z0-9]+/gi;
|
154
|
-
const parts = Array.from(this.format.matchAll(re));
|
155
|
-
const word = valStr.substring(sStart, sEnd);
|
156
|
-
const part = parts.find((c) => c.index >= sStart);
|
157
|
-
const next = Array.from(valStr.substr(sEnd).matchAll(re));
|
158
|
-
const prev = Array.from(valStr.substring(0, sStart).matchAll(re));
|
159
|
-
//const part = parts[Array.from(valStr.matchAll(re)).findIndex(c => c[0] == word)];
|
160
|
-
//
|
161
|
-
const goNext = () => {
|
162
|
-
this._highlightPart(input, sEnd + (next[0]?.index || 0));
|
163
|
-
};
|
164
|
-
const goPrev = () => {
|
165
|
-
this._highlightPart(input, prev[prev.length - 1]?.index);
|
166
|
-
};
|
167
|
-
//
|
168
|
-
if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {
|
169
|
-
ignore();
|
170
|
-
e.key === 'ArrowRight' ? goNext() : goPrev();
|
171
|
-
}
|
172
|
-
else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
|
173
|
-
if (e.ctrlKey && e.key === 'ArrowDown') {
|
174
|
-
//this.open();
|
175
|
-
}
|
176
|
-
else {
|
177
|
-
const sign = e.key === 'ArrowUp' ? +1 : -1;
|
178
|
-
if (part) {
|
179
|
-
switch (part[0]) {
|
180
|
-
case 'hh':
|
181
|
-
case 'h':
|
182
|
-
case 'HH':
|
183
|
-
case 'H':
|
184
|
-
this.value = dateVal.add('hour', sign).date;
|
185
|
-
break;
|
186
|
-
case 'mm':
|
187
|
-
this.value = dateVal.add('minute', sign).date;
|
188
|
-
break;
|
189
|
-
case 'ss':
|
190
|
-
case 'SS':
|
191
|
-
this.value = dateVal.add('second', sign).date;
|
192
|
-
break;
|
193
|
-
}
|
194
|
-
setTimeout(() => {
|
195
|
-
this._highlightPart(input, sStart);
|
196
|
-
}, 10);
|
197
|
-
}
|
198
|
-
}
|
199
|
-
ignore();
|
200
|
-
}
|
201
|
-
else if (e.key == 'Backspace') {
|
202
|
-
// if (this.allowNull) {
|
203
|
-
// this.value = null;
|
204
|
-
// }
|
205
|
-
// ignore();
|
206
|
-
}
|
207
|
-
else if (e.key == 'Tab') {
|
208
|
-
if (sEnd < valStr.length && !e.shiftKey) {
|
209
|
-
goNext();
|
210
|
-
ignore();
|
211
|
-
}
|
212
|
-
else if (sStart != 0 && e.shiftKey) {
|
213
|
-
goPrev();
|
214
|
-
ignore();
|
215
|
-
}
|
216
|
-
}
|
217
|
-
else {
|
218
|
-
// const keys = {
|
219
|
-
// h: {
|
220
|
-
// v: /^[0-9]$|^[1][0-2]$/,
|
221
|
-
// p: '0'
|
222
|
-
// },
|
223
|
-
// H: {
|
224
|
-
// v: /^[0-9]$|^1[0-9]$|2[0-3]$/,
|
225
|
-
// p: '0'
|
226
|
-
// },
|
227
|
-
// m: {
|
228
|
-
// v: /^[0-9]$|^[1-5][0-9]$/,
|
229
|
-
// p: '0'
|
230
|
-
// }
|
231
|
-
// }
|
232
|
-
// // const re = new RegExp(_.orderBy(Object.keys(keys), c => c.length, ['desc']).join("|"), "gi");
|
233
|
-
// // return format.replace(re, function (matched) {
|
234
|
-
// // return keys[matched]();
|
235
|
-
// // });
|
236
|
-
// const t = keys[part[0]];
|
237
|
-
// if (!t.v.test(key)) {
|
238
|
-
// ignore();
|
239
|
-
// }
|
240
|
-
// else {
|
241
|
-
// this._updateText()
|
242
|
-
// }
|
243
|
-
}
|
244
|
-
// super._emitOnKeydownEvent(e);
|
245
|
-
}
|
246
|
-
_handleKeyUpEvent(e) {
|
247
|
-
// const input = (e.target as HTMLInputElement);
|
248
|
-
// setTimeout(() => {
|
249
|
-
// this._highlightPart(input);
|
250
|
-
// }, 700);
|
251
|
-
}
|
252
|
-
_emitOnFocusEvent(e) {
|
253
|
-
const input = e.target;
|
254
|
-
this._highlightPart(input);
|
255
|
-
super._emitOnFocusEvent(e);
|
256
|
-
}
|
257
|
-
_handleOnInputClickEvent(e) {
|
258
|
-
const input = e.target;
|
259
|
-
this._highlightPart(input);
|
260
|
-
e.preventDefault();
|
261
|
-
e.stopPropagation();
|
262
|
-
}
|
263
|
-
_highlightPart(input, pos) {
|
264
|
-
const { start, end } = AXStringUtil.getWordBoundsAtPosition(input.value, pos != null ? pos : input.selectionStart || 0);
|
265
|
-
input.setSelectionRange(start, end);
|
266
|
-
}
|
267
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXTimeBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
268
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: AXTimeBoxComponent, selector: "ax-time-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", type: "type", autoComplete: "autoComplete", name: "name", checked: "checked", minValue: "minValue", maxValue: "maxValue", format: "format", displayText: "displayText" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", formatChange: "formatChange", displayTextChange: "displayTextChange" }, host: { classAttribute: "ax-editor-container ax-drop-down" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "_maskDirective", first: true, predicate: IMaskDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input #input class=\"ax-input\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"false\" \r\n type=\"text\" \r\n [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\" \r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [ngModel]=\"displayText\" \r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keyup)=\"_handleKeyUpEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\" \r\n autocomplete=\"off\">\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>", dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
269
|
-
}
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
'
|
275
|
-
'
|
276
|
-
'
|
277
|
-
'
|
278
|
-
'
|
279
|
-
|
280
|
-
|
281
|
-
'
|
282
|
-
'
|
283
|
-
'
|
284
|
-
'
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvdGltZS1ib3gvc3JjL3RpbWUtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3RpbWUtYm94L3NyYy90aW1lLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUd2QixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUE0QixNQUFNLDBCQUEwQixDQUFDOzs7O0FBSXhGOzs7O0dBSUc7QUF1QkgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUFrQjtJQStEWjtJQTVENUMsS0FBSyxDQUErQjtJQUU1QixTQUFTLENBQU87SUFDeEIsSUFDVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBVyxRQUFRLENBQUMsQ0FBTztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRU8sU0FBUyxDQUFPO0lBQ3hCLElBQ1csUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQVcsUUFBUSxDQUFDLENBQU87UUFDekIsSUFB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QUFNO3dCQUNOLE9BQU87d0JBQ1AsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUztxQkFDckgsV0FDUTt3QkFDUCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsUUFBUTt3QkFDUixTQUFTO3dCQUNULGFBQWEsRUFBRSxnQkFBZ0I7cUJBQ2hDLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLGtDQUFrQyxFQUFFO2lJQUtuRCxLQUFLO3NCQURKLFNBQVM7dUJBQUMsT0FBTztnQkFLUCxRQUFRO3NCQURsQixLQUFLO2dCQVVLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBU04sWUFBWTtzQkFEWCxNQUFNO2dCQUtJLE1BQU07c0JBRGhCLEtBQUs7Z0JBWUMsaUJBQWlCO3NCQUR2QixNQUFNO2dCQUtJLFdBQVc7c0JBRHJCLEtBQUs7Z0JBZ0JFLGNBQWM7c0JBRHJCLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU3RyaW5nVXRpbCB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XHJcbmltcG9ydCB7IEFYRGF0ZVRpbWUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZVRpbWUnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPdXRwdXQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgSU1hc2sgZnJvbSAnaW1hc2snO1xyXG5pbXBvcnQgeyBJTWFza0RpcmVjdGl2ZSB9IGZyb20gJ2FuZ3VsYXItaW1hc2snO1xyXG5pbXBvcnQgeyBBWEJhc2VUZXh0Qm94TWl4aW4sIEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9taXhpbic7XHJcblxyXG5cclxuZXhwb3J0IHR5cGUgQVhfVElNRV9GT1JNQVQgPSAnSEg6bW0nIHwgJ0hIOm1tOnNzJztcclxuLyoqXHJcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcclxuICpcclxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtdGltZS1ib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLWJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgaW5wdXRzOiBbXHJcbiAgICAnZGlzYWJsZWQnLFxyXG4gICAgJ3JlYWRvbmx5JyxcclxuICAgICd0YWJJbmRleCcsXHJcbiAgICAnc2l6ZScsXHJcbiAgICAndmFsdWUnLFxyXG4gICAgJ3BsYWNlaG9sZGVyJywgJ21heExlbmd0aCcsICdhbGxvd051bGwnLCAndHlwZScsICdhdXRvQ29tcGxldGUnLCAncmVhZG9ubHknLCAnYWxsb3dOdWxsJywgJ3ZhbHVlJywgJ25hbWUnLCAnY2hlY2tlZCcsXHJcbiAgXSxcclxuICBvdXRwdXRzOiBbXHJcbiAgICAndmFsdWVDaGFuZ2UnLFxyXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcclxuICAgICdvbkJsdXInLFxyXG4gICAgJ29uRm9jdXMnLFxyXG4gICAgJ3ZhbHVlQ2hhbmdlJywgJ29uVmFsdWVDaGFuZ2VkJyxcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDogeyBjbGFzczogJ2F4LWVkaXRvci1jb250YWluZXIgYXgtZHJvcC1kb3duJyB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhUaW1lQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dEJveE1peGluIHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKVxyXG4gIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICBwcml2YXRlIF9taW5WYWx1ZTogRGF0ZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgbWluVmFsdWUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWluVmFsdWU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgbWluVmFsdWUodjogRGF0ZSkge1xyXG4gICAgdGhpcy5fbWluVmFsdWUgPSB2O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbWF4VmFsdWU6IERhdGU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IG1heFZhbHVlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heFZhbHVlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IG1heFZhbHVlKHY6IERhdGUpIHtcclxuICAgIHRoaXMuX21heFZhbHVlID0gdjtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGZvcm1hdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBwcml2YXRlIF9mb3JtYXQ6IEFYX1RJTUVfRk9STUFUID0gJ0hIOm1tJztcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgZm9ybWF0KCk6IEFYX1RJTUVfRk9STUFUIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtYXQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgZm9ybWF0KHY6IEFYX1RJTUVfRk9STUFUKSB7XHJcbiAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICBuYW1lOiAnZm9ybWF0JyxcclxuICAgICAgdmFsdWU6IHYsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkaXNwbGF5VGV4dENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBwcml2YXRlIF9kaXNwbGF5VGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBkaXNwbGF5VGV4dCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlUZXh0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBkaXNwbGF5VGV4dCh2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2Rpc3BsYXlUZXh0ID0gdjtcclxuICAgIHRoaXMuZGlzcGxheVRleHRDaGFuZ2UuZW1pdCh2KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICBAaWdub3JlXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIF9tYXNrT2JqOiBJTWFzay5NYXNrZWRQYXR0ZXJuO1xyXG5cclxuICBAVmlld0NoaWxkKElNYXNrRGlyZWN0aXZlKVxyXG4gIHByaXZhdGUgX21hc2tEaXJlY3RpdmU6IElNYXNrRGlyZWN0aXZlPElNYXNrLk1hc2tlZE51bWJlcj47XHJcblxyXG4gIC8qKlxyXG4gICAqICBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG4gIH1cclxuXHJcbiAgb25WaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm9uVmlld0luaXQoKTtcclxuICAgIHRoaXMuX3VwZGF0ZU1hc2soKTtcclxuICB9XHJcblxyXG4gIF9vblZhbHVlQ2hhbmdlZChvbGRWYWx1ZT86IGFueSwgbmV3VmFsdWU/OiBhbnkpIHtcclxuICAgIHRoaXMuX3VwZGF0ZVRleHQoKTtcclxuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZVZhbHVlKCk7XHJcbiAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVDb250cm9sKCk7XHJcbiAgfVxyXG5cclxuICBfdXBkYXRlVGV4dCgpIHtcclxuICAgIHRoaXMuZGlzcGxheVRleHQgPSB0aGlzLnZhbHVlXHJcbiAgICAgID8gQVhEYXRlVGltZS5jb252ZXJ0KHRoaXMudmFsdWUpLmZvcm1hdCh0aGlzLmZvcm1hdClcclxuICAgICAgOiAnJztcclxuICB9XHJcblxyXG4gIF9vbk9wdGlvbkNoYW5nZWQob3B0aW9uOiBBWENvbXBvbmVudE9wdGlvbkNoYW5nZWQpOiB2b2lkIHtcclxuICAgIHN1cGVyLl9vbk9wdGlvbkNoYW5nZWQob3B0aW9uKTtcclxuICAgIHRoaXMuX3VwZGF0ZU1hc2soKTtcclxuICB9XHJcblxyXG4gIGZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKClcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIF91cGRhdGVNYXNrKCkge1xyXG4gICAgaWYgKCF0aGlzLl9tYXNrT2JqKSB7XHJcbiAgICAgIHRoaXMuX21hc2tPYmogPSBJTWFzay5jcmVhdGVNYXNrKHtcclxuICAgICAgICBtYXNrOiB0aGlzLmZvcm1hdCxcclxuICAgICAgICBsYXp5OiBmYWxzZSxcclxuICAgICAgICBhdXRvZml4OiB0cnVlLFxyXG4gICAgICAgIG92ZXJ3cml0ZTogdHJ1ZSxcclxuICAgICAgICBibG9ja3M6IHtcclxuICAgICAgICAgIEhIOiB7XHJcbiAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxyXG4gICAgICAgICAgICBmcm9tOiAwLFxyXG4gICAgICAgICAgICB0bzogMjMsXHJcbiAgICAgICAgICAgIG1heExlbmd0aDogMixcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnMCcsXHJcbiAgICAgICAgICAgIGF1dG9maXg6ICdwYWQnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG1tOiB7XHJcbiAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxyXG4gICAgICAgICAgICBmcm9tOiAwLFxyXG4gICAgICAgICAgICB0bzogNTksXHJcbiAgICAgICAgICAgIG1heExlbmd0aDogMixcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnMCcsXHJcbiAgICAgICAgICAgIGF1dG9maXg6ICdwYWQnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHNzOiB7XHJcbiAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxyXG4gICAgICAgICAgICBmcm9tOiAwLFxyXG4gICAgICAgICAgICB0bzogNTksXHJcbiAgICAgICAgICAgIG1heExlbmd0aDogMixcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnMCcsXHJcbiAgICAgICAgICAgIGF1dG9maXg6ICdwYWQnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21hc2tPYmoudXBkYXRlT3B0aW9ucyh7XHJcbiAgICAgICAgbWFzazogdGhpcy5mb3JtYXQsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlVmFsdWUoKTtcclxuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZUNvbnRyb2woKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVPbktleWRvd25FdmVudChlOiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBkZWJ1Z2dlclxyXG4gICAgY29uc3QgaWdub3JlID0gKCkgPT4ge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IG51bXM6IHN0cmluZ1tdID0gQXJyYXkoMTApXHJcbiAgICAgIC5maWxsKDApXHJcbiAgICAgIC5tYXAoKHYsIGkpID0+IGkudG9TdHJpbmcoKSk7XHJcbiAgICBjb25zdCBjaGFyczogc3RyaW5nW10gPSBbXHJcbiAgICAgICdCYWNrc3BhY2UnLFxyXG4gICAgICAnQXJyb3dEb3duJyxcclxuICAgICAgJ0Fycm93VXAnLFxyXG4gICAgICAnQXJyb3dSaWdodCcsXHJcbiAgICAgICdBcnJvd0xlZnQnLFxyXG4gICAgICAnVGFiJyxcclxuICAgICAgJ0VudGVyJyxcclxuICAgIF07XHJcbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCBrZXkgPSBlLmtleTtcclxuICAgIGNvbnN0IHZhbFN0ciA9IGlucHV0LnZhbHVlO1xyXG4gICAgY29uc3Qgc1N0YXJ0ID0gaW5wdXQuc2VsZWN0aW9uU3RhcnQgfHwgMDtcclxuICAgIGNvbnN0IHNFbmQgPSBpbnB1dC5zZWxlY3Rpb25FbmQgfHwgMDtcclxuICAgIGNvbnN0IGRhdGVWYWwgPSBuZXcgQVhEYXRlVGltZSh0aGlzLnZhbHVlKTtcclxuICAgIC8vXHJcbiAgICBjb25zdCByZSA9IC9bYS16QS1aMC05XSsvZ2k7XHJcbiAgICBjb25zdCBwYXJ0cyA9IEFycmF5LmZyb20odGhpcy5mb3JtYXQubWF0Y2hBbGwocmUpKTtcclxuICAgIGNvbnN0IHdvcmQgPSB2YWxTdHIuc3Vic3RyaW5nKHNTdGFydCwgc0VuZCk7XHJcbiAgICBjb25zdCBwYXJ0ID0gcGFydHMuZmluZCgoYzogYW55KSA9PiBjLmluZGV4ID49IHNTdGFydCk7XHJcbiAgICBjb25zdCBuZXh0ID0gQXJyYXkuZnJvbSh2YWxTdHIuc3Vic3RyKHNFbmQpLm1hdGNoQWxsKHJlKSk7XHJcbiAgICBjb25zdCBwcmV2ID0gQXJyYXkuZnJvbSh2YWxTdHIuc3Vic3RyaW5nKDAsIHNTdGFydCkubWF0Y2hBbGwocmUpKTtcclxuICAgIC8vY29uc3QgcGFydCA9IHBhcnRzW0FycmF5LmZyb20odmFsU3RyLm1hdGNoQWxsKHJlKSkuZmluZEluZGV4KGMgPT4gY1swXSA9PSB3b3JkKV07XHJcbiAgICAvL1xyXG5cclxuICAgIGNvbnN0IGdvTmV4dCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCwgc0VuZCArIChuZXh0WzBdPy5pbmRleCB8fCAwKSk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgZ29QcmV2ID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0LCBwcmV2W3ByZXYubGVuZ3RoIC0gMV0/LmluZGV4KTtcclxuICAgIH07XHJcblxyXG4gICAgLy9cclxuICAgIGlmIChlLmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGUua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xyXG4gICAgICBpZ25vcmUoKTtcclxuICAgICAgZS5rZXkgPT09ICdBcnJvd1JpZ2h0JyA/IGdvTmV4dCgpIDogZ29QcmV2KCk7XHJcbiAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcgfHwgZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIGlmIChlLmN0cmxLZXkgJiYgZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgICAgLy90aGlzLm9wZW4oKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBzaWduID0gZS5rZXkgPT09ICdBcnJvd1VwJyA/ICsxIDogLTE7XHJcbiAgICAgICAgaWYgKHBhcnQpIHtcclxuICAgICAgICAgIHN3aXRjaCAocGFydFswXSkge1xyXG4gICAgICAgICAgICBjYXNlICdoaCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxyXG4gICAgICAgICAgICBjYXNlICdISCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ0gnOlxyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsLmFkZCgnaG91cicsIHNpZ24pLmRhdGU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcclxuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZVZhbC5hZGQoJ21pbnV0ZScsIHNpZ24pLmRhdGU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcclxuICAgICAgICAgICAgY2FzZSAnU1MnOlxyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsLmFkZCgnc2Vjb25kJywgc2lnbikuZGF0ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0LCBzU3RhcnQpO1xyXG4gICAgICAgICAgfSwgMTApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZ25vcmUoKTtcclxuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT0gJ0JhY2tzcGFjZScpIHtcclxuICAgICAgLy8gaWYgKHRoaXMuYWxsb3dOdWxsKSB7XHJcbiAgICAgIC8vICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgLy8gfVxyXG4gICAgICAvLyBpZ25vcmUoKTtcclxuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT0gJ1RhYicpIHtcclxuICAgICAgaWYgKHNFbmQgPCB2YWxTdHIubGVuZ3RoICYmICFlLnNoaWZ0S2V5KSB7XHJcbiAgICAgICAgZ29OZXh0KCk7XHJcbiAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoc1N0YXJ0ICE9IDAgJiYgZS5zaGlmdEtleSkge1xyXG4gICAgICAgIGdvUHJldigpO1xyXG4gICAgICAgIGlnbm9yZSgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBjb25zdCBrZXlzID0ge1xyXG4gICAgICAvLyAgICAgaDoge1xyXG4gICAgICAvLyAgICAgICAgIHY6IC9eWzAtOV0kfF5bMV1bMC0yXSQvLFxyXG4gICAgICAvLyAgICAgICAgIHA6ICcwJ1xyXG4gICAgICAvLyAgICAgfSxcclxuICAgICAgLy8gICAgIEg6IHtcclxuICAgICAgLy8gICAgICAgICB2OiAvXlswLTldJHxeMVswLTldJHwyWzAtM10kLyxcclxuICAgICAgLy8gICAgICAgICBwOiAnMCdcclxuICAgICAgLy8gICAgIH0sXHJcbiAgICAgIC8vICAgICBtOiB7XHJcbiAgICAgIC8vICAgICAgICAgdjogL15bMC05XSR8XlsxLTVdWzAtOV0kLyxcclxuICAgICAgLy8gICAgICAgICBwOiAnMCdcclxuICAgICAgLy8gICAgIH1cclxuICAgICAgLy8gfVxyXG4gICAgICAvLyAvLyBjb25zdCByZSA9IG5ldyBSZWdFeHAoXy5vcmRlckJ5KE9iamVjdC5rZXlzKGtleXMpLCBjID0+IGMubGVuZ3RoLCBbJ2Rlc2MnXSkuam9pbihcInxcIiksIFwiZ2lcIik7XHJcbiAgICAgIC8vIC8vIHJldHVybiBmb3JtYXQucmVwbGFjZShyZSwgZnVuY3Rpb24gKG1hdGNoZWQpIHtcclxuICAgICAgLy8gLy8gICByZXR1cm4ga2V5c1ttYXRjaGVkXSgpO1xyXG4gICAgICAvLyAvLyB9KTtcclxuICAgICAgLy8gY29uc3QgdCA9IGtleXNbcGFydFswXV07XHJcbiAgICAgIC8vIGlmICghdC52LnRlc3Qoa2V5KSkge1xyXG4gICAgICAvLyAgICAgaWdub3JlKCk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgLy8gZWxzZSB7XHJcbiAgICAgIC8vICAgICB0aGlzLl91cGRhdGVUZXh0KClcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG4gICAgLy8gc3VwZXIuX2VtaXRPbktleWRvd25FdmVudChlKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVLZXlVcEV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIC8vIGNvbnN0IGlucHV0ID0gKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpO1xyXG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCk7XHJcbiAgICAvLyB9LCA3MDApO1xyXG4gIH1cclxuXHJcbiAgX2VtaXRPbkZvY3VzRXZlbnQoZTogRm9jdXNFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5wdXQgPSBlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCk7XHJcbiAgICBzdXBlci5fZW1pdE9uRm9jdXNFdmVudChlKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVPbklucHV0Q2xpY2tFdmVudChlOiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0KTtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWdobGlnaHRQYXJ0KGlucHV0OiBIVE1MSW5wdXRFbGVtZW50LCBwb3M/OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gQVhTdHJpbmdVdGlsLmdldFdvcmRCb3VuZHNBdFBvc2l0aW9uKFxyXG4gICAgICBpbnB1dC52YWx1ZSxcclxuICAgICAgcG9zICE9IG51bGwgPyBwb3MgOiBpbnB1dC5zZWxlY3Rpb25TdGFydCB8fCAwXHJcbiAgICApO1xyXG4gICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj5cclxuPC9uZy1jb250ZW50PlxyXG48aW5wdXQgI2lucHV0IGNsYXNzPVwiYXgtaW5wdXRcIiBcclxuICAgIFtpbWFza109XCJfbWFza09ialwiIFxyXG4gICAgW3VubWFza109XCJmYWxzZVwiICBcclxuICAgIHR5cGU9XCJ0ZXh0XCIgXHJcbiAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBcclxuICAgIFtjbGFzcy5heC1zdGF0ZS1yZWFkb25seV09XCJyZWFkb25seVwiIFxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiIFxyXG4gICAgW3RhYmluZGV4XT1cInRhYkluZGV4XCIgXHJcbiAgICBbbmdNb2RlbF09XCJkaXNwbGF5VGV4dFwiIFxyXG4gICAgKG1vdXNldXApPVwiX2hhbmRsZU9uSW5wdXRDbGlja0V2ZW50KCRldmVudClcIlxyXG4gICAgKGZvY3VzKT1cIl9lbWl0T25Gb2N1c0V2ZW50KCRldmVudClcIlxyXG4gICAgKGJsdXIpPVwiX2VtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCJcclxuICAgIChrZXl1cCk9XCJfaGFuZGxlS2V5VXBFdmVudCgkZXZlbnQpXCIgXHJcbiAgICAoa2V5ZG93bik9XCJfaGFuZGxlT25LZXlkb3duRXZlbnQoJGV2ZW50KVwiIFxyXG4gICAgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XHJcbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPlxyXG48L25nLWNvbnRlbnQ+XHJcbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXZhbGlkYXRpb24tcnVsZVwiPlxyXG48L25nLWNvbnRlbnQ+Il19
|
1
|
+
import { AXStringUtil } from '@acorex/core/utils';
|
2
|
+
import { AXDateTime } from '@acorex/core/dateTime';
|
3
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, EventEmitter, Output, Input, ViewChild, } from '@angular/core';
|
4
|
+
import IMask from 'imask';
|
5
|
+
import { IMaskDirective } from 'angular-imask';
|
6
|
+
import { AXBaseTextBoxMixin } from '@acorex/components/mixin';
|
7
|
+
import * as i0 from "@angular/core";
|
8
|
+
import * as i1 from "@angular/forms";
|
9
|
+
import * as i2 from "angular-imask";
|
10
|
+
/**
|
11
|
+
* The Button is a component which detects user interaction and triggers a corresponding event
|
12
|
+
*
|
13
|
+
* @category Components
|
14
|
+
*/
|
15
|
+
class AXTimeBoxComponent extends AXBaseTextBoxMixin {
|
16
|
+
cdr;
|
17
|
+
input;
|
18
|
+
_minValue;
|
19
|
+
get minValue() {
|
20
|
+
return this._minValue;
|
21
|
+
}
|
22
|
+
set minValue(v) {
|
23
|
+
this._minValue = v;
|
24
|
+
}
|
25
|
+
_maxValue;
|
26
|
+
get maxValue() {
|
27
|
+
return this._maxValue;
|
28
|
+
}
|
29
|
+
set maxValue(v) {
|
30
|
+
this._maxValue = v;
|
31
|
+
}
|
32
|
+
formatChange = new EventEmitter();
|
33
|
+
_format = 'HH:mm';
|
34
|
+
get format() {
|
35
|
+
return this._format;
|
36
|
+
}
|
37
|
+
set format(v) {
|
38
|
+
this._setOption({
|
39
|
+
name: 'format',
|
40
|
+
value: v,
|
41
|
+
});
|
42
|
+
}
|
43
|
+
displayTextChange = new EventEmitter();
|
44
|
+
_displayText = '';
|
45
|
+
get displayText() {
|
46
|
+
return this._displayText;
|
47
|
+
}
|
48
|
+
set displayText(v) {
|
49
|
+
this._displayText = v;
|
50
|
+
this.displayTextChange.emit(v);
|
51
|
+
}
|
52
|
+
/**
|
53
|
+
* @ignore
|
54
|
+
*/
|
55
|
+
_maskObj;
|
56
|
+
_maskDirective;
|
57
|
+
/**
|
58
|
+
* @ignore
|
59
|
+
*/
|
60
|
+
constructor(elementRef, cdr) {
|
61
|
+
super(elementRef, cdr);
|
62
|
+
this.cdr = cdr;
|
63
|
+
}
|
64
|
+
onViewInit() {
|
65
|
+
super.onViewInit();
|
66
|
+
this._updateMask();
|
67
|
+
}
|
68
|
+
_onValueChanged(oldValue, newValue) {
|
69
|
+
this._updateText();
|
70
|
+
this._maskDirective?.maskRef?.updateValue();
|
71
|
+
this._maskDirective?.maskRef?.updateControl();
|
72
|
+
}
|
73
|
+
_updateText() {
|
74
|
+
this.displayText = this.value
|
75
|
+
? AXDateTime.convert(this.value).format(this.format)
|
76
|
+
: '';
|
77
|
+
}
|
78
|
+
_onOptionChanged(option) {
|
79
|
+
super._onOptionChanged(option);
|
80
|
+
this._updateMask();
|
81
|
+
}
|
82
|
+
focus() {
|
83
|
+
this.input.nativeElement.focus();
|
84
|
+
}
|
85
|
+
_updateMask() {
|
86
|
+
if (!this._maskObj) {
|
87
|
+
this._maskObj = IMask.createMask({
|
88
|
+
mask: this.format,
|
89
|
+
lazy: false,
|
90
|
+
autofix: true,
|
91
|
+
overwrite: true,
|
92
|
+
blocks: {
|
93
|
+
HH: {
|
94
|
+
mask: IMask.MaskedRange,
|
95
|
+
from: 0,
|
96
|
+
to: 23,
|
97
|
+
maxLength: 2,
|
98
|
+
placeholderChar: '0',
|
99
|
+
autofix: 'pad',
|
100
|
+
},
|
101
|
+
mm: {
|
102
|
+
mask: IMask.MaskedRange,
|
103
|
+
from: 0,
|
104
|
+
to: 59,
|
105
|
+
maxLength: 2,
|
106
|
+
placeholderChar: '0',
|
107
|
+
autofix: 'pad',
|
108
|
+
},
|
109
|
+
ss: {
|
110
|
+
mask: IMask.MaskedRange,
|
111
|
+
from: 0,
|
112
|
+
to: 59,
|
113
|
+
maxLength: 2,
|
114
|
+
placeholderChar: '0',
|
115
|
+
autofix: 'pad',
|
116
|
+
},
|
117
|
+
},
|
118
|
+
});
|
119
|
+
}
|
120
|
+
else {
|
121
|
+
this._maskObj.updateOptions({
|
122
|
+
mask: this.format,
|
123
|
+
});
|
124
|
+
}
|
125
|
+
this._maskDirective?.maskRef?.updateValue();
|
126
|
+
this._maskDirective?.maskRef?.updateControl();
|
127
|
+
}
|
128
|
+
_handleOnKeydownEvent(e) {
|
129
|
+
debugger;
|
130
|
+
const ignore = () => {
|
131
|
+
e.preventDefault();
|
132
|
+
e.stopPropagation();
|
133
|
+
};
|
134
|
+
const nums = Array(10)
|
135
|
+
.fill(0)
|
136
|
+
.map((v, i) => i.toString());
|
137
|
+
const chars = [
|
138
|
+
'Backspace',
|
139
|
+
'ArrowDown',
|
140
|
+
'ArrowUp',
|
141
|
+
'ArrowRight',
|
142
|
+
'ArrowLeft',
|
143
|
+
'Tab',
|
144
|
+
'Enter',
|
145
|
+
];
|
146
|
+
const input = e.target;
|
147
|
+
const key = e.key;
|
148
|
+
const valStr = input.value;
|
149
|
+
const sStart = input.selectionStart || 0;
|
150
|
+
const sEnd = input.selectionEnd || 0;
|
151
|
+
const dateVal = new AXDateTime(this.value);
|
152
|
+
//
|
153
|
+
const re = /[a-zA-Z0-9]+/gi;
|
154
|
+
const parts = Array.from(this.format.matchAll(re));
|
155
|
+
const word = valStr.substring(sStart, sEnd);
|
156
|
+
const part = parts.find((c) => c.index >= sStart);
|
157
|
+
const next = Array.from(valStr.substr(sEnd).matchAll(re));
|
158
|
+
const prev = Array.from(valStr.substring(0, sStart).matchAll(re));
|
159
|
+
//const part = parts[Array.from(valStr.matchAll(re)).findIndex(c => c[0] == word)];
|
160
|
+
//
|
161
|
+
const goNext = () => {
|
162
|
+
this._highlightPart(input, sEnd + (next[0]?.index || 0));
|
163
|
+
};
|
164
|
+
const goPrev = () => {
|
165
|
+
this._highlightPart(input, prev[prev.length - 1]?.index);
|
166
|
+
};
|
167
|
+
//
|
168
|
+
if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {
|
169
|
+
ignore();
|
170
|
+
e.key === 'ArrowRight' ? goNext() : goPrev();
|
171
|
+
}
|
172
|
+
else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
|
173
|
+
if (e.ctrlKey && e.key === 'ArrowDown') {
|
174
|
+
//this.open();
|
175
|
+
}
|
176
|
+
else {
|
177
|
+
const sign = e.key === 'ArrowUp' ? +1 : -1;
|
178
|
+
if (part) {
|
179
|
+
switch (part[0]) {
|
180
|
+
case 'hh':
|
181
|
+
case 'h':
|
182
|
+
case 'HH':
|
183
|
+
case 'H':
|
184
|
+
this.value = dateVal.add('hour', sign).date;
|
185
|
+
break;
|
186
|
+
case 'mm':
|
187
|
+
this.value = dateVal.add('minute', sign).date;
|
188
|
+
break;
|
189
|
+
case 'ss':
|
190
|
+
case 'SS':
|
191
|
+
this.value = dateVal.add('second', sign).date;
|
192
|
+
break;
|
193
|
+
}
|
194
|
+
setTimeout(() => {
|
195
|
+
this._highlightPart(input, sStart);
|
196
|
+
}, 10);
|
197
|
+
}
|
198
|
+
}
|
199
|
+
ignore();
|
200
|
+
}
|
201
|
+
else if (e.key == 'Backspace') {
|
202
|
+
// if (this.allowNull) {
|
203
|
+
// this.value = null;
|
204
|
+
// }
|
205
|
+
// ignore();
|
206
|
+
}
|
207
|
+
else if (e.key == 'Tab') {
|
208
|
+
if (sEnd < valStr.length && !e.shiftKey) {
|
209
|
+
goNext();
|
210
|
+
ignore();
|
211
|
+
}
|
212
|
+
else if (sStart != 0 && e.shiftKey) {
|
213
|
+
goPrev();
|
214
|
+
ignore();
|
215
|
+
}
|
216
|
+
}
|
217
|
+
else {
|
218
|
+
// const keys = {
|
219
|
+
// h: {
|
220
|
+
// v: /^[0-9]$|^[1][0-2]$/,
|
221
|
+
// p: '0'
|
222
|
+
// },
|
223
|
+
// H: {
|
224
|
+
// v: /^[0-9]$|^1[0-9]$|2[0-3]$/,
|
225
|
+
// p: '0'
|
226
|
+
// },
|
227
|
+
// m: {
|
228
|
+
// v: /^[0-9]$|^[1-5][0-9]$/,
|
229
|
+
// p: '0'
|
230
|
+
// }
|
231
|
+
// }
|
232
|
+
// // const re = new RegExp(_.orderBy(Object.keys(keys), c => c.length, ['desc']).join("|"), "gi");
|
233
|
+
// // return format.replace(re, function (matched) {
|
234
|
+
// // return keys[matched]();
|
235
|
+
// // });
|
236
|
+
// const t = keys[part[0]];
|
237
|
+
// if (!t.v.test(key)) {
|
238
|
+
// ignore();
|
239
|
+
// }
|
240
|
+
// else {
|
241
|
+
// this._updateText()
|
242
|
+
// }
|
243
|
+
}
|
244
|
+
// super._emitOnKeydownEvent(e);
|
245
|
+
}
|
246
|
+
_handleKeyUpEvent(e) {
|
247
|
+
// const input = (e.target as HTMLInputElement);
|
248
|
+
// setTimeout(() => {
|
249
|
+
// this._highlightPart(input);
|
250
|
+
// }, 700);
|
251
|
+
}
|
252
|
+
_emitOnFocusEvent(e) {
|
253
|
+
const input = e.target;
|
254
|
+
this._highlightPart(input);
|
255
|
+
super._emitOnFocusEvent(e);
|
256
|
+
}
|
257
|
+
_handleOnInputClickEvent(e) {
|
258
|
+
const input = e.target;
|
259
|
+
this._highlightPart(input);
|
260
|
+
e.preventDefault();
|
261
|
+
e.stopPropagation();
|
262
|
+
}
|
263
|
+
_highlightPart(input, pos) {
|
264
|
+
const { start, end } = AXStringUtil.getWordBoundsAtPosition(input.value, pos != null ? pos : input.selectionStart || 0);
|
265
|
+
input.setSelectionRange(start, end);
|
266
|
+
}
|
267
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXTimeBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
268
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: AXTimeBoxComponent, selector: "ax-time-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", type: "type", autoComplete: "autoComplete", name: "name", checked: "checked", minValue: "minValue", maxValue: "maxValue", format: "format", displayText: "displayText" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", formatChange: "formatChange", displayTextChange: "displayTextChange" }, host: { classAttribute: "ax-editor-container ax-drop-down" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "_maskDirective", first: true, predicate: IMaskDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input #input class=\"ax-input\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"false\" \r\n type=\"text\" \r\n [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\" \r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [ngModel]=\"displayText\" \r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keyup)=\"_handleKeyUpEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\" \r\n autocomplete=\"off\">\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>", dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
269
|
+
}
|
270
|
+
export { AXTimeBoxComponent };
|
271
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXTimeBoxComponent, decorators: [{
|
272
|
+
type: Component,
|
273
|
+
args: [{ selector: 'ax-time-box', inputs: [
|
274
|
+
'disabled',
|
275
|
+
'readonly',
|
276
|
+
'tabIndex',
|
277
|
+
'size',
|
278
|
+
'value',
|
279
|
+
'placeholder', 'maxLength', 'allowNull', 'type', 'autoComplete', 'readonly', 'allowNull', 'value', 'name', 'checked',
|
280
|
+
], outputs: [
|
281
|
+
'valueChange',
|
282
|
+
'onValueChanged',
|
283
|
+
'onBlur',
|
284
|
+
'onFocus',
|
285
|
+
'valueChange', 'onValueChanged',
|
286
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-editor-container ax-drop-down' }, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input #input class=\"ax-input\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"false\" \r\n type=\"text\" \r\n [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\" \r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [ngModel]=\"displayText\" \r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keyup)=\"_handleKeyUpEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\" \r\n autocomplete=\"off\">\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>" }]
|
287
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { input: [{
|
288
|
+
type: ViewChild,
|
289
|
+
args: ['input']
|
290
|
+
}], minValue: [{
|
291
|
+
type: Input
|
292
|
+
}], maxValue: [{
|
293
|
+
type: Input
|
294
|
+
}], formatChange: [{
|
295
|
+
type: Output
|
296
|
+
}], format: [{
|
297
|
+
type: Input
|
298
|
+
}], displayTextChange: [{
|
299
|
+
type: Output
|
300
|
+
}], displayText: [{
|
301
|
+
type: Input
|
302
|
+
}], _maskDirective: [{
|
303
|
+
type: ViewChild,
|
304
|
+
args: [IMaskDirective]
|
305
|
+
}] } });
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvdGltZS1ib3gvc3JjL3RpbWUtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3RpbWUtYm94L3NyYy90aW1lLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUd2QixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUE0QixNQUFNLDBCQUEwQixDQUFDOzs7O0FBSXhGOzs7O0dBSUc7QUFDSCxNQXNCYSxrQkFBbUIsU0FBUSxrQkFBa0I7SUErRFo7SUE1RDVDLEtBQUssQ0FBK0I7SUFFNUIsU0FBUyxDQUFPO0lBQ3hCLElBQ1csUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQVcsUUFBUSxDQUFDLENBQU87UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVPLFNBQVMsQ0FBTztJQUN4QixJQUNXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFXLFFBQVEsQ0FBQyxDQUFPO1FBQ3pCLElBQUksQ0FB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O3dCQUNWLE1BQU07d0JBQ04sT0FBTzt3QkFDUCxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTO3FCQUNySCxXQUNRO3dCQUNQLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixRQUFRO3dCQUNSLFNBQVM7d0JBQ1QsYUFBYSxFQUFFLGdCQUFnQjtxQkFDaEMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsa0NBQWtDLEVBQUU7aUlBS25ELEtBQUs7c0JBREosU0FBUzt1QkFBQyxPQUFPO2dCQUtQLFFBQVE7c0JBRGxCLEtBQUs7Z0JBVUssUUFBUTtzQkFEbEIsS0FBSztnQkFTTixZQUFZO3NCQURYLE1BQU07Z0JBS0ksTUFBTTtzQkFEaEIsS0FBSztnQkFZQyxpQkFBaUI7c0JBRHZCLE1BQU07Z0JBS0ksV0FBVztzQkFEckIsS0FBSztnQkFnQkUsY0FBYztzQkFEckIsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhTdHJpbmdVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcclxuaW1wb3J0IHsgQVhEYXRlVGltZSB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlVGltZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE91dHB1dCxcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBJTWFzayBmcm9tICdpbWFzayc7XHJcbmltcG9ydCB7IElNYXNrRGlyZWN0aXZlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XHJcbmltcG9ydCB7IEFYQmFzZVRleHRCb3hNaXhpbiwgQVhDb21wb25lbnRPcHRpb25DaGFuZ2VkIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcclxuXHJcblxyXG5leHBvcnQgdHlwZSBBWF9USU1FX0ZPUk1BVCA9ICdISDptbScgfCAnSEg6bW06c3MnO1xyXG4vKipcclxuICogVGhlIEJ1dHRvbiBpcyBhIGNvbXBvbmVudCB3aGljaCBkZXRlY3RzIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRyaWdnZXJzIGEgY29ycmVzcG9uZGluZyBldmVudFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC10aW1lLWJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBpbnB1dHM6IFtcclxuICAgICdkaXNhYmxlZCcsXHJcbiAgICAncmVhZG9ubHknLFxyXG4gICAgJ3RhYkluZGV4JyxcclxuICAgICdzaXplJyxcclxuICAgICd2YWx1ZScsXHJcbiAgICAncGxhY2Vob2xkZXInLCAnbWF4TGVuZ3RoJywgJ2FsbG93TnVsbCcsICd0eXBlJywgJ2F1dG9Db21wbGV0ZScsICdyZWFkb25seScsICdhbGxvd051bGwnLCAndmFsdWUnLCAnbmFtZScsICdjaGVja2VkJyxcclxuICBdLFxyXG4gIG91dHB1dHM6IFtcclxuICAgICd2YWx1ZUNoYW5nZScsXHJcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxyXG4gICAgJ29uQmx1cicsXHJcbiAgICAnb25Gb2N1cycsXHJcbiAgICAndmFsdWVDaGFuZ2UnLCAnb25WYWx1ZUNoYW5nZWQnLFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7IGNsYXNzOiAnYXgtZWRpdG9yLWNvbnRhaW5lciBheC1kcm9wLWRvd24nIH0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFRpbWVCb3hDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VUZXh0Qm94TWl4aW4ge1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dCcpXHJcbiAgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gIHByaXZhdGUgX21pblZhbHVlOiBEYXRlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBtaW5WYWx1ZSgpOiBEYXRlIHtcclxuICAgIHJldHVybiB0aGlzLl9taW5WYWx1ZTtcclxuICB9XHJcbiAgcHVibGljIHNldCBtaW5WYWx1ZSh2OiBEYXRlKSB7XHJcbiAgICB0aGlzLl9taW5WYWx1ZSA9IHY7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9tYXhWYWx1ZTogRGF0ZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgbWF4VmFsdWUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4VmFsdWU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgbWF4VmFsdWUodjogRGF0ZSkge1xyXG4gICAgdGhpcy5fbWF4VmFsdWUgPSB2O1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZm9ybWF0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHByaXZhdGUgX2Zvcm1hdDogQVhfVElNRV9GT1JNQVQgPSAnSEg6bW0nO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBmb3JtYXQoKTogQVhfVElNRV9GT1JNQVQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1hdDtcclxuICB9XHJcbiAgcHVibGljIHNldCBmb3JtYXQodjogQVhfVElNRV9GT1JNQVQpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6ICdmb3JtYXQnLFxyXG4gICAgICB2YWx1ZTogdixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGRpc3BsYXlUZXh0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIHByaXZhdGUgX2Rpc3BsYXlUZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IGRpc3BsYXlUZXh0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheVRleHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IGRpc3BsYXlUZXh0KHY6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZGlzcGxheVRleHQgPSB2O1xyXG4gICAgdGhpcy5kaXNwbGF5VGV4dENoYW5nZS5lbWl0KHYpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIEBpZ25vcmVcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgX21hc2tPYmo6IElNYXNrLk1hc2tlZFBhdHRlcm47XHJcblxyXG4gIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUpXHJcbiAgcHJpdmF0ZSBfbWFza0RpcmVjdGl2ZTogSU1hc2tEaXJlY3RpdmU8SU1hc2suTWFza2VkTnVtYmVyPjtcclxuXHJcbiAgLyoqXHJcbiAgICogIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XHJcbiAgfVxyXG5cclxuICBvblZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIub25WaWV3SW5pdCgpO1xyXG4gICAgdGhpcy5fdXBkYXRlTWFzaygpO1xyXG4gIH1cclxuXHJcbiAgX29uVmFsdWVDaGFuZ2VkKG9sZFZhbHVlPzogYW55LCBuZXdWYWx1ZT86IGFueSkge1xyXG4gICAgdGhpcy5fdXBkYXRlVGV4dCgpO1xyXG4gICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlVmFsdWUoKTtcclxuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZUNvbnRyb2woKTtcclxuICB9XHJcblxyXG4gIF91cGRhdGVUZXh0KCkge1xyXG4gICAgdGhpcy5kaXNwbGF5VGV4dCA9IHRoaXMudmFsdWVcclxuICAgICAgPyBBWERhdGVUaW1lLmNvbnZlcnQodGhpcy52YWx1ZSkuZm9ybWF0KHRoaXMuZm9ybWF0KVxyXG4gICAgICA6ICcnO1xyXG4gIH1cclxuXHJcbiAgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCk6IHZvaWQge1xyXG4gICAgc3VwZXIuX29uT3B0aW9uQ2hhbmdlZChvcHRpb24pO1xyXG4gICAgdGhpcy5fdXBkYXRlTWFzaygpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZU1hc2soKSB7XHJcbiAgICBpZiAoIXRoaXMuX21hc2tPYmopIHtcclxuICAgICAgdGhpcy5fbWFza09iaiA9IElNYXNrLmNyZWF0ZU1hc2soe1xyXG4gICAgICAgIG1hc2s6IHRoaXMuZm9ybWF0LFxyXG4gICAgICAgIGxhenk6IGZhbHNlLFxyXG4gICAgICAgIGF1dG9maXg6IHRydWUsXHJcbiAgICAgICAgb3ZlcndyaXRlOiB0cnVlLFxyXG4gICAgICAgIGJsb2Nrczoge1xyXG4gICAgICAgICAgSEg6IHtcclxuICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXHJcbiAgICAgICAgICAgIGZyb206IDAsXHJcbiAgICAgICAgICAgIHRvOiAyMyxcclxuICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICcwJyxcclxuICAgICAgICAgICAgYXV0b2ZpeDogJ3BhZCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbW06IHtcclxuICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXHJcbiAgICAgICAgICAgIGZyb206IDAsXHJcbiAgICAgICAgICAgIHRvOiA1OSxcclxuICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICcwJyxcclxuICAgICAgICAgICAgYXV0b2ZpeDogJ3BhZCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgc3M6IHtcclxuICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXHJcbiAgICAgICAgICAgIGZyb206IDAsXHJcbiAgICAgICAgICAgIHRvOiA1OSxcclxuICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICcwJyxcclxuICAgICAgICAgICAgYXV0b2ZpeDogJ3BhZCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbWFza09iai51cGRhdGVPcHRpb25zKHtcclxuICAgICAgICBtYXNrOiB0aGlzLmZvcm1hdCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVWYWx1ZSgpO1xyXG4gICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlQ29udHJvbCgpO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZU9uS2V5ZG93bkV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGRlYnVnZ2VyXHJcbiAgICBjb25zdCBpZ25vcmUgPSAoKSA9PiB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgbnVtczogc3RyaW5nW10gPSBBcnJheSgxMClcclxuICAgICAgLmZpbGwoMClcclxuICAgICAgLm1hcCgodiwgaSkgPT4gaS50b1N0cmluZygpKTtcclxuICAgIGNvbnN0IGNoYXJzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgJ0JhY2tzcGFjZScsXHJcbiAgICAgICdBcnJvd0Rvd24nLFxyXG4gICAgICAnQXJyb3dVcCcsXHJcbiAgICAgICdBcnJvd1JpZ2h0JyxcclxuICAgICAgJ0Fycm93TGVmdCcsXHJcbiAgICAgICdUYWInLFxyXG4gICAgICAnRW50ZXInLFxyXG4gICAgXTtcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IGtleSA9IGUua2V5O1xyXG4gICAgY29uc3QgdmFsU3RyID0gaW5wdXQudmFsdWU7XHJcbiAgICBjb25zdCBzU3RhcnQgPSBpbnB1dC5zZWxlY3Rpb25TdGFydCB8fCAwO1xyXG4gICAgY29uc3Qgc0VuZCA9IGlucHV0LnNlbGVjdGlvbkVuZCB8fCAwO1xyXG4gICAgY29uc3QgZGF0ZVZhbCA9IG5ldyBBWERhdGVUaW1lKHRoaXMudmFsdWUpO1xyXG4gICAgLy9cclxuICAgIGNvbnN0IHJlID0gL1thLXpBLVowLTldKy9naTtcclxuICAgIGNvbnN0IHBhcnRzID0gQXJyYXkuZnJvbSh0aGlzLmZvcm1hdC5tYXRjaEFsbChyZSkpO1xyXG4gICAgY29uc3Qgd29yZCA9IHZhbFN0ci5zdWJzdHJpbmcoc1N0YXJ0LCBzRW5kKTtcclxuICAgIGNvbnN0IHBhcnQgPSBwYXJ0cy5maW5kKChjOiBhbnkpID0+IGMuaW5kZXggPj0gc1N0YXJ0KTtcclxuICAgIGNvbnN0IG5leHQgPSBBcnJheS5mcm9tKHZhbFN0ci5zdWJzdHIoc0VuZCkubWF0Y2hBbGwocmUpKTtcclxuICAgIGNvbnN0IHByZXYgPSBBcnJheS5mcm9tKHZhbFN0ci5zdWJzdHJpbmcoMCwgc1N0YXJ0KS5tYXRjaEFsbChyZSkpO1xyXG4gICAgLy9jb25zdCBwYXJ0ID0gcGFydHNbQXJyYXkuZnJvbSh2YWxTdHIubWF0Y2hBbGwocmUpKS5maW5kSW5kZXgoYyA9PiBjWzBdID09IHdvcmQpXTtcclxuICAgIC8vXHJcblxyXG4gICAgY29uc3QgZ29OZXh0ID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0LCBzRW5kICsgKG5leHRbMF0/LmluZGV4IHx8IDApKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBnb1ByZXYgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2hpZ2hsaWdodFBhcnQoaW5wdXQsIHByZXZbcHJldi5sZW5ndGggLSAxXT8uaW5kZXgpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvL1xyXG4gICAgaWYgKGUua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZS5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XHJcbiAgICAgIGlnbm9yZSgpO1xyXG4gICAgICBlLmtleSA9PT0gJ0Fycm93UmlnaHQnID8gZ29OZXh0KCkgOiBnb1ByZXYoKTtcclxuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgaWYgKGUuY3RybEtleSAmJiBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgICAvL3RoaXMub3BlbigpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHNpZ24gPSBlLmtleSA9PT0gJ0Fycm93VXAnID8gKzEgOiAtMTtcclxuICAgICAgICBpZiAocGFydCkge1xyXG4gICAgICAgICAgc3dpdGNoIChwYXJ0WzBdKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcclxuICAgICAgICAgICAgY2FzZSAnaCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ0hIJzpcclxuICAgICAgICAgICAgY2FzZSAnSCc6XHJcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGVWYWwuYWRkKCdob3VyJywgc2lnbikuZGF0ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbW0nOlxyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsLmFkZCgnbWludXRlJywgc2lnbikuZGF0ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnc3MnOlxyXG4gICAgICAgICAgICBjYXNlICdTUyc6XHJcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGVWYWwuYWRkKCdzZWNvbmQnLCBzaWduKS5kYXRlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodFBhcnQoaW5wdXQsIHNTdGFydCk7XHJcbiAgICAgICAgICB9LCAxMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlnbm9yZSgpO1xyXG4gICAgfSBlbHNlIGlmIChlLmtleSA9PSAnQmFja3NwYWNlJykge1xyXG4gICAgICAvLyBpZiAodGhpcy5hbGxvd051bGwpIHtcclxuICAgICAgLy8gICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIC8vIGlnbm9yZSgpO1xyXG4gICAgfSBlbHNlIGlmIChlLmtleSA9PSAnVGFiJykge1xyXG4gICAgICBpZiAoc0VuZCA8IHZhbFN0ci5sZW5ndGggJiYgIWUuc2hpZnRLZXkpIHtcclxuICAgICAgICBnb05leHQoKTtcclxuICAgICAgICBpZ25vcmUoKTtcclxuICAgICAgfSBlbHNlIGlmIChzU3RhcnQgIT0gMCAmJiBlLnNoaWZ0S2V5KSB7XHJcbiAgICAgICAgZ29QcmV2KCk7XHJcbiAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIGNvbnN0IGtleXMgPSB7XHJcbiAgICAgIC8vICAgICBoOiB7XHJcbiAgICAgIC8vICAgICAgICAgdjogL15bMC05XSR8XlsxXVswLTJdJC8sXHJcbiAgICAgIC8vICAgICAgICAgcDogJzAnXHJcbiAgICAgIC8vICAgICB9LFxyXG4gICAgICAvLyAgICAgSDoge1xyXG4gICAgICAvLyAgICAgICAgIHY6IC9eWzAtOV0kfF4xWzAtOV0kfDJbMC0zXSQvLFxyXG4gICAgICAvLyAgICAgICAgIHA6ICcwJ1xyXG4gICAgICAvLyAgICAgfSxcclxuICAgICAgLy8gICAgIG06IHtcclxuICAgICAgLy8gICAgICAgICB2OiAvXlswLTldJHxeWzEtNV1bMC05XSQvLFxyXG4gICAgICAvLyAgICAgICAgIHA6ICcwJ1xyXG4gICAgICAvLyAgICAgfVxyXG4gICAgICAvLyB9XHJcbiAgICAgIC8vIC8vIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChfLm9yZGVyQnkoT2JqZWN0LmtleXMoa2V5cyksIGMgPT4gYy5sZW5ndGgsIFsnZGVzYyddKS5qb2luKFwifFwiKSwgXCJnaVwiKTtcclxuICAgICAgLy8gLy8gcmV0dXJuIGZvcm1hdC5yZXBsYWNlKHJlLCBmdW5jdGlvbiAobWF0Y2hlZCkge1xyXG4gICAgICAvLyAvLyAgIHJldHVybiBrZXlzW21hdGNoZWRdKCk7XHJcbiAgICAgIC8vIC8vIH0pO1xyXG4gICAgICAvLyBjb25zdCB0ID0ga2V5c1twYXJ0WzBdXTtcclxuICAgICAgLy8gaWYgKCF0LnYudGVzdChrZXkpKSB7XHJcbiAgICAgIC8vICAgICBpZ25vcmUoKTtcclxuICAgICAgLy8gfVxyXG4gICAgICAvLyBlbHNlIHtcclxuICAgICAgLy8gICAgIHRoaXMuX3VwZGF0ZVRleHQoKVxyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcbiAgICAvLyBzdXBlci5fZW1pdE9uS2V5ZG93bkV2ZW50KGUpO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZUtleVVwRXZlbnQoZTogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgLy8gY29uc3QgaW5wdXQgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk7XHJcbiAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgIC8vICAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0KTtcclxuICAgIC8vIH0sIDcwMCk7XHJcbiAgfVxyXG5cclxuICBfZW1pdE9uRm9jdXNFdmVudChlOiBGb2N1c0V2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0KTtcclxuICAgIHN1cGVyLl9lbWl0T25Gb2N1c0V2ZW50KGUpO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZU9uSW5wdXRDbGlja0V2ZW50KGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIHRoaXMuX2hpZ2hsaWdodFBhcnQoaW5wdXQpO1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZ2hsaWdodFBhcnQoaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQsIHBvcz86IG51bWJlcikge1xyXG4gICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBBWFN0cmluZ1V0aWwuZ2V0V29yZEJvdW5kc0F0UG9zaXRpb24oXHJcbiAgICAgIGlucHV0LnZhbHVlLFxyXG4gICAgICBwb3MgIT0gbnVsbCA/IHBvcyA6IGlucHV0LnNlbGVjdGlvblN0YXJ0IHx8IDBcclxuICAgICk7XHJcbiAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPlxyXG48L25nLWNvbnRlbnQ+XHJcbjxpbnB1dCAjaW5wdXQgY2xhc3M9XCJheC1pbnB1dFwiIFxyXG4gICAgW2ltYXNrXT1cIl9tYXNrT2JqXCIgXHJcbiAgICBbdW5tYXNrXT1cImZhbHNlXCIgIFxyXG4gICAgdHlwZT1cInRleHRcIiBcclxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFxyXG4gICAgW2NsYXNzLmF4LXN0YXRlLXJlYWRvbmx5XT1cInJlYWRvbmx5XCIgXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgXHJcbiAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIiBcclxuICAgIFtuZ01vZGVsXT1cImRpc3BsYXlUZXh0XCIgXHJcbiAgICAobW91c2V1cCk9XCJfaGFuZGxlT25JbnB1dENsaWNrRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAoZm9jdXMpPVwiX2VtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAoYmx1cik9XCJfZW1pdE9uQmx1ckV2ZW50KCRldmVudClcIlxyXG4gICAgKGtleXVwKT1cIl9oYW5kbGVLZXlVcEV2ZW50KCRldmVudClcIiBcclxuICAgIChrZXlkb3duKT1cIl9oYW5kbGVPbktleWRvd25FdmVudCgkZXZlbnQpXCIgXHJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+XHJcbjwvbmctY29udGVudD4iXX0=
|