@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
@@ -24,432 +24,432 @@ import { AXBadgeModule } from '@acorex/components/badge';
|
|
24
24
|
import { AXCheckBoxModule } from '@acorex/components/checkbox';
|
25
25
|
import { AXTextBoxModule } from '@acorex/components/textbox';
|
26
26
|
|
27
|
-
/**
|
28
|
-
* The Button is a component which detects user interaction and triggers a corresponding event
|
29
|
-
*
|
30
|
-
* @category Components
|
31
|
-
*/
|
32
|
-
class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin {
|
33
|
-
_elementRef;
|
34
|
-
_cdr;
|
35
|
-
_zone;
|
36
|
-
_platform;
|
37
|
-
popover;
|
38
|
-
_searchBox;
|
39
|
-
_target;
|
40
|
-
_popoverTitle;
|
41
|
-
_popoverWidth;
|
42
|
-
/**
|
43
|
-
* Defines the clearButton.
|
44
|
-
*/
|
45
|
-
clearButton = false;
|
46
|
-
/**
|
47
|
-
* Defines the checkbox.
|
48
|
-
*/
|
49
|
-
checkbox = false;
|
50
|
-
listContainer;
|
51
|
-
_contentEmptyTemplate;
|
52
|
-
get emptyTemplate() {
|
53
|
-
return this._contentEmptyTemplate;
|
54
|
-
}
|
55
|
-
_isActionSheet = false;
|
56
|
-
_forceFocus = false;
|
57
|
-
/**
|
58
|
-
* @ignore
|
59
|
-
*/
|
60
|
-
constructor(_elementRef, _cdr, _zone, _platform) {
|
61
|
-
super(_elementRef, _cdr);
|
62
|
-
this._elementRef = _elementRef;
|
63
|
-
this._cdr = _cdr;
|
64
|
-
this._zone = _zone;
|
65
|
-
this._platform = _platform;
|
66
|
-
this._isActionSheet = this._platform.is('SM');
|
67
|
-
this._platform.resize.subscribe(() => {
|
68
|
-
this._isActionSheet = this._platform.is('SM');
|
69
|
-
this.popover.dispose();
|
70
|
-
this._detectPopupSize();
|
71
|
-
});
|
72
|
-
}
|
73
|
-
_handleArrowClickEvent(e) {
|
74
|
-
e.stopPropagation();
|
75
|
-
// e.nativeEvent.stopPropagation();
|
76
|
-
this.toggle();
|
77
|
-
}
|
78
|
-
_handleInputClickEvent(e) {
|
79
|
-
e.stopPropagation();
|
80
|
-
this.toggle();
|
81
|
-
}
|
82
|
-
onInit() {
|
83
|
-
super.onInit();
|
84
|
-
this._target = this._elementRef.nativeElement;
|
85
|
-
this._updatePopupTitle();
|
86
|
-
}
|
87
|
-
onViewInit() {
|
88
|
-
super.onViewInit();
|
89
|
-
this._detectPopupSize();
|
90
|
-
}
|
91
|
-
refresh() {
|
92
|
-
this.value = null;
|
93
|
-
super.refresh();
|
94
|
-
}
|
95
|
-
_updatePopupTitle() {
|
96
|
-
const count = this.selectedItems?.length || 0;
|
97
|
-
//this._popoverTitle = count > 1 ? `(${count}) items selected` : (this.placeholder || AXTranslator.get('selectbox.popover.title'));
|
98
|
-
this._popoverTitle =
|
99
|
-
this.placeholder || AXTranslator.get('selectbox.popover.title');
|
100
|
-
}
|
101
|
-
_detectPopupSize() {
|
102
|
-
this._popoverWidth = this._isActionSheet ? 0 : this._target.offsetWidth;
|
103
|
-
}
|
104
|
-
_handleOnItemClick(e, item) {
|
105
|
-
if (this.isItemDisabled(item)) {
|
106
|
-
return;
|
107
|
-
}
|
108
|
-
if (!this.multiple)
|
109
|
-
this.close();
|
110
|
-
this.toggleSelect(item);
|
111
|
-
this._cdr.detectChanges();
|
112
|
-
}
|
113
|
-
_handleListScroll(e) {
|
114
|
-
const list = e.target;
|
115
|
-
if (list.scrollTop < list.scrollHeight - list.clientHeight) {
|
116
|
-
return;
|
117
|
-
}
|
118
|
-
this._fetchData();
|
119
|
-
}
|
120
|
-
_checkForLoadData() {
|
121
|
-
const list = this.listContainer.nativeElement;
|
122
|
-
if (this.loadedCount < this.totalCount &&
|
123
|
-
list.scrollHeight < list.parentElement.clientHeight * 1.5) {
|
124
|
-
this._fetchData();
|
125
|
-
}
|
126
|
-
}
|
127
|
-
_onDataLoaded() {
|
128
|
-
if (this.popover.isOpen) {
|
129
|
-
setTimeout(() => {
|
130
|
-
this._checkForLoadData();
|
131
|
-
this.popover.updatePosition();
|
132
|
-
if (this._forceFocus) {
|
133
|
-
this._focusSelectedItem();
|
134
|
-
this._forceFocus = false;
|
135
|
-
}
|
136
|
-
this._focusSearchBox();
|
137
|
-
}, 100);
|
138
|
-
}
|
139
|
-
}
|
140
|
-
_onValueChanged(oldValue, newValue) {
|
141
|
-
super._onValueChanged(oldValue, newValue);
|
142
|
-
}
|
143
|
-
_handleOnRemoveItemClick(e, item) {
|
144
|
-
this.unselectItems(item);
|
145
|
-
e.stopPropagation();
|
146
|
-
}
|
147
|
-
_handleBadgeRemove(e, item) {
|
148
|
-
this.unselectItems(item);
|
149
|
-
e.stopPropagation();
|
150
|
-
this.close();
|
151
|
-
}
|
152
|
-
_handleKeydown(e) {
|
153
|
-
const isLetter = new RegExp(/[a-zA-Z0-9\-]/).test(String.fromCharCode(e.keyCode));
|
154
|
-
if (e.code === 'Backspace' &&
|
155
|
-
e.type === 'keydown' &&
|
156
|
-
((this.allowNull === true && this.selectedItems.length > 0) ||
|
157
|
-
(this.allowNull !== true && this.selectedItems.length > 1))) {
|
158
|
-
this.isUserInput = true;
|
159
|
-
this.unselectItems(this.selectedItems.pop());
|
160
|
-
e.preventDefault();
|
161
|
-
return;
|
162
|
-
}
|
163
|
-
else if ((e.code === 'ArrowDown' || e.code === 'ArrowUp' || e.code === 'Space') &&
|
164
|
-
!this.popover.isOpen &&
|
165
|
-
e.type === 'keydown') {
|
166
|
-
if (this.multiple) {
|
167
|
-
this.open();
|
168
|
-
}
|
169
|
-
else {
|
170
|
-
this.isUserInput = true;
|
171
|
-
if (e.ctrlKey || e.code === 'Space') {
|
172
|
-
this.open();
|
173
|
-
}
|
174
|
-
else {
|
175
|
-
this._selectedItemByNav(e.key === 'ArrowDown' ? 1 : -1);
|
176
|
-
}
|
177
|
-
}
|
178
|
-
e.preventDefault();
|
179
|
-
return;
|
180
|
-
}
|
181
|
-
else if (isLetter) {
|
182
|
-
this.text = e.key;
|
183
|
-
this.open();
|
184
|
-
e.preventDefault();
|
185
|
-
return;
|
186
|
-
}
|
187
|
-
}
|
188
|
-
_handlePopoverKeydown(e) {
|
189
|
-
if (e.target.tagName == 'INPUT' &&
|
190
|
-
['Space', 'Backspace'].includes(e.code))
|
191
|
-
return;
|
192
|
-
if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') &&
|
193
|
-
this.displayItems.length > 0) {
|
194
|
-
this.isUserInput = true;
|
195
|
-
this._focusItemByNav(e.key === 'ArrowDown' ? 1 : -1);
|
196
|
-
e.preventDefault();
|
197
|
-
}
|
198
|
-
else if (e.code === 'Backspace' &&
|
199
|
-
((this.allowNull === true && this.selectedItems.length > 0) ||
|
200
|
-
(this.allowNull !== true && this.selectedItems.length > 1))) {
|
201
|
-
this.isUserInput = true;
|
202
|
-
this.unselectItems(this.selectedItems.pop());
|
203
|
-
e.preventDefault();
|
204
|
-
}
|
205
|
-
else if (e.code === 'Space' || e.code === 'Enter') {
|
206
|
-
e.preventDefault();
|
207
|
-
const focusedItemId = this.listContainer.nativeElement.querySelector('.ax-state-focus')?.dataset?.id;
|
208
|
-
const focusedItem = findLast(this.flatItems, [
|
209
|
-
this.valueField,
|
210
|
-
focusedItemId,
|
211
|
-
]);
|
212
|
-
if (focusedItem) {
|
213
|
-
if (this.isItemDisabled(focusedItem)) {
|
214
|
-
return;
|
215
|
-
}
|
216
|
-
if (this.multiple) {
|
217
|
-
this.isUserInput = true;
|
218
|
-
this.toggleSelect(focusedItem);
|
219
|
-
}
|
220
|
-
else {
|
221
|
-
this.isUserInput = true;
|
222
|
-
this.selectItems(focusedItem);
|
223
|
-
this.close();
|
224
|
-
}
|
225
|
-
}
|
226
|
-
}
|
227
|
-
else if (e.code === 'Tab') {
|
228
|
-
this.close();
|
229
|
-
e.preventDefault();
|
230
|
-
e.stopPropagation();
|
231
|
-
}
|
232
|
-
else if (e.key === 'Escape') {
|
233
|
-
this.close();
|
234
|
-
e.preventDefault();
|
235
|
-
e.stopPropagation();
|
236
|
-
}
|
237
|
-
}
|
238
|
-
async _handlePopupOnOpened(e) {
|
239
|
-
this._detectPopupSize();
|
240
|
-
this.popover.focus();
|
241
|
-
if (this.displayItems.length == 0) {
|
242
|
-
this._forceFocus = true;
|
243
|
-
this._fetchData();
|
244
|
-
}
|
245
|
-
else {
|
246
|
-
this._focusSelectedItem();
|
247
|
-
}
|
248
|
-
this._focusSearchBox();
|
249
|
-
}
|
250
|
-
_handlePopupOnClosed(e) {
|
251
|
-
this.focus();
|
252
|
-
}
|
253
|
-
_focusSearchBox() {
|
254
|
-
if (this._searchBox &&
|
255
|
-
(!this._isActionSheet || this._searchBox.searchExp)) {
|
256
|
-
this._searchBox.focus();
|
257
|
-
}
|
258
|
-
}
|
259
|
-
_focusItemByNav(sign) {
|
260
|
-
const list = this.listContainer.nativeElement;
|
261
|
-
const fn = s => list.querySelector(s);
|
262
|
-
const itemDiv = fn(`.ax-list-item.ax-state-focus`) ||
|
263
|
-
fn(`.ax-list-item.ax-state-selected`) ||
|
264
|
-
fn(`.ax-list-item`);
|
265
|
-
let next = (sign == 1 ? itemDiv.nextElementSibling : itemDiv.previousElementSibling);
|
266
|
-
if (next) {
|
267
|
-
this._focusItemElement(next);
|
268
|
-
}
|
269
|
-
else {
|
270
|
-
const parent = itemDiv.closest('.ax-list-item-group');
|
271
|
-
if (parent) {
|
272
|
-
const lis = (sign == 1 ? parent.nextElementSibling : parent.previousElementSibling)?.querySelectorAll('li');
|
273
|
-
const a = sign == 1 ? first(lis) : last(lis);
|
274
|
-
if (a) {
|
275
|
-
this._focusItemElement(a);
|
276
|
-
}
|
277
|
-
}
|
278
|
-
}
|
279
|
-
}
|
280
|
-
_focusSelectedItem() {
|
281
|
-
this._zone.runOutsideAngular(() => {
|
282
|
-
const list = this.listContainer.nativeElement;
|
283
|
-
const fn = s => list.querySelector(s);
|
284
|
-
const itemDiv = fn(`.ax-list-item.ax-state-selected`) || fn(`.ax-list-item`);
|
285
|
-
if (itemDiv) {
|
286
|
-
this._focusItemElement(itemDiv);
|
287
|
-
}
|
288
|
-
});
|
289
|
-
}
|
290
|
-
_focusItemElement(el) {
|
291
|
-
this._zone.runOutsideAngular(() => {
|
292
|
-
const list = this.listContainer.nativeElement;
|
293
|
-
list.querySelectorAll('.ax-list-item').forEach(c => {
|
294
|
-
if (c == el) {
|
295
|
-
c.classList.add('ax-state-focus');
|
296
|
-
el.scrollIntoView({ behavior: 'auto' });
|
297
|
-
}
|
298
|
-
else {
|
299
|
-
c.classList.remove('ax-state-focus');
|
300
|
-
}
|
301
|
-
});
|
302
|
-
if (!this._isActionSheet && this._searchBox)
|
303
|
-
this._searchBox.focus();
|
304
|
-
else
|
305
|
-
el.focus();
|
306
|
-
});
|
307
|
-
}
|
308
|
-
_selectedItemByNav(sign) {
|
309
|
-
const _last = last(this.selectedItems);
|
310
|
-
let i = 0;
|
311
|
-
if (_last) {
|
312
|
-
i = findLastIndex(this.flatItems, [
|
313
|
-
this.valueField,
|
314
|
-
_last[this.valueField],
|
315
|
-
]);
|
316
|
-
}
|
317
|
-
i += sign;
|
318
|
-
let next = nth(this.flatItems, i);
|
319
|
-
while (next?.children && next?.children.length) {
|
320
|
-
i += sign;
|
321
|
-
next = nth(this.flatItems, i);
|
322
|
-
}
|
323
|
-
if (next) {
|
324
|
-
this.selectItems(next);
|
325
|
-
}
|
326
|
-
else if (next == null && sign == 1) {
|
327
|
-
this._fetchData();
|
328
|
-
}
|
329
|
-
}
|
330
|
-
search(exp) {
|
331
|
-
this.empty();
|
332
|
-
this._forceFocus = true;
|
333
|
-
this._fetchData();
|
334
|
-
}
|
335
|
-
_fetchData() {
|
336
|
-
super._fetchData({ searchQuery: this._searchBox?.searchExp });
|
337
|
-
}
|
338
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXSelectBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.AXPlatform }], target: i0.ɵɵFactoryTarget.Component });
|
339
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: { isOpen: "isOpen", fitParent: "fitParent", dropdownWidth: "dropdownWidth", position: "position", disabled: "disabled", tabIndex: "tabIndex", allowNull: "allowNull", value: "value", name: "name", checked: "checked", placeholder: "placeholder", maxLength: "maxLength", type: "type", autoComplete: "autoComplete", readonly: "readonly", pageSize: "pageSize", items: "items", valueField: "valueField", textField: "textField", disabledField: "disabledField", disabledCallback: "disabledCallback", multiple: "multiple", selectionMode: "selectionMode", clearButton: "clearButton", checkbox: "checkbox" }, outputs: { onOpened: "onOpened", onClosed: "onClosed", onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged" }, host: { listeners: { "keydown": "_handleKeydown($event)" }, classAttribute: "ax-editor-container ax-drop-down" }, providers: [
|
340
|
-
{ provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },
|
341
|
-
{ provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },
|
342
|
-
], queries: [{ propertyName: "_searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true, static: true }, { propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, static: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"> </ng-content>\r\n<div\r\n class=\"ax-dropdown-content\"\r\n [class.ax-state-disabled]=\"disabled\"\r\n (click)=\"_handleInputClickEvent($event)\">\r\n <div\r\n class=\"ax-select-box-selection\"\r\n [tabindex]=\"tabIndex\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\">\r\n <ng-container\r\n *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\r\n <ng-container\r\n *ngIf=\"\r\n !multiple;\r\n then singleSelectedTemplate;\r\n else multipleSelectedTemplate\r\n \"></ng-container>\r\n <ng-template #singleSelectedTemplate>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #multipleSelectedTemplate>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <div class=\"ax-select-multi-item\">\r\n {{ _getItemDisplayTextTemplte(item) }}\r\n <span\r\n class=\"ax-icon ax-icon-close\"\r\n (click)=\"_handleBadgeRemove($event, item)\">\r\n </span>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #showPlaceholder>\r\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\r\n {{ placeholder }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n<ax-button\r\n color=\"light\"\r\n look=\"blank\"\r\n (onClick)=\"clear()\"\r\n [tabIndex]=\"-1\"\r\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\r\n <ax-icon icon=\"ax-icon ax-icon-close\"></ax-icon>\r\n</ax-button>\r\n<button\r\n [disabled]=\"disabled\"\r\n [tabIndex]=\"-1\"\r\n class=\"ax-editor-control\"\r\n (click)=\"_handleArrowClickEvent($event)\">\r\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\r\n <ax-loading type=\"spinner\"></ax-loading>\r\n </ng-container>\r\n <ng-template #iconTemplate>\r\n <span\r\n class=\"ax-icon ax-icon-chevron-left ax-transition-all\"\r\n [ngClass]=\"{\r\n '-ax-rotation-90': !isOpen,\r\n 'ax-rotation-90': isOpen\r\n }\"></span>\r\n </ng-template>\r\n</button>\r\n<ng-content select=\"ax-validation-rule\"> </ng-content>\r\n<ng-content select=\"ax-suffix\"> </ng-content>\r\n<ax-popover\r\n [target]=\"_target\"\r\n [position]=\"position\"\r\n [openTrigger]=\"'manual'\"\r\n [closeTrigger]=\"'clickout'\"\r\n [adaptivityEnabled]=\"true\"\r\n (onOpened)=\"_handlePopupOnOpened($event)\"\r\n (onClosed)=\"_handlePopupOnClosed($event)\">\r\n <div\r\n class=\"ax-overlay-pane\"\r\n (keydown)=\"_handlePopoverKeydown($event)\"\r\n tabindex=\"0\"\r\n aria-modal=\"true\"\r\n cdkTrapFocus\r\n [class.ax-overlay-actionsheet]=\"_isActionSheet\"\r\n [class.ax-full]=\"_searchBox || isLazy\"\r\n [style.min-width.px]=\"_popoverWidth\">\r\n <div class=\"ax-list\">\r\n <ax-header *ngIf=\"_isActionSheet\">\r\n <ax-title>{{ _popoverTitle }}</ax-title>\r\n <ax-close-button\r\n class=\"ax-icon\"\r\n [icon]=\"\r\n multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\r\n \"></ax-close-button>\r\n </ax-header>\r\n <div\r\n class=\"ax-search-box-container\"\r\n [class.ax-state-hidden]=\"!_searchBox\"\r\n [cdkTrapFocus]=\"_searchBox != null\">\r\n <ng-content select=\"ax-search-box\"></ng-content>\r\n </div>\r\n <div\r\n class=\"ax-content ax-list-items-container ax-default\"\r\n (scroll)=\"_handleListScroll($event)\"\r\n #listContainer>\r\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\r\n <ul>\r\n <ng-container\r\n *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\">\r\n </ng-container>\r\n <ng-template #tmpTree let-list=\"list\">\r\n <ng-container\r\n *ngFor=\"\r\n let item of list;\r\n let i = index;\r\n trackBy: _trackByFunction\r\n \">\r\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\r\n <li\r\n class=\"ax-list-item\"\r\n (click)=\"_handleOnItemClick($event, item)\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: { $implicit: item, direction: direction }\r\n \">\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n <ng-template #defualtTemplate>\r\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\r\n <li\r\n class=\"ax-list-item-group\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n <ul *ngIf=\"item.children?.length > 0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n tmpTree;\r\n context: { list: item.children }\r\n \">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n <ng-template #tmpItem>\r\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\r\n <li\r\n class=\"ax-list-item\"\r\n [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event, item)\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n <span\r\n class=\"ax-icon ax-icon-done ax-selected-icon\"\r\n *ngIf=\"isItemSelected(item)\"></span>\r\n </li>\r\n </ng-container>\r\n <ng-template #multipleTemplate>\r\n <li\r\n class=\"ax-list-item\"\r\n [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n [class.ax-state-checkbox]=\"checkbox\"\r\n [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event, item)\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <span>\r\n <input\r\n class=\"ax-checkbox\"\r\n type=\"checkbox\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n *ngIf=\"checkbox\"\r\n [checked]=\"isItemSelected(item)\"\r\n [disabled]=\"isItemDisabled(item)\" />\r\n <span class=\"ax-checkbox-label\">{{\r\n _getItemDisplayTextTemplte(item)\r\n }}</span>\r\n </span>\r\n <span\r\n class=\"ax-icon ax-icon-done ax-selected-icon\"\r\n *ngIf=\"isItemSelected(item) && !checkbox\"></span>\r\n </li>\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </ul>\r\n </ng-container>\r\n <ng-container *ngIf=\"isLoading\">\r\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\r\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\r\n </ng-container>\r\n <ng-template #elseLoadingTemplate>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading\r\n text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div\r\n class=\"ax-flex ax-items-center ax-justify-center ax-p-4\"\r\n [innerHTML]=\"\r\n 'common.no-result-for'\r\n | trans\r\n : {\r\n exp: this._searchBox ? this._searchBox.searchExp : ''\r\n }\r\n \"></div>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\r\n >\r\n \r\n </div> -->\r\n <!-- <div class=\"ax-footer\">footer</div> -->\r\n </div>\r\n </div>\r\n</ax-popover>\r\n", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-on-surface));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;padding:0 .5rem;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.AXDecoratorHeaderComponent, selector: "ax-header" }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorTitleComponent, selector: "ax-title" }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["target", "position", "openTrigger", "closeTrigger", "hasBackdrop", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange"] }, { kind: "component", type: i6.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "text"], outputs: ["visibleChange"] }, { kind: "directive", type: i7.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
343
|
-
}
|
344
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXSelectBoxComponent, decorators: [{
|
345
|
-
type: Component,
|
346
|
-
args: [{ selector: 'ax-select-box', inputs: [
|
347
|
-
'isOpen',
|
348
|
-
'fitParent',
|
349
|
-
'dropdownWidth',
|
350
|
-
'position',
|
351
|
-
'disabled',
|
352
|
-
'tabIndex',
|
353
|
-
'allowNull',
|
354
|
-
'value',
|
355
|
-
'name',
|
356
|
-
'checked',
|
357
|
-
'placeholder',
|
358
|
-
'maxLength',
|
359
|
-
'type',
|
360
|
-
'autoComplete',
|
361
|
-
'readonly',
|
362
|
-
'pageSize',
|
363
|
-
'items',
|
364
|
-
'valueField',
|
365
|
-
'textField',
|
366
|
-
'disabledField',
|
367
|
-
'disabledCallback',
|
368
|
-
'multiple',
|
369
|
-
'selectionMode',
|
370
|
-
], outputs: [
|
371
|
-
'onOpened',
|
372
|
-
'onClosed',
|
373
|
-
'onBlur',
|
374
|
-
'onFocus',
|
375
|
-
'valueChange',
|
376
|
-
'onValueChanged',
|
377
|
-
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
378
|
-
{ provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },
|
379
|
-
{ provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },
|
380
|
-
], host: { class: 'ax-editor-container ax-drop-down' }, template: "<ng-content select=\"ax-prefix\"> </ng-content>\r\n<div\r\n class=\"ax-dropdown-content\"\r\n [class.ax-state-disabled]=\"disabled\"\r\n (click)=\"_handleInputClickEvent($event)\">\r\n <div\r\n class=\"ax-select-box-selection\"\r\n [tabindex]=\"tabIndex\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\">\r\n <ng-container\r\n *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\r\n <ng-container\r\n *ngIf=\"\r\n !multiple;\r\n then singleSelectedTemplate;\r\n else multipleSelectedTemplate\r\n \"></ng-container>\r\n <ng-template #singleSelectedTemplate>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #multipleSelectedTemplate>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <div class=\"ax-select-multi-item\">\r\n {{ _getItemDisplayTextTemplte(item) }}\r\n <span\r\n class=\"ax-icon ax-icon-close\"\r\n (click)=\"_handleBadgeRemove($event, item)\">\r\n </span>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #showPlaceholder>\r\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\r\n {{ placeholder }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n<ax-button\r\n color=\"light\"\r\n look=\"blank\"\r\n (onClick)=\"clear()\"\r\n [tabIndex]=\"-1\"\r\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\r\n <ax-icon icon=\"ax-icon ax-icon-close\"></ax-icon>\r\n</ax-button>\r\n<button\r\n [disabled]=\"disabled\"\r\n [tabIndex]=\"-1\"\r\n class=\"ax-editor-control\"\r\n (click)=\"_handleArrowClickEvent($event)\">\r\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\r\n <ax-loading type=\"spinner\"></ax-loading>\r\n </ng-container>\r\n <ng-template #iconTemplate>\r\n <span\r\n class=\"ax-icon ax-icon-chevron-left ax-transition-all\"\r\n [ngClass]=\"{\r\n '-ax-rotation-90': !isOpen,\r\n 'ax-rotation-90': isOpen\r\n }\"></span>\r\n </ng-template>\r\n</button>\r\n<ng-content select=\"ax-validation-rule\"> </ng-content>\r\n<ng-content select=\"ax-suffix\"> </ng-content>\r\n<ax-popover\r\n [target]=\"_target\"\r\n [position]=\"position\"\r\n [openTrigger]=\"'manual'\"\r\n [closeTrigger]=\"'clickout'\"\r\n [adaptivityEnabled]=\"true\"\r\n (onOpened)=\"_handlePopupOnOpened($event)\"\r\n (onClosed)=\"_handlePopupOnClosed($event)\">\r\n <div\r\n class=\"ax-overlay-pane\"\r\n (keydown)=\"_handlePopoverKeydown($event)\"\r\n tabindex=\"0\"\r\n aria-modal=\"true\"\r\n cdkTrapFocus\r\n [class.ax-overlay-actionsheet]=\"_isActionSheet\"\r\n [class.ax-full]=\"_searchBox || isLazy\"\r\n [style.min-width.px]=\"_popoverWidth\">\r\n <div class=\"ax-list\">\r\n <ax-header *ngIf=\"_isActionSheet\">\r\n <ax-title>{{ _popoverTitle }}</ax-title>\r\n <ax-close-button\r\n class=\"ax-icon\"\r\n [icon]=\"\r\n multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\r\n \"></ax-close-button>\r\n </ax-header>\r\n <div\r\n class=\"ax-search-box-container\"\r\n [class.ax-state-hidden]=\"!_searchBox\"\r\n [cdkTrapFocus]=\"_searchBox != null\">\r\n <ng-content select=\"ax-search-box\"></ng-content>\r\n </div>\r\n <div\r\n class=\"ax-content ax-list-items-container ax-default\"\r\n (scroll)=\"_handleListScroll($event)\"\r\n #listContainer>\r\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\r\n <ul>\r\n <ng-container\r\n *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\">\r\n </ng-container>\r\n <ng-template #tmpTree let-list=\"list\">\r\n <ng-container\r\n *ngFor=\"\r\n let item of list;\r\n let i = index;\r\n trackBy: _trackByFunction\r\n \">\r\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\r\n <li\r\n class=\"ax-list-item\"\r\n (click)=\"_handleOnItemClick($event, item)\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: { $implicit: item, direction: direction }\r\n \">\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n <ng-template #defualtTemplate>\r\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\r\n <li\r\n class=\"ax-list-item-group\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n <ul *ngIf=\"item.children?.length > 0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n tmpTree;\r\n context: { list: item.children }\r\n \">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n <ng-template #tmpItem>\r\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\r\n <li\r\n class=\"ax-list-item\"\r\n [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event, item)\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n <span\r\n class=\"ax-icon ax-icon-done ax-selected-icon\"\r\n *ngIf=\"isItemSelected(item)\"></span>\r\n </li>\r\n </ng-container>\r\n <ng-template #multipleTemplate>\r\n <li\r\n class=\"ax-list-item\"\r\n [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n [class.ax-state-checkbox]=\"checkbox\"\r\n [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event, item)\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <span>\r\n <input\r\n class=\"ax-checkbox\"\r\n type=\"checkbox\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n *ngIf=\"checkbox\"\r\n [checked]=\"isItemSelected(item)\"\r\n [disabled]=\"isItemDisabled(item)\" />\r\n <span class=\"ax-checkbox-label\">{{\r\n _getItemDisplayTextTemplte(item)\r\n }}</span>\r\n </span>\r\n <span\r\n class=\"ax-icon ax-icon-done ax-selected-icon\"\r\n *ngIf=\"isItemSelected(item) && !checkbox\"></span>\r\n </li>\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </ul>\r\n </ng-container>\r\n <ng-container *ngIf=\"isLoading\">\r\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\r\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\r\n </ng-container>\r\n <ng-template #elseLoadingTemplate>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading\r\n text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div\r\n class=\"ax-flex ax-items-center ax-justify-center ax-p-4\"\r\n [innerHTML]=\"\r\n 'common.no-result-for'\r\n | trans\r\n : {\r\n exp: this._searchBox ? this._searchBox.searchExp : ''\r\n }\r\n \"></div>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\r\n >\r\n \r\n </div> -->\r\n <!-- <div class=\"ax-footer\">footer</div> -->\r\n </div>\r\n </div>\r\n</ax-popover>\r\n", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-on-surface));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;padding:0 .5rem;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}\n"] }]
|
381
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.AXPlatform }]; }, propDecorators: { popover: [{
|
382
|
-
type: ViewChild,
|
383
|
-
args: [AXPopoverComponent, { static: true }]
|
384
|
-
}], _searchBox: [{
|
385
|
-
type: ContentChild,
|
386
|
-
args: [AXSearchBoxComponent, { static: true }]
|
387
|
-
}], clearButton: [{
|
388
|
-
type: Input
|
389
|
-
}], checkbox: [{
|
390
|
-
type: Input
|
391
|
-
}], listContainer: [{
|
392
|
-
type: ViewChild,
|
393
|
-
args: ['listContainer', { static: true }]
|
394
|
-
}], _contentEmptyTemplate: [{
|
395
|
-
type: ContentChild,
|
396
|
-
args: ['emptyTemplate']
|
397
|
-
}], _handleKeydown: [{
|
398
|
-
type: HostListener,
|
399
|
-
args: ['keydown', ['$event']]
|
27
|
+
/**
|
28
|
+
* The Button is a component which detects user interaction and triggers a corresponding event
|
29
|
+
*
|
30
|
+
* @category Components
|
31
|
+
*/
|
32
|
+
class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin {
|
33
|
+
_elementRef;
|
34
|
+
_cdr;
|
35
|
+
_zone;
|
36
|
+
_platform;
|
37
|
+
popover;
|
38
|
+
_searchBox;
|
39
|
+
_target;
|
40
|
+
_popoverTitle;
|
41
|
+
_popoverWidth;
|
42
|
+
/**
|
43
|
+
* Defines the clearButton.
|
44
|
+
*/
|
45
|
+
clearButton = false;
|
46
|
+
/**
|
47
|
+
* Defines the checkbox.
|
48
|
+
*/
|
49
|
+
checkbox = false;
|
50
|
+
listContainer;
|
51
|
+
_contentEmptyTemplate;
|
52
|
+
get emptyTemplate() {
|
53
|
+
return this._contentEmptyTemplate;
|
54
|
+
}
|
55
|
+
_isActionSheet = false;
|
56
|
+
_forceFocus = false;
|
57
|
+
/**
|
58
|
+
* @ignore
|
59
|
+
*/
|
60
|
+
constructor(_elementRef, _cdr, _zone, _platform) {
|
61
|
+
super(_elementRef, _cdr);
|
62
|
+
this._elementRef = _elementRef;
|
63
|
+
this._cdr = _cdr;
|
64
|
+
this._zone = _zone;
|
65
|
+
this._platform = _platform;
|
66
|
+
this._isActionSheet = this._platform.is('SM');
|
67
|
+
this._platform.resize.subscribe(() => {
|
68
|
+
this._isActionSheet = this._platform.is('SM');
|
69
|
+
this.popover.dispose();
|
70
|
+
this._detectPopupSize();
|
71
|
+
});
|
72
|
+
}
|
73
|
+
_handleArrowClickEvent(e) {
|
74
|
+
e.stopPropagation();
|
75
|
+
// e.nativeEvent.stopPropagation();
|
76
|
+
this.toggle();
|
77
|
+
}
|
78
|
+
_handleInputClickEvent(e) {
|
79
|
+
e.stopPropagation();
|
80
|
+
this.toggle();
|
81
|
+
}
|
82
|
+
onInit() {
|
83
|
+
super.onInit();
|
84
|
+
this._target = this._elementRef.nativeElement;
|
85
|
+
this._updatePopupTitle();
|
86
|
+
}
|
87
|
+
onViewInit() {
|
88
|
+
super.onViewInit();
|
89
|
+
this._detectPopupSize();
|
90
|
+
}
|
91
|
+
refresh() {
|
92
|
+
this.value = null;
|
93
|
+
super.refresh();
|
94
|
+
}
|
95
|
+
_updatePopupTitle() {
|
96
|
+
const count = this.selectedItems?.length || 0;
|
97
|
+
//this._popoverTitle = count > 1 ? `(${count}) items selected` : (this.placeholder || AXTranslator.get('selectbox.popover.title'));
|
98
|
+
this._popoverTitle =
|
99
|
+
this.placeholder || AXTranslator.get('selectbox.popover.title');
|
100
|
+
}
|
101
|
+
_detectPopupSize() {
|
102
|
+
this._popoverWidth = this._isActionSheet ? 0 : this._target.offsetWidth;
|
103
|
+
}
|
104
|
+
_handleOnItemClick(e, item) {
|
105
|
+
if (this.isItemDisabled(item)) {
|
106
|
+
return;
|
107
|
+
}
|
108
|
+
if (!this.multiple)
|
109
|
+
this.close();
|
110
|
+
this.toggleSelect(item);
|
111
|
+
this._cdr.detectChanges();
|
112
|
+
}
|
113
|
+
_handleListScroll(e) {
|
114
|
+
const list = e.target;
|
115
|
+
if (list.scrollTop < list.scrollHeight - list.clientHeight) {
|
116
|
+
return;
|
117
|
+
}
|
118
|
+
this._fetchData();
|
119
|
+
}
|
120
|
+
_checkForLoadData() {
|
121
|
+
const list = this.listContainer.nativeElement;
|
122
|
+
if (this.loadedCount < this.totalCount &&
|
123
|
+
list.scrollHeight < list.parentElement.clientHeight * 1.5) {
|
124
|
+
this._fetchData();
|
125
|
+
}
|
126
|
+
}
|
127
|
+
_onDataLoaded() {
|
128
|
+
if (this.popover.isOpen) {
|
129
|
+
setTimeout(() => {
|
130
|
+
this._checkForLoadData();
|
131
|
+
this.popover.updatePosition();
|
132
|
+
if (this._forceFocus) {
|
133
|
+
this._focusSelectedItem();
|
134
|
+
this._forceFocus = false;
|
135
|
+
}
|
136
|
+
this._focusSearchBox();
|
137
|
+
}, 100);
|
138
|
+
}
|
139
|
+
}
|
140
|
+
_onValueChanged(oldValue, newValue) {
|
141
|
+
super._onValueChanged(oldValue, newValue);
|
142
|
+
}
|
143
|
+
_handleOnRemoveItemClick(e, item) {
|
144
|
+
this.unselectItems(item);
|
145
|
+
e.stopPropagation();
|
146
|
+
}
|
147
|
+
_handleBadgeRemove(e, item) {
|
148
|
+
this.unselectItems(item);
|
149
|
+
e.stopPropagation();
|
150
|
+
this.close();
|
151
|
+
}
|
152
|
+
_handleKeydown(e) {
|
153
|
+
const isLetter = new RegExp(/[a-zA-Z0-9\-]/).test(String.fromCharCode(e.keyCode));
|
154
|
+
if (e.code === 'Backspace' &&
|
155
|
+
e.type === 'keydown' &&
|
156
|
+
((this.allowNull === true && this.selectedItems.length > 0) ||
|
157
|
+
(this.allowNull !== true && this.selectedItems.length > 1))) {
|
158
|
+
this.isUserInput = true;
|
159
|
+
this.unselectItems(this.selectedItems.pop());
|
160
|
+
e.preventDefault();
|
161
|
+
return;
|
162
|
+
}
|
163
|
+
else if ((e.code === 'ArrowDown' || e.code === 'ArrowUp' || e.code === 'Space') &&
|
164
|
+
!this.popover.isOpen &&
|
165
|
+
e.type === 'keydown') {
|
166
|
+
if (this.multiple) {
|
167
|
+
this.open();
|
168
|
+
}
|
169
|
+
else {
|
170
|
+
this.isUserInput = true;
|
171
|
+
if (e.ctrlKey || e.code === 'Space') {
|
172
|
+
this.open();
|
173
|
+
}
|
174
|
+
else {
|
175
|
+
this._selectedItemByNav(e.key === 'ArrowDown' ? 1 : -1);
|
176
|
+
}
|
177
|
+
}
|
178
|
+
e.preventDefault();
|
179
|
+
return;
|
180
|
+
}
|
181
|
+
else if (isLetter) {
|
182
|
+
this.text = e.key;
|
183
|
+
this.open();
|
184
|
+
e.preventDefault();
|
185
|
+
return;
|
186
|
+
}
|
187
|
+
}
|
188
|
+
_handlePopoverKeydown(e) {
|
189
|
+
if (e.target.tagName == 'INPUT' &&
|
190
|
+
['Space', 'Backspace'].includes(e.code))
|
191
|
+
return;
|
192
|
+
if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') &&
|
193
|
+
this.displayItems.length > 0) {
|
194
|
+
this.isUserInput = true;
|
195
|
+
this._focusItemByNav(e.key === 'ArrowDown' ? 1 : -1);
|
196
|
+
e.preventDefault();
|
197
|
+
}
|
198
|
+
else if (e.code === 'Backspace' &&
|
199
|
+
((this.allowNull === true && this.selectedItems.length > 0) ||
|
200
|
+
(this.allowNull !== true && this.selectedItems.length > 1))) {
|
201
|
+
this.isUserInput = true;
|
202
|
+
this.unselectItems(this.selectedItems.pop());
|
203
|
+
e.preventDefault();
|
204
|
+
}
|
205
|
+
else if (e.code === 'Space' || e.code === 'Enter') {
|
206
|
+
e.preventDefault();
|
207
|
+
const focusedItemId = this.listContainer.nativeElement.querySelector('.ax-state-focus')?.dataset?.id;
|
208
|
+
const focusedItem = findLast(this.flatItems, [
|
209
|
+
this.valueField,
|
210
|
+
focusedItemId,
|
211
|
+
]);
|
212
|
+
if (focusedItem) {
|
213
|
+
if (this.isItemDisabled(focusedItem)) {
|
214
|
+
return;
|
215
|
+
}
|
216
|
+
if (this.multiple) {
|
217
|
+
this.isUserInput = true;
|
218
|
+
this.toggleSelect(focusedItem);
|
219
|
+
}
|
220
|
+
else {
|
221
|
+
this.isUserInput = true;
|
222
|
+
this.selectItems(focusedItem);
|
223
|
+
this.close();
|
224
|
+
}
|
225
|
+
}
|
226
|
+
}
|
227
|
+
else if (e.code === 'Tab') {
|
228
|
+
this.close();
|
229
|
+
e.preventDefault();
|
230
|
+
e.stopPropagation();
|
231
|
+
}
|
232
|
+
else if (e.key === 'Escape') {
|
233
|
+
this.close();
|
234
|
+
e.preventDefault();
|
235
|
+
e.stopPropagation();
|
236
|
+
}
|
237
|
+
}
|
238
|
+
async _handlePopupOnOpened(e) {
|
239
|
+
this._detectPopupSize();
|
240
|
+
this.popover.focus();
|
241
|
+
if (this.displayItems.length == 0) {
|
242
|
+
this._forceFocus = true;
|
243
|
+
this._fetchData();
|
244
|
+
}
|
245
|
+
else {
|
246
|
+
this._focusSelectedItem();
|
247
|
+
}
|
248
|
+
this._focusSearchBox();
|
249
|
+
}
|
250
|
+
_handlePopupOnClosed(e) {
|
251
|
+
this.focus();
|
252
|
+
}
|
253
|
+
_focusSearchBox() {
|
254
|
+
if (this._searchBox &&
|
255
|
+
(!this._isActionSheet || this._searchBox.searchExp)) {
|
256
|
+
this._searchBox.focus();
|
257
|
+
}
|
258
|
+
}
|
259
|
+
_focusItemByNav(sign) {
|
260
|
+
const list = this.listContainer.nativeElement;
|
261
|
+
const fn = s => list.querySelector(s);
|
262
|
+
const itemDiv = fn(`.ax-list-item.ax-state-focus`) ||
|
263
|
+
fn(`.ax-list-item.ax-state-selected`) ||
|
264
|
+
fn(`.ax-list-item`);
|
265
|
+
let next = (sign == 1 ? itemDiv.nextElementSibling : itemDiv.previousElementSibling);
|
266
|
+
if (next) {
|
267
|
+
this._focusItemElement(next);
|
268
|
+
}
|
269
|
+
else {
|
270
|
+
const parent = itemDiv.closest('.ax-list-item-group');
|
271
|
+
if (parent) {
|
272
|
+
const lis = (sign == 1 ? parent.nextElementSibling : parent.previousElementSibling)?.querySelectorAll('li');
|
273
|
+
const a = sign == 1 ? first(lis) : last(lis);
|
274
|
+
if (a) {
|
275
|
+
this._focusItemElement(a);
|
276
|
+
}
|
277
|
+
}
|
278
|
+
}
|
279
|
+
}
|
280
|
+
_focusSelectedItem() {
|
281
|
+
this._zone.runOutsideAngular(() => {
|
282
|
+
const list = this.listContainer.nativeElement;
|
283
|
+
const fn = s => list.querySelector(s);
|
284
|
+
const itemDiv = fn(`.ax-list-item.ax-state-selected`) || fn(`.ax-list-item`);
|
285
|
+
if (itemDiv) {
|
286
|
+
this._focusItemElement(itemDiv);
|
287
|
+
}
|
288
|
+
});
|
289
|
+
}
|
290
|
+
_focusItemElement(el) {
|
291
|
+
this._zone.runOutsideAngular(() => {
|
292
|
+
const list = this.listContainer.nativeElement;
|
293
|
+
list.querySelectorAll('.ax-list-item').forEach(c => {
|
294
|
+
if (c == el) {
|
295
|
+
c.classList.add('ax-state-focus');
|
296
|
+
el.scrollIntoView({ behavior: 'auto' });
|
297
|
+
}
|
298
|
+
else {
|
299
|
+
c.classList.remove('ax-state-focus');
|
300
|
+
}
|
301
|
+
});
|
302
|
+
if (!this._isActionSheet && this._searchBox)
|
303
|
+
this._searchBox.focus();
|
304
|
+
else
|
305
|
+
el.focus();
|
306
|
+
});
|
307
|
+
}
|
308
|
+
_selectedItemByNav(sign) {
|
309
|
+
const _last = last(this.selectedItems);
|
310
|
+
let i = 0;
|
311
|
+
if (_last) {
|
312
|
+
i = findLastIndex(this.flatItems, [
|
313
|
+
this.valueField,
|
314
|
+
_last[this.valueField],
|
315
|
+
]);
|
316
|
+
}
|
317
|
+
i += sign;
|
318
|
+
let next = nth(this.flatItems, i);
|
319
|
+
while (next?.children && next?.children.length) {
|
320
|
+
i += sign;
|
321
|
+
next = nth(this.flatItems, i);
|
322
|
+
}
|
323
|
+
if (next) {
|
324
|
+
this.selectItems(next);
|
325
|
+
}
|
326
|
+
else if (next == null && sign == 1) {
|
327
|
+
this._fetchData();
|
328
|
+
}
|
329
|
+
}
|
330
|
+
search(exp) {
|
331
|
+
this.empty();
|
332
|
+
this._forceFocus = true;
|
333
|
+
this._fetchData();
|
334
|
+
}
|
335
|
+
_fetchData() {
|
336
|
+
super._fetchData({ searchQuery: this._searchBox?.searchExp });
|
337
|
+
}
|
338
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXSelectBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.AXPlatform }], target: i0.ɵɵFactoryTarget.Component });
|
339
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: { isOpen: "isOpen", fitParent: "fitParent", dropdownWidth: "dropdownWidth", position: "position", disabled: "disabled", tabIndex: "tabIndex", allowNull: "allowNull", value: "value", name: "name", checked: "checked", placeholder: "placeholder", maxLength: "maxLength", type: "type", autoComplete: "autoComplete", readonly: "readonly", pageSize: "pageSize", items: "items", valueField: "valueField", textField: "textField", disabledField: "disabledField", disabledCallback: "disabledCallback", multiple: "multiple", selectionMode: "selectionMode", clearButton: "clearButton", checkbox: "checkbox" }, outputs: { onOpened: "onOpened", onClosed: "onClosed", onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged" }, host: { listeners: { "keydown": "_handleKeydown($event)" }, classAttribute: "ax-editor-container ax-drop-down" }, providers: [
|
340
|
+
{ provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },
|
341
|
+
{ provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },
|
342
|
+
], queries: [{ propertyName: "_searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true, static: true }, { propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, static: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"> </ng-content>\r\n<div\r\n class=\"ax-dropdown-content\"\r\n [class.ax-state-disabled]=\"disabled\"\r\n (click)=\"_handleInputClickEvent($event)\">\r\n <div\r\n class=\"ax-select-box-selection\"\r\n [tabindex]=\"tabIndex\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\">\r\n <ng-container\r\n *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\r\n <ng-container\r\n *ngIf=\"\r\n !multiple;\r\n then singleSelectedTemplate;\r\n else multipleSelectedTemplate\r\n \"></ng-container>\r\n <ng-template #singleSelectedTemplate>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #multipleSelectedTemplate>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <div class=\"ax-select-multi-item\">\r\n {{ _getItemDisplayTextTemplte(item) }}\r\n <span\r\n class=\"ax-icon ax-icon-close\"\r\n (click)=\"_handleBadgeRemove($event, item)\">\r\n </span>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #showPlaceholder>\r\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\r\n {{ placeholder }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n<ax-button\r\n color=\"light\"\r\n look=\"blank\"\r\n (onClick)=\"clear()\"\r\n [tabIndex]=\"-1\"\r\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\r\n <ax-icon icon=\"ax-icon ax-icon-close\"></ax-icon>\r\n</ax-button>\r\n<button\r\n [disabled]=\"disabled\"\r\n [tabIndex]=\"-1\"\r\n class=\"ax-editor-control\"\r\n (click)=\"_handleArrowClickEvent($event)\">\r\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\r\n <ax-loading type=\"spinner\"></ax-loading>\r\n </ng-container>\r\n <ng-template #iconTemplate>\r\n <span\r\n class=\"ax-icon ax-icon-chevron-left ax-transition-all\"\r\n [ngClass]=\"{\r\n '-ax-rotation-90': !isOpen,\r\n 'ax-rotation-90': isOpen\r\n }\"></span>\r\n </ng-template>\r\n</button>\r\n<ng-content select=\"ax-validation-rule\"> </ng-content>\r\n<ng-content select=\"ax-suffix\"> </ng-content>\r\n<ax-popover\r\n [target]=\"_target\"\r\n [position]=\"position\"\r\n [openTrigger]=\"'manual'\"\r\n [closeTrigger]=\"'clickout'\"\r\n [adaptivityEnabled]=\"true\"\r\n (onOpened)=\"_handlePopupOnOpened($event)\"\r\n (onClosed)=\"_handlePopupOnClosed($event)\">\r\n <div\r\n class=\"ax-overlay-pane\"\r\n (keydown)=\"_handlePopoverKeydown($event)\"\r\n tabindex=\"0\"\r\n aria-modal=\"true\"\r\n cdkTrapFocus\r\n [class.ax-overlay-actionsheet]=\"_isActionSheet\"\r\n [class.ax-full]=\"_searchBox || isLazy\"\r\n [style.min-width.px]=\"_popoverWidth\">\r\n <div class=\"ax-list\">\r\n <ax-header *ngIf=\"_isActionSheet\">\r\n <ax-title>{{ _popoverTitle }}</ax-title>\r\n <ax-close-button\r\n class=\"ax-icon\"\r\n [icon]=\"\r\n multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\r\n \"></ax-close-button>\r\n </ax-header>\r\n <div\r\n class=\"ax-search-box-container\"\r\n [class.ax-state-hidden]=\"!_searchBox\"\r\n [cdkTrapFocus]=\"_searchBox != null\">\r\n <ng-content select=\"ax-search-box\"></ng-content>\r\n </div>\r\n <div\r\n class=\"ax-content ax-list-items-container ax-default\"\r\n (scroll)=\"_handleListScroll($event)\"\r\n #listContainer>\r\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\r\n <ul>\r\n <ng-container\r\n *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\">\r\n </ng-container>\r\n <ng-template #tmpTree let-list=\"list\">\r\n <ng-container\r\n *ngFor=\"\r\n let item of list;\r\n let i = index;\r\n trackBy: _trackByFunction\r\n \">\r\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\r\n <li\r\n class=\"ax-list-item\"\r\n (click)=\"_handleOnItemClick($event, item)\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: { $implicit: item, direction: direction }\r\n \">\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n <ng-template #defualtTemplate>\r\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\r\n <li\r\n class=\"ax-list-item-group\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n <ul *ngIf=\"item.children?.length > 0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n tmpTree;\r\n context: { list: item.children }\r\n \">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n <ng-template #tmpItem>\r\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\r\n <li\r\n class=\"ax-list-item\"\r\n [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event, item)\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n <span\r\n class=\"ax-icon ax-icon-done ax-selected-icon\"\r\n *ngIf=\"isItemSelected(item)\"></span>\r\n </li>\r\n </ng-container>\r\n <ng-template #multipleTemplate>\r\n <li\r\n class=\"ax-list-item\"\r\n [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n [class.ax-state-checkbox]=\"checkbox\"\r\n [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event, item)\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <span>\r\n <input\r\n class=\"ax-checkbox\"\r\n type=\"checkbox\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n *ngIf=\"checkbox\"\r\n [checked]=\"isItemSelected(item)\"\r\n [disabled]=\"isItemDisabled(item)\" />\r\n <span class=\"ax-checkbox-label\">{{\r\n _getItemDisplayTextTemplte(item)\r\n }}</span>\r\n </span>\r\n <span\r\n class=\"ax-icon ax-icon-done ax-selected-icon\"\r\n *ngIf=\"isItemSelected(item) && !checkbox\"></span>\r\n </li>\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </ul>\r\n </ng-container>\r\n <ng-container *ngIf=\"isLoading\">\r\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\r\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\r\n </ng-container>\r\n <ng-template #elseLoadingTemplate>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading\r\n text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div\r\n class=\"ax-flex ax-items-center ax-justify-center ax-p-4\"\r\n [innerHTML]=\"\r\n 'common.no-result-for'\r\n | trans\r\n : {\r\n exp: this._searchBox ? this._searchBox.searchExp : ''\r\n }\r\n \"></div>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\r\n >\r\n \r\n </div> -->\r\n <!-- <div class=\"ax-footer\">footer</div> -->\r\n </div>\r\n </div>\r\n</ax-popover>\r\n", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-on-surface));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;padding:0 .5rem;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.AXDecoratorHeaderComponent, selector: "ax-header" }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorTitleComponent, selector: "ax-title" }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["target", "position", "openTrigger", "closeTrigger", "hasBackdrop", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange"] }, { kind: "component", type: i6.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "text"], outputs: ["visibleChange"] }, { kind: "directive", type: i7.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
343
|
+
}
|
344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXSelectBoxComponent, decorators: [{
|
345
|
+
type: Component,
|
346
|
+
args: [{ selector: 'ax-select-box', inputs: [
|
347
|
+
'isOpen',
|
348
|
+
'fitParent',
|
349
|
+
'dropdownWidth',
|
350
|
+
'position',
|
351
|
+
'disabled',
|
352
|
+
'tabIndex',
|
353
|
+
'allowNull',
|
354
|
+
'value',
|
355
|
+
'name',
|
356
|
+
'checked',
|
357
|
+
'placeholder',
|
358
|
+
'maxLength',
|
359
|
+
'type',
|
360
|
+
'autoComplete',
|
361
|
+
'readonly',
|
362
|
+
'pageSize',
|
363
|
+
'items',
|
364
|
+
'valueField',
|
365
|
+
'textField',
|
366
|
+
'disabledField',
|
367
|
+
'disabledCallback',
|
368
|
+
'multiple',
|
369
|
+
'selectionMode',
|
370
|
+
], outputs: [
|
371
|
+
'onOpened',
|
372
|
+
'onClosed',
|
373
|
+
'onBlur',
|
374
|
+
'onFocus',
|
375
|
+
'valueChange',
|
376
|
+
'onValueChanged',
|
377
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
378
|
+
{ provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },
|
379
|
+
{ provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },
|
380
|
+
], host: { class: 'ax-editor-container ax-drop-down' }, template: "<ng-content select=\"ax-prefix\"> </ng-content>\r\n<div\r\n class=\"ax-dropdown-content\"\r\n [class.ax-state-disabled]=\"disabled\"\r\n (click)=\"_handleInputClickEvent($event)\">\r\n <div\r\n class=\"ax-select-box-selection\"\r\n [tabindex]=\"tabIndex\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\">\r\n <ng-container\r\n *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\r\n <ng-container\r\n *ngIf=\"\r\n !multiple;\r\n then singleSelectedTemplate;\r\n else multipleSelectedTemplate\r\n \"></ng-container>\r\n <ng-template #singleSelectedTemplate>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #multipleSelectedTemplate>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <div class=\"ax-select-multi-item\">\r\n {{ _getItemDisplayTextTemplte(item) }}\r\n <span\r\n class=\"ax-icon ax-icon-close\"\r\n (click)=\"_handleBadgeRemove($event, item)\">\r\n </span>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #showPlaceholder>\r\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\r\n {{ placeholder }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n<ax-button\r\n color=\"light\"\r\n look=\"blank\"\r\n (onClick)=\"clear()\"\r\n [tabIndex]=\"-1\"\r\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\r\n <ax-icon icon=\"ax-icon ax-icon-close\"></ax-icon>\r\n</ax-button>\r\n<button\r\n [disabled]=\"disabled\"\r\n [tabIndex]=\"-1\"\r\n class=\"ax-editor-control\"\r\n (click)=\"_handleArrowClickEvent($event)\">\r\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\r\n <ax-loading type=\"spinner\"></ax-loading>\r\n </ng-container>\r\n <ng-template #iconTemplate>\r\n <span\r\n class=\"ax-icon ax-icon-chevron-left ax-transition-all\"\r\n [ngClass]=\"{\r\n '-ax-rotation-90': !isOpen,\r\n 'ax-rotation-90': isOpen\r\n }\"></span>\r\n </ng-template>\r\n</button>\r\n<ng-content select=\"ax-validation-rule\"> </ng-content>\r\n<ng-content select=\"ax-suffix\"> </ng-content>\r\n<ax-popover\r\n [target]=\"_target\"\r\n [position]=\"position\"\r\n [openTrigger]=\"'manual'\"\r\n [closeTrigger]=\"'clickout'\"\r\n [adaptivityEnabled]=\"true\"\r\n (onOpened)=\"_handlePopupOnOpened($event)\"\r\n (onClosed)=\"_handlePopupOnClosed($event)\">\r\n <div\r\n class=\"ax-overlay-pane\"\r\n (keydown)=\"_handlePopoverKeydown($event)\"\r\n tabindex=\"0\"\r\n aria-modal=\"true\"\r\n cdkTrapFocus\r\n [class.ax-overlay-actionsheet]=\"_isActionSheet\"\r\n [class.ax-full]=\"_searchBox || isLazy\"\r\n [style.min-width.px]=\"_popoverWidth\">\r\n <div class=\"ax-list\">\r\n <ax-header *ngIf=\"_isActionSheet\">\r\n <ax-title>{{ _popoverTitle }}</ax-title>\r\n <ax-close-button\r\n class=\"ax-icon\"\r\n [icon]=\"\r\n multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\r\n \"></ax-close-button>\r\n </ax-header>\r\n <div\r\n class=\"ax-search-box-container\"\r\n [class.ax-state-hidden]=\"!_searchBox\"\r\n [cdkTrapFocus]=\"_searchBox != null\">\r\n <ng-content select=\"ax-search-box\"></ng-content>\r\n </div>\r\n <div\r\n class=\"ax-content ax-list-items-container ax-default\"\r\n (scroll)=\"_handleListScroll($event)\"\r\n #listContainer>\r\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\r\n <ul>\r\n <ng-container\r\n *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\">\r\n </ng-container>\r\n <ng-template #tmpTree let-list=\"list\">\r\n <ng-container\r\n *ngFor=\"\r\n let item of list;\r\n let i = index;\r\n trackBy: _trackByFunction\r\n \">\r\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\r\n <li\r\n class=\"ax-list-item\"\r\n (click)=\"_handleOnItemClick($event, item)\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n itemTemplate;\r\n context: { $implicit: item, direction: direction }\r\n \">\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n <ng-template #defualtTemplate>\r\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\r\n <li\r\n class=\"ax-list-item-group\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n <ul *ngIf=\"item.children?.length > 0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n tmpTree;\r\n context: { list: item.children }\r\n \">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n <ng-template #tmpItem>\r\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\r\n <li\r\n class=\"ax-list-item\"\r\n [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event, item)\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n <span\r\n class=\"ax-icon ax-icon-done ax-selected-icon\"\r\n *ngIf=\"isItemSelected(item)\"></span>\r\n </li>\r\n </ng-container>\r\n <ng-template #multipleTemplate>\r\n <li\r\n class=\"ax-list-item\"\r\n [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n [class.ax-state-checkbox]=\"checkbox\"\r\n [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event, item)\"\r\n [attr.data-id]=\"item[this.valueField]\">\r\n <span>\r\n <input\r\n class=\"ax-checkbox\"\r\n type=\"checkbox\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n *ngIf=\"checkbox\"\r\n [checked]=\"isItemSelected(item)\"\r\n [disabled]=\"isItemDisabled(item)\" />\r\n <span class=\"ax-checkbox-label\">{{\r\n _getItemDisplayTextTemplte(item)\r\n }}</span>\r\n </span>\r\n <span\r\n class=\"ax-icon ax-icon-done ax-selected-icon\"\r\n *ngIf=\"isItemSelected(item) && !checkbox\"></span>\r\n </li>\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </ul>\r\n </ng-container>\r\n <ng-container *ngIf=\"isLoading\">\r\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\r\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\r\n </ng-container>\r\n <ng-template #elseLoadingTemplate>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading\r\n text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div\r\n class=\"ax-flex ax-items-center ax-justify-center ax-p-4\"\r\n [innerHTML]=\"\r\n 'common.no-result-for'\r\n | trans\r\n : {\r\n exp: this._searchBox ? this._searchBox.searchExp : ''\r\n }\r\n \"></div>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\r\n >\r\n \r\n </div> -->\r\n <!-- <div class=\"ax-footer\">footer</div> -->\r\n </div>\r\n </div>\r\n</ax-popover>\r\n", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-on-surface));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;padding:0 .5rem;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}\n"] }]
|
381
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.AXPlatform }]; }, propDecorators: { popover: [{
|
382
|
+
type: ViewChild,
|
383
|
+
args: [AXPopoverComponent, { static: true }]
|
384
|
+
}], _searchBox: [{
|
385
|
+
type: ContentChild,
|
386
|
+
args: [AXSearchBoxComponent, { static: true }]
|
387
|
+
}], clearButton: [{
|
388
|
+
type: Input
|
389
|
+
}], checkbox: [{
|
390
|
+
type: Input
|
391
|
+
}], listContainer: [{
|
392
|
+
type: ViewChild,
|
393
|
+
args: ['listContainer', { static: true }]
|
394
|
+
}], _contentEmptyTemplate: [{
|
395
|
+
type: ContentChild,
|
396
|
+
args: ['emptyTemplate']
|
397
|
+
}], _handleKeydown: [{
|
398
|
+
type: HostListener,
|
399
|
+
args: ['keydown', ['$event']]
|
400
400
|
}] } });
|
401
401
|
|
402
|
-
class AXSelectBoxModule {
|
403
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXSelectBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
404
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: AXSelectBoxModule, declarations: [AXSelectBoxComponent], imports: [CommonModule,
|
405
|
-
AXCommonModule,
|
406
|
-
FormsModule,
|
407
|
-
AXCheckBoxModule,
|
408
|
-
AXBadgeModule,
|
409
|
-
AXDecoratorModule,
|
410
|
-
AXTranslationModule,
|
411
|
-
AXPopoverModule,
|
412
|
-
AXButtonModule,
|
413
|
-
AXLoadingModule,
|
414
|
-
A11yModule,
|
415
|
-
AXTextBoxModule], exports: [AXSelectBoxComponent] });
|
416
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXSelectBoxModule, imports: [CommonModule,
|
417
|
-
AXCommonModule,
|
418
|
-
FormsModule,
|
419
|
-
AXCheckBoxModule,
|
420
|
-
AXBadgeModule,
|
421
|
-
AXDecoratorModule,
|
422
|
-
AXTranslationModule,
|
423
|
-
AXPopoverModule,
|
424
|
-
AXButtonModule,
|
425
|
-
AXLoadingModule,
|
426
|
-
A11yModule,
|
427
|
-
AXTextBoxModule] });
|
428
|
-
}
|
429
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXSelectBoxModule, decorators: [{
|
430
|
-
type: NgModule,
|
431
|
-
args: [{
|
432
|
-
imports: [CommonModule,
|
433
|
-
AXCommonModule,
|
434
|
-
FormsModule,
|
435
|
-
AXCheckBoxModule,
|
436
|
-
AXBadgeModule,
|
437
|
-
AXDecoratorModule,
|
438
|
-
AXTranslationModule,
|
439
|
-
AXPopoverModule,
|
440
|
-
AXButtonModule,
|
441
|
-
AXLoadingModule,
|
442
|
-
A11yModule,
|
443
|
-
AXTextBoxModule
|
444
|
-
],
|
445
|
-
exports: [AXSelectBoxComponent],
|
446
|
-
declarations: [AXSelectBoxComponent],
|
447
|
-
providers: [],
|
448
|
-
}]
|
402
|
+
class AXSelectBoxModule {
|
403
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXSelectBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
404
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: AXSelectBoxModule, declarations: [AXSelectBoxComponent], imports: [CommonModule,
|
405
|
+
AXCommonModule,
|
406
|
+
FormsModule,
|
407
|
+
AXCheckBoxModule,
|
408
|
+
AXBadgeModule,
|
409
|
+
AXDecoratorModule,
|
410
|
+
AXTranslationModule,
|
411
|
+
AXPopoverModule,
|
412
|
+
AXButtonModule,
|
413
|
+
AXLoadingModule,
|
414
|
+
A11yModule,
|
415
|
+
AXTextBoxModule], exports: [AXSelectBoxComponent] });
|
416
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXSelectBoxModule, imports: [CommonModule,
|
417
|
+
AXCommonModule,
|
418
|
+
FormsModule,
|
419
|
+
AXCheckBoxModule,
|
420
|
+
AXBadgeModule,
|
421
|
+
AXDecoratorModule,
|
422
|
+
AXTranslationModule,
|
423
|
+
AXPopoverModule,
|
424
|
+
AXButtonModule,
|
425
|
+
AXLoadingModule,
|
426
|
+
A11yModule,
|
427
|
+
AXTextBoxModule] });
|
428
|
+
}
|
429
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXSelectBoxModule, decorators: [{
|
430
|
+
type: NgModule,
|
431
|
+
args: [{
|
432
|
+
imports: [CommonModule,
|
433
|
+
AXCommonModule,
|
434
|
+
FormsModule,
|
435
|
+
AXCheckBoxModule,
|
436
|
+
AXBadgeModule,
|
437
|
+
AXDecoratorModule,
|
438
|
+
AXTranslationModule,
|
439
|
+
AXPopoverModule,
|
440
|
+
AXButtonModule,
|
441
|
+
AXLoadingModule,
|
442
|
+
A11yModule,
|
443
|
+
AXTextBoxModule
|
444
|
+
],
|
445
|
+
exports: [AXSelectBoxComponent],
|
446
|
+
declarations: [AXSelectBoxComponent],
|
447
|
+
providers: [],
|
448
|
+
}]
|
449
449
|
}] });
|
450
450
|
|
451
|
-
/**
|
452
|
-
* Generated bundle index. Do not edit.
|
451
|
+
/**
|
452
|
+
* Generated bundle index. Do not edit.
|
453
453
|
*/
|
454
454
|
|
455
455
|
export { AXSelectBoxComponent, AXSelectBoxModule };
|