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,13 +1,14 @@
|
|
1
|
-
import { Injectable, EventEmitter, Component, Renderer2, ElementRef, Directive, ViewContainerRef, Input, Output, forwardRef, Host, ChangeDetectorRef, ChangeDetectionStrategy, NgModule, ViewChild } from '@angular/core';
|
2
|
-
import { filter, map, take, takeUntil } from 'rxjs/operators';
|
3
|
-
import {
|
4
|
-
import { BehaviorSubject, Subject } from 'rxjs';
|
5
|
-
import { MiniStore, MiniState } from 'ngx-bootstrap/mini-ngrx';
|
1
|
+
import { Injectable, ɵɵdefineInjectable, EventEmitter, Component, Renderer2, ElementRef, Directive, ViewContainerRef, Input, Output, forwardRef, Host, ChangeDetectorRef, ChangeDetectionStrategy, NgModule, ViewChild } from '@angular/core';
|
2
|
+
import { filter, map, take, takeUntil, distinctUntilChanged } from 'rxjs/operators';
|
3
|
+
import { isFirstDayOfWeek, getDay, shiftDate, isBefore, endOf, isAfter, startOf, isArray, isSame, getFirstDayOfMonth, formatDate, getLocale, isSameMonth, isSameDay, isDisabledDay, isSameYear, isDateValid, setFullDate, getMonth, getFullYear, isDate, parseDate, utcAsLocal } from 'ngx-bootstrap/chronos';
|
6
4
|
import { PositioningService } from 'ngx-bootstrap/positioning';
|
7
5
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
6
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
7
|
+
import { MiniStore, MiniState } from 'ngx-bootstrap/mini-ngrx';
|
8
8
|
import { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';
|
9
9
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule } from '@angular/forms';
|
10
10
|
import { CommonModule } from '@angular/common';
|
11
|
+
import { TooltipModule } from 'ngx-bootstrap/tooltip';
|
11
12
|
import { isBs3 } from 'ngx-bootstrap/utils';
|
12
13
|
|
13
14
|
/**
|
@@ -32,6 +33,10 @@ class BsDatepickerConfig {
|
|
32
33
|
* turn on/off animation
|
33
34
|
*/
|
34
35
|
this.isAnimated = false;
|
36
|
+
/**
|
37
|
+
* The view that the datepicker should start in
|
38
|
+
*/
|
39
|
+
this.startView = 'day';
|
35
40
|
/**
|
36
41
|
* If true, returns focus to the datepicker / daterangepicker input after date selection
|
37
42
|
*/
|
@@ -61,11 +66,42 @@ class BsDatepickerConfig {
|
|
61
66
|
this.monthLabel = 'MMMM';
|
62
67
|
this.yearLabel = 'YYYY';
|
63
68
|
this.weekNumbers = 'w';
|
69
|
+
/**
|
70
|
+
* Shows 'today' button
|
71
|
+
*/
|
72
|
+
this.showTodayButton = false;
|
73
|
+
/**
|
74
|
+
* Shows clear button
|
75
|
+
*/
|
76
|
+
this.showClearButton = false;
|
77
|
+
/**
|
78
|
+
* Positioning of 'today' button
|
79
|
+
*/
|
80
|
+
this.todayPosition = 'center';
|
81
|
+
/**
|
82
|
+
* Positioning of 'clear' button
|
83
|
+
*/
|
84
|
+
this.clearPosition = 'right';
|
85
|
+
/**
|
86
|
+
* Label for 'today' button
|
87
|
+
*/
|
88
|
+
this.todayButtonLabel = 'Today';
|
89
|
+
/**
|
90
|
+
* Label for 'clear' button
|
91
|
+
*/
|
92
|
+
this.clearButtonLabel = 'Clear';
|
93
|
+
/**
|
94
|
+
* Label for 'custom range' button
|
95
|
+
*/
|
96
|
+
this.customRangeButtonLabel = 'Custom Range';
|
64
97
|
}
|
65
98
|
}
|
66
99
|
BsDatepickerConfig.decorators = [
|
67
|
-
{ type: Injectable
|
100
|
+
{ type: Injectable, args: [{
|
101
|
+
providedIn: 'root'
|
102
|
+
},] }
|
68
103
|
];
|
104
|
+
/** @nocollapse */ BsDatepickerConfig.ɵprov = ɵɵdefineInjectable({ factory: function BsDatepickerConfig_Factory() { return new BsDatepickerConfig(); }, token: BsDatepickerConfig, providedIn: "root" });
|
69
105
|
if (false) {
|
70
106
|
/**
|
71
107
|
* sets use adaptive position
|
@@ -96,11 +132,21 @@ if (false) {
|
|
96
132
|
* @type {?}
|
97
133
|
*/
|
98
134
|
BsDatepickerConfig.prototype.maxDate;
|
135
|
+
/**
|
136
|
+
* The view that the datepicker should start in
|
137
|
+
* @type {?}
|
138
|
+
*/
|
139
|
+
BsDatepickerConfig.prototype.startView;
|
99
140
|
/**
|
100
141
|
* Default date custom classes for all date/range pickers
|
101
142
|
* @type {?}
|
102
143
|
*/
|
103
144
|
BsDatepickerConfig.prototype.dateCustomClasses;
|
145
|
+
/**
|
146
|
+
* Default tooltip text for all date/range pickers
|
147
|
+
* @type {?}
|
148
|
+
*/
|
149
|
+
BsDatepickerConfig.prototype.dateTooltipTexts;
|
104
150
|
/**
|
105
151
|
* Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
|
106
152
|
* @type {?}
|
@@ -185,6 +231,11 @@ if (false) {
|
|
185
231
|
* @type {?}
|
186
232
|
*/
|
187
233
|
BsDatepickerConfig.prototype.ranges;
|
234
|
+
/**
|
235
|
+
* Max Date Range in days
|
236
|
+
* @type {?}
|
237
|
+
*/
|
238
|
+
BsDatepickerConfig.prototype.maxDateRange;
|
188
239
|
/** @type {?} */
|
189
240
|
BsDatepickerConfig.prototype.monthTitle;
|
190
241
|
/** @type {?} */
|
@@ -197,8 +248,64 @@ if (false) {
|
|
197
248
|
BsDatepickerConfig.prototype.yearLabel;
|
198
249
|
/** @type {?} */
|
199
250
|
BsDatepickerConfig.prototype.weekNumbers;
|
251
|
+
/**
|
252
|
+
* Shows 'today' button
|
253
|
+
* @type {?}
|
254
|
+
*/
|
255
|
+
BsDatepickerConfig.prototype.showTodayButton;
|
256
|
+
/**
|
257
|
+
* Shows clear button
|
258
|
+
* @type {?}
|
259
|
+
*/
|
260
|
+
BsDatepickerConfig.prototype.showClearButton;
|
261
|
+
/**
|
262
|
+
* Positioning of 'today' button
|
263
|
+
* @type {?}
|
264
|
+
*/
|
265
|
+
BsDatepickerConfig.prototype.todayPosition;
|
266
|
+
/**
|
267
|
+
* Positioning of 'clear' button
|
268
|
+
* @type {?}
|
269
|
+
*/
|
270
|
+
BsDatepickerConfig.prototype.clearPosition;
|
271
|
+
/**
|
272
|
+
* Label for 'today' button
|
273
|
+
* @type {?}
|
274
|
+
*/
|
275
|
+
BsDatepickerConfig.prototype.todayButtonLabel;
|
276
|
+
/**
|
277
|
+
* Label for 'clear' button
|
278
|
+
* @type {?}
|
279
|
+
*/
|
280
|
+
BsDatepickerConfig.prototype.clearButtonLabel;
|
281
|
+
/**
|
282
|
+
* Label for 'custom range' button
|
283
|
+
* @type {?}
|
284
|
+
*/
|
285
|
+
BsDatepickerConfig.prototype.customRangeButtonLabel;
|
200
286
|
}
|
201
287
|
|
288
|
+
/**
|
289
|
+
* @fileoverview added by tsickle
|
290
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
291
|
+
*/
|
292
|
+
/** @type {?} */
|
293
|
+
const DATEPICKER_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';
|
294
|
+
/** @type {?} */
|
295
|
+
const datepickerAnimation = trigger('datepickerAnimation', [
|
296
|
+
state('animated-down', style({ height: '*', overflow: 'hidden' })),
|
297
|
+
transition('* => animated-down', [
|
298
|
+
style({ height: 0, overflow: 'hidden' }),
|
299
|
+
animate(DATEPICKER_ANIMATION_TIMING)
|
300
|
+
]),
|
301
|
+
state('animated-up', style({ height: '*', overflow: 'hidden' })),
|
302
|
+
transition('* => animated-up', [
|
303
|
+
style({ height: '*', overflow: 'hidden' }),
|
304
|
+
animate(DATEPICKER_ANIMATION_TIMING)
|
305
|
+
]),
|
306
|
+
transition('* => unanimated', animate('0s'))
|
307
|
+
]);
|
308
|
+
|
202
309
|
/**
|
203
310
|
* @fileoverview added by tsickle
|
204
311
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
@@ -209,6 +316,7 @@ if (false) {
|
|
209
316
|
class BsDatepickerAbstractComponent {
|
210
317
|
constructor() {
|
211
318
|
this.customRanges = [];
|
319
|
+
this.chosenRange = [];
|
212
320
|
}
|
213
321
|
/**
|
214
322
|
* @param {?} value
|
@@ -259,6 +367,13 @@ class BsDatepickerAbstractComponent {
|
|
259
367
|
set dateCustomClasses(value) {
|
260
368
|
this._effects.setDateCustomClasses(value);
|
261
369
|
}
|
370
|
+
/**
|
371
|
+
* @param {?} value
|
372
|
+
* @return {?}
|
373
|
+
*/
|
374
|
+
set dateTooltipTexts(value) {
|
375
|
+
this._effects.setDateTooltipTexts(value);
|
376
|
+
}
|
262
377
|
/**
|
263
378
|
* @param {?} event
|
264
379
|
* @return {?}
|
@@ -304,6 +419,19 @@ class BsDatepickerAbstractComponent {
|
|
304
419
|
* @return {?}
|
305
420
|
*/
|
306
421
|
yearSelectHandler(event) { }
|
422
|
+
/**
|
423
|
+
* @param {?} dates
|
424
|
+
* @return {?}
|
425
|
+
*/
|
426
|
+
setRangeOnCalendar(dates) { }
|
427
|
+
/**
|
428
|
+
* @return {?}
|
429
|
+
*/
|
430
|
+
setToday() { }
|
431
|
+
/**
|
432
|
+
* @return {?}
|
433
|
+
*/
|
434
|
+
clearDate() { }
|
307
435
|
/* tslint:disable-next-line: no-any */
|
308
436
|
/**
|
309
437
|
* @param {?} event
|
@@ -319,10 +447,26 @@ if (false) {
|
|
319
447
|
/** @type {?} */
|
320
448
|
BsDatepickerAbstractComponent.prototype.isOtherMonthsActive;
|
321
449
|
/** @type {?} */
|
450
|
+
BsDatepickerAbstractComponent.prototype.showTodayBtn;
|
451
|
+
/** @type {?} */
|
452
|
+
BsDatepickerAbstractComponent.prototype.todayBtnLbl;
|
453
|
+
/** @type {?} */
|
454
|
+
BsDatepickerAbstractComponent.prototype.todayPos;
|
455
|
+
/** @type {?} */
|
456
|
+
BsDatepickerAbstractComponent.prototype.showClearBtn;
|
457
|
+
/** @type {?} */
|
458
|
+
BsDatepickerAbstractComponent.prototype.clearBtnLbl;
|
459
|
+
/** @type {?} */
|
460
|
+
BsDatepickerAbstractComponent.prototype.clearPos;
|
461
|
+
/** @type {?} */
|
322
462
|
BsDatepickerAbstractComponent.prototype._effects;
|
323
463
|
/** @type {?} */
|
324
464
|
BsDatepickerAbstractComponent.prototype.customRanges;
|
325
465
|
/** @type {?} */
|
466
|
+
BsDatepickerAbstractComponent.prototype.customRangeBtnLbl;
|
467
|
+
/** @type {?} */
|
468
|
+
BsDatepickerAbstractComponent.prototype.chosenRange;
|
469
|
+
/** @type {?} */
|
326
470
|
BsDatepickerAbstractComponent.prototype.viewMode;
|
327
471
|
/** @type {?} */
|
328
472
|
BsDatepickerAbstractComponent.prototype.daysCalendar;
|
@@ -498,6 +642,16 @@ class BsDatepickerActions {
|
|
498
642
|
payload: value
|
499
643
|
};
|
500
644
|
}
|
645
|
+
/**
|
646
|
+
* @param {?} value
|
647
|
+
* @return {?}
|
648
|
+
*/
|
649
|
+
setDateTooltipTexts(value) {
|
650
|
+
return {
|
651
|
+
type: BsDatepickerActions.SET_DATE_TOOLTIP_TEXTS,
|
652
|
+
payload: value
|
653
|
+
};
|
654
|
+
}
|
501
655
|
/**
|
502
656
|
* @param {?} locale
|
503
657
|
* @return {?}
|
@@ -525,6 +679,7 @@ BsDatepickerActions.SET_DATESDISABLED = '[datepicker] set dates disabled';
|
|
525
679
|
BsDatepickerActions.SET_DATESENABLED = '[datepicker] set dates enabled';
|
526
680
|
BsDatepickerActions.SET_IS_DISABLED = '[datepicker] set is disabled';
|
527
681
|
BsDatepickerActions.SET_DATE_CUSTOM_CLASSES = '[datepicker] set date custom classes';
|
682
|
+
BsDatepickerActions.SET_DATE_TOOLTIP_TEXTS = '[datepicker] set date tooltip texts';
|
528
683
|
BsDatepickerActions.SET_LOCALE = '[datepicker] set datepicker locale';
|
529
684
|
BsDatepickerActions.SELECT_RANGE = '[daterangepicker] select dates range';
|
530
685
|
BsDatepickerActions.decorators = [
|
@@ -564,6 +719,8 @@ if (false) {
|
|
564
719
|
/** @type {?} */
|
565
720
|
BsDatepickerActions.SET_DATE_CUSTOM_CLASSES;
|
566
721
|
/** @type {?} */
|
722
|
+
BsDatepickerActions.SET_DATE_TOOLTIP_TEXTS;
|
723
|
+
/** @type {?} */
|
567
724
|
BsDatepickerActions.SET_LOCALE;
|
568
725
|
/** @type {?} */
|
569
726
|
BsDatepickerActions.SELECT_RANGE;
|
@@ -722,6 +879,14 @@ class BsDatepickerEffects {
|
|
722
879
|
this._store.dispatch(this._actions.setDateCustomClasses(value));
|
723
880
|
return this;
|
724
881
|
}
|
882
|
+
/**
|
883
|
+
* @param {?} value
|
884
|
+
* @return {?}
|
885
|
+
*/
|
886
|
+
setDateTooltipTexts(value) {
|
887
|
+
this._store.dispatch(this._actions.setDateTooltipTexts(value));
|
888
|
+
return this;
|
889
|
+
}
|
725
890
|
/* Set rendering options */
|
726
891
|
/**
|
727
892
|
* @param {?} _config
|
@@ -839,37 +1004,6 @@ class BsDatepickerEffects {
|
|
839
1004
|
(event) => {
|
840
1005
|
event.cell.isHovered = event.isHovered;
|
841
1006
|
});
|
842
|
-
container.monthSelectHandler = (/**
|
843
|
-
* @param {?} event
|
844
|
-
* @return {?}
|
845
|
-
*/
|
846
|
-
(event) => {
|
847
|
-
if (event.isDisabled) {
|
848
|
-
return;
|
849
|
-
}
|
850
|
-
this._store.dispatch(this._actions.navigateTo({
|
851
|
-
unit: {
|
852
|
-
month: getMonth(event.date),
|
853
|
-
year: getFullYear(event.date)
|
854
|
-
},
|
855
|
-
viewMode: 'day'
|
856
|
-
}));
|
857
|
-
});
|
858
|
-
container.yearSelectHandler = (/**
|
859
|
-
* @param {?} event
|
860
|
-
* @return {?}
|
861
|
-
*/
|
862
|
-
(event) => {
|
863
|
-
if (event.isDisabled) {
|
864
|
-
return;
|
865
|
-
}
|
866
|
-
this._store.dispatch(this._actions.navigateTo({
|
867
|
-
unit: {
|
868
|
-
year: getFullYear(event.date)
|
869
|
-
},
|
870
|
-
viewMode: 'month'
|
871
|
-
}));
|
872
|
-
});
|
873
1007
|
return this;
|
874
1008
|
}
|
875
1009
|
/**
|
@@ -1016,6 +1150,23 @@ class BsDatepickerEffects {
|
|
1016
1150
|
* @return {?}
|
1017
1151
|
*/
|
1018
1152
|
dateCustomClasses => this._store.dispatch(this._actions.flag()))));
|
1153
|
+
// date tooltip texts
|
1154
|
+
this._subs.push(this._store
|
1155
|
+
.select((/**
|
1156
|
+
* @param {?} state
|
1157
|
+
* @return {?}
|
1158
|
+
*/
|
1159
|
+
state => state.dateTooltipTexts))
|
1160
|
+
.pipe(filter((/**
|
1161
|
+
* @param {?} dateTooltipTexts
|
1162
|
+
* @return {?}
|
1163
|
+
*/
|
1164
|
+
dateTooltipTexts => !!dateTooltipTexts)))
|
1165
|
+
.subscribe((/**
|
1166
|
+
* @param {?} dateTooltipTexts
|
1167
|
+
* @return {?}
|
1168
|
+
*/
|
1169
|
+
dateTooltipTexts => this._store.dispatch(this._actions.flag()))));
|
1019
1170
|
// on locale change
|
1020
1171
|
this._subs.push(this._localeService.localeChange
|
1021
1172
|
.subscribe((/**
|
@@ -1125,6 +1276,8 @@ if (false) {
|
|
1125
1276
|
/** @type {?} */
|
1126
1277
|
BsDatepickerState.prototype.dateCustomClasses;
|
1127
1278
|
/** @type {?} */
|
1279
|
+
BsDatepickerState.prototype.dateTooltipTexts;
|
1280
|
+
/** @type {?} */
|
1128
1281
|
BsDatepickerState.prototype.hoveredDate;
|
1129
1282
|
/** @type {?} */
|
1130
1283
|
BsDatepickerState.prototype.hoveredMonth;
|
@@ -1450,6 +1603,8 @@ if (false) {
|
|
1450
1603
|
FlagDaysCalendarOptions.prototype.monthIndex;
|
1451
1604
|
/** @type {?} */
|
1452
1605
|
FlagDaysCalendarOptions.prototype.dateCustomClasses;
|
1606
|
+
/** @type {?} */
|
1607
|
+
FlagDaysCalendarOptions.prototype.dateTooltipTexts;
|
1453
1608
|
}
|
1454
1609
|
/**
|
1455
1610
|
* @param {?} formattedMonth
|
@@ -1517,6 +1672,21 @@ function flagDaysCalendar(formattedMonth, options) {
|
|
1517
1672
|
(previousValue, currentValue) => previousValue.concat(currentValue)), [])
|
1518
1673
|
.join(' ')
|
1519
1674
|
|| '';
|
1675
|
+
/** @type {?} */
|
1676
|
+
const tooltipText = options.dateTooltipTexts && options.dateTooltipTexts
|
1677
|
+
.map((/**
|
1678
|
+
* @param {?} tt
|
1679
|
+
* @return {?}
|
1680
|
+
*/
|
1681
|
+
tt => isSameDay(day.date, tt.date) ? tt.tooltipText : ''))
|
1682
|
+
.reduce((/**
|
1683
|
+
* @param {?} previousValue
|
1684
|
+
* @param {?} currentValue
|
1685
|
+
* @return {?}
|
1686
|
+
*/
|
1687
|
+
(previousValue, currentValue) => previousValue.concat(currentValue)), [])
|
1688
|
+
.join(' ')
|
1689
|
+
|| '';
|
1520
1690
|
// decide update or not
|
1521
1691
|
/** @type {?} */
|
1522
1692
|
const newDay = Object.assign({}, day, {
|
@@ -1528,7 +1698,8 @@ function flagDaysCalendar(formattedMonth, options) {
|
|
1528
1698
|
isInRange,
|
1529
1699
|
isDisabled,
|
1530
1700
|
isToday,
|
1531
|
-
customClasses
|
1701
|
+
customClasses,
|
1702
|
+
tooltipText
|
1532
1703
|
});
|
1533
1704
|
if (day.isOtherMonth !== newDay.isOtherMonth ||
|
1534
1705
|
day.isHovered !== newDay.isHovered ||
|
@@ -1537,7 +1708,8 @@ function flagDaysCalendar(formattedMonth, options) {
|
|
1537
1708
|
day.isSelectionEnd !== newDay.isSelectionEnd ||
|
1538
1709
|
day.isDisabled !== newDay.isDisabled ||
|
1539
1710
|
day.isInRange !== newDay.isInRange ||
|
1540
|
-
day.customClasses !== newDay.customClasses
|
1711
|
+
day.customClasses !== newDay.customClasses ||
|
1712
|
+
day.tooltipText !== newDay.tooltipText) {
|
1541
1713
|
week.days[dayIndex] = newDay;
|
1542
1714
|
}
|
1543
1715
|
}));
|
@@ -1642,6 +1814,8 @@ if (false) {
|
|
1642
1814
|
/** @type {?} */
|
1643
1815
|
FlagMonthCalendarOptions.prototype.selectedDate;
|
1644
1816
|
/** @type {?} */
|
1817
|
+
FlagMonthCalendarOptions.prototype.selectedRange;
|
1818
|
+
/** @type {?} */
|
1645
1819
|
FlagMonthCalendarOptions.prototype.displayMonths;
|
1646
1820
|
/** @type {?} */
|
1647
1821
|
FlagMonthCalendarOptions.prototype.monthIndex;
|
@@ -1664,13 +1838,22 @@ function flagMonthsCalendar(monthCalendar, options) {
|
|
1664
1838
|
* @return {?}
|
1665
1839
|
*/
|
1666
1840
|
(month, monthIndex) => {
|
1841
|
+
/** @type {?} */
|
1842
|
+
let isSelected;
|
1667
1843
|
/** @type {?} */
|
1668
1844
|
const isHovered = isSameMonth(month.date, options.hoveredMonth);
|
1669
1845
|
/** @type {?} */
|
1670
1846
|
const isDisabled = options.isDisabled ||
|
1671
1847
|
isMonthDisabled(month.date, options.minDate, options.maxDate);
|
1672
|
-
|
1673
|
-
|
1848
|
+
if (!options.selectedDate && options.selectedRange) {
|
1849
|
+
isSelected = isSameMonth(month.date, options.selectedRange[0]);
|
1850
|
+
if (!isSelected) {
|
1851
|
+
isSelected = isSameMonth(month.date, options.selectedRange[1]);
|
1852
|
+
}
|
1853
|
+
}
|
1854
|
+
else {
|
1855
|
+
isSelected = isSameMonth(month.date, options.selectedDate);
|
1856
|
+
}
|
1674
1857
|
/** @type {?} */
|
1675
1858
|
const newMonth = Object.assign(/*{},*/ month, {
|
1676
1859
|
isHovered,
|
@@ -1783,6 +1966,8 @@ if (false) {
|
|
1783
1966
|
/** @type {?} */
|
1784
1967
|
FlagYearsCalendarOptions.prototype.selectedDate;
|
1785
1968
|
/** @type {?} */
|
1969
|
+
FlagYearsCalendarOptions.prototype.selectedRange;
|
1970
|
+
/** @type {?} */
|
1786
1971
|
FlagYearsCalendarOptions.prototype.displayMonths;
|
1787
1972
|
/** @type {?} */
|
1788
1973
|
FlagYearsCalendarOptions.prototype.yearIndex;
|
@@ -1805,13 +1990,22 @@ function flagYearsCalendar(yearsCalendar, options) {
|
|
1805
1990
|
* @return {?}
|
1806
1991
|
*/
|
1807
1992
|
(year, yearIndex) => {
|
1993
|
+
/** @type {?} */
|
1994
|
+
let isSelected;
|
1808
1995
|
/** @type {?} */
|
1809
1996
|
const isHovered = isSameYear(year.date, options.hoveredYear);
|
1810
1997
|
/** @type {?} */
|
1811
1998
|
const isDisabled = options.isDisabled ||
|
1812
1999
|
isYearDisabled(year.date, options.minDate, options.maxDate);
|
1813
|
-
|
1814
|
-
|
2000
|
+
if (!options.selectedDate && options.selectedRange) {
|
2001
|
+
isSelected = isSameYear(year.date, options.selectedRange[0]);
|
2002
|
+
if (!isSelected) {
|
2003
|
+
isSelected = isSameYear(year.date, options.selectedRange[1]);
|
2004
|
+
}
|
2005
|
+
}
|
2006
|
+
else {
|
2007
|
+
isSelected = isSameYear(year.date, options.selectedDate);
|
2008
|
+
}
|
1815
2009
|
/** @type {?} */
|
1816
2010
|
const newMonth = Object.assign(/*{},*/ year, { isHovered, isDisabled, isSelected });
|
1817
2011
|
if (year.isHovered !== newMonth.isHovered ||
|
@@ -1973,6 +2167,11 @@ function bsDatepickerReducer(state = initialDatepickerState, action) {
|
|
1973
2167
|
dateCustomClasses: action.payload
|
1974
2168
|
});
|
1975
2169
|
}
|
2170
|
+
case BsDatepickerActions.SET_DATE_TOOLTIP_TEXTS: {
|
2171
|
+
return Object.assign({}, state, {
|
2172
|
+
dateTooltipTexts: action.payload
|
2173
|
+
});
|
2174
|
+
}
|
1976
2175
|
default:
|
1977
2176
|
return state;
|
1978
2177
|
}
|
@@ -1990,7 +2189,7 @@ function calculateReducer(state) {
|
|
1990
2189
|
/** @type {?} */
|
1991
2190
|
let viewDate = state.view.date;
|
1992
2191
|
if (state.view.mode === 'day') {
|
1993
|
-
if (state.showPreviousMonth && state.selectedRange.length === 0) {
|
2192
|
+
if (state.showPreviousMonth && state.selectedRange && state.selectedRange.length === 0) {
|
1994
2193
|
viewDate = shiftDate(viewDate, { month: -1 });
|
1995
2194
|
}
|
1996
2195
|
state.monthViewOptions.firstDayOfWeek = getLocale(state.locale).firstDayOfWeek();
|
@@ -2097,6 +2296,7 @@ function flagReducer(state, action) {
|
|
2097
2296
|
selectedRange: state.selectedRange,
|
2098
2297
|
displayMonths,
|
2099
2298
|
dateCustomClasses: state.dateCustomClasses,
|
2299
|
+
dateTooltipTexts: state.dateTooltipTexts,
|
2100
2300
|
monthIndex
|
2101
2301
|
})));
|
2102
2302
|
return Object.assign({}, state, { flaggedMonths });
|
@@ -2114,6 +2314,7 @@ function flagReducer(state, action) {
|
|
2114
2314
|
maxDate: state.maxDate,
|
2115
2315
|
hoveredMonth: state.hoveredMonth,
|
2116
2316
|
selectedDate: state.selectedDate,
|
2317
|
+
selectedRange: state.selectedRange,
|
2117
2318
|
displayMonths,
|
2118
2319
|
monthIndex
|
2119
2320
|
})));
|
@@ -2132,6 +2333,7 @@ function flagReducer(state, action) {
|
|
2132
2333
|
maxDate: state.maxDate,
|
2133
2334
|
hoveredYear: state.hoveredYear,
|
2134
2335
|
selectedDate: state.selectedDate,
|
2336
|
+
selectedRange: state.selectedRange,
|
2135
2337
|
displayMonths,
|
2136
2338
|
yearIndex
|
2137
2339
|
})));
|
@@ -2242,27 +2444,6 @@ BsDatepickerStore.decorators = [
|
|
2242
2444
|
/** @nocollapse */
|
2243
2445
|
BsDatepickerStore.ctorParameters = () => [];
|
2244
2446
|
|
2245
|
-
/**
|
2246
|
-
* @fileoverview added by tsickle
|
2247
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
2248
|
-
*/
|
2249
|
-
/** @type {?} */
|
2250
|
-
const DATEPICKER_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';
|
2251
|
-
/** @type {?} */
|
2252
|
-
const datepickerAnimation = trigger('datepickerAnimation', [
|
2253
|
-
state('animated-down', style({ height: '*', overflow: 'hidden' })),
|
2254
|
-
transition('* => animated-down', [
|
2255
|
-
style({ height: 0, overflow: 'hidden' }),
|
2256
|
-
animate(DATEPICKER_ANIMATION_TIMING)
|
2257
|
-
]),
|
2258
|
-
state('animated-up', style({ height: '*', overflow: 'hidden' })),
|
2259
|
-
transition('* => animated-up', [
|
2260
|
-
style({ height: '*', overflow: 'hidden' }),
|
2261
|
-
animate(DATEPICKER_ANIMATION_TIMING)
|
2262
|
-
]),
|
2263
|
-
transition('* => unanimated', animate('0s'))
|
2264
|
-
]);
|
2265
|
-
|
2266
2447
|
/**
|
2267
2448
|
* @fileoverview added by tsickle
|
2268
2449
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
@@ -2321,6 +2502,13 @@ class BsDatepickerContainerComponent extends BsDatepickerAbstractComponent {
|
|
2321
2502
|
}));
|
2322
2503
|
this.isOtherMonthsActive = this._config.selectFromOtherMonth;
|
2323
2504
|
this.containerClass = this._config.containerClass;
|
2505
|
+
this.showTodayBtn = this._config.showTodayButton;
|
2506
|
+
this.todayBtnLbl = this._config.todayButtonLabel;
|
2507
|
+
this.todayPos = this._config.todayPosition;
|
2508
|
+
this.showClearBtn = this._config.showClearButton;
|
2509
|
+
this.clearBtnLbl = this._config.clearButtonLabel;
|
2510
|
+
this.clearPos = this._config.clearPosition;
|
2511
|
+
this.customRangeBtnLbl = this._config.customRangeButtonLabel;
|
2324
2512
|
this._effects
|
2325
2513
|
.init(this._store)
|
2326
2514
|
// intial state options
|
@@ -2345,6 +2533,7 @@ class BsDatepickerContainerComponent extends BsDatepickerAbstractComponent {
|
|
2345
2533
|
* @return {?}
|
2346
2534
|
*/
|
2347
2535
|
(date) => this.valueChange.emit(date))));
|
2536
|
+
this._store.dispatch(this._actions.changeViewMode(this._config.startView));
|
2348
2537
|
}
|
2349
2538
|
/**
|
2350
2539
|
* @return {?}
|
@@ -2373,6 +2562,49 @@ class BsDatepickerContainerComponent extends BsDatepickerAbstractComponent {
|
|
2373
2562
|
}
|
2374
2563
|
this._store.dispatch(this._actions.select(day.date));
|
2375
2564
|
}
|
2565
|
+
/**
|
2566
|
+
* @param {?} day
|
2567
|
+
* @return {?}
|
2568
|
+
*/
|
2569
|
+
monthSelectHandler(day) {
|
2570
|
+
if (!day || day.isDisabled) {
|
2571
|
+
return;
|
2572
|
+
}
|
2573
|
+
this._store.dispatch(this._actions.navigateTo({
|
2574
|
+
unit: {
|
2575
|
+
month: getMonth(day.date),
|
2576
|
+
year: getFullYear(day.date)
|
2577
|
+
},
|
2578
|
+
viewMode: 'day'
|
2579
|
+
}));
|
2580
|
+
}
|
2581
|
+
/**
|
2582
|
+
* @param {?} day
|
2583
|
+
* @return {?}
|
2584
|
+
*/
|
2585
|
+
yearSelectHandler(day) {
|
2586
|
+
if (!day || day.isDisabled) {
|
2587
|
+
return;
|
2588
|
+
}
|
2589
|
+
this._store.dispatch(this._actions.navigateTo({
|
2590
|
+
unit: {
|
2591
|
+
year: getFullYear(day.date)
|
2592
|
+
},
|
2593
|
+
viewMode: 'month'
|
2594
|
+
}));
|
2595
|
+
}
|
2596
|
+
/**
|
2597
|
+
* @return {?}
|
2598
|
+
*/
|
2599
|
+
setToday() {
|
2600
|
+
this._store.dispatch(this._actions.select(new Date()));
|
2601
|
+
}
|
2602
|
+
/**
|
2603
|
+
* @return {?}
|
2604
|
+
*/
|
2605
|
+
clearDate() {
|
2606
|
+
this._store.dispatch(this._actions.select(undefined));
|
2607
|
+
}
|
2376
2608
|
/**
|
2377
2609
|
* @return {?}
|
2378
2610
|
*/
|
@@ -2387,7 +2619,7 @@ BsDatepickerContainerComponent.decorators = [
|
|
2387
2619
|
{ type: Component, args: [{
|
2388
2620
|
selector: 'bs-datepicker-container',
|
2389
2621
|
providers: [BsDatepickerStore, BsDatepickerEffects],
|
2390
|
-
template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view
|
2622
|
+
template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n\n <div class=\"bs-datepicker-buttons\" *ngIf=\"showTodayBtn || showClearBtn\">\n <div class=\"btn-today-wrapper\"\n [class.today-left]=\"todayPos === 'left'\"\n [class.today-right]=\"todayPos === 'right'\"\n [class.today-center]=\"todayPos === 'center'\"\n *ngIf=\"showTodayBtn\">\n <button class=\"btn btn-success\" (click)=\"setToday()\">{{todayBtnLbl}}</button>\n </div>\n\n <div class=\"btn-clear-wrapper\"\n [class.clear-left]=\"clearPos === 'left'\"\n [class.clear-right]=\"clearPos === 'right'\"\n [class.clear-center]=\"clearPos === 'center'\"\n *ngIf=\"showClearBtn\">\n <button class=\"btn btn-success\" (click)=\"clearDate()\">{{clearBtnLbl}}</button>\n </div>\n </div>\n\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view\n [selectedRange]=\"chosenRange\"\n [ranges]=\"customRanges\"\n [customRangeLabel]=\"customRangeBtnLbl\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
|
2391
2623
|
host: {
|
2392
2624
|
class: 'bottom',
|
2393
2625
|
'(click)': '_stopPropagation($event)',
|
@@ -2480,6 +2712,7 @@ class BsDatepickerDirective {
|
|
2480
2712
|
*/
|
2481
2713
|
this.bsValueChange = new EventEmitter();
|
2482
2714
|
this._subs = [];
|
2715
|
+
this._dateInputFormat$ = new Subject();
|
2483
2716
|
// todo: assign only subset of fields
|
2484
2717
|
Object.assign(this, this._config);
|
2485
2718
|
this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
|
@@ -2513,6 +2746,28 @@ class BsDatepickerDirective {
|
|
2513
2746
|
this._bsValue = value;
|
2514
2747
|
this.bsValueChange.emit(value);
|
2515
2748
|
}
|
2749
|
+
/**
|
2750
|
+
* Config object for datepicker
|
2751
|
+
* @param {?} bsConfig
|
2752
|
+
* @return {?}
|
2753
|
+
*/
|
2754
|
+
set bsConfig(bsConfig) {
|
2755
|
+
this._bsConfig = bsConfig;
|
2756
|
+
this.setConfig();
|
2757
|
+
this._dateInputFormat$.next(bsConfig && bsConfig.dateInputFormat);
|
2758
|
+
}
|
2759
|
+
/**
|
2760
|
+
* @return {?}
|
2761
|
+
*/
|
2762
|
+
get bsConfig() {
|
2763
|
+
return this._bsConfig;
|
2764
|
+
}
|
2765
|
+
/**
|
2766
|
+
* @return {?}
|
2767
|
+
*/
|
2768
|
+
get dateInputFormat$() {
|
2769
|
+
return this._dateInputFormat$;
|
2770
|
+
}
|
2516
2771
|
/**
|
2517
2772
|
* @return {?}
|
2518
2773
|
*/
|
@@ -2558,6 +2813,9 @@ class BsDatepickerDirective {
|
|
2558
2813
|
if (changes.dateCustomClasses) {
|
2559
2814
|
this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
|
2560
2815
|
}
|
2816
|
+
if (changes.dateTooltipTexts) {
|
2817
|
+
this._datepickerRef.instance.dateTooltipTexts = this.dateTooltipTexts;
|
2818
|
+
}
|
2561
2819
|
}
|
2562
2820
|
/**
|
2563
2821
|
* @return {?}
|
@@ -2646,6 +2904,7 @@ class BsDatepickerDirective {
|
|
2646
2904
|
maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
|
2647
2905
|
daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
|
2648
2906
|
dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
|
2907
|
+
dateTooltipTexts: this.dateTooltipTexts || this.bsConfig && this.bsConfig.dateTooltipTexts,
|
2649
2908
|
datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
|
2650
2909
|
datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
|
2651
2910
|
minMode: this.minMode || this.bsConfig && this.bsConfig.minMode
|
@@ -2696,6 +2955,7 @@ BsDatepickerDirective.propDecorators = {
|
|
2696
2955
|
datesDisabled: [{ type: Input }],
|
2697
2956
|
datesEnabled: [{ type: Input }],
|
2698
2957
|
dateCustomClasses: [{ type: Input }],
|
2958
|
+
dateTooltipTexts: [{ type: Input }],
|
2699
2959
|
bsValueChange: [{ type: Output }]
|
2700
2960
|
};
|
2701
2961
|
if (false) {
|
@@ -2738,11 +2998,6 @@ if (false) {
|
|
2738
2998
|
BsDatepickerDirective.prototype.isOpen$;
|
2739
2999
|
/** @type {?} */
|
2740
3000
|
BsDatepickerDirective.prototype.isDestroy$;
|
2741
|
-
/**
|
2742
|
-
* Config object for datepicker
|
2743
|
-
* @type {?}
|
2744
|
-
*/
|
2745
|
-
BsDatepickerDirective.prototype.bsConfig;
|
2746
3001
|
/**
|
2747
3002
|
* Indicates whether datepicker's content is enabled or not
|
2748
3003
|
* @type {?}
|
@@ -2783,6 +3038,11 @@ if (false) {
|
|
2783
3038
|
* @type {?}
|
2784
3039
|
*/
|
2785
3040
|
BsDatepickerDirective.prototype.dateCustomClasses;
|
3041
|
+
/**
|
3042
|
+
* Date tooltip text
|
3043
|
+
* @type {?}
|
3044
|
+
*/
|
3045
|
+
BsDatepickerDirective.prototype.dateTooltipTexts;
|
2786
3046
|
/**
|
2787
3047
|
* Emits when datepicker value has been changed
|
2788
3048
|
* @type {?}
|
@@ -2803,6 +3063,16 @@ if (false) {
|
|
2803
3063
|
* @private
|
2804
3064
|
*/
|
2805
3065
|
BsDatepickerDirective.prototype._datepickerRef;
|
3066
|
+
/**
|
3067
|
+
* @type {?}
|
3068
|
+
* @private
|
3069
|
+
*/
|
3070
|
+
BsDatepickerDirective.prototype._bsConfig;
|
3071
|
+
/**
|
3072
|
+
* @type {?}
|
3073
|
+
* @private
|
3074
|
+
*/
|
3075
|
+
BsDatepickerDirective.prototype._dateInputFormat$;
|
2806
3076
|
/** @type {?} */
|
2807
3077
|
BsDatepickerDirective.prototype._config;
|
2808
3078
|
/**
|
@@ -2824,8 +3094,11 @@ if (false) {
|
|
2824
3094
|
class BsDatepickerInlineConfig extends BsDatepickerConfig {
|
2825
3095
|
}
|
2826
3096
|
BsDatepickerInlineConfig.decorators = [
|
2827
|
-
{ type: Injectable
|
3097
|
+
{ type: Injectable, args: [{
|
3098
|
+
providedIn: 'root'
|
3099
|
+
},] }
|
2828
3100
|
];
|
3101
|
+
/** @nocollapse */ BsDatepickerInlineConfig.ɵprov = ɵɵdefineInjectable({ factory: function BsDatepickerInlineConfig_Factory() { return new BsDatepickerInlineConfig(); }, token: BsDatepickerInlineConfig, providedIn: "root" });
|
2829
3102
|
|
2830
3103
|
/**
|
2831
3104
|
* @fileoverview added by tsickle
|
@@ -2851,7 +3124,7 @@ BsDatepickerInlineContainerComponent.decorators = [
|
|
2851
3124
|
{ type: Component, args: [{
|
2852
3125
|
selector: 'bs-datepicker-inline-container',
|
2853
3126
|
providers: [BsDatepickerStore, BsDatepickerEffects],
|
2854
|
-
template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view
|
3127
|
+
template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n\n <div class=\"bs-datepicker-buttons\" *ngIf=\"showTodayBtn || showClearBtn\">\n <div class=\"btn-today-wrapper\"\n [class.today-left]=\"todayPos === 'left'\"\n [class.today-right]=\"todayPos === 'right'\"\n [class.today-center]=\"todayPos === 'center'\"\n *ngIf=\"showTodayBtn\">\n <button class=\"btn btn-success\" (click)=\"setToday()\">{{todayBtnLbl}}</button>\n </div>\n\n <div class=\"btn-clear-wrapper\"\n [class.clear-left]=\"clearPos === 'left'\"\n [class.clear-right]=\"clearPos === 'right'\"\n [class.clear-center]=\"clearPos === 'center'\"\n *ngIf=\"showClearBtn\">\n <button class=\"btn btn-success\" (click)=\"clearDate()\">{{clearBtnLbl}}</button>\n </div>\n </div>\n\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view\n [selectedRange]=\"chosenRange\"\n [ranges]=\"customRanges\"\n [customRangeLabel]=\"customRangeBtnLbl\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
|
2855
3128
|
host: {
|
2856
3129
|
'(click)': '_stopPropagation($event)'
|
2857
3130
|
},
|
@@ -2959,6 +3232,10 @@ class BsDatepickerInlineDirective {
|
|
2959
3232
|
this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
|
2960
3233
|
this.setConfig();
|
2961
3234
|
}
|
3235
|
+
if (changes.dateTooltipTexts) {
|
3236
|
+
this._datepickerRef.instance.dateTooltipTexts = this.dateTooltipTexts;
|
3237
|
+
this.setConfig();
|
3238
|
+
}
|
2962
3239
|
}
|
2963
3240
|
/**
|
2964
3241
|
* Set config for datepicker
|
@@ -2974,6 +3251,7 @@ class BsDatepickerInlineDirective {
|
|
2974
3251
|
minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
|
2975
3252
|
maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
|
2976
3253
|
dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
|
3254
|
+
dateTooltipTexts: this.dateTooltipTexts || this.bsConfig && this.bsConfig.dateTooltipTexts,
|
2977
3255
|
datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
|
2978
3256
|
datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled
|
2979
3257
|
});
|
@@ -3011,6 +3289,7 @@ BsDatepickerInlineDirective.propDecorators = {
|
|
3011
3289
|
minDate: [{ type: Input }],
|
3012
3290
|
maxDate: [{ type: Input }],
|
3013
3291
|
dateCustomClasses: [{ type: Input }],
|
3292
|
+
dateTooltipTexts: [{ type: Input }],
|
3014
3293
|
datesEnabled: [{ type: Input }],
|
3015
3294
|
datesDisabled: [{ type: Input }],
|
3016
3295
|
bsValueChange: [{ type: Output }]
|
@@ -3043,6 +3322,11 @@ if (false) {
|
|
3043
3322
|
* @type {?}
|
3044
3323
|
*/
|
3045
3324
|
BsDatepickerInlineDirective.prototype.dateCustomClasses;
|
3325
|
+
/**
|
3326
|
+
* Date tooltip text
|
3327
|
+
* @type {?}
|
3328
|
+
*/
|
3329
|
+
BsDatepickerInlineDirective.prototype.dateTooltipTexts;
|
3046
3330
|
/**
|
3047
3331
|
* Disable specific dates
|
3048
3332
|
* @type {?}
|
@@ -3098,8 +3382,11 @@ class BsDaterangepickerInlineConfig extends BsDatepickerConfig {
|
|
3098
3382
|
}
|
3099
3383
|
}
|
3100
3384
|
BsDaterangepickerInlineConfig.decorators = [
|
3101
|
-
{ type: Injectable
|
3385
|
+
{ type: Injectable, args: [{
|
3386
|
+
providedIn: 'root'
|
3387
|
+
},] }
|
3102
3388
|
];
|
3389
|
+
/** @nocollapse */ BsDaterangepickerInlineConfig.ɵprov = ɵɵdefineInjectable({ factory: function BsDaterangepickerInlineConfig_Factory() { return new BsDaterangepickerInlineConfig(); }, token: BsDaterangepickerInlineConfig, providedIn: "root" });
|
3103
3390
|
if (false) {
|
3104
3391
|
/** @type {?} */
|
3105
3392
|
BsDaterangepickerInlineConfig.prototype.displayMonths;
|
@@ -3138,6 +3425,7 @@ class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent
|
|
3138
3425
|
this._subs = [];
|
3139
3426
|
this._effects = _effects;
|
3140
3427
|
this.customRanges = this._config.ranges;
|
3428
|
+
this.customRangeBtnLbl = this._config.customRangeButtonLabel;
|
3141
3429
|
_renderer.setStyle(_element.nativeElement, 'display', 'block');
|
3142
3430
|
_renderer.setStyle(_element.nativeElement, 'position', 'absolute');
|
3143
3431
|
}
|
@@ -3223,6 +3511,60 @@ class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent
|
|
3223
3511
|
if (isDisabled) {
|
3224
3512
|
return;
|
3225
3513
|
}
|
3514
|
+
this.rangesProcessing(day);
|
3515
|
+
}
|
3516
|
+
/**
|
3517
|
+
* @param {?} day
|
3518
|
+
* @return {?}
|
3519
|
+
*/
|
3520
|
+
monthSelectHandler(day) {
|
3521
|
+
if (!day) {
|
3522
|
+
return;
|
3523
|
+
}
|
3524
|
+
day.isSelected = true;
|
3525
|
+
if (this._config.minMode !== 'month') {
|
3526
|
+
if (day.isDisabled) {
|
3527
|
+
return;
|
3528
|
+
}
|
3529
|
+
this._store.dispatch(this._actions.navigateTo({
|
3530
|
+
unit: {
|
3531
|
+
month: getMonth(day.date),
|
3532
|
+
year: getFullYear(day.date)
|
3533
|
+
},
|
3534
|
+
viewMode: 'day'
|
3535
|
+
}));
|
3536
|
+
return;
|
3537
|
+
}
|
3538
|
+
this.rangesProcessing(day);
|
3539
|
+
}
|
3540
|
+
/**
|
3541
|
+
* @param {?} day
|
3542
|
+
* @return {?}
|
3543
|
+
*/
|
3544
|
+
yearSelectHandler(day) {
|
3545
|
+
if (!day) {
|
3546
|
+
return;
|
3547
|
+
}
|
3548
|
+
day.isSelected = true;
|
3549
|
+
if (this._config.minMode !== 'year') {
|
3550
|
+
if (day.isDisabled) {
|
3551
|
+
return;
|
3552
|
+
}
|
3553
|
+
this._store.dispatch(this._actions.navigateTo({
|
3554
|
+
unit: {
|
3555
|
+
year: getFullYear(day.date)
|
3556
|
+
},
|
3557
|
+
viewMode: 'month'
|
3558
|
+
}));
|
3559
|
+
return;
|
3560
|
+
}
|
3561
|
+
this.rangesProcessing(day);
|
3562
|
+
}
|
3563
|
+
/**
|
3564
|
+
* @param {?} day
|
3565
|
+
* @return {?}
|
3566
|
+
*/
|
3567
|
+
rangesProcessing(day) {
|
3226
3568
|
// if only one date is already selected
|
3227
3569
|
// and user clicks on previous date
|
3228
3570
|
// start selection from new date
|
@@ -3236,6 +3578,9 @@ class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent
|
|
3236
3578
|
}
|
3237
3579
|
if (this._rangeStack.length === 0) {
|
3238
3580
|
this._rangeStack = [day.date];
|
3581
|
+
if (this._config.maxDateRange) {
|
3582
|
+
this.setMaxDateRangeOnCalendar(day.date);
|
3583
|
+
}
|
3239
3584
|
}
|
3240
3585
|
this._store.dispatch(this._actions.selectRange(this._rangeStack));
|
3241
3586
|
if (this._rangeStack.length === 2) {
|
@@ -3259,12 +3604,22 @@ class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent
|
|
3259
3604
|
this._rangeStack = (dates === null) ? [] : (dates.value instanceof Date ? [dates.value] : dates.value);
|
3260
3605
|
this._store.dispatch(this._actions.selectRange(this._rangeStack));
|
3261
3606
|
}
|
3607
|
+
/**
|
3608
|
+
* @param {?} currentSelection
|
3609
|
+
* @return {?}
|
3610
|
+
*/
|
3611
|
+
setMaxDateRangeOnCalendar(currentSelection) {
|
3612
|
+
/** @type {?} */
|
3613
|
+
const maxDateRange = new Date(currentSelection);
|
3614
|
+
maxDateRange.setDate(currentSelection.getDate() + this._config.maxDateRange);
|
3615
|
+
this._effects.setMaxDate(maxDateRange);
|
3616
|
+
}
|
3262
3617
|
}
|
3263
3618
|
BsDaterangepickerContainerComponent.decorators = [
|
3264
3619
|
{ type: Component, args: [{
|
3265
3620
|
selector: 'bs-daterangepicker-container',
|
3266
3621
|
providers: [BsDatepickerStore, BsDatepickerEffects],
|
3267
|
-
template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view
|
3622
|
+
template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n\n <div class=\"bs-datepicker-buttons\" *ngIf=\"showTodayBtn || showClearBtn\">\n <div class=\"btn-today-wrapper\"\n [class.today-left]=\"todayPos === 'left'\"\n [class.today-right]=\"todayPos === 'right'\"\n [class.today-center]=\"todayPos === 'center'\"\n *ngIf=\"showTodayBtn\">\n <button class=\"btn btn-success\" (click)=\"setToday()\">{{todayBtnLbl}}</button>\n </div>\n\n <div class=\"btn-clear-wrapper\"\n [class.clear-left]=\"clearPos === 'left'\"\n [class.clear-right]=\"clearPos === 'right'\"\n [class.clear-center]=\"clearPos === 'center'\"\n *ngIf=\"showClearBtn\">\n <button class=\"btn btn-success\" (click)=\"clearDate()\">{{clearBtnLbl}}</button>\n </div>\n </div>\n\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view\n [selectedRange]=\"chosenRange\"\n [ranges]=\"customRanges\"\n [customRangeLabel]=\"customRangeBtnLbl\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
|
3268
3623
|
host: {
|
3269
3624
|
class: 'bottom',
|
3270
3625
|
'(click)': '_stopPropagation($event)',
|
@@ -3346,7 +3701,7 @@ BsDaterangepickerInlineContainerComponent.decorators = [
|
|
3346
3701
|
{ type: Component, args: [{
|
3347
3702
|
selector: 'bs-daterangepicker-inline-container',
|
3348
3703
|
providers: [BsDatepickerStore, BsDatepickerEffects],
|
3349
|
-
template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view
|
3704
|
+
template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n\n <div class=\"bs-datepicker-buttons\" *ngIf=\"showTodayBtn || showClearBtn\">\n <div class=\"btn-today-wrapper\"\n [class.today-left]=\"todayPos === 'left'\"\n [class.today-right]=\"todayPos === 'right'\"\n [class.today-center]=\"todayPos === 'center'\"\n *ngIf=\"showTodayBtn\">\n <button class=\"btn btn-success\" (click)=\"setToday()\">{{todayBtnLbl}}</button>\n </div>\n\n <div class=\"btn-clear-wrapper\"\n [class.clear-left]=\"clearPos === 'left'\"\n [class.clear-right]=\"clearPos === 'right'\"\n [class.clear-center]=\"clearPos === 'center'\"\n *ngIf=\"showClearBtn\">\n <button class=\"btn btn-success\" (click)=\"clearDate()\">{{clearBtnLbl}}</button>\n </div>\n </div>\n\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view\n [selectedRange]=\"chosenRange\"\n [ranges]=\"customRanges\"\n [customRangeLabel]=\"customRangeBtnLbl\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
|
3350
3705
|
host: {
|
3351
3706
|
'(click)': '_stopPropagation($event)'
|
3352
3707
|
},
|
@@ -3481,7 +3836,8 @@ class BsDaterangepickerInlineDirective {
|
|
3481
3836
|
dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
|
3482
3837
|
datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
|
3483
3838
|
datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
|
3484
|
-
ranges: this.bsConfig && this.bsConfig.ranges
|
3839
|
+
ranges: this.bsConfig && this.bsConfig.ranges,
|
3840
|
+
maxDateRange: this.bsConfig && this.bsConfig.maxDateRange
|
3485
3841
|
});
|
3486
3842
|
this._datepickerRef = this._datepicker
|
3487
3843
|
.provide({ provide: BsDatepickerConfig, useValue: this._config })
|
@@ -3657,6 +4013,13 @@ class BsDatepickerInputDirective {
|
|
3657
4013
|
() => {
|
3658
4014
|
this._setInputValue(this._value);
|
3659
4015
|
}));
|
4016
|
+
// update input value on format change
|
4017
|
+
this._picker.dateInputFormat$.pipe(distinctUntilChanged()).subscribe((/**
|
4018
|
+
* @return {?}
|
4019
|
+
*/
|
4020
|
+
() => {
|
4021
|
+
this._setInputValue(this._value);
|
4022
|
+
}));
|
3660
4023
|
}
|
3661
4024
|
/**
|
3662
4025
|
* @param {?} event
|
@@ -3870,8 +4233,11 @@ class BsDaterangepickerConfig extends BsDatepickerConfig {
|
|
3870
4233
|
}
|
3871
4234
|
}
|
3872
4235
|
BsDaterangepickerConfig.decorators = [
|
3873
|
-
{ type: Injectable
|
4236
|
+
{ type: Injectable, args: [{
|
4237
|
+
providedIn: 'root'
|
4238
|
+
},] }
|
3874
4239
|
];
|
4240
|
+
/** @nocollapse */ BsDaterangepickerConfig.ɵprov = ɵɵdefineInjectable({ factory: function BsDaterangepickerConfig_Factory() { return new BsDaterangepickerConfig(); }, token: BsDaterangepickerConfig, providedIn: "root" });
|
3875
4241
|
if (false) {
|
3876
4242
|
/** @type {?} */
|
3877
4243
|
BsDaterangepickerConfig.prototype.displayMonths;
|
@@ -3916,6 +4282,7 @@ class BsDaterangepickerDirective {
|
|
3916
4282
|
*/
|
3917
4283
|
this.bsValueChange = new EventEmitter();
|
3918
4284
|
this._subs = [];
|
4285
|
+
this._rangeInputFormat$ = new Subject();
|
3919
4286
|
this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
|
3920
4287
|
Object.assign(this, _config);
|
3921
4288
|
this.onShown = this._datepicker.onShown;
|
@@ -3948,6 +4315,28 @@ class BsDaterangepickerDirective {
|
|
3948
4315
|
this._bsValue = value;
|
3949
4316
|
this.bsValueChange.emit(value);
|
3950
4317
|
}
|
4318
|
+
/**
|
4319
|
+
* Config object for daterangepicker
|
4320
|
+
* @param {?} bsConfig
|
4321
|
+
* @return {?}
|
4322
|
+
*/
|
4323
|
+
set bsConfig(bsConfig) {
|
4324
|
+
this._bsConfig = bsConfig;
|
4325
|
+
this.setConfig();
|
4326
|
+
this._rangeInputFormat$.next(bsConfig && bsConfig.rangeInputFormat);
|
4327
|
+
}
|
4328
|
+
/**
|
4329
|
+
* @return {?}
|
4330
|
+
*/
|
4331
|
+
get bsConfig() {
|
4332
|
+
return this._bsConfig;
|
4333
|
+
}
|
4334
|
+
/**
|
4335
|
+
* @return {?}
|
4336
|
+
*/
|
4337
|
+
get rangeInputFormat$() {
|
4338
|
+
return this._rangeInputFormat$;
|
4339
|
+
}
|
3951
4340
|
/**
|
3952
4341
|
* @return {?}
|
3953
4342
|
*/
|
@@ -4062,7 +4451,8 @@ class BsDaterangepickerDirective {
|
|
4062
4451
|
dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
|
4063
4452
|
datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
|
4064
4453
|
datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
|
4065
|
-
ranges: this.bsConfig && this.bsConfig.ranges
|
4454
|
+
ranges: this.bsConfig && this.bsConfig.ranges,
|
4455
|
+
maxDateRange: this.bsConfig && this.bsConfig.maxDateRange
|
4066
4456
|
});
|
4067
4457
|
}
|
4068
4458
|
/**
|
@@ -4178,11 +4568,6 @@ if (false) {
|
|
4178
4568
|
BsDaterangepickerDirective.prototype.isOpen$;
|
4179
4569
|
/** @type {?} */
|
4180
4570
|
BsDaterangepickerDirective.prototype.isDestroy$;
|
4181
|
-
/**
|
4182
|
-
* Config object for daterangepicker
|
4183
|
-
* @type {?}
|
4184
|
-
*/
|
4185
|
-
BsDaterangepickerDirective.prototype.bsConfig;
|
4186
4571
|
/**
|
4187
4572
|
* Indicates whether daterangepicker's content is enabled or not
|
4188
4573
|
* @type {?}
|
@@ -4238,6 +4623,16 @@ if (false) {
|
|
4238
4623
|
* @private
|
4239
4624
|
*/
|
4240
4625
|
BsDaterangepickerDirective.prototype._datepickerRef;
|
4626
|
+
/**
|
4627
|
+
* @type {?}
|
4628
|
+
* @private
|
4629
|
+
*/
|
4630
|
+
BsDaterangepickerDirective.prototype._bsConfig;
|
4631
|
+
/**
|
4632
|
+
* @type {?}
|
4633
|
+
* @private
|
4634
|
+
*/
|
4635
|
+
BsDaterangepickerDirective.prototype._rangeInputFormat$;
|
4241
4636
|
/** @type {?} */
|
4242
4637
|
BsDaterangepickerDirective.prototype._config;
|
4243
4638
|
/**
|
@@ -4315,6 +4710,13 @@ class BsDaterangepickerInputDirective {
|
|
4315
4710
|
() => {
|
4316
4711
|
this._setInputValue(this._value);
|
4317
4712
|
}));
|
4713
|
+
// update input value on format change
|
4714
|
+
this._picker.rangeInputFormat$.pipe(distinctUntilChanged()).subscribe((/**
|
4715
|
+
* @return {?}
|
4716
|
+
*/
|
4717
|
+
() => {
|
4718
|
+
this._setInputValue(this._value);
|
4719
|
+
}));
|
4318
4720
|
}
|
4319
4721
|
/**
|
4320
4722
|
* @param {?} event
|
@@ -4436,9 +4838,9 @@ class BsDaterangepickerInputDirective {
|
|
4436
4838
|
*/
|
4437
4839
|
(_val) => {
|
4438
4840
|
if (this._picker._config.useUtc) {
|
4439
|
-
return utcAsLocal(parseDate(_val, this._picker._config.
|
4841
|
+
return utcAsLocal(parseDate(_val, this._picker._config.rangeInputFormat, this._localeService.currentLocale));
|
4440
4842
|
}
|
4441
|
-
return parseDate(_val, this._picker._config.
|
4843
|
+
return parseDate(_val, this._picker._config.rangeInputFormat, this._localeService.currentLocale);
|
4442
4844
|
}))
|
4443
4845
|
.map((/**
|
4444
4846
|
* @param {?} date
|
@@ -4663,7 +5065,7 @@ BsCustomDatesViewComponent.decorators = [
|
|
4663
5065
|
class="btn"
|
4664
5066
|
(click)="selectFromRanges(customRange)"
|
4665
5067
|
[class.selected]="!checkRange()">
|
4666
|
-
|
5068
|
+
{{customRangeLabel}}
|
4667
5069
|
</button>
|
4668
5070
|
</div>
|
4669
5071
|
`,
|
@@ -4673,6 +5075,7 @@ BsCustomDatesViewComponent.decorators = [
|
|
4673
5075
|
BsCustomDatesViewComponent.propDecorators = {
|
4674
5076
|
ranges: [{ type: Input }],
|
4675
5077
|
selectedRange: [{ type: Input }],
|
5078
|
+
customRangeLabel: [{ type: Input }],
|
4676
5079
|
onSelect: [{ type: Output }]
|
4677
5080
|
};
|
4678
5081
|
if (false) {
|
@@ -4681,6 +5084,8 @@ if (false) {
|
|
4681
5084
|
/** @type {?} */
|
4682
5085
|
BsCustomDatesViewComponent.prototype.selectedRange;
|
4683
5086
|
/** @type {?} */
|
5087
|
+
BsCustomDatesViewComponent.prototype.customRangeLabel;
|
5088
|
+
/** @type {?} */
|
4684
5089
|
BsCustomDatesViewComponent.prototype.onSelect;
|
4685
5090
|
/** @type {?} */
|
4686
5091
|
BsCustomDatesViewComponent.prototype.customRange;
|
@@ -4831,6 +5236,8 @@ if (false) {
|
|
4831
5236
|
/** @type {?|undefined} */
|
4832
5237
|
DayViewModel.prototype.customClasses;
|
4833
5238
|
/** @type {?|undefined} */
|
5239
|
+
DayViewModel.prototype.tooltipText;
|
5240
|
+
/** @type {?|undefined} */
|
4834
5241
|
DayViewModel.prototype.monthIndex;
|
4835
5242
|
/** @type {?|undefined} */
|
4836
5243
|
DayViewModel.prototype.weekIndex;
|
@@ -4944,6 +5351,16 @@ if (false) {
|
|
4944
5351
|
/** @type {?} */
|
4945
5352
|
DatepickerDateCustomClasses.prototype.classes;
|
4946
5353
|
}
|
5354
|
+
/**
|
5355
|
+
* @record
|
5356
|
+
*/
|
5357
|
+
function DatepickerDateTooltipText() { }
|
5358
|
+
if (false) {
|
5359
|
+
/** @type {?} */
|
5360
|
+
DatepickerDateTooltipText.prototype.date;
|
5361
|
+
/** @type {?} */
|
5362
|
+
DatepickerDateTooltipText.prototype.tooltipText;
|
5363
|
+
}
|
4947
5364
|
/** @enum {number} */
|
4948
5365
|
const BsNavigationDirection = {
|
4949
5366
|
UP: 0,
|
@@ -5078,6 +5495,11 @@ class BsDaysCalendarViewComponent {
|
|
5078
5495
|
this.onSelect = new EventEmitter();
|
5079
5496
|
this.onHover = new EventEmitter();
|
5080
5497
|
this.onHoverWeek = new EventEmitter();
|
5498
|
+
this.isiOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||
|
5499
|
+
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1));
|
5500
|
+
if (this._config.dateTooltipTexts && this._config.dateTooltipTexts.length > 0) {
|
5501
|
+
this.isShowTooltip = true;
|
5502
|
+
}
|
5081
5503
|
}
|
5082
5504
|
/**
|
5083
5505
|
* @param {?} event
|
@@ -5180,6 +5602,19 @@ class BsDaysCalendarViewComponent {
|
|
5180
5602
|
if (this._config.selectFromOtherMonth && cell.isOtherMonth) {
|
5181
5603
|
cell.isOtherMonthHovered = isHovered;
|
5182
5604
|
}
|
5605
|
+
if (this._config.dateTooltipTexts) {
|
5606
|
+
cell.tooltipText = '';
|
5607
|
+
this._config.dateTooltipTexts.forEach((/**
|
5608
|
+
* @param {?} dateData
|
5609
|
+
* @return {?}
|
5610
|
+
*/
|
5611
|
+
(dateData) => {
|
5612
|
+
if (isSameDay(dateData.date, cell.date)) {
|
5613
|
+
cell.tooltipText = dateData.tooltipText;
|
5614
|
+
return;
|
5615
|
+
}
|
5616
|
+
}));
|
5617
|
+
}
|
5183
5618
|
this.onHover.emit({ cell, isHovered });
|
5184
5619
|
}
|
5185
5620
|
}
|
@@ -5209,17 +5644,32 @@ BsDaysCalendarViewComponent.decorators = [
|
|
5209
5644
|
<tbody>
|
5210
5645
|
<tr *ngFor="let week of calendar.weeks; let i = index">
|
5211
5646
|
<td class="week" [class.active-week]="isWeekHovered" *ngIf="options.showWeekNumbers">
|
5212
|
-
<span
|
5647
|
+
<span *ngIf="isiOS" (click)="selectWeek(week)">{{ calendar.weekNumbers[i] }}</span>
|
5648
|
+
<span *ngIf="!isiOS"
|
5213
5649
|
(click)="selectWeek(week)"
|
5214
5650
|
(mouseenter)="weekHoverHandler(week, true)"
|
5215
5651
|
(mouseleave)="weekHoverHandler(week, false)">{{ calendar.weekNumbers[i] }}</span>
|
5216
5652
|
</td>
|
5217
5653
|
<td *ngFor="let day of week.days" role="gridcell">
|
5218
|
-
|
5654
|
+
|
5655
|
+
<!-- When we want to show tooltips for dates -->
|
5656
|
+
<span *ngIf="!isiOS && isShowTooltip" bsDatepickerDayDecorator
|
5219
5657
|
[day]="day"
|
5220
5658
|
(click)="selectDay(day)"
|
5659
|
+
tooltip="{{day.tooltipText}}"
|
5221
5660
|
(mouseenter)="hoverDay(day, true)"
|
5222
|
-
(mouseleave)="hoverDay(day, false)">{{ day.label }}</span>
|
5661
|
+
(mouseleave)="hoverDay(day, false)">{{ day.label }} 3</span>
|
5662
|
+
<!-- When tooltips for dates are disabled -->
|
5663
|
+
<span *ngIf="!isiOS && !isShowTooltip" bsDatepickerDayDecorator
|
5664
|
+
[day]="day"
|
5665
|
+
(click)="selectDay(day)"
|
5666
|
+
(mouseenter)="hoverDay(day, true)"
|
5667
|
+
(mouseleave)="hoverDay(day, false)">{{ day.label }} 2</span>
|
5668
|
+
|
5669
|
+
<!-- For mobile iOS view, tooltips are not needed -->
|
5670
|
+
<span *ngIf="isiOS" bsDatepickerDayDecorator
|
5671
|
+
[day]="day"
|
5672
|
+
(click)="selectDay(day)">{{ day.label }} 1</span>
|
5223
5673
|
</td>
|
5224
5674
|
</tr>
|
5225
5675
|
</tbody>
|
@@ -5259,6 +5709,10 @@ if (false) {
|
|
5259
5709
|
BsDaysCalendarViewComponent.prototype.onHoverWeek;
|
5260
5710
|
/** @type {?} */
|
5261
5711
|
BsDaysCalendarViewComponent.prototype.isWeekHovered;
|
5712
|
+
/** @type {?} */
|
5713
|
+
BsDaysCalendarViewComponent.prototype.isiOS;
|
5714
|
+
/** @type {?} */
|
5715
|
+
BsDaysCalendarViewComponent.prototype.isShowTooltip;
|
5262
5716
|
/**
|
5263
5717
|
* @type {?}
|
5264
5718
|
* @private
|
@@ -5510,10 +5964,6 @@ class BsDatepickerModule {
|
|
5510
5964
|
PositioningService,
|
5511
5965
|
BsDatepickerStore,
|
5512
5966
|
BsDatepickerActions,
|
5513
|
-
BsDatepickerConfig,
|
5514
|
-
BsDaterangepickerConfig,
|
5515
|
-
BsDatepickerInlineConfig,
|
5516
|
-
BsDaterangepickerInlineConfig,
|
5517
5967
|
BsDatepickerEffects,
|
5518
5968
|
BsLocaleService
|
5519
5969
|
]
|
@@ -5522,7 +5972,7 @@ class BsDatepickerModule {
|
|
5522
5972
|
}
|
5523
5973
|
BsDatepickerModule.decorators = [
|
5524
5974
|
{ type: NgModule, args: [{
|
5525
|
-
imports: [CommonModule],
|
5975
|
+
imports: [CommonModule, TooltipModule.forRoot()],
|
5526
5976
|
declarations: [
|
5527
5977
|
BsCalendarLayoutComponent,
|
5528
5978
|
BsCurrentDateViewComponent,
|
@@ -6113,8 +6563,11 @@ class DatepickerConfig {
|
|
6113
6563
|
}
|
6114
6564
|
}
|
6115
6565
|
DatepickerConfig.decorators = [
|
6116
|
-
{ type: Injectable
|
6566
|
+
{ type: Injectable, args: [{
|
6567
|
+
providedIn: 'root'
|
6568
|
+
},] }
|
6117
6569
|
];
|
6570
|
+
/** @nocollapse */ DatepickerConfig.ɵprov = ɵɵdefineInjectable({ factory: function DatepickerConfig_Factory() { return new DatepickerConfig(); }, token: DatepickerConfig, providedIn: "root" });
|
6118
6571
|
if (false) {
|
6119
6572
|
/** @type {?} */
|
6120
6573
|
DatepickerConfig.prototype.locale;
|