ngx-bootstrap 5.6.1 → 6.2.0
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/CHANGELOG.md +127 -0
- package/README.md +8 -1
- package/accordion/accordion-group.component.d.ts +3 -2
- package/accordion/accordion.module.d.ts +1 -1
- package/accordion/bundles/ngx-bootstrap-accordion.umd.js +5 -2
- package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
- package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js +1 -1
- package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
- package/accordion/esm2015/accordion.config.js +6 -2
- package/accordion/esm2015/accordion.module.js +2 -3
- package/accordion/esm5/accordion.config.js +6 -2
- package/accordion/esm5/accordion.module.js +2 -3
- package/accordion/fesm2015/ngx-bootstrap-accordion.js +6 -3
- package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
- package/accordion/fesm5/ngx-bootstrap-accordion.js +6 -3
- package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
- package/accordion/ngx-bootstrap-accordion.metadata.json +1 -1
- package/accordion/package.json +2 -2
- package/alert/alert.module.d.ts +1 -1
- package/alert/bundles/ngx-bootstrap-alert.umd.js +5 -2
- package/alert/bundles/ngx-bootstrap-alert.umd.js.map +1 -1
- package/alert/bundles/ngx-bootstrap-alert.umd.min.js +2 -2
- package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +1 -1
- package/alert/esm2015/alert.component.js +3 -3
- package/alert/esm2015/alert.config.js +6 -2
- package/alert/esm2015/alert.module.js +2 -3
- package/alert/esm5/alert.component.js +3 -3
- package/alert/esm5/alert.config.js +6 -2
- package/alert/esm5/alert.module.js +2 -3
- package/alert/fesm2015/ngx-bootstrap-alert.js +6 -3
- package/alert/fesm2015/ngx-bootstrap-alert.js.map +1 -1
- package/alert/fesm5/ngx-bootstrap-alert.js +6 -3
- package/alert/fesm5/ngx-bootstrap-alert.js.map +1 -1
- package/alert/ngx-bootstrap-alert.metadata.json +1 -1
- package/alert/package.json +2 -2
- package/buttons/bundles/ngx-bootstrap-buttons.umd.js +293 -16
- package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
- package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js +1 -1
- package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
- package/buttons/button-checkbox.directive.d.ts +2 -2
- package/buttons/button-radio-group.directive.d.ts +12 -1
- package/buttons/button-radio.directive.d.ts +19 -7
- package/buttons/buttons.module.d.ts +1 -1
- package/buttons/esm2015/button-radio-group.directive.js +140 -3
- package/buttons/esm2015/button-radio.directive.js +98 -18
- package/buttons/esm2015/buttons.module.js +1 -1
- package/buttons/esm5/button-radio-group.directive.js +171 -3
- package/buttons/esm5/button-radio.directive.js +126 -17
- package/buttons/esm5/buttons.module.js +1 -1
- package/buttons/fesm2015/ngx-bootstrap-buttons.js +235 -18
- package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
- package/buttons/fesm5/ngx-bootstrap-buttons.js +294 -17
- package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
- package/buttons/ngx-bootstrap-buttons.metadata.json +1 -1
- package/buttons/package.json +2 -2
- package/carousel/bundles/ngx-bootstrap-carousel.umd.js +5 -3
- package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
- package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +1 -1
- package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
- package/carousel/carousel.component.d.ts +7 -5
- package/carousel/carousel.module.d.ts +1 -1
- package/carousel/esm2015/carousel.config.js +6 -2
- package/carousel/esm2015/carousel.module.js +2 -4
- package/carousel/esm5/carousel.component.js +4 -4
- package/carousel/esm5/carousel.config.js +6 -2
- package/carousel/esm5/carousel.module.js +2 -4
- package/carousel/fesm2015/ngx-bootstrap-carousel.js +6 -4
- package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
- package/carousel/fesm5/ngx-bootstrap-carousel.js +6 -4
- package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
- package/carousel/ngx-bootstrap-carousel.metadata.json +1 -1
- package/carousel/package.json +2 -2
- package/chronos/bundles/ngx-bootstrap-chronos.umd.js +90 -73
- package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
- package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +69 -1
- package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
- package/chronos/esm2015/create/from-anything.js +2 -2
- package/chronos/esm2015/duration/valid.js +4 -6
- package/chronos/esm2015/i18n/ar.js +1 -4
- package/chronos/esm2015/i18n/bg.js +18 -20
- package/chronos/esm2015/i18n/cs.js +45 -47
- package/chronos/esm2015/i18n/et.js +1 -3
- package/chronos/esm2015/i18n/th-be.js +21 -1
- package/chronos/esm2015/locale/locale.class.js +5 -3
- package/chronos/esm5/create/from-anything.js +2 -2
- package/chronos/esm5/duration/valid.js +4 -6
- package/chronos/esm5/i18n/ar.js +1 -4
- package/chronos/esm5/i18n/bg.js +18 -20
- package/chronos/esm5/i18n/cs.js +45 -47
- package/chronos/esm5/i18n/et.js +1 -3
- package/chronos/esm5/i18n/th-be.js +21 -1
- package/chronos/esm5/locale/locale.class.js +6 -3
- package/chronos/esm5/test/chain.js +4 -4
- package/chronos/fesm2015/ngx-bootstrap-chronos.js +89 -73
- package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
- package/chronos/fesm5/ngx-bootstrap-chronos.js +90 -73
- package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
- package/chronos/locale/locale.class.d.ts +4 -3
- package/chronos/package.json +2 -2
- package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +1 -1
- package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +1 -1
- package/collapse/collapse.directive.d.ts +3 -2
- package/collapse/collapse.module.d.ts +1 -1
- package/collapse/esm2015/collapse.module.js +1 -1
- package/collapse/esm5/collapse.module.js +1 -1
- package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +1 -1
- package/collapse/fesm5/ngx-bootstrap-collapse.js.map +1 -1
- package/collapse/package.json +2 -2
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +5 -4
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
- package/component-loader/component-loader.class.d.ts +4 -3
- package/component-loader/esm2015/component-loader.class.js +5 -5
- package/component-loader/esm5/component-loader.class.js +6 -5
- package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +4 -4
- package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
- package/component-loader/fesm5/ngx-bootstrap-component-loader.js +5 -4
- package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
- package/component-loader/package.json +2 -2
- package/datepicker/base/bs-datepicker-container.d.ts +20 -8
- package/datepicker/bs-datepicker-inline.component.d.ts +6 -2
- package/datepicker/bs-datepicker.component.d.ts +14 -5
- package/datepicker/bs-datepicker.config.d.ts +41 -1
- package/datepicker/bs-datepicker.css +126 -5
- package/datepicker/bs-datepicker.css.map +4 -4
- package/datepicker/bs-datepicker.module.d.ts +1 -1
- package/datepicker/bs-datepicker.scss +25 -5
- package/datepicker/bs-daterangepicker-inline.component.d.ts +1 -1
- package/datepicker/bs-daterangepicker.component.d.ts +9 -4
- package/datepicker/bs-locale.service.d.ts +3 -3
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +604 -93
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +2 -2
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
- package/datepicker/datepicker-inner.component.d.ts +2 -1
- package/datepicker/datepicker.component.d.ts +2 -1
- package/datepicker/datepicker.module.d.ts +1 -1
- package/datepicker/daypicker.component.d.ts +1 -1
- package/datepicker/engine/flag-days-calendar.d.ts +2 -1
- package/datepicker/engine/flag-months-calendar.d.ts +1 -0
- package/datepicker/engine/flag-years-calendar.d.ts +1 -0
- package/datepicker/esm2015/base/bs-datepicker-container.js +38 -1
- package/datepicker/esm2015/bs-datepicker-inline.component.js +12 -1
- package/datepicker/esm2015/bs-datepicker-inline.config.js +6 -2
- package/datepicker/esm2015/bs-datepicker-input.directive.js +9 -1
- package/datepicker/esm2015/bs-datepicker.component.js +45 -6
- package/datepicker/esm2015/bs-datepicker.config.js +88 -2
- package/datepicker/esm2015/bs-datepicker.module.js +3 -10
- package/datepicker/esm2015/bs-daterangepicker-inline.component.js +3 -2
- package/datepicker/esm2015/bs-daterangepicker-inline.config.js +6 -2
- package/datepicker/esm2015/bs-daterangepicker-input.directive.js +11 -3
- package/datepicker/esm2015/bs-daterangepicker.component.js +36 -7
- package/datepicker/esm2015/bs-daterangepicker.config.js +6 -2
- package/datepicker/esm2015/datepicker.config.js +6 -2
- package/datepicker/esm2015/datepicker.module.js +1 -1
- package/datepicker/esm2015/engine/flag-days-calendar.js +22 -3
- package/datepicker/esm2015/engine/flag-months-calendar.js +14 -3
- package/datepicker/esm2015/engine/flag-years-calendar.js +14 -3
- package/datepicker/esm2015/models/index.js +13 -1
- package/datepicker/esm2015/public_api.js +1 -1
- package/datepicker/esm2015/reducer/bs-datepicker.actions.js +14 -1
- package/datepicker/esm2015/reducer/bs-datepicker.effects.js +27 -33
- package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +10 -2
- package/datepicker/esm2015/reducer/bs-datepicker.state.js +3 -1
- package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +5 -2
- package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +57 -5
- package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
- package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +73 -4
- package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
- package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +42 -4
- package/datepicker/esm5/base/bs-datepicker-container.js +52 -1
- package/datepicker/esm5/bs-datepicker-inline.component.js +12 -1
- package/datepicker/esm5/bs-datepicker-inline.config.js +8 -4
- package/datepicker/esm5/bs-datepicker-input.directive.js +9 -1
- package/datepicker/esm5/bs-datepicker.component.js +58 -8
- package/datepicker/esm5/bs-datepicker.config.js +88 -2
- package/datepicker/esm5/bs-datepicker.module.js +3 -10
- package/datepicker/esm5/bs-daterangepicker-inline.component.js +3 -2
- package/datepicker/esm5/bs-daterangepicker-inline.config.js +8 -4
- package/datepicker/esm5/bs-daterangepicker-input.directive.js +11 -3
- package/datepicker/esm5/bs-daterangepicker.component.js +49 -9
- package/datepicker/esm5/bs-daterangepicker.config.js +8 -4
- package/datepicker/esm5/datepicker.config.js +6 -2
- package/datepicker/esm5/datepicker.module.js +1 -1
- package/datepicker/esm5/engine/flag-days-calendar.js +22 -3
- package/datepicker/esm5/engine/flag-months-calendar.js +14 -3
- package/datepicker/esm5/engine/flag-years-calendar.js +14 -3
- package/datepicker/esm5/engine/format-days-calendar.js +3 -3
- package/datepicker/esm5/models/index.js +13 -1
- package/datepicker/esm5/public_api.js +1 -1
- package/datepicker/esm5/reducer/bs-datepicker.actions.js +18 -1
- package/datepicker/esm5/reducer/bs-datepicker.effects.js +33 -35
- package/datepicker/esm5/reducer/bs-datepicker.reducer.js +10 -2
- package/datepicker/esm5/reducer/bs-datepicker.state.js +3 -1
- package/datepicker/esm5/reducer/bs-datepicker.store.js +3 -3
- package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +5 -2
- package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +74 -8
- package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +4 -4
- package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +92 -7
- package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +4 -4
- package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +25 -2
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +549 -96
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
- package/datepicker/fesm5/ngx-bootstrap-datepicker.js +606 -94
- package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
- package/datepicker/models/index.d.ts +5 -0
- package/datepicker/monthpicker.component.d.ts +1 -1
- package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
- package/datepicker/package.json +2 -2
- package/datepicker/public_api.d.ts +1 -1
- package/datepicker/reducer/bs-datepicker.actions.d.ts +3 -1
- package/datepicker/reducer/bs-datepicker.effects.d.ts +2 -1
- package/datepicker/reducer/bs-datepicker.state.d.ts +2 -1
- package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -0
- package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +9 -5
- package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +9 -5
- package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +2 -0
- package/datepicker/utils/scss/mixins.css.map +2 -2
- package/datepicker/utils/scss/mixins.scss +98 -0
- package/datepicker/utils/scss/variables.css.map +1 -1
- package/datepicker/utils/scss/variables.scss +14 -0
- package/datepicker/yearpicker.component.d.ts +1 -1
- package/dropdown/bs-dropdown-container.component.d.ts +1 -1
- package/dropdown/bs-dropdown.directive.d.ts +12 -7
- package/dropdown/bs-dropdown.module.d.ts +1 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +13 -8
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +1 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
- package/dropdown/esm2015/bs-dropdown.config.js +6 -2
- package/dropdown/esm2015/bs-dropdown.directive.js +8 -3
- package/dropdown/esm2015/bs-dropdown.module.js +2 -7
- package/dropdown/esm5/bs-dropdown-toggle.directive.js +3 -3
- package/dropdown/esm5/bs-dropdown.config.js +6 -2
- package/dropdown/esm5/bs-dropdown.directive.js +11 -5
- package/dropdown/esm5/bs-dropdown.module.js +2 -7
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +13 -9
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
- package/dropdown/fesm5/ngx-bootstrap-dropdown.js +14 -9
- package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
- package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -1
- package/dropdown/package.json +2 -2
- package/locale/package.json +2 -2
- package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js.map +1 -1
- package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +1 -1
- package/mini-ngrx/esm5/state.class.js +3 -3
- package/mini-ngrx/esm5/store.class.js +3 -3
- package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js.map +1 -1
- package/mini-ngrx/package.json +2 -2
- package/modal/bs-modal-ref.service.d.ts +15 -2
- package/modal/bs-modal.service.d.ts +7 -4
- package/modal/bundles/ngx-bootstrap-modal.umd.js +154 -59
- package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
- package/modal/bundles/ngx-bootstrap-modal.umd.min.js +1 -1
- package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
- package/modal/esm2015/bs-modal-ref.service.js +20 -1
- package/modal/esm2015/bs-modal.service.js +102 -47
- package/modal/esm2015/modal-container.component.js +10 -2
- package/modal/esm2015/modal-options.class.js +14 -3
- package/modal/esm2015/modal.directive.js +10 -7
- package/modal/esm2015/modal.module.js +1 -1
- package/modal/esm2015/models/index.js +3 -1
- package/modal/esm2015/ngx-bootstrap-modal.js +2 -2
- package/modal/esm2015/public_api.js +2 -2
- package/modal/esm5/bs-modal-ref.service.js +19 -1
- package/modal/esm5/bs-modal.service.js +109 -57
- package/modal/esm5/modal-container.component.js +13 -2
- package/modal/esm5/modal-options.class.js +14 -3
- package/modal/esm5/modal.directive.js +9 -7
- package/modal/esm5/modal.module.js +1 -1
- package/modal/esm5/models/index.js +3 -1
- package/modal/esm5/ngx-bootstrap-modal.js +2 -2
- package/modal/esm5/public_api.js +2 -2
- package/modal/fesm2015/ngx-bootstrap-modal.js +148 -52
- package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
- package/modal/fesm5/ngx-bootstrap-modal.js +155 -61
- package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
- package/modal/modal-backdrop.component.d.ts +4 -2
- package/modal/modal-container.component.d.ts +1 -0
- package/modal/modal-options.class.d.ts +8 -3
- package/modal/modal.directive.d.ts +5 -4
- package/modal/modal.module.d.ts +2 -2
- package/modal/models/index.d.ts +1 -0
- package/modal/ngx-bootstrap-modal.metadata.json +1 -1
- package/modal/package.json +2 -2
- package/modal/public_api.d.ts +1 -1
- package/package.json +2 -2
- package/pagination/bundles/ngx-bootstrap-pagination.umd.js +5 -2
- package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
- package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js +1 -1
- package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
- package/pagination/esm2015/pagination.config.js +6 -2
- package/pagination/esm2015/pagination.module.js +2 -3
- package/pagination/esm5/pagination.config.js +6 -2
- package/pagination/esm5/pagination.module.js +2 -3
- package/pagination/fesm2015/ngx-bootstrap-pagination.js +6 -3
- package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
- package/pagination/fesm5/ngx-bootstrap-pagination.js +6 -3
- package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
- package/pagination/ngx-bootstrap-pagination.metadata.json +1 -1
- package/pagination/package.json +2 -2
- package/pagination/pager.component.d.ts +8 -4
- package/pagination/pagination.component.d.ts +8 -4
- package/pagination/pagination.module.d.ts +1 -1
- package/popover/bundles/ngx-bootstrap-popover.umd.js +55 -3
- package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
- package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
- package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
- package/popover/esm2015/popover-container.component.js +4 -1
- package/popover/esm2015/popover.config.js +6 -2
- package/popover/esm2015/popover.directive.js +39 -2
- package/popover/esm2015/popover.module.js +2 -3
- package/popover/esm5/popover-container.component.js +4 -1
- package/popover/esm5/popover.config.js +6 -2
- package/popover/esm5/popover.directive.js +48 -2
- package/popover/esm5/popover.module.js +2 -3
- package/popover/fesm2015/ngx-bootstrap-popover.js +47 -4
- package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
- package/popover/fesm5/ngx-bootstrap-popover.js +56 -4
- package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
- package/popover/ngx-bootstrap-popover.metadata.json +1 -1
- package/popover/package.json +2 -2
- package/popover/popover-container.component.d.ts +2 -1
- package/popover/popover.directive.d.ts +10 -1
- package/popover/popover.module.d.ts +1 -1
- package/positioning/bundles/ngx-bootstrap-positioning.umd.js +7 -7
- package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
- package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +1 -1
- package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
- package/positioning/esm2015/modifiers/flip.js +3 -3
- package/positioning/esm2015/modifiers/preventOverflow.js +2 -2
- package/positioning/esm2015/modifiers/shift.js +2 -2
- package/positioning/esm2015/utils/computeAutoPlacement.js +2 -2
- package/positioning/esm2015/utils/getClientRect.js +2 -2
- package/positioning/esm5/modifiers/flip.js +4 -4
- package/positioning/esm5/modifiers/preventOverflow.js +4 -4
- package/positioning/esm5/modifiers/shift.js +3 -3
- package/positioning/esm5/utils/computeAutoPlacement.js +3 -3
- package/positioning/esm5/utils/getClientRect.js +3 -3
- package/positioning/fesm2015/ngx-bootstrap-positioning.js +6 -6
- package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
- package/positioning/fesm5/ngx-bootstrap-positioning.js +7 -7
- package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
- package/positioning/package.json +2 -2
- package/positioning/positioning.service.d.ts +1 -1
- package/progressbar/bar.component.d.ts +4 -5
- package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +45 -66
- package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
- package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
- package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
- package/progressbar/esm2015/bar.component.js +33 -48
- package/progressbar/esm2015/progressbar.component.js +5 -8
- package/progressbar/esm2015/progressbar.config.js +6 -2
- package/progressbar/esm2015/progressbar.module.js +2 -3
- package/progressbar/esm5/bar.component.js +37 -58
- package/progressbar/esm5/progressbar.component.js +5 -8
- package/progressbar/esm5/progressbar.config.js +6 -2
- package/progressbar/esm5/progressbar.module.js +2 -3
- package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +42 -57
- package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
- package/progressbar/fesm5/ngx-bootstrap-progressbar.js +46 -67
- package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
- package/progressbar/ngx-bootstrap-progressbar.metadata.json +1 -1
- package/progressbar/package.json +2 -2
- package/progressbar/progressbar.component.d.ts +7 -6
- package/progressbar/progressbar.module.d.ts +1 -1
- package/rating/bundles/ngx-bootstrap-rating.umd.js +5 -2
- package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -1
- package/rating/bundles/ngx-bootstrap-rating.umd.min.js +1 -1
- package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -1
- package/rating/esm2015/rating.config.js +6 -2
- package/rating/esm2015/rating.module.js +2 -3
- package/rating/esm5/rating.config.js +6 -2
- package/rating/esm5/rating.module.js +2 -3
- package/rating/fesm2015/ngx-bootstrap-rating.js +6 -3
- package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -1
- package/rating/fesm5/ngx-bootstrap-rating.js +6 -3
- package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -1
- package/rating/ngx-bootstrap-rating.metadata.json +1 -1
- package/rating/package.json +2 -2
- package/rating/rating.module.d.ts +1 -1
- package/schematics/ng-add/index.spec.js +30 -27
- package/schematics/ng-add/index.spec.js.map +1 -1
- package/schematics/utils/index.js +18 -5
- package/schematics/utils/index.js.map +1 -1
- package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +1 -1
- package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +1 -1
- package/sortable/esm2015/sortable.module.js +1 -1
- package/sortable/esm5/sortable.component.js +4 -4
- package/sortable/esm5/sortable.module.js +1 -1
- package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +1 -1
- package/sortable/fesm5/ngx-bootstrap-sortable.js.map +1 -1
- package/sortable/package.json +2 -2
- package/sortable/sortable.component.d.ts +2 -1
- package/sortable/sortable.module.d.ts +1 -1
- package/tabs/bundles/ngx-bootstrap-tabs.umd.js +40 -3
- package/tabs/bundles/ngx-bootstrap-tabs.umd.js.map +1 -1
- package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js +1 -1
- package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js.map +1 -1
- package/tabs/esm2015/tab.directive.js +2 -2
- package/tabs/esm2015/tabs.module.js +2 -3
- package/tabs/esm2015/tabset.component.js +22 -1
- package/tabs/esm2015/tabset.config.js +15 -2
- package/tabs/esm5/tab.directive.js +2 -2
- package/tabs/esm5/tabs.module.js +2 -3
- package/tabs/esm5/tabset.component.js +26 -1
- package/tabs/esm5/tabset.config.js +15 -2
- package/tabs/fesm2015/ngx-bootstrap-tabs.js +37 -4
- package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +1 -1
- package/tabs/fesm5/ngx-bootstrap-tabs.js +41 -4
- package/tabs/fesm5/ngx-bootstrap-tabs.js.map +1 -1
- package/tabs/ng-transclude.directive.d.ts +2 -2
- package/tabs/ngx-bootstrap-tabs.metadata.json +1 -1
- package/tabs/package.json +2 -2
- package/tabs/tab.directive.d.ts +5 -3
- package/tabs/tabs.module.d.ts +1 -1
- package/tabs/tabset.component.d.ts +9 -3
- package/tabs/tabset.config.d.ts +2 -0
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +11 -6
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +1 -1
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
- package/timepicker/esm2015/timepicker-controls.util.js +4 -2
- package/timepicker/esm2015/timepicker.component.js +2 -2
- package/timepicker/esm2015/timepicker.config.js +8 -4
- package/timepicker/esm2015/timepicker.module.js +2 -3
- package/timepicker/esm5/reducer/timepicker.store.js +3 -3
- package/timepicker/esm5/timepicker-controls.util.js +4 -2
- package/timepicker/esm5/timepicker.component.js +2 -2
- package/timepicker/esm5/timepicker.config.js +8 -4
- package/timepicker/esm5/timepicker.module.js +2 -3
- package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +12 -7
- package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
- package/timepicker/fesm5/ngx-bootstrap-timepicker.js +12 -7
- package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
- package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -1
- package/timepicker/package.json +2 -2
- package/timepicker/timepicker.component.d.ts +3 -3
- package/timepicker/timepicker.config.d.ts +1 -1
- package/timepicker/timepicker.module.d.ts +1 -1
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +5 -2
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +1 -1
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
- package/tooltip/esm2015/tooltip.config.js +6 -2
- package/tooltip/esm2015/tooltip.directive.js +3 -3
- package/tooltip/esm2015/tooltip.module.js +2 -3
- package/tooltip/esm5/tooltip.config.js +6 -2
- package/tooltip/esm5/tooltip.directive.js +3 -3
- package/tooltip/esm5/tooltip.module.js +2 -3
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +6 -3
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
- package/tooltip/fesm5/ngx-bootstrap-tooltip.js +6 -3
- package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
- package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
- package/tooltip/package.json +2 -2
- package/tooltip/tooltip-container.component.d.ts +1 -1
- package/tooltip/tooltip.directive.d.ts +15 -10
- package/tooltip/tooltip.module.d.ts +1 -1
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +170 -19
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +1 -1
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
- package/typeahead/esm2015/typeahead-utils.js +35 -4
- package/typeahead/esm2015/typeahead.config.js +6 -2
- package/typeahead/esm2015/typeahead.directive.js +121 -16
- package/typeahead/esm2015/typeahead.module.js +2 -3
- package/typeahead/esm5/typeahead-utils.js +37 -6
- package/typeahead/esm5/typeahead.config.js +6 -2
- package/typeahead/esm5/typeahead.directive.js +135 -18
- package/typeahead/esm5/typeahead.module.js +2 -3
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +160 -21
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
- package/typeahead/fesm5/ngx-bootstrap-typeahead.js +172 -21
- package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
- package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
- package/typeahead/package.json +2 -2
- package/typeahead/typeahead-container.component.d.ts +14 -12
- package/typeahead/typeahead-utils.d.ts +1 -1
- package/typeahead/typeahead.directive.d.ts +20 -1
- package/typeahead/typeahead.module.d.ts +1 -1
- package/utils/package.json +2 -2
@@ -1,4 +1,4 @@
|
|
1
|
-
import { forwardRef, Directive, Input, HostBinding, HostListener, ElementRef, ChangeDetectorRef, Optional,
|
1
|
+
import { forwardRef, Directive, Input, HostBinding, HostListener, ElementRef, ChangeDetectorRef, Renderer2, Optional, Inject, ContentChildren, NgModule } from '@angular/core';
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
3
3
|
|
4
4
|
/**
|
@@ -177,16 +177,18 @@ class ButtonRadioDirective {
|
|
177
177
|
/**
|
178
178
|
* @param {?} el
|
179
179
|
* @param {?} cdr
|
180
|
-
* @param {?} group
|
181
180
|
* @param {?} renderer
|
181
|
+
* @param {?} group
|
182
182
|
*/
|
183
|
-
constructor(el, cdr,
|
183
|
+
constructor(el, cdr, renderer, group) {
|
184
184
|
this.el = el;
|
185
185
|
this.cdr = cdr;
|
186
|
-
this.group = group;
|
187
186
|
this.renderer = renderer;
|
187
|
+
this.group = group;
|
188
188
|
this.onChange = Function.prototype;
|
189
189
|
this.onTouched = Function.prototype;
|
190
|
+
this.role = 'radio';
|
191
|
+
this._hasFocus = false;
|
190
192
|
}
|
191
193
|
/**
|
192
194
|
* Current value of radio component or group
|
@@ -218,9 +220,22 @@ class ButtonRadioDirective {
|
|
218
220
|
* @return {?}
|
219
221
|
*/
|
220
222
|
set disabled(disabled) {
|
221
|
-
this._disabled = disabled;
|
222
223
|
this.setDisabledState(disabled);
|
223
224
|
}
|
225
|
+
/**
|
226
|
+
* @return {?}
|
227
|
+
*/
|
228
|
+
get controlOrGroupDisabled() {
|
229
|
+
return this.disabled || (this.group && this.group.disabled) ? true : undefined;
|
230
|
+
}
|
231
|
+
/**
|
232
|
+
* @return {?}
|
233
|
+
*/
|
234
|
+
get hasDisabledClass() {
|
235
|
+
// Although the radio is disabled the active radio should still stand out.
|
236
|
+
// The disabled class will prevent this so don't add it on the active radio
|
237
|
+
return this.controlOrGroupDisabled && !this.isActive;
|
238
|
+
}
|
224
239
|
/**
|
225
240
|
* @return {?}
|
226
241
|
*/
|
@@ -230,33 +245,80 @@ class ButtonRadioDirective {
|
|
230
245
|
/**
|
231
246
|
* @return {?}
|
232
247
|
*/
|
233
|
-
|
234
|
-
if (this.
|
248
|
+
get tabindex() {
|
249
|
+
if (this.controlOrGroupDisabled) {
|
250
|
+
// Disabled radio buttons should not receive focus
|
251
|
+
return undefined;
|
252
|
+
}
|
253
|
+
else if (this.isActive || this.group == null) {
|
254
|
+
return 0;
|
255
|
+
}
|
256
|
+
else {
|
257
|
+
return -1;
|
258
|
+
}
|
259
|
+
}
|
260
|
+
/**
|
261
|
+
* @return {?}
|
262
|
+
*/
|
263
|
+
get hasFocus() {
|
264
|
+
return this._hasFocus;
|
265
|
+
}
|
266
|
+
/**
|
267
|
+
* @return {?}
|
268
|
+
*/
|
269
|
+
toggleIfAllowed() {
|
270
|
+
if (!this.canToggle()) {
|
235
271
|
return;
|
236
272
|
}
|
237
273
|
this.value = this.uncheckable && this.btnRadio === this.value ? undefined : this.btnRadio;
|
238
274
|
this._onChange(this.value);
|
239
275
|
}
|
240
276
|
/**
|
277
|
+
* @param {?} event
|
241
278
|
* @return {?}
|
242
279
|
*/
|
243
|
-
|
244
|
-
this.
|
280
|
+
onSpacePressed(event) {
|
281
|
+
this.toggleIfAllowed();
|
282
|
+
event.preventDefault();
|
283
|
+
}
|
284
|
+
/**
|
285
|
+
* @return {?}
|
286
|
+
*/
|
287
|
+
focus() {
|
288
|
+
this.el.nativeElement.focus();
|
289
|
+
}
|
290
|
+
/**
|
291
|
+
* @return {?}
|
292
|
+
*/
|
293
|
+
onFocus() {
|
294
|
+
this._hasFocus = true;
|
245
295
|
}
|
246
296
|
/**
|
247
297
|
* @return {?}
|
248
298
|
*/
|
249
299
|
onBlur() {
|
300
|
+
this._hasFocus = false;
|
250
301
|
this.onTouched();
|
251
302
|
}
|
303
|
+
/**
|
304
|
+
* @return {?}
|
305
|
+
*/
|
306
|
+
canToggle() {
|
307
|
+
return !this.controlOrGroupDisabled && (this.uncheckable || this.btnRadio !== this.value);
|
308
|
+
}
|
309
|
+
/**
|
310
|
+
* @return {?}
|
311
|
+
*/
|
312
|
+
ngOnInit() {
|
313
|
+
this.uncheckable = typeof this.uncheckable !== 'undefined';
|
314
|
+
}
|
252
315
|
/**
|
253
316
|
* @param {?} value
|
254
317
|
* @return {?}
|
255
318
|
*/
|
256
319
|
_onChange(value) {
|
257
320
|
if (this.group) {
|
258
|
-
this.group.
|
259
|
-
this.group.onChange(value);
|
321
|
+
this.group.value = value;
|
260
322
|
return;
|
261
323
|
}
|
262
324
|
this.onTouched();
|
@@ -291,6 +353,7 @@ class ButtonRadioDirective {
|
|
291
353
|
* @return {?}
|
292
354
|
*/
|
293
355
|
setDisabledState(disabled) {
|
356
|
+
this._disabled = disabled;
|
294
357
|
if (disabled) {
|
295
358
|
this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'disabled');
|
296
359
|
return;
|
@@ -308,16 +371,26 @@ ButtonRadioDirective.decorators = [
|
|
308
371
|
ButtonRadioDirective.ctorParameters = () => [
|
309
372
|
{ type: ElementRef },
|
310
373
|
{ type: ChangeDetectorRef },
|
311
|
-
{ type:
|
312
|
-
{ type:
|
374
|
+
{ type: Renderer2 },
|
375
|
+
{ type: ButtonRadioGroupDirective, decorators: [{ type: Optional }, { type: Inject, args: [forwardRef((/**
|
376
|
+
* @return {?}
|
377
|
+
*/
|
378
|
+
() => ButtonRadioGroupDirective)),] }] }
|
313
379
|
];
|
314
380
|
ButtonRadioDirective.propDecorators = {
|
315
381
|
btnRadio: [{ type: Input }],
|
316
382
|
uncheckable: [{ type: Input }],
|
317
383
|
value: [{ type: Input }],
|
318
384
|
disabled: [{ type: Input }],
|
319
|
-
|
320
|
-
|
385
|
+
controlOrGroupDisabled: [{ type: HostBinding, args: ['attr.aria-disabled',] }],
|
386
|
+
hasDisabledClass: [{ type: HostBinding, args: ['class.disabled',] }],
|
387
|
+
isActive: [{ type: HostBinding, args: ['class.active',] }, { type: HostBinding, args: ['attr.aria-checked',] }],
|
388
|
+
role: [{ type: HostBinding, args: ['attr.role',] }],
|
389
|
+
tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],
|
390
|
+
toggleIfAllowed: [{ type: HostListener, args: ['click',] }],
|
391
|
+
onSpacePressed: [{ type: HostListener, args: ['keydown.space', ['$event'],] }],
|
392
|
+
onFocus: [{ type: HostListener, args: ['focus',] }],
|
393
|
+
onBlur: [{ type: HostListener, args: ['blur',] }]
|
321
394
|
};
|
322
395
|
if (false) {
|
323
396
|
/** @type {?} */
|
@@ -334,6 +407,8 @@ if (false) {
|
|
334
407
|
* @type {?}
|
335
408
|
*/
|
336
409
|
ButtonRadioDirective.prototype.uncheckable;
|
410
|
+
/** @type {?} */
|
411
|
+
ButtonRadioDirective.prototype.role;
|
337
412
|
/**
|
338
413
|
* @type {?}
|
339
414
|
* @private
|
@@ -344,6 +419,11 @@ if (false) {
|
|
344
419
|
* @private
|
345
420
|
*/
|
346
421
|
ButtonRadioDirective.prototype._disabled;
|
422
|
+
/**
|
423
|
+
* @type {?}
|
424
|
+
* @private
|
425
|
+
*/
|
426
|
+
ButtonRadioDirective.prototype._hasFocus;
|
347
427
|
/**
|
348
428
|
* @type {?}
|
349
429
|
* @private
|
@@ -358,12 +438,12 @@ if (false) {
|
|
358
438
|
* @type {?}
|
359
439
|
* @private
|
360
440
|
*/
|
361
|
-
ButtonRadioDirective.prototype.
|
441
|
+
ButtonRadioDirective.prototype.renderer;
|
362
442
|
/**
|
363
443
|
* @type {?}
|
364
444
|
* @private
|
365
445
|
*/
|
366
|
-
ButtonRadioDirective.prototype.
|
446
|
+
ButtonRadioDirective.prototype.group;
|
367
447
|
}
|
368
448
|
|
369
449
|
/**
|
@@ -392,6 +472,7 @@ class ButtonRadioGroupDirective {
|
|
392
472
|
this.cdr = cdr;
|
393
473
|
this.onChange = Function.prototype;
|
394
474
|
this.onTouched = Function.prototype;
|
475
|
+
this.role = 'radiogroup';
|
395
476
|
}
|
396
477
|
/**
|
397
478
|
* @return {?}
|
@@ -405,6 +486,18 @@ class ButtonRadioGroupDirective {
|
|
405
486
|
*/
|
406
487
|
set value(value) {
|
407
488
|
this._value = value;
|
489
|
+
this.onChange(value);
|
490
|
+
}
|
491
|
+
/**
|
492
|
+
* @return {?}
|
493
|
+
*/
|
494
|
+
get tabindex() {
|
495
|
+
if (this._disabled) {
|
496
|
+
return null;
|
497
|
+
}
|
498
|
+
else {
|
499
|
+
return 0;
|
500
|
+
}
|
408
501
|
}
|
409
502
|
/**
|
410
503
|
* @param {?} value
|
@@ -434,6 +527,7 @@ class ButtonRadioGroupDirective {
|
|
434
527
|
*/
|
435
528
|
setDisabledState(disabled) {
|
436
529
|
if (this.radioButtons) {
|
530
|
+
this._disabled = disabled;
|
437
531
|
this.radioButtons.forEach((/**
|
438
532
|
* @param {?} buttons
|
439
533
|
* @return {?}
|
@@ -441,7 +535,117 @@ class ButtonRadioGroupDirective {
|
|
441
535
|
buttons => {
|
442
536
|
buttons.setDisabledState(disabled);
|
443
537
|
}));
|
538
|
+
this.cdr.markForCheck();
|
539
|
+
}
|
540
|
+
}
|
541
|
+
/**
|
542
|
+
* @return {?}
|
543
|
+
*/
|
544
|
+
onFocus() {
|
545
|
+
if (this._disabled) {
|
546
|
+
return;
|
547
|
+
}
|
548
|
+
/** @type {?} */
|
549
|
+
const activeRadio = this.getActiveOrFocusedRadio();
|
550
|
+
if (activeRadio) {
|
551
|
+
activeRadio.focus();
|
552
|
+
}
|
553
|
+
else {
|
554
|
+
/** @type {?} */
|
555
|
+
const firstEnabled = this.radioButtons.find((/**
|
556
|
+
* @param {?} r
|
557
|
+
* @return {?}
|
558
|
+
*/
|
559
|
+
r => !r.disabled));
|
560
|
+
if (firstEnabled) {
|
561
|
+
firstEnabled.focus();
|
562
|
+
}
|
563
|
+
}
|
564
|
+
}
|
565
|
+
/**
|
566
|
+
* @return {?}
|
567
|
+
*/
|
568
|
+
onBlur() {
|
569
|
+
if (this.onTouched) {
|
570
|
+
this.onTouched();
|
571
|
+
}
|
572
|
+
}
|
573
|
+
/**
|
574
|
+
* @param {?} event
|
575
|
+
* @return {?}
|
576
|
+
*/
|
577
|
+
selectNext(event) {
|
578
|
+
this.selectInDirection('next');
|
579
|
+
event.preventDefault();
|
580
|
+
}
|
581
|
+
/**
|
582
|
+
* @param {?} event
|
583
|
+
* @return {?}
|
584
|
+
*/
|
585
|
+
selectPrevious(event) {
|
586
|
+
this.selectInDirection('previous');
|
587
|
+
event.preventDefault();
|
588
|
+
}
|
589
|
+
/**
|
590
|
+
* @return {?}
|
591
|
+
*/
|
592
|
+
get disabled() {
|
593
|
+
return this._disabled;
|
594
|
+
}
|
595
|
+
/**
|
596
|
+
* @private
|
597
|
+
* @param {?} direction
|
598
|
+
* @return {?}
|
599
|
+
*/
|
600
|
+
selectInDirection(direction) {
|
601
|
+
if (this._disabled) {
|
602
|
+
return;
|
444
603
|
}
|
604
|
+
/**
|
605
|
+
* @param {?} currentIndex
|
606
|
+
* @param {?} buttonRadioDirectives
|
607
|
+
* @return {?}
|
608
|
+
*/
|
609
|
+
function nextIndex(currentIndex, buttonRadioDirectives) {
|
610
|
+
/** @type {?} */
|
611
|
+
const step = direction === 'next' ? 1 : -1;
|
612
|
+
/** @type {?} */
|
613
|
+
let calcIndex = (currentIndex + step) % buttonRadioDirectives.length;
|
614
|
+
if (calcIndex < 0) {
|
615
|
+
calcIndex = buttonRadioDirectives.length - 1;
|
616
|
+
}
|
617
|
+
return calcIndex;
|
618
|
+
}
|
619
|
+
/** @type {?} */
|
620
|
+
const activeRadio = this.getActiveOrFocusedRadio();
|
621
|
+
if (activeRadio) {
|
622
|
+
/** @type {?} */
|
623
|
+
const buttonRadioDirectives = this.radioButtons.toArray();
|
624
|
+
/** @type {?} */
|
625
|
+
const currentActiveIndex = buttonRadioDirectives.indexOf(activeRadio);
|
626
|
+
for (let i = nextIndex(currentActiveIndex, buttonRadioDirectives); i !== currentActiveIndex; i = nextIndex(i, buttonRadioDirectives)) {
|
627
|
+
if (buttonRadioDirectives[i].canToggle()) {
|
628
|
+
buttonRadioDirectives[i].toggleIfAllowed();
|
629
|
+
buttonRadioDirectives[i].focus();
|
630
|
+
break;
|
631
|
+
}
|
632
|
+
}
|
633
|
+
}
|
634
|
+
}
|
635
|
+
/**
|
636
|
+
* @private
|
637
|
+
* @return {?}
|
638
|
+
*/
|
639
|
+
getActiveOrFocusedRadio() {
|
640
|
+
return this.radioButtons.find((/**
|
641
|
+
* @param {?} button
|
642
|
+
* @return {?}
|
643
|
+
*/
|
644
|
+
button => button.isActive)) || this.radioButtons.find((/**
|
645
|
+
* @param {?} button
|
646
|
+
* @return {?}
|
647
|
+
*/
|
648
|
+
button => button.hasFocus));
|
445
649
|
}
|
446
650
|
}
|
447
651
|
ButtonRadioGroupDirective.decorators = [
|
@@ -455,10 +659,16 @@ ButtonRadioGroupDirective.ctorParameters = () => [
|
|
455
659
|
{ type: ChangeDetectorRef }
|
456
660
|
];
|
457
661
|
ButtonRadioGroupDirective.propDecorators = {
|
662
|
+
role: [{ type: HostBinding, args: ['attr.role',] }],
|
458
663
|
radioButtons: [{ type: ContentChildren, args: [forwardRef((/**
|
459
664
|
* @return {?}
|
460
665
|
*/
|
461
|
-
() => ButtonRadioDirective)),] }]
|
666
|
+
() => ButtonRadioDirective)),] }],
|
667
|
+
tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],
|
668
|
+
onFocus: [{ type: HostListener, args: ['focus',] }],
|
669
|
+
onBlur: [{ type: HostListener, args: ['blur',] }],
|
670
|
+
selectNext: [{ type: HostListener, args: ['keydown.ArrowRight', ['$event'],] }, { type: HostListener, args: ['keydown.ArrowDown', ['$event'],] }],
|
671
|
+
selectPrevious: [{ type: HostListener, args: ['keydown.ArrowLeft', ['$event'],] }, { type: HostListener, args: ['keydown.ArrowUp', ['$event'],] }]
|
462
672
|
};
|
463
673
|
if (false) {
|
464
674
|
/** @type {?} */
|
@@ -466,12 +676,19 @@ if (false) {
|
|
466
676
|
/** @type {?} */
|
467
677
|
ButtonRadioGroupDirective.prototype.onTouched;
|
468
678
|
/** @type {?} */
|
679
|
+
ButtonRadioGroupDirective.prototype.role;
|
680
|
+
/** @type {?} */
|
469
681
|
ButtonRadioGroupDirective.prototype.radioButtons;
|
470
682
|
/**
|
471
683
|
* @type {?}
|
472
684
|
* @private
|
473
685
|
*/
|
474
686
|
ButtonRadioGroupDirective.prototype._value;
|
687
|
+
/**
|
688
|
+
* @type {?}
|
689
|
+
* @private
|
690
|
+
*/
|
691
|
+
ButtonRadioGroupDirective.prototype._disabled;
|
475
692
|
/**
|
476
693
|
* @type {?}
|
477
694
|
* @private
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ngx-bootstrap-buttons.js","sources":["ng://ngx-bootstrap/buttons/button-checkbox.directive.ts","ng://ngx-bootstrap/buttons/button-radio.directive.ts","ng://ngx-bootstrap/buttons/button-radio-group.directive.ts","ng://ngx-bootstrap/buttons/buttons.module.ts"],"sourcesContent":["// tslint:disable:no-use-before-declare\nimport {\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Provider\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// TODO: config: activeClass - Class to apply to the checked buttons\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonCheckboxDirective),\n multi: true\n};\n\n/**\n * Add checkbox functionality to any element\n */\n@Directive({\n selector: '[btnCheckbox]',\n providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonCheckboxDirective implements ControlValueAccessor, OnInit {\n /** Truthy value, will be set to ngModel */\n @Input() btnCheckboxTrue = true;\n /** Falsy value, will be set to ngModel */\n @Input() btnCheckboxFalse = false;\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-pressed')\n state = false;\n\n protected value: boolean | string;\n protected isDisabled: boolean;\n\n protected onChange = Function.prototype;\n protected onTouched = Function.prototype;\n\n // view -> model\n @HostListener('click')\n onClick(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.toggle(!this.state);\n this.onChange(this.value);\n }\n\n ngOnInit(): void {\n this.toggle(this.trueValue === this.value);\n }\n\n protected get trueValue(): boolean {\n return typeof this.btnCheckboxTrue !== 'undefined'\n ? this.btnCheckboxTrue\n : true;\n }\n\n protected get falseValue(): boolean {\n return typeof this.btnCheckboxFalse !== 'undefined'\n ? this.btnCheckboxFalse\n : false;\n }\n\n toggle(state: boolean): void {\n this.state = state;\n this.value = this.state ? this.trueValue : this.falseValue;\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: boolean | string | null): void {\n this.state = this.trueValue === value;\n this.value = value ? this.trueValue : this.falseValue;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Optional,\n Provider,\n Renderer2\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioDirective),\n multi: true\n};\n\n/**\n * Create radio buttons or groups of buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadio]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioDirective implements ControlValueAccessor, OnInit {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n /** Radio button value, will be set to `ngModel` */\n @Input() btnRadio: string;\n /** If `true` â radio button can be unchecked */\n @Input() uncheckable: boolean;\n /** Current value of radio component or group */\n @Input() get value() {\n return this.group ? this.group.value : this._value;\n }\n\n set value(value: null | string) {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this._value = value;\n }\n /** If `true` â radio button is disabled */\n @Input() get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n this.setDisabledState(disabled);\n }\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-pressed')\n get isActive(): boolean {\n return this.btnRadio === this.value;\n }\n\n private _value: null | string;\n private _disabled: boolean;\n\n constructor(\n private el: ElementRef,\n private cdr: ChangeDetectorRef,\n @Optional() private group: ButtonRadioGroupDirective,\n private renderer: Renderer2\n ) {}\n\n @HostListener('click')\n onClick(): void {\n if (this.el.nativeElement.attributes.disabled || !this.uncheckable && this.btnRadio === this.value) {\n return;\n }\n\n this.value = this.uncheckable && this.btnRadio === this.value ? undefined : this.btnRadio;\n this._onChange(this.value);\n }\n\n ngOnInit(): void {\n this.uncheckable = typeof this.uncheckable !== 'undefined';\n }\n\n onBlur(): void {\n this.onTouched();\n }\n\n _onChange(value: string): void {\n if (this.group) {\n this.group.onTouched();\n this.group.onChange(value);\n\n return;\n }\n this.onTouched();\n this.onChange(value);\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: string): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n if (disabled) {\n this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n forwardRef,\n Provider,\n QueryList\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ButtonRadioDirective } from './button-radio.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioGroupDirective),\n multi: true\n};\n\n/**\n * A group of radio buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadioGroup]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioGroupDirective implements ControlValueAccessor {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n @ContentChildren(forwardRef(() => ButtonRadioDirective)) radioButtons: QueryList<ButtonRadioDirective>;\n\n get value() {\n return this._value;\n }\n set value(value: string | null) {\n this._value = value;\n }\n\n private _value: string | null;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n writeValue(value: string | null): void {\n this._value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n if (this.radioButtons) {\n this.radioButtons.forEach(buttons => {\n buttons.setDisabledState(disabled);\n });\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ButtonCheckboxDirective } from './button-checkbox.directive';\nimport { ButtonRadioDirective } from './button-radio.directive';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\n@NgModule({\n declarations: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective],\n exports: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective]\n})\nexport class ButtonsModule {\n static forRoot(): ModuleWithProviders {\n return { ngModule: ButtonsModule, providers: [] };\n }\n}\n"],"names":["RADIO_CONTROL_VALUE_ACCESSOR"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ngx-bootstrap-buttons.js","sources":["ng://ngx-bootstrap/buttons/button-checkbox.directive.ts","ng://ngx-bootstrap/buttons/button-radio.directive.ts","ng://ngx-bootstrap/buttons/button-radio-group.directive.ts","ng://ngx-bootstrap/buttons/buttons.module.ts"],"sourcesContent":["// tslint:disable:no-use-before-declare\nimport {\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Provider\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// TODO: config: activeClass - Class to apply to the checked buttons\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonCheckboxDirective),\n multi: true\n};\n\n/**\n * Add checkbox functionality to any element\n */\n@Directive({\n selector: '[btnCheckbox]',\n providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonCheckboxDirective implements ControlValueAccessor, OnInit {\n /** Truthy value, will be set to ngModel */\n @Input() btnCheckboxTrue = true;\n /** Falsy value, will be set to ngModel */\n @Input() btnCheckboxFalse = false;\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-pressed')\n state = false;\n\n protected value: boolean | string;\n protected isDisabled: boolean;\n\n protected onChange = Function.prototype;\n protected onTouched = Function.prototype;\n\n // view -> model\n @HostListener('click')\n onClick(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.toggle(!this.state);\n this.onChange(this.value);\n }\n\n ngOnInit(): void {\n this.toggle(this.trueValue === this.value);\n }\n\n protected get trueValue(): boolean {\n return typeof this.btnCheckboxTrue !== 'undefined'\n ? this.btnCheckboxTrue\n : true;\n }\n\n protected get falseValue(): boolean {\n return typeof this.btnCheckboxFalse !== 'undefined'\n ? this.btnCheckboxFalse\n : false;\n }\n\n toggle(state: boolean): void {\n this.state = state;\n this.value = this.state ? this.trueValue : this.falseValue;\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: boolean | string | null): void {\n this.state = this.trueValue === value;\n this.value = value ? this.trueValue : this.falseValue;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Provider,\n Renderer2\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioDirective),\n multi: true\n};\n\n/**\n * Create radio buttons or groups of buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadio]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioDirective implements ControlValueAccessor, OnInit {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n /** Radio button value, will be set to `ngModel` */\n @Input() btnRadio: string;\n /** If `true` — radio button can be unchecked */\n @Input() uncheckable: boolean;\n /** Current value of radio component or group */\n @Input()\n get value() {\n return this.group ? this.group.value : this._value;\n }\n\n set value(value: null | string) {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this._value = value;\n }\n /** If `true` — radio button is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this.setDisabledState(disabled);\n }\n\n @HostBinding('attr.aria-disabled')\n get controlOrGroupDisabled() {\n return this.disabled || (this.group && this.group.disabled) ? true : undefined;\n }\n\n @HostBinding('class.disabled')\n get hasDisabledClass() {\n // Although the radio is disabled the active radio should still stand out.\n // The disabled class will prevent this so don't add it on the active radio\n return this.controlOrGroupDisabled && !this.isActive;\n }\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-checked')\n get isActive(): boolean {\n return this.btnRadio === this.value;\n }\n\n @HostBinding('attr.role') readonly role: string = 'radio';\n\n @HostBinding('attr.tabindex')\n get tabindex(): undefined | number {\n if (this.controlOrGroupDisabled) {\n // Disabled radio buttons should not receive focus\n return undefined;\n } else if (this.isActive || this.group == null) {\n return 0;\n } else {\n return -1;\n }\n }\n\n get hasFocus(): boolean {\n return this._hasFocus;\n }\n\n private _value: null | string;\n private _disabled: boolean;\n private _hasFocus = false;\n\n constructor(\n private el: ElementRef,\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n @Optional()\n @Inject(forwardRef(() => ButtonRadioGroupDirective))\n private group: ButtonRadioGroupDirective\n ) {}\n\n @HostListener('click')\n toggleIfAllowed(): void {\n if (!this.canToggle()) {\n return;\n }\n\n this.value = this.uncheckable && this.btnRadio === this.value ? undefined : this.btnRadio;\n this._onChange(this.value);\n }\n\n @HostListener('keydown.space', ['$event'])\n onSpacePressed(event: KeyboardEvent) {\n this.toggleIfAllowed();\n event.preventDefault();\n }\n\n focus() {\n this.el.nativeElement.focus();\n }\n\n @HostListener('focus')\n onFocus() {\n this._hasFocus = true;\n }\n\n @HostListener('blur')\n onBlur() {\n this._hasFocus = false;\n this.onTouched();\n }\n\n canToggle(): boolean {\n return !this.controlOrGroupDisabled && (this.uncheckable || this.btnRadio !== this.value);\n }\n\n ngOnInit(): void {\n this.uncheckable = typeof this.uncheckable !== 'undefined';\n }\n\n _onChange(value: string): void {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this.onTouched();\n this.onChange(value);\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: string): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this._disabled = disabled;\n if (disabled) {\n this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Provider,\n QueryList\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioDirective } from './button-radio.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioGroupDirective),\n multi: true\n};\n\n/**\n * A group of radio buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadioGroup]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioGroupDirective implements ControlValueAccessor {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n @HostBinding('attr.role') readonly role: string = 'radiogroup';\n\n @ContentChildren(forwardRef(() => ButtonRadioDirective))\n radioButtons: QueryList<ButtonRadioDirective>;\n\n get value() {\n return this._value;\n }\n set value(value: string | null) {\n this._value = value;\n this.onChange(value);\n }\n\n private _value: string | null;\n\n private _disabled: boolean;\n\n @HostBinding('attr.tabindex')\n get tabindex(): null | number {\n if (this._disabled) {\n return null;\n } else {\n return 0;\n }\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n writeValue(value: string | null): void {\n this._value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n if (this.radioButtons) {\n this._disabled = disabled;\n this.radioButtons.forEach(buttons => {\n buttons.setDisabledState(disabled);\n });\n this.cdr.markForCheck();\n }\n }\n\n @HostListener('focus')\n onFocus() {\n if (this._disabled) {\n return;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n if (activeRadio) {\n activeRadio.focus();\n } else {\n const firstEnabled = this.radioButtons.find(r => !r.disabled);\n if (firstEnabled) {\n firstEnabled.focus();\n }\n }\n }\n\n @HostListener('blur')\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n @HostListener('keydown.ArrowRight', ['$event'])\n @HostListener('keydown.ArrowDown', ['$event'])\n selectNext(event: KeyboardEvent) {\n this.selectInDirection('next');\n event.preventDefault();\n }\n\n @HostListener('keydown.ArrowLeft', ['$event'])\n @HostListener('keydown.ArrowUp', ['$event'])\n selectPrevious(event: KeyboardEvent) {\n this.selectInDirection('previous');\n event.preventDefault();\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n private selectInDirection(direction: 'next' | 'previous') {\n if (this._disabled) {\n return;\n }\n function nextIndex(currentIndex: number, buttonRadioDirectives: ButtonRadioDirective[]) {\n const step = direction === 'next' ? 1 : -1;\n let calcIndex = (currentIndex + step) % buttonRadioDirectives.length;\n if (calcIndex < 0) {\n calcIndex = buttonRadioDirectives.length - 1;\n }\n\n return calcIndex;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n\n if (activeRadio) {\n const buttonRadioDirectives = this.radioButtons.toArray();\n const currentActiveIndex = buttonRadioDirectives.indexOf(activeRadio);\n for (\n let i = nextIndex(currentActiveIndex, buttonRadioDirectives);\n i !== currentActiveIndex;\n i = nextIndex(i, buttonRadioDirectives)\n ) {\n if (buttonRadioDirectives[i].canToggle()) {\n buttonRadioDirectives[i].toggleIfAllowed();\n buttonRadioDirectives[i].focus();\n break;\n }\n }\n }\n }\n\n private getActiveOrFocusedRadio(): ButtonRadioDirective | undefined {\n return this.radioButtons.find(button => button.isActive) || this.radioButtons.find(button => button.hasFocus);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ButtonCheckboxDirective } from './button-checkbox.directive';\nimport { ButtonRadioDirective } from './button-radio.directive';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\n@NgModule({\n declarations: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective],\n exports: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective]\n})\nexport class ButtonsModule {\n static forRoot(): ModuleWithProviders<ButtonsModule> {\n return { ngModule: ButtonsModule, providers: [] };\n }\n}\n"],"names":["RADIO_CONTROL_VALUE_ACCESSOR"],"mappings":"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"}
|