@angular/material 9.2.0 → 9.2.4
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/_theming.scss +19 -4
- package/autocomplete/index.metadata.json +1 -1
- package/autocomplete/testing/autocomplete-harness.d.ts +4 -1
- package/badge/index.metadata.json +1 -1
- package/bottom-sheet/bottom-sheet.d.ts +2 -1
- package/bundles/material-autocomplete-testing.umd.js +55 -8
- package/bundles/material-autocomplete-testing.umd.js.map +1 -1
- package/bundles/material-autocomplete-testing.umd.min.js +4 -5
- package/bundles/material-autocomplete-testing.umd.min.js.map +1 -1
- package/bundles/material-autocomplete.umd.js +28 -27
- package/bundles/material-autocomplete.umd.js.map +1 -1
- package/bundles/material-autocomplete.umd.min.js +5 -5
- package/bundles/material-autocomplete.umd.min.js.map +1 -1
- package/bundles/material-badge.umd.js +1 -1
- package/bundles/material-badge.umd.js.map +1 -1
- package/bundles/material-badge.umd.min.js +1 -1
- package/bundles/material-badge.umd.min.js.map +1 -1
- package/bundles/material-bottom-sheet.umd.js +3 -2
- package/bundles/material-bottom-sheet.umd.js.map +1 -1
- package/bundles/material-bottom-sheet.umd.min.js +1 -1
- package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
- package/bundles/material-button-toggle.umd.js +16 -6
- package/bundles/material-button-toggle.umd.js.map +1 -1
- package/bundles/material-button-toggle.umd.min.js +3 -3
- package/bundles/material-button-toggle.umd.min.js.map +1 -1
- package/bundles/material-chips.umd.js +19 -3
- package/bundles/material-chips.umd.js.map +1 -1
- package/bundles/material-chips.umd.min.js +4 -4
- package/bundles/material-chips.umd.min.js.map +1 -1
- package/bundles/material-core.umd.js +95 -71
- package/bundles/material-core.umd.js.map +1 -1
- package/bundles/material-core.umd.min.js +9 -9
- package/bundles/material-core.umd.min.js.map +1 -1
- package/bundles/material-datepicker.umd.js +23 -10
- package/bundles/material-datepicker.umd.js.map +1 -1
- package/bundles/material-datepicker.umd.min.js +7 -7
- package/bundles/material-datepicker.umd.min.js.map +1 -1
- package/bundles/material-dialog.umd.js +46 -27
- package/bundles/material-dialog.umd.js.map +1 -1
- package/bundles/material-dialog.umd.min.js +6 -6
- package/bundles/material-dialog.umd.min.js.map +1 -1
- package/bundles/material-expansion.umd.js +3 -3
- package/bundles/material-expansion.umd.js.map +1 -1
- package/bundles/material-expansion.umd.min.js +1 -1
- package/bundles/material-expansion.umd.min.js.map +1 -1
- package/bundles/material-form-field.umd.js +6 -4
- package/bundles/material-form-field.umd.js.map +1 -1
- package/bundles/material-form-field.umd.min.js +3 -3
- package/bundles/material-form-field.umd.min.js.map +1 -1
- package/bundles/material-icon.umd.js +9 -5
- package/bundles/material-icon.umd.js.map +1 -1
- package/bundles/material-icon.umd.min.js +3 -3
- package/bundles/material-icon.umd.min.js.map +1 -1
- package/bundles/material-input.umd.js +18 -14
- package/bundles/material-input.umd.js.map +1 -1
- package/bundles/material-input.umd.min.js +1 -1
- package/bundles/material-input.umd.min.js.map +1 -1
- package/bundles/material-list.umd.js +4 -4
- package/bundles/material-list.umd.js.map +1 -1
- package/bundles/material-list.umd.min.js +2 -2
- package/bundles/material-list.umd.min.js.map +1 -1
- package/bundles/material-menu.umd.js +5 -5
- package/bundles/material-menu.umd.js.map +1 -1
- package/bundles/material-menu.umd.min.js +6 -6
- package/bundles/material-menu.umd.min.js.map +1 -1
- package/bundles/material-radio.umd.js +62 -47
- package/bundles/material-radio.umd.js.map +1 -1
- package/bundles/material-radio.umd.min.js +10 -2
- package/bundles/material-radio.umd.min.js.map +1 -1
- package/bundles/material-select-testing.umd.js +45 -10
- package/bundles/material-select-testing.umd.js.map +1 -1
- package/bundles/material-select-testing.umd.min.js +2 -3
- package/bundles/material-select-testing.umd.min.js.map +1 -1
- package/bundles/material-select.umd.js +23 -14
- package/bundles/material-select.umd.js.map +1 -1
- package/bundles/material-select.umd.min.js +3 -3
- package/bundles/material-select.umd.min.js.map +1 -1
- package/bundles/material-sidenav.umd.js +2 -1
- package/bundles/material-sidenav.umd.js.map +1 -1
- package/bundles/material-sidenav.umd.min.js +2 -2
- package/bundles/material-sidenav.umd.min.js.map +1 -1
- package/bundles/material-slider.umd.js +14 -12
- package/bundles/material-slider.umd.js.map +1 -1
- package/bundles/material-slider.umd.min.js +1 -1
- package/bundles/material-slider.umd.min.js.map +1 -1
- package/bundles/material-table.umd.js +1 -1
- package/bundles/material-table.umd.js.map +1 -1
- package/bundles/material-table.umd.min.js +1 -1
- package/bundles/material-table.umd.min.js.map +1 -1
- package/bundles/material-tabs.umd.js +9 -6
- package/bundles/material-tabs.umd.js.map +1 -1
- package/bundles/material-tabs.umd.min.js +1 -1
- package/bundles/material-tabs.umd.min.js.map +1 -1
- package/bundles/material-tooltip.umd.js +5 -5
- package/bundles/material-tooltip.umd.js.map +1 -1
- package/bundles/material-tooltip.umd.min.js +3 -3
- package/bundles/material-tooltip.umd.min.js.map +1 -1
- package/bundles/material-tree.umd.js +1 -1
- package/bundles/material-tree.umd.js.map +1 -1
- package/bundles/material-tree.umd.min.js +1 -1
- package/bundles/material-tree.umd.min.js.map +1 -1
- package/button-toggle/index.metadata.json +1 -1
- package/chips/chip.d.ts +10 -3
- package/chips/index.metadata.json +1 -1
- package/core/index.metadata.json +1 -1
- package/core/ripple/ripple-renderer.d.ts +10 -3
- package/core/ripple/ripple.d.ts +2 -1
- package/datepicker/datepicker-input.d.ts +5 -2
- package/datepicker/index.metadata.json +1 -1
- package/dialog/dialog-container.d.ts +9 -2
- package/dialog/dialog-ref.d.ts +5 -0
- package/dialog/index.metadata.json +1 -1
- package/esm2015/autocomplete/autocomplete-module.js +3 -1
- package/esm2015/autocomplete/autocomplete-trigger.js +25 -24
- package/esm2015/autocomplete/testing/autocomplete-harness.js +18 -7
- package/esm2015/badge/badge-module.js +2 -2
- package/esm2015/bottom-sheet/bottom-sheet.js +5 -3
- package/esm2015/button-toggle/button-toggle.js +18 -7
- package/esm2015/chips/chip-list.js +5 -2
- package/esm2015/chips/chip.js +34 -4
- package/esm2015/core/common-behaviors/common-module.js +1 -1
- package/esm2015/core/ripple/ripple-renderer.js +140 -119
- package/esm2015/core/ripple/ripple.js +10 -7
- package/esm2015/core/version.js +1 -1
- package/esm2015/datepicker/calendar-body.js +3 -3
- package/esm2015/datepicker/calendar.js +3 -3
- package/esm2015/datepicker/datepicker-input.js +17 -2
- package/esm2015/datepicker/datepicker-module.js +3 -1
- package/esm2015/datepicker/datepicker.js +8 -2
- package/esm2015/dialog/dialog-container.js +37 -17
- package/esm2015/dialog/dialog-ref.js +24 -6
- package/esm2015/dialog/dialog.js +1 -12
- package/esm2015/expansion/expansion-panel-header.js +3 -3
- package/esm2015/expansion/expansion-panel.js +1 -1
- package/esm2015/form-field/form-field-module.js +5 -2
- package/esm2015/icon/icon.js +15 -2
- package/esm2015/input/input.js +26 -23
- package/esm2015/list/selection-list.js +8 -6
- package/esm2015/menu/menu-module.js +3 -2
- package/esm2015/radio/public-api.js +2 -2
- package/esm2015/radio/radio.js +70 -59
- package/esm2015/select/select-module.js +10 -2
- package/esm2015/select/select.js +12 -10
- package/esm2015/select/testing/select-harness.js +11 -6
- package/esm2015/sidenav/sidenav-module.js +4 -3
- package/esm2015/slider/slider.js +17 -15
- package/esm2015/snack-bar/snack-bar.js +1 -1
- package/esm2015/table/table-module.js +2 -2
- package/esm2015/tabs/paginated-tab-header.js +7 -4
- package/esm2015/tabs/tab-header.js +1 -1
- package/esm2015/tabs/tab-nav-bar/tab-nav-bar.js +3 -3
- package/esm2015/tooltip/tooltip-module.js +3 -2
- package/esm2015/tree/tree-module.js +2 -2
- package/esm5/autocomplete/autocomplete-module.js +3 -1
- package/esm5/autocomplete/autocomplete-trigger.js +24 -24
- package/esm5/autocomplete/testing/autocomplete-harness.js +56 -9
- package/esm5/badge/badge-module.js +2 -2
- package/esm5/bottom-sheet/bottom-sheet.js +4 -3
- package/esm5/button-toggle/button-toggle.js +17 -7
- package/esm5/chips/chip-list.js +5 -2
- package/esm5/chips/chip.js +17 -4
- package/esm5/core/common-behaviors/common-module.js +1 -1
- package/esm5/core/ripple/ripple-renderer.js +91 -65
- package/esm5/core/ripple/ripple.js +4 -6
- package/esm5/core/version.js +1 -1
- package/esm5/datepicker/calendar-body.js +3 -3
- package/esm5/datepicker/calendar.js +3 -3
- package/esm5/datepicker/datepicker-input.js +8 -2
- package/esm5/datepicker/datepicker-module.js +3 -1
- package/esm5/datepicker/datepicker.js +8 -2
- package/esm5/dialog/dialog-container.js +29 -15
- package/esm5/dialog/dialog-ref.js +19 -6
- package/esm5/dialog/dialog.js +1 -9
- package/esm5/expansion/expansion-panel-header.js +3 -3
- package/esm5/expansion/expansion-panel.js +1 -1
- package/esm5/form-field/form-field-module.js +5 -2
- package/esm5/icon/icon.js +7 -2
- package/esm5/input/input.js +20 -16
- package/esm5/list/selection-list.js +5 -5
- package/esm5/menu/menu-module.js +3 -2
- package/esm5/radio/radio.js +63 -48
- package/esm5/select/select-module.js +10 -2
- package/esm5/select/select.js +12 -10
- package/esm5/select/testing/select-harness.js +46 -11
- package/esm5/sidenav/sidenav-module.js +4 -3
- package/esm5/slider/slider.js +15 -13
- package/esm5/table/table-module.js +2 -2
- package/esm5/tabs/paginated-tab-header.js +7 -4
- package/esm5/tabs/tab-header.js +1 -1
- package/esm5/tabs/tab-nav-bar/tab-nav-bar.js +3 -3
- package/esm5/tooltip/tooltip-module.js +3 -2
- package/esm5/tree/tree-module.js +2 -2
- package/expansion/index.metadata.json +1 -1
- package/fesm2015/autocomplete/testing.js +17 -6
- package/fesm2015/autocomplete/testing.js.map +1 -1
- package/fesm2015/autocomplete.js +26 -24
- package/fesm2015/autocomplete.js.map +1 -1
- package/fesm2015/badge.js +1 -1
- package/fesm2015/badge.js.map +1 -1
- package/fesm2015/bottom-sheet.js +4 -2
- package/fesm2015/bottom-sheet.js.map +1 -1
- package/fesm2015/button-toggle.js +17 -6
- package/fesm2015/button-toggle.js.map +1 -1
- package/fesm2015/chips.js +37 -4
- package/fesm2015/chips.js.map +1 -1
- package/fesm2015/core.js +150 -126
- package/fesm2015/core.js.map +1 -1
- package/fesm2015/datepicker.js +29 -6
- package/fesm2015/datepicker.js.map +1 -1
- package/fesm2015/dialog.js +59 -32
- package/fesm2015/dialog.js.map +1 -1
- package/fesm2015/expansion.js +3 -3
- package/fesm2015/expansion.js.map +1 -1
- package/fesm2015/form-field.js +4 -2
- package/fesm2015/form-field.js.map +1 -1
- package/fesm2015/icon.js +14 -2
- package/fesm2015/icon.js.map +1 -1
- package/fesm2015/input.js +25 -22
- package/fesm2015/input.js.map +1 -1
- package/fesm2015/list.js +7 -5
- package/fesm2015/list.js.map +1 -1
- package/fesm2015/menu.js +2 -1
- package/fesm2015/menu.js.map +1 -1
- package/fesm2015/radio.js +71 -60
- package/fesm2015/radio.js.map +1 -1
- package/fesm2015/select/testing.js +10 -5
- package/fesm2015/select/testing.js.map +1 -1
- package/fesm2015/select.js +20 -11
- package/fesm2015/select.js.map +1 -1
- package/fesm2015/sidenav.js +3 -2
- package/fesm2015/sidenav.js.map +1 -1
- package/fesm2015/slider.js +16 -14
- package/fesm2015/slider.js.map +1 -1
- package/fesm2015/table.js +1 -1
- package/fesm2015/table.js.map +1 -1
- package/fesm2015/tabs.js +9 -6
- package/fesm2015/tabs.js.map +1 -1
- package/fesm2015/tooltip.js +2 -2
- package/fesm2015/tooltip.js.map +1 -1
- package/fesm2015/tree.js +1 -1
- package/fesm2015/tree.js.map +1 -1
- package/fesm5/autocomplete/testing.js +55 -8
- package/fesm5/autocomplete/testing.js.map +1 -1
- package/fesm5/autocomplete.js +25 -24
- package/fesm5/autocomplete.js.map +1 -1
- package/fesm5/badge.js +1 -1
- package/fesm5/badge.js.map +1 -1
- package/fesm5/bottom-sheet.js +3 -2
- package/fesm5/bottom-sheet.js.map +1 -1
- package/fesm5/button-toggle.js +16 -6
- package/fesm5/button-toggle.js.map +1 -1
- package/fesm5/chips.js +20 -4
- package/fesm5/chips.js.map +1 -1
- package/fesm5/core.js +95 -71
- package/fesm5/core.js.map +1 -1
- package/fesm5/datepicker.js +20 -6
- package/fesm5/datepicker.js.map +1 -1
- package/fesm5/dialog.js +46 -27
- package/fesm5/dialog.js.map +1 -1
- package/fesm5/expansion.js +3 -3
- package/fesm5/expansion.js.map +1 -1
- package/fesm5/form-field.js +4 -2
- package/fesm5/form-field.js.map +1 -1
- package/fesm5/icon.js +6 -2
- package/fesm5/icon.js.map +1 -1
- package/fesm5/input.js +19 -15
- package/fesm5/input.js.map +1 -1
- package/fesm5/list.js +4 -4
- package/fesm5/list.js.map +1 -1
- package/fesm5/menu.js +2 -1
- package/fesm5/menu.js.map +1 -1
- package/fesm5/radio.js +63 -49
- package/fesm5/radio.js.map +1 -1
- package/fesm5/select/testing.js +45 -10
- package/fesm5/select/testing.js.map +1 -1
- package/fesm5/select.js +20 -11
- package/fesm5/select.js.map +1 -1
- package/fesm5/sidenav.js +3 -2
- package/fesm5/sidenav.js.map +1 -1
- package/fesm5/slider.js +14 -12
- package/fesm5/slider.js.map +1 -1
- package/fesm5/table.js +1 -1
- package/fesm5/table.js.map +1 -1
- package/fesm5/tabs.js +9 -6
- package/fesm5/tabs.js.map +1 -1
- package/fesm5/tooltip.js +2 -2
- package/fesm5/tooltip.js.map +1 -1
- package/fesm5/tree.js +1 -1
- package/fesm5/tree.js.map +1 -1
- package/form-field/index.metadata.json +1 -1
- package/icon/icon.d.ts +2 -0
- package/icon/index.metadata.json +1 -1
- package/input/index.metadata.json +1 -1
- package/input/input.d.ts +4 -4
- package/list/index.metadata.json +1 -1
- package/menu/index.metadata.json +1 -1
- package/package.json +2 -2
- package/prebuilt-themes/deeppurple-amber.css +1 -1
- package/prebuilt-themes/indigo-pink.css +1 -1
- package/prebuilt-themes/pink-bluegrey.css +1 -1
- package/prebuilt-themes/purple-green.css +1 -1
- package/radio/index.metadata.json +1 -1
- package/radio/radio.d.ts +8 -2
- package/schematics/collection.json +0 -7
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-update/index.js +23 -23
- package/schematics/ng-update/{upgrade-rules → migrations}/hammer-gestures-v9/find-hammer-script-tags.d.ts +1 -1
- package/schematics/ng-update/migrations/hammer-gestures-v9/find-hammer-script-tags.js +51 -0
- package/schematics/ng-update/{upgrade-rules → migrations}/hammer-gestures-v9/find-main-module.d.ts +1 -1
- package/schematics/ng-update/migrations/hammer-gestures-v9/find-main-module.js +41 -0
- package/schematics/ng-update/{upgrade-rules → migrations}/hammer-gestures-v9/gesture-config.template +0 -0
- package/schematics/ng-update/{upgrade-rules/hammer-gestures-v9/hammer-gestures-rule.d.ts → migrations/hammer-gestures-v9/hammer-gestures-migration.d.ts} +6 -6
- package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-gestures-migration.js +784 -0
- package/schematics/ng-update/{upgrade-rules → migrations}/hammer-gestures-v9/hammer-template-check.d.ts +1 -1
- package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-template-check.js +65 -0
- package/schematics/ng-update/{upgrade-rules → migrations}/hammer-gestures-v9/import-manager.d.ts +4 -4
- package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.js +379 -0
- package/schematics/ng-update/{upgrade-rules → migrations}/hammer-gestures-v9/remove-array-element.d.ts +1 -1
- package/schematics/ng-update/migrations/hammer-gestures-v9/remove-array-element.js +75 -0
- package/schematics/ng-update/{upgrade-rules → migrations}/hammer-gestures-v9/remove-element-from-html.d.ts +1 -1
- package/schematics/ng-update/migrations/hammer-gestures-v9/remove-element-from-html.js +37 -0
- package/schematics/ng-update/migrations/misc-checks/misc-class-inheritance.d.ts +19 -0
- package/schematics/ng-update/migrations/misc-checks/misc-class-inheritance.js +57 -0
- package/schematics/ng-update/{upgrade-rules/misc-checks/misc-class-names-rule.d.ts → migrations/misc-checks/misc-class-names.d.ts} +5 -5
- package/schematics/ng-update/migrations/misc-checks/misc-class-names.js +52 -0
- package/schematics/ng-update/{upgrade-rules/misc-checks/misc-imports-rule.d.ts → migrations/misc-checks/misc-imports.d.ts} +5 -5
- package/schematics/ng-update/migrations/misc-checks/misc-imports.js +63 -0
- package/schematics/ng-update/{upgrade-rules/misc-checks/misc-property-names-rule.d.ts → migrations/misc-checks/misc-property-names.d.ts} +5 -5
- package/schematics/ng-update/migrations/misc-checks/misc-property-names.js +56 -0
- package/schematics/ng-update/migrations/misc-checks/misc-template.d.ts +17 -0
- package/schematics/ng-update/migrations/misc-checks/misc-template.js +69 -0
- package/schematics/ng-update/{upgrade-rules/misc-ripples-v7/ripple-speed-factor-rule.d.ts → migrations/misc-ripples-v7/ripple-speed-factor-migration.d.ts} +5 -5
- package/schematics/ng-update/migrations/misc-ripples-v7/ripple-speed-factor-migration.js +147 -0
- package/schematics/ng-update/{upgrade-rules → migrations}/misc-ripples-v7/ripple-speed-factor.d.ts +1 -1
- package/schematics/ng-update/migrations/misc-ripples-v7/ripple-speed-factor.js +39 -0
- package/schematics/ng-update/{upgrade-rules → migrations}/package-imports-v8/material-symbols.json +0 -0
- package/schematics/ng-update/{upgrade-rules/package-imports-v8/secondary-entry-points-rule.d.ts → migrations/package-imports-v8/secondary-entry-points-migration.d.ts} +5 -5
- package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.js +177 -0
- package/schematics/ng-update/upgrade-data.d.ts +2 -2
- package/schematics/ng-update/upgrade-data.js +1 -1
- package/select/index.metadata.json +1 -1
- package/select/testing/select-harness.d.ts +2 -1
- package/sidenav/index.metadata.json +1 -1
- package/table/index.metadata.json +1 -1
- package/tabs/_tabs-common.scss +5 -3
- package/tabs/index.metadata.json +1 -1
- package/tooltip/index.metadata.json +1 -1
- package/tree/index.metadata.json +1 -1
- package/schematics/ng-update/upgrade-rules/hammer-gestures-v9/find-hammer-script-tags.js +0 -51
- package/schematics/ng-update/upgrade-rules/hammer-gestures-v9/find-main-module.js +0 -41
- package/schematics/ng-update/upgrade-rules/hammer-gestures-v9/hammer-gestures-rule.js +0 -781
- package/schematics/ng-update/upgrade-rules/hammer-gestures-v9/hammer-template-check.js +0 -65
- package/schematics/ng-update/upgrade-rules/hammer-gestures-v9/import-manager.js +0 -379
- package/schematics/ng-update/upgrade-rules/hammer-gestures-v9/remove-array-element.js +0 -75
- package/schematics/ng-update/upgrade-rules/hammer-gestures-v9/remove-element-from-html.js +0 -37
- package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-inheritance-rule.d.ts +0 -19
- package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-inheritance-rule.js +0 -57
- package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-names-rule.js +0 -52
- package/schematics/ng-update/upgrade-rules/misc-checks/misc-imports-rule.js +0 -63
- package/schematics/ng-update/upgrade-rules/misc-checks/misc-property-names-rule.js +0 -56
- package/schematics/ng-update/upgrade-rules/misc-checks/misc-template-rule.d.ts +0 -17
- package/schematics/ng-update/upgrade-rules/misc-checks/misc-template-rule.js +0 -69
- package/schematics/ng-update/upgrade-rules/misc-ripples-v7/ripple-speed-factor-rule.js +0 -147
- package/schematics/ng-update/upgrade-rules/misc-ripples-v7/ripple-speed-factor.js +0 -39
- package/schematics/ng-update/upgrade-rules/package-imports-v8/secondary-entry-points-rule.js +0 -177
package/fesm5/button-toggle.js
CHANGED
|
@@ -213,7 +213,7 @@ var MatButtonToggleGroup = /** @class */ (function () {
|
|
|
213
213
|
// the side-effect is that we may end up updating the model value out of sequence in others
|
|
214
214
|
// The `deferEvents` flag allows us to decide whether to do it on a case-by-case basis.
|
|
215
215
|
if (deferEvents) {
|
|
216
|
-
Promise.resolve(function () { return _this._updateModelValue(isUserInput); });
|
|
216
|
+
Promise.resolve().then(function () { return _this._updateModelValue(isUserInput); });
|
|
217
217
|
}
|
|
218
218
|
else {
|
|
219
219
|
this._updateModelValue(isUserInput);
|
|
@@ -395,14 +395,24 @@ var MatButtonToggle = /** @class */ (function (_super) {
|
|
|
395
395
|
configurable: true
|
|
396
396
|
});
|
|
397
397
|
MatButtonToggle.prototype.ngOnInit = function () {
|
|
398
|
-
|
|
398
|
+
var group = this.buttonToggleGroup;
|
|
399
|
+
this._isSingleSelector = group && !group.multiple;
|
|
399
400
|
this._type = this._isSingleSelector ? 'radio' : 'checkbox';
|
|
400
401
|
this.id = this.id || "mat-button-toggle-" + _uniqueIdCounter++;
|
|
401
402
|
if (this._isSingleSelector) {
|
|
402
|
-
this.name =
|
|
403
|
+
this.name = group.name;
|
|
403
404
|
}
|
|
404
|
-
if (
|
|
405
|
-
this
|
|
405
|
+
if (group) {
|
|
406
|
+
if (group._isPrechecked(this)) {
|
|
407
|
+
this.checked = true;
|
|
408
|
+
}
|
|
409
|
+
else if (group._isSelected(this) !== this._checked) {
|
|
410
|
+
// As as side effect of the circular dependency between the toggle group and the button,
|
|
411
|
+
// we may end up in a state where the button is supposed to be checked on init, but it
|
|
412
|
+
// isn't, because the checked value was assigned too early. This can happen when Ivy
|
|
413
|
+
// assigns the static input value before the `ngOnInit` has run.
|
|
414
|
+
group._syncButtonToggle(this, this._checked);
|
|
415
|
+
}
|
|
406
416
|
}
|
|
407
417
|
this._focusMonitor.monitor(this._elementRef, true);
|
|
408
418
|
};
|
|
@@ -455,7 +465,7 @@ var MatButtonToggle = /** @class */ (function (_super) {
|
|
|
455
465
|
'[class.mat-button-toggle-checked]': 'checked',
|
|
456
466
|
'[class.mat-button-toggle-disabled]': 'disabled',
|
|
457
467
|
'[class.mat-button-toggle-appearance-standard]': 'appearance === "standard"',
|
|
458
|
-
'class': 'mat-button-toggle
|
|
468
|
+
'class': 'mat-button-toggle',
|
|
459
469
|
// Always reset the tabindex to -1 so it doesn't conflict with the one on the `button`,
|
|
460
470
|
// but can still receive focus from things like cdkFocusInitial.
|
|
461
471
|
'[attr.tabindex]': '-1',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-toggle.js","sources":["../../../../../../src/material/button-toggle/button-toggle.ts","../../../../../../src/material/button-toggle/button-toggle-module.ts","../../../../../../src/material/button-toggle/public-api.ts","../../../../../../src/material/button-toggle/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {FocusMonitor} from '@angular/cdk/a11y';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {SelectionModel} from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n InjectionToken,\n Inject,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {\n CanDisableRipple,\n mixinDisableRipple,\n CanDisableRippleCtor,\n} from '@angular/material/core';\n\n\n/** Acceptable types for a button toggle. */\nexport type ToggleType = 'checkbox' | 'radio';\n\n/** Possible appearance styles for the button toggle. */\nexport type MatButtonToggleAppearance = 'legacy' | 'standard';\n\n/**\n * Represents the default options for the button toggle that can be configured\n * using the `MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS` injection token.\n */\nexport interface MatButtonToggleDefaultOptions {\n appearance?: MatButtonToggleAppearance;\n}\n\n/**\n * Injection token that can be used to configure the\n * default options for all button toggles within an app.\n */\nexport const MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS =\n new InjectionToken<MatButtonToggleDefaultOptions>('MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS');\n\n\n\n/**\n * Provider Expression that allows mat-button-toggle-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatButtonToggleGroup),\n multi: true\n};\n\n/**\n * @deprecated Use `MatButtonToggleGroup` instead.\n * @breaking-change 8.0.0\n */\nexport class MatButtonToggleGroupMultiple {}\n\nlet _uniqueIdCounter = 0;\n\n/** Change event object emitted by MatButtonToggle. */\nexport class MatButtonToggleChange {\n constructor(\n /** The MatButtonToggle that emits the event. */\n public source: MatButtonToggle,\n\n /** The value assigned to the MatButtonToggle. */\n public value: any) {}\n}\n\n/** Exclusive selection button toggle group that behaves like a radio-button group. */\n@Directive({\n selector: 'mat-button-toggle-group',\n providers: [\n MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,\n {provide: MatButtonToggleGroupMultiple, useExisting: MatButtonToggleGroup},\n ],\n host: {\n 'role': 'group',\n 'class': 'mat-button-toggle-group',\n '[attr.aria-disabled]': 'disabled',\n '[class.mat-button-toggle-vertical]': 'vertical',\n '[class.mat-button-toggle-group-appearance-standard]': 'appearance === \"standard\"',\n },\n exportAs: 'matButtonToggleGroup',\n})\nexport class MatButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {\n private _vertical = false;\n private _multiple = false;\n private _disabled = false;\n private _selectionModel: SelectionModel<MatButtonToggle>;\n\n /**\n * Reference to the raw value that the consumer tried to assign. The real\n * value will exclude any values from this one that don't correspond to a\n * toggle. Useful for the cases where the value is assigned before the toggles\n * have been initialized or at the same that they're being swapped out.\n */\n private _rawValue: any;\n\n /**\n * The method to be called in order to update ngModel.\n * Now `ngModel` binding is not supported in multiple selection mode.\n */\n _controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n _onTouched: () => any = () => {};\n\n /** Child button toggle buttons. */\n @ContentChildren(forwardRef(() => MatButtonToggle), {\n // Note that this would technically pick up toggles\n // from nested groups, but that's not a case that we support.\n descendants: true\n }) _buttonToggles: QueryList<MatButtonToggle>;\n\n /** The appearance for all the buttons in the group. */\n @Input() appearance: MatButtonToggleAppearance;\n\n /** `name` attribute for the underlying `input` element. */\n @Input()\n get name(): string { return this._name; }\n set name(value: string) {\n this._name = value;\n\n if (this._buttonToggles) {\n this._buttonToggles.forEach(toggle => {\n toggle.name = this._name;\n toggle._markForCheck();\n });\n }\n }\n private _name = `mat-button-toggle-group-${_uniqueIdCounter++}`;\n\n /** Whether the toggle group is vertical. */\n @Input()\n get vertical(): boolean { return this._vertical; }\n set vertical(value: boolean) {\n this._vertical = coerceBooleanProperty(value);\n }\n\n /** Value of the toggle group. */\n @Input()\n get value(): any {\n const selected = this._selectionModel ? this._selectionModel.selected : [];\n\n if (this.multiple) {\n return selected.map(toggle => toggle.value);\n }\n\n return selected[0] ? selected[0].value : undefined;\n }\n set value(newValue: any) {\n this._setSelectionByValue(newValue);\n this.valueChange.emit(this.value);\n }\n\n /**\n * Event that emits whenever the value of the group changes.\n * Used to facilitate two-way data binding.\n * @docs-private\n */\n @Output() readonly valueChange = new EventEmitter<any>();\n\n /** Selected button toggles in the group. */\n get selected() {\n const selected = this._selectionModel ? this._selectionModel.selected : [];\n return this.multiple ? selected : (selected[0] || null);\n }\n\n /** Whether multiple button toggles can be selected. */\n @Input()\n get multiple(): boolean { return this._multiple; }\n set multiple(value: boolean) {\n this._multiple = coerceBooleanProperty(value);\n }\n\n /** Whether multiple button toggle group is disabled. */\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this._buttonToggles) {\n this._buttonToggles.forEach(toggle => toggle._markForCheck());\n }\n }\n\n /** Event emitted when the group's value changes. */\n @Output() readonly change: EventEmitter<MatButtonToggleChange> =\n new EventEmitter<MatButtonToggleChange>();\n\n constructor(\n private _changeDetector: ChangeDetectorRef,\n @Optional() @Inject(MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS)\n defaultOptions?: MatButtonToggleDefaultOptions) {\n\n this.appearance =\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\n }\n\n ngOnInit() {\n this._selectionModel = new SelectionModel<MatButtonToggle>(this.multiple, undefined, false);\n }\n\n ngAfterContentInit() {\n this._selectionModel.select(...this._buttonToggles.filter(toggle => toggle.checked));\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value Value to be set to the model.\n */\n writeValue(value: any) {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this._controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this._onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** Dispatch change event with current selection and group value. */\n _emitChangeEvent(): void {\n const selected = this.selected;\n const source = Array.isArray(selected) ? selected[selected.length - 1] : selected;\n const event = new MatButtonToggleChange(source!, this.value);\n this._controlValueAccessorChangeFn(event.value);\n this.change.emit(event);\n }\n\n /**\n * Syncs a button toggle's selected state with the model value.\n * @param toggle Toggle to be synced.\n * @param select Whether the toggle should be selected.\n * @param isUserInput Whether the change was a result of a user interaction.\n * @param deferEvents Whether to defer emitting the change events.\n */\n _syncButtonToggle(toggle: MatButtonToggle,\n select: boolean,\n isUserInput = false,\n deferEvents = false) {\n // Deselect the currently-selected toggle, if we're in single-selection\n // mode and the button being toggled isn't selected at the moment.\n if (!this.multiple && this.selected && !toggle.checked) {\n (this.selected as MatButtonToggle).checked = false;\n }\n\n if (this._selectionModel) {\n if (select) {\n this._selectionModel.select(toggle);\n } else {\n this._selectionModel.deselect(toggle);\n }\n } else {\n deferEvents = true;\n }\n\n // We need to defer in some cases in order to avoid \"changed after checked errors\", however\n // the side-effect is that we may end up updating the model value out of sequence in others\n // The `deferEvents` flag allows us to decide whether to do it on a case-by-case basis.\n if (deferEvents) {\n Promise.resolve(() => this._updateModelValue(isUserInput));\n } else {\n this._updateModelValue(isUserInput);\n }\n }\n\n /** Checks whether a button toggle is selected. */\n _isSelected(toggle: MatButtonToggle) {\n return this._selectionModel && this._selectionModel.isSelected(toggle);\n }\n\n /** Determines whether a button toggle should be checked on init. */\n _isPrechecked(toggle: MatButtonToggle) {\n if (typeof this._rawValue === 'undefined') {\n return false;\n }\n\n if (this.multiple && Array.isArray(this._rawValue)) {\n return this._rawValue.some(value => toggle.value != null && value === toggle.value);\n }\n\n return toggle.value === this._rawValue;\n }\n\n /** Updates the selection state of the toggles in the group based on a value. */\n private _setSelectionByValue(value: any|any[]) {\n this._rawValue = value;\n\n if (!this._buttonToggles) {\n return;\n }\n\n if (this.multiple && value) {\n if (!Array.isArray(value)) {\n throw Error('Value must be an array in multiple-selection mode.');\n }\n\n this._clearSelection();\n value.forEach((currentValue: any) => this._selectValue(currentValue));\n } else {\n this._clearSelection();\n this._selectValue(value);\n }\n }\n\n /** Clears the selected toggles. */\n private _clearSelection() {\n this._selectionModel.clear();\n this._buttonToggles.forEach(toggle => toggle.checked = false);\n }\n\n /** Selects a value if there's a toggle that corresponds to it. */\n private _selectValue(value: any) {\n const correspondingOption = this._buttonToggles.find(toggle => {\n return toggle.value != null && toggle.value === value;\n });\n\n if (correspondingOption) {\n correspondingOption.checked = true;\n this._selectionModel.select(correspondingOption);\n }\n }\n\n /** Syncs up the group's value with the model and emits the change event. */\n private _updateModelValue(isUserInput: boolean) {\n // Only emit the change event for user input.\n if (isUserInput) {\n this._emitChangeEvent();\n }\n\n // Note: we emit this one no matter whether it was a user interaction, because\n // it is used by Angular to sync up the two-way data binding.\n this.valueChange.emit(this.value);\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_multiple: BooleanInput;\n static ngAcceptInputType_vertical: BooleanInput;\n}\n\n// Boilerplate for applying mixins to the MatButtonToggle class.\n/** @docs-private */\nclass MatButtonToggleBase {}\nconst _MatButtonToggleMixinBase: CanDisableRippleCtor & typeof MatButtonToggleBase =\n mixinDisableRipple(MatButtonToggleBase);\n\n/** Single button inside of a toggle group. */\n@Component({\n selector: 'mat-button-toggle',\n templateUrl: 'button-toggle.html',\n styleUrls: ['button-toggle.css'],\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matButtonToggle',\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disableRipple'],\n host: {\n '[class.mat-button-toggle-standalone]': '!buttonToggleGroup',\n '[class.mat-button-toggle-checked]': 'checked',\n '[class.mat-button-toggle-disabled]': 'disabled',\n '[class.mat-button-toggle-appearance-standard]': 'appearance === \"standard\"',\n 'class': 'mat-button-toggle mat-focus-indicator',\n // Always reset the tabindex to -1 so it doesn't conflict with the one on the `button`,\n // but can still receive focus from things like cdkFocusInitial.\n '[attr.tabindex]': '-1',\n '[attr.id]': 'id',\n '[attr.name]': 'null',\n '(focus)': 'focus()',\n }\n})\nexport class MatButtonToggle extends _MatButtonToggleMixinBase implements OnInit,\n CanDisableRipple, OnDestroy {\n\n private _isSingleSelector = false;\n private _checked = false;\n\n /**\n * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will\n * take precedence so this may be omitted.\n */\n @Input('aria-label') ariaLabel: string;\n\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** Type of the button toggle. Either 'radio' or 'checkbox'. */\n _type: ToggleType;\n\n @ViewChild('button') _buttonElement: ElementRef<HTMLButtonElement>;\n\n /** The parent button toggle group (exclusive selection). Optional. */\n buttonToggleGroup: MatButtonToggleGroup;\n\n /** Unique ID for the underlying `button` element. */\n get buttonId(): string { return `${this.id}-button`; }\n\n /** The unique ID for this button toggle. */\n @Input() id: string;\n\n /** HTML's 'name' attribute used to group radios for unique selection. */\n @Input() name: string;\n\n /** MatButtonToggleGroup reads this to assign its own value. */\n @Input() value: any;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** The appearance style of the button. */\n @Input()\n get appearance(): MatButtonToggleAppearance {\n return this.buttonToggleGroup ? this.buttonToggleGroup.appearance : this._appearance;\n }\n set appearance(value: MatButtonToggleAppearance) {\n this._appearance = value;\n }\n private _appearance: MatButtonToggleAppearance;\n\n /** Whether the button is checked. */\n @Input()\n get checked(): boolean {\n return this.buttonToggleGroup ? this.buttonToggleGroup._isSelected(this) : this._checked;\n }\n set checked(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._checked) {\n this._checked = newValue;\n\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup._syncButtonToggle(this, this._checked);\n }\n\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** Whether the button is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled);\n }\n set disabled(value: boolean) { this._disabled = coerceBooleanProperty(value); }\n private _disabled: boolean = false;\n\n /** Event emitted when the group value changes. */\n @Output() readonly change: EventEmitter<MatButtonToggleChange> =\n new EventEmitter<MatButtonToggleChange>();\n\n constructor(@Optional() toggleGroup: MatButtonToggleGroup,\n private _changeDetectorRef: ChangeDetectorRef,\n private _elementRef: ElementRef<HTMLElement>,\n private _focusMonitor: FocusMonitor,\n // @breaking-change 8.0.0 `defaultTabIndex` to be made a required parameter.\n @Attribute('tabindex') defaultTabIndex: string,\n @Optional() @Inject(MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS)\n defaultOptions?: MatButtonToggleDefaultOptions) {\n super();\n\n const parsedTabIndex = Number(defaultTabIndex);\n this.tabIndex = (parsedTabIndex || parsedTabIndex === 0) ? parsedTabIndex : null;\n this.buttonToggleGroup = toggleGroup;\n this.appearance =\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\n }\n\n ngOnInit() {\n this._isSingleSelector = this.buttonToggleGroup && !this.buttonToggleGroup.multiple;\n this._type = this._isSingleSelector ? 'radio' : 'checkbox';\n this.id = this.id || `mat-button-toggle-${_uniqueIdCounter++}`;\n\n if (this._isSingleSelector) {\n this.name = this.buttonToggleGroup.name;\n }\n\n if (this.buttonToggleGroup && this.buttonToggleGroup._isPrechecked(this)) {\n this.checked = true;\n }\n\n this._focusMonitor.monitor(this._elementRef, true);\n }\n\n ngOnDestroy() {\n const group = this.buttonToggleGroup;\n\n this._focusMonitor.stopMonitoring(this._elementRef);\n\n // Remove the toggle from the selection once it's destroyed. Needs to happen\n // on the next tick in order to avoid \"changed after checked\" errors.\n if (group && group._isSelected(this)) {\n group._syncButtonToggle(this, false, false, true);\n }\n }\n\n /** Focuses the button. */\n focus(options?: FocusOptions): void {\n this._buttonElement.nativeElement.focus(options);\n }\n\n /** Checks the button toggle due to an interaction with the underlying native button. */\n _onButtonClick() {\n const newChecked = this._isSingleSelector ? true : !this._checked;\n\n if (newChecked !== this._checked) {\n this._checked = newChecked;\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup._syncButtonToggle(this, this._checked, true);\n this.buttonToggleGroup._onTouched();\n }\n }\n // Emit a change event when it's the single selector\n this.change.emit(new MatButtonToggleChange(this, this.value));\n }\n\n /**\n * Marks the button toggle as needing checking for change detection.\n * This method is exposed because the parent button toggle group will directly\n * update bound properties of the radio button.\n */\n _markForCheck() {\n // When the group value changes, the button will not be notified.\n // Use `markForCheck` to explicit update button toggle's status.\n this._changeDetectorRef.markForCheck();\n }\n\n static ngAcceptInputType_checked: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_vertical: BooleanInput;\n static ngAcceptInputType_multiple: BooleanInput;\n static ngAcceptInputType_disableRipple: BooleanInput;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule, MatRippleModule} from '@angular/material/core';\nimport {MatButtonToggle, MatButtonToggleGroup} from './button-toggle';\n\n\n@NgModule({\n imports: [MatCommonModule, MatRippleModule],\n exports: [MatCommonModule, MatButtonToggleGroup, MatButtonToggle],\n declarations: [MatButtonToggleGroup, MatButtonToggle],\n})\nexport class MatButtonToggleModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './button-toggle';\nexport * from './button-toggle-module';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;AAAA;;;;;;;AAuDA;;;;AAIA,IAAa,iCAAiC,GAC1C,IAAI,cAAc,CAAgC,mCAAmC,CAAC,CAAC;;;;;;AAS3F,IAAa,sCAAsC,GAAQ;IACzD,OAAO,EAAE,iBAAiB;IAC1B,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,oBAAoB,GAAA,CAAC;IACnD,KAAK,EAAE,IAAI;CACZ,CAAC;;;;;AAMF;IAAA;KAA4C;IAAD,mCAAC;CAAA,IAAA;AAE5C,IAAI,gBAAgB,GAAG,CAAC,CAAC;;AAGzB;IACE;;IAES,MAAuB;;IAGvB,KAAU;QAHV,WAAM,GAAN,MAAM,CAAiB;QAGvB,UAAK,GAAL,KAAK,CAAK;KAAI;IACzB,4BAAC;CAAA,IAAA;AAED;AACA;IAyHE,8BACU,eAAkC,EAEtC,cAA8C;QAF1C,oBAAe,GAAf,eAAe,CAAmB;QA1GpC,cAAS,GAAG,KAAK,CAAC;QAClB,cAAS,GAAG,KAAK,CAAC;QAClB,cAAS,GAAG,KAAK,CAAC;;;;;QAe1B,kCAA6B,GAAyB,eAAQ,CAAC;;QAG/D,eAAU,GAAc,eAAQ,CAAC;QAyBzB,UAAK,GAAG,6BAA2B,gBAAgB,EAAI,CAAC;;;;;;QA8B7C,gBAAW,GAAG,IAAI,YAAY,EAAO,CAAC;;QA2BtC,WAAM,GACrB,IAAI,YAAY,EAAyB,CAAC;QAO1C,IAAI,CAAC,UAAU;YACX,cAAc,IAAI,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,UAAU,GAAG,UAAU,CAAC;KAC1F;IA/EH,sBACI,sCAAI;;aADR,cACqB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE;aACzC,UAAS,KAAa;YAAtB,iBASC;YARC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAEnB,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAA,MAAM;oBAChC,MAAM,CAAC,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC;oBACzB,MAAM,CAAC,aAAa,EAAE,CAAC;iBACxB,CAAC,CAAC;aACJ;SACF;;;OAVwC;IAczC,sBACI,0CAAQ;;aADZ,cAC0B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE;aAClD,UAAa,KAAc;YACzB,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;SAC/C;;;OAHiD;IAMlD,sBACI,uCAAK;;aADT;YAEE,IAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,EAAE,CAAC;YAE3E,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO,QAAQ,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,KAAK,GAAA,CAAC,CAAC;aAC7C;YAED,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC;SACpD;aACD,UAAU,QAAa;YACrB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC;;;OAJA;IAcD,sBAAI,0CAAQ;;aAAZ;YACE,IAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,EAAE,CAAC;YAC3E,OAAO,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;SACzD;;;OAAA;IAGD,sBACI,0CAAQ;;aADZ,cAC0B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE;aAClD,UAAa,KAAc;YACzB,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;SAC/C;;;OAHiD;IAMlD,sBACI,0CAAQ;;aADZ,cAC0B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE;aAClD,UAAa,KAAc;YACzB,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAE9C,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,aAAa,EAAE,GAAA,CAAC,CAAC;aAC/D;SACF;;;OAPiD;IAsBlD,uCAAQ,GAAR;QACE,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAkB,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;KAC7F;IAED,iDAAkB,GAAlB;;QACE,CAAA,KAAA,IAAI,CAAC,eAAe,EAAC,MAAM,oBAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,OAAO,GAAA,CAAC,GAAE;KACtF;;;;;IAMD,yCAAU,GAAV,UAAW,KAAU;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;KACrC;;IAGD,+CAAgB,GAAhB,UAAiB,EAAwB;QACvC,IAAI,CAAC,6BAA6B,GAAG,EAAE,CAAC;KACzC;;IAGD,gDAAiB,GAAjB,UAAkB,EAAO;QACvB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;;IAGD,+CAAgB,GAAhB,UAAiB,UAAmB;QAClC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;;IAGD,+CAAgB,GAAhB;QACE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;QAClF,IAAM,KAAK,GAAG,IAAI,qBAAqB,CAAC,MAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;;;;;;;;IASD,gDAAiB,GAAjB,UAAkB,MAAuB,EACvB,MAAe,EACf,WAAmB,EACnB,WAAmB;QAHrC,iBA4BC;QA1BiB,4BAAA,EAAA,mBAAmB;QACnB,4BAAA,EAAA,mBAAmB;;;QAGnC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACrD,IAAI,CAAC,QAA4B,CAAC,OAAO,GAAG,KAAK,CAAC;SACpD;QAED,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;aACrC;iBAAM;gBACL,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aACvC;SACF;aAAM;YACL,WAAW,GAAG,IAAI,CAAC;SACpB;;;;QAKD,IAAI,WAAW,EAAE;YACf,OAAO,CAAC,OAAO,CAAC,cAAM,OAAA,KAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAA,CAAC,CAAC;SAC5D;aAAM;YACL,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;SACrC;KACF;;IAGD,0CAAW,GAAX,UAAY,MAAuB;QACjC,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;KACxE;;IAGD,4CAAa,GAAb,UAAc,MAAuB;QACnC,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,WAAW,EAAE;YACzC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAClD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,GAAA,CAAC,CAAC;SACrF;QAED,OAAO,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC;KACxC;;IAGO,mDAAoB,GAA5B,UAA6B,KAAgB;QAA7C,iBAkBC;QAjBC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,OAAO;SACR;QAED,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE;YAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACzB,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAC;aACnE;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,UAAC,YAAiB,IAAK,OAAA,KAAI,CAAC,YAAY,CAAC,YAAY,CAAC,GAAA,CAAC,CAAC;SACvE;aAAM;YACL,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC1B;KACF;;IAGO,8CAAe,GAAvB;QACE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,OAAO,GAAG,KAAK,GAAA,CAAC,CAAC;KAC/D;;IAGO,2CAAY,GAApB,UAAqB,KAAU;QAC7B,IAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAA,MAAM;YACzD,OAAO,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC;SACvD,CAAC,CAAC;QAEH,IAAI,mBAAmB,EAAE;YACvB,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;SAClD;KACF;;IAGO,gDAAiB,GAAzB,UAA0B,WAAoB;;QAE5C,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;;;QAID,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;;gBAnRF,SAAS,SAAC;oBACT,QAAQ,EAAE,yBAAyB;oBACnC,SAAS,EAAE;wBACT,sCAAsC;wBACtC,EAAC,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,oBAAoB,EAAC;qBAC3E;oBACD,IAAI,EAAE;wBACJ,MAAM,EAAE,OAAO;wBACf,OAAO,EAAE,yBAAyB;wBAClC,sBAAsB,EAAE,UAAU;wBAClC,oCAAoC,EAAE,UAAU;wBAChD,qDAAqD,EAAE,2BAA2B;qBACnF;oBACD,QAAQ,EAAE,sBAAsB;iBACjC;;;;gBA7FC,iBAAiB;gDA0Md,QAAQ,YAAI,MAAM,SAAC,iCAAiC;;;iCApFtD,eAAe,SAAC,UAAU,CAAC,cAAM,OAAA,eAAe,GAAA,CAAC,EAAE;;;wBAGlD,WAAW,EAAE,IAAI;qBAClB;6BAGA,KAAK;uBAGL,KAAK;2BAeL,KAAK;wBAOL,KAAK;8BAoBL,MAAM;2BASN,KAAK;2BAOL,KAAK;yBAWL,MAAM;;IAkKT,2BAAC;CAxRD,IAwRC;AAED;;AAEA;IAAA;KAA4B;IAAD,0BAAC;CAAA,IAAA;AAC5B,IAAM,yBAAyB,GAC3B,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;;AAG5C;IAsBqC,mCAAyB;IAiF5D,yBAAwB,WAAiC,EACrC,kBAAqC,EACrC,WAAoC,EACpC,aAA2B;;IAEZ,eAAuB,EAE1C,cAA8C;QAP9D,YAQE,iBAAO,SAOR;QAdmB,wBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,iBAAW,GAAX,WAAW,CAAyB;QACpC,mBAAa,GAAb,aAAa,CAAc;QAjFvC,uBAAiB,GAAG,KAAK,CAAC;QAC1B,cAAQ,GAAG,KAAK,CAAC;;;;QAWC,oBAAc,GAAkB,IAAI,CAAC;QA4DvD,eAAS,GAAY,KAAK,CAAC;;QAGhB,YAAM,GACrB,IAAI,YAAY,EAAyB,CAAC;QAY5C,IAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/C,KAAI,CAAC,QAAQ,GAAG,CAAC,cAAc,IAAI,cAAc,KAAK,CAAC,IAAI,cAAc,GAAG,IAAI,CAAC;QACjF,KAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;QACrC,KAAI,CAAC,UAAU;YACX,cAAc,IAAI,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,UAAU,GAAG,UAAU,CAAC;;KAC1F;IAtED,sBAAI,qCAAQ;;aAAZ,cAAyB,OAAU,IAAI,CAAC,EAAE,YAAS,CAAC,EAAE;;;OAAA;IAetD,sBACI,uCAAU;;aADd;YAEE,OAAO,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;SACtF;aACD,UAAe,KAAgC;YAC7C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;;;OAHA;IAOD,sBACI,oCAAO;;aADX;YAEE,OAAO,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC1F;aACD,UAAY,KAAc;YACxB,IAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAE9C,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;gBAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAEzB,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBAC1B,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC/D;gBAED,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;aACxC;SACF;;;OAbA;IAgBD,sBACI,qCAAQ;;aADZ;YAEE,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SACtF;aACD,UAAa,KAAc,IAAI,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE;;;OAD9E;IAyBD,kCAAQ,GAAR;QACE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QACpF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAAC;QAC3D,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,uBAAqB,gBAAgB,EAAI,CAAC;QAE/D,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;SACzC;QAED,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;YACxE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KACpD;IAED,qCAAW,GAAX;QACE,IAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAErC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;;QAIpD,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YACpC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SACnD;KACF;;IAGD,+BAAK,GAAL,UAAM,OAAsB;QAC1B,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAClD;;IAGD,wCAAc,GAAd;QACE,IAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;QAElE,IAAI,UAAU,KAAK,IAAI,CAAC,QAAQ,EAAE;YAChC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;YAC3B,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACpE,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;aACrC;SACF;;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KAC/D;;;;;;IAOD,uCAAa,GAAb;;;QAGE,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;;gBAjLF,SAAS,SAAC;oBACT,QAAQ,EAAE,mBAAmB;oBAC7B,2vBAAiC;oBAEjC,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,QAAQ,EAAE,iBAAiB;oBAC3B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,MAAM,EAAE,CAAC,eAAe,CAAC;oBACzB,IAAI,EAAE;wBACJ,sCAAsC,EAAE,oBAAoB;wBAC5D,mCAAmC,EAAE,SAAS;wBAC9C,oCAAoC,EAAE,UAAU;wBAChD,+CAA+C,EAAE,2BAA2B;wBAC5E,OAAO,EAAE,uCAAuC;;;wBAGhD,iBAAiB,EAAE,IAAI;wBACvB,WAAW,EAAE,IAAI;wBACjB,aAAa,EAAE,MAAM;wBACrB,SAAS,EAAE,SAAS;qBACrB;;iBACF;;;;gBAkFsC,oBAAoB,uBAA5C,QAAQ;gBAvdrB,iBAAiB;gBAIjB,UAAU;gBAXJ,YAAY;6CAmeL,SAAS,SAAC,UAAU;gDACpB,QAAQ,YAAI,MAAM,SAAC,iCAAiC;;;4BA7EhE,KAAK,SAAC,YAAY;iCAKlB,KAAK,SAAC,iBAAiB;iCAKvB,SAAS,SAAC,QAAQ;qBASlB,KAAK;uBAGL,KAAK;wBAGL,KAAK;2BAGL,KAAK;6BAGL,KAAK;0BAUL,KAAK;2BAmBL,KAAK;yBAQL,MAAM;;IAoFT,sBAAC;CAAA,CAlKoC,yBAAyB;;ACrZ9D;;;;;;;AAQA;IAKA;KAKqC;;gBALpC,QAAQ,SAAC;oBACR,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;oBAC3C,OAAO,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE,eAAe,CAAC;oBACjE,YAAY,EAAE,CAAC,oBAAoB,EAAE,eAAe,CAAC;iBACtD;;IACmC,4BAAC;CALrC;;ACbA;;;;;;GAMG;;ACNH;;GAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"button-toggle.js","sources":["../../../../../../src/material/button-toggle/button-toggle.ts","../../../../../../src/material/button-toggle/button-toggle-module.ts","../../../../../../src/material/button-toggle/public-api.ts","../../../../../../src/material/button-toggle/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {FocusMonitor} from '@angular/cdk/a11y';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {SelectionModel} from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n InjectionToken,\n Inject,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {\n CanDisableRipple,\n mixinDisableRipple,\n CanDisableRippleCtor,\n} from '@angular/material/core';\n\n\n/** Acceptable types for a button toggle. */\nexport type ToggleType = 'checkbox' | 'radio';\n\n/** Possible appearance styles for the button toggle. */\nexport type MatButtonToggleAppearance = 'legacy' | 'standard';\n\n/**\n * Represents the default options for the button toggle that can be configured\n * using the `MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS` injection token.\n */\nexport interface MatButtonToggleDefaultOptions {\n appearance?: MatButtonToggleAppearance;\n}\n\n/**\n * Injection token that can be used to configure the\n * default options for all button toggles within an app.\n */\nexport const MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS =\n new InjectionToken<MatButtonToggleDefaultOptions>('MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS');\n\n\n\n/**\n * Provider Expression that allows mat-button-toggle-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatButtonToggleGroup),\n multi: true\n};\n\n/**\n * @deprecated Use `MatButtonToggleGroup` instead.\n * @breaking-change 8.0.0\n */\nexport class MatButtonToggleGroupMultiple {}\n\nlet _uniqueIdCounter = 0;\n\n/** Change event object emitted by MatButtonToggle. */\nexport class MatButtonToggleChange {\n constructor(\n /** The MatButtonToggle that emits the event. */\n public source: MatButtonToggle,\n\n /** The value assigned to the MatButtonToggle. */\n public value: any) {}\n}\n\n/** Exclusive selection button toggle group that behaves like a radio-button group. */\n@Directive({\n selector: 'mat-button-toggle-group',\n providers: [\n MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,\n {provide: MatButtonToggleGroupMultiple, useExisting: MatButtonToggleGroup},\n ],\n host: {\n 'role': 'group',\n 'class': 'mat-button-toggle-group',\n '[attr.aria-disabled]': 'disabled',\n '[class.mat-button-toggle-vertical]': 'vertical',\n '[class.mat-button-toggle-group-appearance-standard]': 'appearance === \"standard\"',\n },\n exportAs: 'matButtonToggleGroup',\n})\nexport class MatButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {\n private _vertical = false;\n private _multiple = false;\n private _disabled = false;\n private _selectionModel: SelectionModel<MatButtonToggle>;\n\n /**\n * Reference to the raw value that the consumer tried to assign. The real\n * value will exclude any values from this one that don't correspond to a\n * toggle. Useful for the cases where the value is assigned before the toggles\n * have been initialized or at the same that they're being swapped out.\n */\n private _rawValue: any;\n\n /**\n * The method to be called in order to update ngModel.\n * Now `ngModel` binding is not supported in multiple selection mode.\n */\n _controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n _onTouched: () => any = () => {};\n\n /** Child button toggle buttons. */\n @ContentChildren(forwardRef(() => MatButtonToggle), {\n // Note that this would technically pick up toggles\n // from nested groups, but that's not a case that we support.\n descendants: true\n }) _buttonToggles: QueryList<MatButtonToggle>;\n\n /** The appearance for all the buttons in the group. */\n @Input() appearance: MatButtonToggleAppearance;\n\n /** `name` attribute for the underlying `input` element. */\n @Input()\n get name(): string { return this._name; }\n set name(value: string) {\n this._name = value;\n\n if (this._buttonToggles) {\n this._buttonToggles.forEach(toggle => {\n toggle.name = this._name;\n toggle._markForCheck();\n });\n }\n }\n private _name = `mat-button-toggle-group-${_uniqueIdCounter++}`;\n\n /** Whether the toggle group is vertical. */\n @Input()\n get vertical(): boolean { return this._vertical; }\n set vertical(value: boolean) {\n this._vertical = coerceBooleanProperty(value);\n }\n\n /** Value of the toggle group. */\n @Input()\n get value(): any {\n const selected = this._selectionModel ? this._selectionModel.selected : [];\n\n if (this.multiple) {\n return selected.map(toggle => toggle.value);\n }\n\n return selected[0] ? selected[0].value : undefined;\n }\n set value(newValue: any) {\n this._setSelectionByValue(newValue);\n this.valueChange.emit(this.value);\n }\n\n /**\n * Event that emits whenever the value of the group changes.\n * Used to facilitate two-way data binding.\n * @docs-private\n */\n @Output() readonly valueChange = new EventEmitter<any>();\n\n /** Selected button toggles in the group. */\n get selected() {\n const selected = this._selectionModel ? this._selectionModel.selected : [];\n return this.multiple ? selected : (selected[0] || null);\n }\n\n /** Whether multiple button toggles can be selected. */\n @Input()\n get multiple(): boolean { return this._multiple; }\n set multiple(value: boolean) {\n this._multiple = coerceBooleanProperty(value);\n }\n\n /** Whether multiple button toggle group is disabled. */\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this._buttonToggles) {\n this._buttonToggles.forEach(toggle => toggle._markForCheck());\n }\n }\n\n /** Event emitted when the group's value changes. */\n @Output() readonly change: EventEmitter<MatButtonToggleChange> =\n new EventEmitter<MatButtonToggleChange>();\n\n constructor(\n private _changeDetector: ChangeDetectorRef,\n @Optional() @Inject(MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS)\n defaultOptions?: MatButtonToggleDefaultOptions) {\n\n this.appearance =\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\n }\n\n ngOnInit() {\n this._selectionModel = new SelectionModel<MatButtonToggle>(this.multiple, undefined, false);\n }\n\n ngAfterContentInit() {\n this._selectionModel.select(...this._buttonToggles.filter(toggle => toggle.checked));\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value Value to be set to the model.\n */\n writeValue(value: any) {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this._controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this._onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** Dispatch change event with current selection and group value. */\n _emitChangeEvent(): void {\n const selected = this.selected;\n const source = Array.isArray(selected) ? selected[selected.length - 1] : selected;\n const event = new MatButtonToggleChange(source!, this.value);\n this._controlValueAccessorChangeFn(event.value);\n this.change.emit(event);\n }\n\n /**\n * Syncs a button toggle's selected state with the model value.\n * @param toggle Toggle to be synced.\n * @param select Whether the toggle should be selected.\n * @param isUserInput Whether the change was a result of a user interaction.\n * @param deferEvents Whether to defer emitting the change events.\n */\n _syncButtonToggle(toggle: MatButtonToggle,\n select: boolean,\n isUserInput = false,\n deferEvents = false) {\n // Deselect the currently-selected toggle, if we're in single-selection\n // mode and the button being toggled isn't selected at the moment.\n if (!this.multiple && this.selected && !toggle.checked) {\n (this.selected as MatButtonToggle).checked = false;\n }\n\n if (this._selectionModel) {\n if (select) {\n this._selectionModel.select(toggle);\n } else {\n this._selectionModel.deselect(toggle);\n }\n } else {\n deferEvents = true;\n }\n\n // We need to defer in some cases in order to avoid \"changed after checked errors\", however\n // the side-effect is that we may end up updating the model value out of sequence in others\n // The `deferEvents` flag allows us to decide whether to do it on a case-by-case basis.\n if (deferEvents) {\n Promise.resolve().then(() => this._updateModelValue(isUserInput));\n } else {\n this._updateModelValue(isUserInput);\n }\n }\n\n /** Checks whether a button toggle is selected. */\n _isSelected(toggle: MatButtonToggle) {\n return this._selectionModel && this._selectionModel.isSelected(toggle);\n }\n\n /** Determines whether a button toggle should be checked on init. */\n _isPrechecked(toggle: MatButtonToggle) {\n if (typeof this._rawValue === 'undefined') {\n return false;\n }\n\n if (this.multiple && Array.isArray(this._rawValue)) {\n return this._rawValue.some(value => toggle.value != null && value === toggle.value);\n }\n\n return toggle.value === this._rawValue;\n }\n\n /** Updates the selection state of the toggles in the group based on a value. */\n private _setSelectionByValue(value: any|any[]) {\n this._rawValue = value;\n\n if (!this._buttonToggles) {\n return;\n }\n\n if (this.multiple && value) {\n if (!Array.isArray(value)) {\n throw Error('Value must be an array in multiple-selection mode.');\n }\n\n this._clearSelection();\n value.forEach((currentValue: any) => this._selectValue(currentValue));\n } else {\n this._clearSelection();\n this._selectValue(value);\n }\n }\n\n /** Clears the selected toggles. */\n private _clearSelection() {\n this._selectionModel.clear();\n this._buttonToggles.forEach(toggle => toggle.checked = false);\n }\n\n /** Selects a value if there's a toggle that corresponds to it. */\n private _selectValue(value: any) {\n const correspondingOption = this._buttonToggles.find(toggle => {\n return toggle.value != null && toggle.value === value;\n });\n\n if (correspondingOption) {\n correspondingOption.checked = true;\n this._selectionModel.select(correspondingOption);\n }\n }\n\n /** Syncs up the group's value with the model and emits the change event. */\n private _updateModelValue(isUserInput: boolean) {\n // Only emit the change event for user input.\n if (isUserInput) {\n this._emitChangeEvent();\n }\n\n // Note: we emit this one no matter whether it was a user interaction, because\n // it is used by Angular to sync up the two-way data binding.\n this.valueChange.emit(this.value);\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_multiple: BooleanInput;\n static ngAcceptInputType_vertical: BooleanInput;\n}\n\n// Boilerplate for applying mixins to the MatButtonToggle class.\n/** @docs-private */\nclass MatButtonToggleBase {}\nconst _MatButtonToggleMixinBase: CanDisableRippleCtor & typeof MatButtonToggleBase =\n mixinDisableRipple(MatButtonToggleBase);\n\n/** Single button inside of a toggle group. */\n@Component({\n selector: 'mat-button-toggle',\n templateUrl: 'button-toggle.html',\n styleUrls: ['button-toggle.css'],\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matButtonToggle',\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disableRipple'],\n host: {\n '[class.mat-button-toggle-standalone]': '!buttonToggleGroup',\n '[class.mat-button-toggle-checked]': 'checked',\n '[class.mat-button-toggle-disabled]': 'disabled',\n '[class.mat-button-toggle-appearance-standard]': 'appearance === \"standard\"',\n 'class': 'mat-button-toggle',\n // Always reset the tabindex to -1 so it doesn't conflict with the one on the `button`,\n // but can still receive focus from things like cdkFocusInitial.\n '[attr.tabindex]': '-1',\n '[attr.id]': 'id',\n '[attr.name]': 'null',\n '(focus)': 'focus()',\n }\n})\nexport class MatButtonToggle extends _MatButtonToggleMixinBase implements OnInit,\n CanDisableRipple, OnDestroy {\n\n private _isSingleSelector = false;\n private _checked = false;\n\n /**\n * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will\n * take precedence so this may be omitted.\n */\n @Input('aria-label') ariaLabel: string;\n\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** Type of the button toggle. Either 'radio' or 'checkbox'. */\n _type: ToggleType;\n\n @ViewChild('button') _buttonElement: ElementRef<HTMLButtonElement>;\n\n /** The parent button toggle group (exclusive selection). Optional. */\n buttonToggleGroup: MatButtonToggleGroup;\n\n /** Unique ID for the underlying `button` element. */\n get buttonId(): string { return `${this.id}-button`; }\n\n /** The unique ID for this button toggle. */\n @Input() id: string;\n\n /** HTML's 'name' attribute used to group radios for unique selection. */\n @Input() name: string;\n\n /** MatButtonToggleGroup reads this to assign its own value. */\n @Input() value: any;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** The appearance style of the button. */\n @Input()\n get appearance(): MatButtonToggleAppearance {\n return this.buttonToggleGroup ? this.buttonToggleGroup.appearance : this._appearance;\n }\n set appearance(value: MatButtonToggleAppearance) {\n this._appearance = value;\n }\n private _appearance: MatButtonToggleAppearance;\n\n /** Whether the button is checked. */\n @Input()\n get checked(): boolean {\n return this.buttonToggleGroup ? this.buttonToggleGroup._isSelected(this) : this._checked;\n }\n set checked(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._checked) {\n this._checked = newValue;\n\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup._syncButtonToggle(this, this._checked);\n }\n\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** Whether the button is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled);\n }\n set disabled(value: boolean) { this._disabled = coerceBooleanProperty(value); }\n private _disabled: boolean = false;\n\n /** Event emitted when the group value changes. */\n @Output() readonly change: EventEmitter<MatButtonToggleChange> =\n new EventEmitter<MatButtonToggleChange>();\n\n constructor(@Optional() toggleGroup: MatButtonToggleGroup,\n private _changeDetectorRef: ChangeDetectorRef,\n private _elementRef: ElementRef<HTMLElement>,\n private _focusMonitor: FocusMonitor,\n // @breaking-change 8.0.0 `defaultTabIndex` to be made a required parameter.\n @Attribute('tabindex') defaultTabIndex: string,\n @Optional() @Inject(MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS)\n defaultOptions?: MatButtonToggleDefaultOptions) {\n super();\n\n const parsedTabIndex = Number(defaultTabIndex);\n this.tabIndex = (parsedTabIndex || parsedTabIndex === 0) ? parsedTabIndex : null;\n this.buttonToggleGroup = toggleGroup;\n this.appearance =\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\n }\n\n ngOnInit() {\n const group = this.buttonToggleGroup;\n this._isSingleSelector = group && !group.multiple;\n this._type = this._isSingleSelector ? 'radio' : 'checkbox';\n this.id = this.id || `mat-button-toggle-${_uniqueIdCounter++}`;\n\n if (this._isSingleSelector) {\n this.name = group.name;\n }\n\n if (group) {\n if (group._isPrechecked(this)) {\n this.checked = true;\n } else if (group._isSelected(this) !== this._checked) {\n // As as side effect of the circular dependency between the toggle group and the button,\n // we may end up in a state where the button is supposed to be checked on init, but it\n // isn't, because the checked value was assigned too early. This can happen when Ivy\n // assigns the static input value before the `ngOnInit` has run.\n group._syncButtonToggle(this, this._checked);\n }\n }\n\n this._focusMonitor.monitor(this._elementRef, true);\n }\n\n ngOnDestroy() {\n const group = this.buttonToggleGroup;\n\n this._focusMonitor.stopMonitoring(this._elementRef);\n\n // Remove the toggle from the selection once it's destroyed. Needs to happen\n // on the next tick in order to avoid \"changed after checked\" errors.\n if (group && group._isSelected(this)) {\n group._syncButtonToggle(this, false, false, true);\n }\n }\n\n /** Focuses the button. */\n focus(options?: FocusOptions): void {\n this._buttonElement.nativeElement.focus(options);\n }\n\n /** Checks the button toggle due to an interaction with the underlying native button. */\n _onButtonClick() {\n const newChecked = this._isSingleSelector ? true : !this._checked;\n\n if (newChecked !== this._checked) {\n this._checked = newChecked;\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup._syncButtonToggle(this, this._checked, true);\n this.buttonToggleGroup._onTouched();\n }\n }\n // Emit a change event when it's the single selector\n this.change.emit(new MatButtonToggleChange(this, this.value));\n }\n\n /**\n * Marks the button toggle as needing checking for change detection.\n * This method is exposed because the parent button toggle group will directly\n * update bound properties of the radio button.\n */\n _markForCheck() {\n // When the group value changes, the button will not be notified.\n // Use `markForCheck` to explicit update button toggle's status.\n this._changeDetectorRef.markForCheck();\n }\n\n static ngAcceptInputType_checked: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_vertical: BooleanInput;\n static ngAcceptInputType_multiple: BooleanInput;\n static ngAcceptInputType_disableRipple: BooleanInput;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule, MatRippleModule} from '@angular/material/core';\nimport {MatButtonToggle, MatButtonToggleGroup} from './button-toggle';\n\n\n@NgModule({\n imports: [MatCommonModule, MatRippleModule],\n exports: [MatCommonModule, MatButtonToggleGroup, MatButtonToggle],\n declarations: [MatButtonToggleGroup, MatButtonToggle],\n})\nexport class MatButtonToggleModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './button-toggle';\nexport * from './button-toggle-module';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/fesm5/chips.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SPACE, BACKSPACE, DELETE, HOME, END, TAB, hasModifierKey, ENTER } from '@angular/cdk/keycodes';
|
|
2
2
|
import { Directive, EventEmitter, ElementRef, NgZone, Optional, Inject, ChangeDetectorRef, Attribute, ContentChild, forwardRef, Input, Output, InjectionToken, Component, ViewEncapsulation, ChangeDetectionStrategy, Self, ContentChildren, NgModule } from '@angular/core';
|
|
3
|
-
import { mixinTabIndex, mixinColor, mixinDisableRipple,
|
|
3
|
+
import { mixinTabIndex, mixinColor, mixinDisableRipple, RippleRenderer, MAT_RIPPLE_GLOBAL_OPTIONS, mixinErrorState, ErrorStateMatcher } from '@angular/material/core';
|
|
4
4
|
import { __extends, __spread } from 'tslib';
|
|
5
5
|
import { DOCUMENT } from '@angular/common';
|
|
6
6
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
@@ -45,7 +45,7 @@ var MatChipBase = /** @class */ (function () {
|
|
|
45
45
|
}
|
|
46
46
|
return MatChipBase;
|
|
47
47
|
}());
|
|
48
|
-
var _MatChipMixinBase = mixinTabIndex(mixinColor(mixinDisableRipple(
|
|
48
|
+
var _MatChipMixinBase = mixinTabIndex(mixinColor(mixinDisableRipple(MatChipBase), 'primary'), -1);
|
|
49
49
|
/**
|
|
50
50
|
* Dummy directive to add CSS class to chip avatar.
|
|
51
51
|
* @docs-private
|
|
@@ -98,8 +98,11 @@ var MatChip = /** @class */ (function (_super) {
|
|
|
98
98
|
_this.chipListSelectable = true;
|
|
99
99
|
/** Whether the chip list is in multi-selection mode. */
|
|
100
100
|
_this._chipListMultiple = false;
|
|
101
|
+
/** Whether the chip list as a whole is disabled. */
|
|
102
|
+
_this._chipListDisabled = false;
|
|
101
103
|
_this._selected = false;
|
|
102
104
|
_this._selectable = true;
|
|
105
|
+
_this._disabled = false;
|
|
103
106
|
_this._removable = true;
|
|
104
107
|
/** Emits when the chip is focused. */
|
|
105
108
|
_this._onFocus = new Subject();
|
|
@@ -174,6 +177,15 @@ var MatChip = /** @class */ (function (_super) {
|
|
|
174
177
|
enumerable: true,
|
|
175
178
|
configurable: true
|
|
176
179
|
});
|
|
180
|
+
Object.defineProperty(MatChip.prototype, "disabled", {
|
|
181
|
+
/** Whether the chip is disabled. */
|
|
182
|
+
get: function () { return this._chipListDisabled || this._disabled; },
|
|
183
|
+
set: function (value) {
|
|
184
|
+
this._disabled = coerceBooleanProperty(value);
|
|
185
|
+
},
|
|
186
|
+
enumerable: true,
|
|
187
|
+
configurable: true
|
|
188
|
+
});
|
|
177
189
|
Object.defineProperty(MatChip.prototype, "removable", {
|
|
178
190
|
/**
|
|
179
191
|
* Determines whether or not the chip displays the remove styling and emits (removed) events.
|
|
@@ -328,7 +340,7 @@ var MatChip = /** @class */ (function (_super) {
|
|
|
328
340
|
MatChip.decorators = [
|
|
329
341
|
{ type: Directive, args: [{
|
|
330
342
|
selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]",
|
|
331
|
-
inputs: ['color', '
|
|
343
|
+
inputs: ['color', 'disableRipple', 'tabIndex'],
|
|
332
344
|
exportAs: 'matChip',
|
|
333
345
|
host: {
|
|
334
346
|
'class': 'mat-chip mat-focus-indicator',
|
|
@@ -367,6 +379,7 @@ var MatChip = /** @class */ (function (_super) {
|
|
|
367
379
|
selected: [{ type: Input }],
|
|
368
380
|
value: [{ type: Input }],
|
|
369
381
|
selectable: [{ type: Input }],
|
|
382
|
+
disabled: [{ type: Input }],
|
|
370
383
|
removable: [{ type: Input }],
|
|
371
384
|
selectionChange: [{ type: Output }],
|
|
372
385
|
destroyed: [{ type: Output }],
|
|
@@ -764,6 +777,9 @@ var MatChipList = /** @class */ (function (_super) {
|
|
|
764
777
|
// error triggers that we can't subscribe to (e.g. parent form submissions). This means
|
|
765
778
|
// that whatever logic is in here has to be super lean or we risk destroying the performance.
|
|
766
779
|
this.updateErrorState();
|
|
780
|
+
if (this.ngControl.disabled !== this._disabled) {
|
|
781
|
+
this.disabled = !!this.ngControl.disabled;
|
|
782
|
+
}
|
|
767
783
|
}
|
|
768
784
|
};
|
|
769
785
|
MatChipList.prototype.ngOnDestroy = function () {
|
|
@@ -1130,7 +1146,7 @@ var MatChipList = /** @class */ (function (_super) {
|
|
|
1130
1146
|
var _this = this;
|
|
1131
1147
|
if (this.chips) {
|
|
1132
1148
|
this.chips.forEach(function (chip) {
|
|
1133
|
-
chip.
|
|
1149
|
+
chip._chipListDisabled = _this._disabled;
|
|
1134
1150
|
chip._chipListMultiple = _this.multiple;
|
|
1135
1151
|
});
|
|
1136
1152
|
}
|