@aurelia-mdc-web/all 9.3.3-au2 → 9.3.5-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 +5 -9
- package/dist/alert/alert-configuration.js.map +1 -1
- package/dist/alert/alert-modal/alert-modal.js +8 -11
- package/dist/alert/alert-modal/alert-modal.js.map +1 -1
- package/dist/alert/alert-modal/alert-modal.scss +10 -0
- package/dist/alert/alert-modal/i-alert-modal-payload.js +8 -7
- package/dist/alert/alert-modal/i-alert-modal-payload.js.map +1 -1
- package/dist/alert/alert-service.js +52 -37
- package/dist/alert/alert-service.js.map +1 -1
- package/dist/alert/decorators/confirm-action.js +1 -4
- package/dist/alert/decorators/confirm-action.js.map +1 -1
- package/dist/alert/decorators/using-progress.js +1 -4
- package/dist/alert/decorators/using-progress.js.map +1 -1
- package/dist/alert/exceptions-tracker.js +1 -5
- package/dist/alert/exceptions-tracker.js.map +1 -1
- package/dist/alert/global-progress/global-progress.js +24 -27
- package/dist/alert/global-progress/global-progress.js.map +1 -1
- package/dist/alert/global-progress/global-progress.scss +38 -0
- package/dist/alert/prompt-dialog/prompt-dialog.js +9 -12
- package/dist/alert/prompt-dialog/prompt-dialog.js.map +1 -1
- package/dist/banner/mdc-banner.js +42 -45
- package/dist/banner/mdc-banner.js.map +1 -1
- package/dist/base/attributes/mdc-focus-trap.js +22 -25
- package/dist/base/attributes/mdc-focus-trap.js.map +1 -1
- package/dist/base/elements/i-validated-element.js +1 -2
- package/dist/base/elements/mdc-promisify-reference.js +13 -16
- package/dist/base/elements/mdc-promisify-reference.js.map +1 -1
- package/dist/base/index.js +9 -21
- package/dist/base/index.js.map +1 -1
- package/dist/base/interceptors.js +5 -12
- package/dist/base/interceptors.js.map +1 -1
- package/dist/base/material-palette.js +1 -4
- package/dist/base/material-palette.js.map +1 -1
- package/dist/base/mdc-component.js +1 -5
- package/dist/base/mdc-component.js.map +1 -1
- package/dist/base/next-element.js +1 -4
- package/dist/base/next-element.js.map +1 -1
- package/dist/button/enhance-mdc-button.js +6 -9
- package/dist/button/enhance-mdc-button.js.map +1 -1
- package/dist/button/mdc-button-label.js +6 -9
- package/dist/button/mdc-button-label.js.map +1 -1
- package/dist/button/mdc-button.js +27 -30
- package/dist/button/mdc-button.js.map +1 -1
- package/dist/card/mdc-card-action-buttons.js +6 -9
- package/dist/card/mdc-card-action-buttons.js.map +1 -1
- package/dist/card/mdc-card-action-icons.js +6 -9
- package/dist/card/mdc-card-action-icons.js.map +1 -1
- package/dist/card/mdc-card-actions/mdc-card-actions.js +12 -15
- package/dist/card/mdc-card-actions/mdc-card-actions.js.map +1 -1
- package/dist/card/mdc-card-media/mdc-card-media.js +15 -18
- package/dist/card/mdc-card-media/mdc-card-media.js.map +1 -1
- package/dist/card/mdc-card-primary-action.js +12 -15
- package/dist/card/mdc-card-primary-action.js.map +1 -1
- package/dist/card/mdc-card.js +12 -15
- package/dist/card/mdc-card.js.map +1 -1
- package/dist/checkbox/mdc-checkbox.js +35 -38
- package/dist/checkbox/mdc-checkbox.js.map +1 -1
- package/dist/chips/mdc-chip/mdc-chip.js +34 -37
- package/dist/chips/mdc-chip/mdc-chip.js.map +1 -1
- package/dist/chips/mdc-chip-action/enhance-mdc-chip-action.js +6 -9
- package/dist/chips/mdc-chip-action/enhance-mdc-chip-action.js.map +1 -1
- package/dist/chips/mdc-chip-action/mdc-chip-action.js +37 -40
- package/dist/chips/mdc-chip-action/mdc-chip-action.js.map +1 -1
- package/dist/chips/mdc-chip-set/mdc-chip-set.js +24 -27
- package/dist/chips/mdc-chip-set/mdc-chip-set.js.map +1 -1
- package/dist/chips/styles/_index.scss +1 -0
- package/dist/chips/styles/mdc-chips.import.scss +1 -0
- package/dist/chips/styles/mdc-chips.scss +11 -0
- package/dist/circular-progress/mdc-circular-progress.js +22 -25
- package/dist/circular-progress/mdc-circular-progress.js.map +1 -1
- package/dist/circular-progress/styles/_index.scss +1 -0
- package/dist/circular-progress/styles/mdc-circular-progress.import.scss +1 -0
- package/dist/circular-progress/styles/mdc-circular-progress.scss +14 -0
- package/dist/data-table/mdc-data-table-row.js +10 -13
- package/dist/data-table/mdc-data-table-row.js.map +1 -1
- package/dist/data-table/mdc-data-table.js +88 -91
- package/dist/data-table/mdc-data-table.js.map +1 -1
- package/dist/data-table/styles/_index.scss +1 -0
- package/dist/data-table/styles/mdc-data-table.import.scss +1 -0
- package/dist/data-table/styles/mdc-data-table.scss +64 -0
- package/dist/dialog/mdc-dialog-actions.js +10 -13
- package/dist/dialog/mdc-dialog-actions.js.map +1 -1
- package/dist/dialog/mdc-dialog-content.js +6 -9
- package/dist/dialog/mdc-dialog-content.js.map +1 -1
- package/dist/dialog/mdc-dialog-service.js +13 -17
- package/dist/dialog/mdc-dialog-service.js.map +1 -1
- package/dist/dialog/mdc-dialog-title.js +6 -9
- package/dist/dialog/mdc-dialog-title.js.map +1 -1
- package/dist/dialog/mdc-dialog.js +46 -49
- package/dist/dialog/mdc-dialog.js.map +1 -1
- package/dist/drawer/mdc-drawer-app-content.js +6 -9
- package/dist/drawer/mdc-drawer-app-content.js.map +1 -1
- package/dist/drawer/mdc-drawer-content.js +6 -9
- package/dist/drawer/mdc-drawer-content.js.map +1 -1
- package/dist/drawer/mdc-drawer-header/mdc-drawer-header.js +14 -17
- package/dist/drawer/mdc-drawer-header/mdc-drawer-header.js.map +1 -1
- package/dist/drawer/mdc-drawer.js +21 -24
- package/dist/drawer/mdc-drawer.js.map +1 -1
- package/dist/drawer/styles/_index.scss +1 -0
- package/dist/drawer/styles/mdc-drawer.import.scss +1 -0
- package/dist/drawer/styles/mdc-drawer.scss +0 -0
- package/dist/elevation/mdc-elevation.js +6 -9
- package/dist/elevation/mdc-elevation.js.map +1 -1
- package/dist/expandable/mdc-expandable.js +17 -20
- package/dist/expandable/mdc-expandable.js.map +1 -1
- package/dist/expandable/styles/_icon-variables.scss +3 -0
- package/dist/expandable/styles/_index.scss +1 -0
- package/dist/expandable/styles/_mixins.scss +287 -0
- package/dist/expandable/styles/_variables.scss +17 -0
- package/dist/expandable/styles/mdc-expandable.import.scss +1 -0
- package/dist/expandable/styles/mdc-expandable.scss +3 -0
- package/dist/fab/enhance-mdc-fab.js +6 -9
- package/dist/fab/enhance-mdc-fab.js.map +1 -1
- package/dist/fab/mdc-fab-icon.js +6 -9
- package/dist/fab/mdc-fab-icon.js.map +1 -1
- package/dist/fab/mdc-fab.js +30 -33
- package/dist/fab/mdc-fab.js.map +1 -1
- package/dist/floating-label/mdc-floating-label.js +13 -16
- package/dist/floating-label/mdc-floating-label.js.map +1 -1
- package/dist/form-field/mdc-form-field.js +24 -27
- package/dist/form-field/mdc-form-field.js.map +1 -1
- package/dist/icon/mdc-icon.js +7 -10
- package/dist/icon/mdc-icon.js.map +1 -1
- package/dist/icon-button/enhance-mdc-icon-button.js +6 -9
- package/dist/icon-button/enhance-mdc-icon-button.js.map +1 -1
- package/dist/icon-button/mdc-icon-button-icon/mdc-icon-button-icon.js +15 -18
- package/dist/icon-button/mdc-icon-button-icon/mdc-icon-button-icon.js.map +1 -1
- package/dist/icon-button/mdc-icon-button.js +25 -28
- package/dist/icon-button/mdc-icon-button.js.map +1 -1
- package/dist/image-list/mdc-image-list-item/mdc-image-list-item.js +19 -22
- package/dist/image-list/mdc-image-list-item/mdc-image-list-item.js.map +1 -1
- package/dist/image-list/mdc-image-list.js +18 -21
- package/dist/image-list/mdc-image-list.js.map +1 -1
- package/dist/image-list/styles/_index.scss +1 -0
- package/dist/image-list/styles/mdc-image-list.import.scss +1 -0
- package/dist/image-list/styles/mdc-image-list.scss +7 -0
- package/dist/index.js +151 -297
- package/dist/index.js.map +1 -1
- package/dist/layout-grid/mdc-layout-grid-cell/mdc-layout-grid-cell.js +33 -36
- 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 +6 -9
- package/dist/layout-grid/mdc-layout-grid-inner.js.map +1 -1
- package/dist/layout-grid/mdc-layout-grid.js +30 -33
- package/dist/layout-grid/mdc-layout-grid.js.map +1 -1
- package/dist/layout-grid/styles/_index.scss +1 -0
- package/dist/layout-grid/styles/mdc-layout-grid.import.scss +1 -0
- package/dist/layout-grid/styles/mdc-layout-grid.scss +11 -0
- package/dist/line-ripple/mdc-line-ripple.js +10 -13
- package/dist/line-ripple/mdc-line-ripple.js.map +1 -1
- package/dist/linear-progress/mdc-linear-progress.js +23 -26
- 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.js +15 -18
- 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 +14 -17
- 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 +6 -9
- 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 +6 -9
- 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 +6 -9
- 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.js +25 -28
- 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 +6 -9
- 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 +6 -9
- 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.js +75 -78
- package/dist/list/mdc-deprecated-list/mdc-deprecated-list.js.map +1 -1
- package/dist/list/mdc-list-divider/mdc-list-divider.js +18 -21
- package/dist/list/mdc-list-divider/mdc-list-divider.js.map +1 -1
- package/dist/list/mdc-list-group.js +14 -17
- package/dist/list/mdc-list-group.js.map +1 -1
- package/dist/list/mdc-list-item/enhance-mdc-list-item.js +6 -9
- 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 +6 -9
- 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 +6 -9
- package/dist/list/mdc-list-item/mdc-list-item-trailing.js.map +1 -1
- package/dist/list/mdc-list-item/mdc-list-item.js +37 -40
- package/dist/list/mdc-list-item/mdc-list-item.js.map +1 -1
- package/dist/list/mdc-list-item-overline-text.js +6 -9
- package/dist/list/mdc-list-item-overline-text.js.map +1 -1
- package/dist/list/mdc-list-item-primary-text.js +6 -9
- package/dist/list/mdc-list-item-primary-text.js.map +1 -1
- package/dist/list/mdc-list-item-secondary-text.js +6 -9
- package/dist/list/mdc-list-item-secondary-text.js.map +1 -1
- package/dist/list/mdc-list.js +55 -58
- package/dist/list/mdc-list.js.map +1 -1
- package/dist/list/styles/_index.scss +1 -0
- package/dist/list/styles/mdc-list.import.scss +1 -0
- package/dist/list/styles/mdc-list.scss +6 -0
- package/dist/lookup/discardable-promise.js +1 -5
- package/dist/lookup/discardable-promise.js.map +1 -1
- package/dist/lookup/mdc-lookup-configuration.js +1 -5
- package/dist/lookup/mdc-lookup-configuration.js.map +1 -1
- package/dist/lookup/mdc-lookup.js +66 -69
- package/dist/lookup/mdc-lookup.js.map +1 -1
- package/dist/mdc-configuration.js +11 -15
- package/dist/mdc-configuration.js.map +1 -1
- package/dist/menu/mdc-menu-selection-group-icon.js +6 -9
- package/dist/menu/mdc-menu-selection-group-icon.js.map +1 -1
- package/dist/menu/mdc-menu-selection-group.js +6 -9
- package/dist/menu/mdc-menu-selection-group.js.map +1 -1
- package/dist/menu/mdc-menu.js +68 -71
- package/dist/menu/mdc-menu.js.map +1 -1
- package/dist/menu-surface/mdc-menu-surface-anchor.js +8 -11
- package/dist/menu-surface/mdc-menu-surface-anchor.js.map +1 -1
- package/dist/menu-surface/mdc-menu-surface.js +58 -61
- package/dist/menu-surface/mdc-menu-surface.js.map +1 -1
- package/dist/notched-outline/mdc-notched-outline.js +17 -20
- package/dist/notched-outline/mdc-notched-outline.js.map +1 -1
- package/dist/radio/mdc-radio.js +24 -27
- package/dist/radio/mdc-radio.js.map +1 -1
- package/dist/ripple/mdc-ripple.js +48 -51
- package/dist/ripple/mdc-ripple.js.map +1 -1
- package/dist/ripple/styles/_index.scss +1 -0
- package/dist/ripple/styles/mdc-ripple.import.scss +1 -0
- package/dist/ripple/styles/mdc-ripple.scss +10 -0
- package/dist/segmented-button/mdc-segmented-button-segment/enhance-mdc-segmented-button-segment.js +6 -9
- 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.js +24 -27
- package/dist/segmented-button/mdc-segmented-button-segment/mdc-segmented-button-segment.js.map +1 -1
- package/dist/segmented-button/mdc-segmented-button.js +21 -24
- package/dist/segmented-button/mdc-segmented-button.js.map +1 -1
- package/dist/select/mdc-default-select-configuration.js +1 -5
- package/dist/select/mdc-default-select-configuration.js.map +1 -1
- package/dist/select/mdc-select-adapter-aurelia.js +1 -2
- package/dist/select/mdc-select-adapter-aurelia.js.map +1 -1
- package/dist/select/mdc-select-foundation-aurelia.js +43 -47
- package/dist/select/mdc-select-foundation-aurelia.js.map +1 -1
- package/dist/select/mdc-select-helper-text/mdc-select-helper-text.js +24 -27
- package/dist/select/mdc-select-helper-text/mdc-select-helper-text.js.map +1 -1
- package/dist/select/mdc-select-icon.js +13 -16
- package/dist/select/mdc-select-icon.js.map +1 -1
- package/dist/select/mdc-select-value-observer.js +11 -14
- package/dist/select/mdc-select-value-observer.js.map +1 -1
- package/dist/select/mdc-select.js +64 -67
- package/dist/select/mdc-select.js.map +1 -1
- package/dist/slider/mdc-slider-foundation-aurelia.js +2 -6
- package/dist/slider/mdc-slider-foundation-aurelia.js.map +1 -1
- package/dist/slider/mdc-slider.js +76 -79
- package/dist/slider/mdc-slider.js.map +1 -1
- package/dist/slider/styles/_index.scss +1 -0
- package/dist/slider/styles/mdc-slider.import.scss +1 -0
- package/dist/slider/styles/mdc-slider.scss +8 -0
- package/dist/snackbar/mdc-snackbar-service.js +4 -8
- package/dist/snackbar/mdc-snackbar-service.js.map +1 -1
- package/dist/snackbar/mdc-snackbar.js +52 -55
- package/dist/snackbar/mdc-snackbar.js.map +1 -1
- package/dist/switch/enhance-mdc-switch.js +6 -9
- package/dist/switch/enhance-mdc-switch.js.map +1 -1
- package/dist/switch/mdc-switch.js +13 -16
- package/dist/switch/mdc-switch.js.map +1 -1
- package/dist/tab-bar/indicator/mdc-tab-indicator.js +23 -26
- package/dist/tab-bar/indicator/mdc-tab-indicator.js.map +1 -1
- package/dist/tab-bar/mdc-tab-bar.js +26 -29
- package/dist/tab-bar/mdc-tab-bar.js.map +1 -1
- package/dist/tab-bar/scroller/mdc-tab-scroller.js +22 -25
- package/dist/tab-bar/scroller/mdc-tab-scroller.js.map +1 -1
- package/dist/tab-bar/tab/mdc-tab.js +41 -44
- package/dist/tab-bar/tab/mdc-tab.js.map +1 -1
- package/dist/text-field/enhance-mdc-text-field.js +6 -9
- package/dist/text-field/enhance-mdc-text-field.js.map +1 -1
- package/dist/text-field/mdc-default-text-field-configuration.js +1 -5
- package/dist/text-field/mdc-default-text-field-configuration.js.map +1 -1
- package/dist/text-field/mdc-inputmask.js +12 -15
- package/dist/text-field/mdc-inputmask.js.map +1 -1
- package/dist/text-field/mdc-text-field-character-counter.js +10 -13
- 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.js +11 -14
- 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.js +19 -22
- 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 +19 -22
- package/dist/text-field/mdc-text-field-icon.js.map +1 -1
- package/dist/text-field/mdc-text-field.js +109 -112
- package/dist/text-field/mdc-text-field.js.map +1 -1
- package/dist/text-field/styles/_index.scss +1 -0
- package/dist/text-field/styles/mdc-text-field.import.scss +1 -0
- package/dist/text-field/styles/mdc-text-field.scss +8 -0
- package/dist/tooltip/mdc-default-tooltip-configuration.js +1 -5
- package/dist/tooltip/mdc-default-tooltip-configuration.js.map +1 -1
- package/dist/tooltip/mdc-tooltip-attribute.js +36 -39
- package/dist/tooltip/mdc-tooltip-attribute.js.map +1 -1
- package/dist/tooltip/mdc-tooltip.js +57 -60
- package/dist/tooltip/mdc-tooltip.js.map +1 -1
- package/dist/top-app-bar/enhance-top-app-bar-actions.js +6 -9
- 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 +6 -9
- 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 +6 -9
- 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 +6 -9
- 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 +6 -9
- 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.js +12 -15
- 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 +6 -9
- package/dist/top-app-bar/mdc-top-app-bar-title.js.map +1 -1
- package/dist/top-app-bar/mdc-top-app-bar.js +40 -43
- package/dist/top-app-bar/mdc-top-app-bar.js.map +1 -1
- package/dist/tree-view/i-tree-node.js +1 -2
- package/dist/tree-view/mdc-tree-node-meta.js +6 -9
- package/dist/tree-view/mdc-tree-node-meta.js.map +1 -1
- package/dist/tree-view/mdc-tree-node.js +6 -9
- package/dist/tree-view/mdc-tree-node.js.map +1 -1
- package/dist/tree-view/mdc-tree-view.js +25 -29
- package/dist/tree-view/mdc-tree-view.js.map +1 -1
- package/dist/tree-view/node-filter.js +6 -9
- package/dist/tree-view/node-filter.js.map +1 -1
- package/dist/tree-view/styles/_index.scss +1 -0
- package/dist/tree-view/styles/_mixins.scss +145 -0
- package/dist/tree-view/styles/_variables.scss +8 -0
- package/dist/tree-view/styles/mdc-tree-view.import.scss +1 -0
- package/dist/tree-view/styles/mdc-tree-view.scss +3 -0
- package/dist/types/alert/alert-modal/i-alert-modal-payload.d.ts +7 -2
- package/dist/types/index.d.ts +1 -0
- package/dist/typography/mdc-typography.js +57 -60
- package/dist/typography/mdc-typography.js.map +1 -1
- package/dist/validation/mdc-validation-controller-factory.js +6 -10
- package/dist/validation/mdc-validation-controller-factory.js.map +1 -1
- package/dist/validation/mdc-validation-result-presenter.js +1 -5
- package/dist/validation/mdc-validation-result-presenter.js.map +1 -1
- package/dist/validation/validate.js +1 -4
- package/dist/validation/validate.js.map +1 -1
- package/package.json +2 -2
- package/src/alert/alert-modal/i-alert-modal-payload.ts +14 -9
- package/src/alert/alert-service.ts +29 -10
- package/src/index.ts +1 -0
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const ponyfill_1 = require("@material/dom/ponyfill");
|
|
9
|
-
const mdc_lookup_html_raw_1 = tslib_1.__importDefault(require("./mdc-lookup.html?raw"));
|
|
10
|
-
const mdc_configuration_1 = require("../mdc-configuration");
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { customElement, inject, bindable, BindingMode, CustomElement } from 'aurelia';
|
|
3
|
+
import { DiscardablePromise } from './discardable-promise';
|
|
4
|
+
import { booleanAttr, number } from '../base';
|
|
5
|
+
import { closest } from '@material/dom/ponyfill';
|
|
6
|
+
import template from './mdc-lookup.html?raw';
|
|
7
|
+
import { MdcConfiguration } from '../mdc-configuration';
|
|
11
8
|
const inputEvents = ['click', 'input', 'keydown', 'blur'];
|
|
12
9
|
const bodyEvents = ['touchstart', 'mousedown', 'click'];
|
|
13
10
|
/**
|
|
14
11
|
* @selector mdc-lookup
|
|
15
12
|
*/
|
|
16
13
|
let MdcLookup = (() => {
|
|
17
|
-
let _classDecorators = [
|
|
14
|
+
let _classDecorators = [inject(Element, MdcConfiguration), customElement({ name: 'mdc-lookup', template })];
|
|
18
15
|
let _classDescriptor;
|
|
19
16
|
let _classExtraInitializers = [];
|
|
20
17
|
let _classThis;
|
|
@@ -64,38 +61,38 @@ let MdcLookup = (() => {
|
|
|
64
61
|
static { _classThis = this; }
|
|
65
62
|
static {
|
|
66
63
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
67
|
-
_input_decorators = [
|
|
68
|
-
_twoLine_decorators = [
|
|
69
|
-
_displayField_decorators = [
|
|
70
|
-
_valueField_decorators = [
|
|
71
|
-
_options_decorators = [
|
|
72
|
-
_hoistToBody_decorators = [
|
|
73
|
-
_naturalWidth_decorators = [
|
|
74
|
-
_menuClass_decorators = [
|
|
75
|
-
_value_decorators = [
|
|
76
|
-
_debounce_decorators = [
|
|
77
|
-
_preloadOptions_decorators = [
|
|
78
|
-
_selectOnBlur_decorators = [
|
|
79
|
-
_selectOnTab_decorators = [
|
|
80
|
-
_virtual_decorators = [
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
64
|
+
_input_decorators = [bindable()];
|
|
65
|
+
_twoLine_decorators = [bindable({ set: booleanAttr })];
|
|
66
|
+
_displayField_decorators = [bindable()];
|
|
67
|
+
_valueField_decorators = [bindable()];
|
|
68
|
+
_options_decorators = [bindable()];
|
|
69
|
+
_hoistToBody_decorators = [bindable({ set: booleanAttr, mode: BindingMode.oneTime })];
|
|
70
|
+
_naturalWidth_decorators = [bindable({ set: booleanAttr })];
|
|
71
|
+
_menuClass_decorators = [bindable()];
|
|
72
|
+
_value_decorators = [bindable({ mode: BindingMode.twoWay })];
|
|
73
|
+
_debounce_decorators = [bindable({ set: number })];
|
|
74
|
+
_preloadOptions_decorators = [bindable({ set: booleanAttr })];
|
|
75
|
+
_selectOnBlur_decorators = [bindable({ set: booleanAttr })];
|
|
76
|
+
_selectOnTab_decorators = [bindable({ set: booleanAttr })];
|
|
77
|
+
_virtual_decorators = [bindable({ set: booleanAttr })];
|
|
78
|
+
__esDecorate(null, null, _input_decorators, { kind: "field", name: "input", static: false, private: false, access: { has: obj => "input" in obj, get: obj => obj.input, set: (obj, value) => { obj.input = value; } }, metadata: _metadata }, _input_initializers, _input_extraInitializers);
|
|
79
|
+
__esDecorate(null, null, _twoLine_decorators, { kind: "field", name: "twoLine", static: false, private: false, access: { has: obj => "twoLine" in obj, get: obj => obj.twoLine, set: (obj, value) => { obj.twoLine = value; } }, metadata: _metadata }, _twoLine_initializers, _twoLine_extraInitializers);
|
|
80
|
+
__esDecorate(null, null, _displayField_decorators, { kind: "field", name: "displayField", static: false, private: false, access: { has: obj => "displayField" in obj, get: obj => obj.displayField, set: (obj, value) => { obj.displayField = value; } }, metadata: _metadata }, _displayField_initializers, _displayField_extraInitializers);
|
|
81
|
+
__esDecorate(null, null, _valueField_decorators, { kind: "field", name: "valueField", static: false, private: false, access: { has: obj => "valueField" in obj, get: obj => obj.valueField, set: (obj, value) => { obj.valueField = value; } }, metadata: _metadata }, _valueField_initializers, _valueField_extraInitializers);
|
|
82
|
+
__esDecorate(null, null, _options_decorators, { kind: "field", name: "options", static: false, private: false, access: { has: obj => "options" in obj, get: obj => obj.options, set: (obj, value) => { obj.options = value; } }, metadata: _metadata }, _options_initializers, _options_extraInitializers);
|
|
83
|
+
__esDecorate(null, null, _hoistToBody_decorators, { kind: "field", name: "hoistToBody", static: false, private: false, access: { has: obj => "hoistToBody" in obj, get: obj => obj.hoistToBody, set: (obj, value) => { obj.hoistToBody = value; } }, metadata: _metadata }, _hoistToBody_initializers, _hoistToBody_extraInitializers);
|
|
84
|
+
__esDecorate(null, null, _naturalWidth_decorators, { kind: "field", name: "naturalWidth", static: false, private: false, access: { has: obj => "naturalWidth" in obj, get: obj => obj.naturalWidth, set: (obj, value) => { obj.naturalWidth = value; } }, metadata: _metadata }, _naturalWidth_initializers, _naturalWidth_extraInitializers);
|
|
85
|
+
__esDecorate(null, null, _menuClass_decorators, { kind: "field", name: "menuClass", static: false, private: false, access: { has: obj => "menuClass" in obj, get: obj => obj.menuClass, set: (obj, value) => { obj.menuClass = value; } }, metadata: _metadata }, _menuClass_initializers, _menuClass_extraInitializers);
|
|
86
|
+
__esDecorate(null, null, _value_decorators, { kind: "field", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
|
|
87
|
+
__esDecorate(null, null, _debounce_decorators, { kind: "field", name: "debounce", static: false, private: false, access: { has: obj => "debounce" in obj, get: obj => obj.debounce, set: (obj, value) => { obj.debounce = value; } }, metadata: _metadata }, _debounce_initializers, _debounce_extraInitializers);
|
|
88
|
+
__esDecorate(null, null, _preloadOptions_decorators, { kind: "field", name: "preloadOptions", static: false, private: false, access: { has: obj => "preloadOptions" in obj, get: obj => obj.preloadOptions, set: (obj, value) => { obj.preloadOptions = value; } }, metadata: _metadata }, _preloadOptions_initializers, _preloadOptions_extraInitializers);
|
|
89
|
+
__esDecorate(null, null, _selectOnBlur_decorators, { kind: "field", name: "selectOnBlur", static: false, private: false, access: { has: obj => "selectOnBlur" in obj, get: obj => obj.selectOnBlur, set: (obj, value) => { obj.selectOnBlur = value; } }, metadata: _metadata }, _selectOnBlur_initializers, _selectOnBlur_extraInitializers);
|
|
90
|
+
__esDecorate(null, null, _selectOnTab_decorators, { kind: "field", name: "selectOnTab", static: false, private: false, access: { has: obj => "selectOnTab" in obj, get: obj => obj.selectOnTab, set: (obj, value) => { obj.selectOnTab = value; } }, metadata: _metadata }, _selectOnTab_initializers, _selectOnTab_extraInitializers);
|
|
91
|
+
__esDecorate(null, null, _virtual_decorators, { kind: "field", name: "virtual", static: false, private: false, access: { has: obj => "virtual" in obj, get: obj => obj.virtual, set: (obj, value) => { obj.virtual = value; } }, metadata: _metadata }, _virtual_initializers, _virtual_extraInitializers);
|
|
92
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
96
93
|
MdcLookup = _classThis = _classDescriptor.value;
|
|
97
94
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
98
|
-
|
|
95
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
99
96
|
}
|
|
100
97
|
root;
|
|
101
98
|
configuration;
|
|
@@ -114,16 +111,16 @@ let MdcLookup = (() => {
|
|
|
114
111
|
notFound = false;
|
|
115
112
|
menu;
|
|
116
113
|
/** Reference to the input */
|
|
117
|
-
input =
|
|
114
|
+
input = __runInitializers(this, _input_initializers, void 0);
|
|
118
115
|
/** Sets the menu list to have two lines */
|
|
119
|
-
twoLine = (
|
|
116
|
+
twoLine = (__runInitializers(this, _input_extraInitializers), __runInitializers(this, _twoLine_initializers, void 0));
|
|
120
117
|
/**
|
|
121
118
|
* Sets the way an option is displayed in the input element.
|
|
122
119
|
* When set to a string, the object property with such name is used.
|
|
123
120
|
* When set to a function, it is called with an option as a parameter to retrieve the display string.
|
|
124
121
|
* When undefined, an option.toString() is used.
|
|
125
122
|
*/
|
|
126
|
-
displayField = (
|
|
123
|
+
displayField = (__runInitializers(this, _twoLine_extraInitializers), __runInitializers(this, _displayField_initializers, void 0));
|
|
127
124
|
displayFieldChanged() {
|
|
128
125
|
if (this.displayField instanceof Function) {
|
|
129
126
|
this.getDisplay = this.displayField;
|
|
@@ -135,14 +132,14 @@ let MdcLookup = (() => {
|
|
|
135
132
|
this.getDisplay = option => option?.toString() ?? '';
|
|
136
133
|
}
|
|
137
134
|
}
|
|
138
|
-
getDisplay = (
|
|
135
|
+
getDisplay = (__runInitializers(this, _displayField_extraInitializers), option => option?.toString() ?? '');
|
|
139
136
|
/**
|
|
140
137
|
* Sets the way a value is set.
|
|
141
138
|
* When set to a string, the object property with such name is used.
|
|
142
139
|
* When set to a function, it is called with an option as a parameter to retrieve the value.
|
|
143
140
|
* When undefined, an option is used as a value.
|
|
144
141
|
*/
|
|
145
|
-
valueField =
|
|
142
|
+
valueField = __runInitializers(this, _valueField_initializers, void 0);
|
|
146
143
|
valueFieldChanged() {
|
|
147
144
|
if (this.valueField instanceof Function) {
|
|
148
145
|
this.getValue = this.valueField;
|
|
@@ -154,12 +151,12 @@ let MdcLookup = (() => {
|
|
|
154
151
|
this.getValue = option => option;
|
|
155
152
|
}
|
|
156
153
|
}
|
|
157
|
-
getValue = (
|
|
154
|
+
getValue = (__runInitializers(this, _valueField_extraInitializers), option => option);
|
|
158
155
|
/**
|
|
159
156
|
* Sets the array of options to display.
|
|
160
157
|
* Can be an async function which returns an array.
|
|
161
158
|
*/
|
|
162
|
-
options =
|
|
159
|
+
options = __runInitializers(this, _options_initializers, void 0);
|
|
163
160
|
optionsChanged() {
|
|
164
161
|
const shouldRefresh = this.getOptions !== undefined;
|
|
165
162
|
this.setGetOptions();
|
|
@@ -180,12 +177,12 @@ let MdcLookup = (() => {
|
|
|
180
177
|
}
|
|
181
178
|
}
|
|
182
179
|
/** Hoists the menu to document body */
|
|
183
|
-
hoistToBody = (
|
|
180
|
+
hoistToBody = (__runInitializers(this, _options_extraInitializers), __runInitializers(this, _hoistToBody_initializers, void 0));
|
|
184
181
|
/** Sets the menu width to fit content */
|
|
185
|
-
naturalWidth = (
|
|
182
|
+
naturalWidth = (__runInitializers(this, _hoistToBody_extraInitializers), __runInitializers(this, _naturalWidth_initializers, void 0));
|
|
186
183
|
/** The CSS class to set on the menu. Helps styling body hoisted menus */
|
|
187
|
-
menuClass = (
|
|
188
|
-
getOptions =
|
|
184
|
+
menuClass = (__runInitializers(this, _naturalWidth_extraInitializers), __runInitializers(this, _menuClass_initializers, void 0));
|
|
185
|
+
getOptions = __runInitializers(this, _menuClass_extraInitializers);
|
|
189
186
|
async getOptionsDefault(filter, value) {
|
|
190
187
|
const options = this.options;
|
|
191
188
|
if (value !== undefined) {
|
|
@@ -196,8 +193,8 @@ let MdcLookup = (() => {
|
|
|
196
193
|
}
|
|
197
194
|
}
|
|
198
195
|
/** The selected value */
|
|
199
|
-
value =
|
|
200
|
-
suppressValueChanged =
|
|
196
|
+
value = __runInitializers(this, _value_initializers, void 0);
|
|
197
|
+
suppressValueChanged = __runInitializers(this, _value_extraInitializers);
|
|
201
198
|
async valueChanged() {
|
|
202
199
|
if (this.suppressValueChanged) {
|
|
203
200
|
this.suppressValueChanged = false;
|
|
@@ -214,15 +211,15 @@ let MdcLookup = (() => {
|
|
|
214
211
|
this.value = value;
|
|
215
212
|
}
|
|
216
213
|
/** Sets debounce in milliseconds */
|
|
217
|
-
debounce =
|
|
214
|
+
debounce = __runInitializers(this, _debounce_initializers, void 0);
|
|
218
215
|
/** Loads the options to the menu when attached */
|
|
219
|
-
preloadOptions = (
|
|
216
|
+
preloadOptions = (__runInitializers(this, _debounce_extraInitializers), __runInitializers(this, _preloadOptions_initializers, void 0));
|
|
220
217
|
/** Enables a first option select on blur */
|
|
221
|
-
selectOnBlur = (
|
|
218
|
+
selectOnBlur = (__runInitializers(this, _preloadOptions_extraInitializers), __runInitializers(this, _selectOnBlur_initializers, void 0));
|
|
222
219
|
/** Enables an item selection on Tab press */
|
|
223
|
-
selectOnTab = (
|
|
220
|
+
selectOnTab = (__runInitializers(this, _selectOnBlur_extraInitializers), __runInitializers(this, _selectOnTab_initializers, void 0));
|
|
224
221
|
/** TODO: Enables the options list virtualisation */
|
|
225
|
-
virtual = (
|
|
222
|
+
virtual = (__runInitializers(this, _selectOnTab_extraInitializers), __runInitializers(this, _virtual_initializers, void 0));
|
|
226
223
|
bound() {
|
|
227
224
|
this.valueFieldChanged();
|
|
228
225
|
this.displayFieldChanged();
|
|
@@ -291,11 +288,11 @@ let MdcLookup = (() => {
|
|
|
291
288
|
break;
|
|
292
289
|
}
|
|
293
290
|
}
|
|
294
|
-
debouncePromise =
|
|
291
|
+
debouncePromise = __runInitializers(this, _virtual_extraInitializers);
|
|
295
292
|
searchPromise;
|
|
296
293
|
async filterChanged() {
|
|
297
294
|
this.debouncePromise?.discard();
|
|
298
|
-
this.debouncePromise = new
|
|
295
|
+
this.debouncePromise = new DiscardablePromise(new Promise(r => setTimeout(() => r(), this.debounce ?? 0)));
|
|
299
296
|
try {
|
|
300
297
|
await this.debouncePromise;
|
|
301
298
|
}
|
|
@@ -314,14 +311,14 @@ let MdcLookup = (() => {
|
|
|
314
311
|
}
|
|
315
312
|
this.optionsArray = undefined;
|
|
316
313
|
try {
|
|
317
|
-
this.searchPromise = new
|
|
314
|
+
this.searchPromise = new DiscardablePromise(this.getOptions(this.input?.value, undefined));
|
|
318
315
|
this.optionsArray = await this.searchPromise;
|
|
319
316
|
if (this.optionsArray === undefined) {
|
|
320
317
|
this.close();
|
|
321
318
|
}
|
|
322
319
|
}
|
|
323
320
|
catch (e) {
|
|
324
|
-
if (e !==
|
|
321
|
+
if (e !== DiscardablePromise.discarded) {
|
|
325
322
|
this.errorMessage = e.message;
|
|
326
323
|
this.optionsArray = undefined;
|
|
327
324
|
}
|
|
@@ -405,13 +402,13 @@ let MdcLookup = (() => {
|
|
|
405
402
|
}
|
|
406
403
|
onBodyMousedown(evt) {
|
|
407
404
|
// this is needed to prevent text field label jumping
|
|
408
|
-
if (
|
|
405
|
+
if (closest(evt.target, 'mdc-menu')) {
|
|
409
406
|
evt.preventDefault();
|
|
410
407
|
}
|
|
411
408
|
return true;
|
|
412
409
|
}
|
|
413
410
|
handleBodyClick(evt) {
|
|
414
|
-
if (!
|
|
411
|
+
if (!closest(evt.target, 'mdc-menu') && !evt.target.classList.contains('mdc-text-field') && !evt.target.classList.contains('mdc-text-field__input')) {
|
|
415
412
|
this.menuSurface.foundation?.handleBodyClick(evt);
|
|
416
413
|
}
|
|
417
414
|
}
|
|
@@ -439,24 +436,24 @@ let MdcLookup = (() => {
|
|
|
439
436
|
};
|
|
440
437
|
return MdcLookup = _classThis;
|
|
441
438
|
})();
|
|
442
|
-
|
|
439
|
+
export { MdcLookup };
|
|
443
440
|
function defineMdcLookupElementApis(element) {
|
|
444
441
|
Object.defineProperties(element, {
|
|
445
442
|
addError: {
|
|
446
443
|
value(error) {
|
|
447
|
-
|
|
444
|
+
CustomElement.for(this).viewModel.addError(error);
|
|
448
445
|
},
|
|
449
446
|
configurable: true
|
|
450
447
|
},
|
|
451
448
|
removeError: {
|
|
452
449
|
value(error) {
|
|
453
|
-
|
|
450
|
+
CustomElement.for(this).viewModel.removeError(error);
|
|
454
451
|
},
|
|
455
452
|
configurable: true
|
|
456
453
|
},
|
|
457
454
|
renderErrors: {
|
|
458
455
|
value() {
|
|
459
|
-
|
|
456
|
+
CustomElement.for(this).viewModel.renderErrors();
|
|
460
457
|
},
|
|
461
458
|
configurable: true
|
|
462
459
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdc-lookup.js","sourceRoot":"","sources":["../../src/lookup/mdc-lookup.ts"],"names":[],"mappings":"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","sourcesContent":["import { customElement, inject, bindable, BindingMode, CustomElement } from 'aurelia';\nimport { DiscardablePromise } from './discardable-promise';\nimport { IValidatedElement, IError, booleanAttr, number } from '../base';\nimport { closest } from '@material/dom/ponyfill';\nimport template from './mdc-lookup.html?raw';\nimport { MdcMenuSurface } from '../menu-surface/mdc-menu-surface';\nimport { MdcMenu, IMdcMenuItemComponentEvent } from '../menu/mdc-menu';\nimport { MdcConfiguration } from '../mdc-configuration';\n\nconst inputEvents = ['click', 'input', 'keydown', 'blur'];\nconst bodyEvents = ['touchstart', 'mousedown', 'click'];\n\n/**\n * @selector mdc-lookup\n */\n@inject(Element, MdcConfiguration)\n@customElement({ name: 'mdc-lookup', template })\nexport class MdcLookup implements EventListenerObject {\n constructor(private root: HTMLElement, private configuration: MdcConfiguration) {\n this.debounce = this.configuration.lookup.debounce;\n defineMdcLookupElementApis(this.root);\n }\n\n private menuSurface: MdcMenuSurface;\n public isWrapperOpen: boolean = false;\n public optionsArray?: unknown[];\n public focusedOption: unknown = undefined;\n public searching: boolean = false;\n public errorMessage: string | undefined = undefined;\n public notFound: boolean = false;\n public menu: MdcMenu;\n\n /** Reference to the input */\n @bindable()\n public input?: HTMLInputElement & { isFocused: boolean };\n\n /** Sets the menu list to have two lines */\n @bindable({ set: booleanAttr })\n twoLine: boolean;\n\n /**\n * Sets the way an option is displayed in the input element.\n * When set to a string, the object property with such name is used.\n * When set to a function, it is called with an option as a parameter to retrieve the display string.\n * When undefined, an option.toString() is used.\n */\n @bindable()\n displayField: string | undefined | ((option: unknown) => string);\n displayFieldChanged() {\n if (this.displayField instanceof Function) {\n this.getDisplay = this.displayField;\n } else if (typeof this.displayField === 'string') {\n this.getDisplay = option => (option as Record<string, string>)[this.displayField as string];\n } else {\n this.getDisplay = option => (option as Record<string, unknown>)?.toString() ?? '';\n }\n }\n\n getDisplay: (option: unknown) => string = option => (option as Record<string, unknown>)?.toString() ?? '';\n\n /**\n * Sets the way a value is set.\n * When set to a string, the object property with such name is used.\n * When set to a function, it is called with an option as a parameter to retrieve the value.\n * When undefined, an option is used as a value.\n */\n @bindable()\n valueField: string | undefined | ((option: unknown) => unknown);\n valueFieldChanged() {\n if (this.valueField instanceof Function) {\n this.getValue = this.valueField;\n } else if (typeof this.valueField === 'string') {\n this.getValue = option => option !== undefined ? (option as Record<string, unknown>)[this.valueField as string] : undefined;\n } else {\n this.getValue = option => option;\n }\n }\n\n getValue: (option: unknown) => unknown = option => option;\n\n /**\n * Sets the array of options to display.\n * Can be an async function which returns an array.\n */\n @bindable()\n options: unknown[] | undefined | ((filter: string, value: unknown) => Promise<unknown[]>);\n optionsChanged() {\n const shouldRefresh = this.getOptions !== undefined;\n this.setGetOptions();\n if (shouldRefresh) {\n this.optionsArray = undefined;\n this.value = undefined;\n if (this.preloadOptions) {\n this.loadOptions(false);\n }\n }\n }\n\n setGetOptions() {\n if (this.options instanceof Function) {\n this.getOptions = this.options;\n } else {\n this.getOptions = this.getOptionsDefault;\n }\n }\n\n /** Hoists the menu to document body */\n @bindable({ set: booleanAttr, mode: BindingMode.oneTime })\n hoistToBody: boolean;\n\n /** Sets the menu width to fit content */\n @bindable({ set: booleanAttr })\n naturalWidth: boolean;\n\n /** The CSS class to set on the menu. Helps styling body hoisted menus */\n @bindable()\n menuClass: string;\n\n getOptions: (filter: string | undefined, value: unknown) => Promise<unknown[]>;\n\n async getOptionsDefault(filter: string, value: unknown): Promise<unknown[]> {\n const options = this.options as unknown[];\n if (value !== undefined) {\n return Promise.resolve([options.find(x => this.getValue(x) === value)]);\n } else {\n return Promise.resolve(options.filter(x => this.getDisplay(x).toUpperCase().includes((filter || '').toUpperCase())));\n }\n }\n\n /** The selected value */\n @bindable({ mode: BindingMode.twoWay })\n value: unknown;\n suppressValueChanged: boolean;\n async valueChanged() {\n if (this.suppressValueChanged) {\n this.suppressValueChanged = false;\n return;\n }\n await this.updateFilterBasedOnValue();\n this.root.dispatchEvent(new CustomEvent('change', { bubbles: true, detail: { value: this.value } }));\n }\n setValue(value: unknown) {\n if (this.value === value) {\n return;\n }\n this.suppressValueChanged = true;\n this.value = value;\n }\n\n /** Sets debounce in milliseconds */\n @bindable({ set: number })\n debounce: number;\n\n /** Loads the options to the menu when attached */\n @bindable({ set: booleanAttr })\n preloadOptions: boolean;\n\n /** Enables a first option select on blur */\n @bindable({ set: booleanAttr })\n selectOnBlur: boolean;\n\n /** Enables an item selection on Tab press */\n @bindable({ set: booleanAttr })\n selectOnTab: boolean;\n\n /** TODO: Enables the options list virtualisation */\n @bindable({ set: booleanAttr })\n virtual: boolean;\n\n bound() {\n this.valueFieldChanged();\n this.displayFieldChanged();\n this.setGetOptions();\n }\n\n async attached() {\n if (this.input) {\n inputEvents.forEach(x => this.input!.addEventListener(x, this));\n }\n await this.updateFilterBasedOnValue();\n if (!this.value && this.preloadOptions) {\n await this.loadOptions(false);\n }\n bodyEvents.forEach(x => document.body.addEventListener(x, this));\n }\n\n detaching() {\n if (this.input) {\n inputEvents.forEach(x => this.input!.removeEventListener(x, this));\n }\n bodyEvents.forEach(x => document.body.removeEventListener(x, this));\n }\n\n /** Opens lookup menu */\n open() {\n if (this.input?.disabled || this.input?.readOnly || this.menu.open || this.optionsArray === undefined && !this.searching && !this.errorMessage) {\n return;\n }\n if (!this.naturalWidth) {\n this.menu.root.style.width = `${this.input?.clientWidth}px`;\n }\n this.menu.open = true;\n }\n\n /** Closes lookup menu */\n close() {\n this.menu.open = false;\n }\n\n handleEvent(evt: Event): void {\n switch (evt.currentTarget) {\n case this.input:\n switch (evt.type) {\n case 'click': this.open(); break;\n case 'input': this.filterChanged(); break;\n case 'keydown': this.onInputKeydown(evt as KeyboardEvent); break;\n case 'blur': this.onBlur(); break;\n }\n break;\n case document.body:\n switch (evt.type) {\n case 'mousedown': this.onBodyMousedown(evt as MouseEvent); break;\n case 'touchstart': this.onBodyMousedown(evt as TouchEvent); break;\n case 'click': this.handleBodyClick(evt as MouseEvent); break;\n }\n break;\n }\n }\n\n debouncePromise: DiscardablePromise<void>;\n searchPromise: DiscardablePromise<unknown[]>;\n async filterChanged() {\n this.debouncePromise?.discard();\n this.debouncePromise = new DiscardablePromise(new Promise(r => setTimeout(() => r(), this.debounce ?? 0)));\n try {\n await this.debouncePromise;\n } catch (e) {\n return;\n }\n this.setValue(undefined);\n this.searchPromise?.discard();\n await this.loadOptions(this.input?.isFocused === true);\n }\n\n async loadOptions(open: boolean) {\n this.searching = true;\n this.errorMessage = undefined;\n if (open) {\n this.open();\n }\n this.optionsArray = undefined;\n try {\n this.searchPromise = new DiscardablePromise(this.getOptions(this.input?.value, undefined));\n this.optionsArray = await this.searchPromise;\n if (this.optionsArray === undefined) {\n this.close();\n }\n } catch (e) {\n if (e !== DiscardablePromise.discarded) {\n this.errorMessage = e.message;\n this.optionsArray = undefined;\n }\n } finally {\n this.searching = false;\n }\n }\n\n setFilter(filter: string | undefined) {\n if (!this.input || this.input.value === filter) {\n return;\n }\n this.input.value = filter ?? '';\n }\n\n async updateFilterBasedOnValue() {\n if (this.value !== undefined) {\n this.optionsArray = await this.getOptions(undefined, this.value);\n } else {\n this.optionsArray = undefined;\n }\n if (this.optionsArray?.length) {\n this.setFilter(this.getDisplay(this.optionsArray[0]));\n } else {\n this.setFilter(undefined);\n }\n }\n\n handleMenuItemAction(evt: IMdcMenuItemComponentEvent) {\n this.select(evt.detail.data);\n }\n\n select(option: unknown) {\n this.value = this.getValue(option);\n this.close();\n this.input?.focus();\n }\n\n suppressBlur: boolean;\n async onBlur() {\n if (this.suppressBlur) {\n this.suppressBlur = false;\n return;\n }\n if (this.selectOnBlur && this.optionsArray?.length && this.input?.value && this.value === undefined) {\n this.value = this.getValue(this.optionsArray[0]);\n }\n this.close();\n // re-emit on root\n if (this.debouncePromise !== undefined) {\n await this.debouncePromise;\n }\n this.root.dispatchEvent(new CustomEvent('blur'));\n this.root.dispatchEvent(new CustomEvent('focusout'));\n }\n\n onInputKeydown(evt: KeyboardEvent) {\n switch (evt.code) {\n case 'ArrowDown': if (!this.menu.open) {\n this.open();\n }\n this.suppressBlur = true;\n this.menu.list_?.foundation?.focusFirstElement();\n break;\n case 'ArrowUp':\n if (!this.menu.open) {\n this.open();\n }\n this.suppressBlur = true;\n this.menu.list_?.foundation?.focusLastElement();\n break;\n case 'Space':\n if (evt.ctrlKey) {\n if (this.menu.open) {\n this.close();\n } else {\n this.loadOptions(true);\n }\n }\n break;\n }\n }\n\n onBodyMousedown(evt: MouseEvent | TouchEvent) {\n // this is needed to prevent text field label jumping\n if (closest(evt.target as HTMLElement, 'mdc-menu')) {\n evt.preventDefault();\n }\n return true;\n }\n\n handleBodyClick(evt: MouseEvent) {\n if (!closest(evt.target as HTMLElement, 'mdc-menu') && !(evt.target as HTMLElement).classList.contains('mdc-text-field') && !(evt.target as HTMLElement).classList.contains('mdc-text-field__input')) {\n this.menuSurface.foundation?.handleBodyClick(evt);\n }\n }\n\n handleMenuKeydown(event: KeyboardEvent) {\n if (this.hoistToBody && (event.key === 'Tab' || event.keyCode === 9)) {\n this.input?.focus();\n }\n return true;\n }\n\n addError(error: IError) {\n if (this.input && Object.getOwnPropertyDescriptor(this.input, 'addError')) {\n (this.input as HTMLElement as IValidatedElement).addError(error);\n }\n }\n\n removeError(error: IError) {\n if (this.input && Object.getOwnPropertyDescriptor(this.input, 'addError')) {\n (this.input as HTMLElement as IValidatedElement).removeError(error);\n }\n }\n\n renderErrors() {\n if (this.input && Object.getOwnPropertyDescriptor(this.input, 'renderErrors')) {\n (this.input as HTMLElement as IValidatedElement).renderErrors();\n }\n }\n}\n\n/** @hidden */\nexport interface IMdcLookupElement extends IValidatedElement {\n $au: {\n 'au:resource:custom-element': {\n viewModel: MdcLookup;\n };\n };\n}\n\nfunction defineMdcLookupElementApis(element: HTMLElement) {\n Object.defineProperties(element, {\n addError: {\n value(this: IMdcLookupElement, error: IError) {\n CustomElement.for<MdcLookup>(this).viewModel.addError(error);\n },\n configurable: true\n },\n removeError: {\n value(this: IMdcLookupElement, error: IError) {\n CustomElement.for<MdcLookup>(this).viewModel.removeError(error);\n },\n configurable: true\n },\n renderErrors: {\n value(this: IMdcLookupElement): void {\n CustomElement.for<MdcLookup>(this).viewModel.renderErrors();\n },\n configurable: true\n },\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mdc-lookup.js","sourceRoot":"","sources":["../../src/lookup/mdc-lookup.ts"],"names":[],"mappings":"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","sourcesContent":["import { customElement, inject, bindable, BindingMode, CustomElement } from 'aurelia';\nimport { DiscardablePromise } from './discardable-promise';\nimport { IValidatedElement, IError, booleanAttr, number } from '../base';\nimport { closest } from '@material/dom/ponyfill';\nimport template from './mdc-lookup.html?raw';\nimport { MdcMenuSurface } from '../menu-surface/mdc-menu-surface';\nimport { MdcMenu, IMdcMenuItemComponentEvent } from '../menu/mdc-menu';\nimport { MdcConfiguration } from '../mdc-configuration';\n\nconst inputEvents = ['click', 'input', 'keydown', 'blur'];\nconst bodyEvents = ['touchstart', 'mousedown', 'click'];\n\n/**\n * @selector mdc-lookup\n */\n@inject(Element, MdcConfiguration)\n@customElement({ name: 'mdc-lookup', template })\nexport class MdcLookup implements EventListenerObject {\n constructor(private root: HTMLElement, private configuration: MdcConfiguration) {\n this.debounce = this.configuration.lookup.debounce;\n defineMdcLookupElementApis(this.root);\n }\n\n private menuSurface: MdcMenuSurface;\n public isWrapperOpen: boolean = false;\n public optionsArray?: unknown[];\n public focusedOption: unknown = undefined;\n public searching: boolean = false;\n public errorMessage: string | undefined = undefined;\n public notFound: boolean = false;\n public menu: MdcMenu;\n\n /** Reference to the input */\n @bindable()\n public input?: HTMLInputElement & { isFocused: boolean };\n\n /** Sets the menu list to have two lines */\n @bindable({ set: booleanAttr })\n twoLine: boolean;\n\n /**\n * Sets the way an option is displayed in the input element.\n * When set to a string, the object property with such name is used.\n * When set to a function, it is called with an option as a parameter to retrieve the display string.\n * When undefined, an option.toString() is used.\n */\n @bindable()\n displayField: string | undefined | ((option: unknown) => string);\n displayFieldChanged() {\n if (this.displayField instanceof Function) {\n this.getDisplay = this.displayField;\n } else if (typeof this.displayField === 'string') {\n this.getDisplay = option => (option as Record<string, string>)[this.displayField as string];\n } else {\n this.getDisplay = option => (option as Record<string, unknown>)?.toString() ?? '';\n }\n }\n\n getDisplay: (option: unknown) => string = option => (option as Record<string, unknown>)?.toString() ?? '';\n\n /**\n * Sets the way a value is set.\n * When set to a string, the object property with such name is used.\n * When set to a function, it is called with an option as a parameter to retrieve the value.\n * When undefined, an option is used as a value.\n */\n @bindable()\n valueField: string | undefined | ((option: unknown) => unknown);\n valueFieldChanged() {\n if (this.valueField instanceof Function) {\n this.getValue = this.valueField;\n } else if (typeof this.valueField === 'string') {\n this.getValue = option => option !== undefined ? (option as Record<string, unknown>)[this.valueField as string] : undefined;\n } else {\n this.getValue = option => option;\n }\n }\n\n getValue: (option: unknown) => unknown = option => option;\n\n /**\n * Sets the array of options to display.\n * Can be an async function which returns an array.\n */\n @bindable()\n options: unknown[] | undefined | ((filter: string, value: unknown) => Promise<unknown[]>);\n optionsChanged() {\n const shouldRefresh = this.getOptions !== undefined;\n this.setGetOptions();\n if (shouldRefresh) {\n this.optionsArray = undefined;\n this.value = undefined;\n if (this.preloadOptions) {\n this.loadOptions(false);\n }\n }\n }\n\n setGetOptions() {\n if (this.options instanceof Function) {\n this.getOptions = this.options;\n } else {\n this.getOptions = this.getOptionsDefault;\n }\n }\n\n /** Hoists the menu to document body */\n @bindable({ set: booleanAttr, mode: BindingMode.oneTime })\n hoistToBody: boolean;\n\n /** Sets the menu width to fit content */\n @bindable({ set: booleanAttr })\n naturalWidth: boolean;\n\n /** The CSS class to set on the menu. Helps styling body hoisted menus */\n @bindable()\n menuClass: string;\n\n getOptions: (filter: string | undefined, value: unknown) => Promise<unknown[]>;\n\n async getOptionsDefault(filter: string, value: unknown): Promise<unknown[]> {\n const options = this.options as unknown[];\n if (value !== undefined) {\n return Promise.resolve([options.find(x => this.getValue(x) === value)]);\n } else {\n return Promise.resolve(options.filter(x => this.getDisplay(x).toUpperCase().includes((filter || '').toUpperCase())));\n }\n }\n\n /** The selected value */\n @bindable({ mode: BindingMode.twoWay })\n value: unknown;\n suppressValueChanged: boolean;\n async valueChanged() {\n if (this.suppressValueChanged) {\n this.suppressValueChanged = false;\n return;\n }\n await this.updateFilterBasedOnValue();\n this.root.dispatchEvent(new CustomEvent('change', { bubbles: true, detail: { value: this.value } }));\n }\n setValue(value: unknown) {\n if (this.value === value) {\n return;\n }\n this.suppressValueChanged = true;\n this.value = value;\n }\n\n /** Sets debounce in milliseconds */\n @bindable({ set: number })\n debounce: number;\n\n /** Loads the options to the menu when attached */\n @bindable({ set: booleanAttr })\n preloadOptions: boolean;\n\n /** Enables a first option select on blur */\n @bindable({ set: booleanAttr })\n selectOnBlur: boolean;\n\n /** Enables an item selection on Tab press */\n @bindable({ set: booleanAttr })\n selectOnTab: boolean;\n\n /** TODO: Enables the options list virtualisation */\n @bindable({ set: booleanAttr })\n virtual: boolean;\n\n bound() {\n this.valueFieldChanged();\n this.displayFieldChanged();\n this.setGetOptions();\n }\n\n async attached() {\n if (this.input) {\n inputEvents.forEach(x => this.input!.addEventListener(x, this));\n }\n await this.updateFilterBasedOnValue();\n if (!this.value && this.preloadOptions) {\n await this.loadOptions(false);\n }\n bodyEvents.forEach(x => document.body.addEventListener(x, this));\n }\n\n detaching() {\n if (this.input) {\n inputEvents.forEach(x => this.input!.removeEventListener(x, this));\n }\n bodyEvents.forEach(x => document.body.removeEventListener(x, this));\n }\n\n /** Opens lookup menu */\n open() {\n if (this.input?.disabled || this.input?.readOnly || this.menu.open || this.optionsArray === undefined && !this.searching && !this.errorMessage) {\n return;\n }\n if (!this.naturalWidth) {\n this.menu.root.style.width = `${this.input?.clientWidth}px`;\n }\n this.menu.open = true;\n }\n\n /** Closes lookup menu */\n close() {\n this.menu.open = false;\n }\n\n handleEvent(evt: Event): void {\n switch (evt.currentTarget) {\n case this.input:\n switch (evt.type) {\n case 'click': this.open(); break;\n case 'input': this.filterChanged(); break;\n case 'keydown': this.onInputKeydown(evt as KeyboardEvent); break;\n case 'blur': this.onBlur(); break;\n }\n break;\n case document.body:\n switch (evt.type) {\n case 'mousedown': this.onBodyMousedown(evt as MouseEvent); break;\n case 'touchstart': this.onBodyMousedown(evt as TouchEvent); break;\n case 'click': this.handleBodyClick(evt as MouseEvent); break;\n }\n break;\n }\n }\n\n debouncePromise: DiscardablePromise<void>;\n searchPromise: DiscardablePromise<unknown[]>;\n async filterChanged() {\n this.debouncePromise?.discard();\n this.debouncePromise = new DiscardablePromise(new Promise(r => setTimeout(() => r(), this.debounce ?? 0)));\n try {\n await this.debouncePromise;\n } catch (e) {\n return;\n }\n this.setValue(undefined);\n this.searchPromise?.discard();\n await this.loadOptions(this.input?.isFocused === true);\n }\n\n async loadOptions(open: boolean) {\n this.searching = true;\n this.errorMessage = undefined;\n if (open) {\n this.open();\n }\n this.optionsArray = undefined;\n try {\n this.searchPromise = new DiscardablePromise(this.getOptions(this.input?.value, undefined));\n this.optionsArray = await this.searchPromise;\n if (this.optionsArray === undefined) {\n this.close();\n }\n } catch (e) {\n if (e !== DiscardablePromise.discarded) {\n this.errorMessage = e.message;\n this.optionsArray = undefined;\n }\n } finally {\n this.searching = false;\n }\n }\n\n setFilter(filter: string | undefined) {\n if (!this.input || this.input.value === filter) {\n return;\n }\n this.input.value = filter ?? '';\n }\n\n async updateFilterBasedOnValue() {\n if (this.value !== undefined) {\n this.optionsArray = await this.getOptions(undefined, this.value);\n } else {\n this.optionsArray = undefined;\n }\n if (this.optionsArray?.length) {\n this.setFilter(this.getDisplay(this.optionsArray[0]));\n } else {\n this.setFilter(undefined);\n }\n }\n\n handleMenuItemAction(evt: IMdcMenuItemComponentEvent) {\n this.select(evt.detail.data);\n }\n\n select(option: unknown) {\n this.value = this.getValue(option);\n this.close();\n this.input?.focus();\n }\n\n suppressBlur: boolean;\n async onBlur() {\n if (this.suppressBlur) {\n this.suppressBlur = false;\n return;\n }\n if (this.selectOnBlur && this.optionsArray?.length && this.input?.value && this.value === undefined) {\n this.value = this.getValue(this.optionsArray[0]);\n }\n this.close();\n // re-emit on root\n if (this.debouncePromise !== undefined) {\n await this.debouncePromise;\n }\n this.root.dispatchEvent(new CustomEvent('blur'));\n this.root.dispatchEvent(new CustomEvent('focusout'));\n }\n\n onInputKeydown(evt: KeyboardEvent) {\n switch (evt.code) {\n case 'ArrowDown': if (!this.menu.open) {\n this.open();\n }\n this.suppressBlur = true;\n this.menu.list_?.foundation?.focusFirstElement();\n break;\n case 'ArrowUp':\n if (!this.menu.open) {\n this.open();\n }\n this.suppressBlur = true;\n this.menu.list_?.foundation?.focusLastElement();\n break;\n case 'Space':\n if (evt.ctrlKey) {\n if (this.menu.open) {\n this.close();\n } else {\n this.loadOptions(true);\n }\n }\n break;\n }\n }\n\n onBodyMousedown(evt: MouseEvent | TouchEvent) {\n // this is needed to prevent text field label jumping\n if (closest(evt.target as HTMLElement, 'mdc-menu')) {\n evt.preventDefault();\n }\n return true;\n }\n\n handleBodyClick(evt: MouseEvent) {\n if (!closest(evt.target as HTMLElement, 'mdc-menu') && !(evt.target as HTMLElement).classList.contains('mdc-text-field') && !(evt.target as HTMLElement).classList.contains('mdc-text-field__input')) {\n this.menuSurface.foundation?.handleBodyClick(evt);\n }\n }\n\n handleMenuKeydown(event: KeyboardEvent) {\n if (this.hoistToBody && (event.key === 'Tab' || event.keyCode === 9)) {\n this.input?.focus();\n }\n return true;\n }\n\n addError(error: IError) {\n if (this.input && Object.getOwnPropertyDescriptor(this.input, 'addError')) {\n (this.input as HTMLElement as IValidatedElement).addError(error);\n }\n }\n\n removeError(error: IError) {\n if (this.input && Object.getOwnPropertyDescriptor(this.input, 'addError')) {\n (this.input as HTMLElement as IValidatedElement).removeError(error);\n }\n }\n\n renderErrors() {\n if (this.input && Object.getOwnPropertyDescriptor(this.input, 'renderErrors')) {\n (this.input as HTMLElement as IValidatedElement).renderErrors();\n }\n }\n}\n\n/** @hidden */\nexport interface IMdcLookupElement extends IValidatedElement {\n $au: {\n 'au:resource:custom-element': {\n viewModel: MdcLookup;\n };\n };\n}\n\nfunction defineMdcLookupElementApis(element: HTMLElement) {\n Object.defineProperties(element, {\n addError: {\n value(this: IMdcLookupElement, error: IError) {\n CustomElement.for<MdcLookup>(this).viewModel.addError(error);\n },\n configurable: true\n },\n removeError: {\n value(this: IMdcLookupElement, error: IError) {\n CustomElement.for<MdcLookup>(this).viewModel.removeError(error);\n },\n configurable: true\n },\n renderErrors: {\n value(this: IMdcLookupElement): void {\n CustomElement.for<MdcLookup>(this).viewModel.renderErrors();\n },\n configurable: true\n },\n });\n}\n"]}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
textField = new mdc_default_text_field_configuration_1.MdcDefaultTextFieldConfiguration();
|
|
13
|
-
tooltip = new mdc_default_tooltip_configuration_1.MdcDefaultTooltipConfiguration();
|
|
14
|
-
alert = new alert_configuration_1.MdcAlertConfiguration();
|
|
1
|
+
import { MdcAlertConfiguration } from './alert/alert-configuration';
|
|
2
|
+
import { MdcDefaultLookupConfiguration } from './lookup/mdc-lookup-configuration';
|
|
3
|
+
import { MdcDefaultSelectConfiguration } from './select/mdc-default-select-configuration';
|
|
4
|
+
import { MdcDefaultTextFieldConfiguration } from './text-field/mdc-default-text-field-configuration';
|
|
5
|
+
import { MdcDefaultTooltipConfiguration } from './tooltip/mdc-default-tooltip-configuration';
|
|
6
|
+
export class MdcConfiguration {
|
|
7
|
+
lookup = new MdcDefaultLookupConfiguration();
|
|
8
|
+
select = new MdcDefaultSelectConfiguration();
|
|
9
|
+
textField = new MdcDefaultTextFieldConfiguration();
|
|
10
|
+
tooltip = new MdcDefaultTooltipConfiguration();
|
|
11
|
+
alert = new MdcAlertConfiguration();
|
|
15
12
|
}
|
|
16
|
-
exports.MdcConfiguration = MdcConfiguration;
|
|
17
13
|
//# sourceMappingURL=mdc-configuration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdc-configuration.js","sourceRoot":"","sources":["../src/mdc-configuration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mdc-configuration.js","sourceRoot":"","sources":["../src/mdc-configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EAAE,gCAAgC,EAAE,MAAM,mDAAmD,CAAC;AACrG,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAE7F,MAAM,OAAO,gBAAgB;IAC3B,MAAM,GAAkC,IAAI,6BAA6B,EAAE,CAAC;IAC5E,MAAM,GAAkC,IAAI,6BAA6B,EAAE,CAAC;IAC5E,SAAS,GAAqC,IAAI,gCAAgC,EAAE,CAAC;IACrF,OAAO,GAAmC,IAAI,8BAA8B,EAAE,CAAC;IAC/E,KAAK,GAA0B,IAAI,qBAAqB,EAAE,CAAC;CAC5D","sourcesContent":["import { MdcAlertConfiguration } from './alert/alert-configuration';\nimport { MdcDefaultLookupConfiguration } from './lookup/mdc-lookup-configuration';\nimport { MdcDefaultSelectConfiguration } from './select/mdc-default-select-configuration';\nimport { MdcDefaultTextFieldConfiguration } from './text-field/mdc-default-text-field-configuration';\nimport { MdcDefaultTooltipConfiguration } from './tooltip/mdc-default-tooltip-configuration';\n\nexport class MdcConfiguration {\n lookup: MdcDefaultLookupConfiguration = new MdcDefaultLookupConfiguration();\n select: MdcDefaultSelectConfiguration = new MdcDefaultSelectConfiguration();\n textField: MdcDefaultTextFieldConfiguration = new MdcDefaultTextFieldConfiguration();\n tooltip: MdcDefaultTooltipConfiguration = new MdcDefaultTooltipConfiguration();\n alert: MdcAlertConfiguration = new MdcAlertConfiguration();\n}\n\n"]}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.MdcMenuSelectionGroupIcon = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const aurelia_1 = require("aurelia");
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { customAttribute, inject } from 'aurelia';
|
|
6
3
|
let MdcMenuSelectionGroupIcon = (() => {
|
|
7
|
-
let _classDecorators = [
|
|
4
|
+
let _classDecorators = [inject(Element), customAttribute('mdc-menu-selection-group-icon')];
|
|
8
5
|
let _classDescriptor;
|
|
9
6
|
let _classExtraInitializers = [];
|
|
10
7
|
let _classThis;
|
|
@@ -12,10 +9,10 @@ let MdcMenuSelectionGroupIcon = (() => {
|
|
|
12
9
|
static { _classThis = this; }
|
|
13
10
|
static {
|
|
14
11
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
15
|
-
|
|
12
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
16
13
|
MdcMenuSelectionGroupIcon = _classThis = _classDescriptor.value;
|
|
17
14
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
18
|
-
|
|
15
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
19
16
|
}
|
|
20
17
|
root;
|
|
21
18
|
constructor(root) {
|
|
@@ -27,5 +24,5 @@ let MdcMenuSelectionGroupIcon = (() => {
|
|
|
27
24
|
};
|
|
28
25
|
return MdcMenuSelectionGroupIcon = _classThis;
|
|
29
26
|
})();
|
|
30
|
-
|
|
27
|
+
export { MdcMenuSelectionGroupIcon };
|
|
31
28
|
//# sourceMappingURL=mdc-menu-selection-group-icon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdc-menu-selection-group-icon.js","sourceRoot":"","sources":["../../src/menu/mdc-menu-selection-group-icon.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mdc-menu-selection-group-icon.js","sourceRoot":"","sources":["../../src/menu/mdc-menu-selection-group-icon.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;IAIrC,yBAAyB;4BAFrC,MAAM,CAAC,OAAO,CAAC,EACf,eAAe,CAAC,+BAA+B,CAAC;;;;;;;;YACjD,6KAMC;;;YANY,uDAAyB;;QAChB,IAAI;QAAxB,YAAoB,IAAiB;YAAjB,SAAI,GAAJ,IAAI,CAAa;QAAI,CAAC;QAE1C,QAAQ;YACN,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC5D,CAAC;;;;SALU,yBAAyB","sourcesContent":["import { customAttribute, inject } from 'aurelia';\r\n\r\n@inject(Element)\r\n@customAttribute('mdc-menu-selection-group-icon')\r\nexport class MdcMenuSelectionGroupIcon {\r\n constructor(private root: HTMLElement) { }\r\n\r\n attached() {\r\n this.root.classList.add('mdc-menu__selection-group-icon');\r\n }\r\n}\r\n"]}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.MdcMenuSelectionGroup = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const aurelia_1 = require("aurelia");
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { customElement } from 'aurelia';
|
|
6
3
|
let MdcMenuSelectionGroup = (() => {
|
|
7
|
-
let _classDecorators = [
|
|
4
|
+
let _classDecorators = [customElement({ name: 'mdc-menu-selection-group', template: '<template class="mdc-menu__selection-group"><au-slot></au-slot></template>' })];
|
|
8
5
|
let _classDescriptor;
|
|
9
6
|
let _classExtraInitializers = [];
|
|
10
7
|
let _classThis;
|
|
@@ -12,13 +9,13 @@ let MdcMenuSelectionGroup = (() => {
|
|
|
12
9
|
static { _classThis = this; }
|
|
13
10
|
static {
|
|
14
11
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
15
|
-
|
|
12
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
16
13
|
MdcMenuSelectionGroup = _classThis = _classDescriptor.value;
|
|
17
14
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
18
|
-
|
|
15
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
19
16
|
}
|
|
20
17
|
};
|
|
21
18
|
return MdcMenuSelectionGroup = _classThis;
|
|
22
19
|
})();
|
|
23
|
-
|
|
20
|
+
export { MdcMenuSelectionGroup };
|
|
24
21
|
//# sourceMappingURL=mdc-menu-selection-group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdc-menu-selection-group.js","sourceRoot":"","sources":["../../src/menu/mdc-menu-selection-group.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mdc-menu-selection-group.js","sourceRoot":"","sources":["../../src/menu/mdc-menu-selection-group.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;IAG3B,qBAAqB;4BADjC,aAAa,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,4EAA4E,EAAE,CAAC;;;;;;;;YAC5I,6KAAsC;;;YAAzB,uDAAqB;;;;;SAArB,qBAAqB","sourcesContent":["import { customElement } from 'aurelia';\r\n\r\n@customElement({ name: 'mdc-menu-selection-group', template: '<template class=\"mdc-menu__selection-group\"><au-slot></au-slot></template>' })\r\nexport class MdcMenuSelectionGroup { }\r\n"]}
|