@aurelia-mdc-web/all 9.3.1-au2 → 9.3.3-au2
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/dist/alert/alert-configuration.js +15 -0
- package/dist/alert/alert-configuration.js.map +1 -0
- package/dist/alert/alert-modal/alert-modal.html +27 -0
- package/dist/alert/alert-modal/alert-modal.js +30 -0
- package/dist/alert/alert-modal/alert-modal.js.map +1 -0
- package/dist/alert/alert-modal/i-alert-modal-payload.js +14 -0
- package/dist/alert/alert-modal/i-alert-modal-payload.js.map +1 -0
- package/dist/alert/alert-service.js +106 -0
- package/dist/alert/alert-service.js.map +1 -0
- package/dist/alert/decorators/confirm-action.js +17 -0
- package/dist/alert/decorators/confirm-action.js.map +1 -0
- package/dist/alert/decorators/using-progress.js +27 -0
- package/dist/alert/decorators/using-progress.js.map +1 -0
- package/dist/alert/exceptions-tracker.js +8 -0
- package/dist/alert/exceptions-tracker.js.map +1 -0
- package/dist/alert/global-progress/global-progress.html +9 -0
- package/dist/alert/global-progress/global-progress.js +64 -0
- package/dist/alert/global-progress/global-progress.js.map +1 -0
- package/dist/alert/prompt-dialog/prompt-dialog.html +15 -0
- package/dist/alert/prompt-dialog/prompt-dialog.js +44 -0
- package/dist/alert/prompt-dialog/prompt-dialog.js.map +1 -0
- package/dist/banner/mdc-banner.html +21 -21
- package/dist/banner/mdc-banner.js +45 -42
- package/dist/banner/mdc-banner.js.map +1 -1
- package/dist/base/attributes/mdc-focus-trap.js +25 -22
- package/dist/base/attributes/mdc-focus-trap.js.map +1 -1
- package/dist/base/elements/i-validated-element.js +2 -1
- package/dist/base/elements/i-validated-element.js.map +1 -1
- package/dist/base/elements/mdc-promisify-reference.js +16 -13
- package/dist/base/elements/mdc-promisify-reference.js.map +1 -1
- package/dist/base/index.js +21 -9
- package/dist/base/index.js.map +1 -1
- package/dist/base/interceptors.js +12 -5
- package/dist/base/interceptors.js.map +1 -1
- package/dist/base/material-palette.js +4 -1
- package/dist/base/material-palette.js.map +1 -1
- package/dist/base/mdc-component.js +5 -1
- package/dist/base/mdc-component.js.map +1 -1
- package/dist/base/next-element.js +4 -1
- package/dist/base/next-element.js.map +1 -1
- package/dist/button/enhance-mdc-button.js +9 -6
- package/dist/button/enhance-mdc-button.js.map +1 -1
- package/dist/button/mdc-button-label.js +9 -6
- package/dist/button/mdc-button-label.js.map +1 -1
- package/dist/button/mdc-button.html +12 -12
- package/dist/button/mdc-button.js +30 -27
- package/dist/button/mdc-button.js.map +1 -1
- package/dist/card/mdc-card-action-buttons.js +9 -6
- package/dist/card/mdc-card-action-buttons.js.map +1 -1
- package/dist/card/mdc-card-action-icons.js +9 -6
- package/dist/card/mdc-card-action-icons.js.map +1 -1
- package/dist/card/mdc-card-actions/mdc-card-actions.html +3 -3
- package/dist/card/mdc-card-actions/mdc-card-actions.js +15 -12
- package/dist/card/mdc-card-actions/mdc-card-actions.js.map +1 -1
- package/dist/card/mdc-card-media/mdc-card-media.html +5 -5
- package/dist/card/mdc-card-media/mdc-card-media.js +18 -15
- package/dist/card/mdc-card-media/mdc-card-media.js.map +1 -1
- package/dist/card/mdc-card-primary-action.html +5 -5
- package/dist/card/mdc-card-primary-action.js +15 -12
- package/dist/card/mdc-card-primary-action.js.map +1 -1
- package/dist/card/mdc-card.html +3 -3
- package/dist/card/mdc-card.js +15 -12
- package/dist/card/mdc-card.js.map +1 -1
- package/dist/checkbox/mdc-checkbox.html +12 -12
- package/dist/checkbox/mdc-checkbox.js +38 -35
- package/dist/checkbox/mdc-checkbox.js.map +1 -1
- package/dist/chips/mdc-chip/mdc-chip.html +24 -24
- package/dist/chips/mdc-chip/mdc-chip.js +37 -34
- package/dist/chips/mdc-chip/mdc-chip.js.map +1 -1
- package/dist/chips/mdc-chip-action/enhance-mdc-chip-action.js +9 -6
- package/dist/chips/mdc-chip-action/enhance-mdc-chip-action.js.map +1 -1
- package/dist/chips/mdc-chip-action/mdc-chip-action.html +25 -25
- package/dist/chips/mdc-chip-action/mdc-chip-action.js +40 -37
- package/dist/chips/mdc-chip-action/mdc-chip-action.js.map +1 -1
- package/dist/chips/mdc-chip-set/mdc-chip-set.html +10 -10
- package/dist/chips/mdc-chip-set/mdc-chip-set.js +27 -24
- package/dist/chips/mdc-chip-set/mdc-chip-set.js.map +1 -1
- package/dist/circular-progress/mdc-circular-progress.html +38 -38
- package/dist/circular-progress/mdc-circular-progress.js +25 -22
- package/dist/circular-progress/mdc-circular-progress.js.map +1 -1
- package/dist/data-table/mdc-data-table-row.js +13 -10
- package/dist/data-table/mdc-data-table-row.js.map +1 -1
- package/dist/data-table/mdc-data-table.html +50 -49
- package/dist/data-table/mdc-data-table.js +183 -91
- package/dist/data-table/mdc-data-table.js.map +1 -1
- package/dist/dialog/mdc-dialog-actions.js +13 -10
- package/dist/dialog/mdc-dialog-actions.js.map +1 -1
- package/dist/dialog/mdc-dialog-content.js +9 -6
- package/dist/dialog/mdc-dialog-content.js.map +1 -1
- package/dist/dialog/mdc-dialog-service.js +20 -13
- package/dist/dialog/mdc-dialog-service.js.map +1 -1
- package/dist/dialog/mdc-dialog-title.js +9 -6
- package/dist/dialog/mdc-dialog-title.js.map +1 -1
- package/dist/dialog/mdc-dialog.html +14 -14
- package/dist/dialog/mdc-dialog.js +49 -46
- package/dist/dialog/mdc-dialog.js.map +1 -1
- package/dist/drawer/mdc-drawer-app-content.js +9 -6
- package/dist/drawer/mdc-drawer-app-content.js.map +1 -1
- package/dist/drawer/mdc-drawer-content.js +9 -6
- package/dist/drawer/mdc-drawer-content.js.map +1 -1
- package/dist/drawer/mdc-drawer-header/mdc-drawer-header.html +5 -5
- package/dist/drawer/mdc-drawer-header/mdc-drawer-header.js +17 -14
- package/dist/drawer/mdc-drawer-header/mdc-drawer-header.js.map +1 -1
- package/dist/drawer/mdc-drawer.html +6 -6
- package/dist/drawer/mdc-drawer.js +24 -21
- package/dist/drawer/mdc-drawer.js.map +1 -1
- package/dist/elevation/mdc-elevation.js +9 -6
- package/dist/elevation/mdc-elevation.js.map +1 -1
- package/dist/expandable/mdc-expandable.html +28 -28
- package/dist/expandable/mdc-expandable.js +20 -17
- package/dist/expandable/mdc-expandable.js.map +1 -1
- package/dist/fab/enhance-mdc-fab.js +9 -6
- package/dist/fab/enhance-mdc-fab.js.map +1 -1
- package/dist/fab/mdc-fab-icon.js +9 -6
- package/dist/fab/mdc-fab-icon.js.map +1 -1
- package/dist/fab/mdc-fab.html +13 -13
- package/dist/fab/mdc-fab.js +33 -30
- package/dist/fab/mdc-fab.js.map +1 -1
- package/dist/floating-label/mdc-floating-label.html +1 -1
- package/dist/floating-label/mdc-floating-label.js +16 -13
- package/dist/floating-label/mdc-floating-label.js.map +1 -1
- package/dist/form-field/mdc-form-field.html +6 -6
- package/dist/form-field/mdc-form-field.js +27 -24
- package/dist/form-field/mdc-form-field.js.map +1 -1
- package/dist/icon/mdc-icon.html +3 -3
- package/dist/icon/mdc-icon.js +10 -7
- package/dist/icon/mdc-icon.js.map +1 -1
- package/dist/icon-button/enhance-mdc-icon-button.js +9 -6
- package/dist/icon-button/enhance-mdc-icon-button.js.map +1 -1
- package/dist/icon-button/mdc-icon-button-icon/mdc-icon-button-icon.html +4 -4
- package/dist/icon-button/mdc-icon-button-icon/mdc-icon-button-icon.js +18 -15
- package/dist/icon-button/mdc-icon-button-icon/mdc-icon-button-icon.js.map +1 -1
- package/dist/icon-button/mdc-icon-button.html +11 -11
- package/dist/icon-button/mdc-icon-button.js +28 -25
- package/dist/icon-button/mdc-icon-button.js.map +1 -1
- package/dist/image-list/mdc-image-list-item/mdc-image-list-item.html +9 -9
- package/dist/image-list/mdc-image-list-item/mdc-image-list-item.js +22 -19
- package/dist/image-list/mdc-image-list-item/mdc-image-list-item.js.map +1 -1
- package/dist/image-list/mdc-image-list.html +7 -7
- package/dist/image-list/mdc-image-list.js +35 -32
- package/dist/image-list/mdc-image-list.js.map +1 -1
- package/dist/index.js +297 -139
- package/dist/index.js.map +1 -1
- package/dist/layout-grid/mdc-layout-grid-cell/mdc-layout-grid-cell.html +12 -12
- package/dist/layout-grid/mdc-layout-grid-cell/mdc-layout-grid-cell.js +36 -33
- package/dist/layout-grid/mdc-layout-grid-cell/mdc-layout-grid-cell.js.map +1 -1
- package/dist/layout-grid/mdc-layout-grid-inner.js +9 -6
- package/dist/layout-grid/mdc-layout-grid-inner.js.map +1 -1
- package/dist/layout-grid/mdc-layout-grid.html +8 -8
- package/dist/layout-grid/mdc-layout-grid.js +33 -30
- package/dist/layout-grid/mdc-layout-grid.js.map +1 -1
- package/dist/line-ripple/mdc-line-ripple.js +13 -10
- package/dist/line-ripple/mdc-line-ripple.js.map +1 -1
- package/dist/linear-progress/mdc-linear-progress.html +12 -12
- package/dist/linear-progress/mdc-linear-progress.js +26 -23
- package/dist/linear-progress/mdc-linear-progress.js.map +1 -1
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-divider/mdc-deprecated-list-divider.html +4 -4
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-divider/mdc-deprecated-list-divider.js +18 -15
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-divider/mdc-deprecated-list-divider.js.map +1 -1
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-group.js +17 -14
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-group.js.map +1 -1
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/enhance-mdc-deprecated-list-item.js +9 -6
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/enhance-mdc-deprecated-list-item.js.map +1 -1
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item-graphic.js +9 -6
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item-graphic.js.map +1 -1
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item-meta.js +9 -6
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item-meta.js.map +1 -1
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item.html +8 -8
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item.js +28 -25
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item.js.map +1 -1
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item-primary-text.js +9 -6
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item-primary-text.js.map +1 -1
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item-secondary-text.js +9 -6
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item-secondary-text.js.map +1 -1
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list.html +15 -15
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list.js +78 -75
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list.js.map +1 -1
- package/dist/list/mdc-list-divider/mdc-list-divider.html +7 -7
- package/dist/list/mdc-list-divider/mdc-list-divider.js +21 -18
- package/dist/list/mdc-list-divider/mdc-list-divider.js.map +1 -1
- package/dist/list/mdc-list-group.js +17 -14
- package/dist/list/mdc-list-group.js.map +1 -1
- package/dist/list/mdc-list-item/enhance-mdc-list-item.js +9 -6
- package/dist/list/mdc-list-item/enhance-mdc-list-item.js.map +1 -1
- package/dist/list/mdc-list-item/mdc-list-item-leading.js +9 -6
- package/dist/list/mdc-list-item/mdc-list-item-leading.js.map +1 -1
- package/dist/list/mdc-list-item/mdc-list-item-trailing.js +9 -6
- package/dist/list/mdc-list-item/mdc-list-item-trailing.js.map +1 -1
- package/dist/list/mdc-list-item/mdc-list-item.html +13 -13
- package/dist/list/mdc-list-item/mdc-list-item.js +40 -37
- package/dist/list/mdc-list-item/mdc-list-item.js.map +1 -1
- package/dist/list/mdc-list-item-overline-text.js +9 -6
- package/dist/list/mdc-list-item-overline-text.js.map +1 -1
- package/dist/list/mdc-list-item-primary-text.js +9 -6
- package/dist/list/mdc-list-item-primary-text.js.map +1 -1
- package/dist/list/mdc-list-item-secondary-text.js +9 -6
- package/dist/list/mdc-list-item-secondary-text.js.map +1 -1
- package/dist/list/mdc-list.html +5 -5
- package/dist/list/mdc-list.js +58 -55
- package/dist/list/mdc-list.js.map +1 -1
- package/dist/lookup/discardable-promise.js +5 -1
- package/dist/lookup/discardable-promise.js.map +1 -1
- package/dist/lookup/mdc-lookup-configuration.js +5 -1
- package/dist/lookup/mdc-lookup-configuration.js.map +1 -1
- package/dist/lookup/mdc-lookup.html +27 -27
- package/dist/lookup/mdc-lookup.js +74 -71
- package/dist/lookup/mdc-lookup.js.map +1 -1
- package/dist/mdc-configuration.js +15 -9
- package/dist/mdc-configuration.js.map +1 -1
- package/dist/menu/mdc-menu-selection-group-icon.js +9 -6
- package/dist/menu/mdc-menu-selection-group-icon.js.map +1 -1
- package/dist/menu/mdc-menu-selection-group.js +9 -6
- package/dist/menu/mdc-menu-selection-group.js.map +1 -1
- package/dist/menu/mdc-menu.html +6 -6
- package/dist/menu/mdc-menu.js +71 -68
- package/dist/menu/mdc-menu.js.map +1 -1
- package/dist/menu-surface/mdc-menu-surface-anchor.js +11 -8
- package/dist/menu-surface/mdc-menu-surface-anchor.js.map +1 -1
- package/dist/menu-surface/mdc-menu-surface.js +61 -58
- package/dist/menu-surface/mdc-menu-surface.js.map +1 -1
- package/dist/notched-outline/mdc-notched-outline.html +7 -7
- package/dist/notched-outline/mdc-notched-outline.js +20 -17
- package/dist/notched-outline/mdc-notched-outline.js.map +1 -1
- package/dist/radio/mdc-radio.html +9 -9
- package/dist/radio/mdc-radio.js +27 -24
- package/dist/radio/mdc-radio.js.map +1 -1
- package/dist/ripple/mdc-ripple.js +51 -48
- package/dist/ripple/mdc-ripple.js.map +1 -1
- package/dist/segmented-button/mdc-segmented-button-segment/enhance-mdc-segmented-button-segment.js +9 -6
- package/dist/segmented-button/mdc-segmented-button-segment/enhance-mdc-segmented-button-segment.js.map +1 -1
- package/dist/segmented-button/mdc-segmented-button-segment/mdc-segmented-button-segment.html +11 -11
- package/dist/segmented-button/mdc-segmented-button-segment/mdc-segmented-button-segment.js +27 -24
- package/dist/segmented-button/mdc-segmented-button-segment/mdc-segmented-button-segment.js.map +1 -1
- package/dist/segmented-button/mdc-segmented-button.html +3 -3
- package/dist/segmented-button/mdc-segmented-button.js +24 -21
- package/dist/segmented-button/mdc-segmented-button.js.map +1 -1
- package/dist/select/mdc-default-select-configuration.js +5 -1
- package/dist/select/mdc-default-select-configuration.js.map +1 -1
- package/dist/select/mdc-select-adapter-aurelia.js +2 -1
- package/dist/select/mdc-select-adapter-aurelia.js.map +1 -1
- package/dist/select/mdc-select-foundation-aurelia.js +47 -43
- package/dist/select/mdc-select-foundation-aurelia.js.map +1 -1
- package/dist/select/mdc-select-helper-text/mdc-select-helper-text.html +7 -7
- package/dist/select/mdc-select-helper-text/mdc-select-helper-text.js +27 -24
- package/dist/select/mdc-select-helper-text/mdc-select-helper-text.js.map +1 -1
- package/dist/select/mdc-select-icon.js +16 -13
- package/dist/select/mdc-select-icon.js.map +1 -1
- package/dist/select/mdc-select-value-observer.js +16 -12
- package/dist/select/mdc-select-value-observer.js.map +1 -1
- package/dist/select/mdc-select.html +38 -38
- package/dist/select/mdc-select.js +71 -68
- package/dist/select/mdc-select.js.map +1 -1
- package/dist/slider/mdc-slider-foundation-aurelia.js +6 -2
- package/dist/slider/mdc-slider-foundation-aurelia.js.map +1 -1
- package/dist/slider/mdc-slider.html +36 -36
- package/dist/slider/mdc-slider.js +79 -76
- package/dist/slider/mdc-slider.js.map +1 -1
- package/dist/snackbar/mdc-snackbar-service.js +8 -4
- package/dist/snackbar/mdc-snackbar-service.js.map +1 -1
- package/dist/snackbar/mdc-snackbar.html +14 -14
- package/dist/snackbar/mdc-snackbar.js +55 -52
- package/dist/snackbar/mdc-snackbar.js.map +1 -1
- package/dist/switch/enhance-mdc-switch.js +9 -6
- package/dist/switch/enhance-mdc-switch.js.map +1 -1
- package/dist/switch/mdc-switch.html +21 -21
- package/dist/switch/mdc-switch.js +16 -13
- package/dist/switch/mdc-switch.js.map +1 -1
- package/dist/tab-bar/indicator/mdc-tab-indicator.html +9 -9
- package/dist/tab-bar/indicator/mdc-tab-indicator.js +26 -23
- package/dist/tab-bar/indicator/mdc-tab-indicator.js.map +1 -1
- package/dist/tab-bar/mdc-tab-bar.html +6 -6
- package/dist/tab-bar/mdc-tab-bar.js +29 -26
- package/dist/tab-bar/mdc-tab-bar.js.map +1 -1
- package/dist/tab-bar/scroller/mdc-tab-scroller.html +11 -11
- package/dist/tab-bar/scroller/mdc-tab-scroller.js +25 -22
- package/dist/tab-bar/scroller/mdc-tab-scroller.js.map +1 -1
- package/dist/tab-bar/tab/mdc-tab.html +20 -20
- package/dist/tab-bar/tab/mdc-tab.js +44 -41
- package/dist/tab-bar/tab/mdc-tab.js.map +1 -1
- package/dist/text-field/enhance-mdc-text-field.js +9 -6
- package/dist/text-field/enhance-mdc-text-field.js.map +1 -1
- package/dist/text-field/mdc-default-text-field-configuration.js +5 -1
- package/dist/text-field/mdc-default-text-field-configuration.js.map +1 -1
- package/dist/text-field/mdc-inputmask.js +76 -0
- package/dist/text-field/mdc-inputmask.js.map +1 -0
- package/dist/text-field/mdc-text-field-character-counter.js +13 -10
- package/dist/text-field/mdc-text-field-character-counter.js.map +1 -1
- package/dist/text-field/mdc-text-field-helper-line/mdc-text-field-helper-line.html +7 -7
- package/dist/text-field/mdc-text-field-helper-line/mdc-text-field-helper-line.js +14 -11
- package/dist/text-field/mdc-text-field-helper-line/mdc-text-field-helper-line.js.map +1 -1
- package/dist/text-field/mdc-text-field-helper-text/mdc-text-field-helper-text.html +6 -6
- package/dist/text-field/mdc-text-field-helper-text/mdc-text-field-helper-text.js +22 -19
- package/dist/text-field/mdc-text-field-helper-text/mdc-text-field-helper-text.js.map +1 -1
- package/dist/text-field/mdc-text-field-icon.js +22 -19
- package/dist/text-field/mdc-text-field-icon.js.map +1 -1
- package/dist/text-field/mdc-text-field.html +29 -29
- package/dist/text-field/mdc-text-field.js +116 -113
- package/dist/text-field/mdc-text-field.js.map +1 -1
- package/dist/tooltip/mdc-default-tooltip-configuration.js +5 -1
- package/dist/tooltip/mdc-default-tooltip-configuration.js.map +1 -1
- package/dist/tooltip/mdc-tooltip-attribute.js +39 -36
- package/dist/tooltip/mdc-tooltip-attribute.js.map +1 -1
- package/dist/tooltip/mdc-tooltip.html +7 -7
- package/dist/tooltip/mdc-tooltip.js +66 -63
- package/dist/tooltip/mdc-tooltip.js.map +1 -1
- package/dist/top-app-bar/enhance-top-app-bar-actions.js +9 -6
- package/dist/top-app-bar/enhance-top-app-bar-actions.js.map +1 -1
- package/dist/top-app-bar/mdc-top-app-bar-action-item.js +9 -6
- package/dist/top-app-bar/mdc-top-app-bar-action-item.js.map +1 -1
- package/dist/top-app-bar/mdc-top-app-bar-fixed-adjust.js +9 -6
- package/dist/top-app-bar/mdc-top-app-bar-fixed-adjust.js.map +1 -1
- package/dist/top-app-bar/mdc-top-app-bar-nav-icon.js +9 -6
- package/dist/top-app-bar/mdc-top-app-bar-nav-icon.js.map +1 -1
- package/dist/top-app-bar/mdc-top-app-bar-row.js +9 -6
- package/dist/top-app-bar/mdc-top-app-bar-row.js.map +1 -1
- package/dist/top-app-bar/mdc-top-app-bar-section/mdc-top-app-bar-section.html +3 -3
- package/dist/top-app-bar/mdc-top-app-bar-section/mdc-top-app-bar-section.js +15 -12
- package/dist/top-app-bar/mdc-top-app-bar-section/mdc-top-app-bar-section.js.map +1 -1
- package/dist/top-app-bar/mdc-top-app-bar-title.js +9 -6
- package/dist/top-app-bar/mdc-top-app-bar-title.js.map +1 -1
- package/dist/top-app-bar/mdc-top-app-bar.html +9 -9
- package/dist/top-app-bar/mdc-top-app-bar.js +43 -40
- package/dist/top-app-bar/mdc-top-app-bar.js.map +1 -1
- package/dist/tree-view/i-tree-node.js +2 -1
- package/dist/tree-view/i-tree-node.js.map +1 -1
- package/dist/tree-view/mdc-tree-node-meta.js +9 -6
- package/dist/tree-view/mdc-tree-node-meta.js.map +1 -1
- package/dist/tree-view/mdc-tree-node.js +9 -6
- package/dist/tree-view/mdc-tree-node.js.map +1 -1
- package/dist/tree-view/mdc-tree-view.js +29 -25
- package/dist/tree-view/mdc-tree-view.js.map +1 -1
- package/dist/tree-view/node-filter.js +9 -6
- package/dist/tree-view/node-filter.js.map +1 -1
- package/dist/types/alert/alert-configuration.d.ts +8 -0
- package/dist/types/alert/alert-modal/alert-modal.d.ts +6 -0
- package/dist/types/alert/alert-modal/i-alert-modal-payload.d.ts +9 -0
- package/dist/types/alert/alert-service.d.ts +27 -0
- package/dist/types/alert/decorators/confirm-action.d.ts +3 -0
- package/dist/types/alert/decorators/using-progress.d.ts +6 -0
- package/dist/types/alert/exceptions-tracker.d.ts +3 -0
- package/dist/types/alert/global-progress/global-progress.d.ts +11 -0
- package/dist/types/alert/prompt-dialog/prompt-dialog.d.ts +21 -0
- package/dist/types/data-table/mdc-data-table.d.ts +16 -4
- package/dist/types/index.d.ts +11 -1
- package/dist/types/lookup/mdc-lookup.d.ts +3 -3
- package/dist/types/mdc-configuration.d.ts +2 -0
- package/dist/types/select/mdc-select.d.ts +3 -3
- package/dist/types/text-field/mdc-inputmask.d.ts +11 -0
- package/dist/types/text-field/mdc-text-field.d.ts +3 -3
- package/dist/types/tooltip/mdc-tooltip.d.ts +3 -3
- package/dist/types/validation/validate.d.ts +10 -0
- package/dist/typography/mdc-typography.js +60 -57
- package/dist/typography/mdc-typography.js.map +1 -1
- package/dist/validation/mdc-validation-controller-factory.js +10 -6
- package/dist/validation/mdc-validation-controller-factory.js.map +1 -1
- package/dist/validation/mdc-validation-result-presenter.js +5 -1
- package/dist/validation/mdc-validation-result-presenter.js.map +1 -1
- package/dist/validation/validate.js +27 -0
- package/dist/validation/validate.js.map +1 -0
- package/package.json +4 -2
- package/src/alert/alert-configuration.ts +11 -0
- package/src/alert/alert-modal/alert-modal.html +27 -0
- package/src/alert/alert-modal/alert-modal.scss +10 -0
- package/src/alert/alert-modal/alert-modal.ts +13 -0
- package/src/alert/alert-modal/i-alert-modal-payload.ts +9 -0
- package/src/alert/alert-service.ts +113 -0
- package/src/alert/decorators/confirm-action.ts +18 -0
- package/src/alert/decorators/using-progress.ts +30 -0
- package/src/alert/exceptions-tracker.ts +3 -0
- package/src/alert/global-progress/global-progress.html +9 -0
- package/src/alert/global-progress/global-progress.scss +38 -0
- package/src/alert/global-progress/global-progress.ts +27 -0
- package/src/alert/prompt-dialog/prompt-dialog.html +15 -0
- package/src/alert/prompt-dialog/prompt-dialog.ts +35 -0
- package/src/banner/mdc-banner.html +21 -21
- package/src/banner/mdc-banner.ts +116 -116
- package/src/base/attributes/mdc-focus-trap.ts +42 -42
- package/src/base/elements/i-validated-element.ts +12 -12
- package/src/base/elements/mdc-promisify-reference.ts +21 -21
- package/src/base/interceptors.ts +25 -25
- package/src/base/material-palette.md +7 -7
- package/src/base/material-palette.ts +22 -22
- package/src/base/mdc-component.ts +69 -69
- package/src/base/next-element.ts +39 -39
- package/src/button/enhance-mdc-button.ts +8 -8
- package/src/button/mdc-button-label.ts +15 -15
- package/src/button/mdc-button.html +12 -12
- package/src/button/mdc-button.ts +62 -62
- package/src/card/mdc-card-action-buttons.ts +19 -19
- package/src/card/mdc-card-action-icons.ts +19 -19
- package/src/card/mdc-card-actions/mdc-card-actions.html +3 -3
- package/src/card/mdc-card-actions/mdc-card-actions.ts +15 -15
- package/src/card/mdc-card-media/mdc-card-media.html +5 -5
- package/src/card/mdc-card-media/mdc-card-media.ts +21 -21
- package/src/card/mdc-card-primary-action.html +5 -5
- package/src/card/mdc-card-primary-action.ts +16 -16
- package/src/card/mdc-card.html +3 -3
- package/src/card/mdc-card.ts +16 -16
- package/src/checkbox/mdc-checkbox.html +12 -12
- package/src/checkbox/mdc-checkbox.ts +217 -217
- package/src/chips/mdc-chip/mdc-chip.html +24 -24
- package/src/chips/mdc-chip-action/enhance-mdc-chip-action.ts +8 -8
- package/src/chips/mdc-chip-action/mdc-chip-action.html +25 -25
- package/src/chips/mdc-chip-action/mdc-chip-action.ts +143 -143
- package/src/chips/mdc-chip-set/mdc-chip-set.html +10 -10
- package/src/chips/mdc-chip-set/mdc-chip-set.ts +117 -117
- package/src/circular-progress/mdc-circular-progress.html +38 -38
- package/src/circular-progress/mdc-circular-progress.ts +91 -91
- package/src/circular-progress/styles/_index.scss +1 -1
- package/src/circular-progress/styles/mdc-circular-progress.import.scss +1 -1
- package/src/circular-progress/styles/mdc-circular-progress.scss +14 -14
- package/src/data-table/mdc-data-table-row.ts +24 -24
- package/src/data-table/mdc-data-table.html +50 -49
- package/src/data-table/mdc-data-table.ts +111 -13
- package/src/data-table/styles/_index.scss +1 -0
- package/src/data-table/styles/mdc-data-table.import.scss +1 -0
- package/src/data-table/styles/mdc-data-table.scss +64 -0
- package/src/dialog/mdc-dialog-actions.ts +23 -23
- package/src/dialog/mdc-dialog-content.ts +11 -11
- package/src/dialog/mdc-dialog-service.ts +83 -80
- package/src/dialog/mdc-dialog-title.ts +8 -8
- package/src/dialog/mdc-dialog.html +14 -14
- package/src/dialog/mdc-dialog.ts +224 -224
- package/src/drawer/mdc-drawer-app-content.ts +11 -11
- package/src/drawer/mdc-drawer-content.ts +11 -11
- package/src/drawer/mdc-drawer-header/mdc-drawer-header.html +5 -5
- package/src/drawer/mdc-drawer-header/mdc-drawer-header.ts +18 -18
- package/src/drawer/mdc-drawer.html +6 -6
- package/src/drawer/mdc-drawer.ts +125 -125
- package/src/elevation/mdc-elevation.ts +23 -23
- package/src/expandable/mdc-expandable.html +28 -28
- package/src/expandable/styles/_icon-variables.scss +3 -3
- package/src/expandable/styles/_index.scss +1 -1
- package/src/expandable/styles/_mixins.scss +287 -287
- package/src/expandable/styles/_variables.scss +17 -17
- package/src/expandable/styles/mdc-expandable.import.scss +1 -1
- package/src/expandable/styles/mdc-expandable.scss +3 -3
- package/src/fab/enhance-mdc-fab.ts +8 -8
- package/src/fab/mdc-fab-icon.ts +15 -15
- package/src/fab/mdc-fab.html +13 -13
- package/src/fab/mdc-fab.ts +50 -50
- package/src/floating-label/mdc-floating-label.html +1 -1
- package/src/floating-label/mdc-floating-label.ts +44 -44
- package/src/form-field/mdc-form-field.html +6 -6
- package/src/icon/mdc-icon.html +3 -3
- package/src/icon/mdc-icon.ts +11 -11
- package/src/icon-button/enhance-mdc-icon-button.ts +8 -8
- package/src/icon-button/mdc-icon-button-icon/mdc-icon-button-icon.html +4 -4
- package/src/icon-button/mdc-icon-button-icon/mdc-icon-button-icon.ts +29 -29
- package/src/icon-button/mdc-icon-button.html +11 -11
- package/src/icon-button/mdc-icon-button.ts +69 -69
- package/src/image-list/mdc-image-list-item/mdc-image-list-item.html +9 -9
- package/src/image-list/mdc-image-list-item/mdc-image-list-item.ts +31 -31
- package/src/image-list/mdc-image-list.html +7 -7
- package/src/image-list/mdc-image-list.ts +73 -73
- package/src/image-list/styles/_index.scss +1 -1
- package/src/image-list/styles/mdc-image-list.import.scss +1 -1
- package/src/image-list/styles/mdc-image-list.scss +7 -7
- package/src/index.ts +17 -3
- package/src/layout-grid/mdc-layout-grid-cell/mdc-layout-grid-cell.html +12 -12
- package/src/layout-grid/mdc-layout-grid-cell/mdc-layout-grid-cell.ts +49 -49
- package/src/layout-grid/mdc-layout-grid-inner.ts +8 -8
- package/src/layout-grid/mdc-layout-grid.html +8 -8
- package/src/layout-grid/mdc-layout-grid.ts +67 -67
- package/src/layout-grid/styles/_index.scss +1 -1
- package/src/layout-grid/styles/mdc-layout-grid.import.scss +1 -1
- package/src/layout-grid/styles/mdc-layout-grid.scss +11 -11
- package/src/line-ripple/mdc-line-ripple.ts +41 -41
- package/src/linear-progress/mdc-linear-progress.html +12 -12
- package/src/linear-progress/mdc-linear-progress.ts +103 -103
- package/src/list/mdc-deprecated-list/mdc-deprecated-list-divider/mdc-deprecated-list-divider.html +4 -4
- package/src/list/mdc-deprecated-list/mdc-deprecated-list-divider/mdc-deprecated-list-divider.ts +18 -18
- package/src/list/mdc-deprecated-list/mdc-deprecated-list-group.ts +27 -27
- package/src/list/mdc-deprecated-list/mdc-deprecated-list-item/enhance-mdc-deprecated-list-item.ts +8 -8
- package/src/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item-graphic.ts +15 -15
- package/src/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item-meta.ts +15 -15
- package/src/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item.html +8 -8
- package/src/list/mdc-deprecated-list/mdc-deprecated-list-item-primary-text.ts +11 -11
- package/src/list/mdc-deprecated-list/mdc-deprecated-list-item-secondary-text.ts +11 -11
- package/src/list/mdc-deprecated-list/mdc-deprecated-list.html +15 -15
- package/src/list/mdc-deprecated-list/mdc-deprecated-list.ts +331 -331
- package/src/list/mdc-list-divider/mdc-list-divider.html +7 -7
- package/src/list/mdc-list-divider/mdc-list-divider.ts +24 -24
- package/src/list/mdc-list-group.ts +27 -27
- package/src/list/mdc-list-item/enhance-mdc-list-item.ts +8 -8
- package/src/list/mdc-list-item/mdc-list-item-leading.ts +34 -34
- package/src/list/mdc-list-item/mdc-list-item-trailing.ts +36 -36
- package/src/list/mdc-list-item/mdc-list-item.html +13 -13
- package/src/list/mdc-list-item-overline-text.ts +8 -8
- package/src/list/mdc-list-item-primary-text.ts +11 -11
- package/src/list/mdc-list-item-secondary-text.ts +11 -11
- package/src/list/mdc-list.html +5 -5
- package/src/list/mdc-list.ts +300 -300
- package/src/lookup/discardable-promise.ts +24 -24
- package/src/lookup/mdc-lookup-configuration.ts +11 -11
- package/src/lookup/mdc-lookup.html +27 -27
- package/src/lookup/mdc-lookup.ts +5 -5
- package/src/mdc-configuration.ts +2 -0
- package/src/menu/mdc-menu-selection-group-icon.ts +11 -11
- package/src/menu/mdc-menu-selection-group.ts +4 -4
- package/src/menu/mdc-menu.html +6 -6
- package/src/menu-surface/mdc-menu-surface-anchor.ts +12 -12
- package/src/menu-surface/mdc-menu-surface.ts +275 -275
- package/src/notched-outline/mdc-notched-outline.html +7 -7
- package/src/notched-outline/mdc-notched-outline.ts +60 -60
- package/src/radio/mdc-radio.html +9 -9
- package/src/radio/mdc-radio.ts +162 -162
- package/src/resource.d.ts +22 -22
- package/src/ripple/mdc-ripple.ts +114 -114
- package/src/segmented-button/mdc-segmented-button-segment/enhance-mdc-segmented-button-segment.ts +8 -8
- package/src/segmented-button/mdc-segmented-button-segment/mdc-segmented-button-segment.html +11 -11
- package/src/segmented-button/mdc-segmented-button.html +3 -3
- package/src/segmented-button/mdc-segmented-button.ts +89 -89
- package/src/select/mdc-default-select-configuration.ts +3 -3
- package/src/select/mdc-select-adapter-aurelia.ts +213 -213
- package/src/select/mdc-select-foundation-aurelia.ts +484 -484
- package/src/select/mdc-select-helper-text/mdc-select-helper-text.html +7 -7
- package/src/select/mdc-select-helper-text/mdc-select-helper-text.ts +55 -55
- package/src/select/mdc-select-icon.ts +41 -41
- package/src/select/mdc-select-value-observer.ts +347 -346
- package/src/select/mdc-select.html +38 -38
- package/src/select/mdc-select.ts +480 -480
- package/src/slider/mdc-slider-foundation-aurelia.ts +13 -13
- package/src/slider/mdc-slider.html +36 -36
- package/src/slider/mdc-slider.ts +409 -409
- package/src/slider/styles/_index.scss +1 -1
- package/src/slider/styles/mdc-slider.import.scss +1 -1
- package/src/slider/styles/mdc-slider.scss +8 -8
- package/src/snackbar/mdc-snackbar-service.ts +48 -48
- package/src/snackbar/mdc-snackbar.html +14 -14
- package/src/snackbar/mdc-snackbar.ts +109 -109
- package/src/switch/enhance-mdc-switch.ts +8 -8
- package/src/switch/mdc-switch.html +21 -21
- package/src/switch/mdc-switch.ts +86 -86
- package/src/tab-bar/indicator/mdc-tab-indicator.html +9 -9
- package/src/tab-bar/indicator/mdc-tab-indicator.ts +51 -51
- package/src/tab-bar/mdc-tab-bar.html +6 -6
- package/src/tab-bar/mdc-tab-bar.ts +119 -119
- package/src/tab-bar/scroller/mdc-tab-scroller.html +11 -11
- package/src/tab-bar/scroller/mdc-tab-scroller.ts +85 -85
- package/src/tab-bar/tab/mdc-tab.html +20 -20
- package/src/tab-bar/tab/mdc-tab.ts +118 -118
- package/src/text-field/enhance-mdc-text-field.ts +12 -12
- package/src/text-field/mdc-default-text-field-configuration.ts +3 -3
- package/src/text-field/mdc-inputmask.ts +45 -0
- package/src/text-field/mdc-text-field-character-counter.ts +32 -32
- package/src/text-field/mdc-text-field-helper-line/mdc-text-field-helper-line.html +7 -7
- package/src/text-field/mdc-text-field-helper-line/mdc-text-field-helper-line.ts +37 -37
- package/src/text-field/mdc-text-field-helper-text/mdc-text-field-helper-text.html +6 -6
- package/src/text-field/mdc-text-field-helper-text/mdc-text-field-helper-text.ts +47 -47
- package/src/text-field/mdc-text-field-icon.ts +59 -59
- package/src/text-field/mdc-text-field.html +29 -29
- package/src/text-field/mdc-text-field.ts +535 -535
- package/src/tooltip/mdc-default-tooltip-configuration.ts +5 -5
- package/src/tooltip/mdc-tooltip-attribute.ts +118 -118
- package/src/tooltip/mdc-tooltip.html +7 -7
- package/src/tooltip/mdc-tooltip.ts +6 -6
- package/src/top-app-bar/enhance-top-app-bar-actions.ts +9 -9
- package/src/top-app-bar/mdc-top-app-bar-action-item.ts +12 -12
- package/src/top-app-bar/mdc-top-app-bar-fixed-adjust.ts +13 -13
- package/src/top-app-bar/mdc-top-app-bar-nav-icon.ts +12 -12
- package/src/top-app-bar/mdc-top-app-bar-row.ts +7 -7
- package/src/top-app-bar/mdc-top-app-bar-section/mdc-top-app-bar-section.html +3 -3
- package/src/top-app-bar/mdc-top-app-bar-section/mdc-top-app-bar-section.ts +9 -9
- package/src/top-app-bar/mdc-top-app-bar-title.ts +7 -7
- package/src/top-app-bar/mdc-top-app-bar.html +9 -9
- package/src/top-app-bar/mdc-top-app-bar.ts +93 -93
- package/src/tree-view/i-tree-node.ts +8 -8
- package/src/tree-view/mdc-tree-node-meta.ts +11 -11
- package/src/tree-view/mdc-tree-node.ts +4 -4
- package/src/tree-view/node-filter.ts +12 -12
- package/src/tree-view/styles/_index.scss +1 -1
- package/src/tree-view/styles/_mixins.scss +145 -145
- package/src/tree-view/styles/_variables.scss +8 -8
- package/src/tree-view/styles/mdc-tree-view.import.scss +1 -1
- package/src/tree-view/styles/mdc-tree-view.scss +3 -3
- package/src/typography/mdc-typography.ts +130 -130
- package/src/validation/mdc-validation-controller-factory.ts +20 -20
- package/src/validation/mdc-validation-result-presenter.ts +36 -36
- package/src/validation/validate.ts +32 -0
- package/styles/mdc-all.scss +53 -52
- package/src/banner/doc/api.json +0 -1106
- package/src/base/doc/api.json +0 -1408
- package/src/button/doc/api.json +0 -621
- package/src/card/doc/api.json +0 -214
- package/src/checkbox/doc/api.json +0 -1320
- package/src/chips/doc/api.json +0 -2533
- package/src/circular-progress/doc/api.json +0 -1085
- package/src/data-table/doc/api.json +0 -2064
- package/src/dialog/doc/api.json +0 -1667
- package/src/drawer/doc/api.json +0 -1416
- package/src/elevation/doc/api.json +0 -317
- package/src/expandable/doc/api.json +0 -677
- package/src/fab/doc/api.json +0 -396
- package/src/floating-label/doc/api.json +0 -914
- package/src/form-field/doc/api.json +0 -948
- package/src/icon/doc/api.json +0 -224
- package/src/icon-button/doc/api.json +0 -1109
- package/src/image-list/doc/api.json +0 -438
- package/src/layout-grid/doc/api.json +0 -600
- package/src/line-ripple/doc/api.json +0 -857
- package/src/linear-progress/doc/api.json +0 -949
- package/src/list/doc/api.json +0 -5725
- package/src/lookup/doc/api.json +0 -2370
- package/src/menu/doc/api.json +0 -2246
- package/src/menu-surface/doc/api.json +0 -1800
- package/src/notched-outline/doc/api.json +0 -943
- package/src/radio/doc/api.json +0 -1159
- package/src/ripple/doc/api.json +0 -1212
- package/src/segmented-button/doc/api.json +0 -1937
- package/src/select/doc/api.json +0 -4247
- package/src/slider/doc/api.json +0 -1954
- package/src/snackbar/doc/api.json +0 -1699
- package/src/switch/doc/api.json +0 -899
- package/src/tab-bar/doc/api.json +0 -4253
- package/src/text-field/doc/api.json +0 -3179
- package/src/tooltip/doc/api.json +0 -2531
- package/src/top-app-bar/doc/api.json +0 -1752
- package/src/tree-view/doc/api.json +0 -1710
- package/src/typography/doc/api.json +0 -3058
- package/src/validation/doc/api.json +0 -371
|
@@ -1,331 +1,331 @@
|
|
|
1
|
-
import { booleanAttr, MdcComponent } from '../../base';
|
|
2
|
-
import { MDCListFoundation, MDCListAdapter, strings, MDCListIndex, MDCListSelectionChangeDetail } from '@material/list';
|
|
3
|
-
import { closest, matches } from '@material/dom/ponyfill';
|
|
4
|
-
import { MdcDeprecatedListItem, IMdcListActionEventDetail } from './mdc-deprecated-list-item/mdc-deprecated-list-item';
|
|
5
|
-
import { inject, customElement, bindable, CustomElement, slotted } from 'aurelia';
|
|
6
|
-
import template from './mdc-deprecated-list.html?raw';
|
|
7
|
-
|
|
8
|
-
strings.ACTION_EVENT = strings.ACTION_EVENT.toLowerCase();
|
|
9
|
-
|
|
10
|
-
export const mdcListStrings = {
|
|
11
|
-
ITEMS_CHANGED: 'mdclist:itemschanged'
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @selector mdc-deprecated-list
|
|
16
|
-
* @emits mdclist:action | Indicates that a list item with the specified index has been activated
|
|
17
|
-
* @emits mdclist:itemschanged | Indicates that the list of items has changed
|
|
18
|
-
*/
|
|
19
|
-
@inject(Element)
|
|
20
|
-
@customElement({ name: 'mdc-deprecated-list', template })
|
|
21
|
-
export class MdcDeprecatedList extends MdcComponent<MDCListFoundation>{
|
|
22
|
-
|
|
23
|
-
/** Increases the height of the row to give it greater visual separation from adjacent rows */
|
|
24
|
-
@bindable({ set: booleanAttr })
|
|
25
|
-
twoLine: boolean;
|
|
26
|
-
|
|
27
|
-
/** When enabled, the space and enter keys (or click event) will trigger an single list item to become selected and any other previous selected element to become deselected */
|
|
28
|
-
@bindable({ set: booleanAttr })
|
|
29
|
-
singleSelection: boolean;
|
|
30
|
-
async singleSelectionChanged() {
|
|
31
|
-
await this.initialised;
|
|
32
|
-
this.foundation?.setSingleSelection(this.singleSelection);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/** Sets the selection logic to apply/remove the mdc-list-item--activated class */
|
|
36
|
-
@bindable({ set: booleanAttr })
|
|
37
|
-
activated: boolean;
|
|
38
|
-
async activatedChanged() {
|
|
39
|
-
await this.initialised;
|
|
40
|
-
this.foundation?.setUseActivatedClass(this.activated);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/** Sets the list to an orientation causing the keys used for navigation to change. true results in the Up/Down arrow keys being used. If false, the Left/Right arrow keys are used. */
|
|
44
|
-
@bindable({ set: booleanAttr })
|
|
45
|
-
vertical: boolean = true;
|
|
46
|
-
|
|
47
|
-
/** Increases the density of the list, making it appear more compact */
|
|
48
|
-
@bindable({ set: booleanAttr })
|
|
49
|
-
dense: boolean;
|
|
50
|
-
|
|
51
|
-
/** Optional, configures lists that start with text */
|
|
52
|
-
@bindable({ set: booleanAttr })
|
|
53
|
-
textual: boolean;
|
|
54
|
-
|
|
55
|
-
/** Configures the leading tiles of each row to display images instead of icons. This will make the graphics of the list items larger. */
|
|
56
|
-
@bindable({ set: booleanAttr })
|
|
57
|
-
avatar: boolean;
|
|
58
|
-
|
|
59
|
-
/** Optional, configures the leading tile of each row to display icons */
|
|
60
|
-
@bindable({ set: booleanAttr })
|
|
61
|
-
icon: boolean;
|
|
62
|
-
|
|
63
|
-
/** Optional, configures the leading tile of each row to display images */
|
|
64
|
-
@bindable({ set: booleanAttr })
|
|
65
|
-
image: boolean;
|
|
66
|
-
|
|
67
|
-
/** Optional, configures the leading tile of each row to display smaller images (this is analogous to an avatar list but the image will not be rounded) */
|
|
68
|
-
@bindable({ set: booleanAttr })
|
|
69
|
-
thumbnail: boolean;
|
|
70
|
-
|
|
71
|
-
/** Optional, configures the leading tile of each row to display videos */
|
|
72
|
-
@bindable({ set: booleanAttr })
|
|
73
|
-
video: boolean;
|
|
74
|
-
|
|
75
|
-
@slotted({ query: 'mdc-deprecated-list-item' })
|
|
76
|
-
itemElements: HTMLElement[];
|
|
77
|
-
itemsChanged() {
|
|
78
|
-
this.emit(mdcListStrings.ITEMS_CHANGED, { items: this.itemElements }, true);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
get items(): MdcDeprecatedListItem[] {
|
|
82
|
-
return (this.itemElements ?? []).map(x => CustomElement.for<MdcDeprecatedListItem>(x).viewModel);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
@bindable({ set: booleanAttr })
|
|
86
|
-
typeahead: boolean;
|
|
87
|
-
async typeaheadChanged(hasTypeahead: boolean) {
|
|
88
|
-
await this.initialised;
|
|
89
|
-
this.foundation?.setHasTypeahead(hasTypeahead);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/** Sets the list to allow the up arrow on the first element to focus the last element of the list and vice versa */
|
|
93
|
-
@bindable({ set: booleanAttr })
|
|
94
|
-
wrapFocus: boolean;
|
|
95
|
-
async wrapFocusChanged() {
|
|
96
|
-
await this.initialised;
|
|
97
|
-
this.foundation?.setWrapFocus(this.wrapFocus);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
initialSyncWithDOM() {
|
|
101
|
-
this.layout();
|
|
102
|
-
this.initializeListType();
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
get listElements(): Element[] {
|
|
106
|
-
return Array.from(this.root.querySelectorAll('.mdc-deprecated-list-item'));
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Extracts the primary text from a list item.
|
|
111
|
-
* @param item The list item element.
|
|
112
|
-
* @return The primary text in the element.
|
|
113
|
-
*/
|
|
114
|
-
getPrimaryText(item: Element): string {
|
|
115
|
-
const primaryText = item.querySelector('.mdc-deprecated-list-item__primary-text');
|
|
116
|
-
if (primaryText) {
|
|
117
|
-
return primaryText.textContent ?? '';
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
const singleLineText = item.querySelector('.mdc-deprecated-list-item__text');
|
|
121
|
-
return singleLineText?.textContent ?? '';
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
getDefaultFoundation() {
|
|
125
|
-
// DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.
|
|
126
|
-
// To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.
|
|
127
|
-
const adapter: MDCListAdapter = {
|
|
128
|
-
addClassForElementIndex: (index, className) => {
|
|
129
|
-
const element = this.listElements[index];
|
|
130
|
-
if (element) {
|
|
131
|
-
element.classList.add(className);
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
focusItemAtIndex: (index) => {
|
|
135
|
-
const element = this.listElements[index] as HTMLElement | undefined;
|
|
136
|
-
if (element) {
|
|
137
|
-
element.focus();
|
|
138
|
-
}
|
|
139
|
-
},
|
|
140
|
-
getAttributeForElementIndex: (index, attr) => this.listElements[index].getAttribute(attr),
|
|
141
|
-
getFocusedElementIndex: () => this.listElements.indexOf(document.activeElement!),
|
|
142
|
-
getListItemCount: () => this.listElements.length,
|
|
143
|
-
getPrimaryTextAtIndex: (index) => this.getPrimaryText(this.listElements[index]),
|
|
144
|
-
hasCheckboxAtIndex: (index) => {
|
|
145
|
-
const listItem = this.listElements[index];
|
|
146
|
-
return !!listItem.querySelector(strings.CHECKBOX_SELECTOR);
|
|
147
|
-
},
|
|
148
|
-
hasRadioAtIndex: (index) => {
|
|
149
|
-
const listItem = this.listElements[index];
|
|
150
|
-
return !!listItem.querySelector(strings.RADIO_SELECTOR);
|
|
151
|
-
},
|
|
152
|
-
isCheckboxCheckedAtIndex: (index) => {
|
|
153
|
-
const listItem = this.listElements[index];
|
|
154
|
-
const toggleEl = listItem.querySelector<HTMLInputElement>(strings.CHECKBOX_SELECTOR);
|
|
155
|
-
return toggleEl!.checked;
|
|
156
|
-
},
|
|
157
|
-
isFocusInsideList: () => {
|
|
158
|
-
return this.root !== document.activeElement && this.root.contains(document.activeElement);
|
|
159
|
-
},
|
|
160
|
-
isRootFocused: () => document.activeElement === this.root,
|
|
161
|
-
listItemAtIndexHasClass: (index, className) => this.listElements[index].classList.contains(className),
|
|
162
|
-
notifyAction: (index) => {
|
|
163
|
-
const listItem = this.listElements[index];
|
|
164
|
-
if (!listItem.hasAttribute('no-list-action')) {
|
|
165
|
-
const data = CustomElement.for<MdcDeprecatedListItem>(listItem).viewModel.value;
|
|
166
|
-
this.emit<IMdcListActionEventDetail>(strings.ACTION_EVENT, { index, data }, /** shouldBubble */ true);
|
|
167
|
-
}
|
|
168
|
-
},
|
|
169
|
-
notifySelectionChange: (changedIndices: number[]) => {
|
|
170
|
-
this.emit<MDCListSelectionChangeDetail>(strings.SELECTION_CHANGE_EVENT,
|
|
171
|
-
{ changedIndices }, /** shouldBubble */ true);
|
|
172
|
-
},
|
|
173
|
-
removeClassForElementIndex: (index, className) => {
|
|
174
|
-
const element = this.listElements[index];
|
|
175
|
-
if (element) {
|
|
176
|
-
element.classList.remove(className);
|
|
177
|
-
}
|
|
178
|
-
},
|
|
179
|
-
setAttributeForElementIndex: (index, attr, value) => {
|
|
180
|
-
const element = this.listElements[index];
|
|
181
|
-
if (element) {
|
|
182
|
-
element.setAttribute(attr, value);
|
|
183
|
-
}
|
|
184
|
-
},
|
|
185
|
-
setCheckedCheckboxOrRadioAtIndex: (index, isChecked) => {
|
|
186
|
-
const listItem = this.listElements[index];
|
|
187
|
-
const toggleEl = listItem.querySelector<HTMLInputElement>(strings.CHECKBOX_RADIO_SELECTOR);
|
|
188
|
-
if (toggleEl?.disabled) {
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
toggleEl!.checked = isChecked;
|
|
192
|
-
|
|
193
|
-
const event = document.createEvent('Event');
|
|
194
|
-
event.initEvent('change', true, true);
|
|
195
|
-
toggleEl!.dispatchEvent(event);
|
|
196
|
-
},
|
|
197
|
-
setTabIndexForListItemChildren: (listItemIndex, tabIndexValue) => {
|
|
198
|
-
const element = this.listElements[listItemIndex];
|
|
199
|
-
const listItemChildren: Element[] =
|
|
200
|
-
[].slice.call(element.querySelectorAll(strings.CHILD_ELEMENTS_TO_TOGGLE_TABINDEX));
|
|
201
|
-
listItemChildren.forEach((el) => el.setAttribute('tabindex', tabIndexValue));
|
|
202
|
-
},
|
|
203
|
-
};
|
|
204
|
-
return new MDCListFoundation(adapter);
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* @hidden
|
|
209
|
-
* Used to figure out which list item this event is targetting. Or returns -1 if
|
|
210
|
-
* there is no list item
|
|
211
|
-
*/
|
|
212
|
-
private getListItemIndex_(evt: Event) {
|
|
213
|
-
const eventTarget = evt.target as Element;
|
|
214
|
-
const nearestParent = closest(eventTarget, '.mdc-deprecated-list-item, .mdc-deprecated-list');
|
|
215
|
-
|
|
216
|
-
// Get the index of the element if it is a list item.
|
|
217
|
-
if (nearestParent && matches(nearestParent, '.mdc-deprecated-list-item')) {
|
|
218
|
-
return this.listElements.indexOf(nearestParent);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
return -1;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* @hidden
|
|
226
|
-
* Used to figure out which element was clicked before sending the event to the foundation.
|
|
227
|
-
*/
|
|
228
|
-
handleFocusInEvent_(evt: FocusEvent) {
|
|
229
|
-
const index = this.getListItemIndex_(evt);
|
|
230
|
-
this.foundation?.handleFocusIn(index);
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* @hidden
|
|
235
|
-
* Used to figure out which element was clicked before sending the event to the foundation.
|
|
236
|
-
*/
|
|
237
|
-
handleFocusOutEvent_(evt: FocusEvent) {
|
|
238
|
-
const index = this.getListItemIndex_(evt);
|
|
239
|
-
this.foundation?.handleFocusOut(index);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* @hidden
|
|
244
|
-
* Used to figure out which element was focused when keydown event occurred before sending the event to the
|
|
245
|
-
* foundation.
|
|
246
|
-
*/
|
|
247
|
-
handleKeydownEvent_(evt: KeyboardEvent) {
|
|
248
|
-
const index = this.getListItemIndex_(evt);
|
|
249
|
-
const target = evt.target as Element;
|
|
250
|
-
if (!target.hasAttribute('not-selectable')) {
|
|
251
|
-
this.foundation?.handleKeydown(evt, target.classList.contains('mdc-deprecated-list-item'), index);
|
|
252
|
-
}
|
|
253
|
-
return true;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
/**
|
|
257
|
-
* @hidden
|
|
258
|
-
* Used to figure out which element was clicked before sending the event to the foundation.
|
|
259
|
-
*/
|
|
260
|
-
handleClickEvent_(evt: MouseEvent) {
|
|
261
|
-
const index = this.getListItemIndex_(evt);
|
|
262
|
-
const target = evt.target as Element;
|
|
263
|
-
// Toggle the checkbox only if it's not the target of the event, or the checkbox will have 2 change events.
|
|
264
|
-
const toggleCheckbox = !matches(target, strings.CHECKBOX_RADIO_SELECTOR);
|
|
265
|
-
this.foundation?.handleClick(index, toggleCheckbox);
|
|
266
|
-
return true;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* @hidden
|
|
271
|
-
* @return Whether typeahead is currently matching a user-specified prefix.
|
|
272
|
-
*/
|
|
273
|
-
get typeaheadInProgress(): boolean {
|
|
274
|
-
return this.foundation!.isTypeaheadInProgress();
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
/**
|
|
278
|
-
* @hidden
|
|
279
|
-
* Given the next desired character from the user, adds it to the typeahead
|
|
280
|
-
* buffer. Then, attempts to find the next option matching the buffer. Wraps
|
|
281
|
-
* around if at the end of options.
|
|
282
|
-
*
|
|
283
|
-
* @param nextChar The next character to add to the prefix buffer.
|
|
284
|
-
* @param startingIndex The index from which to start matching. Defaults to
|
|
285
|
-
* the currently focused index.
|
|
286
|
-
* @return The index of the matched item.
|
|
287
|
-
*/
|
|
288
|
-
typeaheadMatchItem(nextChar: string, startingIndex?: number): number {
|
|
289
|
-
return this.foundation!.typeaheadMatchItem(nextChar, startingIndex, /** skipFocus */ true);
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
layout() {
|
|
293
|
-
const direction = this.root.getAttribute(strings.ARIA_ORIENTATION);
|
|
294
|
-
this.vertical = direction !== strings.ARIA_ORIENTATION_HORIZONTAL;
|
|
295
|
-
this.foundation?.layout();
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
get selectedIndex(): MDCListIndex {
|
|
299
|
-
return this.foundation!.getSelectedIndex();
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
set selectedIndex(index: MDCListIndex) {
|
|
303
|
-
this.foundation?.setSelectedIndex(index);
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
/**
|
|
307
|
-
* @hidden
|
|
308
|
-
* Initialize selectedIndex value based on pre-selected checkbox list items, single selection or radio.
|
|
309
|
-
*/
|
|
310
|
-
initializeListType() {
|
|
311
|
-
const checkboxListItems = this.root.querySelectorAll(strings.ARIA_ROLE_CHECKBOX_SELECTOR);
|
|
312
|
-
const radioSelectedListItem = this.root.querySelector(strings.ARIA_CHECKED_RADIO_SELECTOR);
|
|
313
|
-
|
|
314
|
-
if (checkboxListItems.length) {
|
|
315
|
-
const preselectedItems = this.root.querySelectorAll(strings.ARIA_CHECKED_CHECKBOX_SELECTOR);
|
|
316
|
-
this.selectedIndex = [].map.call(preselectedItems, (listItem: Element) => this.listElements.indexOf(listItem)) as number[];
|
|
317
|
-
} else if (radioSelectedListItem) {
|
|
318
|
-
this.selectedIndex = this.listElements.indexOf(radioSelectedListItem);
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
/** @hidden */
|
|
324
|
-
export interface IMdcDeprecatedListElement extends HTMLElement {
|
|
325
|
-
au: {
|
|
326
|
-
controller: {
|
|
327
|
-
viewModel: MdcDeprecatedList;
|
|
328
|
-
};
|
|
329
|
-
};
|
|
330
|
-
}
|
|
331
|
-
|
|
1
|
+
import { booleanAttr, MdcComponent } from '../../base';
|
|
2
|
+
import { MDCListFoundation, MDCListAdapter, strings, MDCListIndex, MDCListSelectionChangeDetail } from '@material/list';
|
|
3
|
+
import { closest, matches } from '@material/dom/ponyfill';
|
|
4
|
+
import { MdcDeprecatedListItem, IMdcListActionEventDetail } from './mdc-deprecated-list-item/mdc-deprecated-list-item';
|
|
5
|
+
import { inject, customElement, bindable, CustomElement, slotted } from 'aurelia';
|
|
6
|
+
import template from './mdc-deprecated-list.html?raw';
|
|
7
|
+
|
|
8
|
+
strings.ACTION_EVENT = strings.ACTION_EVENT.toLowerCase();
|
|
9
|
+
|
|
10
|
+
export const mdcListStrings = {
|
|
11
|
+
ITEMS_CHANGED: 'mdclist:itemschanged'
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @selector mdc-deprecated-list
|
|
16
|
+
* @emits mdclist:action | Indicates that a list item with the specified index has been activated
|
|
17
|
+
* @emits mdclist:itemschanged | Indicates that the list of items has changed
|
|
18
|
+
*/
|
|
19
|
+
@inject(Element)
|
|
20
|
+
@customElement({ name: 'mdc-deprecated-list', template })
|
|
21
|
+
export class MdcDeprecatedList extends MdcComponent<MDCListFoundation>{
|
|
22
|
+
|
|
23
|
+
/** Increases the height of the row to give it greater visual separation from adjacent rows */
|
|
24
|
+
@bindable({ set: booleanAttr })
|
|
25
|
+
twoLine: boolean;
|
|
26
|
+
|
|
27
|
+
/** When enabled, the space and enter keys (or click event) will trigger an single list item to become selected and any other previous selected element to become deselected */
|
|
28
|
+
@bindable({ set: booleanAttr })
|
|
29
|
+
singleSelection: boolean;
|
|
30
|
+
async singleSelectionChanged() {
|
|
31
|
+
await this.initialised;
|
|
32
|
+
this.foundation?.setSingleSelection(this.singleSelection);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/** Sets the selection logic to apply/remove the mdc-list-item--activated class */
|
|
36
|
+
@bindable({ set: booleanAttr })
|
|
37
|
+
activated: boolean;
|
|
38
|
+
async activatedChanged() {
|
|
39
|
+
await this.initialised;
|
|
40
|
+
this.foundation?.setUseActivatedClass(this.activated);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** Sets the list to an orientation causing the keys used for navigation to change. true results in the Up/Down arrow keys being used. If false, the Left/Right arrow keys are used. */
|
|
44
|
+
@bindable({ set: booleanAttr })
|
|
45
|
+
vertical: boolean = true;
|
|
46
|
+
|
|
47
|
+
/** Increases the density of the list, making it appear more compact */
|
|
48
|
+
@bindable({ set: booleanAttr })
|
|
49
|
+
dense: boolean;
|
|
50
|
+
|
|
51
|
+
/** Optional, configures lists that start with text */
|
|
52
|
+
@bindable({ set: booleanAttr })
|
|
53
|
+
textual: boolean;
|
|
54
|
+
|
|
55
|
+
/** Configures the leading tiles of each row to display images instead of icons. This will make the graphics of the list items larger. */
|
|
56
|
+
@bindable({ set: booleanAttr })
|
|
57
|
+
avatar: boolean;
|
|
58
|
+
|
|
59
|
+
/** Optional, configures the leading tile of each row to display icons */
|
|
60
|
+
@bindable({ set: booleanAttr })
|
|
61
|
+
icon: boolean;
|
|
62
|
+
|
|
63
|
+
/** Optional, configures the leading tile of each row to display images */
|
|
64
|
+
@bindable({ set: booleanAttr })
|
|
65
|
+
image: boolean;
|
|
66
|
+
|
|
67
|
+
/** Optional, configures the leading tile of each row to display smaller images (this is analogous to an avatar list but the image will not be rounded) */
|
|
68
|
+
@bindable({ set: booleanAttr })
|
|
69
|
+
thumbnail: boolean;
|
|
70
|
+
|
|
71
|
+
/** Optional, configures the leading tile of each row to display videos */
|
|
72
|
+
@bindable({ set: booleanAttr })
|
|
73
|
+
video: boolean;
|
|
74
|
+
|
|
75
|
+
@slotted({ query: 'mdc-deprecated-list-item' })
|
|
76
|
+
itemElements: HTMLElement[];
|
|
77
|
+
itemsChanged() {
|
|
78
|
+
this.emit(mdcListStrings.ITEMS_CHANGED, { items: this.itemElements }, true);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
get items(): MdcDeprecatedListItem[] {
|
|
82
|
+
return (this.itemElements ?? []).map(x => CustomElement.for<MdcDeprecatedListItem>(x).viewModel);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@bindable({ set: booleanAttr })
|
|
86
|
+
typeahead: boolean;
|
|
87
|
+
async typeaheadChanged(hasTypeahead: boolean) {
|
|
88
|
+
await this.initialised;
|
|
89
|
+
this.foundation?.setHasTypeahead(hasTypeahead);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/** Sets the list to allow the up arrow on the first element to focus the last element of the list and vice versa */
|
|
93
|
+
@bindable({ set: booleanAttr })
|
|
94
|
+
wrapFocus: boolean;
|
|
95
|
+
async wrapFocusChanged() {
|
|
96
|
+
await this.initialised;
|
|
97
|
+
this.foundation?.setWrapFocus(this.wrapFocus);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
initialSyncWithDOM() {
|
|
101
|
+
this.layout();
|
|
102
|
+
this.initializeListType();
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
get listElements(): Element[] {
|
|
106
|
+
return Array.from(this.root.querySelectorAll('.mdc-deprecated-list-item'));
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Extracts the primary text from a list item.
|
|
111
|
+
* @param item The list item element.
|
|
112
|
+
* @return The primary text in the element.
|
|
113
|
+
*/
|
|
114
|
+
getPrimaryText(item: Element): string {
|
|
115
|
+
const primaryText = item.querySelector('.mdc-deprecated-list-item__primary-text');
|
|
116
|
+
if (primaryText) {
|
|
117
|
+
return primaryText.textContent ?? '';
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const singleLineText = item.querySelector('.mdc-deprecated-list-item__text');
|
|
121
|
+
return singleLineText?.textContent ?? '';
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
getDefaultFoundation() {
|
|
125
|
+
// DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.
|
|
126
|
+
// To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.
|
|
127
|
+
const adapter: MDCListAdapter = {
|
|
128
|
+
addClassForElementIndex: (index, className) => {
|
|
129
|
+
const element = this.listElements[index];
|
|
130
|
+
if (element) {
|
|
131
|
+
element.classList.add(className);
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
focusItemAtIndex: (index) => {
|
|
135
|
+
const element = this.listElements[index] as HTMLElement | undefined;
|
|
136
|
+
if (element) {
|
|
137
|
+
element.focus();
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
getAttributeForElementIndex: (index, attr) => this.listElements[index].getAttribute(attr),
|
|
141
|
+
getFocusedElementIndex: () => this.listElements.indexOf(document.activeElement!),
|
|
142
|
+
getListItemCount: () => this.listElements.length,
|
|
143
|
+
getPrimaryTextAtIndex: (index) => this.getPrimaryText(this.listElements[index]),
|
|
144
|
+
hasCheckboxAtIndex: (index) => {
|
|
145
|
+
const listItem = this.listElements[index];
|
|
146
|
+
return !!listItem.querySelector(strings.CHECKBOX_SELECTOR);
|
|
147
|
+
},
|
|
148
|
+
hasRadioAtIndex: (index) => {
|
|
149
|
+
const listItem = this.listElements[index];
|
|
150
|
+
return !!listItem.querySelector(strings.RADIO_SELECTOR);
|
|
151
|
+
},
|
|
152
|
+
isCheckboxCheckedAtIndex: (index) => {
|
|
153
|
+
const listItem = this.listElements[index];
|
|
154
|
+
const toggleEl = listItem.querySelector<HTMLInputElement>(strings.CHECKBOX_SELECTOR);
|
|
155
|
+
return toggleEl!.checked;
|
|
156
|
+
},
|
|
157
|
+
isFocusInsideList: () => {
|
|
158
|
+
return this.root !== document.activeElement && this.root.contains(document.activeElement);
|
|
159
|
+
},
|
|
160
|
+
isRootFocused: () => document.activeElement === this.root,
|
|
161
|
+
listItemAtIndexHasClass: (index, className) => this.listElements[index].classList.contains(className),
|
|
162
|
+
notifyAction: (index) => {
|
|
163
|
+
const listItem = this.listElements[index];
|
|
164
|
+
if (!listItem.hasAttribute('no-list-action')) {
|
|
165
|
+
const data = CustomElement.for<MdcDeprecatedListItem>(listItem).viewModel.value;
|
|
166
|
+
this.emit<IMdcListActionEventDetail>(strings.ACTION_EVENT, { index, data }, /** shouldBubble */ true);
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
notifySelectionChange: (changedIndices: number[]) => {
|
|
170
|
+
this.emit<MDCListSelectionChangeDetail>(strings.SELECTION_CHANGE_EVENT,
|
|
171
|
+
{ changedIndices }, /** shouldBubble */ true);
|
|
172
|
+
},
|
|
173
|
+
removeClassForElementIndex: (index, className) => {
|
|
174
|
+
const element = this.listElements[index];
|
|
175
|
+
if (element) {
|
|
176
|
+
element.classList.remove(className);
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
setAttributeForElementIndex: (index, attr, value) => {
|
|
180
|
+
const element = this.listElements[index];
|
|
181
|
+
if (element) {
|
|
182
|
+
element.setAttribute(attr, value);
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
setCheckedCheckboxOrRadioAtIndex: (index, isChecked) => {
|
|
186
|
+
const listItem = this.listElements[index];
|
|
187
|
+
const toggleEl = listItem.querySelector<HTMLInputElement>(strings.CHECKBOX_RADIO_SELECTOR);
|
|
188
|
+
if (toggleEl?.disabled) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
toggleEl!.checked = isChecked;
|
|
192
|
+
|
|
193
|
+
const event = document.createEvent('Event');
|
|
194
|
+
event.initEvent('change', true, true);
|
|
195
|
+
toggleEl!.dispatchEvent(event);
|
|
196
|
+
},
|
|
197
|
+
setTabIndexForListItemChildren: (listItemIndex, tabIndexValue) => {
|
|
198
|
+
const element = this.listElements[listItemIndex];
|
|
199
|
+
const listItemChildren: Element[] =
|
|
200
|
+
[].slice.call(element.querySelectorAll(strings.CHILD_ELEMENTS_TO_TOGGLE_TABINDEX));
|
|
201
|
+
listItemChildren.forEach((el) => el.setAttribute('tabindex', tabIndexValue));
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
return new MDCListFoundation(adapter);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* @hidden
|
|
209
|
+
* Used to figure out which list item this event is targetting. Or returns -1 if
|
|
210
|
+
* there is no list item
|
|
211
|
+
*/
|
|
212
|
+
private getListItemIndex_(evt: Event) {
|
|
213
|
+
const eventTarget = evt.target as Element;
|
|
214
|
+
const nearestParent = closest(eventTarget, '.mdc-deprecated-list-item, .mdc-deprecated-list');
|
|
215
|
+
|
|
216
|
+
// Get the index of the element if it is a list item.
|
|
217
|
+
if (nearestParent && matches(nearestParent, '.mdc-deprecated-list-item')) {
|
|
218
|
+
return this.listElements.indexOf(nearestParent);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return -1;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* @hidden
|
|
226
|
+
* Used to figure out which element was clicked before sending the event to the foundation.
|
|
227
|
+
*/
|
|
228
|
+
handleFocusInEvent_(evt: FocusEvent) {
|
|
229
|
+
const index = this.getListItemIndex_(evt);
|
|
230
|
+
this.foundation?.handleFocusIn(index);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* @hidden
|
|
235
|
+
* Used to figure out which element was clicked before sending the event to the foundation.
|
|
236
|
+
*/
|
|
237
|
+
handleFocusOutEvent_(evt: FocusEvent) {
|
|
238
|
+
const index = this.getListItemIndex_(evt);
|
|
239
|
+
this.foundation?.handleFocusOut(index);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* @hidden
|
|
244
|
+
* Used to figure out which element was focused when keydown event occurred before sending the event to the
|
|
245
|
+
* foundation.
|
|
246
|
+
*/
|
|
247
|
+
handleKeydownEvent_(evt: KeyboardEvent) {
|
|
248
|
+
const index = this.getListItemIndex_(evt);
|
|
249
|
+
const target = evt.target as Element;
|
|
250
|
+
if (!target.hasAttribute('not-selectable')) {
|
|
251
|
+
this.foundation?.handleKeydown(evt, target.classList.contains('mdc-deprecated-list-item'), index);
|
|
252
|
+
}
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* @hidden
|
|
258
|
+
* Used to figure out which element was clicked before sending the event to the foundation.
|
|
259
|
+
*/
|
|
260
|
+
handleClickEvent_(evt: MouseEvent) {
|
|
261
|
+
const index = this.getListItemIndex_(evt);
|
|
262
|
+
const target = evt.target as Element;
|
|
263
|
+
// Toggle the checkbox only if it's not the target of the event, or the checkbox will have 2 change events.
|
|
264
|
+
const toggleCheckbox = !matches(target, strings.CHECKBOX_RADIO_SELECTOR);
|
|
265
|
+
this.foundation?.handleClick(index, toggleCheckbox);
|
|
266
|
+
return true;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* @hidden
|
|
271
|
+
* @return Whether typeahead is currently matching a user-specified prefix.
|
|
272
|
+
*/
|
|
273
|
+
get typeaheadInProgress(): boolean {
|
|
274
|
+
return this.foundation!.isTypeaheadInProgress();
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* @hidden
|
|
279
|
+
* Given the next desired character from the user, adds it to the typeahead
|
|
280
|
+
* buffer. Then, attempts to find the next option matching the buffer. Wraps
|
|
281
|
+
* around if at the end of options.
|
|
282
|
+
*
|
|
283
|
+
* @param nextChar The next character to add to the prefix buffer.
|
|
284
|
+
* @param startingIndex The index from which to start matching. Defaults to
|
|
285
|
+
* the currently focused index.
|
|
286
|
+
* @return The index of the matched item.
|
|
287
|
+
*/
|
|
288
|
+
typeaheadMatchItem(nextChar: string, startingIndex?: number): number {
|
|
289
|
+
return this.foundation!.typeaheadMatchItem(nextChar, startingIndex, /** skipFocus */ true);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
layout() {
|
|
293
|
+
const direction = this.root.getAttribute(strings.ARIA_ORIENTATION);
|
|
294
|
+
this.vertical = direction !== strings.ARIA_ORIENTATION_HORIZONTAL;
|
|
295
|
+
this.foundation?.layout();
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
get selectedIndex(): MDCListIndex {
|
|
299
|
+
return this.foundation!.getSelectedIndex();
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
set selectedIndex(index: MDCListIndex) {
|
|
303
|
+
this.foundation?.setSelectedIndex(index);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* @hidden
|
|
308
|
+
* Initialize selectedIndex value based on pre-selected checkbox list items, single selection or radio.
|
|
309
|
+
*/
|
|
310
|
+
initializeListType() {
|
|
311
|
+
const checkboxListItems = this.root.querySelectorAll(strings.ARIA_ROLE_CHECKBOX_SELECTOR);
|
|
312
|
+
const radioSelectedListItem = this.root.querySelector(strings.ARIA_CHECKED_RADIO_SELECTOR);
|
|
313
|
+
|
|
314
|
+
if (checkboxListItems.length) {
|
|
315
|
+
const preselectedItems = this.root.querySelectorAll(strings.ARIA_CHECKED_CHECKBOX_SELECTOR);
|
|
316
|
+
this.selectedIndex = [].map.call(preselectedItems, (listItem: Element) => this.listElements.indexOf(listItem)) as number[];
|
|
317
|
+
} else if (radioSelectedListItem) {
|
|
318
|
+
this.selectedIndex = this.listElements.indexOf(radioSelectedListItem);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
/** @hidden */
|
|
324
|
+
export interface IMdcDeprecatedListElement extends HTMLElement {
|
|
325
|
+
au: {
|
|
326
|
+
controller: {
|
|
327
|
+
viewModel: MdcDeprecatedList;
|
|
328
|
+
};
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
|